From d3e0375ca41ebad2625c6fedf57992a8db8cd0ac Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
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

