[latex3-commits] [git/LaTeX3-latex3-latex2e] copyedits-chris: ltnews34 Draft 2, incomplete (04f131db)

Chris Rowley car222222 at github.github.io
Sun Oct 10 14:49:06 CEST 2021


Repository : https://github.com/latex3/latex2e
On branch  : copyedits-chris
Link       : https://github.com/latex3/latex2e/commit/04f131db46e6fe782bc724eca2e986d7b0709a10

>---------------------------------------------------------------

commit 04f131db46e6fe782bc724eca2e986d7b0709a10
Author: Chris Rowley <car222222 at users.noreply.github.com>
Date:   Sun Oct 10 19:49:06 2021 +0700

    ltnews34 Draft 2, incomplete
    
    Not all items are included.
    Many queries (%% CCC etc.)
    Visual adjustments probably still needed


>---------------------------------------------------------------

04f131db46e6fe782bc724eca2e986d7b0709a10
 base/doc/ltnews34.tex | 434 +++++++++++++++++++++++++++-----------------------
 1 file changed, 235 insertions(+), 199 deletions(-)

diff --git a/base/doc/ltnews34.tex b/base/doc/ltnews34.tex
index d3a26fff..fefed8ac 100644
--- a/base/doc/ltnews34.tex
+++ b/base/doc/ltnews34.tex
@@ -119,7 +119,7 @@
 \tubcommand{\input{tubltmac}}
 
 \publicationmonth{November}
-\publicationyear{2021 --- Draft Version (with many unfinished blocks)} 
+\publicationyear{2021 --- Second Draft Version (with unfinished blocks and unresolved queries)} 
 
 \publicationissue{34}
 
@@ -138,7 +138,7 @@
 
 \section{Introduction}
 
-\emph{write}
+\emph{Not yet written}
 
 \section{???}
 
@@ -150,39 +150,47 @@
 \section{Hook business}
 
 Since the introduction of the hook management system in the 2020
-release of \LaTeX{}~\cite{34:ltnews32} package developers have started
-to make more and more use of this new functionality. One result has been a
-number of queries showing that some of the documentation was not
-precise enough and that some clarifications were
-needed; these have now been addressed in the documentation. 
-%
-The extended
-usage also showed a small number of deficiencies that we thought
+release of \LaTeX{}~\cite{34:ltnews32} package 
+developers have started
+to make more and more use of this new functionality. One result 
+of this increased activity has been a
+number of queries which show that some of the documentation was not
+precise enough and that some clarifications were needed; these 
+deficiencies have now been addressed in the documentation. 
+%
+The increased usage has also shown up a small number of 
+errors that we thought
 should be corrected now, while the adoption rate is still relatively
-small; these have been addressed in this release and are documented here.
+small; the following problems have therefore been addressed in this release.
 
 
 \subsection{Provide \cs{ActivateGenericHook}}
 
 The hook management system offers a number of generic hooks, i.e.,
