summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-10-28 20:35:26 +0000
committerKarl Berry <karl@freefriends.org>2020-10-28 20:35:26 +0000
commit62cf1eaa95c7ba58202f5dc2bf73d696571ba4ba (patch)
tree558f7f8c43402460a351450404d10eb95d8ab240 /Master/texmf-dist/source
parentd13ad981b2b59dceaa311340f367af1b82e2ddaf (diff)
latex-dev (28oct20)
git-svn-id: svn://tug.org/texlive/trunk@56791 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx31
-rw-r--r--Master/texmf-dist/source/latex-dev/base/format.ins3
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltboxes.dtx5
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltclass.dtx72
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltdefns.dtx4
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx217
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfiles.dtx6
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfinal.dtx6
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltfssini.dtx27
-rw-r--r--Master/texmf-dist/source/latex-dev/base/lthooks.dtx142
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltluatex.dtx7
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx5
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltshipout.dtx28
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltvers.dtx4
-rw-r--r--Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx9
15 files changed, 288 insertions, 278 deletions
diff --git a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
index 05b51683496..7f324700f67 100644
--- a/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
+++ b/Master/texmf-dist/source/latex-dev/amsmath/amsmath.dtx
@@ -86,7 +86,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesPackage{amsmath}[2020/08/24 v2.17h AMS math features]
+\ProvidesPackage{amsmath}[2020/09/23 v2.17i AMS math features]
% \end{macrocode}
%
% \section{Catcode defenses}
@@ -615,8 +615,14 @@ Foreign command \@backslashchar#1;\MessageBreak
% abbreviations for some commonly needed mathstyle overrides. To
% conserve csnames we avoid making \cn{dfrac} and \cn{tfrac} robust
% (\cn{genfrac} is itself robust).
+% \changes{v2.17i}{2020/09/23}{added \cs{Ustack} for luatex (moved patch from lualatex-math)}
% \begin{macrocode}
+%
+\ifx\directlua\@undefined
\DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}
+\else
+\DeclareRobustCommand{\frac}[2]{{\Ustack{\begingroup#1\endgroup\@@over#2}}}
+\fi
\newcommand{\dfrac}{\genfrac{}{}{}0}
\newcommand{\tfrac}{\genfrac{}{}{}1}
% \end{macrocode}
@@ -749,12 +755,12 @@ Foreign command \@backslashchar#1;\MessageBreak
\fi
}
% \end{macrocode}
-%
+% \changes{v2.17i}{2020/09/23}{added \cs{Ustack} (moved patch from lualatex-math)}
% \begin{macrocode}
\DeclareRobustCommand{\genfrac}[6]{{%
\@mathstyle{#4}%
\genfrac@choice o{#1}%
-{\begingroup#5\endgroup\ifx @#3@\@@over\else\@@above\fi#3\relax#6}%
+{\Ustack {\begingroup#5\endgroup\ifx @#3@\@@over\else\@@above\fi#3\relax#6}}%
\genfrac@choice c{#2}%
}}
% \end{macrocode}
@@ -2336,7 +2342,9 @@ Foreign command \@backslashchar#1;\MessageBreak
% for use in a subscript or superscript. At the moment the supported
% arguments are not the full possibilities of \env{array} but only
% |c| or |l| for centered or left-aligned. And only one column.
+% \changes{v2.17i}{2020/09/23}{moved to version from lualatex-math for luatex}
% \begin{macrocode}
+\ifx\directlua\@undefined
\newenvironment{subarray}[1]{%
% \end{macrocode}
% Note: The predecessors of \env{subarray} (\env{Sb} and \env{Sp},
@@ -2375,6 +2383,23 @@ Foreign command \@backslashchar#1;\MessageBreak
}{%
\crcr\egroup\egroup
}
+\else
+\newenvironment{subarray}[1]{%
+ \vcenter\bgroup
+ \Let@ \restore@math@cr \default@tag
+ \baselineskip \Umathstacknumup \scriptstyle
+ \advance\baselineskip \Umathstackdenomdown \scriptstyle
+ \lineskip \Umathstackvgap \scriptstyle
+ \lineskiplimit \lineskip
+ \ialign\bgroup\ifx c#1\hfil\fi
+ \Ustartmath
+ \m@th\scriptstyle##
+ \Ustopmath
+ \hfil\crcr
+}{%
+ \crcr\egroup\egroup
+}
+\fi
% \end{macrocode}
% \end{environment}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/format.ins b/Master/texmf-dist/source/latex-dev/base/format.ins
index bad21debd27..8796d16d3e2 100644
--- a/Master/texmf-dist/source/latex-dev/base/format.ins
+++ b/Master/texmf-dist/source/latex-dev/base/format.ins
@@ -239,9 +239,6 @@ the system are in the document `cfgguide.tex'.
\generate{\file{structuredlog.sty}{\from{ltfilehook.dtx}{structuredlog}}}
-%drafts to get removed
-\generate{\file{filehook-ltx.sty}{\from{ltfilehook.dtx}{filehook-draft}}}
-\generate{\file{srclfile-ltx.sty}{\from{ltfilehook.dtx}{scrlfile-draft}}}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx b/Master/texmf-dist/source/latex-dev/base/ltboxes.dtx
index e5d5c9264df..39c134b3bfd 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}
- [2020/10/01 v1.4a LaTeX Kernel (Box Commands)]
+ [2020/09/27 v1.4a LaTeX Kernel (Box Commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltboxes.dtx}
@@ -392,7 +392,7 @@
\kern\z@}}
%</2ekernel|latexrelease>
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
@@ -413,6 +413,7 @@
%<latexrelease> \kern\z@}}
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
+% \end{macrocode}
% \end{macro}
%
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltclass.dtx b/Master/texmf-dist/source/latex-dev/base/ltclass.dtx
index 44fe0f88567..b639ae9410a 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/09/06 v1.3q LaTeX Kernel (Class & Package Interface)]
+ [2020/10/18 v1.3t LaTeX Kernel (Class & Package Interface)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltclass.dtx}
@@ -561,6 +561,7 @@
% |#4| Rest of the stack.
% \changes{v1.3l}{2020/06/05}{Added \cs{@expl@push@filename@@}
% and \cs{@expl@push@filename@aux@@}}
+% \changes{v1.3s}{2020/10/08}{Added missing 2020/02/02 \cs{IncludeInRelease}}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
@@ -586,6 +587,27 @@
\@currnamestack}%
\@expl@push@filename@aux@@}
%<latexrelease>\EndIncludeInRelease
+% \end{macrocode}
+%
+% The following version of \cs{@pushfilename} didn't formally exist in
+% this file, but in the 2020/02/02 release, \pkg{expl3} was preloaded
+% and it patched \cs{@pushfilename} (and \cs{@popfilename}) by adding
+% some hooks in there. But rolling back to 2020/02/02, \pkg{expl3}
+% doesn't patch these macros again, so rolling back has to take those
+% hooks into account. Same goes for \cs{@popfilename}.
+% \begin{macrocode}
+%<latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}{\@pushfilename}%
+%<latexrelease> {Add \@expl@push@filename@@}%
+%<latexrelease>\def\@pushfilename{%
+%<latexrelease> \@expl@push@filename@@
+%<latexrelease> \xdef\@currnamestack{%
+%<latexrelease> {\@currname}%
+%<latexrelease> {\@currext}%
+%<latexrelease> {\the\catcode`\@}%
+%<latexrelease> \@currnamestack}%
+%<latexrelease> \@expl@push@filename@aux@@}
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>
%<latexrelease>\IncludeInRelease{0000/00/00}{\@pushfilename}%
%<latexrelease> {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
@@ -613,6 +635,12 @@
\@expl@pop@filename@@}
%<latexrelease>\EndIncludeInRelease
%<latexrelease>
+%<latexrelease>\IncludeInRelease{2020/02/02}{\@popfilename}%
+%<latexrelease> {Add \@expl@push@filename@@}%
+%<latexrelease>\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil
+%<latexrelease> \@expl@pop@filename@@}
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>
%<latexrelease>\IncludeInRelease{0000/00/00}{\@popfilename}%
%<latexrelease> {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
%<latexrelease>\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
@@ -906,14 +934,18 @@
% be cautious when handling the identification string in case it
% contains UTF-8 characters.
% \changes{v1.3e}{2019/11/29}{Protect package info text (gh/52)}
+% \changes{v1.3r}{2020/10/01}{Allow for package subsitution}
% \begin{macrocode}
%</2ekernel>
%<*2ekernel|latexrelease>
-%<latexrelease>\IncludeInRelease{2020/02/02}%
-%<latexrelease> {\@pr@videpackage}{Protection for package info}%
+%<latexrelease>\IncludeInRelease{2020/10/01}%
+%<latexrelease> {\@pr@videpackage}{Allow for package subsitution}%
\def\@pr@videpackage[#1]{%
\expandafter\protected@xdef % <-- protected...
- \csname ver@\@currname.\@currext\endcsname{#1}%
+ \csname ver@\@currname.\@currext\endcsname{#1}% Loaded package
+ \expandafter\let
+ \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package
+ \csname ver@\@currname.\@currext\endcsname
\ifx\@currext\@clsextension
\typeout{Document Class: \@gtempa\space#1}%
\else
@@ -938,6 +970,19 @@
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/02/02}%
+%<latexrelease> {\@pr@videpackage}{Protection for package info}%
+%<latexrelease>
+%<latexrelease>\def\@pr@videpackage[#1]{%
+%<latexrelease> \expandafter\protected@xdef % <-- protected...
+%<latexrelease> \csname ver@\@currname.\@currext\endcsname{#1}%
+%<latexrelease>\ifx\@currext\@clsextension
+%<latexrelease> \typeout{Document Class: \@gtempa\space#1}%
+%<latexrelease> \else
+%<latexrelease> \protected@wlog{Package: \@gtempa\space#1}% <--- protected
+%<latexrelease> \fi}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\@pr@videpackage}{Protection for package info}%
%<latexrelease>
@@ -1020,13 +1065,16 @@
% \begin{macro}{\PassOptionsToClass}
% If the package has been loaded, we check that it was first loaded with
% the options. Otherwise we add the option list to that of the package.
+% \changes{v1.3t}{2020/10/18}{Drop path from \cs{input@path} (gh/414).}
% \begin{macrocode}
%</2ekernel>
%<latexrelease>\IncludeInRelease{2020/10/01}{\@pass@ptions}
%<latexrelease> {Add file replacement in \@pass@ptions}%
%<*2ekernel|latexrelease>
\def\@pass@ptions#1#2#3{%
- \edef\reserved@a{\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \@expl@@@filehook@set@curr@file@@nNN
+ {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \reserved@a\reserved@b
\expandafter\xdef\csname opt@\reserved@a\endcsname{%
\@ifundefined{opt@\reserved@a}\@empty
{\csname opt@\reserved@a\endcsname,}%
@@ -1757,7 +1805,13 @@
% \cs{@currext} are used we lose track of the substitution, so
% \cs{CurrentFile} and \cs{CurrentFileUsed} will be (incorrectly)
% the same.
+%
+% \changes{v1.3t}{2020-10-11}{Restore \cs{@currpkg@reqd} after
+% finished loading a package file (gh/408).}
% \begin{macrocode}
+ \expandafter\@swaptwoargs\expandafter
+ {\expandafter{\@currpkg@reqd}}%
+ {% <
\edef\@currpkg@reqd{\@currname.\@currext}%
\ifx\CurrentFile\CurrentFileUsed
\else
@@ -1766,6 +1820,8 @@
\edef\@currext{\string@makeletter\filename@ext}%
\fi
\load@onefile@withoptions{#2}%
+ \def\@currpkg@reqd%{\@currpkg@reqd}
+ }% >
% \end{macrocode}
% Now just clean up and exit.
% \begin{macrocode}
@@ -1792,7 +1848,11 @@
\@popfilename
\@reset@ptions}
% \end{macrocode}
-%
+%
+% \begin{macrocode}
+\let\@currpkg@reqd\@empty
+% \end{macrocode}
+%
% \begin{macrocode}
\@onlypreamble\@onefilewithoptions
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx b/Master/texmf-dist/source/latex-dev/base/ltdefns.dtx
index 476d102ae4e..569c9db4df9 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/09/06 v1.5n LaTeX Kernel (definition commands)]
+ [2020/09/25 v1.5n LaTeX Kernel (definition commands)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltdefns.dtx}
@@ -999,7 +999,7 @@
% evaluates its argument fully.
% \end{itemize}
% The method \LaTeX{} uses for making fragile commands robust is to
-% precede them with |\protect|. This can have one of five possible
+% precede them with |\protect|. This can have one of four possible
% values:
% \begin{itemize}
% \item |\relax|, for normal typesetting. So |\protect\foo| will
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx b/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
index 26dba35165f..ecb499f3475 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfilehook.dtx
@@ -31,8 +31,8 @@
%%% From File: ltfilehook.dtx
%
% \begin{macrocode}
-\providecommand\ltfilehookversion{v1.0a}
-\providecommand\ltfilehookdate{2020/08/30}
+\providecommand\ltfilehookversion{v1.0c}
+\providecommand\ltfilehookdate{2020/10/18}
% \end{macrocode}
%
%<*driver>
@@ -840,7 +840,7 @@
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\declare@file@substitution}{File substitution}%
\ExplSyntaxOn
-\cs_new_eq:NN \declare@file@substitution \@@_subst_add:nn
+\cs_new_eq:NN \declare@file@substitution \@@_subst_add:nn
\cs_new_eq:NN \undeclare@file@substitution \@@_subst_remove:n
\ExplSyntaxOff
%</2ekernel|latexrelease>
@@ -872,8 +872,8 @@
%
% \begin{macro}{\set@curr@file,\@curr@file,\@curr@file@reqd}
% Now we hook into \cs{set@curr@file} to resolve a possible file
-% substitution, and add \cs{@expl@@@filehook@set@curr@file@@N} at the end, after
-% \cs{@curr@file} is set.
+% substitution, and add \cs{@expl@@@filehook@set@curr@file@@nNN}
+% at the end, after \cs{@curr@file} is set.
%
% A file name is built using
% \cs{expandafter}\cs{string}\cs{csname}\meta{filename}\cs{endcsname}
@@ -987,24 +987,24 @@
.tex\else\string#1\fi}
% \end{macrocode}
%
-% Then we call \cs{@expl@@@filehook@set@curr@file@@N} once for \cs{@curr@file}
-% to set \cs[no-index]{CurrentFile(Path)Used} and once for
+% Then we call \cs{@expl@@@filehook@set@curr@file@@nNN} once for
+% \cs{@curr@file} to set \cs[no-index]{CurrentFile(Path)Used} and once for
% \cs{@curr@file@reqd} to set \cs[no-index]{CurrentFile(Path)}.
% Here too the slower route is only used if a substitution happened,
-% but here \cs{@expl@@@filehook@if@file@replaced@@TF} can't be used because the
-% flag is reset at the \cs{endgroup} above, so we check if
+% but here \cs{@expl@@@filehook@if@file@replaced@@TF} can't be used because
+% the flag is reset at the \cs{endgroup} above, so we check if
% \cs{@curr@file} and \cs{@curr@file@reqd} differ. This macro is
% issued separate from \cs{set@curr@file} because it changes
% \cs{CurrentFile}, and side-effects would quickly get out of control.
% \begin{macrocode}
\def\@filehook@set@CurrentFile{%
- \@expl@@@filehook@set@curr@file@@N{\@curr@file}%
+ \@expl@@@filehook@set@curr@file@@nNN{\@curr@file}%
\CurrentFileUsed\CurrentFilePathUsed
\ifx\@curr@file@reqd\@curr@file
\let\CurrentFile\CurrentFileUsed
\let\CurrentFilePath\CurrentFilePathUsed
\else
- \@expl@@@filehook@set@curr@file@@N{\@curr@file@reqd}%
+ \@expl@@@filehook@set@curr@file@@nNN{\@curr@file@reqd}%
\CurrentFile\CurrentFilePath
\fi}
%</2ekernel|latexrelease>
@@ -1016,8 +1016,7 @@
%
%
%
-% \begin{macro}{\@@_set_curr_file:N,
-% \@@_set_curr_file:nNN,
+% \begin{macro}{\@@_set_curr_file:nNN,
% \@@_set_curr_file_assign:nnnNN}
% When inputting a file, \cs{set@curr@file} does a file lookup
% (in \cs{input@path} and \cs{l_file_search_path_seq}) and returns the
@@ -1032,17 +1031,12 @@
%</2ekernel>
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/10/01}%
-%<latexrelease> {@@_set_curr_file:N}{Set curr file}%
+%<latexrelease> {@@_set_curr_file:nNN}{Set curr file}%
\ExplSyntaxOn
%<@@=filehook>
-\cs_new_protected:Npn \@@_set_curr_file:N #1
- { \exp_args:NV \@@_set_curr_file:nNN #1 }
-% \end{macrocode}
-%
-% \begin{macrocode}
\cs_new_protected:Npn \@@_set_curr_file:nNN #1
{
- \@@_file_parse_full_name:nN {#1}
+ \exp_args:Nf \@@_file_parse_full_name:nN {#1}
\@@_set_curr_file_assign:nnnNN
}
\cs_new_protected:Npn \@@_set_curr_file_assign:nnnNN #1 #2 #3 #4 #5
@@ -1331,8 +1325,8 @@
% \end{macrocode}
%
% \begin{macrocode}
-\cs_new_eq:NN \@expl@@@filehook@set@curr@file@@N
- \__filehook_set_curr_file:N
+\cs_new_eq:NN \@expl@@@filehook@set@curr@file@@nNN
+ \__filehook_set_curr_file:nNN
% \end{macrocode}
%
% \begin{macrocode}
@@ -1348,7 +1342,6 @@
% \begin{macrocode}
\cs_new_eq:NN \@expl@@@filehook@if@file@replaced@@TF
\__filehook_if_file_replaced:TF
-
% \end{macrocode}
%
% \begin{macrocode}
@@ -1532,184 +1525,6 @@
% \end{macrocode}
%
%
-% \subsection{Package \pkg{filehook} emulation}
-%
-% This is a partial implementation of the \pkg{filehook}
-% interfaces. It is only meant for guidance in case that package
-% gets updated to use the hook management.
-%
-% Not implemented are:
-%\begin{verbatim}
-% \AtBeginOfFiles
-% \AtEndOfFiles
-% \AtBeginOfInputs
-% \AtEndOfInputs
-% \AtBeginOfInputFile
-% \AtEndOfInputFile
-%\end{verbatim}
-%
-% \begin{macrocode}
-%<*filehook-draft>
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\AtBeginOfEveryFile [1]
- {\AddToHook{file/before}{#1}}
-\newcommand\AtEndOfEveryFile [1]
- {\AddToHook{file/after}{#1}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\AtBeginOfIncludes [1]
- {\AddToHook{include/before}{#1}}
-\newcommand\AtEndOfIncludes [1]
- {\AddToHook{include/end}{#1}}
-\newcommand\AfterIncludes [1]
- {\AddToHook{include/after}{#1}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\AtBeginOfPackages [1]
- {\AddToHook{package/before}{#1}}
-\newcommand\AtEndOfPackages [1]
- {\AddToHook{package/after}{#1}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\AtBeginOfClasses [1]
- {\AddToHook{class/before}{#1}}
-\newcommand\AtEndOfClasses [1]
- {\AddToHook{class/after}{#1}}
-% \end{macrocode}
-%
-% For normal files we drop the \texttt{.tex} extension for now:
-% \begin{macrocode}
-\newcommand\AtBeginOfFile [2]
- {\AddToHook{file/before/#1}{#2}}
-\newcommand\AtEndOfFile [2]
- {\AddToHook{file/after/#1}{#2}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\DeclareDocumentCommand \AtBeginOfPackageFile {smm}
- {\IfBooleanTF{#1}%
- {\@ifpackageloaded{#2}%
- {#3}%
- {\AddToHook{package/before/#2}{#3}}}%
- {\AddToHook{package/before/#2}{#3}}%
- }
-\DeclareDocumentCommand \AtEndOfPackageFile {smm}
- {\IfBooleanTF{#1}%
- {\@ifpackageloaded{#2}%
- {#3}%
- {\AddToHook{package/after/#2}{#3}}}%
- {\AddToHook{package/after/#2}{#3}}%
- }
-% \end{macrocode}
-%
-% Are the * forms here of any use? I know they are use 3--4 times
-% on CTAN but I wonder if those are real or mistaken usages.
-% \begin{macrocode}
-\DeclareDocumentCommand \AtBeginOfClassFile {smm}
- {\IfBooleanTF{#1}%
- {\@ifclassloaded{#2}%
- {#3}%
- {\AddToHook{class/before/#2}{#3}}}%
- {\AddToHook{class/before/#2}{#3}}%
- }
-\DeclareDocumentCommand \AtEndOfClassFile {smm}
- {\IfBooleanTF{#1}%
- {\@ifclassloaded{#2}%
- {#3}%
- {\AddToHook{class/after/#2}{#3}}}%
- {\AddToHook{class/after/#2}{#3}}%
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\AtBeginOfIncludeFile [2]
- {\AddToHook{include/before/#1}{#2}}
-\newcommand\AtEndOfIncludeFile [2]
- {\AddToHook{include/end/#1}{#2}}
-\newcommand\AfterIncludeFile [2]
- {\AddToHook{include/after/#1}{#2}}
-% \end{macrocode}
-%
-%
-% This is missing some interfaces so disabling the package isn't
-% really correct, but then this code above is not supposed to stay
-% like this anyway.
-% \begin{macrocode}
-\expandafter\let\csname ver@filehook.sty\endcsname\fmtversion
-\@namedef {ver@filehook.sty}{2020/10/01}
-% \end{macrocode}
-%
-%
-% \begin{macrocode}
-%</filehook-draft>
-% \end{macrocode}
-%
-%
-%
-%
-% \subsection{Package \pkg{scrlfile} emulation}
-%
-% This is a partial implementation of the \pkg{scrlfile}
-% interfaces. It is only meant for guidance in case that package
-% gets updated to use the hook management.
-%
-% \begin{macrocode}
-%<*scrlfile-draft>
-% \end{macrocode}
-%
-% I think this is roughly correct (using the \texttt{file/...}
-% hooks rather than the class or package hooks at least for the
-% \cs{After...} commands but it needs some further verification.
-%
-% The star and plus variants haven't been implemented so far, this
-% is only a rough draft.
-% \begin{macrocode}
-\newcommand\BeforeClass[2]
- {\AddToHook{file/before/#1.cls}{#2}}
-\newcommand\AfterClass [2]
- {\AddToHook{file/after/#1.cls}{#2}}
-\newcommand\AfterAtEndOfClass [2]
- {\AddToHook{class/after/#1}{#2}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\BeforePackage [2]
- {\AddToHook{package/before/#1.sty}{#2}}
-\newcommand\AfterPackage [2]
- {\AddToHook{file/after/#1.sty}{#2}}
-\newcommand\AfterEndOfPackage [2]
- {\AddToHook{package/after/#1}{#2}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\newcommand\BeforeFile [2]
- {%
- \typeout{BeforeFile: #1!!!}%
- \AddToHook{file/before/#1}{#2}}
-\newcommand\AfterFile [2]
- {%
- \typeout{AfterFile: #1!!!}%
- \AddToHook{file/after/#1}{#2}}
-% \end{macrocode}
-%
-% This is missing some interfaces so disabling the package isn't
-% really correct, but then this code above is not supposed to stay
-% like this anyway.
-% \begin{macrocode}
-\expandafter\let\csname ver@scrlfile.sty\endcsname\fmtversion
-\@namedef {ver@scrlfile.sty}{2020/10/01}
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</scrlfile-draft>
-% \end{macrocode}
-%
-%
%
% \Finale
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx b/Master/texmf-dist/source/latex-dev/base/ltfiles.dtx
index 835f600e323..99be77c8449 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}
- [2020/08/21 v1.2i LaTeX Kernel (File Handling)]
+ [2020/10/04 v1.2j LaTeX Kernel (File Handling)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfiles.dtx}
@@ -824,11 +824,13 @@
%<latexrelease> {\@include}{Spaces in file names and hooks}%
% \end{macrocode}
%
+% \changes{v1.2j}{2020/10/04}{Quotes around the aux file name removed,
+% they are not needed and upset BibTeX (gh/400)}
% \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
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx b/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
index 2555e21a349..aa4219723af 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltfinal.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2020-08-21 v2.2i LaTeX Kernel (Final Settings)]
+ [2020-09-26 v2.2j LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -1139,7 +1139,11 @@
%
% \subsection{Some last minute initializations \ldots}
%
+% Load the first aid set of definitions for external packages that await updates.
+% \changes{v2.2j}{2020/09/26}
+% {Load first aid file if existing}
% \begin{macrocode}
+\@input{latex2e-first-aid-for-external-files.ltx}
% \end{macrocode}
%
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx b/Master/texmf-dist/source/latex-dev/base/ltfssini.dtx
index 61d0a793a07..fbea725c1df 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/08/27 v3.2c LaTeX Kernel (NFSS Initialisation)]
+ [2020/10/08 v3.2e LaTeX Kernel (NFSS Initialisation)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -800,7 +800,7 @@
% \begin{macrocode}
\expand@font@defaults
% \end{macrocode}
-% If \cs{bfdefault} and \cs{befdefault@previous} are different then
+% If \cs{bfdefault} and \cs{bfdefault@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
@@ -812,10 +812,12 @@
% \end{macrocode}
% We add \cs{@empty} and then let \cs{bfdefault@previous} to
% \cs{bfdefault} so that we can detect any further change.
+% \changes{v3.2d}{2020/09/30}{\cs{bfdefault@previous} not \cs{bfseries@previous}
+% (gh/395)}
% \begin{macrocode}
\expandafter\def\expandafter\bfdefault
\expandafter{\bfdefault\@empty}%
- \let\bfseries@previous\bfdefault
+ \let\bfdefault@previous\bfdefault
% \end{macrocode}
% And we reset the meta family defaults (\cs{bfdef@ult} is an
% expanded version of \cs{bfdefault}.
@@ -861,13 +863,15 @@
% 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)}
+% \changes{v3.2d}{2020/09/30}{\cs{mddefault@previous} not \cs{mdseries@previous}
+% (gh/395)}
% \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\mddefault@previous\mddefault
\let\mdseries@rm\mddef@ult
\let\mdseries@sf\mddef@ult
\let\mdseries@tt\mddef@ult
@@ -1066,17 +1070,23 @@
% \begin{macro}{\@rmfamilyhook}
% \begin{macro}{\@sffamilyhook}
% \begin{macro}{\@ttfamilyhook}
+% \begin{macro}{\@defaultfamilyhook}
+% \changes{v3.1h}{2020/02/10}{Add \cs{@defaultfamilyhook} to \cs{normalfont} (gh/269)}
% These four hooks have legacy versions used in 2020/02/02 so we
% should support them until they aren't any longer used.
+%
+% By default the hooks do nothing.
% \begin{macrocode}
\let\@rmfamilyhook\@empty
\let\@sffamilyhook\@empty
\let\@ttfamilyhook\@empty
-\let\@defaulfamilyhook\@empty
+\let\@defaultfamilyhook\@empty %FMi sort out
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+%
%
% \begin{macrocode}
%</2ekernel|latexrelease>
@@ -1783,13 +1793,6 @@
% \end{macro}
%
%
-% \begin{macro}{\@defaultfamilyhook}
-% By default the hooks do nothing.
-% \changes{v3.1h}{2020/02/10}{Add \cs{@defaultfamilyhook} to \cs{normalfont} (gh/269)}
-% \begin{macrocode}
-\let\@defaultfamilyhook\@empty %FMi sort out
-% \end{macrocode}
-% \end{macro}
%
% \begin{macrocode}
%</2ekernel|latexrelease>
diff --git a/Master/texmf-dist/source/latex-dev/base/lthooks.dtx b/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
index 17c3262a4c1..e4ff7dd2ed4 100644
--- a/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/lthooks.dtx
@@ -31,8 +31,8 @@
%%% From File: lthooks.dtx
%
% \begin{macrocode}
-\def\lthooksversion{v1.0a}
-\def\lthooksdate{2020/09/10}
+\def\lthooksversion{v1.0e}
+\def\lthooksdate{2020/10/23}
% \end{macrocode}
%
%<*driver>
@@ -256,6 +256,11 @@
% is used in a package/class, then the current
% package/class name is used, otherwise \hook{top-level} is used.
%
+% If the code for that \meta{label} wasn't yet added to the
+% \meta{hook}, an order is set so that when some code attempts to add
+% that label, the removal order takes action and the code is not
+% added.
+%
% If the optional argument is \texttt{*}, then all code chunks are
% removed. This is rather dangerous as it drops code from other
% packages one may not know about!
@@ -648,10 +653,72 @@
%
% \cs{LogHook} prints the information to the |.log| file, and
% \cs{ShowHook} prints them to the terminal/command window and starts
-% \TeX's prompt (only if \cs{errorstopmode}) to wait for user action.
+% \TeX's prompt (only in \cs{errorstopmode}) to wait for user action.
%
% The \meta{hook} can be specified using the dot-syntax to denote
% the current package name. See section~\ref{sec:default-label}.
+%
+%^^A % Code for the listing below:
+%^^A \NewHook{example-hook}
+%^^A \AddToHook{example-hook}[foo]{[code from package 'foo']}
+%^^A \AddToHook{example-hook}[bar]{[from package 'bar']}
+%^^A \AddToHook{example-hook}[baz]{[package 'baz' is here]}
+%^^A \AddToHookNext{example-hook}{[one-time code]}
+%^^A \DeclareHookRule{example-hook}{baz}{before}{foo}
+%^^A \DeclareDefaultHookRule{bar}{after}{baz}
+%^^A \ShowHook{example-hook}
+%
+% \def\theFancyVerbLine{\textcolor[gray]{0.5}{%^^A
+% \sffamily\tiny\arabic{FancyVerbLine}}}
+%
+% \bigskip
+% Suppose a hook \texttt{example-hook} whose output of
+% \cs{ShowHook}|{example-hook}| is:
+% \begin{verbatim}[numbers=left]
+% -> The hook 'example-hook':
+% > Code chunks:
+% > foo -> [code from package 'foo']
+% > bar -> [from package 'bar']
+% > baz -> [package 'baz' is here]
+% > Extra code for next invocation:
+% > -> [one-time code]
+% > Rules:
+% > foo|baz with relation >
+% > baz|bar with default relation <
+% > Execution order (after applying rules):
+% > bar, baz, foo.
+% \end{verbatim}
+%
+% In the listing above, lines~3 to~5 show the three code chunks added
+% to the hook and their respective labels in the format
+% \begin{quote}
+% \quad \meta{label}\verb| -> |\meta{code}
+% \end{quote}
+%
+% Line~7 shows the code chunk for the next execution of the hook in
+% the format
+% \begin{quote}
+% \quad \verb|-> |\meta{next-code}
+% \end{quote}
+% This code will be used and disappear at the next
+% \verb|\UseHook{example-hook}|, in contrast to the chunks mentioned
+% earlier, which can only be removed from that hook by doing
+% \verb|\RemoveFromHook{|\meta{label}|}[example-hook]|.
+%
+% Lines~9 and~10 show the rules declared that affect this hook in the
+% format
+% \begin{quote}
+% \quad \meta{label-1}\verb+|+\meta{label-2}| with |%^^A
+% \meta{\texttt{default}?}| relation |\meta{relation}
+% \end{quote}
+% which means that the \meta{relation} applies to \meta{label-1} and
+% \meta{label-2}, in that order, as detailed in \cs{DeclareHookRule}.
+% If the relation is \texttt{default} it means that that rule applies
+% to \meta{label-1} and \meta{label-2} in \emph{all} hooks, (unless
+% overrided by a non-default relation).
+%
+% Finally, line~12 lists the labels in the hook after sorting;
+% that is, in the order they will be executed when the hook is used.
% \end{function}
%
%
@@ -1017,6 +1084,7 @@
%
% \subsection{Difference between \enquote{normal} and
% \enquote{one-time} hooks}
+% \label{sec:onetime-hooks}
%
% When executing a hook a developer has the choice of using
% either \cs{UseHook} or \cs{UseOneTimeHook} (or their \pkg{expl3}
@@ -1115,6 +1183,11 @@
%
% \subsection{Legacy \LaTeXe{} interfaces}
%
+% \newcommand\onetimetext{%
+% This is a one-time hook, so after it is executed, all further
+% attempts to add code to it will execute such code immediately
+% (see section~\ref{sec:onetime-hooks}).}
+%
% \LaTeXe{} offered a small number of hooks together with commands to
% add to them. They are listed here and are retained for backwards
% compatibility.
@@ -1144,6 +1217,14 @@
% \cs{AddToHook} \texttt{\{begindocument\}} \oarg{label}
% \Arg{code}.
%
+% \cs{AtBeginDocument} is a wrapper around the \hook{begindocument}
+% hook (see section~\ref{sec:begindocument-hooks}), which is a
+% one-time hook. As such, after the \hook{begindocument} hook is
+% executed at \verb=\begin{document}= any attempt to add \meta{code}
+% to this hook with \cs{AtBeginDocument} or with \cs{AddToHook} will
+% cause that \meta{code} to execute immediately instead.
+% See section~\ref{sec:onetime-hooks} for more on one-time hooks.
+%
% For important packages with known order requirement we may over
% time add rules to the kernel (or to those packages) so that they
% work regardless of the loading-order in the document.
@@ -1278,9 +1359,9 @@
% \end{function}
%
%
-%
%
% \subsubsection{Hooks provided by \cs{begin}\texttt{\{document\}}}
+% \label{sec:begindocument-hooks}
%
% Until 2020 \cs{begin}\texttt{\{document\}} offered exactly one
% hook that one could add to using
@@ -1303,12 +1384,12 @@
% section and this is how it is used by \pkg{etoolbox}'s
% \cs{AtEndPreamble}.
%
-%
+% \onetimetext
%
% \item[\hook{begindocument}]
%
-% This hook is added to when using \cs{AtBeginDocument} and it is executed
-% after the \texttt{.aux} file as be read in and most
+% This hook is added to when using \cs{AtBeginDocument} and it is
+% executed after the \texttt{.aux} file as be read in and most
% initialization are done, so they can be altered and inspected by
% the hook code. It is followed by a small number of further
% initializations that shouldn't be altered and are therefore
@@ -1319,12 +1400,16 @@
% document body. If such material needs to be added to the document
% body use the next hook instead.
%
+% \onetimetext
+%
% \item[\hook{begindocument/end}]
%
% This hook is executed at the end of the \cs{document} code in
% other words at the beginning of the document body. The only
% command that follows it is \cs{ignorespaces}.
%
+% \onetimetext
+%
% \end{description}
% The generic hooks executed by \cs{begin} also exist, i.e.,
% \hook{env/document/before} and \hook{env/document/begin}, but
@@ -1365,6 +1450,7 @@
% called to ensure that all such material gets typeset. If there
% is nothing waiting the \cs{clearpage} has no effect.
%
+% \onetimetext
%
% \item[\hook{enddocument/afterlastpage}]
%
@@ -1381,6 +1467,8 @@
% closed for writing and then read back in to do some tests
% (e.g., looking for missing references or duplicated labels, etc.).
%
+% \onetimetext
+%
% \item[\hook{enddocument/afteraux}]
%
% At this point, the \texttt{.aux} file has been reprocessed and so
@@ -1389,6 +1477,8 @@
% prefer the next hook, so that your information is displayed after the
% (possibly longish) list of files if that got requested via \cs{listfiles}.
%
+% \onetimetext
+%
% \item[\hook{enddocument/info}]
%
% This hook is meant to receive code that write final information
@@ -1403,11 +1493,15 @@
% \cs{listfiles} has been used and the warnings for duplicate
% labels, missing references, font substitutions etc.
%
+% \onetimetext
+%
% \item[\hook{enddocument/end}]
%
% Finally, this hook is executed just in front of the final call
% to \cs{@{}@end}.
%
+% \onetimetext % is it even possible to add code after this one?
+%
% \end{description}
%
%
@@ -3247,7 +3341,7 @@
\cs_new_protected:Npn \@@_log:nN #1 #2
{
\@@_preamble_hook:n {#1}
- \iow_term:x { ^^J ->~The~hook~'#1': }
+ \@@_log_cmd:x { ^^J ->~The~hook~'#1': }
% \end{macrocode}
%
% \begin{macrocode}
@@ -3909,12 +4003,14 @@
% \end{macro}
%
%
-% \begin{macro}{\IfHookExistsTF,\IfHookEmptyTF}
+% \begin{macro}[EXP]{\IfHookExistsTF,\IfHookEmptyTF}
+% Here we avoid the overhead of \pkg{xparse}, since \cs{IfHookEmptyTF}
+% is used in \cs{end} (that is, every \LaTeX{} environment). As a
+% further optimisation, use \cs{let} rather than \cs{def} to avoid one
+% expansion step.
% \begin{macrocode}
-\NewExpandableDocumentCommand \IfHookExistsTF { m }
- { \hook_if_exist:nTF {#1} }
-\NewExpandableDocumentCommand \IfHookEmptyTF { m }
- { \hook_if_empty:nTF {#1} }
+\cs_new_eq:NN \IfHookExistsTF \hook_if_exist:nTF
+\cs_new_eq:NN \IfHookEmptyTF \hook_if_empty:nTF
% \end{macrocode}
% \end{macro}
%
@@ -3962,19 +4058,21 @@
% may be used in packages without rollback functionality. So we
% just make them do nothing which may or may not work depending on
% the code usage.
+% \changes{v1.0d}{2020/10/04}{Definition \cs{AddToHookNext} was supposed
+% to be for \cs{AddToHook} vize versa (gh/401)}
% \begin{macrocode}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
%<latexrelease> {\NewHook}{The hook management}%
%<latexrelease>
-%<latexrelease>\def \NewHook#1{}
-%<latexrelease>\def \NewReversedHook#1{}
-%<latexrelease>\def \NewMirroredHookPair#1#2{}
+%<latexrelease>\def\NewHook#1{}
+%<latexrelease>\def\NewReversedHook#1{}
+%<latexrelease>\def\NewMirroredHookPair#1#2{}
%<latexrelease>
-%<latexrelease>\long\def \AddToHook#1#2{}
+%<latexrelease>\long\def\AddToHookNext#1#2{}
%<latexrelease>
-%<latexrelease>\def \AddToHookNext#1{\@gobble@AddToHook@args}
+%<latexrelease>\def\AddToHook#1{\@gobble@AddToHook@args}
%<latexrelease>\providecommand\@gobble@AddToHook@args[2][]{}
%<latexrelease>
%<latexrelease>\def\RemoveFromHook#1{\@gobble@RemoveFromHook@arg}
@@ -3986,17 +4084,17 @@
%<latexrelease>\let \DebugHooksOn \@empty
%<latexrelease>\let \DebugHooksOff\@empty
%<latexrelease>
-%<latexrelease>\def \DeclareHookRul#1#2#3#4{}
+%<latexrelease>\def \DeclareHookRule #1#2#3#4{}
%<latexrelease>\def \DeclareDefaultHookRule #1#2#3{}
-%<latexrelease>\def \ClearHookRule#1#2#3{}
+%<latexrelease>\def \ClearHookRule #1#2#3{}
% \end{macrocode}
% If the hook management is not provided we make the test for existence
% false and the test for empty true in the hope that this is most
% of the time reasonable. If not a package would need to guard
% against running in an old kernel.
% \begin{macrocode}
-%<latexrelease>\def \IfHookExistTF #1#2#3{#3}
-%<latexrelease>\def \IfHookEmptyTF #1#2#3{#2}
+%<latexrelease>\long\def \IfHookExistsTF #1#2#3{#3}
+%<latexrelease>\long\def \IfHookEmptyTF #1#2#3{#2}
%<latexrelease>
%<latexrelease>\EndIncludeInRelease
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx b/Master/texmf-dist/source/latex-dev/base/ltluatex.dtx
index ec1031cc290..8573b3e6ca6 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/08/10 v1.1r
+[2020/09/25 v1.1s
%</tex>
%<plain> LuaTeX support for plain TeX (core)
%<*tex>
@@ -1501,6 +1501,7 @@ end
% \end{macrocode}
% Handler for |list| callbacks.
% \changes{v1.0k}{2015/12/02}{resolve name and i.description (PHG)}
+% \changes{v1.1s}{2020/12/02}{Fix return value of list callbacks}
% \begin{macrocode}
local function list_handler(name)
return function(head, ...)
@@ -1513,7 +1514,7 @@ local function list_handler(name)
"Function `" .. i.description .. "' returned false\n"
.. "in callback `" .. name .."'"
)
- break
+ return false
end
if ret ~= true then
alltrue = false
@@ -1546,7 +1547,7 @@ local function reverselist_handler(name)
"Function `" .. cb.description .. "' returned false\n"
.. "in callback `" .. name .."'"
)
- break
+ return false
end
if ret ~= true then
alltrue = false
diff --git a/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx b/Master/texmf-dist/source/latex-dev/base/ltmiscen.dtx
index 0c115d3be1b..9acbcccd683 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}
- [2020/08/21 v1.1v LaTeX Kernel (Misc. Environments)]
+ [2020/10/23 v1.1w LaTeX Kernel (Misc. Environments)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltmiscen.dtx}
@@ -239,13 +239,14 @@
% \changes{v1.1k}{2010/08/17}{Use braces around \cs{input} arg (pr/4124)}
% \changes{v1.1l}{2010/08/17}{Change of plan: use \cs{@@input} instead
% (pr/4124)}
+% \changes{v1.1w}{2020/10/23}{Make \texttt{enddocument/afteraux} one-time}
% We use |\@@input| to load the \texttt{.aux} file, so that it doesn't
% show up in the list of files produced by |\listfiles|.
% \begin{macrocode}
\@tempswafalse
\makeatletter \@@input\jobname.aux
\fi
- \UseHook{enddocument/afteraux}%
+ \UseOneTimeHook{enddocument/afteraux}%
% \end{macrocode}
% Next hook is expect to contain only code for writing info
% messages on the terminal.
diff --git a/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx b/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
index 95d740279d2..8f0422c887b 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltshipout.dtx
@@ -31,8 +31,8 @@
%%% From File: ltshipout.dtx
%
% \begin{macrocode}
-\providecommand\ltshipoutversion{v1.0b}
-\providecommand\ltshipoutdate{2020/09/09}
+\providecommand\ltshipoutversion{v1.0c}
+\providecommand\ltshipoutdate{2020/09/27}
% \end{macrocode}
%
%<*driver>
@@ -547,7 +547,7 @@
% follows closely the ideas from \pkg{atbegshi}, so not
% documenting that here for now.
% \begin{macrocode}
-\cs_set:Npn\@@_execute: {
+\cs_set_protected:Npn \@@_execute: {
\tl_set:Nx \l_@@_group_level_tl
{ \int_value:w \tex_currentgrouplevel:D }
\tex_afterassignment:D \@@_execute_test_level:
@@ -572,7 +572,6 @@
% \end{macrocode}
% \end{macro}
%
-
%
% \begin{macro}{\@@_execute_test_level:}
% If the group level has changed then we are still constructing
@@ -1089,7 +1088,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_picture_overlay:n #1 {
% \end{macrocode}
-% The very first time this is executed we have ot initializes (and
+% The very first time this is executed we have to initializes (and
% freeze) the origins.
% \begin{macrocode}
\@@_init_page_origins:
@@ -1151,7 +1150,7 @@
% (in case \LaTeX{} looks ahead and is not using the position for
% on the next page).
% \begin{macrocode}
-\cs_new:Npn \shipout_discard: {
+\cs_new_protected:Npn \shipout_discard: {
\bool_gset_true:N \g_@@_discard_bool
}
% \end{macrocode}
@@ -1379,7 +1378,7 @@
% \begin{macro}{\AtBeginDvi}
%
% \begin{macrocode}
-\DeclareRobustCommand \AtBeginDvi {\@@_add_firstpage_material:Nn \AtBeginDvi}
+\cs_new_protected:Npn \AtBeginDvi {\@@_add_firstpage_material:Nn \AtBeginDvi}
% \end{macrocode}
% \end{macro}
%
@@ -1481,7 +1480,6 @@
%<latexrelease>\let \AtBeginShipoutUpperLeft \@undefined
%<latexrelease>\let \AtBeginShipoutUpperLeftForeground \@undefined
%<latexrelease>
-%<latexrelease>
% \end{macrocode}
% We do not undo a substitution when rolling back. As the file
% support gets undone the underlying data is no longer used (and
@@ -1490,7 +1488,7 @@
% \cs{unclare@...} and its support macros available in all earlier
% kernel releases which is pointless (and actually worse).
% \begin{macrocode}
-%\undeclare@file@substitution{everyshi.sty}{everyshi-ltx.sty}
+%\undeclare@file@substitution{everyshi.sty}
% \end{macrocode}
%
% \begin{macrocode}
@@ -1531,7 +1529,7 @@
%<latexrelease>\IncludeInRelease{2020/10/01}%
%<latexrelease> {\AtEndDvi}{atenddvi emulation}%
\ExplSyntaxOn
-\cs_new:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
+\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
\ExplSyntaxOff
% \end{macrocode}
% As the package is integrate we prevent loading (no need to roll that back):
@@ -1598,8 +1596,8 @@
% \begin{macro}{\AtBeginShipout,\AtBeginShipoutNext}
% Filling hooks
% \begin{macrocode}
-\def \AtBeginShipout {\AddToHook{shipout/before}}
-\def \AtBeginShipoutNext {\AddToHookNext{shipout/before}}
+\protected \def \AtBeginShipout {\AddToHook{shipout/before}}
+\protected \def \AtBeginShipoutNext {\AddToHookNext{shipout/before}}
% \end{macrocode}
% \end{macro}
%
@@ -1608,7 +1606,7 @@
% Slightly more complex as we need to know the name of the command under which the
% \hook{shipout/firstpage} hook is filled.
% \begin{macrocode}
-\def \AtBeginShipoutFirst
+\protected \def \AtBeginShipoutFirst
{\@expl@@@shipout@add@firstpage@material@@Nn \AtBeginShipoutFirst}
% \end{macrocode}
% \end{macro}
@@ -1688,8 +1686,8 @@
% \begin{macro}{\EveryShipout,\AtNextShipout}
% This package has only two public commands so simulating it is easy:
% \begin{macrocode}
-\def \EveryShipout {\AddToHook{shipout/before}}
-\def \AtNextShipout {\AddToHookNext{shipout/before}}
+\protected \def \EveryShipout {\AddToHook{shipout/before}}
+\protected \def \AtNextShipout {\AddToHookNext{shipout/before}}
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
index 83cdf1850d6..0e374f5dec0 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltvers.dtx
@@ -112,10 +112,10 @@
%</2ekernel>
%<latexrelease>\edef\latexreleaseversion
%<*2ekernel|latexrelease>
- {2020-10-01}
+ {2021-05-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{-9}
+\def\patch@level{0}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx b/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
index 696af32ab15..0c7130c3717 100644
--- a/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
+++ b/Master/texmf-dist/source/latex-dev/base/ltxdoc.dtx
@@ -30,7 +30,7 @@
%
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{ltxdoc}
-%<class> [2020/08/21 v2.1a Standard LaTeX documentation class]
+%<class> [2020/10/04 v2.1b Standard LaTeX documentation class]
%
%<*driver>
\documentclass{ltxdoc}
@@ -443,7 +443,12 @@
\expandafter\@docinclude\expandafter{\@curr@file}
\fi}
\def\@docinclude#1 {\clearpage
-\if@filesw \immediate\write\@mainaux{\string\@input{"#1.aux"}}\fi
+% \end{macrocode}
+%
+% \changes{v2.1bj}{2020/10/04}{Quotes around the aux file name removed,
+% they are no longer needed and upset BibTeX (gh/400)}
+% \begin{macrocode}
+\if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}\fi
\@tempswatrue\if@partsw \@tempswafalse\edef\@tempb{#1}\@for
\@tempa:=\@partlist\do{\ifx\@tempa\@tempb\@tempswatrue\fi}\fi
\if@tempswa \let\@auxout\@partaux \if@filesw