From d3e0375ca41ebad2625c6fedf57992a8db8cd0ac Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 22 Jul 2020 03:01:48 +0000 Subject: CTAN sync 202007220301 --- macros/latex-dev/base/ltnews32.tex | 160 +++++++++++++++++++++++++++++++++---- 1 file changed, 143 insertions(+), 17 deletions(-) (limited to 'macros/latex-dev/base/ltnews32.tex') diff --git a/macros/latex-dev/base/ltnews32.tex b/macros/latex-dev/base/ltnews32.tex index fdf8211ef0..fdea39b6e3 100644 --- a/macros/latex-dev/base/ltnews32.tex +++ b/macros/latex-dev/base/ltnews32.tex @@ -187,6 +187,56 @@ the kernel code; these are deprecated but still available by explicitly loading \pkg{xparse}. All other argument types \emph{are} now available directly within the \LaTeXe{} kernel. + + + + + +\section{A hook management system for \LaTeX{}} + +With the fall 2020 release of \LaTeX{} we provide a general hook +management system for the kernel and for packages. This will allow +packages to safely add code to various kernel and package hooks and if +necessary define rules to reorder the code in the hooks to resolve +typical package loading order issues. This hook system is written in +the L3 programming layer and thus forms the first larger application +within the kernel that makes use of the \LaTeX3 functionality now +available (if we discount \pkg{xparse} which was already available for +a long time as a separate package). + +The file \texttt{lthooks.dtx} holds the core management code for hooks +and defines basic hooks for environments (as previously offered by +\pkg{etoolbox}), \texttt{ltshipout.dtx} provides kernel hooks into the +shipout process (making packages like \pkg{atbegshi}, +etc.\ unnecessary) and the file \texttt{ltfilehook.dtx} holds +redefinition for commands like \cs{input} or \cs{usepackage} so that +they offer hooks in a similar fashion to what is provided by the +\pkg{filehook} package. + +At the moment the integration is lightweight, overwriting definitions +made earlier during format generation (though this will change after +more thorough testing). For that reason the documention isn't in its +final form either and you have to read through three different +documents: +\begin{description} + \item[\texttt{lthooks-doc.pdf}] Core management interface and basic + hooks for environments provided by the kernel. + + \item[\texttt{ltshipout-doc.pdf}] Hooks accessible while a page is + being shipped out. + + \item[\texttt{ltfilehook-doc.pdf}] Hooks used when reading a file. +\end{description} +For those who wish to also study the code, replace \texttt{-doc} with +\texttt{-code}, e.g., \texttt{lthooks-code.pdf}. All documents should +be accessible via \texttt{texdoc}, e.g., +\begin{verbatim} + texdoc lthooks-doc +\end{verbatim} +should open the core documentation for you. + + + \section{Other changes to the \LaTeX{} kernel} @@ -259,9 +309,18 @@ can also contain spaces with any leading and trailing spaces stripped from the individual filenames while the spaces \emph{in} the file names will remain intact. % -\githubissue{217} +\githubissue[s]{217 and 218} +\subsection{Avoid extra line in \cs{centering}, \cs{raggedleft} or \cs{raggedright}} + +If we aren't justifing paragraphs then a very long word (longer than a +line) could result in an unnecessary extra line in order to prevent a +hyphen in the second-last line of the paragraph. This is now avoided +by setting \cs{finalhyphendemerits} to zero in unjustified settings. +% +\githubissue{274} + \subsection{Set a non-zero \cs{baselineskip} in text scripts} @@ -323,7 +382,7 @@ used in bold context (e.g., inside \cs{textbf}. Now that it is possible in \LaTeX{} to specify different \enquote{\texttt{bf}} defaults based for each of the three meta families (\texttt{rm}, \texttt{sf} and \texttt{tt}) via \cs{DeclareFontSeriesDefault}, it is -not any longer easy to answer the question \enquote{am I typsetting in +not any longer easy to answer the question \enquote{am I typesetting in a bold context?}. To help with this problem a new command was provided: \begin{quote} \cs{IfFontSeriesContextTF}\Arg{context}\\ @@ -404,7 +463,7 @@ To implement compatibility code or to ensure that certain features are available it is helpful and often necessary to check the date of the format or that of a package or class and execute different code based on the result. For that \LaTeX\ only had some internal commands -(\cs{@ifpackagelater} and \cs{@ifclasslater}) for testting package or +(\cs{@ifpackagelater} and \cs{@ifclasslater}) for testing package or class names but nothing really for testing the format date. For the latter one had to resort to some obscure command \cs{@ifl@t@r} that, given its cryptic name, was clearly never intended for use even in @@ -447,26 +506,38 @@ are ignored as elsewhere. \githubissue{327} -\subsection{Record the counter name stepped by \cs{refstepcounter}} -\cs{refstepcounter} now stores the name of counter in \cs{\@currentcounter}. -This allows packages like \pkg{zref} and \pkg{hyperref} to store the name without -having to patch \cs{refstepcounter}. +\subsection{Merge \pkg{l3docstrip} into \pkg{docstrip}} + +The file \pkg{l3docstrip.tex} offered a small extension over the +original \pkg{docstrip.tex} file supporting the +\texttt{\%\string<@@=\meta{module}\string>} syntax of \pkg{expl3}. +This has now been merged into \pkg{docstrip} so that it can now be +used both for traditional \texttt{.dtx} files and those containing +code written in the L3 programming layer language. % -\githubissue{300} +\githubissue{337} -\subsection{Add support for Unicode soft hyphens} +\subsection{Support vertical typesetting with \pkg{doc}} -For a long time, the UTF-8 option for \pkg{inputenc} made the Unicode -soft hyphen character (U+00AD) an alias for the \LaTeX\ soft hyphen -\cs{-}. The Unicode engines \XeTeX{} and \LuaTeX{} behaved -different though: They either ignored U+00AD or interpreted it as an -unconditional hyphen. This inconsistency is fixed now and \LaTeX{} -always treats \texttt{U+00AD} as \cs{-}. +The \texttt{macrocode} environment uses a \texttt{trivlist} internally +and as part of this sets up the \cs{@labels} box to contain some +horizontal skips, but that box is never used. As a result this +generates an issue in some circumstances if the typesetting direction +is vertical. This has now been corrected to support such use cases as +well. % -\githubissue{323} +\githubissue{344} + +\subsection{Record the counter name stepped by \cs{refstepcounter}} + +\cs{refstepcounter} now stores the name of counter in \cs{@currentcounter}. +This allows packages like \pkg{zref} and \pkg{hyperref} to store the name without +having to patch \cs{refstepcounter}. +% +\githubissue{300} \subsection{Native Lua\TeX\ behaviour for \cs{-}} @@ -489,6 +560,40 @@ now allowed. % \githubissue{335} +\subsection{Spacing commands moved from \pkg{amsmath} to the kernel} +Originally \LaTeX{} only provided a small set of spacing commands +for use in text and math, some of the commands like \cs{;} were +only supported in math mode. \texttt{amsmath} normalized and +provided all of them in text and math. This code has now been +moved to the kernel so that it is generally available. +% +\githubissue{303} + +\begin{tabular}{lll} +command name(s) & math & text\\\hline +\cs{,} \cs{thinspace} & $x\,x$ & x\,x\\ +\cs{!} \cs{negthinspace} & $x\!x$ & x\!x\\ +\cs{:} \cs{>} \cs{medspace} & $x\:x$ & x\:x\\ +\cs{negmedspace} & $x\negmedspace x$ & x\negmedspace x\\ +\cs{;} \cs{thickspace} & $x\;x$ & x\;x\\ +\cs{negthickspace} & $x\negthickspace x$ & x\negthickspace x\\ +\end{tabular} + + + +\subsection{Access raw glyphs in \LuaTeX\ without reloading fonts} + +\LaTeX's definitions for \cs{textquotesingle}, \cs{textasciigrave}, and +\cs{textquotedbl} for the TU encoding in \LuaTeX\ need special handling to +stop the shaper from replacing these characters with curly quotes. +This used to be done by reloading the current font without the \texttt{tlig} +feature, but that came with multiple disadvantages: It behaves different +than the corresponding \XeTeX\ code and it is not very efficient. +This code has now been replaced with a implementation which injects a +protected glyph nodes which is not affected by font shaping. +% +\githubissue{165} + \section{Changes to packages in the \pkg{graphics} category} @@ -535,6 +640,25 @@ in such documents. % \githubissue{297} +\subsection{\pkg{array}: Fix for \cs{firsthline} and \cs{lasthline}} + +Replacing \cs{hline} with \cs{firsthline} or \cs{lasthline} could lead +in some cases to an increase of the tabular width. This has now been +corrected. +% +\githubissue{322} + +\subsection{\pkg{varioref}: Support Japanese as a language option} + +The package now recognizes \texttt{japanese} as a language option. +The extra complication is that for gramatical reasons \cs{vrefrange} +needs a structure different from all other languages currently +supported. To accomodate for this \cs{vrefrangeformat} was added to +all languages. +% +\githubissue{352} + + \subsection{\pkg{xr}: Support for spaces in filenames} The commannd \cs{externaldocument}, provided by \pkg{xr}, now also @@ -543,6 +667,8 @@ supports filenames with spaces, just like \cs{include} and % \githubissue{223} + + \section{Changes to packages in the \pkg{amsmath} category} \subsection{Placement corrections for two accent commands} @@ -583,7 +709,7 @@ Furthermore, the traditional model to define and select languages is still the preferred one in monolingual documents, is being extended with a new model (which can be called \enquote{horizontal}) based on \emph{services} provided by \pkg{babel}, which allows to define and -redefine locales with the help of simple |ini| files based on +redefine locales with the help of simple \texttt{ini} files based on key/value pairs. Babel provides about of 250 of these files, which have been generated with the help of the Unicode Common Language Data Repository. -- cgit v1.2.3