diff options
author | Karl Berry <karl@freefriends.org> | 2021-01-09 21:36:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-01-09 21:36:18 +0000 |
commit | b33d382702e71037548dba5374e276b861ea8031 (patch) | |
tree | 1670ea7d19f460766341de9e97fe76c8bd09931f /Master/texmf-dist/doc/latex-dev/base | |
parent | 23616a07e621fb344c8329dfa20c60408b644d95 (diff) |
latex-dev (9jan21)
git-svn-id: svn://tug.org/texlive/trunk@57365 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex-dev/base')
122 files changed, 1067 insertions, 60 deletions
diff --git a/Master/texmf-dist/doc/latex-dev/base/README.md b/Master/texmf-dist/doc/latex-dev/base/README.md index 9a2a2436892..670f7eaa07f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/README.md +++ b/Master/texmf-dist/doc/latex-dev/base/README.md @@ -1,7 +1,7 @@ The LaTeX kernel ================ -Release 2021-05-01 pre-release 0 +Release 2021-05-01 pre-release 1 Overview -------- diff --git a/Master/texmf-dist/doc/latex-dev/base/alltt.pdf b/Master/texmf-dist/doc/latex-dev/base/alltt.pdf Binary files differindex 24ec82b17c0..3c889b299a3 100644 --- a/Master/texmf-dist/doc/latex-dev/base/alltt.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/alltt.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf b/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf Binary files differindex 8826a946867..8171183a8eb 100644 --- a/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/cfgguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex b/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex index 84cde10c84f..048f4f4ef5e 100644 --- a/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/cfgguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/changes.txt b/Master/texmf-dist/doc/latex-dev/base/changes.txt index 6d70494baaf..bdb299ae3c0 100644 --- a/Master/texmf-dist/doc/latex-dev/base/changes.txt +++ b/Master/texmf-dist/doc/latex-dev/base/changes.txt @@ -6,10 +6,186 @@ completeness or accuracy and it contains some references to files that are not part of the distribution. ================================================================================ +2020-12-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssaxes.dtx (subsection{Changing to a new series}): + Distangle series and shape update by delaying the font series + and font shape merging (gh/444) + + Move the rollback info for \normalshape after its main definition + otherwise it will not be undone (gh/458) + +2020-12-22 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfsstrc.dtx (subsection{General font loading}): + Alter \selectfont to do the delayed merging of font series + and font shape (gh/444) + +2020-12-27 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * letter.dtx (subsubsection{Page breaking control}): + The \opening argument was splitting name and address using \\ + but did not allow to use \\[...] for this (gh/427) + +2020-12-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltbibl.dtx (section{Bibliography Generation}): + Delay any \cs{nocite} in the preamble instead of raising + an error (gh/424) + +2020-12-06 Johannes Braams <Johannes.Braams@latex-project.org> + + * miscelaneous files: gh/428, gh/429 and gh/430 list a number of + typing mistakes and missing documentation that have crept in over + the years. The following files were affected and have been + corrected: + alltt.dtx, classes.dtx, doc.dtx, docstrip.dtx, fix-cm.dtx, + fontdef.dtx, ifthen.dtx, inputenc.dtx, latex209.dtx, + latexrelease.dtx, ltbibl.dtx, ltboxes.dtx, ltclass.dtx, + ltcntrl.dtx, ltcounts.dtx, ltdefns.dtx, ltdirchk.dtx, ltexpl.dtx, + ltfilehook.dtx, ltfiles.dtx, ltfinal.dtx, ltfloat.dtx, + ltfntcmd.dtx, ltfssaxes.dtx, ltfssbas.dtx, ltfsscmp.dtx, + ltfssdcl.dtx, ltfssini.dtx, ltfsstrc.dtx, lthooks.dtx, + ltlength.dtx, ltlists.dtx, ltluatex.dtx, ltmath.dtx, ltmiscen.dtx, + ltoutenc.dtx, ltoutput.dtx, ltpage.dtx, ltpageno.dtx, + ltpictur.dtx, ltplain.dtx, ltsect.dtx, ltshipout.dtx, + lttextcomp.dtx, ltvers.dtx, ltxdoc.dtx, ltxref.dtx, nfssfont.dtx, + proc.dtx, slides.dtx, utf8ienc.dtx. + +2020-12-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfilehook.dtx (subsection{Declaring a file substitution}): + Don't drop file substitution declarations when rolling back + just render them no-ops + +2020-12-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + Add a hook to \selectfont to be executed after the switch to the + new font. This implements the functionality formerly in the everysel + package. + +2020-12-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfinal.dtx (subsection{File substitutions}): + Emulate everysel package + +2020-12-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssini.dtx (subsection{Miscellaneous}): + Setting up \f@series and \f@shape default values directly (gh/444) + +2020-11-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltshipout.dtx: + Check for both kernel and user hooks and execute if either is non-empty (gh/431)} + +2020-10-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltmiscen.dtx (subsection{Environments}): + \enddocument should always start out in vmode (gh/385) + ================================================================================ All changes above are only part of the development branch for the next release. ================================================================================ + +######################### +# 2020-10-01 PL 4 Release +######################### + +2021-01-07 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * ltfilehook.dtx: + Undefine \@expl@@@filehook@file@pop@@ to avoid error when rolling back (gh/463). + + * lthooks.dtx: + Modified internal copies of l3tl commands to avoid errors with l3debug (gh/463). + +2020-12-18 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx: + Preserve trailing slash in file hook name if the file name is empty (gh/464). + + * ltfilehook.dtx: + Restore \CurrentFile(Path)(Used) after the file is input (gh/464). + +2020-12-03 Joseph Wright <Joseph.Wright@latex-project.org> + + * usrguide3.tex + New file to cover creation of document commands + + +######################### +# 2020-10-01 PL 3 Release +######################### + +2020-12-18 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * lthooks.dtx: + Moved 'top-level' code label at the very end of hooks. + - In reverse hooks, 'top-level' goes at the beginning. + - 'top-level' cannot be used as a label outside of the top-level. + - The label for the 'top-level' cannot be changed. + - Simplified internal managing of default label. + Renamed \DeclareDefaultHookLabel to \SetDefaultHookLabel (the old name + will be kept until the next release). + Provide \PushDefaultHookLabel and \PopDefaultHookLabel. + Fixed a small bug in \ShowHook and \LogHook. + + * ltclass.dtx: + Remove \@expl@@@hook@curr@name@push@@n from \@pushfilename to + follow changes to lthooks.dtx. + +2020-12-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltfssbas.dtx (subsection{Macros for the user}): + Drop ``m'' if the series value is a member of a fixed list + and issue warning if doing it (gh/453) + +2020-11-24 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * latexrelease.ins: + reorder module loading to match the order used + in the format to correctly resolve dependencies (gh/434) + + * ltexpl.dtx (subsection{Loader}): + Load xparse in latexrelease if necessary and add missing + IncludeInRelease guards (gh/434) + + * ltdefns.dtx, ltfilehook.dtx, lthooks.dtx, ltxshipout.dtx: + Add rollback support for forward case (gh/434) + +2020-11-20 Phelype Oleinik <phelype.oleinik@latex-project.org> + + * ltclass.dtx: + Remove file path from \@currname and use only \@currname to identify + a package internally (gh/422). + Add \@currpath and (temporarily) \@kernel@currpathstack. + In \ProvidesPackage check the argument with \strcmp instead of \ifx. + In case of substitution, copy the option list to the requested package. + + * ltfilehook.dtx: + Keep path in the replacement file (#2) in \declare@file@substitution. + In case of a replacement, pass the actually loaded file to \@addtofilelist. + Explicitly clear replacement flag after using it. + +2020-11-17 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * fntguide.tex: + Updated documentation of virtual shapes \updefault and \ulcdefault + +2020-11-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltmath.dtx: + \negmedspace and \negthickspace have been only in amsmath, + so we need to undefine for rollback because amsmath used + \newcommand back then (gh/423) + +2020-11-09 Frank Mittelbach <Frank.Mittelbach@latex-project.org> + + * ltclass.dtx (section{Package/class rollback mechanism}): + Change help text for suspicous rollback, because the package may have + existed then --- there is just no rollback data (gh/423) + ######################### # 2020-10-01 PL 2 Release ######################### diff --git a/Master/texmf-dist/doc/latex-dev/base/classes.pdf b/Master/texmf-dist/doc/latex-dev/base/classes.pdf Binary files differindex 36bf46d8cc0..7c2a8a111c8 100644 --- a/Master/texmf-dist/doc/latex-dev/base/classes.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/classes.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf b/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf Binary files differindex 8aa406713f8..bf272bfaaec 100644 --- a/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/clsguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/clsguide.tex b/Master/texmf-dist/doc/latex-dev/base/clsguide.tex index d778bf9ff4c..57f4b2fd79e 100644 --- a/Master/texmf-dist/doc/latex-dev/base/clsguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/clsguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf b/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf Binary files differindex e9e304bf201..7ca95155089 100644 --- a/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/cmfonts.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf b/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf Binary files differindex c078b7aaf48..6ff92200632 100644 --- a/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/cyrguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex b/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex index 44c30b1153f..89c5a56b7f0 100644 --- a/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/cyrguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/doc.pdf b/Master/texmf-dist/doc/latex-dev/base/doc.pdf Binary files differindex 59e323df71f..960e997adb2 100644 --- a/Master/texmf-dist/doc/latex-dev/base/doc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/doc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf b/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf Binary files differindex e4ccadef955..1b07721077c 100644 --- a/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/docstrip.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/encguide.pdf b/Master/texmf-dist/doc/latex-dev/base/encguide.pdf Binary files differindex 374ac813898..fe668c7f930 100644 --- a/Master/texmf-dist/doc/latex-dev/base/encguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/encguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/encguide.tex b/Master/texmf-dist/doc/latex-dev/base/encguide.tex index 339bce1eb33..aeb2f35037f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/encguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/encguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/exscale.pdf b/Master/texmf-dist/doc/latex-dev/base/exscale.pdf Binary files differindex d1a0b2ed803..52395da9049 100644 --- a/Master/texmf-dist/doc/latex-dev/base/exscale.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/exscale.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf b/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf Binary files differindex 138d239544d..1c1c03621a5 100644 --- a/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/fix-cm.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf b/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf Binary files differindex 2548c0f2002..5cadeb9dfba 100644 --- a/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/fntguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/fntguide.tex b/Master/texmf-dist/doc/latex-dev/base/fntguide.tex index b6576a02370..7a824d0a997 100644 --- a/Master/texmf-dist/doc/latex-dev/base/fntguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/fntguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % % The LaTeX3 Project and any individual authors listed elsewhere % in this file. @@ -42,7 +42,7 @@ newer NFSS features of 2020}\\ All rights reserved.} -\date{July 2020} +\date{November 2020} \begin{document} @@ -340,22 +340,25 @@ box warning, for example: \end{verbatim} The author commands for fonts set the five attributes: \begin{center} + \hspace*{-1em}% \begin{tabular}{rcl} \emph{Author command} & \emph{Attribute} & \emph{Value in} |article| \emph{class} \\ |\textnormal{..}| or |\normalfont| & family & |cmr| \\ + & series & |m| \\ + & shape & |n| \\[1pt] |\textrm{..}| or |\rmfamily| & family & |cmr| \\ |\textsf{..}| or |\sffamily| & family & |cmss| \\ |\texttt{..}| or |\ttfamily| & family & |cmtt| \\ |\textmd{..}| or |\mdseries| & series & |m| \\ - |\textbf{..}| or |\bfseries| & series & |bx| \\ - |\textup{..}| or |\upshape| & shape & |n| \\ + |\textbf{..}| or |\bfseries| & series & |bx| \\[1pt] |\textit{..}| or |\itshape| & shape & |it| \\ |\textsl{..}| or |\slshape| & shape & |sl| \\ |\textsc{..}| or |\scshape| & shape & |sc| \\ |\textssc{..}| or |\sscshape| & shape & |ssc| \\ |\textsw{..}| or |\swshape| & shape & |sw| \\ - |\textulc{..}| or |\ulcshape| & shape & |ulc| \\ + |\textulc{..}| or |\ulcshape| & shape & |ulc| (virtual) $\to$ |n|, |it|, |sl| or |ssc| \\ + |\textup{..}| or |\upshape| & shape & |up| (virtual) $\to$ |n| or |sc| \\[1pt] |\tiny| & size & |5pt| \\ |\scriptsize| & size & |7pt| \\ |\footnotesize| & size & |8pt| \\ @@ -520,8 +523,9 @@ and the |ssub| size function, see Section~\ref{sec:sizefunct}. The shapes selected by |\textit|, |\itshape|, |\textsl|, |\slshape|, |\textsc|, |\scshape|, |\textssc|, |\sscshape|, |\textsw|, |\swshape|, |\textulc|, |\ulcshape|, |\textup| and |\upshape|. By default these are -|it|, |sl|, |sc|, |ssc|, |sw|, |ulc| and |n|. |ulc| is special here -since it is a virtual one; it doesn't exist as a real shape. The +|it|, |sl|, |sc|, |ssc|, |sw|, |ulc| and |up|. Note that |ulc| and |up| are special here +because they are virtual shapes; they don't exist as real shape values. Instead they alter +the existing shape value based on rules, i.e., the result depends on context. The respective macros |\textulc| or |\ulcshape| change small capitals back to upper/lower case but will not change the font with respect to italics, slanted or swash. |\upshape| or |\textup| in contrast will diff --git a/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf b/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf Binary files differindex 5066c175877..b7cba8a565d 100644 --- a/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/graphpap.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf b/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf Binary files differindex 0cf88429049..a5263ace6bd 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ifthen.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf b/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf Binary files differindex e62e670ce81..e27e93c46e0 100644 --- a/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/inputenc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf b/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf Binary files differindex c4730ac9f0f..0a86ec34c42 100644 --- a/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/latexchanges.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex b/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex index dc8eb4be4eb..500baa66c23 100644 --- a/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex +++ b/Master/texmf-dist/doc/latex-dev/base/latexchanges.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2020 +% Copyright (C) 2015-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % @@ -38,10 +38,10 @@ \title{Changes to the \LaTeXe{} format} -\author{\copyright~Copyright 2015--2020, \LaTeX3 Project Team.\\ +\author{\copyright~Copyright 2015--2021, \LaTeX3 Project Team.\\ All rights reserved.} -\date{2020-02-02} +\date{2021-01-08} % a few commands from doc \newcommand\Lpack[1]{\mbox{\textsf{#1}}} @@ -75,16 +75,15 @@ \url{https://tex.stackexchange.com/q/#1}} \fi -\begin{document} -\maketitle +\setcounter{tocdepth}{1} % don't show subsections -\tableofcontents -\newpage +\begin{document} -\section{Introduction} +\maketitle +\begin{abstract} This document describes changes that were made to the \LaTeX\ format since the 2014-05-01 \LaTeX\ releases. @@ -99,13 +98,79 @@ As a summary of changes for a main release will always be available in but changes in any patch releases will be listed in more detail here. -More detailed change logs are available as +More detailed change logs are available as \texttt{changes.txt} in the base distribution, and full code differences may be browsed via the code repository on GitHub see for example \url{https://github.com/latex3/latex2e/commits/master}. +\end{abstract} + +\tableofcontents + +\newpage + +%\section{Introduction} + + + +\section{Changes introduced in 2020-10-01 patch~4} + +This patch fixed two bugs in the hook management: if debugging for the +L3 programming layer was turned on it reported inconsistent use of +local/global variables. This was a spurious warning but nevertheless +disconcerting (\ghissue{463}). The other bug was more serious, in some +situations a wrong value of \verb=\CurrentFile= inside of file-related hooks +could lead to errors (\ghissue{464}). + +We also added the documentation file \texttt{userguide3.pdf} which +will become the main home for documenting new features of \LaTeX. At +this point in time it covers the \Lpack{xparse} functionality that has +been added to the kernel. + +\section{Changes introduced in 2020-10-01 patch~3} + +This patch fixed some rollback issues that prevented successful +rollback to other release levels in some cases. It also fixed an issue +with file hooks involving files with explicit paths (\ghissue{422}). + +One important change was to handle hook declarations done in the +document preamble in a special way, e.g., those done with +\verb=\AtBeginDocument=. They are now always executed last and are not +subject to the normal code sorting for hooks, because they are nearly always +needed to overwrite earlier settings made in packages. + +Finally, the NFSS series handling was slightly changed to +automatically drop surplus ``\texttt{m}''s from series specifications +when needed (and warn about them when encountered), e.g., +``\texttt{mc}'' automatically becomes ``\texttt{c}'' which is the +official NFSS name for a \emph{medium compact} series (\ghissue{453}). +This was done to improve the fix in 2020-02-02 PL~5. + +\section{Changes introduced in 2020-10-01 patch~2} + +This patch fixed the passing of options to packages and classes when +they are stored in a special place (denoted by \verb=\input@path=) +instead of their normal location (\ghissue{414}). In that case the +options got lost. + +\section{Changes introduced in 2020-10-01 patch~1} + +This patch fixed a file handling issue: to allow for spaces in file +names quotes were used but this upsets Bib\TeX{} (\ghissue{400}). In +addition, two rollback issues got corrected. + +\section{Changes introduced in 2020-10-01} +Major enhancements in this release include pre-loading of the +\Lpack{xparse} package for producing document-level commands with more +complicated argument signatures and the new hook management system for +\LaTeX{} documented in \texttt{lthooks-doc.pdf}, +\texttt{ltfilehook-doc.pdf} and \texttt{ltshipout-doc.pdf}. +In addition there have been many smaller fixes and enhancements. +Please see \ltnewsissue{32} for an overview of the new features and +the change log in \texttt{changes.txt} for a more detailed list of +individual changes. \section{Changes introduced in 2020-02-02 patch~5} @@ -167,7 +232,7 @@ Major enhancements in this release include pre-loading \Lpack{expl3} to improve startup times, especially with Lua\TeX\ and Xe\TeX, and extra features in the font selection mechanism. Please see \ltnewsissue{31} for an overview of the new features and the change -log in \texttt{changelog.txt} for a more detailed list of individual +log in \texttt{changes.txt} for a more detailed list of individual changes. @@ -248,7 +313,7 @@ counter prefix commands \verb|p@...| so that they would take the counter value as an argument instead of just acting as a prefix to them. These packages also provided the \verb|\labelformat| macro to change the prefix macro and \verb|\Ref| so that using counters defined that way in the -beginning of sentences would have the proper capitalisation. These features +beginning of sentences would have the proper capitalization. These features were added to the \LaTeXe{} kernel. The kernel now says ``Trying to load\ldots'' @@ -283,7 +348,7 @@ provided as alias for the names based on the Adobe font names The use of potrusion in tables of contents is suppressed by default, see \sxquestion{172785}. -The handling of visible space in verbation was adjusted for +The handling of visible space in verbatim was adjusted for \ghissue{69} and \ghissue{70}. Spaces are removed from the argument passed to BiBTeX, \ghissue{88}. @@ -295,7 +360,7 @@ levels of split hyperlinks, avoiding a fatal pdftex error. \ghissue{94}. \section{Changes introduced in 2018-04-01 patch~5} -Improved support for non ASCII filenames on the commandline on +Improved support for non ASCII filenames on the command line on filesystems using legacy encodings. Adjusted the new package rollback code so that some edge cases where rollback @@ -344,11 +409,11 @@ Lua\TeX, now at 1.04. Previously defining an encoding-specific composite with an undeclared accent (or an accent declared later) gave no error, but did nothing useful. -\LaTeX\ will now detect this and give the accent comamnd a default definition +\LaTeX\ will now detect this and give the accent command a default definition as an error, allowing the declared composite to work as intended. The definition of \verb|\-| is adjusted to match the comments in -\gnatsissue{3855} to accomodate non standard settings of \verb|\hyphenchar|. +\gnatsissue{3855} to accommodate non standard settings of \verb|\hyphenchar|. In parboxes and similar settings, \verb|\lineskiplimit| is now reset (to the existing default value, \verb|\normallineskiplimit|). @@ -409,7 +474,7 @@ Load Unicode data from new generic \texttt{unicode-data} distribution. \section{Changes introduced in 2015/10/01 patch~2} -This release fixes the behaviour of the allocation mechanism if the switch +This release fixes the behavior of the allocation mechanism if the switch from the standard to extended pool takes place within a group. \section{Changes introduced in 2015/10/01 patch~1} @@ -444,7 +509,7 @@ The command |\textcommabelow| has been added. This is mainly intended for Romani \textcommabelow{S}\,\textcommabelow{s}\,\textcommabelow{T}\,\textcommabelow{t}. \subsection{Unicode 8} -The file |unicode-letters.def| used to initialise character data in +The file |unicode-letters.def| used to initialize character data in Unicode \TeX\ variants has been regenerated from data files updated to Unicode~8. diff --git a/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf b/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf Binary files differindex 317c29c818a..a0c1c75aad6 100644 --- a/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/latexrelease.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf b/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf Binary files differindex e13e0159222..1b2b921b260 100644 --- a/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/latexsym.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/lb2.pdf b/Master/texmf-dist/doc/latex-dev/base/lb2.pdf Binary files differindex 95f7ab464dc..7a7e1ad0cfb 100644 --- a/Master/texmf-dist/doc/latex-dev/base/lb2.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/lb2.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/letter.pdf b/Master/texmf-dist/doc/latex-dev/base/letter.pdf Binary files differindex 0ecb9027722..1843ce9d7b2 100644 --- a/Master/texmf-dist/doc/latex-dev/base/letter.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/letter.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf b/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf Binary files differindex 66e46fdbd08..eea053fb380 100644 --- a/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/lgc2.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/lppl.pdf b/Master/texmf-dist/doc/latex-dev/base/lppl.pdf Binary files differindex 9867939020e..6f50abcccef 100644 --- a/Master/texmf-dist/doc/latex-dev/base/lppl.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/lppl.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf Binary files differindex 4836c1bd883..54158158e33 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-code.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf Binary files differindex 92d88ae67d4..00ccfdaba9b 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltfilehook-doc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf b/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf Binary files differindex 872fda12530..13d887db4e6 100644 --- a/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/lthooks-code.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf Binary files differindex d7f83dde7f7..6a45fe27886 100644 --- a/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/lthooks-doc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf b/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf Binary files differindex 4623628c0df..b37fec19fbb 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltluatex.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf Binary files differindex 98b5f212653..1fad83e1e14 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf Binary files differindex 16feb5dff67..650b30ac91d 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews01.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex index c5d66f003ed..b8cff84839a 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews01.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf Binary files differindex e69431509bc..6be0c94845e 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews02.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex index b0e3d15be86..8051e595357 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews02.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf Binary files differindex 6d6ca8f0b59..b8d7f44886f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews03.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex index 0496843f0d7..cb5776eaafe 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews03.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf Binary files differindex 4469af923bd..abc02c307c0 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews04.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex index d64d4cb7484..6d04da020b4 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews04.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf Binary files differindex d4c45b4d370..cb2dece233a 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews05.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex index 07b95287ef4..c3a87ab831e 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews05.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf Binary files differindex 90cc6996490..57c96ffe6ae 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews06.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex index c296040047c..7d8798e4212 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews06.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf Binary files differindex b067bff4a73..7eeae6c33e9 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews07.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex index 020e8bd8a6a..47bb0d0003e 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews07.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf Binary files differindex cdbbc9a4a1b..0fef2ab5053 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews08.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex index ab9d26d48b0..2bb9bf48c5f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews08.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf Binary files differindex e7a6904430c..7119a3b1f69 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews09.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex index f0b396586f9..d3416545c86 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews09.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf Binary files differindex 2e2fc2c3951..fb1324621e9 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews10.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex index 02ba863a381..a888559e4ce 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews10.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf Binary files differindex c61dfba707d..f3a652baf4f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews11.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex index 40c1c120afc..c300ae95c9b 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews11.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf Binary files differindex f2c21537ce7..1eb52def470 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews12.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex index 5bf095b4aa7..c0ee6fe4117 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews12.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf Binary files differindex a695c49fd7d..9ad4d3baf94 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews13.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex index f9241ead816..49519a871e8 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews13.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf Binary files differindex a671d40d948..5b2c3e04a46 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews14.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex index 22df643f751..bc9b47d7cf9 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews14.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf Binary files differindex 92fa3be15e2..7f6d955457f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews15.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex index cbf8f8840b5..6c602c60c57 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews15.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf Binary files differindex 520035adf3d..2b01d63ba67 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews16.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex index 75ee38c8150..0e78e9b7910 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews16.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf Binary files differindex 25a87d8bf82..80c54ada963 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews17.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex index 9abe4053e75..c6d7678f1a7 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews17.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf Binary files differindex 001f7ef1f4f..6a6a7e211b8 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews18.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex index 3a99f8501b3..253f7057a30 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews18.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf Binary files differindex 78ded2a73d2..848d719f7bb 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews19.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex index a6f1fa9512c..0c0bb5740b8 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews19.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf Binary files differindex 217ff1265f1..66a63d909c4 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews20.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf Binary files differindex f7df926a707..0f166e8e5c4 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews21.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf Binary files differindex c02d30d7ffa..b25ebf972cd 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews22.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex index c6cfec6c452..90eed223f14 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews22.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2020 +% Copyright (C) 2015-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf Binary files differindex a20c14c9206..9ef72c15079 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews23.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex index e14a0697b07..b645bbf4ed4 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews23.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2020 +% Copyright (C) 2015-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf Binary files differindex 0f5c100f10f..b4861051735 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews24.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex index 6371ffa0a31..15588f27a66 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews24.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2015-2020 +% Copyright (C) 2015-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf Binary files differindex 19593879e7e..973b4d7b639 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews25.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex index 1500da5c07d..58ca8d78c74 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews25.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2016-2020 +% Copyright (C) 2016-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf Binary files differindex 34dec46de88..0a8d0c21d40 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews26.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex index 134859ad63e..af3b44264e0 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews26.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2020 +% Copyright (C) 2017-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf Binary files differindex 2ea1199dce5..f16a8a88d5c 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews27.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex index 6b550bf0cd4..a4cf53705f2 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews27.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2020 +% Copyright (C) 2017-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf Binary files differindex 11b5fbd4d9b..cea0c87f370 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews28.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex index 6a683c83af2..c1cdd6bdbf6 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews28.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2017-2020 +% Copyright (C) 2017-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf Binary files differindex a565da3c83b..c13f8bb8feb 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews29.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex index c707c653422..895b6d0f0cd 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews29.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2018-2020 +% Copyright (C) 2018-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf Binary files differindex 53009b88f4c..f46f249cb29 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews30.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf Binary files differindex 437e0e30c25..93104e511e9 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews31.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf Binary files differindex 9b7f223680b..6dceda4651a 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews32.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf b/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf Binary files differindex 2d24a7aa7aa..ec075df271c 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews33.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex b/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex index daa8fc69e8c..f3341e7a996 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltnews33.tex @@ -114,8 +114,68 @@ \section{Other changes to the \LaTeX{} kernel} +\subsection{\cs{end}\texttt{\textbraceleft document\textbraceright} + should always start in v-mode} + +Until now \verb=\end{document}= executed the code from the +\cs{AtEndDocument} hook as its first action. This meant that it was +executed in horizontal mode if the user left no empty line after the +last paragraph. As a result one could get a spurious space added, for +example, when that code contained a \cs{write} statement. This was +fixed and now \cs{enddocument} first issues a \cs{par} to ensure that +it always starts out in vertical mode. +% +\githubissue{385} + + + +\subsection{Allow extra space between name and address in \pkg{letter} class} + +The \cs{opening} command in the the \pkg{letter} class expects the +name and address to be separated by \verb=\\= but it didn't allow to +use an optional argument at this point to add some extra space after +the name. The coding has now been slightly altered to allow for this. +% +\githubissue{427} + + + +\subsection{Provide hook in \cs{selectfont}} + +After \cs{selectfont} has altered the font we run a hook so that +packages can make final adjustments. This functionality was originally +provided by the \pkg{everysel} package, the new implementation is +slightly different and uses the standard hook management. +% +\githubissue{444} + + +\subsection{Delay change of font series and shape to \cs{selectfont} call} + +With the NFSS extensions introduced in 2020 the font series and shape +settings be be influenced by changes to the font family. The setting +is therefore delayed until \cs{selectfont} is executed to avoid +unnecessary or incorrect substitutions that may otherwise happen due +to the order of declarations. +% +\githubissue{444} + + + +\subsection{Allow \cs{nocite} in preamble} + +A natural place for \verb=\nocite{*}= would be the preamble of the +document, but for historical reasons \LaTeX{} issued an error message +if it was placed there. From the new release on it is now allowed in +the preamble. +% +\githubissue{424} + + + \subsection{\ldots} +\emph{to be written} % \githubissue{xxx} diff --git a/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf b/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf Binary files differindex ef222addc50..7c92232d137 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltshipout-code.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf Binary files differindex f49022e979e..384a4a09f15 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltshipout-doc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf b/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf Binary files differindex 5297943248f..62baa687829 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltx3info.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex b/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex index ccb4e0ed99c..b786a1f622f 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex +++ b/Master/texmf-dist/doc/latex-dev/base/ltx3info.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf b/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf Binary files differindex 2d6bf602117..4c74c8d46b6 100644 --- a/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/ltxdoc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf b/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf Binary files differindex ed8e4b1a163..a23fd5ccd50 100644 --- a/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/makeindx.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/manifest.txt b/Master/texmf-dist/doc/latex-dev/base/manifest.txt index f3c8f2b2165..0cf27343c13 100644 --- a/Master/texmf-dist/doc/latex-dev/base/manifest.txt +++ b/Master/texmf-dist/doc/latex-dev/base/manifest.txt @@ -38,6 +38,7 @@ % fntguide.tex -- Guide to font selection. % modguide.tex -- Guide to modifying and distributing LaTeX. % usrguide.tex -- User guide for this release. +% usrguide3.tex -- User guide for expl3-based methods. % % ltnews01.tex -- What was new in the release dated 1994/06. % ltnews02.tex -- What was new in the release dated 1994/12. diff --git a/Master/texmf-dist/doc/latex-dev/base/manual.pdf b/Master/texmf-dist/doc/latex-dev/base/manual.pdf Binary files differindex a154a9d08b8..8d00af366ac 100644 --- a/Master/texmf-dist/doc/latex-dev/base/manual.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/manual.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/modguide.pdf b/Master/texmf-dist/doc/latex-dev/base/modguide.pdf Binary files differindex a42431033dd..ae7a44a56dd 100644 --- a/Master/texmf-dist/doc/latex-dev/base/modguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/modguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/modguide.tex b/Master/texmf-dist/doc/latex-dev/base/modguide.tex index 33af973d29b..5374094e8ba 100644 --- a/Master/texmf-dist/doc/latex-dev/base/modguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/modguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf b/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf Binary files differindex e4f79bfb28f..d2a17482d6e 100644 --- a/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/nfssfont.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/proc.pdf b/Master/texmf-dist/doc/latex-dev/base/proc.pdf Binary files differindex d4f684df929..1fdce920aa2 100644 --- a/Master/texmf-dist/doc/latex-dev/base/proc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/proc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/slides.pdf b/Master/texmf-dist/doc/latex-dev/base/slides.pdf Binary files differindex bf548d02d1b..14519c05304 100644 --- a/Master/texmf-dist/doc/latex-dev/base/slides.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/slides.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf b/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf Binary files differindex 87f25b58b5c..e0b6be9b942 100644 --- a/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/slifonts.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/source2e.pdf b/Master/texmf-dist/doc/latex-dev/base/source2e.pdf Binary files differindex 0f4add9b45f..de20a00439a 100644 --- a/Master/texmf-dist/doc/latex-dev/base/source2e.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/source2e.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/source2e.tex b/Master/texmf-dist/doc/latex-dev/base/source2e.tex index e74c424d729..ad6f5c9fb01 100644 --- a/Master/texmf-dist/doc/latex-dev/base/source2e.tex +++ b/Master/texmf-dist/doc/latex-dev/base/source2e.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf b/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf Binary files differindex 1209fd46f17..6e2933bdd49 100644 --- a/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/syntonly.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf b/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf Binary files differindex 6a75621960d..e6f27b0a5a4 100644 --- a/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/tlc2.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/tulm.pdf b/Master/texmf-dist/doc/latex-dev/base/tulm.pdf Binary files differindex 8f1308891d3..c4319f500a5 100644 --- a/Master/texmf-dist/doc/latex-dev/base/tulm.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/tulm.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf b/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf Binary files differindex be2b3a11a77..42b3dba05b2 100644 --- a/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/usrguide.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide.tex b/Master/texmf-dist/doc/latex-dev/base/usrguide.tex index 4c2ddf24af6..a51bb438551 100644 --- a/Master/texmf-dist/doc/latex-dev/base/usrguide.tex +++ b/Master/texmf-dist/doc/latex-dev/base/usrguide.tex @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 1993-2020 +% Copyright (C) 1993-2021 % The LaTeX3 Project and any individual authors listed elsewhere % in this file. % diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf b/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf Binary files differnew file mode 100644 index 00000000000..59db944a75d --- /dev/null +++ b/Master/texmf-dist/doc/latex-dev/base/usrguide3.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex b/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex new file mode 100644 index 00000000000..40ef882fba9 --- /dev/null +++ b/Master/texmf-dist/doc/latex-dev/base/usrguide3.tex @@ -0,0 +1,701 @@ +% \iffalse meta-comment +% +% Copyright (C) 2020,2021 +% The LaTeX3 Project and any individual authors listed elsewhere +% in this file. +% +% This file is part of the LaTeX base system. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008 or later. +% +% This file has the LPPL maintenance status "maintained". +% +% The list of all files belonging to the LaTeX base distribution is +% given in the file `manifest.txt'. See also `legal.txt' for additional +% information. +% +% The list of derived (unpacked) files belonging to the distribution +% and covered by LPPL is defined by the unpacking scripts (with +% extension .ins) which are part of the distribution. +% +% \fi +% Filename: usrguide3.tex + +\documentclass{ltxguide} + +\usepackage[T1]{fontenc} % needed for \textbackslash in tt + +\title{\LaTeX3 methods for authors} +\author{\copyright~Copyright 2020, \LaTeX\ Project Team.\\ + All rights reserved.} + +\date{Released 2020-12-02} + +\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}} +\NewDocumentCommand\marg{m}{\arg{#1}} +\NewDocumentCommand\meta{m}{\ensuremath{\langle}\textit{#1}\ensuremath{\rangle}} +\NewDocumentCommand\pkg{m}{\textsf{#1}} +\NewDocumentCommand\text{m}{\ifmmode\mbox{#1}\else#1\fi} +% Fix a 'feature' +\makeatletter +\renewcommand \verbatim@font {\normalfont \ttfamily} +\makeatother + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +\LaTeXe{} was released in 1994 and added a number of then-new concepts to +\LaTeX{}. These are described in \texttt{usrguide}, which has largely remained +unchanged. Since then, the \LaTeX{} team have worked on a number of ideas, +firstly a programming language for \LaTeX{} (\pkg{expl3}) and then a range of +tools for document authors which build on that language. Here, we describe +\emph{stable} and \emph{widely-usable} concepts that have resulted from that +work. These `new' ideas have been transferred from development packages +into the \LaTeXe{} kernel. As such, they are now available to \emph{all} +\LaTeX{} users and have the \emph{same stability} as any other part of the +kernel. The fact that `behind the scenes' they are built on \pkg{expl3} +is useful for the development team, but is not directly important to users. + +\section{Creating document commands and environments} + +\subsection{Overview} + +Creating document commands and environments using the \LaTeX3 toolset is based +around the idea that a common set of descriptions can be used to cover almost +all argument types used in real documents. Thus parsing is reduced to a simple +description of which arguments a command takes: this description provides the +`glue' between the document syntax and the implementation of the +command. + +First, we will describe the argument types, then move on to explain how these +can be used to create both document commands and environments. Various more +specialized features are then described, which allow an even richer application +of a simple interface set up. + +The details here are intended to help users create document commands in +general. More technical detail, suitable for \TeX{} programmers, is included +in \texttt{interface3}. + +\subsection{Describing argument types} + +In order to allow each argument to be defined independently, the parser does +not simply need to know the number of arguments for a function, but also the +nature of each one. This is done by constructing an \emph{argument +specification}, which defines the number of arguments, the type of each +argument and any additional information needed for the parser to read the user +input and properly pass it through to internal functions. + +The basic form of the argument specifier is a list of letters, where each +letter defines a type of argument. As will be described below, some of the +types need additional information, such as default values. The argument types +can be divided into two, those which define arguments that are mandatory +(potentially raising an error if not found) and those which define optional +arguments. The mandatory types +\begin{itemize} + \item[\texttt{m}] A standard mandatory argument, which can either be a single token + alone or multiple tokens surrounded by curly braces |{}|. Regardless of the + input, the argument will be passed to the internal code without the outer + braces. This is the type specifier for a normal \TeX{} argument. + \item[\texttt{r}] Given as \texttt{r}\meta{token1}\meta{token2}, this denotes a + `required' delimited argument, where the delimiters are + \meta{token1} and \meta{token2}. If the opening delimiter \meta{token1} is + missing, the default marker |-NoValue-| will be inserted after a suitable + error. + \item[\texttt{R}] Given as \texttt{R}\meta{token1}\meta{token2}\marg{default}, + this is a `required' delimited argument as for~\texttt{r}, + but it has a user-definable recovery \meta{default} instead of + |-NoValue-|. + \item[\texttt{v}] Reads an argument `verbatim', between the following + character and its next occurrence, in a way similar to the argument + of the \LaTeXe{} command \cs{verb}. Thus a \texttt{v}-type argument + is read between two identical characters, which cannot be any of |%|, |\|, + |#|, |{|, |}| or \verb*| |. The verbatim argument can also be enclosed + between braces, |{| and |}|. A command with a verbatim argument will + produce an error when it appears within an argument of another function. + \item[\texttt{b}] Only suitable in the argument specification of an + environment, it denotes the body of the environment, between + |\begin|\marg{environment} and |\end|\marg{environment}. See + Section~\ref{sec:cmd:body} for details. +\end{itemize} +The types which define optional arguments are: +\begin{itemize} + \item[\texttt{o}] A standard \LaTeX{} optional argument, surrounded with square + brackets, which will supply the special |-NoValue-| marker if not given + (as described later). + \item[\texttt{d}] Given as \texttt{d}\meta{token1}\meta{token2}, an optional + argument which is delimited by \meta{token1} and \meta{token2}. As with + \texttt{o}, if no value is given the special marker |-NoValue-| is + returned. + \item[\texttt{O}] Given as \texttt{O}\marg{default}, is like \texttt{o}, but returns + \meta{default} if no value is given. + \item[\texttt{D}] Given as \texttt{D}\meta{token1}\meta{token2}\marg{default}, it is + as for \texttt{d}, but returns \meta{default} if no value is given. + Internally, the \texttt{o}, \texttt{d} and \texttt{O} types are + short-cuts to an appropriated-constructed \texttt{D} type argument. + \item[\texttt{s}] An optional star, which will result in a value + \cs{BooleanTrue} if a star is present and \cs{BooleanFalse} + otherwise (as described later). + \item[\texttt{t}] An optional \meta{token}, which will result in a value + \cs{BooleanTrue} if \meta{token} is present and \cs{BooleanFalse} + otherwise. Given as \texttt{t}\meta{token}. + \item[\texttt{e}] Given as \texttt{e}\marg{tokens}, a set of optional + \emph{embellishments}, each of which requires a \emph{value}. + If an embellishment is not present, |-NoValue-| is returned. Each + embellishment gives one argument, ordered as for the list of + \meta{tokens} in the argument specification. All \meta{tokens} + must be distinct. + \item[\texttt{E}] As for \texttt{e} but returns one or more \meta{defaults} + if values are not given: \texttt{E}\marg{tokens}\marg{defaults}. See + Section~\ref{sec:cmd:embellishment} for more details. +\end{itemize} + +\subsection{Modifying argument descriptions} + +In addition to the argument \emph{types} discussed above, the argument +description also gives special meaning to three other characters. + +First, \texttt{+} is used to make an argument long (to accept paragraph +tokens). In contrast to \cs{newcommand}, this applies on an +argument-by-argument basis. So modifying the example to `|s o o +m O{default}|' +means that the mandatory argument is now \cs{long}, whereas the optional +arguments are not. + +Secondly, \texttt{!} is used to control whether spaces are allowed before +optional arguments. There are some subtleties to this, as \TeX{} itself +has some restrictions on where spaces can be `detected': more detail +is given in Section~\ref{sec:cmd:opt-space}. + +Finally, the character \texttt{>} is used to declare so-called +`argument processors', which can be used to modify the contents of an +argument before it is passed to the macro definition. The use of argument +processors is a somewhat advanced topic, (or at least a less commonly used +feature) and is covered in Section~\ref{sec:cmd:processors}. + +\subsection{Creating document commands and environments} + +\begin{decl} + |\NewDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ + |\RenewDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ + |\ProvideDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ + |\DeclareDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} +\end{decl} +This family of commands are used to create a \meta{cmd}. The argument +specification for the function is given by \meta{arg spec}, and the command +uses the \meta{code} with |#1|, |#2|, etc.\ replaced by the arguments found +by the parser. + +An example: +\begin{verbatim} + \NewDocumentCommand\chapter{s o m} + {% + \IfBooleanTF{#1}% + {\typesetstarchapter{#3}}% + {\typesetnormalchapter{#2}{#3}}% + } +\end{verbatim} +would be a way to define a \cs{chapter} command which would essentially behave +like the current \LaTeXe{} command (except that it would accept an optional +argument even when a \texttt{*} was parsed). The \cs{typesetnormalchapter} +could test its first argument for being |-NoValue-| to see if an optional +argument was present. (See Section~\ref{sec:cmd:special} for details of +\cs{IfBooleanTF} and testing for |-NoValue-|.) + +The difference between the \cs{New...} \cs{Renew...}, \cs{Provide...} +and \cs{Declare...} versions is the behavior if \meta{cmd} is already +defined. +\begin{itemize} + \item \cs{NewDocumentCommand} will issue an error if \meta{cmd} + has already been defined. + \item \cs{RenewDocumentCommand} will issue an error if \meta{cmd} + has not previously been defined. + \item \cs{ProvideDocumentCommand} creates a new definition for + \meta{function} only if one has not already been given. + \item \cs{DeclareDocumentCommand} will always create the new + definition, irrespective of any existing \meta{cmd} with the + same name. This should be used sparingly. +\end{itemize} + +\begin{decl} + |\NewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\ + |\RenewDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\ + |\ProvideDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} \\ + |\DeclareDocumentEnvironment| \arg{env} \arg{arg spec} \arg{beg-code} \arg{end-code} +\end{decl} +These commands work in the same way as \cs{NewDocumentCommand}, etc.\@, but +create environments (\cs{begin}\arg{env} \ldots{} +\cs{end}\arg{environment}). Both the \meta{beg-code} and \meta{end-code} +may access the arguments as defined by \meta{arg spec}. The arguments will be +given following \cs{begin}\arg{environment}. + +\subsection{Optional arguments} +\label{sec:cmd:opt} + +In contrast to commands created using \LaTeXe{}'s \cs{newcommand}, optional +arguments created using \cs{NewDocumentCommand} may safely be nested. Thus for +example, following +\begin{verbatim} +\NewDocumentCommand\foo{om}{I grabbed `#1' and `#2'} +\NewDocumentCommand\baz{o}{#1-#1} +\end{verbatim} +using the command as +\begin{verbatim} +\foo[\baz[stuff]]{more stuff} +\end{verbatim} +will print +\begin{quote} +I grabbed `stuff-stuff' and `more stuff' +\end{quote} +This is particularly useful when placing a command with an optional argument +\emph{inside} the optional argument of a second command. + +When an optional argument is followed by a mandatory argument with the same +delimiter, the parser issues a warning because the optional argument could not +be omitted by the user, thus becoming in effect mandatory. This can apply to +\texttt{o}, \texttt{d}, \texttt{O}, \texttt{D}, \texttt{s}, \texttt{t}, +\texttt{e}, and \texttt{E} type arguments followed by \texttt{r} or +\texttt{R}-type required arguments. + +The default for \texttt{O}, \texttt{D} and \texttt{E} arguments can be +the result of grabbing another argument. Thus for example +\begin{verbatim} + \NewDocumentCommand\foo{O{#2} m} +\end{verbatim} +would use the mandatory argument as the default for the leading optional +one. + +\subsection{Spacing and optional arguments} +\label{sec:cmd:opt-space} + +\TeX{} will find the first argument after a function name irrespective of any +intervening spaces. This is true for both mandatory and optional arguments. So +|\foo[arg]| and \verb*|\foo [arg]| are equivalent. Spaces are also ignored when +collecting arguments up to the last mandatory argument to be collected (as it +must exist). So after +\begin{verbatim} + \NewDocumentCommand\foo{m o m}{ ... } +\end{verbatim} +the user input |\foo{arg1}[arg2]{arg3}| and \verb*|\foo{arg1} [arg2] {arg3}| +will both be parsed in the same way. + +The behavior of optional arguments \emph{after} any mandatory arguments is +selectable. The standard settings will allow spaces here, and thus with +\begin{verbatim} + \NewDocumentCommand\foobar{m o}{ ... } +\end{verbatim} +both |\foobar{arg1}[arg2]| and \verb*|\foobar{arg1} [arg2]| will find an +optional argument. This can be changed by giving the modified |!| in the +argument specification: +\begin{verbatim} + \NewDocumentCommand\foobar{m !o}{ ... } +\end{verbatim} +where \verb*|\foobar{arg1} [arg2]| will not find an optional argument. + +There is one subtly here due to the difference in handling by \TeX{} of +`control symbols', where the command name is made up of a single +character, such as `\texttt{\textbackslash\textbackslash}'. +Spaces are not ignored by \TeX{} here, +and thus it is possible to require an optional argument directly follow such a +command. The most common example is the use of \texttt{\textbackslash\textbackslash} +in \pkg{amsmath} environments, which in the terms here would be defined as +\begin{verbatim} + \NewDocumentCommand\\{!s !o}{ ... } +\end{verbatim} + +\subsection{`Embellishments'} +\label{sec:cmd:embellishment} + +The \texttt{E}-type argument allows one default value per test token. This is +achieved by giving a list of defaults for each entry in the list, for example: +\begin{verbatim} + E{^_}{{UP}{DOWN}} +\end{verbatim} +If the list of default values is \emph{shorter} than the list of test tokens, +the special |-NoValue-| marker will be returned (as for the \texttt{e}-type +argument). Thus for example +\begin{verbatim} + E{^_}{{UP}} +\end{verbatim} +has default \texttt{UP} for the |^| test character, but will return the +|-NoValue-| marker as a default for |_|. This allows mixing of explicit +defaults with testing for missing values. + + +\subsection{Testing special values} +\label{sec:cmd:special} + +Optional arguments make use of dedicated variables to return information about +the nature of the argument received. + +\begin{decl} + |\IfNoValueTF| \arg{arg} \arg{true code} \arg{false code} \\ + |\IfNoValueT| \arg{arg} \arg{true code} \arg{false code} \\ + |\IfNoValueF| \arg{arg} \arg{true code} \arg{false code} +\end{decl} +The \cs{IfNoValue(TF)} tests are used to check if \meta{argument} (|#1|, +|#2|, \emph{etc.}) is the special |-NoValue-| marker For example +\begin{verbatim} + \NewDocumentCommand\foo{o m} + {% + \IfNoValueTF {#1}% + {\DoSomethingJustWithMandatoryArgument{#2}}% + {\DoSomethingWithBothArguments{#1}{#2}}% + } +\end{verbatim} +will use a different internal function if the optional argument +is given than if it is not present. + +Note that three tests are available, depending on which outcome +branches are required: \cs{IfNoValueTF}, \cs{IfNoValueT} and +\cs{IfNoValueF}. + +As the \cs{IfNoValue(TF)} tests are expandable, it is possible to +test these values later, for example at the point of typesetting or +in an expansion context. + +It is important to note that |-NoValue-| is constructed such that it +will \emph{not} match the simple text input |-NoValue-|, i.e.~that +\begin{verbatim} + \IfNoValueTF{-NoValue-} +\end{verbatim} +will be logically \texttt{false}. +When two optional arguments follow each other (a syntax we typically +discourage), it can make sense to allow users of the command to +specify only the second argument by providing an empty first +argument. Rather than testing separately for emptiness and for +|-NoValue-| it is then best to use the argument type~|O| with an +empty default value, and simply test for emptiness using the +\pkg{expl3} conditional \cs{tl_if_blank:nTF} or its \pkg{etoolbox} +analogue \cs{ifblank}. + +\begin{decl} + |\IfValueTF| \arg{arg} \arg{true code} \arg{false code} \\ + |\IfValueT| \arg{arg} \arg{true code} \arg{false code} \\ + |\IfValueF| \arg{arg} \arg{true code} \arg{false code} +\end{decl} +The reverse form of the \cs{IfNoValue(TF)} tests are also available +as \cs{IfValue(TF)}. The context will determine which logical +form makes the most sense for a given code scenario. + +\begin{decl} + |\BooleanFalse| \\ + |\BooleanTrue| +\end{decl} +The \texttt{true} and \texttt{false} flags set when searching for +an optional character (using \texttt{s} or \texttt{t\meta{char}}) have +names which are accessible outside of code blocks. + +\begin{decl} + |\IfBooleanTF| \arg{arg} \arg{true code} \arg{false code} \\ + |\IfBooleanT| \arg{arg} \arg{true code} \arg{false code} \\ + |\IfBooleanF| \arg{arg} \arg{true code} \arg{false code} +\end{decl} +Used to test if \meta{argument} (|#1|, |#2|, \emph{etc.}) is +\cs{BooleanTrue} or \cs{BooleanFalse}. For example +\begin{verbatim} + \NewDocumentCommand\foo{sm} + {% + \IfBooleanTF {#1}% + {\DoSomethingWithStar{#2}}% + {\DoSomethingWithoutStar{#2}}% + } +\end{verbatim} +checks for a star as the first argument, then chooses the action to +take based on this information. + +\subsection{Argument processors} +\label{sec:cmd:processors} + +Argument processor are applied to an argument \emph{after} it has been grabbed +by the underlying system but before it is passed to \meta{code}. An argument +processor can therefore be used to regularize input at an early stage, allowing +the internal functions to be completely independent of input form. Processors +are applied to user input and to default values for optional arguments, but +\emph{not} to the special |-NoValue-| marker. + +Each argument processor is specified by the syntax \texttt{>}\marg{processor} +in the argument specification. Processors are applied from right to left, so +that +\begin{verbatim} + >{\ProcessorB} >{\ProcessorA} m +\end{verbatim} +would apply \cs{ProcessorA} followed by \cs{ProcessorB} to the tokens grabbed +by the \texttt{m} argument. + +\begin{decl} + |\SplitArgument| \arg{number} \arg{token(s)} +\end{decl} +This processor splits the argument given at each occurrence of the +\meta{tokens} up to a maximum of \meta{number} tokens (thus +dividing the input into $\text{\meta{number}} + 1$ parts). +An error is given if too many \meta{tokens} are present in the +input. The processed input is placed inside +$\text{\meta{number}} + 1$ sets of braces for further use. +If there are fewer than \arg{number} of \arg{tokens} in the argument +then |-NoValue-| markers are added at the end of the processed +argument. +\begin{verbatim} + \NewDocumentCommand \foo {>{\SplitArgument{2}{;}} m} + {\InternalFunctionOfThreeArguments#1} +\end{verbatim} +If only a single character \meta{token} is used for the split, any +category code $13$ (active) character matching the \meta{token} will +be replaced before the split takes place. +Spaces are trimmed at each end of each item parsed. + +\begin{decl} + |\SplitList| \arg{token(s)} +\end{decl} +This processor splits the argument given at each occurrence of the +\meta{token(s)} where the number of items is not fixed. Each item is +then wrapped in braces within |#1|. The result is that the +processed argument can be further processed using a mapping function +(see below). +\begin{verbatim} + \NewDocumentCommand \foo {>{\SplitList{;}} m} + {\MappingFunction#1} +\end{verbatim} +If only a single character \meta{token} is used for the split, any +category code $13$ (active) character matching the \meta{token} will +be replaced before the split takes place. +Spaces are trimmed at each end of each item parsed. + +\begin{decl} + |\ProcessList| \arg{list} \arg{function} +\end{decl} +To support \cs{SplitList}, the function \cs{ProcessList} is available +to apply a \meta{function} to every entry in a \meta{list}. The +\meta{function} should absorb one argument: the list entry. For example +\begin{verbatim} + \NewDocumentCommand \foo {>{\SplitList{;}} m} + {\ProcessList{#1}{\SomeDocumentCommand}} +\end{verbatim} + +\begin{decl} + |\ReverseBoolean| +\end{decl} +This processor reverses the logic of \cs{BooleanTrue} and +\cs{BooleanFalse}, so that the example from earlier would become +\begin{verbatim} + \NewDocumentCommand\foo{>{\ReverseBoolean} s m} + {% + \IfBooleanTF#1% + {\DoSomethingWithoutStar{#2}}% + {\DoSomethingWithStar{#2}}% + } +\end{verbatim} + +\begin{decl} + |\TrimSpaces| +\end{decl} +Removes any leading and trailing spaces (tokens with character code~$32$ +and category code~$10$) for the ends of the argument. Thus for example +declaring a function +\begin{verbatim} + \NewDocumentCommand\foo {>{\TrimSpaces} m} + {\showtokens{#1}} +\end{verbatim} +and using it in a document as +\begin{flushleft} + \verb= =\verb*=\foo{ hello world }= +\end{flushleft} +will show `\verb*=hello world=' at the terminal, with the space at each +end removed. \cs{TrimSpaces} will remove multiple spaces from the ends of +the input in cases where these have been included such that the standard +\TeX{} conversion of multiple spaces to a single space does not apply. + +\subsection{Body of an environment} +\label{sec:cmd:body} + +While environments |\begin|\marg{environment}\ \dots{}\,|\end|\marg{environment} +are typically used in cases where the code implementing the \meta{environment} +does not need to access the contents of the environment (its `body'), +it is sometimes useful to have the body as a standard argument. + +This is achieved by ending the argument specification with~\texttt{b}, which is +a dedicated argument type for this situation. For instance +\begin{verbatim} + \NewDocumentEnvironment{twice} {O{\ttfamily} +b} + {#2#1#2} {} +\end{verbatim} +\begin{verbatim} + \begin{twice}[\itshape] + Hello world! + \end{twice} +\end{verbatim} +typesets `Hello world!{\itshape Hello world!}'. + +The prefix |+| is used to allow multiple paragraphs in the environment's body. +Argument processors can also be applied to \texttt{b}~arguments. By default, +spaces are trimmed at both ends of the body: in the example there would +otherwise be spaces coming from the ends the lines after |[\itshape]| and +|world!|. Putting the prefix |!| before \texttt{b} suppresses space-trimming. + +When \texttt{b} is used in the argument specification, the last argument of the environment declaration (e.g., \cs{NewDocumentEnvironment}), which consists of an \meta{end code} to insert at +|\end|\marg{environment}, is redundant since one can simply put that code at +the end of the \meta{start code}. Nevertheless this (empty) \meta{end code} +must be provided. + +Environments that use this feature can be nested. + +\subsection{Fully-expandable document commands} + +Document commands created using \cs{NewDocumentCommand}, etc.\@, are normally +created so that they do not expand unexpectedly. This is done using engine +features, so is more powerful than \LaTeXe{}'s \cs{protect} mechanism. There +are \emph{very rare} occasion when it may be useful to create functions using a +expansion-only grabber. This imposes a number of restrictions on the +nature of the arguments accepted by a function, and the code it implements. +This facility should only be used when \emph{absolutely necessary}. + +\begin{decl} + |\NewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ + |\RenewExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ + |\ProvideExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} \\ + |\DeclareExpandableDocumentCommand| \arg{cmd} \arg{arg spec} \arg{code} +\end{decl} +This family of commands is used to create a document-level \meta{function}, +which will grab its arguments in a fully-expandable manner. The +argument specification for the function is given by \meta{arg spec}, +and the function will execute \meta{code}. In general, \meta{code} will +also be fully expandable, although it is possible that this will +not be the case (for example, a function for use in a table might +expand so that \cs{omit} is the first non-expandable non-space token). + +Parsing arguments by pure expansion imposes a number of restrictions on +both the type of arguments that can be read and the error checking +available: +\begin{itemize} + \item The last argument (if any are present) must be one of the + mandatory types \texttt{m}, \texttt{r} or \texttt{R}. + \item The `verbatim' argument type \texttt{v} is not available. + \item Argument processors (using \texttt{>}) are not available. + \item It is not possible to differentiate between, for example + |\foo[| and |\foo{[}|: in both cases the \texttt{[} will be + interpreted as the start of an optional argument. As a + result, checking for optional arguments is less robust than + in the standard version. +\end{itemize} + +\subsection{Details about argument delimiters} + +In normal (non-expandable) commands, the delimited types look for the +initial delimiter by peeking ahead (using \pkg{expl3}'s |\peek_...| +functions) looking for the delimiter token. The token has to have the +same meaning and `shape' of the token defined as delimiter. +There are three possible cases of delimiters: character tokens, control +sequence tokens, and active character tokens. For all practical purposes +of this description, active character tokens will behave exactly as +control sequence tokens. + +\subsubsection{Character tokens} + +A character token is characterized by its character code, and its meaning +is the category code~(|\catcode|). When a command is defined, the meaning +of the character token is fixed into the definition of the command and +cannot change. A command will correctly see an argument delimiter if +the open delimiter has the same character and category codes as at the +time of the definition. For example in: +\begin{verbatim} + \NewDocumentCommand { \foobar } { D<>{default} } {(#1)} +\end{verbatim} +\begin{verbatim} + \foobar <hello> \par + \char_set_catcode_letter:N < + \foobar <hello> +\end{verbatim} +the output would be: +\begin{verbatim} + (hello) + (default)<hello> +\end{verbatim} +as the open-delimiter |<| changed in meaning between the two calls to +|\foobar|, so the second one doesn't see the |<| as a valid delimiter. +Commands assume that if a valid open-delimiter was found, a matching +close-delimiter will also be there. If it is not (either by being +omitted or by changing in meaning), a low-level \TeX{} error is raised +and the command call is aborted. + +\subsubsection{Control sequence tokens} + +A control sequence (or control character) token is characterized by is +its name, and its meaning is its definition. +A token cannot have two different meanings at the same time. +When a control sequence is defined as delimiter in a command, +it will be detected as delimiter whenever the control sequence name +is found in the document regardless of its current definition. +For example in: +\begin{verbatim} + \cs_set:Npn \x { abc } + \NewDocumentCommand { \foobar } { D\x\y{default} } {(#1)} + \foobar \x hello\y \par + \cs_set:Npn \x { def } + \foobar \x hello\y +\end{verbatim} +the output would be: +\begin{verbatim} + (hello) + (hello) +\end{verbatim} +with both calls to the command seeing the delimiter |\x|. + +\subsection{Creating new argument processors} + +\begin{decl} + |\ProcessedArgument| +\end{decl} +Argument processors allow manipulation of a grabbed argument before it is +passed to the underlying code. New processor implementations may be created +as functions which take one trailing argument, and which leave their result in +the \cs{ProcessedArgument} variable. For example, \cs{ReverseBoolean} is +defined as +\begin{verbatim} +\ExplSyntaxOn + \cs_new_protected:Npn \ReverseBoolean #1 + { + \bool_if:NTF #1 + { \tl_set:Nn \ProcessedArgument { \c_false_bool } } + { \tl_set:Nn \ProcessedArgument { \c_true_bool } } + } +\ExplSyntaxOff +\end{verbatim} +[As an aside: the code is written in \pkg{expl3}, so we don't have to + worry about spaces creeping into the definition.] + +\subsection{Access to the argument specification} + +The argument specifications for document commands and environments are +available for examination and use. + +\begin{decl} + |\GetDocumentCommandArgSpec| \arg{function} \\ + |\GetDocumentEnvironmentArgSpec| \arg{environment} +\end{decl} +These functions transfer the current argument specification for the +requested \meta{function} or \meta{environment} into the token list +variable \cs{ArgumentSpecification}. If the \meta{function} or +\meta{environment} has no known argument specification then an error +is issued. The assignment to \cs{ArgumentSpecification} is local to +the current \TeX{} group. + +\begin{decl} + |\ShowDocumentCommandArgSpec| \arg{function} \\ + |\ShowDocumentEnvironmentArgSpec| \arg{environment} +\end{decl} +These functions show the current argument specification for the +requested \meta{function} or \meta{environment} at the terminal. If +the \meta{function} or \meta{environment} has no known argument +specification then an error is issued. + +\end{document} diff --git a/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf b/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf Binary files differindex 538e7f5a7bc..4e8f36ed7d8 100644 --- a/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/utf8ienc.pdf diff --git a/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf b/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf Binary files differindex b45ca5aea62..02223d1face 100644 --- a/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf +++ b/Master/texmf-dist/doc/latex-dev/base/webcomp.pdf |