diff --git a/base/doc/ltnews36.tex b/base/doc/ltnews36.tex index 54e06f4e8..bf06fdd42 100644 --- a/base/doc/ltnews36.tex +++ b/base/doc/ltnews36.tex @@ -143,16 +143,30 @@ \section{Introduction} -\emph{to be written} +The 2022-11 release of \LaTeX{} is largely a consolidation release +where we made a number of minor improvements to fix some bugs or +improve one or the other interface. +The only really important functionality that was added is described in +the next section: the ability to easily define document-level commands +and environments that accept a key/value list in one of its (usually +optional) arguments including the ability to determine if the argument +does contain such a key/value list or just a single +\enquote{classical} value. -\subsection{Auto-detecting key--value arguments} +For the \enquote{Tagged \LaTeX{} Project} this functionality is very +important because many document-level commands will need to accept +such key/value lists, for example, to specify alternative text or +overwrite default tagging if that becomes necessary in a document. + + +\section{Auto-detecting key--value arguments} To allow extension of the core \LaTeX{} syntax, \pkg{ltcmd} now supports a \texttt{={...}} modifier when grabbing arguments. This modifier instructs \LaTeX{} that the argument should be passed to the underlying code as -a set of keyvals. If the argument does not \enquote{look like} a set -of keyvals, it will be converted into a single key--value pair, with +a set of key/values. If the argument does not \enquote{look like} a set +of key/values, it will be converted into a single key--value pair, with the argument to \texttt{=} specifying the name of that key. For example, the \cs{caption} command could be defined as \begin{verbatim} @@ -161,15 +175,15 @@ \subsection{Auto-detecting key--value arguments} {...} \end{verbatim} which would mean that if the optional argument does \emph{not} -contain keyval data, it will be converted to a single keyval +contain key/value data, it will be converted to a single key/value pair with the key name \texttt{short-text}. Arguments which begin with \texttt{=,} are always interpreted as -keyvals even if they do not contain further \texttt{=} signs. +key/values even if they do not contain further \texttt{=} signs. Any \texttt{=} signs enclosed within \verb|$...$| or \verb|\(...\)|, i.e.~in inline math mode, are ignored, meaning that only \texttt{=} outside of math mode will generally cause -interpretation as keyval material. +interpretation as key/value material. In case the argument contains a \enquote{textual} \texttt{=} sign that is mistaken as key/value indicator you can hide it using a brace @@ -181,6 +195,9 @@ \subsection{Auto-detecting key--value arguments} However, because a \texttt{=} sign in math mode are already ignored, this should seldom be necessary. + +\section{A note for font package developers} + \subsection{Encoding subsets for \texttt{TS1} encoded fonts} The text companion encoding \texttt{TS1} is unfortunately not very @@ -206,7 +223,7 @@ \subsection{Encoding subsets for \texttt{TS1} encoded fonts} -\section{New or improved commands} +%\section{New or improved commands} \section{Code improvements} @@ -242,13 +259,38 @@ \subsection{EC sans serif at small sizes} \githubissue{879} + +\subsection{Improve font series handling with incorrect \texttt{.fd} files} + +By convention, the font series value is supposed to contain no +\texttt{m}, unless you refer to the \enquote{medium} series (which is +represented by a single \texttt{m}). For example, one should write +\texttt{c} for \enquote{medium weight, condensed width} and not +\texttt{mc}. This was one of the many space-conserving methods +necessary in the early days of \LaTeXe. + +Some older \texttt{.fd} files +do not obey that convention but use \texttt{mc}, \texttt{bm}, etc., in +their declarations. As a result, some font selection scheme +functionality was not working when confronted with such \texttt{.fd} +files. We have therefore augmented \cs{DeclareSymbolFont} and +\cs{SetSymbolFont} to strip their series argument from any surplus +\texttt{m} so that they do not unnecessarily trigger font +substitutions. Regardless of this support such +\texttt{.fd} files should get fixed by their maintainers. +% +\githubissue{918} + + + + \subsection{Detect nested \texttt{minipage} environments} Nesting of \texttt{minipage} environments is only partially supported in \LaTeX{} and can lead to incorrect output, such as overfull boxes or footnotes appearing in the wrong place; see~\cite[p.~106]{36:Lamport}. However, until now there was no warning -if that happpened. This has been changed and the environment now +if that happened. This has been changed and the environment now warns if you nest it in another \texttt{minipage} environment that already contains footnotes. % @@ -268,15 +310,6 @@ \subsection{Robust commands in package options} \githubissue{932} -\subsection{\LuaTeX\ callback efficiency improvement} - -The mechanism for providing the -\texttt{pre/post\_mlist\_to\_hlist\_filter} callbacks in \LuaTeX\ has -been improved to make it more reusable and to avoid overhead if these -callbacks are not used. -% -\githubissue{830} - \subsection{Improve \pkg{l3docstrip} integration into \pkg{docstrip}} @@ -293,26 +326,15 @@ \subsection{Improve \pkg{l3docstrip} integration into \pkg{docstrip}} \githubissue{903} -\subsection{Improve font series handling with incorrect \texttt{.fd} files} -By convention, the font series value is supposed to contain no -\texttt{m}, unless you refer to the \enquote{medium} series (which is -represented by a single \texttt{m}). For example, one should write -\texttt{c} for \enquote{medium weight, condensed width} and not -\texttt{mc}. This was one of the many space-conserving methods -necessary in the early days of \LaTeXe. +\subsection{\LuaTeX\ callback efficiency improvement} -Some older \texttt{.fd} files -do not obey that convention but use \texttt{mc}, \texttt{bm}, etc., in -their declarations. As a result, some font selection scheme -functionality was not working when confronted with such \texttt{.fd} -files. We have therefore augmented \cs{DeclareSymbolFont} and -\cs{SetSymbolFont} to strip their series argument from any surplus -\texttt{m} so that they do not unnecessarily trigger font -substitutions. Regardless of this support such -\texttt{.fd} files should get fixed by their maintainers. +The mechanism for providing the +\texttt{pre/post\_mlist\_to\_hlist\_filter} callbacks in \LuaTeX\ has +been improved to make it more reusable and to avoid overhead if these +callbacks are not used. % -\githubissue{918} +\githubissue{830} \subsection{Rule based ordering for \LuaTeX\ callback handlers} @@ -333,8 +355,11 @@ \subsection{Rule based ordering for \LuaTeX\ callback handlers} record this ordering constraint. For example \begin{verbatim} - luatexbase.add_to_callback('pre_shaping_filter', my_handler, 'my_name') - luatexbase.declare_callback_rule('pre_shaping_filter', 'my_name', 'before', 'other_name') +luatexbase.add_to_callback + ('pre_shaping_filter', my_handler, 'my_name') +luatexbase.declare_callback_rule + ('pre_shaping_filter', + 'my_name', 'before', 'other_name') \end{verbatim} will ensure that \verb+my_handler+ will always be called before the handler registered as \verb+other_name+. @@ -382,7 +407,7 @@ \subsection{Prevent \TeX{} from losing a \cs{smash}} \subsection{Resolve an issue with \cs{mathchoice} and \texttt{localalphabets}} -The code for keeping a number of math alphabetcs local (introduced in +The code for keeping a number of math alphabets local (introduced in 2021; see~\cite{36:ltnews34}) used \cs{aftergroup} to do some cleanup actions after a formula had finished. Unfortunately, \cs{aftergroup} can't be used inside the arguments of the \cs{mathchoice} primitive and as a result one @@ -400,14 +425,16 @@ \subsection{Reporting of unused global issues when using key--value processing} % \githubissue{938} -\section{Changes to packages in the \pkg{amsmath} category} + +%\section{Changes to packages in the \pkg{amsmath} category} + \section{Changes to packages in the \pkg{graphics} category} \subsection{Fix a \cs{mathcolor} bug} -The \cs{mathcolor} command intorduced in \cite{36:ltnews35} needs to +The \cs{mathcolor} command introduced in \cite{36:ltnews35} needs to scan for following sub and superscripts, but if it did so at the end of an alignment cell, e.g., in a \texttt{array} environment, the \texttt{\&} was evaluated too early causing some internal errors. This