summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltnews32.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-07-22 03:01:48 +0000
committerNorbert Preining <norbert@preining.info>2020-07-22 03:01:48 +0000
commitd3e0375ca41ebad2625c6fedf57992a8db8cd0ac (patch)
treee9e945728ba1dd3a4f802253d34e2fabc56eef34 /macros/latex-dev/base/ltnews32.tex
parentbd36712a3846fe8b17a13b5edfdcf10dc8787235 (diff)
CTAN sync 202007220301
Diffstat (limited to 'macros/latex-dev/base/ltnews32.tex')
-rw-r--r--macros/latex-dev/base/ltnews32.tex160
1 files changed, 143 insertions, 17 deletions
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.