summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltnews32.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-01 03:03:37 +0000
committerNorbert Preining <norbert@preining.info>2020-09-01 03:03:37 +0000
commita9726d029d99c128a7abb22e73074ba0a1ce838e (patch)
treea31816862a76ed100de957dc93c04447f254132c /macros/latex-dev/base/ltnews32.tex
parent568fe838cef40f671837d9348dd73c93d9ea962b (diff)
CTAN sync 202009010303
Diffstat (limited to 'macros/latex-dev/base/ltnews32.tex')
-rw-r--r--macros/latex-dev/base/ltnews32.tex215
1 files changed, 176 insertions, 39 deletions
diff --git a/macros/latex-dev/base/ltnews32.tex b/macros/latex-dev/base/ltnews32.tex
index fdea39b6e3..36a37b746a 100644
--- a/macros/latex-dev/base/ltnews32.tex
+++ b/macros/latex-dev/base/ltnews32.tex
@@ -46,6 +46,7 @@
\providecommand\Arg[1]{\texttt\{\meta{#1}\texttt\}}
+\providecommand\eTeX{\hologo{eTeX}}
\providecommand\XeTeX{\hologo{XeTeX}}
\providecommand\LuaTeX{\hologo{LuaTeX}}
\providecommand\pdfTeX{\hologo{pdfTeX}}
@@ -138,7 +139,12 @@
\section{Introduction}
-This document is under construction \ldots
+The 2020-10-01 release of \LaTeX{} shows that work on improving
+\LaTeX{} has again intensified. The two most important new features
+are the kernel support for \pkg{xparse} and the introduction of the
+new hook management system for \LaTeX{}, but as you can see there are
+many more smaller enhancements and bug fixes added to the kernel and
+various packages.
@@ -208,23 +214,23 @@ 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
+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
+more thorough testing). For that reason the documentation 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
@@ -277,7 +283,7 @@ always treats \texttt{U+00AD} as \cs{-}.
\subsection{Fix capital accents in Unicode engines}
In Unicode engines the capital accents such as \cs{capitalcedilla},
-etc.\ have been implemented as trival short hands for the normal
+etc., have been implemented as trivial shorthands for the normal
accents (because other than Computer Modern virtually no fonts support
them), but that failed when \pkg{hyperref} got loaded. This has been
corrected.
@@ -288,7 +294,7 @@ corrected.
\subsection{Support \pkg{calc} in various kernel commands}
-The \cs{hspace}, \cs{vspace}, \cs{addvspace}, \cs{\textbackslash} and
+The \cs{hspace}, \cs{vspace}, \cs{addvspace}, \cs{textbackslash} and
other commands simply passed their argument to a \TeX{} primitive to
produce the necessary space. As a result it was impossible to specify
anything other than a simple dimension value in such arguments. This
@@ -297,6 +303,20 @@ these commands.
%
\githubissue{152}
+\subsection{Support \eTeX\ length expressions in \texttt{picture} coordinates}
+
+Picture mode coordinates specified with \texttt{(\_,\_)} previously
+accepted multiples of \cs{unitlength}. They now also allow \eTeX\ length
+expressions (as used by the \cs{glueexpr} primitive although all uses
+in \texttt{picture} mode are non stretchy).
+
+So valid uses include \verb|\put(2,2)| as previously,
+ but now also uses such as \verb|\put(\textwidth-5cm,0.4\textheight)|.
+
+Note that you can only use expressions with lengths, \verb|\put(1+2,0)| is not
+supported.
+
+
\subsection{Spaces in filenames of included files}
File names containing spaces lead to unexpected results when used in
@@ -314,7 +334,7 @@ names will remain intact.
\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
+If we aren't justifying 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.
@@ -336,7 +356,7 @@ been adjusted.
\subsection{Spacing issues when using \cs{linethickness}}
In some circumstances the use of \cs{linethickness} introduced a
-spurious space that shifted objects in a \texttt{picture} environments
+spurious space that shifted objects in a \texttt{picture} environment
to the right. This has been corrected.
%
\githubissue{274}
@@ -346,13 +366,13 @@ to the right. This has been corrected.
\subsection{Better support for the legacy series default interface}
In the initial implementation of \LaTeX's font selection scheme (NFSS)
-changes to any default where always carried out by redefining some
+changes to any default where carried out by redefining some
commands, e.g., \cs{seriesdefault}. In 2019 we introduced various
-extensions and with it new methods of customising certain parts of
+extensions and with it new methods of customizing certain parts of
NFSS, e.g., the recommended way for changing the series default(s) is
now through \cs{DeclareFontSeriesDefault}~\cite{32:ltnews31}. In this
release we improved the support for legacy documents using the old
-method was improved to cover additional edge cases.
+method to cover additional edge cases.
%
\githubissue[s]{306,315}
@@ -367,7 +387,7 @@ e.g.,
\DeclareFontSeriesDefault[tt]{bf}{bm}
\end{verbatim}
then a switch between the main document families, e.g.,
-\verb=\ttfamily...\rmfamily= did not always correctly continued
+\verb=\ttfamily...\rmfamily= did not always correctly continue
typesetting in medium or bold series if that involved adjusting the
values used by \verb=\mdseries= or \verb=\bfseries=. This has now
been corrected.
@@ -421,8 +441,8 @@ been fixed.
\subsection{Adjusting \texttt{fleqn}}
In \pkg{amsmath} the \cs{mathindent} parameter used with the
-\texttt{fleqn} design is a rubber length paramter allowing for setting
-it to a value such as \texttt{1em minus 1em}, i.e., so the the normal
+\texttt{fleqn} design is a rubber length parameter allowing for setting
+it to a value such as \texttt{1em minus 1em}, i.e., so that the normal
indentation can be reduced in case of very wide math displays.
This is now also supported by the \LaTeX{} standard classes.
@@ -440,7 +460,7 @@ equation number.
(zero-sized boxes whose content sticks out to the left or right,
respectively) but there isn't a corresponding \cs{clap} command that
centers the material. This missing command was added by several
-addon packages, e.g., \pkg{mathtools}, and has now been added to the
+packages, e.g., \pkg{mathtools}, and has now been added to the
kernel.
@@ -451,7 +471,7 @@ When using the \LaTeX{}~2.09 legacy math alphabet interface, e.g.,
was added to the formula in case the math alphabet was used for the first
time. In some cases this math atom would change the spacing, e.g.,
change the unary minus sign into a binary minus in the above example. This
-has finally be fixed.
+has finally been fixed.
%
\gnatsissue{latex}{3357}
@@ -468,7 +488,7 @@ 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
package or class code. Furthermore, even the existing interface
-commands where defective as they are testing for \enquote{equal or
+commands were defective as they are testing for \enquote{equal or
later} and not for \enquote{later} as their names indicate.
We have therefore introduced three new CamelCase commands as the
@@ -506,14 +526,70 @@ are ignored as elsewhere.
\githubissue{327}
+\subsection{Provide a way to copy robust commands\ldots}
+
+With the previous \LaTeXe{} release, several user-level commands were
+made robust, so the need for a way to create copies of these commands
+(often to redefine them) increased, and the \LaTeXe{} kernel didn't have
+a way to do so. Previously this functionality was provided in part by
+Heiko Oberdiek's \pkg{letltxmacro} package, which allows a robust
+command \verb=\foo= to be copied to \verb=\bar= with
+\verb=\LetLtxMacro\bar\foo=.
+
+From this release onwards, the \LaTeXe{} kernel provides
+\cs{NewCommandCopy} (and \verb=\Renew...= and \verb=\Declare...=
+variants) which functions almost like
+\verb=\LetLtxMacro=. To the end user, both should work the same way,
+and one shouldn't need to worry about the definition of the command:
+\cs{NewCommandCopy} should do the hard work.
+
+\cs{NewCommandCopy} knows about the different types of definitions from
+the \LaTeXe{} kernel, and also from other packages, such as
+\pkg{xparse}'s command declarations like \cs{NewDocumentCommand}, and
+\pkg{etoolbox}'s \cs{newrobustcmd}, and it can be extended to cover
+further packages.
+%
+\githubissue{239}
+
+
+\subsection{\ldots\ and a way to \cs{show} them}
+
+It is sometimes necessary to look the definition of a command, and often
+one not only doesn't know where that command is defined, but doesn't
+know if it gets redefined by some package, so often enough looking at
+the source doesn't help. The typical way around this problem is to use
+\TeX's \cs{show} primitive to look at the definition of a command, which
+works fine until the command being \cs{show}n is robust. With
+\verb=\show\frac= one sees
+\begin{verbatim}
+>> \frac=macro:
+->>\protect \frac .
+\end{verbatim}
+which is not very helpful. To show the actual command the user needed to
+notice that the real definition of \cs{frac} is in the \verb*=\frac = %*
+macro and do \verb=\expandafter\show\csname frac\space\endcsname=.
+
+But with the machinery for copying robust commands in place it is
+already possible to examine a command and detect (as far as a macro
+expansion language allows) how it was defined. \cs{ShowCommand} knows
+that and with \verb=\ShowCommand\frac= the terminal will show
+\begin{verbatim}
+>> \frac=robust macro:
+->>\protect \frac .
+
+>> \frac =\long macro:
+#1#2->>{\begingroup #1\endgroup \over #2}.
+\end{verbatim}
+%
+\githubissue{373}
\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
+This has been merged into \pkg{docstrip} so that it can now be
+used for both traditional \texttt{.dtx} files and those containing
code written in the L3 programming layer language.
%
\githubissue{337}
@@ -533,19 +609,19 @@ well.
\subsection{Record the counter name stepped by \cs{refstepcounter}}
-\cs{refstepcounter} now stores the name of counter in \cs{@currentcounter}.
+\cs{refstepcounter} now stores the name of the 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{-}}
+\subsection{Native Lua\TeX\ behavior for \cs{-}}
\LaTeX\ changes \cs{-} to add a discretionary hyphen even if \cs{hyphenchar}
is set to $-1$. This change is not necessary under Lua\TeX\ because in there
\cs{-} is not affected by \cs{hyphenchar} in the first place. Therefore this
-behaviour has been changed to ensure that Lua\TeX's (language specific)
+behavior has been changed to ensure that Lua\TeX's (language specific)
hyphenation characters are respected by \cs{-}.
@@ -587,14 +663,37 @@ command name(s) & math & text\\\hline
\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
+feature, but that came with multiple disadvantages: It behaves differently
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.
+This code has now been replaced with an implementation which injects a
+protected glyph node which is not affected by font shaping.
%
\githubissue{165}
+\subsection{Added a fourth empty argument to \cs{contentsline}}
+
+\LaTeX's writes with \cs{addcontentsline} a \cs{contentsline}
+command with three arguments to the \texttt{.toc} and similar files.
+\pkg{hyperref} redefines \cs{addcontentsline} to write
+a fourth argument. The change unifies the number of arguments
+by writing an additional empty brace group.
+
+
+
+\subsection{Lua\TeX\ callback \texttt{new\_graf} made \texttt{exclusive}}
+
+Corrected an incorrect callback type which caused return values from the
+\texttt{new\_graf} callback to be ignored and paragraph indentation to be
+suppressed. In the new version, only one \texttt{new\_graf} callback handler
+can be active at a time which allows this handler to take full control of
+paragraph indentation.
+%
+\githubissue{188}
+
+
+
+
\section{Changes to packages in the \pkg{graphics} category}
@@ -606,6 +705,37 @@ to the log file, because of a typo in the check. This has been corrected.
%
\gnatsissue{graphics}{3635}
+\subsection{Specifying viewport in the \pkg{graphics} package}
+Specifying a BoundingBox does not really have meaning when including non-EPS graphics in
+\pdfTeX\ and \LuaTeX. For some years the \pkg{graphicx} package
+\texttt{bb} key has been interpreted (with a warning) as a
+\texttt{viewport} key. This feature has been added to the two-argument
+form of \verb|\includegraphics| which is mostly used in the
+\pkg{graphics} package. \verb|\includegraphics[1,2][3,4]{file}| will
+be interpreted in \pdfTeX\ and \LuaTeX\ in the same way as \pkg{graphicx}
+\verb|\includegraphics[viewport=1 2 3 4]{file}|.
+
+\subsection{Normalizing \cs{endlinechar}}
+If \cs{endlinechar} is set to $-1$ so that ends of lines are ignored
+in special contexts, then a low level \TeX\ error would be generated
+by code parsing BoundingBox comments. The package now locally sets
+\cs{endlinechar} to its standard value while reading files.
+%
+\githubissue{286}
+
+\subsection{Files with multiple parts}
+Sometimes one has a graphics file, say, \texttt{file.svg}, and converts
+it to another format to include it in \LaTeX{} and ends up with a file
+named \texttt{file.svg.png}. In previous releases, if the user did
+\verb|\includegraphics{file.svg}|, an error would be raised and the
+graphics inclusion would fail due to the unknown \verb|.svg| extension.
+The \pkg{graphics} package now checks the given extension exists, and if
+it doesn't, it tries appending the known extensions until it finds a
+graphics file with a valid extension, otherwise it falls back to the
+file as requested.
+%
+\githubissue{355}
+
\section{Changes to packages in the \pkg{tools} category}
@@ -613,8 +743,8 @@ to the log file, because of a typo in the check. This has been corrected.
If stretchable glue, e.g., \cs{dotfill}, is used in \env{tabular}
columns made with the \pkg{array} package, it stretches as it would in
-normal paragraph text. The one exception were \texttt{w}-columns (but
-not \texttt{W}-columns) were it got forced to its nominal width (which
+normal paragraph text. The one exception was \texttt{w}-columns (but
+not \texttt{W}-columns) where it got forced to its nominal width (which
in case if \cs{hfill} or \cs{dotfill} is 0\,pt). This has been
corrected and now \texttt{w}-columns behave like all other column
types in this respect.
@@ -651,17 +781,18 @@ corrected.
\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.
+The extra complication is that for grammatical reasons \cs{vref},
+\cs{Vref}, \cs{vrefrange} and \cs{fullref} need a structure different
+from all other languages currently supported. To accommodate for this
+\cs{vrefformat}, \cs{Vrefformat}, \cs{vrefrangeformat}, and \cs{fullrefformat}
+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
+The command \cs{externaldocument}, provided by \pkg{xr}, now also
supports filenames with spaces, just like \cs{include} and
\cs{includeonly}.
%
@@ -687,7 +818,7 @@ The environments \texttt{aligned} and \texttt{gathered} have a
trailing optional argument to specify the vertical position of the
environment with respect to the rest of the line. Allowed values are
\texttt{t}, \texttt{b} and \texttt{c} but the code only tested for
-\texttt{b} and \texttt{t} and assumed anything else is must be
+\texttt{b} and \texttt{t} and assumed anything else must be
\texttt{c}. As a result, a formula starting with a bracket group would
get mangled without warning---the group being dropped and interpreted
as a request for centering. After more than 25 years this has now been
@@ -696,12 +827,18 @@ processed as part of the formula.
%
\githubissue{5}
+\subsection{Detect unicode engines when setting \cs{std@minus} and \cs{std@equal}}
+
+\pkg{amsmath} now detects the unicode engines and use their extended
+commands to define \cs{std@minus} and \cs{std@equal}. This avoids that package like
+\pkg{unicode-math} have to patch the code in the begin document hook to exchange the commands.
+
\section{Changes to the \pkg{babel} package}
Multilingual typesetting has much evolved in the past years, and
\pkg{babel}, like \LaTeX{} itself, has followed the footsteps of
-Unicode and the W3C consortiums to produce proper output in many
+Unicode and the W3C consortia to produce proper output in many
languages.
Furthermore, the traditional model to define and select languages
@@ -710,23 +847,23 @@ 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 \texttt{ini} files based on
-key/value pairs. Babel provides about of 250 of these files, which
+key/value pairs. The \pkg{babel} package provides about 250 of these files, which
have been generated with the help of the Unicode Common Language Data
Repository.
Thanks to the recent advances in \texttt{lualatex} and
-\pkg{luaotfload}, babel currently provides \emph{services} for bidi
+\pkg{luaotfload}, \pkg{babel} currently provides \emph{services} for bidi
typesetting, line breaking for South East Asian and CJK scripts,
non-standard hyphenation (like ff to ff-f), alphabetic and additive
counters, automatic selection of fonts and languages based on the
-script, etc. This means babel can be used to typeset such a variety of
+script, etc. This means \pkg{babel} can be used to typeset such a variety of
languages as Russian, Arabic, Hindi, Thai, Japanese, Bangla, Amharic,
Greek, and many others.
And since these \texttt{ini} files they are easily parsable, they can
serve as a source for other packages.
-For further details take a look at the \pkg{babel}
+For further details take a look at the \pkg{babel} package
documentation~\cite{32:babel}.