diff options
Diffstat (limited to 'Master/texmf-dist/source/latex-dev')
43 files changed, 1807 insertions, 427 deletions
diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx index 890fbd0d827..11747842787 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins b/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins index fe1cd5413de..07707907e9c 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsbsy.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx index 2d0a35d685d..12e94a11dc1 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amscd.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins b/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins index 148c4cb32e5..5890ca06c10 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amscd.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx index 5edc26b9cc4..92df548f127 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsgen.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins b/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins index 8c5683cb5a6..be7720bc891 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsgen.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx index 11b7545c266..e3ad7c60420 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 2000, 2013 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi @@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\% % \end{macrocode} % % \begin{macrocode} -\ProvidesPackage{amsmath}[2019/11/16 v2.17d AMS math features] +\ProvidesPackage{amsmath}[2020/03/17 v2.17g AMS math features] % \end{macrocode} % % \section{Catcode defenses} @@ -302,10 +302,13 @@ For additional information on amsmath, use the \lq ?\rq\space option.% % \end{macrocode} % % Processing to handle the \opt{cmex10} option is a little tricky -% because of different possible loading orders for \pkg{amsmath} and -% \pkg{amsfonts}. The package \pkg{amsmath} sets the \cs{cmex@opt} -% flag to 7 or 10, and the package \pkg{amsfonts} sets the flag to 1 -% or 0. +% because of different possible loading orders for \pkg{amsmath} +% and \pkg{amsfonts}. The package \pkg{amsmath} sets the +% \cs{cmex@opt} flag to 0, 7 or 10, and in the past the package +% \pkg{amsfonts} did set the flag to 1 or 0. These days it always +% sets it to 10. The situation is a bit unsettled but we don't own +% \pkg{amsfonts}. +% \changes{v2.17d}{2019/12/01}{docu update, no code change (gh/200)} % \begin{macrocode} \ifnum\cmex@opt=7 \relax \DeclareFontShape{OMX}{cmex}{m}{n}{% @@ -463,24 +466,41 @@ For additional information on amsmath, use the \lq ?\rq\space option.% % \cs{DeclareRobustCommand}. % \changes{v2.17b}{2018/12/01}{Start LR-mode for \cs{thinspace} and % friends if necessary (github/49)} +% +% We start by undefining a number of commands (which in a current +% \LaTeX{} kernel will be defined, so that the +% \cs{DeclareRobustCommand} declarations below do not add a +% ``Command redefined'' info into the log. +% \begin{macrocode} +\let\tmspace\@undefined +\let\,\@undefined +\let\!\@undefined +\let\:\@undefined +\let\negmedspace\@undefined +\let\negthickspace\@undefined +% \end{macrocode} +% +% +% \changes{v2.17g}{2020/03/07}{Math/text spacing commands are now in +% the \LaTeX{} kernel and are made robust (gh/303)} % \begin{macrocode} \ifx\leavevmode@ifvmode\@undefined -\DeclareRobustCommand{\tmspace}[3]{% +\DeclareRobustCommand\tmspace[3]{% \ifmmode\mskip#1#2\else\kern#1#3\fi\relax} \else -\DeclareRobustCommand{\tmspace}[3]{% +\DeclareRobustCommand\tmspace[3]{% \ifmmode\mskip#1#2\else\leavevmode@ifvmode\kern#1#3\fi\relax} \fi -\renewcommand{\,}{\tmspace+\thinmuskip{.1667em}} +\DeclareRobustCommand\,{\tmspace+\thinmuskip{.1667em}} \let\thinspace\, -\renewcommand{\!}{\tmspace-\thinmuskip{.1667em}} +\DeclareRobustCommand\!{\tmspace-\thinmuskip{.1667em}} \let\negthinspace\! -\renewcommand{\:}{\tmspace+\medmuskip{.2222em}} +\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}} \let\medspace\: -\newcommand{\negmedspace}{\tmspace-\medmuskip{.2222em}} -\renewcommand{\;}{\tmspace+\thickmuskip{.2777em}} +\DeclareRobustCommand\negmedspace{\tmspace-\medmuskip{.2222em}} +\renewcommand\;{\tmspace+\thickmuskip{.2777em}} \let\thickspace\; -\newcommand{\negthickspace}{\tmspace-\thickmuskip{.2777em}} +\DeclareRobustCommand\negthickspace{\tmspace-\thickmuskip{.2777em}} % \end{macrocode} % \end{macro} % \end{macro} @@ -517,9 +537,13 @@ For additional information on amsmath, use the \lq ?\rq\space option.% \@xp\@tempa\vert\@empty\@nil \ifnum\@tempcnta>\z@ \advance\@tempcnta "4000000 - \xdef\lvert{\delimiter\number\@tempcnta\space } +% \end{macrocode} +% Use \cs{protected} on the new delimiters. +% \changes{v2.17e}{2020/01/20}{Make delimiters robust (gh/251))} +% \begin{macrocode} + \protected\xdef\lvert{\delimiter\number\@tempcnta\space } \advance\@tempcnta "1000000 - \xdef\rvert{\delimiter\number\@tempcnta\space } + \protected\xdef\rvert{\delimiter\number\@tempcnta\space } \else \ifx\@@undefined\lvert % Fall back to cmex encoding since we don't know what else to do. @@ -532,9 +556,9 @@ For additional information on amsmath, use the \lq ?\rq\space option.% \@xp\@tempa\Vert\@empty\@nil \ifnum\@tempcnta>\z@ \advance\@tempcnta "4000000 - \xdef\lVert{\delimiter\number\@tempcnta\space } + \protected\xdef\lVert{\delimiter\number\@tempcnta\space } \advance\@tempcnta "1000000 - \xdef\rVert{\delimiter\number\@tempcnta\space } + \protected\xdef\rVert{\delimiter\number\@tempcnta\space } \else \ifx\@@undefined\lVert \DeclareMathDelimiter{\lVert} @@ -645,13 +669,13 @@ Foreign command \@backslashchar#1;\MessageBreak % \end{macrocode} % % \begin{macrocode} -\else +\else % \end{macrocode} % XeTeX version % \begin{macrocode} \def\genfrac@rule#1#2#3#4{% \hbox{$\left#1\vcenter{\hrule \@width\z@ - \@height + \@height \ifdim\fontdimen#2#3\tw@=\z@ #4\fontdimen6#3\tw@ \else @@ -697,7 +721,7 @@ Foreign command \@backslashchar#1;\MessageBreak % \begin{macrocode} \def\genfrac@rule#1#2#3{% \hbox{$\left#1\vcenter{\hrule \@width\z@ - \@height + \@height \ifdim\Umathfractiondelsize#2=\z@ #3\fontdimen6#3\tw@ \else @@ -1093,7 +1117,7 @@ Foreign command \@backslashchar#1;\MessageBreak % \changes{v2.15}{2016/02/20}{Indent \cs{mdots@@} for readability and add additional tests} % \begin{macrocode} \def\mdots@@{\gdef\thedots@{\dotso@}% - \ifx\@let@token\boldsymbol + \ifx\@let@token\boldsymbol \gdef\thedots@\boldsymbol{\boldsymboldots@}% \else \ifx,\@let@token \gdef\thedots@{\dotsc}% @@ -1167,7 +1191,7 @@ Foreign command \@backslashchar#1;\MessageBreak % \begin{macrocode} \fi % end macro \ifgtest@ test (no else) \fi % end if \Umathchar test - \fi % end \math@ \ifgtest@ + \fi % end \math@ \ifgtest@ \fi % end \keybin@ \ifgtest@ test (no else) \fi % end if \not (no else) \fi % end if comma (no else) @@ -1626,13 +1650,15 @@ Foreign command \@backslashchar#1;\MessageBreak % \begin{macro}{\dddot} % \begin{macro}{\ddddot} % Triple and quadruple dot accents. +% \changes{v2.17f}{2020/02/20}{Add a kern so that a single char is not +% vertically shifted and move the dots slightly to the right (gh/126)} % \begin{macrocode} \ams@newcommand{\dddot}[1]{% - {\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ - \hbox{\normalfont ...}\vss}}}} + {\mathop{\kern\z@#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ + \hbox{\,\normalfont...}\vss}}}} \ams@newcommand{\ddddot}[1]{% - {\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ - \hbox{\normalfont....}\vss}}}} + {\mathop{\kern\z@#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@ + \hbox{\,\normalfont....}\vss}}}} % \end{macrocode} % \end{macro} % \end{macro} @@ -3190,9 +3216,10 @@ ill-advised in LaTeX.% % \end{macro} % % \begin{macro}{\ifst@rred} -% The switch |st@rred| is set to true by all starred -% environments -% and set to false by the unstarred versions. +% The switch |st@rred| is set to true by all starred environments +% and set to false by the unstarred versions. +% One exception is the \env{xxalignat} environment where this is set +% to true. % \begin{macrocode} \newif\ifst@rred % \end{macrocode} @@ -3430,7 +3457,8 @@ and fix things up.} % \end{macro} % % \begin{macro}{\black@} -% \changes{v2.17a}{2017/09/02}{add fixed width box so overfull warning generated in centred environments in lists} +% \changes{v2.17a}{2017/09/02}{Add fixed width box so overfull warning +% generated in centred environments in lists} % This macro is made to produce an overfull box message and % possibly (depending on the value of \cs{overfullrule}) % a rule in the margin if the total width of an alignment @@ -3443,7 +3471,8 @@ and fix things up.} \nointerlineskip \vskip-\ht\strutbox@ \vskip-\dp\strutbox@ - \vbox{\noindent\hbox to\displaywidth{\hbox to#1{\strut@\hfill}}}% + \vbox{\noindent\hbox to\displaywidth{% + \hbox to#1{\strut@\hfill}}}% \prevdepth\dimen@ \fi }% @@ -3645,6 +3674,77 @@ and fix things up.} % \end{macrocode} % \end{macro} % +% +% +% \begin{macro}{\ams@start@box} +% This macro tests the optional positioning argument (in +% \texttt{gathered} or \texttt{aligned}. It explicitly tests for the +% value \texttt{b}, \texttt{c} and \texttt{t} and if the value is +% different, then we assume that it is a bracket group that belongs +% to the formula instead of being an misspelled optional argument. +% (In earlier versions of the code anything other than \texttt{b} +% or \texttt{t} was interpreted as \texttt{c} and the data was +% otherwise dropped.) +% \changes{v2.17g}{2020/03/10}{Explicity test for b/t/c and return +% optional argument is different (gh/5)} +% \begin{macrocode} +\def\ams@start@box#1{% +% \end{macrocode} +% As we may pick up an arbitrary part of the formula by mistake, we +% need to be very careful with the testing to avoid low-level +% errors. This is why we use \cs{detokenize}. But we also need to +% expand the argument (if possible) in case the position value is +% hidden inside a macro. We therefore apply the \cs{romannumeral} +% trick (known as f-expansion in \texttt{expl3}) in its old form. +% The code assumes that +% the default is correctly set up (which in this case is \texttt{c}). +% \begin{macrocode} + \edef\reserved@a{\csname ams@pos@\expandafter\detokenize + \expandafter{\romannumeral-`\0#1}\endcsname}% + \expandafter\ifx\reserved@a\relax +% \end{macrocode} +% If the argument is neither \texttt{b}, \texttt{c} or \texttt{t} +% we save it in \cs{ams@return@opt@arg}, so it can later be +% returned as part of the environment body. We could at this point +% also issue a warning that bracket group was found at the start of +% the formula and that it is safer to add a \cs{relax} before it. +% \begin{macrocode} + \PackageWarning{amsmath}{% + Bracket group \detokenize{[#1]} at formula start!\MessageBreak + It could be a misspelled positional argument.\MessageBreak + If it belongs to the formula add a \relax in\MessageBreak + front to hide it}% + \def\ams@return@opt@arg{[#1]}\vcenter +% \end{macrocode} +% If the argument was identified then we clear +% \cs{ams@return@opt@arg} (just in case somebod ever nests these +% environment. +% \begin{macrocode} + \else + \let\ams@return@opt@arg\@empty\reserved@a + \fi +} +% \end{macrocode} +% +% \begin{macro}{\ams@pos@t} +% \begin{macro}{\ams@pos@b} +% \begin{macro}{\ams@pos@c} +% +% \begin{macrocode} +\def\ams@pos@t{\vtop} +\def\ams@pos@b{\vbox} +\def\ams@pos@c{\vcenter} +% \end{macrocode} +% And we accept an empty argument as a way to get the default (as +% that was the case before as well, albeit by mistake in some sense). +% \begin{macrocode} +\let\ams@pos@\ams@pos@c +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % \begin{macro}{\start@aligned} % The \env{aligned} and \env{alignedat} environments are identical % except that the latter takes a mandatory argument to specify the @@ -3669,7 +3769,10 @@ and fix things up.} % to the margin. % \begin{macrocode} \alignedspace@left - \if #1t\vtop \else \if#1b \vbox \else \vcenter \fi \fi \bgroup +% \end{macrocode} +% Select the right kind of box based on the optional argument \verb=#1=. +% \begin{macrocode} + \ams@start@box{#1}\bgroup \maxfields@#2\relax \ifnum\maxfields@>\m@ne \multiply\maxfields@\tw@ @@ -3712,6 +3815,13 @@ and fix things up.} \hfil \tabskip\alignsep@ \crcr +% \end{macrocode} +% If we picked up a bracket group by mistake here is the place to +% return it for processing. +% \changes{v2.17g}{2020/03/10}{Explicity test for b/t/c and return +% optional argument is different (gh/5)} +% \begin{macrocode} + \ams@return@opt@arg } % \end{macrocode} % \end{macro} @@ -3796,12 +3906,21 @@ and fix things up.} \nonmatherr@{\begin{gathered}}% \fi \alignedspace@left - \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup +% \end{macrocode} +% Select the right kind of box based on the optional argument \verb=#1=. +% \begin{macrocode} + \ams@start@box{#1}\bgroup \Let@ \chardef\dspbrk@context\@ne \restore@math@cr \spread@equation \ialign\bgroup \hfil\strut@$\m@th\displaystyle##$\hfil \crcr +% \end{macrocode} +% And put a mistaking picked up bracket group back: +% \changes{v2.17g}{2020/03/10}{Explicity test for b/t/c and return +% optional argument is different (gh/5)} +% \begin{macrocode} + \ams@return@opt@arg }{% \endaligned } diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins index 7a6a0873595..55e40898042 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx index b7047377f3a..35c3b1605bc 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsopn.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins b/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins index 8c977446cc2..84aff6243b9 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsopn.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx index a4c9aeb5d98..5e7e6ca6720 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amstext.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi @@ -139,7 +139,7 @@ Bug reports can be opened (category \texttt{#1}) at\\% % The macros \cs{f@size}, \cs{sf@size} and \cs{ssf@size} hold the % sizes which should be used when we are loading a new font for use % in \cs{textfont}, \cs{scriptfont} and \cs{scriptscriptfont}. There -% is some question whether we should use use \cs{tf@size} or +% is some question whether we should use \cs{tf@size} or % \cs{f@size} for the main size, but since the primary purpose of the % \cn{text} macro is to switch back to text within a display, it % seems that \cs{f@size} is the better choice. (Indeed it could be diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins b/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins index 84fcb0cb951..5f9a5c4076a 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amstext.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== @@ -48,4 +48,3 @@ The Current Maintainer of this work is the LaTeX3 project. } \endbatchfile - diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx index 2165dde41ad..9cc0b710273 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.dtx @@ -2,7 +2,7 @@ % \iffalse meta-comment % % Copyright (C) 1995, 1999 American Mathematical Society. -% Copyright (C) 2016-2019 LaTeX3 Project and American Mathematical Society. +% Copyright (C) 2016-2020 LaTeX3 Project and American Mathematical Society. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -11,9 +11,9 @@ % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. -% +% % This work has the LPPL maintenance status `maintained'. -% +% % The Current Maintainer of this work is the LaTeX3 Project. % % \fi diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins b/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins index 9e739c3d4b9..bbcd08e3f7a 100644 --- a/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins +++ b/Master/texmf-dist/source/latex-dev/amsmath/amsxtra.ins @@ -1,7 +1,7 @@ -%% +%% %% Copyright 2010 American Mathematical Society. %% Copyright 2016 LaTeX3 Project and American Mathematical Society. -%% +%% %% This work 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. @@ -9,9 +9,9 @@ %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2005/12/01 or later. -%% +%% %% This work has the LPPL maintenance status `maintained'. -%% +%% %% The Current Maintainer of this work is the LaTeX3 Project. %% %% ==================================================================== @@ -48,4 +48,3 @@ The Current Maintainer of this work is the LaTeX3 project. } \endbatchfile - diff --git a/Master/texmf-dist/source/latex-dev/base/classes.dtx b/Master/texmf-dist/source/latex-dev/base/classes.dtx index ea3b014c897..d6f2bb64e6a 100644 --- a/Master/texmf-dist/source/latex-dev/base/classes.dtx +++ b/Master/texmf-dist/source/latex-dev/base/classes.dtx @@ -53,7 +53,7 @@ %<*driver> \ProvidesFile{classes.drv} %</driver> - [2019/12/20 v1.4l + [2020/04/10 v1.4m %<article|report|book> Standard LaTeX document class] %<10pt|11pt|12pt> Standard LaTeX file (size option)] % \end{macrocode} @@ -214,6 +214,7 @@ % options that are new in \LaTeXe.} % \changes{v1.3v}{1997/06/16}{Documentation fixes.} % \changes{v1.4j}{2019/08/27}{Various commands made robust} +% \changes{v1.4m}{2020/04/10}{(JLB) prettyprinting the code} % % % \title{Standard Document Classes for \LaTeX{} version 2e\thanks{This @@ -221,7 +222,7 @@ % % \author{% % Copyright (C) 1992 by Leslie Lamport \and -% Copyright (C) 1994-2019 by Frank Mittelbach \and Johannes Braams \and +% Copyright (C) 1994-2020 by Frank Mittelbach \and Johannes Braams \and % \LaTeX3 Project Team % } % \date{\filedate} @@ -322,34 +323,34 @@ % \changes{v1.0g}{1993/12/09}{Removed typo, A4 is not 279 mm high} % \begin{macrocode} \if@compatibility\else -\DeclareOption{a4paper} - {\setlength\paperheight {297mm}% - \setlength\paperwidth {210mm}} -\DeclareOption{a5paper} - {\setlength\paperheight {210mm}% - \setlength\paperwidth {148mm}} -\DeclareOption{b5paper} - {\setlength\paperheight {250mm}% - \setlength\paperwidth {176mm}} -\DeclareOption{letterpaper} - {\setlength\paperheight {11in}% - \setlength\paperwidth {8.5in}} -\DeclareOption{legalpaper} - {\setlength\paperheight {14in}% - \setlength\paperwidth {8.5in}} -\DeclareOption{executivepaper} - {\setlength\paperheight {10.5in}% - \setlength\paperwidth {7.25in}} + \DeclareOption{a4paper} + {\setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} + \DeclareOption{a5paper} + {\setlength\paperheight {210mm}% + \setlength\paperwidth {148mm}} + \DeclareOption{b5paper} + {\setlength\paperheight {250mm}% + \setlength\paperwidth {176mm}} + \DeclareOption{letterpaper} + {\setlength\paperheight {11in}% + \setlength\paperwidth {8.5in}} + \DeclareOption{legalpaper} + {\setlength\paperheight {14in}% + \setlength\paperwidth {8.5in}} + \DeclareOption{executivepaper} + {\setlength\paperheight {10.5in}% + \setlength\paperwidth {7.25in}} % \end{macrocode} % % The option \Lopt{landscape} switches the values of |\paperheight| % and |\paperwidth|, assuming the dimensions were given for portrait % paper. % \begin{macrocode} -\DeclareOption{landscape} - {\setlength\@tempdima {\paperheight}% - \setlength\paperheight {\paperwidth}% - \setlength\paperwidth {\@tempdima}} + \DeclareOption{landscape} + {\setlength\@tempdima {\paperheight}% + \setlength\paperheight {\paperwidth}% + \setlength\paperwidth {\@tempdima}} \fi % \end{macrocode} % @@ -368,7 +369,7 @@ \if@compatibility \renewcommand\@ptsize{0} \else -\DeclareOption{10pt}{\renewcommand\@ptsize{0}} + \DeclareOption{10pt}{\renewcommand\@ptsize{0}} \fi \DeclareOption{11pt}{\renewcommand\@ptsize{1}} \DeclareOption{12pt}{\renewcommand\@ptsize{2}} @@ -382,7 +383,7 @@ % paragraphs into the outside margin. % \begin{macrocode} \if@compatibility\else -\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} + \DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} \fi \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} % \end{macrocode} @@ -395,7 +396,7 @@ % \begin{macrocode} \DeclareOption{draft}{\setlength\overfullrule{5pt}} \if@compatibility\else -\DeclareOption{final}{\setlength\overfullrule{0pt}} + \DeclareOption{final}{\setlength\overfullrule{0pt}} \fi % \end{macrocode} % @@ -405,7 +406,7 @@ % \begin{macrocode} \DeclareOption{titlepage}{\@titlepagetrue} \if@compatibility\else -\DeclareOption{notitlepage}{\@titlepagefalse} + \DeclareOption{notitlepage}{\@titlepagefalse} \fi % \end{macrocode} % @@ -427,7 +428,7 @@ % Two-column and one-column printing is again realized via a switch. % \begin{macrocode} \if@compatibility\else -\DeclareOption{onecolumn}{\@twocolumnfalse} + \DeclareOption{onecolumn}{\@twocolumnfalse} \fi \DeclareOption{twocolumn}{\@twocolumntrue} % \end{macrocode} @@ -468,7 +469,7 @@ % First some hook into the bibliography environment is filled. % \begin{macrocode} \AtEndOfPackage{% - \renewcommand\@openbib@code{% + \renewcommand\@openbib@code{% \advance\leftmargin\bibindent \itemindent -\bibindent \listparindent \itemindent @@ -477,7 +478,7 @@ % \end{macrocode} % In addition the definition of |\newblock| is overwritten. % \begin{macrocode} - \renewcommand\newblock{\par}}% + \renewcommand\newblock{\par}}% } % \end{macrocode} % @@ -950,7 +951,7 @@ % |\topskip|. % \begin{macrocode} \if@compatibility \setlength\maxdepth{4\p@} \else -\setlength\maxdepth{.5\topskip} \fi + \setlength\maxdepth{.5\topskip} \fi % \end{macrocode} % \end{macro} % @@ -1106,7 +1107,7 @@ % between two marginal notes is controlled by |\marginparpush|. % \begin{macrocode} \if@twocolumn - \setlength\marginparsep {10\p@} + \setlength\marginparsep {10\p@} \else %<10pt&!bk> \setlength\marginparsep{11\p@} %<11pt&!bk> \setlength\marginparsep{10\p@} @@ -1801,7 +1802,7 @@ % \changes{v1.3o}{1995/11/02}{(CAR) Make \cs{footnote} always work in % title, etc} % \begin{macrocode} - \if@titlepage +\if@titlepage \newcommand\maketitle{\begin{titlepage}% \let\footnotesize\small \let\footnoterule\relax @@ -1867,7 +1868,7 @@ \global\let\author\relax \global\let\date\relax \global\let\and\relax -} + } % \end{macrocode} % When the title is not on a page of its own, the layout of the % title is a little different. We use symbols to mark the footnotes @@ -1884,12 +1885,12 @@ % \cs{@makefntext} to a) work and b) without using math} % \begin{macrocode} \else -\newcommand\maketitle{\par - \begingroup - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% - \long\def\@makefntext##1{\parindent 1em\noindent - \hb@xt@1.8em{% + \newcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% % \end{macrocode} % If this is a twocolumn document we start a new page in twocolumn @@ -1899,27 +1900,27 @@ % \changes{v1.2k}{1994/05/06}{Added check on number of columns in use % locally} % \begin{macrocode} - \if@twocolumn - \ifnum \col@number=\@ne - \@maketitle + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi \else - \twocolumn[\@maketitle]% - \fi - \else % \end{macrocode} % When this is not a twocolumn document we just start a new page, % prevent floating objects from appearing on the top of this page % and print the title information. % \begin{macrocode} \newpage - \global\@topnum\z@ % Prevents figures from going at top of page. - \@maketitle - \fi + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi % \end{macrocode} % This page gets a \pstyle{plain} layout. We call |\@thanks| to % produce the footnotes. % \begin{macrocode} - \thispagestyle{plain}\@thanks + \thispagestyle{plain}\@thanks % \end{macrocode} % Now we can close the group, reset the \Lcount{footnote} counter, % disable |\thanks|, |\maketitle| and |\@maketitle| and save some @@ -1928,20 +1929,20 @@ % \changes{v1.3k}{1995/08/27}{Disable \cs{title} and similar decls} % \changes{v1.3n}{1995/10/29}{Empty \cs{@date} as well} % \begin{macrocode} - \endgroup - \setcounter{footnote}{0}% - \global\let\thanks\relax - \global\let\maketitle\relax - \global\let\@maketitle\relax - \global\let\@thanks\@empty - \global\let\@author\@empty - \global\let\@date\@empty - \global\let\@title\@empty - \global\let\title\relax - \global\let\author\relax - \global\let\date\relax - \global\let\and\relax -} + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } % \end{macrocode} % \end{macro} % @@ -3144,7 +3145,7 @@ % First we do give the definition for compatibility mode. % \begin{macrocode} \if@compatibility -\newenvironment{titlepage} + \newenvironment{titlepage} {% %<book> \cleardoublepage \if@twocolumn @@ -3162,7 +3163,7 @@ % And here is the one for native \LaTeXe{}. % \begin{macrocode} \else -\newenvironment{titlepage} + \newenvironment{titlepage} {% %<book> \cleardoublepage \if@twocolumn diff --git a/Master/texmf-dist/source/latex-dev/base/docstrip.dtx b/Master/texmf-dist/source/latex-dev/base/docstrip.dtx index 9cc7945d602..3ce6ed56967 100644 --- a/Master/texmf-dist/source/latex-dev/base/docstrip.dtx +++ b/Master/texmf-dist/source/latex-dev/base/docstrip.dtx @@ -29,8 +29,8 @@ \catcode`\{=1 \catcode`\}=2 \def\filename{docstrip.dtx} -\def\fileversion{2.5g} -\def\filedate{2018/05/03} +\def\fileversion{v2.5h} +\def\filedate{2020/04/18} \def\docdate {2018/05/03} %% % @@ -1635,6 +1635,16 @@ Z \x % \end{macrocode} % +% \begin{macro}{\quote@name} +% \changes{v2.5h}{2020/04/18}{Macro added gfh/221)} +% A macro copied from \texttt{ltfiles.dtx} in order to be able to +% allow spaces in filenames. +% \begin{macrocode} +\def\quote@name#1{"\quote@@name#1\@gobble""} +\def\quote@@name#1"{#1\quote@@name} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\StreamOpen}\begin{macro}{\StreamPut} % \begin{macro}{\StreamClose} % Here is stream opening operator. Its parameter should be a macro @@ -1642,6 +1652,10 @@ Z % write to file |foo.tex| use |\StreamOpen\foo|, then % |\StreamPut\foo| and |\StreamClose\foo|. % +% \changes{v2.5h}{2020/04/18}{Allow spaces in filenames by enclosing +% them in quotes (gh/221)} +% \changes{v2.5h}{2020/04/18}{Added two times two \cs{expandafters} to +% make the case with a filename in quotes work as well} % \begin{macrocode} \chardef\stream@closed=16 \def\StreamOpen#1{% @@ -1649,7 +1663,10 @@ Z \def\s@do##1{\ifnum##1=0 \chardef#1=\expandafter\@stripstr\string##1 % \global\chardef##1=1 % - \immediate\openout#1=\csname pth@\@stripstring#1\endcsname % + \edef\q@curr@file{% + \expandafter\expandafter\expandafter\quote@name + \expandafter\expandafter\expandafter{\csname pth@\@stripstring#1\endcsname}} + \immediate\openout#1=\q@curr@file\relax \@streamfound \fi} \@outputstreams diff --git a/Master/texmf-dist/source/latex-dev/base/fontdef.dtx b/Master/texmf-dist/source/latex-dev/base/fontdef.dtx index c5623c5566e..936db0d7a28 100644 --- a/Master/texmf-dist/source/latex-dev/base/fontdef.dtx +++ b/Master/texmf-dist/source/latex-dev/base/fontdef.dtx @@ -39,7 +39,7 @@ %<driver, >\ProvidesFile{fontdef.drv} % \fi % \ProvidesFile{fontdef.dtx} -%<-latexrelease> [2020/02/11 v3.0g LaTeX Kernel +%<-latexrelease> [2020/04/24 v3.0h LaTeX Kernel % \iftrue (\else %<text, >(Text %<math, >(Math @@ -489,8 +489,8 @@ % Series changing commands are influenced by the following hooks. % \changes{v3.0e}{2019/12/17}{Set \cs{bfdefault} to ``b''} % \begin{macrocode} -\newcommand\bfdefault{b} % overwritten below -\newcommand\mddefault{m} +\newcommand\bfdefault{b} % overwritten below (for rollback) +\newcommand\mddefault{m} % overwritten below (for rollback) % \end{macrocode} % \end{macro} % \end{macro} @@ -506,7 +506,7 @@ \newcommand\itdefault{it} \newcommand\sldefault{sl} \newcommand\scdefault{sc} -\newcommand\updefault{up} % overwritten below +\newcommand\updefault{up} % overwritten below (for rollback) % \end{macrocode} % \end{macro} % \end{macro} @@ -519,8 +519,21 @@ %<*text|latexrelease> %<latexrelease>\IncludeInRelease{2020/02/02}% %<latexrelease> {\updefault}{font defaults change}% +% \begin{macrocode} \renewcommand\updefault{up} -\renewcommand\bfdefault{b} +% \end{macrocode} +% We append \cs{@empty} to the series value so that we can detect +% if it got changed via \cs{def} or \cs{renewcommand} later. +% \changes{v3.0h}{2020/03/19}{Support legacy use of \cs{bfdefault} +% and \cs{mddefault} (gh/306)} +% \begin{macrocode} +\renewcommand\bfdefault{b\@empty} +\renewcommand\mddefault{m\@empty} +% \end{macrocode} +% +% \begin{macrocode} +\let\bfdefault@previous\bfdefault +\let\mddefault@previous\mddefault %</text|latexrelease> %<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% @@ -528,6 +541,9 @@ %<latexrelease> %<latexrelease>\renewcommand\updefault{n} %<latexrelease>\renewcommand\bfdefault{bx} +%<latexrelease> +%<latexrelease>\let\bfdefault@previous\undefined +%<latexrelease>\let\mddefault@previous\undefined %<latexrelease>\EndIncludeInRelease %<*text> % \end{macrocode} @@ -549,8 +565,8 @@ % which resolved to \texttt{n}, but these days that is no longer % the case (and \texttt{up} is wrong when you want to do a % reset. So we now use \texttt{n} explicitly. -% \begin{macrocode} % \changes{v3.0e}{2019/12/17}{Set \cs{shapedefault} explicitly to ``n''} +% \begin{macrocode} \newcommand\shapedefault{n} % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex-dev/base/inputenc.dtx b/Master/texmf-dist/source/latex-dev/base/inputenc.dtx index 641125cc75d..01a8303ecf1 100644 --- a/Master/texmf-dist/source/latex-dev/base/inputenc.dtx +++ b/Master/texmf-dist/source/latex-dev/base/inputenc.dtx @@ -261,18 +261,18 @@ % turn should ``hopefully'' set up the corresponding UTF-8 mapping). % % This works well enough for the main Western languages for which \LaTeX{} -% has proper font encoding support, but currently already falls short on -% languages like Greek (which has some semi-official font support, but for -% which corresponding UTF-8 mappings still need to be defined). +% has proper font encoding support, but can fall short on other +% languages. % -% For some languages (such as Greek mentioned above) all that remains doing is +% For some of these languages all that remains doing is % to provide the necessary mappings and stick them into |utf8ienc.dtx|, so % volunteers are welcome. For other languages that do not fit well into % \LaTeX{} font selection scheme, e.g., Asian languages the outlined inputenc % approach will not work. If that is the case one can try using Dominique % Unruh's option |utf8x| for inputenc which has a somewhat different approach % and encodes many more UTF-8 characters than the standard |utf8| option. -% However, we recommend to do so only if you really need such alphabets as +% However, we recommend to do so only if you really need such alphabets and can not +% switch to one of the unicode engines xelatex or lualatex as % there are problems with this extended approach which were precisely the % reason that we decided to limit the support to what is properly supported % within the boundaries of \LaTeX's font selection. @@ -410,7 +410,7 @@ %<cp1252&!ansinew> \ProvidesFile{cp1252.def} %<cp1250> \ProvidesFile{cp1250.def} %<cp1257> \ProvidesFile{cp1257.def} - [2018/08/11 v1.3c Input encoding file] + [2020/04/14 v1.3c Input encoding file] %<cp850>%% %<cp850>%% If you need a Euro symbol, try cp858 instead. %<cp850>%% diff --git a/Master/texmf-dist/source/latex-dev/base/letter.dtx b/Master/texmf-dist/source/latex-dev/base/letter.dtx index ee9a87cf849..7b31dfbbc96 100644 --- a/Master/texmf-dist/source/latex-dev/base/letter.dtx +++ b/Master/texmf-dist/source/latex-dev/base/letter.dtx @@ -45,7 +45,7 @@ %<*driver> \ProvidesFile{letter.drv} %</driver> - [2014/09/29 v1.2z + [2020/03/11 v1.3b %<+letter> Standard LaTeX document class] % \end{macrocode} % @@ -115,10 +115,10 @@ % \end{macrocode} % Some commonly used abbreviations % \begin{macrocode} -\newcommand*{\Lopt}[1]{\textsf {#1}} -\newcommand*{\file}[1]{\texttt {#1}} -\newcommand*{\Lcount}[1]{\textsl {\small#1}} -\newcommand*{\pstyle}[1]{\textsl {#1}} +\newcommand*\Lopt[1]{\textsf {#1}} +\newcommand*\file[1]{\texttt {#1}} +\newcommand*\Lcount[1]{\textsl {\small#1}} +\newcommand*\pstyle[1]{\textsl {#1}} % \end{macrocode} % We also want the full details. % \begin{macrocode} @@ -162,6 +162,7 @@ % \changes{v1.2q}{1995/05/17}{cleaned up \cs{changes entries}} % \changes{v1.2q}{1995/05/18}{replaced \cs{hbox to} by \cs{hb@xt@}} % \changes{v1.2r}{1995/05/23}{removed a superfluous brace} +% \changes{v1.3a}{2020/03/07}{merged changes to classes.dtx into letter.dtx} % % \iffalse % Copyright (C) 1994 LaTeX3 project, Frank Mittelbach @@ -751,29 +752,29 @@ % \item |\name{Dr. L. User}| : to be used for the return address on % the envelope. % \begin{macrocode} -\newcommand*{\name}[1]{\def\fromname{#1}} +\newcommand*\name[1]{\def\fromname{#1}} % \end{macrocode} % \item |\signature{Larry User}| : goes after the closing. % \begin{macrocode} -\newcommand*{\signature}[1]{\def\fromsig{#1}} +\newcommand*\signature[1]{\def\fromsig{#1}} % \end{macrocode} % \item |\address{3245 Foo St.\\Gnu York}| : used as the return % address in the % letter and on the envelope. If not declared, then an % institutional standard address is used. % \begin{macrocode} -\newcommand*{\address}[1]{\def\fromaddress{#1}} +\newcommand*\address[1]{\def\fromaddress{#1}} % \end{macrocode} % \item |\location{Room 374}| : Acts as modifier to the standard % institutional address. % \begin{macrocode} -\newcommand*{\location}[1]{\def\fromlocation{#1}} +\newcommand*\location[1]{\def\fromlocation{#1}} % \end{macrocode} % \item |\telephone{(415)123-4567}| : Just in case some style puts it % on the letter. % \changes{v1.2m}{1994/06/23}{Removed typo (\#[] instead of [1])} % \begin{macrocode} -\newcommand*{\telephone}[1]{\def\telephonenum{#1}} +\newcommand*\telephone[1]{\def\telephonenum{#1}} % \end{macrocode} % \end{itemize} % \end{macro} @@ -805,7 +806,7 @@ % \begin{macro}{\makelabels} % The |\makelabels| declaration causes mailing labels to be made. % \begin{macrocode} -\newcommand*{\makelabels}{% +\newcommand*\makelabels{% % \end{macrocode} % At the beginning of the document, we need to activate the % |\@mlabel| and |\@startlabels| commands, as well as write @@ -914,7 +915,7 @@ % When the command |\stopbreaks| is issued no page breaks should % occur until |\startbreaks| is called. % \begin{macrocode} -\newcommand*{\stopbreaks}{% +\newcommand*\stopbreaks{% \interlinepenalty\@M \def\par{\@@par\nobreak}% \let\\\@nobreakcr @@ -953,7 +954,7 @@ % \begin{macro}{\startbreaks} % This cancels the effect of |\stopbreaks|. % \begin{macrocode} -\newcommand*{\startbreaks}{% +\newcommand*\startbreaks{% \let\\\@normalcr \interlinepenalty 200% \def\par{\@@par\penalty 200\relax}} @@ -1004,7 +1005,7 @@ % declaration--null if none. % \end{itemize} % \begin{macrocode} -\newcommand*{\opening}[1]{\ifx\@empty\fromaddress +\newcommand*\opening[1]{\ifx\@empty\fromaddress \thispagestyle{firstpage}% {\raggedleft\@date\par}% \else % home address @@ -1039,7 +1040,7 @@ % \item |\stopbreaks| : a macro that inhibits page breaking. % \end{itemize} % \begin{macrocode} -\newcommand{\closing}[1]{\par\nobreak\vspace{\parskip}% +\newcommand\closing[1]{\par\nobreak\vspace{\parskip}% \stopbreaks \noindent \ifx\@empty\fromaddress\else @@ -1085,7 +1086,7 @@ % \changes{v1.2s}{1995/05/25}{replace \cs{reset@font} with % \cs{normalfont}; remove \cs{rm}} % \begin{macrocode} -\newcommand*{\cc}[1]{% +\newcommand*\cc[1]{% \par\noindent \parbox[t]{\textwidth}{% \@hangfrom{\normalfont\ccname: }% @@ -1100,7 +1101,7 @@ % & Bar % \end{tabular} % \begin{macrocode} -\newcommand*{\encl}[1]{% +\newcommand*\encl[1]{% \par\noindent \parbox[t]{\textwidth}{% \@hangfrom{\normalfont\enclname: }% @@ -1110,7 +1111,7 @@ % The only thing |\ps| needs to do is call |\startbreaks|, % which allows page breaking again. % \begin{macrocode} -\newcommand*{\ps}{\par\startbreaks} +\newcommand*\ps{\par\startbreaks} % \end{macrocode} % \end{macro} % \end{macro} @@ -1137,7 +1138,7 @@ % |\protect\standardreturnaddress|. % \end{itemize} % \begin{macrocode} -\newcommand*{\stopletter}{} +\newcommand*\stopletter{} % \end{macrocode} % \end{macro} % @@ -1159,7 +1160,7 @@ % The return address for the mailing labels can be stored in this % macro. % \begin{macrocode} -\newcommand*{\returnaddress}{} +\newcommand*\returnaddress{} % \end{macrocode} % \end{macro} % @@ -1177,7 +1178,7 @@ % 5352 address labels. % \changes{v1.2q}{1995/03/14}{changed value of \cs{columnsep} by 1pt} % \begin{macrocode} -\newcommand*{\startlabels}{\labelcount\z@ +\newcommand*\startlabels{\labelcount\z@ \pagestyle{empty}% \let\@texttop\relax \topmargin -50\p@ @@ -1226,7 +1227,7 @@ % \changes{v1.2q}{1995/03/14}{changed width of the labels slightly to % prevent \LaTeX\ stuffing two on each line} % \begin{macrocode} -\newcommand*{\mlabel}[2]{% +\newcommand*\mlabel[2]{% \parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}% } % \end{macrocode} @@ -1267,7 +1268,7 @@ % For efficiency, level-one list's values are defined at top level, and % |\@listi| is defined to set only |\leftmargin|. % \begin{macrocode} -\setlength\leftmargini {2.5em} +\setlength\leftmargini {2.5em} % \end{macrocode} % The following three are calculated so that they are larger than % the sum of |\labelsep| and the width of the default labels (which @@ -1276,8 +1277,8 @@ \setlength\leftmarginii {2.2em} \setlength\leftmarginiii {1.87em} \setlength\leftmarginiv {1.7em} -\setlength\leftmarginv {1em} -\setlength\leftmarginvi {1em} +\setlength\leftmarginv {1em} +\setlength\leftmarginvi {1em} % \end{macrocode} % Here we set the top level leftmargin. % \begin{macrocode} @@ -1453,11 +1454,30 @@ % \changes{v1.2x}{1997/04/16}{Changed to \cs{textbullet}, % \cs{textasteriskcentered} and \cs{textperiodcentered}} % \begin{macrocode} -\newcommand\labelitemi{\textbullet} -\newcommand\labelitemii{\normalfont\bfseries \textendash} -\newcommand\labelitemiii{\textasteriskcentered} -\newcommand\labelitemiv{\textperiodcentered} +\newcommand\labelitemi {\labelitemfont \textbullet} +\newcommand\labelitemii {\labelitemfont \bfseries \textendash} +\newcommand\labelitemiii{\labelitemfont \textasteriskcentered} +\newcommand\labelitemiv {\labelitemfont \textperiodcentered} % \end{macrocode} +% +% \begin{macro}{\labelitemfont} +% The default definition for \cs{labelitemfont} is to reset the +% font to \cs{normalfont} so that always the same symbol is +% produced regardless of surrounding conditions. +% +% \changes{v1.3a}{2020/03/07}{Normalize label fonts} +% A possible alternative would be +%\begin{verbatim} +%\renewcommand\labelitemfont{% +% \fontseries\seriesdefault +% \fontshape\shapedefault\selectfont} +%\end{verbatim} +% which resets series and shape doesn't touch the family. +% \begin{macrocode} +\newcommand\labelitemfont{\normalfont} +% \end{macrocode} +% \changes{v1.3b}{2020/03/11}{Added a missing \cs{end{macro}} statement} +% \end{macro} % \end{macro} % \end{macro} % \end{macro} @@ -1484,8 +1504,8 @@ % % \changes{v1.2q}{1995/03/14}{made command short} % \begin{macrocode} -\newcommand*{\descriptionlabel}[1]{\hspace\labelsep - \normalfont\bfseries #1} +\newcommand*\descriptionlabel[1]{\hspace\labelsep + \normalfont\bfseries #1} % \end{macrocode} % \end{macro} % @@ -1795,8 +1815,10 @@ % |\parindent| to the appropriate value for succeeding paragraphs % and put the proper indentation before the mark. % +% \changes{v1.3b}{2020/03/11}{make the switch to the use of +% \cs{newcommand} complete.} % \begin{macrocode} -\long\def\@makefntext#1{% +\newcommand\@makefntext[1]{% \noindent \hangindent 5\p@ \hb@xt@5\p@{\hss\@makefnmark}#1} @@ -1808,10 +1830,12 @@ % footnotes should be produced by the macro |\@makefnmark|. We use % the default definition for it. % \begin{macrocode} -%\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}} +%\renewcommand\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}} % \end{macrocode} % \end{macro} % +% \section{Initialization} +% % \subsection{Words} % % \begin{macro}{\ccname} @@ -1823,10 +1847,10 @@ % English words must be replaced. All the English words that % require replacement are defined below in command names. % \begin{macrocode} -\newcommand*{\ccname}{cc} -\newcommand*{\enclname}{encl} -\newcommand*{\pagename}{Page} -\newcommand*{\headtoname}{To} +\newcommand*\ccname{cc} +\newcommand*\enclname{encl} +\newcommand*\pagename{Page} +\newcommand*\headtoname{To} % \end{macrocode} % \end{macro} % \end{macro} @@ -1839,7 +1863,7 @@ % This macro uses the \TeX\ primitives |\month|, |\day| and |\year| % to provide the date of the \LaTeX-run. % \begin{macrocode} -\newcommand*{\today}{\ifcase\month\or +\newcommand*\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} diff --git a/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx b/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx index 61ea87235ab..051922b6f3e 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltboxes.dtx} - [2019/08/27 v1.3b LaTeX Kernel (Box Commands)] + [2020/03/06 v1.3c LaTeX Kernel (Box Commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltboxes.dtx} @@ -1290,13 +1290,21 @@ % % \begin{macro}{\rlap} % \begin{macro}{\llap} +% \begin{macro}{\clap} % These macros place text to the left or right of the current % reference point without taking up space. -% \end{macro} % \begin{macrocode} \DeclareRobustCommand\rlap[1]{\hb@xt@\z@{#1\hss}} \DeclareRobustCommand\llap[1]{\hb@xt@\z@{\hss#1}} % \end{macrocode} +% And here is the version that centers, it was initially introduced by +% \texttt{mathtools}. +% \changes{v1.3c}{2020/03/06}{Macro \cs{clap} added} +% \begin{macrocode} +\DeclareRobustCommand\clap[1]{\hb@xt@\z@{\hss#1\hss}} +% \end{macrocode} +% \end{macro} +% \end{macro} % \end{macro} % % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx index f43e8f0c0d6..dd35be9ae41 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltclass.dtx} - [2020/03/02 v1.3j LaTeX Kernel (Class & Package Interface)] + [2020/04/24 v1.3k LaTeX Kernel (Class & Package Interface)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltclass.dtx} @@ -620,15 +620,60 @@ % % \begin{macro}{\@ifpackagelater} % \begin{macro}{\@ifclasslater} -% |\@ifpackagelater{|\meta{name}|}{YYYY/MM/DD}| -% Checks that the package loaded is more recent than the given date. +% |\@ifpackagelater{|\meta{name}|}{YYYY/MM/DD}{|\meta{true +% code}|}{|\meta{false code}|}| +% Checks that the package loaded is more recent or equal to the +% given date. +% A better name for it would therefore been +% |\@ifpackagelaterorequal| but it is in use for more than 30 +% years, so \ldots % \begin{macrocode} \def\@ifpackagelater{\@ifl@ter\@pkgextension} \def\@ifclasslater{\@ifl@ter\@clsextension} \@onlypreamble\@ifpackagelater \@onlypreamble\@ifclasslater % \end{macrocode} +% \end{macro} +% \end{macro} +% % +% +% \begin{macro}{\IfPackageAtLeastTF} +% \begin{macro}{\IfClassAtLeastTF} +% \begin{macro}{\IfFormatAtLeastTF} +% |\IfFormatAtLeastTF{YYYY/MM/DD}{|\meta{true +% code}|}{|\meta{false code}|}| +% Test if the format is later or equal to the given date. +% \changes{v1.3k}{2020/04/07}{Macro added; also in rollback (gh/168)} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\IfFormatAtLeastTF}{Test format date}% +\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} +\let\IfPackageAtLeastTF\@ifpackagelater +\let\IfClassAtLeastTF\@ifclasslater +\@onlypreamble\IfFormatAtLeastTF +\@onlypreamble\IfPackageAtLeastTF +\@onlypreamble\IfClassAtLeastTF +% \end{macrocode} +% For rollback pretend it was available since the beginning of dawn. +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\IfFormatAtLeastTF}{Test format date}% +%<latexrelease>\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} +%<latexrelease>\let\IfPackageAtLeastTF\@ifpackagelater +%<latexrelease>\let\IfClassAtLeastTF\@ifclasslater +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@ifl@ter} % \begin{macrocode} \def\@ifl@ter#1#2{% \expandafter\@ifl@t@r @@ -675,6 +720,7 @@ % \begin{macrocode} \@onlypreamble\@ifl@t@r % \end{macrocode} +% \end{macro} % % \changes{v1.1j}{2016/06/20} % {don't declare as \cs{@onlypreamble}} @@ -695,8 +741,8 @@ %</2ekernel|latexreleasefirst> %<*2ekernel> % \end{macrocode} -% \end{macro} -% \end{macro} +% +% % % \begin{macro}{\@ifpackagewith} % \begin{macro}{\@ifclasswith} @@ -1050,6 +1096,10 @@ % % The common part of |\ProcessOptions| and |\ProcessOptions*|. % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@process@pti@ns}{Unused options issue}% \def\@process@pti@ns{% \@for\CurrentOption:=\@curroptions\do{% \@ifundefined{ds@\CurrentOption}% @@ -1073,11 +1123,33 @@ % \end{macrocode} % \changes{v1.0r}{1995/10/17} % {Reset \cs{CurrentOption} for graphics/1873} +% \changes{v1.3k}{2020/04/07}{Use different method to ignore +% unprocessed options (gh/22)} % \begin{macrocode} \let\CurrentOption\@empty \let\@fileswith@pti@ns\@@fileswith@pti@ns - \AtEndOfPackage{\let\@unprocessedoptions\relax}} + \AtEndOfPackage{\expandafter\let + \csname unprocessedoptions-\@currname.\@currext\endcsname + \relax}} \@onlypreamble\@process@pti@ns +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@process@pti@ns}{Unused options issue}% +%<latexrelease> +%<latexrelease>\def\@process@pti@ns{% +%<latexrelease> \@for\CurrentOption:=\@curroptions\do{% +%<latexrelease> \@ifundefined{ds@\CurrentOption}% +%<latexrelease> {\@use@ption +%<latexrelease> \default@ds}% +%<latexrelease> \@use@ption}% +%<latexrelease> \@for\CurrentOption:=\@declaredoptions\do{% +%<latexrelease> \expandafter\let\csname ds@\CurrentOption\endcsname\relax}% +%<latexrelease> \let\CurrentOption\@empty +%<latexrelease> \let\@fileswith@pti@ns\@@fileswith@pti@ns +%<latexrelease> \AtEndOfPackage{\let\@unprocessedoptions\relax}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} @@ -1243,13 +1315,45 @@ % \changes{v1.0v}{1996/10/04}{Reset \cs{@unprocessedoptions} for /2269} % Load package `|#1|' with the current option list. % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\RequirePackageWithOptions}{Unused options issue}% \def\RequirePackageWithOptions{% - \AtEndOfPackage{\let\@unprocessedoptions\relax}% +% \end{macrocode} +% The resetting of the unprocessed options is now done on a par package basis. +% \changes{v1.3k}{2020/04/07}{Use different method to ignore +% unprocessed options (gh/22)} +% \begin{macrocode} + \AtEndOfPackage{\expandafter\let + \csname unprocessedoptions-\@currname.\@currext\endcsname + \relax}% \@loadwithoptions\@pkgextension\RequirePackage} \@onlypreamble\RequirePackageWithOptions +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\RequirePackageWithOptions}{Unused options issue}% +%<latexrelease> +%<latexrelease>\def\RequirePackageWithOptions{% +%<latexrelease> \AtEndOfPackage{\let\@unprocessedoptions\relax}% +%<latexrelease> \@loadwithoptions\@pkgextension\RequirePackage} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % +% + + + + + + +% % \begin{macro}{\usepackage} % To begin with, |\usepackage| produces an error. This is reset by % |\documentclass|. @@ -1482,6 +1586,10 @@ % \changes{v1.3d}{2019/10/18}{Initialize \cs{...-h@@k} only when loading % the package or class (gh/198)} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@onefilewithoptions}{Unused options issue}% \def\@onefilewithoptions#1[#2][#3]#4{% \@pushfilename \xdef\@currname{#1}% @@ -1531,19 +1639,49 @@ {}% {\@missingfileerror\@currname\@currext}% % \end{macrocode} -% |\@unprocessedoptions| will generate an error for each specified -% option in a package unless a |\ProcessOptions| has appeared in the -% package file. +% In older versions of the code |\@unprocessedoptions| would +% generate an error for each specified +% option in a package unless a |\ProcessOptions| has appeared in the +% package file. % \changes{v0.2v}{1994/01/29} % {All options raise error if no \cs{ProcessOptions} appears} % \changes{v0.2x}{1994/02/02} -% {Only run the hook and options check if the file was loaded.} -% \begin{macrocode} - \let\@unprocessedoptions\@@unprocessedoptions +% {Only run the hook and options check if the file was +% loaded.} +% +% This has changed in 2020. We now use a separate macro per package +% to avoid interferences in case of nested packages. The whole +% code for handling this issue (GitHub 22) was provided by Hironobu +% Yamashita, thanks for that. +% \changes{v1.3k}{2020/04/07}{Use different method to ignore +% unprocessed options (gh/22)} +% \begin{macrocode} + \expandafter\let\csname unprocessedoptions-\@currname.\@currext\endcsname + \@@unprocessedoptions \csname\@currname.\@currext-h@@k\endcsname \expandafter\let\csname\@currname.\@currext-h@@k\endcsname \@undefined - \@unprocessedoptions}% +% \end{macrocode} +% Catch the case where the packages has handled the options and +% redefined \cs{@unprocessedoptions} to \cs{relax} (old interface). +% In that case no error should be produced. +% \changes{v1.3k}{2020/04/07}{Use different method to ignore +% unprocessed options (gh/22)} +% \begin{macrocode} + \ifx\@unprocessedoptions\relax + \let\@unprocessedoptions\@undefined +% \end{macrocode} +% Otherwise run the per package set of unused options. +% \begin{macrocode} + \else + \csname unprocessedoptions-\@currname.\@currext\endcsname + \fi +% \end{macrocode} +% In either case we drop the macro afterwards as it is no longer needed. +% \begin{macrocode} + \expandafter\let + \csname unprocessedoptions-\@currname.\@currext\endcsname + \@undefined}% % \end{macrocode} % % \begin{macrocode} @@ -1565,8 +1703,82 @@ \reserved@a} \@onlypreamble\@onefilewithoptions % \end{macrocode} +% +% The kernel no longer uses \cs{@unprocessedoptions} +% \begin{macrocode} +\let\@unprocessedoptions\@undefined +% \end{macrocode} +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@onefilewithoptions}{Unused options issue}% +%<latexrelease> +% \end{macrocode} +% Because of the way \cs{@onfilewithoptions} is changed for +% rollback handling below we have to define +% \cs{load@onefilewithoptions} when rollowing back! +% \begin{macrocode} +%<latexrelease>\def\load@onefilewithoptions#1[#2][#3]#4{% +%<latexrelease> \@pushfilename +%<latexrelease> \xdef\@currname{#1}% +%<latexrelease> \global\let\@currext#4% +%<latexrelease> \let\CurrentOption\@empty +%<latexrelease> \@reset@ptions +%<latexrelease> \makeatletter +%<latexrelease> \def\reserved@a{% +%<latexrelease> \@ifl@aded\@currext{#1}% +%<latexrelease> {\@if@ptions\@currext{#1}{#2}{}% +%<latexrelease> {\@latex@error +%<latexrelease> {Option clash for \@cls@pkg\space #1}% +%<latexrelease> {The package #1 has already been loaded +%<latexrelease> with options:\MessageBreak +%<latexrelease> \space\space[\@ptionlist{#1.\@currext}]\MessageBreak +%<latexrelease> There has now been an attempt to load it +%<latexrelease> with options\MessageBreak +%<latexrelease> \space\space[#2]\MessageBreak +%<latexrelease> Adding the global options:\MessageBreak +%<latexrelease> \space\space +%<latexrelease> \@ptionlist{#1.\@currext},#2\MessageBreak +%<latexrelease> to your \noexpand\documentclass declaration may fix this.% +%<latexrelease> \MessageBreak +%<latexrelease> Try typing \space <return> \space to proceed.}}}% +%<latexrelease> {\@pass@ptions\@currext{#2}{#1}% +%<latexrelease> \global\expandafter +%<latexrelease> \let\csname ver@\@currname.\@currext\endcsname\@empty +%<latexrelease> \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty +%<latexrelease> \InputIfFileExists +%<latexrelease> {\@currname.\@currext}% +%<latexrelease> {}% +%<latexrelease> {\@missingfileerror\@currname\@currext}% +%<latexrelease> \let\@unprocessedoptions\@@unprocessedoptions +%<latexrelease> \csname\@currname.\@currext-h@@k\endcsname +%<latexrelease> \expandafter\let\csname\@currname.\@currext-h@@k\endcsname +%<latexrelease> \@undefined +%<latexrelease> \@unprocessedoptions}% +%<latexrelease> \@ifl@ter\@currext{#1}{#3}{}% +%<latexrelease> {\@latex@warning@no@line +%<latexrelease> {You have requested,\on@line, +%<latexrelease> version\MessageBreak +%<latexrelease> `#3' of \@cls@pkg\space #1,\MessageBreak +%<latexrelease> but only version\MessageBreak +%<latexrelease> `\csname ver@#1.\@currext\endcsname'\MessageBreak +%<latexrelease> is available}}% +%<latexrelease> \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi +%<latexrelease> \@popfilename +%<latexrelease> \@reset@ptions}% +%<latexrelease> \reserved@a} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} % \end{macro} % +% +% +% +% +% % \begin{macro}{\@@fileswith@pti@ns} % Save the definition (for error checking). % \changes{v0.2c}{1993/11/17} @@ -1593,6 +1805,9 @@ % \end{macrocode} % \end{macro} % +% +% +% % \subsection{Hooks} % % Allow code do be saved to be executed at specific later times. @@ -1760,6 +1975,7 @@ % \end{macrocode} % \end{macro} % +% \begin{environment}{filecontents} % \begin{macro}{\filecontents} % \begin{macro}{\endfilecontents} % This environment implements inline files. @@ -1776,13 +1992,12 @@ % \changes{v1.0m}{1995/04/21} % {Close input check stream: latex/1487} % \changes{v1.0p}{1995/05/25}{Delete \cs{filec@ntents} after preamble} -% \begin{macrocode} % \changes{v1.3a}{2019/07/01}{Support UTF8 and spaces in % filecontents environment file name} % \changes{v1.3b}{2019/08/27}{Make various commands robust} % \changes{v1.3c}{2019/09/11}{Support optional argument for filecontents} % \changes{v1.3f}{2020/01/05}{Support more write streams in LuaTeX gh/238} -% +% \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> %<latexrelease>\IncludeInRelease{2019/10/01}% @@ -2142,6 +2357,7 @@ % \end{macrocode} % \end{macro} % \end{macro} +% \end{environment} % % % diff --git a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx index 303b9e5604b..8b7a307ad2d 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltdefns.dtx} - [2020/02/27 v1.5g LaTeX Kernel (definition commands)] + [2020/05/15 v1.5h LaTeX Kernel (definition commands)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltdefns.dtx} @@ -118,9 +118,25 @@ % % \begin{macro}{\typeout} % Display something on the terminal. +% \changes{v1.5g}{2020/05/15}{Allow \cs{par} in the argument (gh/335)} % \begin{macrocode} -\def\typeout#1{\begingroup\set@display@protect - \immediate\write\@unused{#1}\endgroup} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\typeout}{Allow "par" in \typeout}% +\protected\long\def\typeout#1{\begingroup + \set@display@protect + \def\par{^^J^^J}% + \immediate\write\@unused{#1}\endgroup} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\typeout}{Allow "par" in \typeout}% +%<latexrelease> +%<latexrelease>\def\typeout#1{\begingroup\set@display@protect +%<latexrelease> \immediate\write\@unused{#1}\endgroup} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -1560,6 +1576,7 @@ % \changes{v1.0g}{1994/04/12} % {Define \cs{@dischyph}, was previously in ltboxes.dtx} % \changes{v1.5b}{2017/03/27}{Define \cs{@dischyph} after \cs{-}} +% \changes{v1.5h}{2020/05/11}{Do not overwrite \cs{-} under Lua\TeX} % \end{macro} % Moved here to be after the definition of |\DeclareRobustCommand|. % @@ -1589,35 +1606,56 @@ % older \LaTeX\ definition accessible via \textsf{latexrelease} % as usual. % -% \begin{macrocode} -%</2ekernel> -%<latexrelease>\IncludeInRelease{2017/04/15}{\-}{Use \hyphenchar in \-}% -% \end{macrocode} +% In Lua\LaTeX\ the primitive definition of \cs{-} is used directly +% because it's use of extended hyphenation parameters means that \cs{-} +% works correctly even with \cs{hyphenchar} set to $-1$. This change +% makes \cs{-} under Lua\LaTeX\ compatible with language specific +% hyphenation characters. +% % Temporary definition of |\@latex@info|, final definition is later. % \begin{macrocode} -%<*2ekernel> \def\@latex@info#1{} -%</2ekernel> % \end{macrocode} % % \begin{macrocode} +%</2ekernel> +%<latexrelease>\IncludeInRelease{2020/10/01}{\-}{Use primitive \- in Lua\LaTeX}% %<*2ekernel|latexrelease> -\DeclareRobustCommand{\-}{% - \discretionary{% - \char \ifnum\hyphenchar\font<\z@ - \defaulthyphenchar - \else - \hyphenchar\font - \fi - }{}{}% -} -\let\@dischyph=\- +\ifx\directlua\@undefined + \DeclareRobustCommand{\-}{% + \discretionary{% + \char \ifnum\hyphenchar\font<\z@ + \defaulthyphenchar + \else + \hyphenchar\font + \fi + }{}{}% + } +\else + \let\-\@@hyph +\fi %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2017/04/15}{\-}{Use \hyphenchar in \-}% +%<latexrelease>\DeclareRobustCommand{\-}{% +%<latexrelease> \discretionary{% +%<latexrelease> \char \ifnum\hyphenchar\font<\z@ +%<latexrelease> \defaulthyphenchar +%<latexrelease> \else +%<latexrelease> \hyphenchar\font +%<latexrelease> \fi +%<latexrelease> }{}{}% +%<latexrelease>} +%<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}{\-}{Use \hyphenchar in \-}% %<latexrelease>\def\-{\discretionary{-}{}{}} -%<latexrelease>\let\@dischyph=\- %<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<*2ekernel|latexrelease> +\let\@dischyph=\- +%</2ekernel|latexrelease> %<*2ekernel> % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx index e86b80acaf6..5e726298b26 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltexpl.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltexpl.dtx} - [2020-03-05 v1.1 LaTeX Kernel (expl3-dependent code)] + [2020-05-03 v1.2b LaTeX Kernel (expl3-dependent code)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfinal.dtx} @@ -75,7 +75,8 @@ % \changes{v1.0a}{2020/03/02} % {Don't load expl3 if already in the format (gh/295)} % \changes{v1.1}{2020/03/05} -% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined by expl3.ltx} +% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined +% by expl3.ltx} % \begin{macrocode} \expandafter\ifx\csname tex\string _let:D\endcsname\relax \IfFileExists{expl3.ltx} @@ -111,6 +112,44 @@ \fi %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \subsection{Using expl3 code} +% +% \begin{macrocode} +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@expl@tl@trim@spaces@apply@@nN} +%<latexrelease> {l3 macro for use in include}% +% \end{macrocode} +% In order to ease the implemantation of some new features in +% \LaTeXe\ we may (temporarily) use some coding based on the +% \pkg{expl3}-code. +% Such macros will eventually vanish and may be changed +% unannounced. They are there for internal use in the \LaTeXe\ +% kernel and are not meant to be used in third-party +% packages. These macros will always have the \verb|@expl@| +% prefix in their name. +% +% \changes{v1.2a}{2020/05/02} +% {Define a macro based on l3 language to support inclusion of +% files with space in the name (gh/217)} +% \begin{macrocode} +\ExplSyntaxOn +\cs_new_eq:NN \@expl@tl@trim@spaces@apply@@nN \tl_trim_spaces_apply:nN +\ExplSyntaxOff +% \end{macrocode} +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@expl@tl@trim@spaces@apply@@nN} +%<latexrelease> {l3 macro for use in include}% +%<latexrelease> +%<latexrelease>\let\@expl@tl@trim@spaces@apply@@nN\@undefined +%<latexrelease> +%<latexrelease>\EndIncludeInRelease %<*2ekernel> % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx b/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx index 33594a7b912..8e9611d9180 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltfiles.dtx} - [2019/11/11 v1.2f LaTeX Kernel (File Handling)] + [2020-05-05 v1.2g LaTeX Kernel (File Handling)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfiles.dtx} @@ -542,15 +542,32 @@ % \begin{macro}{\includeonly} % \changes{v1.0p}{1995/04/22}{Allow blanks in argument} % \changes{v1.2a}{2019/07/01}{Support UTF-8} +% \changes{v1.2g}{2020/05/02}{Improved support for spaces in filenames +% (gh/217)} % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2019/10/01}% +%<latexrelease>\IncludeInRelease{2020/10/01}% %<latexrelease> {\includeonly}{Spaces in file names}% \def\includeonly#1{% \@partswtrue - \set@curr@file{\zap@space#1 \@empty}% - \let\@partlist\@curr@file +% \end{macrocode} +% Because the argument to |\includeonly| is a comma-separated list +% of filenames where there may be comma's precedeing some of the +% filenames or trailing them. Therefore we need to take the list +% apart, remove the unwanted spaces while leaving the spaces +% \emph{in} the filenames intact. +% \begin{macrocode} + \let\@partlist\@empty + \@for\reserved@a:=#1 \do + { + \expandafter\set@curr@file@trim@spaces\expandafter{\reserved@a}% + \ifx\@partlist\@empty + \edef\@partlist{\@curr@file}% + \else + \edef\@partlist{\@partlist,\@curr@file}% + \fi + }% } \@onlypreamble\includeonly % \end{macrocode} @@ -572,21 +589,68 @@ % % Made |\include| check for being used inside an |\include|'d file, as % this will not work and cause surprising results. +% \changes{v1.2g}{2020/05/02}{Get rid of leading and trailing spaces +% from the filename (gh/217)} +% \changes{v1.2g}{2020-05-02}{Pass the filename to \cs{@include} by +% value instead of by reference (gh/217)} % \begin{macrocode} \def\include#1{\relax \ifnum\@auxout=\@partaux \@latex@error{\string\include\space cannot be nested}\@eha \else - \set@curr@file{#1 }% - \expandafter\@include\@curr@file + \set@curr@file@trim@spaces{#1}% +% \end{macrocode} +% For historical reasons \cs{@include} expects an argument +% delimited by a space. This is kept (though uncessary now) to avoid +% errors in other packages that use \cs{@include} directly. +% \begin{macrocode} + \expandafter\@include\expandafter{\@curr@file} % deliberate space \fi} % \end{macrocode} % \end{macro} % % +% +% \begin{macro}{\set@curr@file@trim@spaces} +% +% For |\include| and |\includeonly| we need a variant that removes +% any leading and trailing spaces from the filename, while leaving +% any spaces \emph{inside} the filename intact. In order simplify +% the implementaion we borrow some code from the \texttt{expl3} +% language, \textbf{\emph{beware}: this may change unannounced}. +% \begin{macrocode} +\def\set@curr@file@trim@spaces#1{% + \@expl@tl@trim@spaces@apply@@nN {#1} \set@curr@file } +% \end{macrocode} +% \end{macro} +% +% +% % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2019/10/01}% +%<latexrelease> {\includeonly}{Spaces in file names}% +%<latexrelease> +%<latexrelease>\def\includeonly#1{% +%<latexrelease> \@partswtrue +%<latexrelease> \set@curr@file{\zap@space#1 \@empty}% +%<latexrelease> \let\@partlist\@curr@file +%<latexrelease> } +%<latexrelease> +%<latexrelease>\def\include#1{\relax +%<latexrelease> \ifnum\@auxout=\@partaux +%<latexrelease> \@latex@error{\string\include\space cannot be nested}\@eha +%<latexrelease> \else +%<latexrelease> \set@curr@file{#1 }% +%<latexrelease> \expandafter\@include\@curr@file +%<latexrelease> \fi} +%<latexrelease> +%<latexrelease>\let\set@curr@file@trim@spaces\@undefined +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} %<latexrelease>\IncludeInRelease{0000/00/00}% %<latexrelease> {\includeonly}{Spaces in file names}% %<latexrelease>\def\includeonly#1{% @@ -604,11 +668,20 @@ % % \begin{macro}{\@include} +% \changes{v1.2g}{2020/05/02}{Support spaces in filenames by enclosing +% the names of \texttt{.aux}-files in quotes (gh/217)} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@include}{Spaces in file names}% +% \end{macrocode} +% % \begin{macrocode} \def\@include#1 {% \clearpage \if@filesw - \immediate\write\@mainaux{\string\@input{#1.aux}}% + \immediate\write\@mainaux{\string\@input{"#1.aux"}}% \fi \@tempswatrue \if@partsw @@ -620,7 +693,7 @@ \if@tempswa \let\@auxout\@partaux \if@filesw - \immediate\openout\@partaux #1.aux + \immediate\openout\@partaux "#1.aux" \immediate\write\@partaux{\relax}% \fi \@input@{#1.tex}% @@ -640,6 +713,42 @@ \@nameuse{cp@#1}% \fi \let\@auxout\@mainaux} +%<latexrelease>\EndIncludeInRelease +%<latexrelease> +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@include}{Spaces in file names}% +%<latexrelease>\def\@include#1 {% +%<latexrelease> \clearpage +%<latexrelease> \if@filesw +%<latexrelease> \immediate\write\@mainaux{\string\@input{#1.aux}}% +%<latexrelease> \fi +%<latexrelease> \@tempswatrue +%<latexrelease> \if@partsw +%<latexrelease> \@tempswafalse +%<latexrelease> \edef\reserved@b{#1}% +%<latexrelease> \@for\reserved@a:=\@partlist\do +%<latexrelease> {\ifx\reserved@a\reserved@b\@tempswatrue\fi}% +%<latexrelease> \fi +%<latexrelease> \if@tempswa +%<latexrelease> \let\@auxout\@partaux +%<latexrelease> \if@filesw +%<latexrelease> \immediate\openout\@partaux #1.aux +%<latexrelease> \immediate\write\@partaux{\relax}% +%<latexrelease> \fi +%<latexrelease> \@input@{#1.tex}% +%<latexrelease> \clearpage +%<latexrelease> \@writeckpt{#1}% +%<latexrelease> \if@filesw +%<latexrelease> \immediate\closeout\@partaux +%<latexrelease> \fi +%<latexrelease> \else +%<latexrelease> \deadcycles\z@ +%<latexrelease> \@nameuse{cp@#1}% +%<latexrelease> \fi +%<latexrelease> \let\@auxout\@mainaux} +%<latexrelease> +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -698,8 +807,8 @@ % the code in \texttt{utf8.def}). By setting \cs{escapchar} to % \texttt{-1} we ensure that we don't get a backslash in front. As a % result we end up with all characters as catcode 12 (plus -% spaces). We then sometimes add quotes around the contruct -% (removing any existing inner quotes. Somes we only remove the +% spaces). We then sometimes add quotes around the construct +% (removing any existing inner quotes. Sometimes we only remove the % quotes if they have been supplied by the user. There is clearly % some room for improvement. % diff --git a/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx b/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx index 23c3f464d3f..dee9a10197e 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfloat.dtx @@ -31,7 +31,7 @@ % %<*driver> % \fi -\ProvidesFile{ltfloat.dtx}[2015/02/21 v1.2c LaTeX Kernel (Floats)] +\ProvidesFile{ltfloat.dtx}[2020/04/09 v1.2d LaTeX Kernel (Floats)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltfloat.dtx} @@ -1327,13 +1327,36 @@ % always start with a font selection command, to activate the font % size switch. % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@textsuperscript}{superscript baseline}% \def\@textsuperscript#1{% - {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}} + {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\sf@size#1}}}}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@textsuperscript}{superscript baseline}% +%<latexrelease> +%<latexrelease>\def\@textsuperscript#1{% +%<latexrelease> {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % +% +% +% +% +% +% % \begin{macro}{\textsubscript} % \changes{v1.2a}{2014/12/30}{Command added (latexrelease)} +% \changes{v1.2d}{2020/04/09}{Set non-zero baseline (gh/249)} % \begin{macrocode} %</2ekernel> %<latexrelease>\IncludeInRelease{2015/01/01}% @@ -1345,27 +1368,54 @@ \DeclareRobustCommand*\textsubscript[1]{% \@textsubscript{\selectfont#1}}% % \end{macrocode} +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\textsubscript}{\textsubscript}% +%<latexrelease>\let\textsubscript\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} % \end{macro} % +% +% +% % \begin{macro}{\@textsubscript} % \changes{v1.2a}{2014/12/30}{Command added (latexrelease)} -% +% \changes{v1.2d}{2020/04/09}{Set non-zero baseline (gh/249)} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@textsubscript}{subscript baseline}% \def\@textsubscript#1{% - {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} + {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\sf@size#1}}}}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{2015/01/01}% +%<latexrelease> {\@textsubscript}{subscript baseline}% +%<latexrelease> +%<latexrelease>\def\@textsubscript#1{% +%<latexrelease> {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} % \end{macrocode} -% \end{macro} % % \begin{macrocode} -%</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% -%<latexrelease> {\textsubscript}{\textsubscript}% -%<latexrelease>\let\textsubscript\@undefined +%<latexrelease> {\@textsubscript}{subscript baseline}% %<latexrelease>\let\@textsubscript\@undefined %<latexrelease>\EndIncludeInRelease %<*2ekernel> % \end{macrocode} +% \end{macro} +% +% % % \begin{macro}{\footnotesep} % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx index 58d9aa159e3..08a0ff1b4c3 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfssaxes.dtx @@ -35,7 +35,7 @@ % % \ProvidesFile{ltfssaxes.dtx} - [2020/03/02 v1.0e LaTeX Kernel (NFSS Axes handing)] + [2020/05/19 v1.0f LaTeX Kernel (NFSS Axes handing)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -695,7 +695,7 @@ % % \begin{macro}{\fontseriesforce} % To change unconditionally to a new series you can use -% \cs{fontseriesforce}. If course, if the series doesn't exist for +% \cs{fontseriesforce}. Of course, if the series doesn't exist for % the current family substitution still happens, but there is not % dependency on the current series. % \changes{v1.0c}{2020/02/10}{Switch \cs{if@forced@series} added} @@ -881,7 +881,16 @@ ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}% \edef\in@@{\the\series@check@toks}% \ifx\in@@\@empty - \def#2{#1}% +% \end{macrocode} +% The default definition for \cs{bfdefault} etc is actually +% \texttt{b\cs{@empty}} so that we can detect if the user has +% changed the default. However that means a) the above test will +% definitely fail (maybe something to change) and b) we better use +% \cs{edef} on the next line to get rid of it as otherwise the test +% against \verb=#2= (e.g. \cs{bfdef@ult}) will fail in other places. +% \changes{v1.0e}{2020/05/19}{Need to use \cs{edef} (gh/336)} +% \begin{macrocode} + \edef#2{#1}% \else \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}% \fi diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx index 5715106ca63..4a6afca3ace 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfssbas.dtx @@ -1850,7 +1850,7 @@ % Finally, it is not possible to simply call the new definition % since we % have an argument (the third argument of |\use@mathgroup| -% or more exactly the argument od |\math@egroup| if the {\ttfamily +% or more exactly the argument of |\math@egroup| if the {\ttfamily % margid} option is in force) % which would swallow our closing |\fi|. So % we use the |\expandafter| technique to remove the |\fi| diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx index 951c6de2e5a..291cd1368f2 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfssdcl.dtx @@ -36,7 +36,7 @@ % % \ProvidesFile{ltfssdcl.dtx} - [2020/01/20 v3.0t LaTeX Kernel (NFSS Declarative Interface)] + [2020/03/19 v3.0v LaTeX Kernel (NFSS Declarative Interface)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -465,7 +465,7 @@ % \changes{v3.0q}{2015/03/18}{Introduce \cs{e@mathgroup@top}} % \begin{macrocode} %</2ekernel> -%<latexrelease>\IncludeInRelease{2015/01/01} +%<latexrelease>\IncludeInRelease{2020/10/01} %<latexrelease> {\document@select@group}{\document@select@group}% %<*2ekernel|latexrelease> \def\document@select@group#1#2#3#4{% @@ -491,13 +491,54 @@ \@eha \fi \else \expandafter\non@alpherr\fi - #1{#4}% +% \end{macrocode} +% If the legacy interface is used, e.g., \verb=$\sf -1$= the math +% alphabet \verb=#1= does not take an argument so we better do not +% surround \verb=#4= with braces, because then we get +% \verb={\relax}= into the formula and introduce an extra Ord +% atom. The two different cases can be distinguished by looking at +% the current value of \cs{math@bgroup}. +% \changes{v3.0u}{2020/03/19}{fix for (gnats/3357)} +% \begin{macrocode} + \expandafter#1\ifx\math@bgroup\bgroup{#4}\else#4\fi }% } %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2015/01/01} +%<latexrelease> {\document@select@group}{\document@select@group}% +%<latexrelease> +%<latexrelease>\def\document@select@group#1#2#3#4{% +%<latexrelease> \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi +%<latexrelease> {% +%<latexrelease> \ifmmode +%<latexrelease> \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top +%<latexrelease> \begingroup +%<latexrelease> \escapechar\m@ne +%<latexrelease> \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3% +%<latexrelease> \globaldefs\@ne \math@fonts +%<latexrelease> \endgroup +%<latexrelease> \expandafter\extract@alph@from@version +%<latexrelease> \csname mv@\math@version\expandafter\endcsname +%<latexrelease> \expandafter{\number\csname +%<latexrelease> c@mv@\math@version\endcsname}% +%<latexrelease> #1% +%<latexrelease> \global\advance\csname c@mv@\math@version\endcsname\@ne +%<latexrelease> \else +%<latexrelease> \let#1\relax +%<latexrelease> \@latex@error{Too many math alphabets used +%<latexrelease> in version \math@version}% +%<latexrelease> \@eha +%<latexrelease> \fi +%<latexrelease> \else \expandafter\non@alpherr\fi +%<latexrelease> #1{#4}% +%<latexrelease> }% +%<latexrelease>} +%<latexrelease>\EndIncludeInRelease +%<latexrelease> %<latexrelease>\IncludeInRelease{0000/00/00} %<latexrelease> {\document@select@group}{\document@select@group}% +%<latexrelease> %<latexrelease>\def\document@select@group#1#2#3#4{% %<latexrelease> \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi %<latexrelease> {% @@ -582,17 +623,19 @@ % \begin{macrocode} \let\select@group\document@select@group % \end{macrocode} -% Install the default font attributes they are currently pointing -% to error font shape. +% Install the default font attributes as they are currently pointing +% to error font face. We can speed up the process by just using +% \cs{edef}, thereby avoiding all kind of extra processing. % Don't use |\reset@font| since that would trigger |\selectfont|. +% \changes{v3.0v}{2020/04/13}{Small update for speed.} % \begin{macrocode} - \fontencoding{\encodingdefault}% - \fontfamily{\familydefault}% - \fontseries{\seriesdefault}% - \fontshape{\shapedefault}% + \fontencoding\encodingdefault + \edef\f@family{\familydefault}% + \edef\f@series{\seriesdefault}% + \edef\f@shape{\shapedefault}% % \end{macrocode} -% kill all macros not longer needed. -% we need to add many more!!!!!! +% Drop stuff not longer needed. +% We need to add many more!!!!!! % \begin{macrocode} \everyjob{}% } diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx index 3947b4d9538..952025375b3 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx @@ -36,7 +36,7 @@ % % \ProvidesFile{ltfssini.dtx} - [2020/03/02 v3.1k LaTeX Kernel (NFSS Initialisation)] + [2020/05/19 v3.2a LaTeX Kernel (NFSS Initialisation)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -288,8 +288,16 @@ \ifx\reserved@a\@empty \ifcsname #2series\endcsname % supported are % \[md/bf]default +% \end{macrocode} +% Adding \cs{@empty} allows us to detect if the default gets +% redefined with \cs{renewcommand} or \cs{def} by the user. +% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault} +% and \cs{mddefault} (gh/306)} +% \begin{macrocode} \expandafter\def - \csname #2default\endcsname{#3}% + \csname #2default\endcsname{#3\@empty}% + \expandafter\def + \csname #2default@previous\endcsname{#3\@empty}% \else % \end{macrocode} % @@ -381,6 +389,11 @@ % \begin{macro}{\expand@font@defaults} +% \begin{macro}{\rm@def@ult} +% \begin{macro}{\sf@def@ult} +% \begin{macro}{\tt@def@ult} +% \begin{macro}{\md@def@ult} +% \begin{macro}{\bf@def@ult} % % The family specific defaults are fully expanded, i.e., they are % defined via \cs{edef} inside \cs{DeclareFontSeriesDefault}. @@ -402,10 +415,19 @@ % \begin{macrocode} \series@maybe@drop@one@m\bfdefault\bfdef@ult \series@maybe@drop@one@m\mddefault\mddef@ult - \edef\famdef@ult{\familydefault}% +% \end{macrocode} +% Formats that set up parallel fonts, e.g., for Japanese, can use +% this hook to add additional code here. +% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)} +% \begin{macrocode} + \@expandfontdefaultshook } % \end{macrocode} -% +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \end{macro} @@ -425,6 +447,41 @@ % of \cs{fontseries} argument so that it is not done several times} % \begin{macrocode} \expand@font@defaults +% \end{macrocode} +% If \cs{bfdefault} and \cs{befdefault@previous} are different then +% the default got changed directly through the legacy interface +% (i.e., via \cs{def} or \cs{renewcommand}. In that case we reset +% all meta family defaults so that the document behaves like it was +% the case before the new mechanism was introduced. +% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault} +% and \cs{mddefault} (gh/306)} +% \begin{macrocode} + \ifx\bfdefault\bfdefault@previous\else +% \end{macrocode} +% We add \cs{@empty} and then let \cs{bfdefault@previous} to +% \cs{bfdefault} so that we can detect any further change. +% \begin{macrocode} + \expandafter\def\expandafter\bfdefault + \expandafter{\bfdefault\@empty}% + \let\bfseries@previous\bfdefault +% \end{macrocode} +% And we reset the meta family defaults (\cs{bfdef@ult} is an +% expanded version of \cs{bfdefault}. +% \begin{macrocode} + \let\bfseries@rm\bfdef@ult + \let\bfseries@sf\bfdef@ult + \let\bfseries@tt\bfdef@ult +% \end{macrocode} +% +% Formats that set up parallel fonts, e.g., for Japanese, can use +% this hook to add resets here. +% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)} +% \begin{macrocode} + \@setbfseriesdefaultshook + \fi +% \end{macrocode} +% +% \begin{macrocode} \ifx\f@family\rmdef@ult \fontseries\bfseries@rm \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt @@ -444,10 +501,26 @@ % This document command switches to the medium series. % \changes{v3.1i}{2020/02/18}{Make the \cs{ifx} selection outside % of \cs{fontseries} argument so that it is not done several times} +% \changes{v3.1k}{2020/03/19}{Support legacy use of \cs{bfdefault} +% and \cs{mddefault} (gh/306)} % \begin{macrocode} \DeclareRobustCommand\mdseries{% \not@math@alphabet\mdseries\relax \expand@font@defaults + \ifx\mddefault\mddefault@previous\else + \expandafter\def\expandafter\mddefault\expandafter{\mddefault\@empty}% + \let\mdseries@previous\mddefault + \let\mdseries@rm\mddef@ult + \let\mdseries@sf\mddef@ult + \let\mdseries@tt\mddef@ult +% \end{macrocode} +% +% Formats that set up parallel fonts, e.g., for Japanese, can use +% this hook to add resets here. +% \changes{v3.1m}{2020/04/06}{Hook added (gh/306)} +% \begin{macrocode} + \@setmdseriesdefaultshook + \fi \ifx\f@family\rmdef@ult \fontseries\mdseries@rm \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt @@ -610,11 +683,20 @@ % \end{macro} % % +% \begin{macro}{\@expandfontdefaultshook} +% \begin{macro}{\@setbfseriesdefaultshook} +% \begin{macro}{\@setmdseriesdefaultshook} % \begin{macro}{\@rmfamilyhook} % \begin{macro}{\@sffamilyhook} % \begin{macro}{\@ttfamilyhook} % By default the hooks do nothing. % \begin{macrocode} +\let\@expandfontdefaultshook\@empty +\let\@setbfseriesdefaultshook\@empty +\let\@setmdseriesdefaultshook\@empty +% \end{macrocode} +% +% \begin{macrocode} \let\@rmfamilyhook\@empty \let\@sffamilyhook\@empty \let\@ttfamilyhook\@empty @@ -622,6 +704,9 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % % @@ -873,23 +958,42 @@ % \end{macrocode} % % If the document preamble has changed the \cs{familydefault} or if -% the if the \cs{rmdefault} contains a new font family, we have to +% the if the \cs{rmdefault} contains a new font family, we may have to % adjust the series defaults accordingly, before starting % typesetting. -% -% On the other hand if we still typeset in CM or LM then -% \cs{bfdefault} is wrong since it is now saying \texttt{b} and not -% \texttt{bx}. - -% To fix this we run \cs{rmfamily}, \cs{sffamily} or -% \cs{ttfamily} depending on the situation and this will correct -% the setup for us. -% \begin{macrocode} - \expand@font@defaults - \ifx\famdef@ult\rmdef@ult \rmfamily - \else\ifx\famdef@ult\sfdef@ult \sffamily - \else\ifx\famdef@ult\ttdef@ult \ttfamily - \fi\fi\fi +% +% Similarly, if the user has changed the \cs{mddefault} or the +% medium series for the family selected as document font we may +% also have to adjust the \cs{seriesdefault}. +% +% On the other hand if the document font is still CM or LM then +% \cs{bfdefault} is wrong, because it is now saying \texttt{b} and not +% \texttt{bx} as it should for such fonts. +% +% To fix all this we first run \cs{reset@font} (the internal kernel +% name for \cs{normalfont}). This will set up the document encoding, +% family, series and shape based on the current values of +% \cs{encodingdefault}, \cs{familydefault}, \cs{seriesdefault} and +% \cs{shapedefault}. +% However, if the family (from \cs{familydefault}) has special medium +% default we should switch to that (and not use what is current +% value from \cs{seriesdefault}). This can be achieved by afterwards +% calling \cs{mediumseries} and then changing \cs{seriesdefault} to +% the now current series value (in \cs{f@series}). +% +% But what should happen if \cs{seriesdefault} got explicitly +% changed? In that case the explicit change should surive and we +% should not alter \cs{seriesdefault}. This is solved by comparing +% the current value of \cs{seriesdefault} with a kernel version +% saved in the format and if they differ we do not call +% \cs{mdseries} or change \cs{seriesdefault}. +% \changes{v3.1n}{2020/04/13}{Handling \cs{seriesdefault} changes (gh/315)} +% \begin{macrocode} + \reset@font + \ifx\seriesdefault\seriesdefault@kernel + \mdseries + \let\seriesdefault\f@series + \fi }% % \end{macrocode} % \end{macro} @@ -948,6 +1052,9 @@ %<latexrelease> {\not@math@alphabet\ttfamily\mathtt %<latexrelease> \fontfamily\ttdefault\selectfont} %<latexrelease> +%<latexrelease>\let\@expandfontdefaultshook\@undefined +%<latexrelease>\let\@setbfseriesdefaultshook\@undefined +%<latexrelease>\let\@setmdseriesdefaultshook\@undefined %<latexrelease>\let\@rmfamilyhook\@undefined %<latexrelease>\let\@sffamilyhook\@undefined %<latexrelease>\let\@ttfamilyhook\@undefined @@ -963,9 +1070,166 @@ %<latexrelease>\EndIncludeInRelease %<*2ekernel> % \end{macrocode} +% +% +% +% \begin{macro}{\IfFontSeriesContextTF} +% +% With the ability for \cs{bfseries} or \cs{mdseries} to be mapped +% to different NFSS axis values it becomes important to have the +% ability to determine the current context as we can no longer look +% at \cs{f@series} to answer a question such as ``am I currently +% typsetting in a bold typeface?'' +% +% This is provided by the test \cs{IfFontSeriesContextTF}. It takes +% three arguments: +% \begin{itemize} +% \item +% The context we try to check (either \texttt{bf} for bold or +% \texttt{md} for medium, i.e., the same that can go into the +% first mandatory argument of \cs{DeclareFontSeriesDefault}), +% +% \item +% what to do if we are in this context (true case) and +% +% \item +% what to do if we are not (false case). +% \end{itemize} +% This allows you to define commands like \cs{IfBold}, e.g., +%\begin{verbatim} +% \newcommand\IfBold[2]{\IfSeriesContextTF{bf}{#1}{#2}} +%\end{verbatim} +% and then do +%\begin{verbatim} +% This is \IfBold{bold}{non-bold} text. +%\end{verbatim} +% and get the appropriate result. +% +% \changes{v3.2a}{2020/05/19}{Macros added (gh/335)} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\IfFontSeriesContext}{Font series context}% +\DeclareRobustCommand\IfFontSeriesContextTF[1]{% + \expand@font@defaults +% \end{macrocode} +% In the beginning we haven't found the context we are loking for. +% \begin{macrocode} + \@font@series@contextfalse +% \end{macrocode} +% We store the requested context away for use in the tests. +% \begin{macrocode} + \def\requested@test@context{#1}% +% \end{macrocode} +% The next definition is there to ensure that get a final match +% during testing +% even if the current family is non of the meta families +% (\texttt{rm}, \texttt{sf} or \texttt{tt}). This will then +% basically tests if the current font family matches the overall default. +% \begin{macrocode} + \expandafter\edef\csname ??def@ult\endcsname{\f@family}% +% \end{macrocode} +% Then we run through the meta family list (currently containing +% just the three values) followed by the artifical meta family +% \texttt{??} and test each of them in turn using +% \cs{test@font@series@context} as the testing command. +% \begin{macrocode} + \let\@elt\test@font@series@context + \@meta@family@list + \@elt{??}% + \let\@elt\relax +% \end{macrocode} +% Following that we evaluate the status of +% \cs{if@font@series@context} to determine which of the remaining +% arguments (true/false case) we have to execute. +% \begin{macrocode} + \if@font@series@context + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\test@font@series@context} +% This tests the context (stored in \cs{requested@test@context}) +% and updates the bookean if the right context is found. +% \begin{macrocode} +\def\test@font@series@context#1{% +% \end{macrocode} +% First task is to figure out whether the current family matches +% \cs{rmfamily}, \cs{sffamily}, etc.\ so in \cs{reserved@a} we +% store the value of \cs{rmdef@ult} (or whatever the given meta +% family is) and compare that to \cs{f@family}. +% \begin{macrocode} + \edef\reserved@a{\csname #1def@ult\endcsname}% + \ifx\f@family\reserved@a +% \end{macrocode} +% If they match we have found the right meta family so we don't +% need to test any of the remaining meta family and therefore +% change \cs{@elt} to \cs{@gobble}. +% \begin{macrocode} + \let\@elt\@gobble +% \end{macrocode} +% Now we have to test if \cs{f@series} matches the requested +% context (e.g., whether \cs{bfseries@rm} has that value if the +% current meta family is \texttt{rm} and we are looking for the +% \texttt{bf} context). +% \begin{macrocode} + \expandafter\ifx + \csname\requested@test@context series@#1\endcsname\f@series +% \end{macrocode} +% If yes we change the boolean and are done. +% \begin{macrocode} + \@font@series@contexttrue +% \end{macrocode} +% If not then maybe the reason is that nothing special was set up +% for that meta family so we also check now check if \cs{f@series} +% matches the overall default (e.g., \cs{bfdef@ult} if we are +% looking for the bold context). If that matches we change the boolean. +% \begin{macrocode} + \else + \expandafter\ifx + \csname\requested@test@context def@ult\endcsname\f@series + \@font@series@contexttrue + \fi\fi\fi +} +% \end{macrocode} +% \end{macro} + + +% \begin{macro}{\if@font@series@context} +% The boolean to signal if we found the requested font series context. +% \begin{macrocode} +\newif\if@font@series@context +% \end{macrocode} +% \end{macro} % % +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\IfFontSeriesContext}{Font series context}% +%<latexrelease> +%<latexrelease>\let\IfFontSeriesContextTF\@undefined +%<latexrelease>\let\test@font@series@context\@undefined +%<latexrelease>\let\if@font@series@context\@undefined +%<latexrelease>\let\@font@series@contexttrue\@undefined +%<latexrelease>\let\@font@series@contextfalse\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} + + + % % \section{Supporting nested emphasis} % @@ -1565,6 +1829,26 @@ % \end{macrocode} % % +% +% \begin{macro}{\seriesdefault} +% \begin{macro}{\seriesdefault@kernel} +% After \cs{seriesdefault} got defined inside \texttt{fonttext.ltx} +% or a \texttt{.cfg} file overwriting it, we alter its value by +% appending \cs{@empty} to it. This will vanish if expanded but +% allows us to check if the default gets altered (even to the same +% value) in the document preamble. All we have to do is to save the +% current value somewhere and later compare the two. For this we +% use \cs{seriesdefault@kernel}. +% \changes{v3.1n}{2020/04/13}{Handling \cs{seriesdefault} changes (gh/315)} +% \begin{macrocode} +\expandafter\def\expandafter\seriesdefault\expandafter{\seriesdefault\@empty} +\let\seriesdefault@kernel\seriesdefault +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% % \begin{macro}{\@acci} % \begin{macro}{\@accii} % \begin{macro}{\@acciii} diff --git a/Master/texmf-dist/source/latex-dev/base/ltlists.dtx b/Master/texmf-dist/source/latex-dev/base/ltlists.dtx index e8c9ebc16bd..653e4e2edd2 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltlists.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltlists.dtx @@ -31,7 +31,7 @@ %<*driver> % \fi \ProvidesFile{ltlists.dtx} - [2015/05/10 v1.0t LaTeX Kernel (List Environments)] + [2020/04/24 v1.0t LaTeX Kernel (List Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltlists.dtx} @@ -546,6 +546,7 @@ % \end{macrocode} % \end{macro}\end{macro}\end{macro} % +% \begin{environment}{list} % \begin{macro}{\list} % \begin{macrocode} \def\list#1#2{% @@ -572,6 +573,7 @@ \ignorespaces} % \end{macrocode} % \end{macro} +% \end{environment} % % \begin{macro}{\par@deathcycles} % \begin{macrocode} @@ -626,8 +628,9 @@ % \end{macrocode} % \end{macro} % -% \changes{0.0}{1992/03/18}{RmS: added \cs{@nmbrlistfalse}} +% \begin{environment}{trivlist} % \begin{macro}{\trivlist} +% \changes{0.0}{1992/03/18}{RmS: added \cs{@nmbrlistfalse}} % \begin{macrocode} \def\trivlist{% \parsep\parskip @@ -647,6 +650,7 @@ \def\makelabel##1{##1}} % \end{macrocode} % \end{macro} +% \end{environment} % % \begin{macro}{\endlist} % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx b/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx index 1f9ab8d1332..d7ca7d05ecd 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx @@ -28,7 +28,7 @@ \ProvidesFile{ltluatex.dtx} %</driver> %<*tex> -[2020/02/02 v1.1l +[2020/03/07 v1.1m %</tex> %<plain> LuaTeX support for plain TeX (core) %<*tex> @@ -1716,6 +1716,7 @@ luatexbase.add_to_callback = add_to_callback % \changes{v1.0a}{2015/09/24}{Function added} % \changes{v1.0k}{2015/12/02}{adjust initialisation of cb local (PHG)} % \changes{v1.0k}{2015/12/02}{Give more specific error messages (PHG)} +% \changes{v1.1m}{2020/03/07}{Do not call callback.register for user-defined callbacks} % Remove a function from a callback. First check arguments. % \begin{macrocode} local function remove_from_callback(name, description) @@ -1761,7 +1762,9 @@ local function remove_from_callback(name, description) ) if #l == 0 then callbacklist[name] = nil - callback_register(name, nil) + if user_callbacks_defaults[name] == nil then + callback_register(name, nil) + end end return cb.func,cb.description end diff --git a/Master/texmf-dist/source/latex-dev/base/ltmath.dtx b/Master/texmf-dist/source/latex-dev/base/ltmath.dtx index 86e62e7bf52..c4963cf0c62 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltmath.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltmath.dtx @@ -38,7 +38,7 @@ %<*driver> % \fi \ProvidesFile{ltmath.dtx} - [2020/02/18 v1.2d LaTeX Kernel (Math Setup)] + [2020/04/21 v1.2f LaTeX Kernel (Math Setup)] % \iffalse %</driver> % @@ -509,18 +509,103 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\>} -% \begin{macro}{\;} -% \begin{macro}{\!} + + +% +% \begin{macro}{\tmspace} +% \begin{macro}{\,} +% \begin{macro}{\thinspace} +% \begin{macro}{\!} +% \begin{macro}{\negthinspace} +% \begin{macro}{\:} +% \begin{macro}{\medspace} +% \begin{macro}{\negmedspace} +% \begin{macro}{\;} +% \begin{macro}{\thickspace} +% \begin{macro}{\negthickspace} +% +% Originally \LaTeX{} only provided a small set of spacing commands +% for use in text and math, some of the commands like \cs{;} were +% only supported in manth mode. \texttt{amsmath} normalized and +% provided all of them in text and math. This code has now been +% moved to the kernel so that it is generally available. +% +% % \begin{macrocode} -%\def\,{\mskip\thinmuskip} % already defined in ltspace -\def\>{\mskip\medmuskip} -\def\;{\mskip\thickmuskip} -\def\!{\mskip-\thinmuskip} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\tmspace}{amsmath spacing commands}% +% \end{macrocode} +% \cs{tmspace} is really meant to be an internal command so it +% doesn't necessarily has to be robust but it was robust in +% \texttt{amsmath} so we leave it like that. +% \changes{v1.2e}{2020/03/07}{Add \texttt{amsmath} math/text spacing +% commands to the kernel (gh/303)} +% \begin{macrocode} +\DeclareRobustCommand\tmspace[3]{% + \ifmmode\mskip#1#2\else\leavevmode@ifvmode\kern#1#3\fi\relax} +% \end{macrocode} +% In \texttt{amsmath} the text kern is \texttt{.1667em}. For +% compatibility reasons we keep the longer one. +% \begin{macrocode} +\DeclareRobustCommand\,{\tmspace+\thinmuskip{.16667em}} +\let\thinspace\, % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% +% \begin{macrocode} +\DeclareRobustCommand\!{\tmspace-\thinmuskip{.16667em}} +\let\negthinspace\! +% \end{macrocode} +% +% \begin{macrocode} +\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}} +\let\medspace\: +% \end{macrocode} +% \LaTeX{} has a second name for this in its manual: +% \begin{macrocode} +\let\>=\: +\DeclareRobustCommand\negmedspace{\tmspace-\medmuskip{.2222em}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareRobustCommand\;{\tmspace+\thickmuskip{.2777em}} +\let\thickspace\; +\DeclareRobustCommand\negthickspace{\tmspace-\thickmuskip{.2777em}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\tmspace}{amsmath spacing commands}% +%<latexrelease> +%<latexrelease>\let\tmspace\@undefined +%<latexrelease>\DeclareRobustCommand{\,}{% +%<latexrelease> \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} +%<latexrelease>\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em } +%<latexrelease>\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em } +%<latexrelease>\def\>{\mskip\medmuskip} +%<latexrelease>\let\:=\> +%<latexrelease>\def\;{\mskip\thickmuskip} +%<latexrelease>\def\!{\mskip-\thinmuskip} +%<latexrelease> +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% % % \begin{macro}{\*} % \begin{macrocode} @@ -532,7 +617,7 @@ % Nickname for the medium space since |\>| is not available inside % \texttt{tabbing}. % \begin{macrocode} -\let\:=\> +%\let\:=\> % \end{macrocode} % \end{macro} % @@ -884,12 +969,32 @@ \def\@yeqncr{\@testopt\@xeqncr\z@skip} % \end{macrocode} % +% \changes{v1.2f}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@xeqncr}{eqnarray support calc syntax}% \def\@xeqncr[#1]{% \ifnum0=`{\fi}% \@@eqncr - \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}% + \noalign{\penalty\@eqpen\vskip\jot\@vspace@calcify{#1}}% } +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@xeqncr}{eqnarray support calc syntax}% +%<latexrelease> +%<latexrelease>\def\@xeqncr[#1]{% +%<latexrelease> \ifnum0=`{\fi}% +%<latexrelease> \@@eqncr +%<latexrelease> \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}% +%<latexrelease>} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % % \end{macro} diff --git a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx index 97b1f4a572b..5fb4e77d903 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltmiscen.dtx} - [2019/11/02 v1.1s LaTeX Kernel (Misc. Environments)] + [2020/04/24 v1.1t LaTeX Kernel (Misc. Environments)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltmiscen.dtx} @@ -182,6 +182,7 @@ % \end{macrocode} % \end{macro} % +% \begin{environment}{document} % \begin{macro}{\enddocument} % \changes{LaTeX2.09}{1993/08/03} % {Changed redefinition of \cs{global} to redefinition @@ -294,6 +295,7 @@ \deadcycles\z@\@@end} % \end{macrocode} % \end{macro} +% \end{environment} % % \begin{macro}{\@testdef} % \begin{macrocode} @@ -738,10 +740,25 @@ % \end{macro} % % \begin{macro}{\@icentercr} +% \changes{v1.1t}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} -\def\@icentercr[#1]{\vskip #1\ignorespaces} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@icentercr}{centering, etc support calc}% +\def\@icentercr[#1]{\@vspace@calcify{#1}\ignorespaces} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@icentercr}{centering, etc support calc}% +%<latexrelease> +%<latexrelease>\def\@icentercr[#1]{\vskip #1\ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} -% % \end{macro} % % @@ -983,6 +1000,7 @@ % \end{macrocode} % \end{macro} % +% \begin{environment}{verbatim} % \begin{macro}{\verbatim} % \begin{macro}{\endverbatim} % (RmS 93/09/19) Protected against `missing item' error message @@ -993,6 +1011,7 @@ % \end{macrocode} % \end{macro} % \end{macro} +% \end{environment} % % \begin{macro}{\verbatim@font} % \changes{v0.9a}{1993/11/21}{Macro added} @@ -1010,7 +1029,7 @@ %</2ekernel> %<*2ekernel|latexrelease> %<latexrelease>\IncludeInRelease{2018/12/01}% -%<latexrelease> {\verbvisiblespace}{Setup visible space for verb}% +%<latexrelease> {\verbvisiblespace}{Setup visible space for \verb}% % \end{macrocode} % % @@ -1092,15 +1111,71 @@ % \end{macrocode} % \end{macro} % +%^^A \@sverb was here +% +% \begin{environment}{verbatim*} +% For \texttt{verbatim*} we also set up the correct visible space +% character definition and then run |\@vobeyspaces|. As this code +% is not called as part of the normal verbatim environment (the +% method is done the other way around this time) we don't have to +% check if space is already active---it shouldn't be. +% \changes{v1.1o}{2018/10/11} +% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} +% \begin{macrocode} +\@namedef{verbatim*}{\@verbatim + \@setupverbvisiblespace + \frenchspacing\@vobeyspaces\@sxverbatim} +\expandafter\let\csname endverbatim*\endcsname =\endverbatim +% \end{macrocode} +% \end{environment} +% +% +% +% \begin{macrocode} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\verbvisiblespace}{Setup visible space for \verb}% +%<latexrelease> +%<latexrelease>\@namedef{verbatim*}{\@verbatim\@sxverbatim} +%<latexrelease> +%<latexrelease>\let\asciispace \@undefined +%<latexrelease>\let\verbvisiblespace \@undefined +%<latexrelease>\let\@setupverbvisiblespace\@undefined +%<latexrelease>\let\@verbvisiblespacebox \@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% +% % % \begin{macro}{\@sverb} +% \begin{macro}{\@@sverb} % \changes{v1.0j}{1994/05/10}{Slight change in error message text.} % Definitions of |\@sverb| and |\@verb| changed so |\verb+ foo+| % does not lose leading blanks when it comes at the beginning of a line. % Change made 24 May 89. Suggested by Frank Mittelbach and Rainer % Sch\"opf. % \begin{macrocode} -\def\@sverb#1{% +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@sverb}{Drop spaces before \verb delimiter}% +% \end{macrocode} +% +% If the users types \verb=\verb !~! foo= then surprisingly we would +% get the space as the delimiter and thus +% ``\verb=!~!foo='' in the output. +% To avoid this scenario we check if \verb=#1= has the character +% code of a space, if so we recurse otherwise we call \cs{@@sverb} +% (which is the original definition of \cs{@sverb}. +% \changes{v1.1u}{2020/04/22}{Drop spaces before \cs{verb} delimiter (gh/327)} +% \begin{macrocode} +\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi} +% \end{macrocode} +% +% \begin{macrocode} +\def\@@sverb#1{% \catcode`#1\active \lccode`\~`#1% \gdef\verb@balance@group{\verb@egroup @@ -1120,39 +1195,28 @@ \else \@setupverbvisiblespace \@vobeyspaces \fi } % \end{macrocode} -% \end{macro} -% -% \begin{environment}{verbatim*} -% For \texttt{verbatim*} we also set up the correct visible space -% character definition and then run |\@vobeyspaces|. As this code -% is not called as part of the normal verbatim environment (the -% method is done the other way around this time) we don't have to -% check if space is already active---it shouldn't be. -% \changes{v1.1o}{2018/10/11} -% {Provide visible space in \cs{verb*} also for XeTeX and LuaTeX (github/69)} -% \begin{macrocode} -\@namedef{verbatim*}{\@verbatim - \@setupverbvisiblespace - \frenchspacing\@vobeyspaces\@sxverbatim} -\expandafter\let\csname endverbatim*\endcsname =\endverbatim -% \end{macrocode} -% \end{environment} -% -% -% +% % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease -%<latexrelease>\IncludeInRelease{0000/00/00}% -%<latexrelease> {\verbvisiblespace}{Setup visible space for verb}% -%<latexrelease> -%<latexrelease>\@namedef{verbatim*}{\@verbatim\@sxverbatim} +%<latexrelease>\IncludeInRelease{2018/12/01}% +%<latexrelease> {\@sverb}{Setup visible space for \verb}% %<latexrelease> -%<latexrelease>\let\asciispace \@undefined -%<latexrelease>\let\verbvisiblespace \@undefined -%<latexrelease>\let\@setupverbvisiblespace\@undefined -%<latexrelease>\let\@verbvisiblespacebox \@undefined +%<latexrelease>\def\@sverb#1{% +%<latexrelease> \catcode`#1\active +%<latexrelease> \lccode`\~`#1% +%<latexrelease> \gdef\verb@balance@group{\verb@egroup +%<latexrelease> \@latex@error{\noexpand\verb illegal in command argument}\@ehc}% +%<latexrelease> \aftergroup\verb@balance@group +%<latexrelease> \lowercase{\let~\verb@egroup}% +%<latexrelease> \ifnum\catcode`\ =\active +%<latexrelease> \else \@setupverbvisiblespace \@vobeyspaces \fi +%<latexrelease>} +%<latexrelease>\let\@@sverb\@undefined +%<latexrelease>\EndIncludeInRelease %<latexrelease> +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@sverb}{Setup visible space for \verb}% %<latexrelease>\def\@sverb#1{% %<latexrelease> \catcode`#1\active %<latexrelease> \lccode`\~`#1% @@ -1164,8 +1228,8 @@ %<latexrelease>\EndIncludeInRelease %<*2ekernel> % \end{macrocode} -% -% +% \end{macro} +% \end{macro} % % % \begin{macro}{\@makeother} diff --git a/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx b/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx index f3c19000edf..8831b5655f8 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltoutenc.dtx @@ -37,14 +37,14 @@ %<TS1>\ProvidesFile{ts1enc.def}[2001/06/05 v3.0e (jk/car/fm) %<TU>\ProvidesFile{tuenc.def} %<package>\ProvidesPackage{fontenc} -%<OT1|T1|OMS|OML|OT4|TU|package> [2020/02/11 v2.0o +%<OT1|T1|OMS|OML|OT4|TU|package> [2020/04/22 v2.0p %<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file] %<package> Standard LaTeX package] % %<*driver> % \fi \ProvidesFile{ltoutenc.dtx} - [2020/02/11 v2.0o LaTeX Kernel (font encodings)] + [2020/04/22 v2.0p LaTeX Kernel (font encodings)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltoutenc.dtx} @@ -188,6 +188,8 @@ % like.} % \changes{v1.99m}{2015/02/21} % {Removed autoload code} +% \changes{v2.0p}{2020/04/22} +% {corrected \=y unicode value in tuenc.def} % % % \section{Font encodings} @@ -3370,7 +3372,7 @@ \DeclareUnicodeComposite{\textcommabelow}{T}{"021A} \DeclareUnicodeComposite{\textcommabelow}{t}{"021B} \DeclareUnicodeComposite{\=} {Y}{"0232} -\DeclareUnicodeComposite{\=} {y}{"0232} +\DeclareUnicodeComposite{\=} {y}{"0233} \DeclareUnicodeComposite{\.} {B}{"1E02} \DeclareUnicodeComposite{\.} {b}{"1E03} \DeclareUnicodeComposite{\d} {B}{"1E04} @@ -3601,7 +3603,7 @@ \xdef\@fontenc@load@list{\@fontenc@load@list \@elt{\csname opt@fontenc.sty\endcsname}} % \end{macrocode} -% +% % \begin{macrocode} \global\expandafter\let\csname ver@fontenc.sty\endcsname\relax \global\expandafter\let\csname opt@fontenc.sty\endcsname\relax diff --git a/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx b/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx index 4018adba596..bdac744e831 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltpictur.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltpictur.dtx} - [2020/02/14 v1.1n LaTeX Kernel (Picture Mode)] + [2020/05/12 v1.1o LaTeX Kernel (Picture Mode)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltpictur.dtx} @@ -191,6 +191,7 @@ % \end{macro} % \end{macro} % +% \begin{environment}{picture} % \begin{macro}{\picture} % \changes{v0.1c}{1994/04/28}{(DPC) Ignore spaces before (} % |#1| should be white space. @@ -229,6 +230,7 @@ \mbox{\box\@picbox}} % \end{macrocode} % \end{macro} +% \end{environment} % % In the definitions of |\put| and |\multiput|, |\hskip| was replaced by % |\kern| just in case arg |#3| = ``plus''. (Bug detected by Don Knuth. @@ -275,9 +277,11 @@ % \begin{macro}{\thinlines} % \begin{macro}{\thicklines} % \begin{macrocode} -\DeclareRobustCommand\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc +\DeclareRobustCommand\thinlines{\let\@linefnt\tenln + \let\@circlefnt\tencirc \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth} -\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw +\DeclareRobustCommand\thicklines{\let\@linefnt\tenlnw + \let\@circlefnt\tencircw \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth} % \end{macrocode} % \end{macro} @@ -333,8 +337,24 @@ % \end{macro} % % \begin{macro}{\@istackcr} +% \changes{v1.1o}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} -\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@istackcr}{\shortstack calc support}% +\def\@istackcr[#1]{\cr\noalign{\@vspace@calcify{#1}}\ignorespaces} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@istackcr}{\shortstack calc support}% +%<latexrelease> +%<latexrelease>\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -1341,7 +1361,7 @@ % \end{macro} % % \begin{macro}{\@xdim} -% \begin{macro}{\yxdim} +% \begin{macro}{\@ydim} % Length registers. % \begin{macrocode} \newdimen\@xdim diff --git a/Master/texmf-dist/source/latex-dev/base/ltspace.dtx b/Master/texmf-dist/source/latex-dev/base/ltspace.dtx index 16d7dcb43aa..1a672c6455d 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltspace.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltspace.dtx @@ -32,7 +32,7 @@ %<*driver> % \fi \ProvidesFile{ltspace.dtx} - [2019/11/02 v1.3k LaTeX Kernel (spacing)] + [2020/05/06 v1.3n LaTeX Kernel (spacing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltspace.dtx} @@ -63,6 +63,8 @@ % \changes{v1.2r}{1996/07/27}{Correct documentation of problems} % \changes{v1.2w}{1998/08/17}{Documentation fixes.} % \changes{v1.3j}{2019/08/27}{Make various commands robust} +% \changes{v1.3l}{2020/03/07}{Moved \cs{thinspace}, \cs{negthinspace} +% and \cs{,} to ltmath.dtx (gh/303)} % % % \section{Spacing} @@ -428,6 +430,37 @@ % \end{macrocode} % \end{macro} % \end{macro} +% +% +% +% \begin{macro}{\@vspace@calcify} +% Helper command to produce a \cs{vskip} that is first run through +% \cs{setlength}. This way the \texttt{calc} package can operate on +% the argument value. +% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@vspace@calcify}{Add calc support}% +\def\@vspace@calcify#1{\begingroup\setlength\skip@{#1}\vskip\skip@\endgroup} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@vspace@calcify}{Add calc support}% +%<latexrelease> +%<latexrelease>\let\@vspace@calcify\@undefined +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> +% \end{macrocode} +% \end{macro} +% +% + + % \begin{macro}{\newline} % A simple form of the `normal' definition of |\\|. % \changes{v1.2v}{1997/05/07}{Made completely robust.} @@ -445,12 +478,31 @@ % \end{macro} % % \begin{macro}{\@newline} +% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@newline}{\newline calc support}% \def\@newline[#1]{\let \reserved@e \vadjust - \@gnewline {\vskip #1}} + \@gnewline {\@vspace@calcify{#1}}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@newline}{\newline calc support}% +%<latexrelease> +%<latexrelease>\def\@newline[#1]{\let \reserved@e \vadjust +%<latexrelease> \@gnewline {\vskip #1}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % +% +% % \begin{macro}{\@gnewline} % \changes{v1.2u}{1996/10/29}{Added macro} % The |\nobreak| added to prevent null lines when |\\| @@ -518,7 +570,7 @@ % |\begin{@float}| \ldots |\end{@float}| % that want to be invisible --- i.e., % not leave any extra space when used in the middle of text. Such -% a macro should begin with |\@bsphack| and end with |\@esphack| +% a macro should begin with |\@bsphack| and end with |\@esphack|. % The macro in question should not create any text, nor change the % mode. % @@ -823,20 +875,48 @@ % \changes{v1.2c}{1994/11/13}{Recorrected error message} % Add vertical space taking into account space already added, as % described above. +% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\addvspace}{\addvspace calc support}% \def\addvspace#1{% \ifvmode \if@minipage\else \ifdim \lastskip =\z@ - \vskip #1\relax + \@vspace@calcify{#1}% \else - \@tempskipb#1\relax + \setlength\@tempskipb{#1}% \@xaddvskip \fi \fi \else \@noitemerr \fi} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\addvspace}{\addvspace calc support}% +%<latexrelease> +%<latexrelease>\def\addvspace#1{% +%<latexrelease> \ifvmode +%<latexrelease> \if@minipage\else +%<latexrelease> \ifdim \lastskip =\z@ +%<latexrelease> \vskip #1\relax +%<latexrelease> \else +%<latexrelease> \@tempskipb#1\relax +%<latexrelease> \@xaddvskip +%<latexrelease> \fi +%<latexrelease> \fi +%<latexrelease> \else +%<latexrelease> \@noitemerr +%<latexrelease> \fi} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % @@ -938,6 +1018,8 @@ % \end{macrocode} % \end{macro} % +% +% % \begin{macro}{\vspace} % \changes{v1.2m}{1996/01/20}{Made robust} % \begin{macro}{\@vspace} @@ -957,14 +1039,25 @@ % \end{itemize} % \begin{macrocode} \DeclareRobustCommand\vspace{\@ifstar\@vspacer\@vspace} +% \end{macrocode} +% +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@vspace}{Support calc in \vspace}% +% \end{macrocode} +% We support calc syntax in the argument and therefore use \cs{setlength}. +% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \begin{macrocode} \def\@vspace #1{% \ifvmode - \vskip #1 + \@vspace@calcify{#1}% \vskip\z@skip \else \@bsphack \vadjust{\@restorepar - \vskip #1 + \@vspace@calcify{#1}% \vskip\z@skip }% \@esphack @@ -977,7 +1070,7 @@ \dimen@\prevdepth \hrule \@height\z@ \nobreak - \vskip #1 + \@vspace@calcify{#1}% \vskip\z@skip \prevdepth\dimen@ \else @@ -985,10 +1078,46 @@ \vadjust{\@restorepar \hrule \@height\z@ \nobreak - \vskip #1 + \@vspace@calcify{#1}% \vskip\z@skip}% \@esphack \fi} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@vspace}{Support calc in \vspace}% +%<latexrelease> +%<latexrelease>\def\@vspace #1{% +%<latexrelease> \ifvmode +%<latexrelease> \vskip #1 +%<latexrelease> \vskip\z@skip +%<latexrelease> \else +%<latexrelease> \@bsphack +%<latexrelease> \vadjust{\@restorepar +%<latexrelease> \vskip #1 +%<latexrelease> \vskip\z@skip +%<latexrelease> }% +%<latexrelease> \@esphack +%<latexrelease> \fi} +%<latexrelease>\def\@vspacer#1{% +%<latexrelease> \ifvmode +%<latexrelease> \dimen@\prevdepth +%<latexrelease> \hrule \@height\z@ +%<latexrelease> \nobreak +%<latexrelease> \vskip #1 +%<latexrelease> \vskip\z@skip +%<latexrelease> \prevdepth\dimen@ +%<latexrelease> \else +%<latexrelease> \@bsphack +%<latexrelease> \vadjust{\@restorepar +%<latexrelease> \hrule \@height\z@ +%<latexrelease> \nobreak +%<latexrelease> \vskip #1 +%<latexrelease> \vskip\z@skip}% +%<latexrelease> \@esphack +%<latexrelease> \fi} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % \end{macro} @@ -1094,17 +1223,6 @@ % \end{macrocode} % % -% \begin{macro}{\,} -% Used in paragraph mode produces a |\thinspace|. It has the -% ordinary definition in math mode. Useful for quotes inside quotes, -% as in |``\,`Foo', he said.''| -% \changes{v1.0o}{1994/05/11}{Use \cs{DeclareRobustCommand}. ASAJ.} -% \begin{macrocode} -\DeclareRobustCommand{\,}{% - \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi -} -% \end{macrocode} -% \end{macro} % % \begin{macro}{\@} % Placed before a '.', makes it a sentence-ending period. Does the @@ -1142,20 +1260,37 @@ % \changes{LaTeX2e}{1993/08/05} % {(RmS) Removed superfluous \cs{leavevmode} in \cs{@hspace} and % \cs{@hspacer}, as suggested by CAR.} +% \changes{v1.3m}{2020/04/21}{Support calc syntax (gh/152)} +% \begin{macrocode} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@hspace}{Support calc with \hspace}% +\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% % \begin{macrocode} -\def\@hspace#1{\hskip #1\relax} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@hspace}{Support calc with \hspace}% + +%<latexrelease> +%<latexrelease>\def\@hspace#1{\hskip #1\relax} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % % % \begin{macro}{\@hspacer} -% extra |\hskip 0pt| added 1985/17/12 to guard +% Extra |\hskip 0pt| added 1985/17/12 to guard % against a following |\unskip| % |\relax| added 13 Oct 88 for usual \TeX\ lossage % replaced both changes by |\hskip\z@skip| 27 Nov 91 % \begin{macrocode} \def\@hspacer#1{\vrule \@width\z@\nobreak - \hskip #1\hskip \z@skip} + \@hspace{#1}\hskip \z@skip} % \end{macrocode} % \end{macro} % @@ -1184,19 +1319,12 @@ %<latexrelease> {\thinspace}{Start LR-mode}% % \end{macrocode} % -% -% \begin{macro}{\thinspace} -% \begin{macro}{\negthinspace} % \begin{macro}{\enspace} % \changes{v1.3h}{2018/09/24}{Start LR-mode if necessary (git/49)} % \begin{macrocode} -\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em } -\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em } \DeclareRobustCommand\enspace{\leavevmode@ifvmode\kern.5em } % \end{macrocode} % \end{macro} -% \end{macro} -% \end{macro} % % \begin{macro}{\leavevmode@ifvmode} % Leave vmode but only if we are really in vmode, otherwise the @@ -1234,6 +1362,18 @@ % \end{macro} % \end{macro} % +% \changes{v1.3n}{2020/05/06}{Made softhyphen active in TU engines} +% +% For Unicode engines, make the Unicode soft hyphen an active +% character defined as \cs{-}. +% +% \begin{macrocode} +\ifx\Umathcode\@undefined\else + \catcode "AD=13 + \def^^ad{\-} +\fi +% \end{macrocode} +% % \begin{macro}{\obeycr} % \begin{macro}{\restorecr} % The following definitions will probably get deleted or moved to diff --git a/Master/texmf-dist/source/latex-dev/base/lttab.dtx b/Master/texmf-dist/source/latex-dev/base/lttab.dtx index 47cf4a66184..dedd9e5d375 100644 --- a/Master/texmf-dist/source/latex-dev/base/lttab.dtx +++ b/Master/texmf-dist/source/latex-dev/base/lttab.dtx @@ -31,7 +31,7 @@ %%% From File: lttab.dtx %<*driver> % \fi -\ProvidesFile{lttab.dtx}[2019/10/07 v1.1q LaTeX Kernel (Columns)] +\ProvidesFile{lttab.dtx}[2020/04/24 v1.1r LaTeX Kernel (Columns)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{lttab.dtx} @@ -475,11 +475,28 @@ % \end{macro} % % \begin{macro}{\@itabcr} +% \changes{v1.1r}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} -\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@itabcr}{Tabbing calc syntax}% +\def\@itabcr[#1]{\@vspace@calcify{#1}\@startline\ignorespaces} +%</2ekernel|latexrelease> +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@itabcr}{Tabbing calc syntax}% +%<latexrelease> +%<latexrelease>\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % % +% \begin{environment}{tabbing} % \begin{macro}{\tabbing} % \changes{v1.1f}{1995/10/23}{(CAR)Make \cs{@hightab} consistently a % local variable} @@ -513,6 +530,8 @@ \@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist} % \end{macrocode} % \end{macro} +% \end{environment} +% % % \begin{macro}{\@rtab} % Omitted |\global| added to |\@rtab| 17 Jun 86 @@ -815,6 +834,7 @@ % \end{macrocode} % \end{macro} % +% \begin{environment}{array} % \begin{macro}{\array} % \begin{macrocode} \def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz @@ -822,6 +842,7 @@ \let\\\@arraycr\let\@halignto\@empty\@tabarray} % \end{macrocode} % \end{macro} +% \end{environment} % % \begin{macro}{\endarray} % \begin{macro}{\endtabular} @@ -835,11 +856,13 @@ % \end{macro} % \end{macro} % +% \begin{environment}{tabular} % \begin{macro}{\tabular} % \begin{macrocode} \def\tabular{\let\@halignto\@empty\@tabular} % \end{macrocode} % \end{macro} +% \end{environment} % % \begin{macro}{\tabular*} % \changes{v1.1j}{1998/05/18}{Use \cs{setlength}, so that @@ -1003,8 +1026,24 @@ % \end{macro} % % \begin{macro}{\@yargarraycr} +% \changes{v1.1r}{2020/04/21}{Support calc syntax (gh/152)} % \begin{macrocode} -\def\@yargarraycr#1{\cr\noalign{\vskip #1}} +%</2ekernel> +%<*2ekernel|latexrelease> +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\@yargarraycr}{tabular support calc syntax}% +\def\@yargarraycr#1{\cr\noalign{\@vspace@calcify{#1}}} +%</2ekernel|latexrelease> +%<latexrelease>\EndIncludeInRelease +% \end{macrocode} +% +% \begin{macrocode} +%<latexrelease>\IncludeInRelease{0000/00/00}% +%<latexrelease> {\@yargarraycr}{tabular support calc syntax}% +%<latexrelease> +%<latexrelease>\def\@yargarraycr#1{\cr\noalign{\vskip #1}} +%<latexrelease>\EndIncludeInRelease +%<*2ekernel> % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx b/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx index dc2c2c49c7c..3b6231dafdf 100644 --- a/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx +++ b/Master/texmf-dist/source/latex-dev/base/lttextcomp.dtx @@ -33,7 +33,7 @@ % % \ProvidesFile{lttextcomp.dtx} - [2020/02/20 v1.0c LaTeX Kernel (text companion symbols)] + [2020/04/29 v1.0d LaTeX Kernel (text companion symbols)] % \iffalse \documentclass{ltxdoc} \begin{document} @@ -565,24 +565,25 @@ % % In Unicode engines we just execute the simple accents: % \changes{v1.0c}{2020/02/10}{Use \cs{@tabacckludge} for tabbing where necessary (gh/271)} +% \changes{v1.0d}{2020/04/29}{Make all captial accents text commands for hyperref (gh/332)} % \begin{macrocode} \else - \def\capitalacute{\@tabacckludge'} - \def\capitalbreve{\u} - \def\capitalcaron{\v} - \def\capitalcedilla{\c} - \def\capitalcircumflex{\^} - \def\capitaldieresis{\"} - \def\capitaldotaccent{\.} - \def\capitalgrave{\@tabacckludge`} - \def\capitalhungarumlaut{\H} - \def\capitalmacron{\@tabacckludge=} - \def\capitalnewtie{\t} - \def\capitalogonek{\k} - \def\capitalring{\r} - \def\capitaltie{\t} - \def\capitaltilde{\~} - \def\newtie{\t} + \DeclareTextCommandDefault\capitalacute{\@tabacckludge'} + \DeclareTextCommandDefault\capitalbreve{\u} + \DeclareTextCommandDefault\capitalcaron{\v} + \DeclareTextCommandDefault\capitalcedilla{\c} + \DeclareTextCommandDefault\capitalcircumflex{\^} + \DeclareTextCommandDefault\capitaldieresis{\"} + \DeclareTextCommandDefault\capitaldotaccent{\.} + \DeclareTextCommandDefault\capitalgrave{\@tabacckludge`} + \DeclareTextCommandDefault\capitalhungarumlaut{\H} + \DeclareTextCommandDefault\capitalmacron{\@tabacckludge=} + \DeclareTextCommandDefault\capitalnewtie{\t} + \DeclareTextCommandDefault\capitalogonek{\k} + \DeclareTextCommandDefault\capitalring{\r} + \DeclareTextCommandDefault\capitaltie{\t} + \DeclareTextCommandDefault\capitaltilde{\~} + \DeclareTextCommandDefault\newtie{\t} \fi % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx index ed2abe1088b..dd39a67896a 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx @@ -115,7 +115,7 @@ {2020-10-01} %</2ekernel|latexrelease> %<*2ekernel> -\def\patch@level{-5} +\def\patch@level{-6} % \end{macrocode} % % \begin{macro}{\development@branch@name} diff --git a/Master/texmf-dist/source/latex-dev/base/ltxref.dtx b/Master/texmf-dist/source/latex-dev/base/ltxref.dtx index c20a3245588..98187571499 100644 --- a/Master/texmf-dist/source/latex-dev/base/ltxref.dtx +++ b/Master/texmf-dist/source/latex-dev/base/ltxref.dtx @@ -33,7 +33,7 @@ %<*driver> % \fi \ProvidesFile{ltxref.dtx} - [2019/09/16 v1.1m LaTeX Kernel (Cross Referencing)] + [2020/05/07 v1.1n LaTeX Kernel (Cross Referencing)] % \iffalse \documentclass{ltxdoc} \GetFileInfo{ltxref.dtx} @@ -311,14 +311,16 @@ % \begin{macrocode} %</2ekernel> %<*2ekernel|latexrelease> -%<latexrelease>\IncludeInRelease{2019/10/01}% -%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}% +%<latexrelease>\IncludeInRelease{2020/10/01}% +%<latexrelease> {\refstepcounter}{Add \@currentcounter}% % \end{macrocode} % % \begin{macro}{\refstepcounter} % Step the counter and allow for labels to point to its current value. +% \changes{v1.1n}{2020/05/05}{record the counter name in \cs{@currentcounter}} % \begin{macrocode} \def\refstepcounter#1{\stepcounter{#1}% + \edef\@currentcounter{#1}% \protected@edef\@currentlabel % \end{macrocode} % By generating the second csname first the |\p@...| command can @@ -381,6 +383,16 @@ % \begin{macrocode} %</2ekernel|latexrelease> %<latexrelease>\EndIncludeInRelease +%<latexrelease>\IncludeInRelease{2019/10/01}% +%<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}% +%<latexrelease>\def\refstepcounter#1{\stepcounter{#1}% +%<latexrelease> \protected@edef\@currentlabel +%<latexrelease> {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% +%<latexrelease>} +%<latexrelease>\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1} +%<latexrelease>\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}% +%<latexrelease> \expandafter\MakeUppercase\@tempa} +%<latexrelease>\EndIncludeInRelease %<latexrelease>\IncludeInRelease{0000/00/00}% %<latexrelease> {\refstepcounter}{Add \labelformat and \Ref}% %<latexrelease> diff --git a/Master/texmf-dist/source/latex-dev/graphics/color.dtx b/Master/texmf-dist/source/latex-dev/graphics/color.dtx index ad5df89a7ee..cdc2dbe5fed 100644 --- a/Master/texmf-dist/source/latex-dev/graphics/color.dtx +++ b/Master/texmf-dist/source/latex-dev/graphics/color.dtx @@ -19,7 +19,7 @@ %<driver> \ProvidesFile{color.drv} % \fi % \ProvidesFile{color.dtx} - [2019/11/23 v1.2a Standard LaTeX Color (DPC)] + [2020/02/24 v1.2b Standard LaTeX Color (DPC)] % % \iffalse %<*driver> @@ -558,6 +558,8 @@ % {usenames option added} % \changes{v0.3f}{1994/10/04} % {Give info about redefinitions} +% \changes{v1.2b}{2020/02/24} +% {corrected test, see https://www.latex-project.org/cgi-bin/ltxbugs2html?pr=graphics/3635} % % Driver files may opt to define a `named' colour model. % Placing colour names rather than numeric specifications into the dvi @@ -603,7 +605,7 @@ {\c@lor@error{model `#1'}}% {\@ifundefined{color@#3}% {\c@lor@error{model `#3'}}% - {\@ifundefined{c@lor@#1@#2}{}% + {\@ifundefined{col@#2}{}% {\PackageInfo{color}{Redefining color #2 in named color model}}% \csname color@#3\endcsname\@tempa{#4}% \csname define@color@#1\endcsname{#2}\@tempa diff --git a/Master/texmf-dist/source/latex-dev/tools/array.dtx b/Master/texmf-dist/source/latex-dev/tools/array.dtx index aca43a53c64..a84d4faf510 100644 --- a/Master/texmf-dist/source/latex-dev/tools/array.dtx +++ b/Master/texmf-dist/source/latex-dev/tools/array.dtx @@ -29,10 +29,11 @@ %<+package>\providecommand\DeclareCurrentRelease[2]{} %<+package> %<+package>\DeclareRelease{}{2016-10-06}{array-2016-10-06.sty} -%<+package>\DeclareCurrentRelease{}{2019-10-01} +%<+package>\DeclareRelease{v2.4}{2020-02-10}{array-2020-02-10.sty} +%<+package>\DeclareCurrentRelease{}{2020-10-01} %<+package> %<+package>\ProvidesPackage{array} -%<+package> [2020/02/10 v2.4m Tabular extension package (FMi)] +%<+package> [2020/10/01 v2.5b Tabular extension package (FMi)] % % \fi % @@ -2206,8 +2207,13 @@ \let\do@row@strut\relax % \end{macrocode} % +% \cs{@yargarraycr} is the same as in the \LaTeX{} kernel +% (depending on the date of the kernel with one of the two +% definitions below). We therefore do not define it again. +% \changes{v2.5b}{200/04/22}{Don't define \cs{@yargarraycr} unnecessarily} % \begin{macrocode} -\def\@yargarraycr#1{\cr\noalign{\vskip #1}} +%\def\@yargarraycr#1{\cr\noalign{\@vspace@calcify{#1}}} % 2020-10-01 +%\def\@yargarraycr#1{\cr\noalign{\vskip #1}} % \end{macrocode} % \end{macro} % \end{macro} @@ -3034,14 +3040,18 @@ % alignment which is either "l", "c", or "r" and the second is the % nominal width of the column. % \changes{v2.4f}{2017/11/07}{Column type added} +% \changes{v2.5a}{2020/04/06}{Use \cs{d@llarbegin} and \cs{d@llarend} so +% that cell is typeset in math mode inside \texttt{array} (gh/297)} % \begin{macrocode} \newcolumntype{w}[2]{% % \end{macrocode} % Before the cell content we start an "lrbox"-environment to % collect the cell material into the previously allocated box -% "\ar@cellbox". +% "\ar@cellbox". We add \cs{d@llarbegin} (and later \cs{d@llarend}) +% so that the content is typeset in math mode if we are in an +% \texttt{array} environment. % \begin{macrocode} - >{\begin{lrbox}\ar@cellbox}% + >{\begin{lrbox}\ar@cellbox\d@llarbegin}% % \end{macrocode} % Then comes a specifier for the cell content. We use "c", but % that doesn't matter as in the end we will always put a box of a @@ -3059,9 +3069,9 @@ % alignment within that width. We unbox the collected material so % that any stretchable glue inside can interact with the alignment. % \changes{v2.4m}{2020/02/10}{Unbox collected material so that -% % stretchable glue inside can act (gh/270)} +% stretchable glue inside can act (gh/270)} % \begin{macrocode} - <{\end{lrbox}% + <{\d@llarend \end{lrbox}% \makebox[#2][#1]{\unhbox\ar@cellbox}}} % \end{macrocode} % \end{macro} @@ -3072,11 +3082,13 @@ % The \texttt{W} is similar but in this case we want a warning if % the cell content is too wide. % \changes{v2.4f}{2017/11/07}{Column type added} +% \changes{v2.5a}{2020/04/06}{Use \cs{d@llarbegin} and \cs{d@llarend} so +% that cell is typeset in mathmode inside \texttt{array} (gh/297)} % \begin{macrocode} \newcolumntype{W}[2] - {>{\begin{lrbox}\ar@cellbox}% + {>{\begin{lrbox}\ar@cellbox\d@llarbegin}% c% - <{\end{lrbox}% + <{\d@llarend\end{lrbox}% \let\hss\hfil \makebox[#2][#1]{\unhbox\ar@cellbox}}} % \end{macrocode} diff --git a/Master/texmf-dist/source/latex-dev/tools/xr.dtx b/Master/texmf-dist/source/latex-dev/tools/xr.dtx index a6b2ffd8193..a2dbea7c1e5 100644 --- a/Master/texmf-dist/source/latex-dev/tools/xr.dtx +++ b/Master/texmf-dist/source/latex-dev/tools/xr.dtx @@ -25,7 +25,7 @@ % %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{xr} -%<package> [2019/07/22 v5.05 eXternal References (DPC)] +%<package> [2020-05-10 v5.06 eXternal References (DPC)] % %<*driver> \documentclass{ltxdoc} @@ -103,12 +103,15 @@ \let\externalcitedocument\externaldocument % \end{macrocode} % -% Save the optional prefix. Start processing the first |aux| file. +% Save the optional prefix. Start processing the first |aux| file. +% \changes{v5.06}{2020-05-10}{Remove leading and trailing sapces from +% the filename (gh/2223)} % \begin{macrocode} \def\XR@[#1]#2{{% \makeatletter \def\XR@prefix{#1}% - \XR@next#2.aux\relax\\}} + \set@curr@file@trim@spaces{#2}% + \expandafter\XR@next\@curr@file.aux\relax\\}} % \end{macrocode} % % Process the next |aux| file in the list and remove it from the head of @@ -135,8 +138,10 @@ % If the |aux| file exists, loop through line by line, looking for % |\newlabel| and |\@input|. Otherwise process the next file in the % list. +% \changes{v5.06}{2020-05-10}{Add braces around the filename to +% support filenames with spaces (gh/223)} % \begin{macrocode} -\def\XR@loop#1{\openin\@inputcheck#1\relax +\def\XR@loop#1{\openin\@inputcheck{#1}\relax \ifeof\@inputcheck \PackageWarning{xr}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}% \expandafter\XR@aux |