-hooks whose names contain a variable component, for example the name
-of an environment. Predeclaring such hooks is not really feasible so these hooks use a different mechanism: they are
-implicitly available, springing into life the moment a package, or the
-user in the preamble, adds any code to one using \cs{AddToHook}.  The
-kernel offers such hooks for environments \texttt{env/...}, commands
-\texttt{cmd/...}, and files, package or classes, \texttt{file/...},
-\texttt{include/...}, \texttt{package/...}, and \texttt{class/...}.
-
-It is possible to offer generic hooks in packages, e.g., if you have
-hooks that depend on the current language and therefore need the
-language name as part of the hook name and you don't know all possible
-names beforehand.
-
-If you want to offer such generic hooks you do this by using
+hooks whose names contain a variable component such as the name
+of an environment. Predeclaring such hooks is not really feasible, 
+so these hooks use a different mechanism: they are
+implicitly available, springing into life the moment a package, or 
+the document preamble, adds any code to one by using \cs{AddToHook}.  
+%
+The kernel offers such hooks for environments
+ (\texttt{env/...}) and commands (\texttt{cmd/...}), and for files, 
+ packages or classes (\texttt{file/...},
+\texttt{include/...}, \texttt{package/...}, \texttt{class/...}).
+
+It is also possible to offer such generic hooks in 
+packages if, for example, hooks are needed that depend on the 
+current language and therefore need the
+language name as part of the hook name (but you probably 
+don't know beforehand all the necessary names).
+
+If you want to offer such generic hooks, you can now 
+do this by using
 \cs{UseHook} or \cs{UseOneTimeHook} in your (package) code, but
-\emph{without declaring the hook} with \cs{NewHook}. Without any
-further work, a call to \cs{UseHook} with an undeclared hook name does
-nothing so, as an additional setup step, it is necessary to explicitly
+\emph{without declaring the hook} with \cs{NewHook}. But without 
+further work, a call to \cs{UseHook} with an undeclared hook name 
+will do 
+nothing; so, as an additional setup step, it is necessary to explicitly
 activate the generic hook by using \cs{ActivateGenericHook}.\footnote{Note
   that in the previous release we offered \cs{ProvideHook} as a means
   to achieve this effect, but the name was badly chosen so we decided
@@ -195,8 +203,8 @@ remain the task of the users of your package to activate the hook
 themselves before adding code to it. For example, Babel offers hooks
 such as \texttt{babel/afterextras/\meta{language}} 
 %%  CCC  OR ???
-that enable the user
-to add language specific declarations there. They can then write
+that enable a user
+to add language specific declarations to these \enquote{extras}.  One can then write
 \begin{verbatim}
 \ActivateGenericHook
           {babel/afterextras/ngerman}
@@ -212,11 +220,11 @@ Note that a generic hook produced in this way is always a normal hook.
 
 \subsection{Clearing extra hook code for the next invocation}
 
-There are a few use cases where it would be helpful if one can cancel
-an earlier use of \cs{AddToHookNext}; for example, when a page is
+There are a few use cases where it is helpful if one can cancel
+an earlier use of \cs{AddToHookNext}: for example, when a page is
 discarded with \cs{DiscardShipoutBox} because only some pages of the
 document are printed. For such situations the new command
-\cs{ClearHookNext} is provided..
+\cs{ClearHookNext} is now provided.
 %
 \githubissue{565}
 
@@ -224,28 +232,32 @@ document are printed. For such situations the new command
 \subsection{Cleaning up after \cs{UseOneTimeHook}}
 
 Some hooks are meant to be used only once in a document, and any
-further attempt to add code to them causes the code to be executed
-immediately instead of being added to the hook.  The initial implementation of
+further attempt to add code to one of these will 
+cause the code to be executed
+immediately instead of being added to the hook.  
+%
+The initial implementation of
 this concept was very simple and didn't anticipate that packages may try to
 execute a one-time hook several times, resulting in the hook code
 being executed repeatedly.  Thus the implementation was fine for
 simple cases (such as the \hook{begindocument} hook) but it causes
 trouble if the one-time hook was intended, for example, as an
-initialization hook that is used just once, when a command is first
-called, but then ignored in further calls.
+initialization hook that is used just once (when a command is first
+called) but is then ignored in further calls.
 
-This deficiency has been addressed, and now a one-time hook will only be executed once,
-and its code is removed after use to free up the memory.
+This deficiency has been addressed, and now a one-time 
+hook will only be executed once, with
+its code being removed after use to free up some memory.
 %
 \githubissue{565}
 
 
 
-\subsection{Class, package, and include hook improvements}
+\subsection{Some file hooks made one-time}
 
 Classes, packages and included files can only be loaded once in a
-\LaTeX{} document. For this reason, hooks that are specific to such
-file loading have been made one-time hooks. Beside being more efficient, this
+\LaTeX{} document. For this reason, the hooks that are specific to loading such
+files have been made one-time hooks. Beside being more efficient, this
 supports the following important use case
 \begin{verbatim}
 \AddToHook{package/varioref/after}
@@ -257,19 +269,27 @@ without the need to first test whether the package is already loaded.
 \githubissue{623}
 
 
-\subsection{Standardizing generic hook names}
+\subsection{Standardizing the names of generic hooks}
 
-The initial set of generic hooks provided by the \LaTeXe{} kernel had
-two patterns of hook names:  ones like
-\verb|env/|\meta{name}\verb|/after|, with the variable (\meta{name})
-part in the middle position, and ones like
-\verb|file/after/|\meta{name}, with the variable part in the third
-position.  The coexistence of these two types caused confusion, because
+The initial set of generic hooks provided by the kernel had
+two patterns of names:\\
+ones like
+\verb|env/|\meta{name}\verb|/after|, 
+with the variable (\meta{name})
+part in the middle position;\\
+and ones like
+\verb|file/after/|\meta{name}, with the 
+variable part in the third
+position.  
+%
+The coexistence of these two types caused confusion because
 the user had to remember in which position the variable part was
-supposed to go, and it also made the code more complicated and slower.
+supposed to go; and it also made the code more complicated and slower.
 
-The file-related hooks have therefore been renamed so that the variable part of
-the name is in the middle, as with other hooks.  The changes are listed here:
+The file-related hooks have therefore been renamed 
+so that the variable part of
+the name is in the middle, as with all other hooks.  
+The changes are listed here:
 \begin{center}
   \small\ttfamily
   \begin{tabular}{l@{$\;\rightarrow\;$}l}
@@ -290,30 +310,36 @@ the name is in the middle, as with other hooks.  The changes are listed here:
 \end{center}
 
 Since this is a breaking change, the old names will still work for a
-while, so that users and package authors have enough time to adjust, but 
-a warning will be issued when the old names are used.  Eventually the
-deprecated names will be turned into errors and then removed completely.
+while so that users and package authors have enough time to adjust; 
+but a warning will be issued when the old names are used.  
+Eventually the deprecated names will be turned into errors and 
+then removed completely.
 %
 \githubissue{648}
 
 
-\subsection{Changed how \cs{RemoveFromHook} treats code that is not in the hook}
+\subsection{\cs{RemoveFromHook} with a missing code label}
 
-In the first version of \cs{RemoveFromHook}, in case the code label
-being removed didn't exist in the hook, a ``removal order'' would be
-queued, and the next time something tried to add that label to the hook,
+In the first version of \cs{RemoveFromHook}, when the code label
+to be removed didn't exist in the hook a ``removal order'' would be
+queued; and then, the next time something tried to add that label to the hook,
 this \cs{AddToHook} action would be cancelled by the removal order, so that no code
-would be added that one time.  This was so that in principle package loading
-order wouldn't matter.  However, this implementation didn't work quite as
+would be added that one time.  This was so that, in principle, package loading
+order wouldn't matter.  
+%
+However, this implementation didn't work as
 intended because, while two \cs{AddToHook} actions with a given label would be
 removed by a single \cs{RemoveFromHook}, one \cs{RemoveFromHook} could
-not cancel two \cs{AddToHook} actions for that label; this asymmetry caused
-confusion and was a recipe for further problems.
-
-The implementation has been changed so that \cs{RemoveFromHook} now removes only code
-labels that already exist in a hook, and will display a warning if there s no such code label.
-When this is used across packages for removing code in a hook, the
-\texttt{voids} relation should be used instead:  this relation is
+not cancel two \cs{AddToHook} actions for that label; this caused
+confusion and also led to further problems.
+
+The implementation has now been changed, so that 
+\cs{RemoveFromHook} removes only code
+labels that already exist in a hook: it will display a warning if there is no such code label.
+%%  CCC meaning?? :  
+%% When this is used across packages 
+For removing code from a hook, the
+\texttt{voids} relation should preferably be used instead: this relation is
 non-destructive (meaning it can be later reverted by using another relation), and so
 it is truly independent of package loading order. 
 %% CCC so it should be preferred.
@@ -321,12 +347,9 @@ it is truly independent of package loading order.
 \githubissue{625}
 
 
+%% \subsection{???}
 
-
-\subsection{???}
-
-%
-\githubissue{000}
+%% \githubissue{000}
 
 
 
@@ -334,7 +357,7 @@ it is truly independent of package loading order.
 \section{New or improved commands}
 
 
-\subsection{Added \cs{PackageNote} and \cs{ClassNote}}
+\subsection{\cs{PackageNote} and \cs{ClassNote} added}
 
 \LaTeX{} offers these three commands:\cs{PackageError} to signal errors that stop
 processing; \cs{PackageWarning} to generate a warning message on the
@@ -342,28 +365,31 @@ terminal but continue with the processing; and   \cs{PackageInfo}
 to provide some information that is only written to the \texttt{.log}
 file but not sent to the terminal.
 %
-What hasn't existed up to now is a way to provide some
+What has not existed up to now is a way to provide 
 information on the terminal that identifies itself as coming from
-a specific package but which is not claiming to be a warning. (Packages that wanted to write to the terminal used \cs{PackageWarning}
-even though the information wasn't really warning the user.)  We have therefore
+a specific package but which does not claim to be a warning. (Packages that wanted to write to the terminal used \cs{PackageWarning}
+even though the information wasn't really a warning.)  
+
+We have therefore
 now added \cs{PackageNote} and \cs{PackageNoteNoLine}, that identify
 themselves as \enquote{informational}, but that still go to the terminal and
 not only to the transcript.
 % CCC ?? And: say what the NoLine means? 
-Similar commands exist for classes and so there too we have added the missing
-\cs{ClassNote} and \cs{ClassNoteNoLine}.
+Similar commands exist for classes and so there too we have 
+added the two new commands \cs{ClassNote} and \cs{ClassNoteNoLine}.
 %
 \githubissue{613}
 
 
-\subsection{New implementation for \cs{counterwithin}}
+\subsection{New argument for \cs{counterwithin/without}}
 
 The commands \cs{counterwithout} and \cs{counterwithin} each now has
 an additional optional argument, similar to the command 
-%% so it becomes a drop-in replacement for
+%% CCC so it becomes a drop-in replacement for
  \cs{numberwithin} from \pkg{amsmath}.  
-This optional argument is used to
-specify the format of the counter, such as \cs{roman}, the default value being \cs{arabic}.
+This optional argument 
+specifies the format of the counter, such as \cs{roman}, 
+the default value being \cs{arabic}.
 
 
 
@@ -371,14 +397,14 @@ specify the format of the counter, such as \cs{roman}, the default value being \
 \subsection{New default for \cs{tracinglostchars}}
 
 In 2021 all \TeX{} engines were enhanced so that \cs{tracinglostchars} 
-supported the extra value \texttt{3}, tyat turns missing
+supported the extra value \texttt{3}, that turns missing
 characters into errors and not just warnings. 
 %
 This engine change made us
 realize that \LaTeX{} should set a better default value for this parameter
 (previously, the warning was written only to the transcript file).
 Using the now available \texttt{3} as the default would really be best, but for
-compatibility reasons we only set it to \texttt{2} in the kernel.
+compatibility reasons we have only set it to \texttt{2} in the kernel.
 %
 However, we recommend adding \cs{tracinglostchars}\texttt{=3} to the
 preamble of documents: this is because having missing glyphs in the output is definitely an
@@ -386,19 +412,23 @@ error and should therefore be flagged as such (to ensure that it gets proper att
 
 
 
-\subsection{Provide tests for package and class loading}
+\subsection{Tests for package and class loading}
 
-To test if a package was loaded you can now use \cs{IfPackageLoadedTF}
+To test whether a package has been loaded you can now use \cs{IfPackageLoadedTF}
 \Arg{package} \Arg{true} \Arg{false} and, based on the result, execute
 different code. It is also possible to check whether the package was loaded
 with certain options. This is done with
 \cs{IfPackageLoadedWithOptionsTF}. It takes four arguments:
-\Arg{package}\Arg{option-list}\Arg{true}\Arg{false}. It uses the
-\meta{false} code if at least one option in the \meta{option-list} has
-not been used during loading, or if the package hasn't been loaded at all.
+\Arg{package}\Arg{option-list}\Arg{true}\Arg{false}. 
 %
-Both commands can be used anywhere in the document, i.e., they are not
-restricted to the preamble.\footnote{This is now also true for the
+It uses the \meta{false} code if at least one option in 
+the \meta{option-list} was 
+not specified when loading the package, or if the package 
+hasn't been loaded at all.
+%
+Both commands can be used anywhere in the document, i.e., 
+they are not restricted to the preamble.%
+\footnote{This is now also true for the
   corresponding internal commands, e.g., \cs{@ifpackageloaded}, that
   had this restriction in the past.}
 
@@ -408,40 +438,37 @@ For classes, similar commands (with \texttt{Package} replaced by
 \githubissue{621}
 
 
-
-
-
-
-
-
-%% NOT YET CHECKED
 \subsection{New \cs{ShowFloat} command}
 
 The package \pkg{fltrace} offers a (fairly low-level but very
-detailed) way to trace \LaTeX's float mechanism. This can help to
-understand why a certain float is placed into a certain region or why
-it shows up unexpectedly on a later page.  \LaTeX{} stores floats in
-registers named \cs{bx at A}, \cs{bx at B}, etc., and these names show up in
-the tracing information.
-%
-To display their contents you can now say
+detailed) way to trace \LaTeX's float mechanism. This can help in
+understanding why a certain float is placed into a certain 
+region, or why it shows up unexpectedly on a later page.  
+\LaTeX{} stores floats in registers named \cs{bx at A}, \cs{bx at B}, etc., 
+and these names show up in the tracing information.
+
+To display the contents of a float register, you can now say
 \verb=\ShowFloat{=\textit{identifier}\verb=}= where
 \textit{identifier} is the uppercase letter (or letters) after
-\texttt{bx@} in the register name shown in the tracing.  If additional
-registers have been allocated with \cs{extrafloats}, the
+\texttt{bx@} in the register name shown in the tracing.  
+If additional
+registers have been allocated (with \cs{extrafloats}), the
 \textit{identifier} can also be a number. The command is generally
-available, whether or not you have loaded \pkg{fltrace}, because it is
-also useful when interpreting the tracing output of the
+available, whether or not you have loaded \pkg{fltrace}, because 
+it is also useful when interpreting the tracing output of the
 \pkg{fewerfloatpages} package.
 
 
-\subsection{Add \pkg{ltcmd} support for \cs{NewCommandCopy} and \cs{ShowCommand}}
+\subsection{\cs{NewCommandCopy}, \cs{ShowCommand} now in \pkg{ltcmd}}
 
-Since the 2020-10-01 release (see~\cite{34:ltnews32}), \LaTeX{} has provided
-\cs{NewCommandCopy} to copy robust commands, and \cs{ShowCommand} to
-show their definitions on the terminal.  In the same release, the
-\pkg{xparse} package was integrated into the kernel (as
-\pkg{ltcmd}).  However, the extended support for \cs{NewCommandCopy} and
+Since the 2020-10-01 release (see~\cite{34:ltnews32}), \LaTeX{} 
+has provided \cs{NewCommandCopy} to copy robust commands, 
+and \cs{ShowCommand} to show their definitions on the terminal.  
+%
+In that same release, the \pkg{xparse} package was integrated 
+into the kernel (as \pkg{ltcmd}).  
+%
+However, the extended support for \cs{NewCommandCopy} and
 \cs{ShowCommand} was not implemented in \pkg{ltcmd}.  The present
 \LaTeX{} release implements this support, so now commands
 defined with \pkg{xparse}/\pkg{ltcmd} can be copied, and their definitions
@@ -451,7 +478,7 @@ can be easily shown on the terminal without the need for ``\cs{csname} gymnastic
 
 
 
-\subsection{Undo some math alphabet allocations if necessary}
+\subsection{Undo math alphabet allocations if necessary}
 
 \TeX{}, or more exactly the 8-bit versions of \TeX, such as \pdfTeX{}
 have a hard limit of 16 on the number of different math font groups
@@ -459,9 +486,12 @@ have a hard limit of 16 on the number of different math font groups
 declared (by a package or in the preamble) an extra math group is allocated, 
 and the same happens for each math alphabet, (such as \cs{mathbf}) that
 gets used anywhere in the document. Up to now, these math
-alphabet allocations were permanent, even if they were used only once
-and then never; the result was that in complex documents you
-could easily run out of available math font groups. The only remedy then was to
+alphabet allocations were permanent, even if they were 
+used only once;
+%% CCC and then never; 
+the result was that in complex documents you
+could easily run out of available math font groups. 
+The only remedy for this was to
 define your own math version, which is a complicated and cumbersome process.
 
 This situation has has now been improved by the introduction of a new counter
@@ -470,50 +500,53 @@ This situation has has now been improved by the introduction of a new counter
 slots are assigned only locally when a new math alphabet (and a new
 math group) is needed.  
 %
-Once the current formula is finished, every such further allocation is undone, giving you a fighting chance of being able to use
-different new math alphabets in the next formula. 
+Once the current formula is finished, every such further (local) 
+allocation is undone, giving you a fighting chance of being 
+able to use different new math alphabets in the next formula. 
 %
 The default value of \texttt{localmathalphabets} is 2,
 but if you need more local alphabets because of the complexity of your
-document, you can set this to a higher value, e.g., 4 or 5. Setting it
-even higher is possible, but this would seldom be useful because many group slots will be
-taken up by symbol fonts and those are always permanently allocated,
+document, you can set this to a higher value, e.g., 4 or 5. 
+Setting it even higher is possible, but this would seldom 
+be useful because many group slots will be taken up by 
+symbol fonts and such slots are always permanently allocated,
 whether used or not.
 %
 \githubissue{676}
 
+%% \subsection{???}
 
+%% \githubissue{000}
 
 
 
-\subsection{???}
-
-%
-\githubissue{000}
-
-
 
 
 \section{Code improvements}
 
-\subsection{Detect ``\cs{endfoo}'' when using \cs{NewDocumentEnvironment}}
+\subsection{Check ``\cs{endfoo}'' in \cs{NewDocumentEnvironment}}
 
+%% CCC needs further visual improvement
 The \cs{newenvironment} command has always checked that neither \cs{foo} nor
 \cs{endfoo} exists before creating a \texttt{foo} environment. 
-In contrast, \cs{NewDocumentEnvironment} has to date checked only \cs{foo}.
+In contrast, \cs{NewDocumentEnvironment} 
+checked only for \cs{foo}.
+%% CCC removed since not understood.
 %% this reflects the fact that historically the code was 
 %% designed around the target of an entirely new format. 
+
 The behavior of \cs{NewDocumentEnvironment}
 now aligns with that of \cs{newenvironment}, except that it gives distinct errors
 concerning the existence of \cs{foo} and \cs{endfoo}.
 
 \subsection{Improve the error message ``\cs{begin} ended by''}
 
-In the past it was possible to get an error message stating something
+In the past it was possible to get an error message something
 like \verb=\begin{foo} ended by \end{foo}=. This could happen when the
 environment name was partly hidden inside a macro. It happened because the test was
-comparing the literal strings while the error message expanded those
-strings fully. This has now been changed to show a more sensible error
+comparing the literal strings while the error message fully expanded them. 
+%
+This has now been changed to show a more sensible error
 message in this instance.
 %
 \githubissue{587}
@@ -527,7 +560,7 @@ will work without needing a \verb|\DeclareUnicodeCharacter| declaration.
 \githubissue{593}
 
 
-\subsection{Use OpenType version of Latin Modern Upright Italic}
+\subsection{Use OpenType version of Latin Modern Upright Italic font}
 When a Latin Modern font is used with the TU encoding under \XeTeX\ or \LuaTeX\
 and fontshape \texttt{ui} is requested, \LaTeX\ now uses the OpenType
 version of the font instead of substituting the (T1-encoded) Type 1 version.
@@ -535,17 +568,17 @@ version of the font instead of substituting the (T1-encoded) Type 1 version.
 
 \subsection{Pick up all arguments to \cs{contentsline}}
 
-The \cs{contentsline} commands in the TOC file are always followed by
+A \cs{contentsline} command in the TOC file is always followed by
 four arguments, the last one being empty except when using the
 \pkg{hyperref} package. The \cs{contentsline} command itself only used the
-first three arguments and relied on the fourth being empty (and thus
+first three arguments and it relied on the fourth being empty (and thus
 doing no harm). But this assumption is not always correct, e.g., if
 you use \pkg{hyperref} and then remove 
 %%CCC What is "it" here:
 it from the preamble.
-
-So now we pick up all four arguments and save the last one away, so
-that it can be used by \pkg{hyperref}.
+%
+So now the code picks up all four arguments, saving the 
+last one away so that it can be used by \pkg{hyperref}.
 %
 \githubissue{633}
 
@@ -558,20 +591,18 @@ the callback handler indicates removal of the entire math list.
 %
 \githubissue{644}
 
+%% \subsection{???}
 
+%% \githubissue{000}
 
 
-\subsection{???}
-
-%
-\githubissue{000}
-
 
 
 
 \section{Bug fixes}
 
-\subsection{Replicate argument processors for all embellishments in command declarations}
+\subsection{Replicate argument processors for all\\ %%CCC ?? 
+    embellishments in command declarations}
 
 There was a bug in \pkg{ltcmd} (formerly \pkg{xparse}) that caused
 commands to misbehave if they were defined with embellishments and
@@ -591,7 +622,7 @@ will now correctly apply \cs{TrimSpaces} to both arguments.
 
 
 
-\subsection{Correct case changes for \cs{ij} and \cs{IJ}}
+\subsection{Case changing for \cs{ij} and \cs{IJ} fixed}
 
 
 The ligatures \enquote{\ij} and \enquote{\IJ}, as used in Dutch,
@@ -610,14 +641,14 @@ hyphenation results for words containing this ligature (when using the \texttt{O
 
 
 
-\subsection{Improve the handling of legacy \cs{bfdefault} changes}
+\subsection{Legacy font series default changes}
 
 In the past, changes to the font series defaults were made by directly
 altering \cs{bfdefault} or \cs{mddefault}.  Since 2020 there is now
-\cs{DeclareFontSeriesDefault} that allows more granular control,
-i.e., with that declaration you can alter the default for individual meta
-font families, for example, by only altering the bold settings for the
-sans serif family without changing it for \cs{rmfamily} or \cs{ttfamily}.
+\cs{DeclareFontSeriesDefault} that allows more granular control: 
+with this declaration you can alter the default for individual meta
+font families by, for example, changing the bold setting only for the
+sans serif family, without changing it for \cs{rmfamily} or \cs{ttfamily}.
 See~\cite{34:ltnews31} for more details.
 
 For backwards compatibility, changing \cs{bfdefault} with
@@ -625,15 +656,16 @@ For backwards compatibility, changing \cs{bfdefault} with
 for all meta families in one go. This alteration cannot be done when the
 \cs{renewcommand} happens and it was therefore delayed until the next
 time \cs{bfseries} or \cs{mdseries} was executed.
-
+%
 However, the problem with that
-approach was that any call to \cs{DeclareFontSeriesDefault} that
-happened in the mean time was overwritten, thus these two approaches didn't
-work well side by side.  This is a problem because older font packages
+approach was that any call to \cs{DeclareFontSeriesDefault} in the meantime was overwritten, thus these two approaches didn't
+work well side by side.  There was a problem because older font packages
 use the legacy method while newer ones use
-\cs{DeclareFontSeriesDefault}. This has now been corrected by changing
+\cs{DeclareFontSeriesDefault}. 
+
+This has now been resolved by changing
 \cs{DeclareFontSeriesDefault} to do any necessary resetting prior to
-setting new defaults.
+setting the new defaults.
 %
 \githubissue{663}
 
@@ -643,87 +675,82 @@ Previously you could not use the macro parameter character \texttt{\#}
 in inline functions
 within the argument of \cs{texbf} or similar text font commands.
 An internal definition is now guarded with \cs{unexpanded}
-so that \texttt{\#} no longer generates an error.
+so that the use of \texttt{\#} here no longer generates an error.
 %
 \githubissue{665}
 
+%% \subsection{???}
 
-\subsection{???}
+%% \githubissue{000}
 
-%
-\githubissue{000}
 
 
 \section{Changes to packages in the \pkg{graphics} category}
 
 
-\subsection{Key for alt text}
-A new key, \texttt{alt}, has been added to \verb|\includegraphics| to support the addition of a descriptive text that is important for accessibility.
-This key is unused by default but it can be used by extension packages and it provides support for other future possibilities.
+\subsection{New key, for alt text}
+A new key, \texttt{alt}, has been added to \verb|\includegraphics| to support the addition of descriptive text that is important for accessibility.
+This key is unused by default; it can be deployed by extension packages and it will provide useful support for other future possibilities.
 %
 \githubissue{651}
 
 
 \section{Changes to packages in the \pkg{tools} category}
 
-\subsection{\pkg{varioref}: Improve the handling of missing labels}
+\subsection{\pkg{varioref}: Improved handling of missing labels}
 
 If an undefined label is referenced, \pkg{varioref} makes a default
 definition so that later processing finds the right structure (two
 brace groups inside \cs{r@}\meta{label}) However, if \pkg{nameref} or
-\pkg{hyperref} is loaded, the data structure changes to five
-arguments, which led to low-evel errors in some cases. The code has now
+\pkg{hyperref} is loaded this data structure changes to having five
+arguments; this could cause low-evel errors in some cases. The code has therefore now
 been changed to avoid these errors.
 %
 \sxissue{603948}
 
-%% XXX END 03/10
-\subsection{\pkg{array}: Remove added  \cs{mathsurround} from \env{tabular}}
+\subsection{\pkg{array}: No \cs{mathsurround} around a \env{tabular}}
 
 A \env{tabular} environment is typeset (internally) as an \env{array}
-environment with special settings, and it therefore uses math mode. Since it is not in fact a math formula, this
-no extra space from \cs{mathsuround} shpuld be added (the spacing around the \env{tabular}
-should not get changed). 
+environment with special settings, and it therefore uses (hidden) math mode. 
+Since it is not in fact a math formula, 
+no extra space from \cs{mathsuround} should be added 
+(the spacing around the \env{tabular} should not get changed). 
 %
-Note that this bug has been present ``forever'', which shows that  \cs{mathsurround} is never used, or at least its use is never noticed.  Anyhow, this bug has now finally gotten fixed.
+Note that this bug has been present ``forever’’, which shows that  \cs{mathsurround} is never used, or at least its use is never noticed.  Anyhow, this bug has now finally gotten fixed.
 %
 \githubissue{614}
 
-\subsection{\pkg{longtable}: Improve behavior after a section heading}
-The \env{longtable} environment now sets the \cs{@nobreakfalse} flag to correct the typesetting when a table immediately follows a heading. Previously the 
-spacing and indentation changes that are required after a section heading were incorrectly triggered in
-a paragraph which followed the table.  
+\subsection{\pkg{longtable}: Improvements after a section heading}
+The \env{longtable} environment now sets the \cs{@nobreakfalse} flag 
+to correct the typesetting when a table immediately follows a heading. 
+Previously the spacing and indentation changes that are required 
+immediately after a section heading were incorrectly triggered 
+within the next paragraph (if any)
+following the table.  
 %
 A similar test for
-\cs{if at noskipsec} has been added, so that a table is placed after a run-in heading
-rather than appearing before that heading.
+\cs{if at noskipsec} has been added, so that a table is correctly placed after 
+a run-in heading rather than appearing before that heading.
 %
 \githubissue[s]{131 and 173}
 
-\subsection{???}
+%% \subsection{???}
 
-%
-\githubissue{000}
+%% \githubissue{000}
 
 
 \section{Changes to packages in the \pkg{amsmath} category}
-\subsection{Improve compability with hyperref}
+\subsection{Improved compatibility with \pkg{hyperref}}
 
-When \pkg{hyperref} is used, incrementing a counter creates anchors and this can affect spacing.
-For a long time \pkg{hyperref} patched the \env{equation} environment to 
-avoid some of the side effects. This patch has now been moved directly into \pkg{amsmath}.
-Additionally,
-a \cs{mathopen} has been added to avoid that the anchor affects a following unary symbol.
+This change in amsmath fixes a spacing problem caused by the
+method used in \pkg{hyperref} to change the \env{equation} environment.
 %
-\githubissue{652}
-
-\subsection{???}
-
+For simplicity, an explicit, low-level (hence possibly temporary) 
+patch has been added to \pkg{amsmath}: this consists of an extra, empty (hence invisible)
+\cs{mathopen} atom (with no mathematical meaning) at the start of the 
+environment’s mathematical content.
 %
-\githubissue{000}
-
-
-
+\githubissue{652}
 
 \medskip
 
@@ -752,3 +779,12 @@ a \cs{mathopen} has been added to avoid that the anchor affects a following unar
 
 
 \end{document}
+
+%%CCC original re hyperref/amsmath
+When \pkg{hyperref} is used, increkmenting a counter creates anchors and this can affect spacing.
+For a long time \pkg{hyperref} patched the \env{equation} environment to 
+avoid some of the side effects. This patch has now been moved directly into \pkg{amsmath}.
+Additionally,
+a \cs{mathopen} has been added to avoid that the anchor affects a following unary symbol.
+
+





More information about the latex3-commits mailing list.