[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.