summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex-dev
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-05-19 20:13:40 +0000
committerKarl Berry <karl@freefriends.org>2022-05-19 20:13:40 +0000
commit0068dc20e7132f24c1bb68957ef6ad5ea5b46157 (patch)
tree247f86a1a065910b2aabe033e4e10f5e62cbc5cf /Master/texmf-dist/tex/latex-dev
parentb48cdc7688e6483099499c0e3ec927b258e0f569 (diff)
latex-dev (19may22)
git-svn-id: svn://tug.org/texlive/trunk@63339 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev')
-rw-r--r--Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty88
-rw-r--r--Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty80
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/fltrace.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ifthen.sty10
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latex.ltx543
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latexrelease.sty584
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/omsenc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/slides.cls2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/slides.def2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/source2edoc.cls13
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/structuredlog.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t1enc.dfu2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t2benc.dfu4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/utf8.def2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu4
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/x2enc.dfu4
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/showkeys-2014-10-28.sty272
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/showkeys.sty38
27 files changed, 1451 insertions, 229 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty b/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
index 49353c0aada..6d657743501 100644
--- a/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
+++ b/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty
@@ -27,7 +27,7 @@
\providecommand\DeclareCurrentRelease[2]{}
\DeclareRelease{}{2018-12-01}{amsmath-2018-12-01.sty}
\DeclareCurrentRelease{}{2019-04-01}
-\ProvidesPackage{amsmath}[2022/02/03 v2.17m AMS math features]
+\ProvidesPackage{amsmath}[2022/04/08 v2.17n AMS math features]
\edef\@temp{\catcode 96=\number\catcode 96 }
\catcode\string `\`=12
\def\do#1{\catcode\number`#1=\number\catcode`#1}
@@ -235,11 +235,11 @@ Foreign command \@backslashchar#1;\MessageBreak
\else
\DeclareRobustCommand{\frac}[2]{{\Ustack{\begingroup#1\endgroup\@@over#2}}}
\fi
-\newcommand{\dfrac}{\genfrac{}{}{}0}
-\newcommand{\tfrac}{\genfrac{}{}{}1}
+\DeclareRobustCommand{\dfrac}{\genfrac{}{}{}0}
+\DeclareRobustCommand{\tfrac}{\genfrac{}{}{}1}
\DeclareRobustCommand{\binom}{\genfrac()\z@{}}
-\newcommand{\dbinom}{\genfrac(){0pt}0}
-\newcommand{\tbinom}{\genfrac(){0pt}1}
+\DeclareRobustCommand{\dbinom}{\genfrac(){0pt}0}
+\DeclareRobustCommand{\tbinom}{\genfrac(){0pt}1}
\ifx\directlua\@undefined
\ifx\XeTeXcharclass\@undefined
\DeclareRobustCommand{\genfrac}[4]{%
@@ -397,7 +397,7 @@ Foreign command \@backslashchar#1;\MessageBreak
}{}
\@saveprimitive\overline\@@overline
\DeclareRobustCommand{\overline}[1]{\@@overline{#1}}
-\newcommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
+\DeclareRobustCommand{\boxed}[1]{\fbox{\m@th$\displaystyle#1$}}
\newcommand{\implies}{\DOTSB\;\Longrightarrow\;}
\newcommand{\impliedby}{\DOTSB\;\Longleftarrow\;}
\def\And{\DOTSB\;\mathchar"3026 \;}
@@ -407,7 +407,7 @@ Foreign command \@backslashchar#1;\MessageBreak
\else\setboxz@h{\the\toks@\nobreak}\unhbox\z@\fi}%
\FN@\next@
}
-\renewcommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript
+\DeclareRobustCommand{\colon}{\nobreak\mskip2mu\mathpunct{}\nonscript
\mkern-\thinmuskip{:}\mskip6muplus1mu\relax}
\let\ifgtest@\iffalse % initial value
\def\gtest@true{\global\let\ifgtest@\iftrue}
@@ -656,11 +656,11 @@ Foreign command \@backslashchar#1;\MessageBreak
{{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%
{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%
{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
-\ams@newcommand{\iint}{\DOTSI\protect\MultiIntegral{2}}
-\ams@newcommand{\iiint}{\DOTSI\protect\MultiIntegral{3}}
-\ams@newcommand{\iiiint}{\DOTSI\protect\MultiIntegral{4}}
-\newcommand{\idotsint}{\DOTSI\protect\MultiIntegral{0}}
-\newcommand{\MultiIntegral}[1]{%
+\ams@newcommand{\iint}{\DOTSI\MultiIntegral{2}}
+\ams@newcommand{\iiint}{\DOTSI\MultiIntegral{3}}
+\ams@newcommand{\iiiint}{\DOTSI\MultiIntegral{4}}
+\newcommand{\idotsint}{\DOTSI\MultiIntegral{0}}
+\DeclareRobustCommand{\MultiIntegral}[1]{%
\edef\ints@c{\noexpand\intop
\ifnum#1=\z@\noexpand\intdots@\else\noexpand\intkern@\fi
\ifnum#1>\tw@\noexpand\intop\noexpand\intkern@\fi
@@ -719,10 +719,10 @@ Foreign command \@backslashchar#1;\MessageBreak
\vbox{\kern-\normallineskiplimit\copy\strutbox}}}
\addto@hook\every@math@size{\reset@strutbox@}
\AtBeginDocument{\reset@strutbox@}
-\renewcommand{\big}{\bBigg@\@ne}
-\renewcommand{\Big}{\bBigg@{1.5}}
-\renewcommand{\bigg}{\bBigg@\tw@}
-\renewcommand{\Bigg}{\bBigg@{2.5}}
+\DeclareRobustCommand{\big}{\bBigg@\@ne}
+\DeclareRobustCommand{\Big}{\bBigg@{1.5}}
+\DeclareRobustCommand{\bigg}{\bBigg@\tw@}
+\DeclareRobustCommand{\Bigg}{\bBigg@{2.5}}
\ifx\leavevmode@ifvmode\@undefined
\def\bBigg@#1#2{%
{\@mathmeasure\z@{\nulldelimiterspace\z@}%
@@ -748,6 +748,10 @@ Foreign command \@backslashchar#1;\MessageBreak
\ams@newcommand{\ddddot}[1]{%
{\mathop{\kern\z@#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
\hbox{\,\normalfont....}\vss}}}}
+\AtBeginDocument{%
+ \MakeRobust\dddot
+ \MakeRobust\ddddot
+ }
\def\set@mathaccent#1#2#3#4{%
\xdef#2{%
\@nx\mathaccentV
@@ -898,24 +902,24 @@ Foreign command \@backslashchar#1;\MessageBreak
\def\Vec{\vec}
\def\nonmatherr@#1{\@amsmath@err{\protect
#1 allowed only in math mode}\@ehd}
-\renewcommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin
+\DeclareRobustCommand{\bmod}{\nonscript\mskip-\medmuskip\mkern5mu\mathbin
{\operator@font mod}\penalty900
\mkern5mu\nonscript\mskip-\medmuskip}
-\newcommand{\pod}[1]{\allowbreak
+\DeclareRobustCommand{\pod}[1]{\allowbreak
\if@display\mkern18mu\else\mkern8mu\fi(#1)}
-\renewcommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
-\newcommand{\mod}[1]{\allowbreak\if@display\mkern18mu
+\DeclareRobustCommand{\pmod}[1]{\pod{{\operator@font mod}\mkern6mu#1}}
+\DeclareRobustCommand{\mod}[1]{\allowbreak\if@display\mkern18mu
\else\mkern12mu\fi{\operator@font mod}\,\,#1}
-\newcommand{\cfrac}[3][c]{{\displaystyle\frac{%
+\DeclareRobustCommand{\cfrac}[3][c]{{\displaystyle\frac{%
\strut\ifx r#1\hfill\fi#2\ifx l#1\hfill\fi}{#3}}%
\kern-\nulldelimiterspace}
-\newcommand{\overset}[2]{\binrel@{#2}%
+\DeclareRobustCommand{\overset}[2]{\binrel@{#2}%
\binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}
-\newcommand{\underset}[2]{\binrel@{#2}%
+\DeclareRobustCommand{\underset}[2]{\binrel@{#2}%
\binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}
-\newcommand{\overunderset}[3]{\binrel@{#3}%
+\DeclareRobustCommand{\overunderset}[3]{\binrel@{#3}%
\binrel@@{\mathop{\kern\z@#3}\limits^{#1}_{#2}}}
-\newcommand{\sideset}[3]{%
+\DeclareRobustCommand{\sideset}[3]{%
\@mathmeasure\z@\displaystyle{#3}%
\global\setbox\@ne\vbox to\ht\z@{}\dp\@ne\dp\z@
\setbox\tw@\box\@ne
@@ -925,7 +929,7 @@ Foreign command \@backslashchar#1;\MessageBreak
\hbox to\dimen@{}\mathop{\kern-\dimen@\box4\box6}%
}
\ifx\leavevmode@ifvmode\@undefined
-\renewcommand{\smash}[1][tb]{%
+\DeclareRobustCommand{\smash}[1][tb]{%
\def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}%
\edef\finsm@sh{\csname mb@#1\endcsname\z@\z@\box\z@}%
\ifmmode \@xp\mathpalette\@xp\mathsm@sh
@@ -933,7 +937,7 @@ Foreign command \@backslashchar#1;\MessageBreak
\fi
}
\else
-\renewcommand{\smash}[1][tb]{%
+\DeclareRobustCommand{\smash}[1][tb]{%
\def\mb@t{\ht}\def\mb@b{\dp}\def\mb@tb{\ht\z@\z@\dp}%
\edef\finsm@sh{\csname mb@#1\endcsname\z@\z@ \leavevmode@ifvmode\box\z@}%
\ifmmode \@xp\mathpalette\@xp\mathsm@sh
@@ -963,8 +967,8 @@ Foreign command \@backslashchar#1;\MessageBreak
\Umathcharnumdef\std@equal\Umathcodenum`\=\relax
}%
}
-\ams@def\relbar{\mathrel{\mathpalette\mathsm@sh\std@minus}}
-\ams@def\Relbar{\mathrel\std@equal}
+\ams@DeclareRobustCommand\relbar{\mathrel{\mathpalette\mathsm@sh\std@minus}}
+\ams@DeclareRobustCommand\Relbar{\mathrel\std@equal}
\def\arrowfill@#1#2#3#4{%
$\m@th\thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
\relax#4#1\mkern-7mu%
@@ -985,6 +989,13 @@ Foreign command \@backslashchar#1;\MessageBreak
\mathpalette{\overarrow@\leftarrowfill@}}
\ams@newcommand{\overleftrightarrow}{%
\mathpalette{\overarrow@\leftrightarrowfill@}}
+\AtBeginDocument{%
+ \expandafter\let\csname overleftarrow \endcsname\@undefined
+ \expandafter\let\csname overrightarrow \endcsname\@undefined
+ \MakeRobust\overrightarrow
+ \MakeRobust\overleftarrow
+ \MakeRobust\overleftrightarrow
+ }
\def\underarrow@#1#2#3{%
\vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcr
\noalign{\nointerlineskip\kern1.3\ex@}#1#2\crcr}}}
@@ -994,6 +1005,11 @@ Foreign command \@backslashchar#1;\MessageBreak
\mathpalette{\underarrow@\leftarrowfill@}}
\ams@newcommand{\underleftrightarrow}{%
\mathpalette{\underarrow@\leftrightarrowfill@}}
+\AtBeginDocument{%
+ \MakeRobust\underrightarrow
+ \MakeRobust\underleftarrow
+ \MakeRobust\underleftrightarrow
+ }
\def\ext@arrow#1#2#3#4#5#6#7{%
\mathrel{\mathop{%
\setbox\z@\hbox{#5\displaystyle}%
@@ -1009,8 +1025,8 @@ Foreign command \@backslashchar#1;\MessageBreak
\@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi
#6\if0#2\else\mkern#2mu\fi}}}%
}
-\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
-\newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
+\DeclareRobustCommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
+\DeclareRobustCommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
\ifx\directlua\@undefined
\newenvironment{subarray}[1]{%
\vcenter\bgroup
@@ -1041,7 +1057,7 @@ Foreign command \@backslashchar#1;\MessageBreak
\crcr\egroup\egroup
}
\fi
-\newcommand{\substack}[1]{\subarray{c}#1\endsubarray}
+\DeclareRobustCommand{\substack}[1]{\subarray{c}#1\endsubarray}
\newenvironment{smallmatrix}{\null\,\vcenter\bgroup
\Let@\restore@math@cr\default@tag
\baselineskip6\ex@ \lineskip1.5\ex@ \lineskiplimit\lineskip
@@ -1124,24 +1140,24 @@ ill-advised in LaTeX.%
\setcounter{equation}{\value{parentequation}}%
\ignorespacesafterend
}
-\newcommand{\numberwithin}[3][\arabic]{%
+\DeclareRobustCommand{\numberwithin}[3][\arabic]{%
\@ifundefined{c@#2}{\@nocounterr{#2}}{%
\@ifundefined{c@#3}{\@nocnterr{#3}}{%
\@addtoreset{#2}{#3}%
\@xp\xdef\csname the#2\endcsname{%
\@xp\@nx\csname the#3\endcsname .\@nx#1{#2}}}}%
}
-\newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
+\DeclareRobustCommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}}
\newcount\dspbrk@lvl
\dspbrk@lvl=-1
\interdisplaylinepenalty\@M
-\newcommand{\allowdisplaybreaks}[1][4]{%
+\DeclareRobustCommand{\allowdisplaybreaks}[1][4]{%
\interdisplaylinepenalty\getdsp@pen{#1}\relax
}
\def\getdsp@pen#1{%
\ifcase #1\@M \or 9999 \or 6999 \or 2999 \or \z@\fi
}
-\newcommand{\displaybreak}{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}
+\DeclareRobustCommand{\displaybreak}{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}
\chardef\dspbrk@context=\sixt@@n
\def\dspbrk@[#1]{%
\ifmeasuring@
diff --git a/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty b/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
index 756929315a5..38628c2b9f5 100644
--- a/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
+++ b/Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty
@@ -23,7 +23,7 @@
%%
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must December 1994 or later
-\ProvidesPackage{amsopn}[2022/01/20 v2.03 operator names]
+\ProvidesPackage{amsopn}[2022/04/08 v2.04 operator names]
\def\nolimits@{\@ifnextchar\limits{\nolimits\@gobble}{\nolimits}}
\begingroup \catcode`\"=12
\ifx\Umathcode\@undefined
@@ -53,58 +53,58 @@
\DeclareRobustCommand{#2}{\qopname\newmcodes@#1{#3}}}}
\@onlypreamble\DeclareMathOperator
\@onlypreamble\@declmathop
-\def\arccos{\qopname\relax o{arccos}}
-\def\arcsin{\qopname\relax o{arcsin}}
-\def\arctan{\qopname\relax o{arctan}}
-\def\arg{\qopname\relax o{arg}}
-\def\cos{\qopname\relax o{cos}}
-\def\cosh{\qopname\relax o{cosh}}
-\def\cot{\qopname\relax o{cot}}
-\def\coth{\qopname\relax o{coth}}
-\def\csc{\qopname\relax o{csc}}
-\def\deg{\qopname\relax o{deg}}
-\def\det{\qopname\relax m{det}}
-\def\dim{\qopname\relax o{dim}}
-\def\exp{\qopname\relax o{exp}}
-\def\gcd{\qopname\relax m{gcd}}
-\def\hom{\qopname\relax o{hom}}
-\def\inf{\qopname\relax m{inf}}
-\def\injlim{\qopname\relax m{inj\,lim}}
-\def\ker{\qopname\relax o{ker}}
-\def\lg{\qopname\relax o{lg}}
-\def\lim{\qopname\relax m{lim}}
-\def\liminf{\qopname\relax m{lim\,inf}}
-\def\limsup{\qopname\relax m{lim\,sup}}
-\def\ln{\qopname\relax o{ln}}
-\def\log{\qopname\relax o{log}}
-\def\max{\qopname\relax m{max}}
-\def\min{\qopname\relax m{min}}
-\def\Pr{\qopname\relax m{Pr}}
-\def\projlim{\qopname\relax m{proj\,lim}}
-\def\sec{\qopname\relax o{sec}}
-\def\sin{\qopname\relax o{sin}}
-\def\sinh{\qopname\relax o{sinh}}
-\def\sup{\qopname\relax m{sup}}
-\def\tan{\qopname\relax o{tan}}
-\def\tanh{\qopname\relax o{tanh}}
+\protected\def\arccos{\qopname\relax o{arccos}}
+\protected\def\arcsin{\qopname\relax o{arcsin}}
+\protected\def\arctan{\qopname\relax o{arctan}}
+\protected\def\arg{\qopname\relax o{arg}}
+\protected\def\cos{\qopname\relax o{cos}}
+\protected\def\cosh{\qopname\relax o{cosh}}
+\protected\def\cot{\qopname\relax o{cot}}
+\protected\def\coth{\qopname\relax o{coth}}
+\protected\def\csc{\qopname\relax o{csc}}
+\protected\def\deg{\qopname\relax o{deg}}
+\protected\def\det{\qopname\relax m{det}}
+\protected\def\dim{\qopname\relax o{dim}}
+\protected\def\exp{\qopname\relax o{exp}}
+\protected\def\gcd{\qopname\relax m{gcd}}
+\protected\def\hom{\qopname\relax o{hom}}
+\protected\def\inf{\qopname\relax m{inf}}
+\protected\def\injlim{\qopname\relax m{inj\,lim}}
+\protected\def\ker{\qopname\relax o{ker}}
+\protected\def\lg{\qopname\relax o{lg}}
+\protected\def\lim{\qopname\relax m{lim}}
+\protected\def\liminf{\qopname\relax m{lim\,inf}}
+\protected\def\limsup{\qopname\relax m{lim\,sup}}
+\protected\def\ln{\qopname\relax o{ln}}
+\protected\def\log{\qopname\relax o{log}}
+\protected\def\max{\qopname\relax m{max}}
+\protected\def\min{\qopname\relax m{min}}
+\protected\def\Pr{\qopname\relax m{Pr}}
+\protected\def\projlim{\qopname\relax m{proj\,lim}}
+\protected\def\sec{\qopname\relax o{sec}}
+\protected\def\sin{\qopname\relax o{sin}}
+\protected\def\sinh{\qopname\relax o{sinh}}
+\protected\def\sup{\qopname\relax m{sup}}
+\protected\def\tan{\qopname\relax o{tan}}
+\protected\def\tanh{\qopname\relax o{tanh}}
\def\operatorfont{\operator@font}
\def\operatornamewithlimits{\operatorname*}
-\def\varlim@#1#2{%
+\protected\def\varlim@#1#2{%
\vtop{\m@th\ialign{##\cr
\hfil$#1\operator@font lim$\hfil\cr
\noalign{\nointerlineskip\kern1.5\ex@}#2\cr
\noalign{\nointerlineskip\kern-\ex@}\cr}}%
}
-\def\varinjlim{%
+\protected\def\varinjlim{%
\mathop{\mathpalette\varlim@{\rightarrowfill@\textstyle}}\nmlimits@
}
-\def\varprojlim{%
+\protected\def\varprojlim{%
\mathop{\mathpalette\varlim@{\leftarrowfill@\textstyle}}\nmlimits@
}
-\def\varliminf{\mathop{\mathpalette\varliminf@{}}\nmlimits@}
+\protected\def\varliminf{\mathop{\mathpalette\varliminf@{}}\nmlimits@}
\def\varliminf@#1{\@@underline{\vrule\@depth.2\ex@\@width\z@
\hbox{$#1\m@th\operator@font lim$}}}
-\def\varlimsup{\mathop{\mathpalette\varlimsup@{}}\nmlimits@}
+\protected\def\varlimsup{\mathop{\mathpalette\varlimsup@{}}\nmlimits@}
\def\varlimsup@#1{\@@overline{\hbox{$#1\m@th\operator@font lim$}}}
\let\nmlimits@\displaylimits
\DeclareOption{namelimits}{\let\nmlimits@\displaylimits}
diff --git a/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty b/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty
index 9caf04a1201..1a3a472062a 100644
--- a/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty
@@ -46,8 +46,8 @@
%% Frank Mittelbach, LaTeX Team
%%
%%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0l}
-\providecommand\ltshipoutdate{2022/01/06}
+\providecommand\ltshipoutversion{v1.0m}
+\providecommand\ltshipoutdate{2022/05/08}
% \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
\ProvidesPackage{atbegshi-ltx}
[2021/01/10 v1.0c
diff --git a/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty b/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
index 2f67da6c799..f541bfe9527 100644
--- a/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty
@@ -43,7 +43,7 @@
%% extension .ins) which are part of the distribution.
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0m}
-\providecommand\ltfilehookdate{2022/03/10}
+\providecommand\ltfilehookdate{2022/04/01}
\ProvidesPackage{atveryend-ltx}
[2020/08/19 v1.0a
Emulation of the original atveryend package^^Jwith kernel methods]
diff --git a/Master/texmf-dist/tex/latex-dev/base/fltrace.sty b/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
index df0da0294d3..1f6ccd47118 100644
--- a/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/fltrace.sty
@@ -224,8 +224,10 @@
\let\f@depth\z@
\def \@opcol {%
\if@twocolumn
+ \@expl@@@mark@update@dblcol@structures@@
\@outputdblcol
\else
+ \@expl@@@mark@update@singlecol@structures@@
\@outputpage
\fl@trace{PAGE: one column (float? see above) page completed}%
\fi
diff --git a/Master/texmf-dist/tex/latex-dev/base/ifthen.sty b/Master/texmf-dist/tex/latex-dev/base/ifthen.sty
index 38320e726b1..d09c133511f 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ifthen.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/ifthen.sty
@@ -49,7 +49,7 @@
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{ifthen}
- [2020/11/24 v1.1c Standard LaTeX ifthen package (DPC)]
+ [2022/04/13 v1.1d Standard LaTeX ifthen package (DPC)]
\def\TE@throw{\@ne=\@ne\noexpand\fi}
\def\boolean#1#2{%
\TE@throw\expandafter\noexpand\csname if#1\endcsname#2}
@@ -72,6 +72,11 @@
##2}%
\expandafter\toks@\expandafter{\expandafter}%
\expandafter\@tempc\the\toks@#1\@tempc}
+\@ifl@t@r\fmtversion{2022/06/01}
+ {\def\TE@ref@exp{\let\pageref\@kernel@pageref@exp
+ \let\ref\@kernel@ref@exp}}
+ {\def\TE@ref@exp{\def\@setref##1##2##3{%
+ \ifx##1\relax\z@\else\expandafter##2##1\fi}}}
\long\def\ifthenelse#1{%
\toks@{#1}%
\TE@repl\or\TE@or
@@ -82,8 +87,7 @@
\TE@repl\NOT\TE@neg
\begingroup
\let\protect\@unexpandable@protect
- \def\@setref##1##2##3{%
- \ifx##1\relax\z@\else\expandafter##2##1\fi}%
+ \TE@ref@exp
\def\value##1{\the\csname c@##1\endcsname}%
\let\equal\TE@equal \let\(\TE@lparen \let\)\TE@rparen
\let\isodd\TE@odd \let\lengthtest\TE@length
diff --git a/Master/texmf-dist/tex/latex-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
index bd313da2fe6..87542bd0049 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latex.ltx
+++ b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
@@ -45,6 +45,7 @@
%% ltfloat.dtx (with options: `2ekernel')
%% ltidxglo.dtx (with options: `2ekernel')
%% ltbibl.dtx (with options: `2ekernel')
+%% ltmarks.dtx (with options: `trace,2ekernel')
%% ltpage.dtx (with options: `2ekernel')
%% ltclass.dtx (with options: `2ekernel,tracerollback')
%% ltkeys.dtx (with options: `2ekernel')
@@ -705,7 +706,7 @@
\def\fmtname{LaTeX2e}
\edef\fmtversion
{2022-06-01}
-\def\patch@level{-3}
+\def\patch@level{-4}
\edef\development@branch@name{develop \the\year-\the\month-\the\day}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
@@ -1730,8 +1731,8 @@
\xdef#1{\the\toks@}%
\endgroup}
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0k}
-\def\ltcmddate{2022-02-28}
+\def\ltcmdversion{v1.0l}
+\def\ltcmddate{2022-03-18}
\message{document commands,}
\ExplSyntaxOn
\tl_new:N \l__cmd_arg_spec_tl
@@ -3873,22 +3874,14 @@
\exp_args:Ne \str_case_e:nnF
{
\exp_args:Nf \tl_if_empty:nT { \cs_argument_spec:N #1 }
- {
- \token_if_macro:NT #1
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \token_to_str:N
- \exp_after:wN \use_i_delimit_by_q_stop:nw
- #1 \scan_stop: \q_stop
- }
- }
+ { \exp_not:N \exp_not:n { \exp_not:e { \tl_head:N #1 } } }
}
{
- { \token_to_str:N \__cmd_start:nNNnnn } {#2}
- { \token_to_str:N \__cmd_start_expandable:nNNNNn } {#3}
- { \token_to_str:N \__cmd_start_env:nnnnn } {#4}
+ { \exp_not:N \__cmd_start:nNNnnn } {#2}
+ { \exp_not:N \__cmd_start_expandable:nNNNNn } {#3}
+ { \exp_not:N \__cmd_start_env:nnnnn } {#4}
{
- \exp_after:wN \token_to_str:N
+ \exp_after:wN \exp_not:N
\cs:w environment~
\exp_last_unbraced:Ne \use_none:nnn
{ \cs_to_str:N #1 } ~end~aux \cs_end:
@@ -4357,8 +4350,8 @@
\ExplSyntaxOff
%%% From File: lthooks.dtx
-\def\lthooksversion{v1.0s}
-\def\lthooksdate{2022/01/06}
+\def\lthooksversion{v1.0u}
+\def\lthooksdate{2022/05/19}
\ExplSyntaxOn
\bool_new:N \g__hook_debug_bool
\cs_new_eq:NN \__hook_debug:n \use_none:n
@@ -4778,6 +4771,7 @@
\tl_const:cn { c__hook_generic_env/./begin_tl } { + }
\tl_const:cn { c__hook_generic_env/./end_tl } { + }
\tl_const:cn { c__hook_generic_include/./end_tl } { - }
+\tl_const:cn { c__hook_generic_include/./excluded_tl } { + }
\clist_map_inline:nn { file , package , class , include }
{
\tl_const:cn { c__hook_deprecated_#1/./before_tl } { }
@@ -4831,7 +4825,13 @@
\__hook_deprecated_generic_warn:n {#1}
\__hook_do_deprecated_generic:Nn \__hook_gset_rule:nnnn {#1}
{#2} {#3} {#4}
- \exp_after:wN \use_none:nnnnnnnnn \use_none:n
+ \__hook_clean_to_scan:w
+ }
+ \__hook_if_execute_immediately:nT {#1}
+ {
+ \msg_error:nnnnnn { hooks } { rule-too-late }
+ {#1} {#2} {#3} {#4}
+ \__hook_clean_to_scan:w
}
\__hook_init_structure:n {#1}
\__hook_rule_gclear:nnn {#1} {#2} {#4}
@@ -4840,8 +4840,11 @@
{#1} {#2} {#4}
\__hook_update_hook_code:n {#1}
}
- { \msg_error:nnnnnn { hooks } { unknown-rule }
- {#1} {#2} {#3} {#4} }
+ {
+ \msg_error:nnnnnn { hooks } { unknown-rule }
+ {#1} {#2} {#3} {#4}
+ }
+ \s__hook_mark
}
\cs_new_protected:Npn \__hook_rule_before_gset:nnn #1#2#3
{
@@ -4912,8 +4915,8 @@
}
\cs_new_protected:Npn \__hook_initialize_hook_code:n #1
{
- \__hook_debug:n{ \iow_term:x{^^JUpdate~ code~ for~ hook~
- '#1' \on@line :^^J} }
+ \__hook_debug:n
+ { \iow_term:x { ^^J Update~code~for~hook~'#1' \on@line :^^J } }
\__hook_include_legacy_code_chunk:n {#1}
\__hook_if_usable:nT {#1}
{
@@ -4934,8 +4937,8 @@
\prop_set_eq:Nc \l__hook_work_prop { g__hook_#1_code_prop }
\__hook_initialize_single:ccn
{ __hook~#1 } { g__hook_#1_labels_clist } {#1}
- \__hook_debug:n{ \exp_args:NNx \prop_gput:Nnn
- \g__hook_used_prop {#1}{} }
+ \__hook_debug:n
+ { \exp_args:NNx \prop_gput:Nnn \g__hook_used_prop {#1} { } }
}
}
}
@@ -5092,12 +5095,12 @@
}
\prop_put:Nnn \l__hook_work_prop {#1} { }
}
-\cs_new_eq:cc { __hook_apply_-rule_<:nnn } { __hook_apply_rule_>:nnn }
-\cs_new_eq:cc { __hook_apply_-rule_>:nnn } { __hook_apply_rule_<:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_<:nnn } { __hook_apply_rule_>:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_>:nnn } { __hook_apply_rule_<:nnn }
\cs_new_eq:cc { __hook_apply_-rule_<-:nnn } { __hook_apply_rule_<-:nnn }
\cs_new_eq:cc { __hook_apply_-rule_->:nnn } { __hook_apply_rule_->:nnn }
-\cs_new_eq:cc { __hook_apply_-rule_xE:nnn } { __hook_apply_rule_xE:nnn }
-\cs_new_eq:cc { __hook_apply_-rule_xW:nnn } { __hook_apply_rule_xW:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_xE:nnn } { __hook_apply_rule_xE:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_xW:nnn } { __hook_apply_rule_xW:nnn }
\cs_new_protected:Npn \__hook_msg_pair_found:nnn #1#2#3
{
\iow_term:x{~ \str_if_eq:nnTF {#3} {??} {default} {~normal} ~
@@ -5333,9 +5336,9 @@
\__hook_tl_gclear:c { __hook~#1 }
\__hook_tl_gclear:c { __hook_next~#1 }
\__hook_tl_gclear:c { __hook_toplevel~#1 }
- \prop_gclear:c { g__hook_#1_code_prop }
+ \prop_gclear_new:c { g__hook_#1_code_prop }
}
-\prg_new_conditional:Npnn \__hook_if_execute_immediately:n #1 { F, TF }
+\prg_new_conditional:Npnn \__hook_if_execute_immediately:n #1 { T, F, TF }
{
\__hook_if_usable:nTF {#1}
{
@@ -5458,7 +5461,8 @@
This~command~was~ignored.
}
\msg_new:nnnn { hooks } { unknown-rule }
- { Unknown~ relationship~ '#3'~
+ {
+ Unknown~ relationship~ '#3'~
between~ labels~ '#2'~ and~ '#4'~
\str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~
Perhaps~ a~ misspelling?
@@ -5472,6 +5476,19 @@
'voids'~ or~
'unrelated'.
}
+\msg_new:nnnn { hooks } { rule-too-late }
+ {
+ Sorting~rule~for~'#1'~hook~applied~too~late.\\
+ Try~setting~this~rule~earlier.
+ }
+ {
+ You~tried~to~set~the~ordering~of~hook~'#1'~using\\
+ \ \ \iow_char:N\\DeclareHookRule{#1}{#2}{#3}{#4}\\
+ but~hook~'#1'~was~already~used~as~a~one-time~hook,~
+ thus~sorting~is\\
+ no~longer~possible.~Declare~the~rule~
+ before~the~hook~is~used.
+ }
\msg_new:nnnn { hooks } { misused-top-level }
{
Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
@@ -6344,7 +6361,7 @@ Type H <return> for immediate help.}%
%% File: ltpara.dtx (C) Copyright 2020-2021
%%% From File: ltpara.dtx
\def\ltparaversion{v1.0k}
-\def\ltparadate{2021/11/11}
+\def\ltparadate{2022/05/13}
\ExplSyntaxOn
@@ -6469,10 +6486,11 @@ Type H <return> for immediate help.}%
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% File: ltmeta.dtx (C) Copyright 2021
+%% File: ltmeta.dtx (C) Copyright 2021, 2022
%%% From File: ltmeta.dtx
-\def\ltmetaversion{v1.0a}
-\def\ltmetadate{2021/12/07}
+\def\ltmetaversion{v1.0b}
+\def\ltmetadate{2022/05/18}
+\let \IfDocumentMetadataTF \@secondoftwo
\protected\def\DocumentMetadata{%
\InputIfFileExists{documentmetadata-support.ltx}%
{}%
@@ -6484,8 +6502,20 @@ Type H <return> for immediate help.}%
Without it, the declaration is ignored.}%
\let\DocumentMetadata\@gobble
}%
+ \let \IfDocumentMetadataTF \@firstoftwo
\DocumentMetadata
}
+\NewDocumentCommand\MakeLinkTarget{sO{}m}{%
+ \ifvmode
+ \special{}%
+ \else
+ \@savsf\spacefactor
+ \smash{}%
+ \spacefactor\@savsf
+ \fi}
+\NewDocumentCommand\LinkTargetOn{}{}
+\NewDocumentCommand\LinkTargetOff{}{}
+\NewDocumentCommand\NextLinkTarget{m}{}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% From File: ltspace.dtx
\message{spacing,}
@@ -6897,6 +6927,8 @@ Type H <return> for immediate help.}%
\else
\deadcycles\z@
\@nameuse{cp@#1}%
+ \UseHook{include/excluded}%
+ \UseOneTimeHook{include/#1/excluded}%
\fi
\let\@auxout\@mainaux
\else
@@ -6907,6 +6939,7 @@ Type H <return> for immediate help.}%
\NewHook{include/before}
\NewReversedHook{include/end}
\NewReversedHook{include/after}
+\NewHook{include/excluded}
\def\@writeckpt#1{%
\if@filesw
\immediate\write\@partaux{\string\@setckpt{#1}\@charlb}%
@@ -10932,9 +10965,19 @@ Type H <return> for immediate help.}%
\else
\expandafter#2#1\null
\fi}
-\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
-\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
- \@secondoftwo{#1}}
+\def\@kernel@sref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
+\def\@kernel@spageref#1{\expandafter\@setref\csname r@#1\endcsname
+ \@secondoftwo{#1}}
+\let\@kernel@ref\@kernel@sref
+\let\@kernel@pageref\@kernel@spageref
+\NewDocumentCommand\ref{s}
+ {\IfBooleanTF{#1}{\@kernel@sref}{\@kernel@ref}}
+\NewDocumentCommand\pageref{s}
+ {\IfBooleanTF{#1}{\@kernel@spageref}{\@kernel@pageref}}
+\def\@kernel@pageref@exp#1{\csname cs_if_exist:cTF\endcsname
+ {r@#1}{\csname tl_item:cn\endcsname{r@#1}{2}}{0}}
+\def\@kernel@ref@exp#1{\csname cs_if_exist:cTF\endcsname
+ {r@#1}{\csname tl_item:cn\endcsname{r@#1}{1}}{0}}
\def\@newl@bel#1#2#3{{%
\@ifundefined{#1@#2}%
\relax
@@ -10956,8 +10999,12 @@ Type H <return> for immediate help.}%
{\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
}
\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
-\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}%
- \expandafter\MakeUppercase\@tempa}
+\def\@kernel@Ref#1{\protected@edef\@tempa{\@kernel@ref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+\def\@kernel@sRef#1{\protected@edef\@tempa{\@kernel@sref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+\NewDocumentCommand\Ref{s}
+ {\IfBooleanTF{#1}{\@kernel@sRef}{\@kernel@Ref}}
\def\@currentlabel{}
%%% From File: ltmiscen.dtx
\message{environments,}
@@ -11345,7 +11392,7 @@ Type H <return> for immediate help.}%
\global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
\vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
\null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
-\def\openup{\afterassignment\@penup\dimen@}
+\protected\def\openup{\afterassignment\@penup\dimen@}
\def\@penup{\advance\lineskip\dimen@
\advance\baselineskip\dimen@
\advance\lineskiplimit\dimen@}
@@ -11495,6 +11542,9 @@ Type H <return> for immediate help.}%
\expandafter\@ensuredmath
\fi}
\long\def\@ensuredmath#1{$\relax#1$}
+\ifx\mathdefaultsmode\@undefined\else
+ \mathdefaultsmode=1
+\fi
%%% From File: ltlists.dtx
\newskip\topsep
\newskip\partopsep
@@ -13425,6 +13475,355 @@ Type H <return> for immediate help.}%
\def\@cite#1#2{[{#1\if@tempswa , #2\fi}]}
\let\@cite@ofmt\hbox
\def\@biblabel#1{[#1]}
+%% File: ltmarks.dtx (C) Copyright 2022
+%%% From File: ltmarks.dtx
+\def\ltmarksversion{v1.0c}
+\def\ltmarksdate{2022/05/06}
+%% \end{function}
+
+\ExplSyntaxOn
+\seq_new:N \g__mark_classes_seq
+\cs_new_protected:Npn \mark_new_class:n #1
+{
+ \seq_if_in:NnTF \g__mark_classes_seq {#1}
+ {
+ \msg_error:nnn { mark } { class-already-defined }
+ {#1}
+ }
+ { \__mark_new_class:nn {#1} }
+}
+\@onlypreamble \mark_new_class:n
+\cs_new_protected:Npn \__mark_new_class:nn #1
+{
+ \__mark_debug:n { \iow_term:x { Marks:~new~mark:~#1~\msg_line_context: } }
+ \exp_args:Nc \newmarks {c__mark_class_ #1 _mark}
+ \seq_gput_right:Nn \g__mark_classes_seq {#1}
+ \tl_new:c { g__mark_page_top_ #1 _tl }
+ \tl_new:c { g__mark_page_first_ #1 _tl }
+ \tl_new:c { g__mark_page_last_ #1 _tl }
+ \tl_new:c { g__mark_previous-page_top_ #1 _tl }
+ \tl_new:c { g__mark_previous-page_first_ #1 _tl }
+ \tl_new:c { g__mark_previous-page_last_ #1 _tl }
+ \tl_new:c { g__mark_column_top_ #1 _tl }
+ \tl_new:c { g__mark_column_first_ #1 _tl }
+ \tl_new:c { g__mark_column_last_ #1 _tl }
+ \tl_new:c { g__mark_previous-column_top_ #1 _tl }
+ \tl_new:c { g__mark_previous-column_first_ #1 _tl }
+ \tl_new:c { g__mark_previous-column_last_ #1 _tl }
+ \tl_new:c { g__mark_first-column_top_ #1 _tl }
+ \tl_new:c { g__mark_first-column_first_ #1 _tl }
+ \tl_new:c { g__mark_first-column_last_ #1 _tl }
+ \tl_new:c { g__mark_last-column_top_ #1 _tl }
+ \tl_new:c { g__mark_last-column_first_ #1 _tl }
+ \tl_new:c { g__mark_last-column_last_ #1 _tl }
+}
+\box_new:N \l__mark_box
+\tl_new:N \g__mark_tmp_tl
+\tl_new:N \g__mark_new_top_tl
+\cs_new_protected:Npn \__mark_update_structure:nn #1#2
+ {
+ \__mark_update_structure_alias:nn { previous-#1 } {#1}
+ \group_begin:
+ \dim_set_eq:NN \tex_splitmaxdepth:D \c_max_dim
+ \int_set_eq:NN \tex_vbadness:D \c_max_int
+ \dim_set_eq:NN \tex_vfuzz:D \c_max_dim
+ \vbox_set_to_ht:Nnn \l__mark_box { -.5\c_max_dim }
+ {
+ #2
+ \tex_unskip:D
+ \box_set_to_last:N \l__mark_box
+ \box_if_vertical:NT \l__mark_box
+ { \vbox_unpack:N \l__mark_box }
+ \tex_kern:D \c_zero_dim
+ }
+ \int_compare:nNnTF \tex_badness:D > 0
+ {
+ \vbox_set_split_to_ht:NNn \l__mark_box \l__mark_box \c_max_dim
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:Nc \g__mark_new_top_tl { g__mark_#1_last_##1_tl }
+ \tl_gset_eq:cN { g__mark_#1_top_##1_tl } \g__mark_new_top_tl
+ \tl_gset:No \g__mark_tmp_tl
+ { \tex_splitbotmarks:D \use:c { c__mark_class_##1_mark } }
+ \tl_if_empty:NTF \g__mark_tmp_tl
+ {
+ \tl_gset_eq:cN { g__mark_#1_last_ ##1_tl }
+ \g__mark_new_top_tl
+ \tl_gset_eq:cN { g__mark_#1_first_##1_tl }
+ \g__mark_new_top_tl
+ }
+ {
+ \tl_gset_eq:cN { g__mark_#1_last_##1_tl } \g__mark_tmp_tl
+ \tl_gset:co { g__mark_#1_first_##1_tl }
+ {
+ \tex_splitfirstmarks:D
+ \use:c { c__mark_class_##1_mark }
+ }
+ }
+ }
+ }
+ {
+ \msg_error:nnn { mark } { infinite-shrinkage } {#1}
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:cc { g__mark_#1_top_ ##1_tl }
+ { g__mark_#1_last_ ##1_tl }
+ \tl_gset_eq:cc { g__mark_#1_first_##1_tl }
+ { g__mark_#1_last_ ##1_tl }
+ }
+ }
+ \group_end:
+ }
+\cs_new_protected:Npn \__mark_update_structure_alias:nn #1#2 {
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:cc { g__mark_ #1 _top_ ##1 _tl }
+ { g__mark_ #2 _top_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_ #1 _first_ ##1 _tl }
+ { g__mark_ #2 _first_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_ #1 _last_ ##1 _tl }
+ { g__mark_ #2 _last_ ##1 _tl }
+ }
+}
+\cs_new_protected:Npn \__mark_update_structure_to_err:n #1 {
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset:cn { g__mark_ #1 _top_ ##1 _tl } { \__mark_error:n {#1} }
+ \tl_gset:cn { g__mark_ #1 _first_ ##1 _tl } { \__mark_error:n {#1} }
+ \tl_gset:cn { g__mark_ #1 _last_ ##1 _tl } { \__mark_error:n {#1} }
+ }
+}
+\cs_new_protected:Npn \__mark_error:n #1 {
+ \msg_error:nnn { mark } { invalid-use } {#1}
+}
+\cs_new_protected:Npn \mark_insert:nn #1#2
+{
+ \seq_if_in:NnTF \g__mark_classes_seq {#1}
+ {
+ \group_begin:
+ \@kernel@before@insertmark
+ \hook_use:n { insertmark }
+ \unrestored@protected@xdef \g__mark_tmp_tl {#2}
+ \__mark_debug:n{ \iow_term:x { Marks:~ set~#1~<-~
+ '\tl_to_str:V \g__mark_tmp_tl' ~ \msg_line_context: } }
+ \tex_marks:D \use:c { c__mark_class_ #1 _mark }
+ {
+ \tl_if_empty:NTF \g__mark_tmp_tl
+ { \exp_not:n { \prg_do_nothing: } }
+ { \exp_not:o { \g__mark_tmp_tl } }
+ }
+ \group_end:
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ {
+ \msg_error:nnx { mark } { unknown-class }
+ { \tl_to_str:n {#1} }
+ }
+}
+\cs_new:Npn \@kernel@before@insertmark {
+ \cs_set_eq:NN \label \scan_stop:
+ \cs_set_eq:NN \index \scan_stop:
+ \cs_set_eq:NN \glossary \scan_stop:
+}
+\hook_new:n {insertmark}
+\cs_new:Npn \mark_use_first:nn #1#2 { \exp_not:v { g__mark_#1_first_#2_tl } }
+\cs_new:Npn \mark_use_last:nn #1#2 { \exp_not:v { g__mark_#1_last_#2_tl } }
+\cs_new:Npn \mark_use_top:nn #1#2 { \exp_not:v { g__mark_#1_top_#2_tl } }
+\prg_new_conditional:Npnn \mark_if_eq:nnnn #1#2#3#4 { T , F , TF }
+{
+ \tl_if_eq:ccTF { g__mark_ #1 _#3_ #2 _tl }
+ { g__mark_ #1 _#4_ #2 _tl }
+ \prg_return_true:
+ \prg_return_false:
+}
+\prg_new_conditional:Npnn \mark_if_eq:nnnnnn #1#2#3#4#5#6 { T , F , TF }
+{
+ \tl_if_eq:ccTF { g__mark_ #1 _#3_ #2 _tl }
+ { g__mark_ #4 _#6_ #5 _tl }
+ \prg_return_true:
+ \prg_return_false:
+}
+\msg_new:nnnn { mark } { class-already-defined }
+ { Mark~class~'#1'~already~defined }
+ {
+ \c__msg_coding_error_text_tl
+ LaTeX~was~asked~to~define~a~new~mark~class~called~'#1':~
+ this~mark~class~already~exists.
+ \c__msg_return_text_tl
+ }
+\msg_new:nnnn { mark } { unknown-class }
+ { Unknown~mark~class~'#1'. }
+ {
+ \c__msg_coding_error_text_tl
+ LaTeX~was~asked~to~manipulate~a~mark~of~class~'#1',~
+ but~this~class~of~marks~does~not~exist.
+ }
+
+\msg_new:nnnn { mark } { invalid-use }
+ { Mark~region~'#1'~not ~usable }
+ {
+ \c__msg_coding_error_text_tl
+ The~region~'#1'~can~only~be~used~after~
+ all~columns~have~been~assembled.
+ \c__msg_return_text_tl
+ }
+\msg_new:nnnn { mark } { infinite-shrinkage }
+ { Infinite~shrinkage~found~in~'#1'. }
+ {
+ \c__msg_coding_error_text_tl
+ The~mark~region~'#1'~contains~some~infinite~negative~glue~
+ allowing~it~to~shrink~to~an~arbitrary~size.~
+ This~makes~it~impossible~to~split~the~region~apart~to~
+ get~at~its~marks.~They~are~lost.
+ }
+\bool_new:N \g__mark_debug_bool
+\cs_new_eq:NN \__mark_debug:n \use_none:n
+\cs_new_protected:Npn \mark_debug_on:
+ {
+ \bool_gset_true:N \g__mark_debug_bool
+ \__mark_debug_gset:
+ }
+\cs_new_protected:Npn \mark_debug_off:
+ {
+ \bool_gset_false:N \g__mark_debug_bool
+ \__mark_debug_gset:
+ }
+\cs_new_protected:Npn \__mark_debug_gset:
+ {
+ \cs_gset_protected:Npx \__mark_debug:n ##1
+ { \bool_if:NT \g__mark_debug_bool {##1} }
+ }
+\cs_new_eq:NN \DebugMarksOn \mark_debug_on:
+\cs_new_eq:NN \DebugMarksOff \mark_debug_off:
+\cs_new_protected:Npn \__mark_class_status:nn #1#2
+ {
+ \typeout{ Marks:~#2~ #1:}
+ \typeout{\@spaces page~ (current):
+ | \exp_not:v { g__mark_page_top_ #2 _tl }
+ | \exp_not:v { g__mark_page_first_ #2 _tl }
+ | \exp_not:v { g__mark_page_last_ #2 _tl } |}
+ \typeout{\@spaces page~ (previous):
+ | \exp_not:v { g__mark_previous-page_top_ #2 _tl }
+ | \exp_not:v { g__mark_previous-page_first_ #2 _tl }
+ | \exp_not:v { g__mark_previous-page_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (previous):
+ | \exp_not:v { g__mark_previous-column_top_ #2 _tl }
+ | \exp_not:v { g__mark_previous-column_first_ #2 _tl }
+ | \exp_not:v { g__mark_previous-column_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (current):
+ | \exp_not:v { g__mark_column_top_ #2 _tl }
+ | \exp_not:v { g__mark_column_first_ #2 _tl }
+ | \exp_not:v { g__mark_column_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (first):
+ | \exp_not:v { g__mark_first-column_top_ #2 _tl }
+ | \exp_not:v { g__mark_first-column_first_ #2 _tl }
+ | \exp_not:v { g__mark_first-column_last_ #2 _tl } |}
+ \typeout{\@spaces column~ (second):
+ | \exp_not:v { g__mark_last-column_top_ #2 _tl }
+ | \exp_not:v { g__mark_last-column_first_ #2 _tl }
+ | \exp_not:v { g__mark_last-column_last_ #2 _tl } |}
+}
+\cs_new_protected:Npn \__mark_status:n #1
+ {
+ \seq_map_inline:Nn \g__mark_classes_seq
+ { \__mark_class_status:nn {#1} {##1} }
+ }
+\cs_new_eq:NN \NewMarkClass \mark_new_class:n
+\@onlypreamble \NewMarkClass
+\cs_new_eq:NN \InsertMark \mark_insert:nn
+\NewExpandableDocumentCommand \FirstMark { O{page} m }
+ { \mark_use_first:nn {#1}{#2} }
+\NewExpandableDocumentCommand \LastMark { O{page} m }
+ { \mark_use_last:nn {#1}{#2} }
+\NewExpandableDocumentCommand \TopMark { O{page} m }
+ { \mark_use_top:nn {#1}{#2} }
+\NewExpandableDocumentCommand \IfMarksEqualTF {O{page}mmm} {
+ \mark_if_eq:nnnnTF {#1}{#2}{#3}{#4}
+}
+\cs_new_protected:Npn \__mark_update_singlecol_structures: {
+ \box_if_vertical:NTF \@outputbox
+ {
+ \__mark_update_structure:nn {page}
+ { \vbox_unpack:N \@outputbox }
+ }
+ {
+ \__mark_update_structure:nn {page}
+ { \hbox_unpack:N \@outputbox }
+ }
+ \__mark_update_structure_alias:nn {previous-column}{previous-page}
+ \__mark_update_structure_alias:nn {column}{page}
+ \__mark_update_structure_alias:nn {first-column}{page}
+ \__mark_update_structure_alias:nn {last-column}{page}
+ \__mark_debug:n
+ {
+ \__mark_status:n
+ { in~ OR~ (
+ \legacy_if:nTF {@twoside}
+ { twoside-
+ \int_if_odd:nTF \c@page
+ { odd }{ even }
+ }
+ { oneside }
+ )
+ }
+ }
+}
+\cs_new_protected:Npn \__mark_update_dblcol_structures: {
+ \box_if_vertical:NTF \@outputbox
+ {
+ \__mark_update_structure:nn {column}
+ { \vbox_unpack:N \@outputbox }
+ }
+ {
+ \__mark_update_structure:nn {column}
+ { \hbox_unpack:N \@outputbox }
+ }
+ \legacy_if:nTF {@firstcolumn}
+ {
+ \__mark_update_structure_alias:nn {first-column}{column}
+ \__mark_update_structure_to_err:n {last-column}
+ }
+ {
+ \__mark_update_structure_alias:nn {last-column}{column}
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:cc { g__mark_previous-page_top_ ##1 _tl }
+ { g__mark_page_top_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_previous-page_first_ ##1 _tl }
+ { g__mark_page_first_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_previous-page_last_ ##1 _tl }
+ { g__mark_page_last_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_page_top_ ##1 _tl }
+ { g__mark_first-column_top_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_ page_first_ ##1 _tl }
+ { g__mark_first-column_first_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_page_last_ ##1 _tl }
+ { g__mark_last-column_last_ ##1 _tl }
+ }
+ }
+ \__mark_debug:n
+ {
+ \__mark_status:n
+ { in~ OR~ (
+ \legacy_if:nTF {@twoside}
+ { twoside-
+ \int_if_odd:nTF \c@page
+ { odd }{ even }
+ }
+ { oneside }
+ \space
+ \legacy_if:nTF {@firstcolumn}
+ { first~ }{ second~ }
+ column )
+ }
+ }
+}
+\cs_new_eq:NN \@expl@@@mark@update@singlecol@structures@@
+ \__mark_update_singlecol_structures:
+\cs_new_eq:NN \@expl@@@mark@update@dblcol@structures@@
+ \__mark_update_dblcol_structures:
+\ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% From File: ltpage.dtx
\def\pagestyle#1{%
\@ifundefined{ps@#1}%
@@ -13442,11 +13841,15 @@ Type H <return> for immediate help.}%
\hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot}
\let\@leftmark\@firstoftwo
\let\@rightmark\@secondoftwo
+\ExplSyntaxOn
\DeclareRobustCommand*\markboth[2]{%
\begingroup
\let\label\relax \let\index\relax \let\glossary\relax
\unrestored@protected@xdef\@themark {{#1}{#2}}%
\@temptokena \expandafter{\@themark}%
+ \mark_insert:nn{2e-left}{#1}
+ \mark_insert:nn{2e-right}{#2}
+ \tl_if_empty:nF{#2}{ \mark_insert:nn{2e-right-nonempty}{#2} }
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
@@ -13455,9 +13858,12 @@ Type H <return> for immediate help.}%
\let\label\relax \let\index\relax \let\glossary\relax
\expandafter\@markright\@themark {#1}%
\@temptokena \expandafter{\@themark}%
+ \mark_insert:nn{2e-right}{#1}
+ \tl_if_empty:nF{#1}{ \mark_insert:nn{2e-right-nonempty}{#1} }
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
+\ExplSyntaxOff
\def\@markright#1#2#3{\@temptokena {#1}%
\unrestored@protected@xdef\@themark{{\the\@temptokena}{#3}}}
\def\leftmark{\expandafter\@leftmark\botmark\@empty\@empty}
@@ -13851,7 +14257,7 @@ Type H <return> for immediate help.}%
{\@onefilewithoptions@clashchk{#2}}
{%
\@namedef{opt@\@currname.\@currext}{#2}%
- \expandafter\expandafter\expandafter\ProcessKeyPackageOptions
+ \expandafter\expandafter\expandafter\ProcessKeyOptions
\expandafter\expandafter\expandafter
[\csname opt@fam@\@currname.\@currext\endcsname]%
}%
@@ -14391,14 +14797,14 @@ Type H <return> for immediate help.}%
\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
\clist_new:N \l__keys_options_clist
\bool_new:N \l__keys_options_loading_bool
-\cs_new_protected:Npn \__keys_options:Nn #1#2
- { \__keys_options_expand_module:Nn \__keys_options:nN {#2} #1 }
-\cs_new_protected:Npn \__keys_options:nN #1#2
+\cs_new_protected:Npn \__keys_options:n #1
+ { \__keys_options_expand_module:Nn \__keys_options_aux:n {#1} }
+\cs_new_protected:Npn \__keys_options_aux:n #1
{
\cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#1}
\cs_set_protected:Npn \__keys_option_end: { }
\clist_clear:N \l__keys_options_clist
- \__keys_options_global:Nn #2 {#1}
+ \__keys_options_global:n {#1}
\__keys_options_local:
\keys_if_exist:nnF {#1} { unknown }
{
@@ -14426,16 +14832,13 @@ Type H <return> for immediate help.}%
LaTeX~has~been~asked~to~set~an~option~called~'#1'~
but~the~#2~package~has~not~created~an~option~with~this~name.
}
-\cs_new_protected:Npn \__keys_options_global:Nn #1#2
+\cs_new_protected:Npn \__keys_options_global:n #1
{
\cs_if_eq:NNF \@classoptionslist \scan_stop:
{
\cs_if_eq:NNTF \@currext \@clsextension
- { \__keys_options_class:n {#2} }
- {
- \bool_if:NT #1
- { \__keys_options_package:n {#2} }
- }
+ { \__keys_options_class:n {#1} }
+ { \__keys_options_package:n {#1} }
}
}
\cs_new_protected:Npn \__keys_options_class:n #1
@@ -14504,11 +14907,8 @@ Type H <return> for immediate help.}%
}
}
\NewDocumentCommand \ProcessKeyOptions { O { \@currname } }
- { \__keys_options:Nn \c_true_bool {#1} }
-\NewDocumentCommand \ProcessKeyPackageOptions { O { \@currname } }
- { \__keys_options:Nn \c_false_bool {#1} }
+ { \__keys_options:n {#1} }
\@onlypreamble \ProcessKeyOptions
-\@onlypreamble \ProcessKeyPackageOptions
\cs_new_protected:Npn \__keys_options_loaded:n #1
{
\prop_get:NnNT \l_keys_usage_load_prop {#1} \l__keys_tmpa_tl
@@ -14565,7 +14965,7 @@ Type H <return> for immediate help.}%
\ExplSyntaxOff
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0m}
-\providecommand\ltfilehookdate{2022/03/10}
+\providecommand\ltfilehookdate{2022/04/01}
\ExplSyntaxOn
\tl_new:N \CurrentFile
\tl_new:N \CurrentFilePath
@@ -14852,8 +15252,8 @@ Type H <return> for immediate help.}%
%% Frank Mittelbach, LaTeX Team
%%
%%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0l}
-\providecommand\ltshipoutdate{2022/01/06}
+\providecommand\ltshipoutversion{v1.0m}
+\providecommand\ltshipoutdate{2022/05/08}
% \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
\ExplSyntaxOn
\bool_new:N \g__shipout_debug_bool
@@ -14965,8 +15365,8 @@ Type H <return> for immediate help.}%
\__shipout_add_foreground_box:n
{ \UseHook{shipout/lastpage}
\@kernel@after@shipout@lastpage }
+ \bool_gset_true:N \g__shipout_lastpage_handled_bool
}
- \bool_gset_true:N \g__shipout_lastpage_handled_bool
}
\__shipout_finalize_box:
\cs_set_eq:NN \protect \exp_not:N
@@ -15211,7 +15611,16 @@ Type H <return> for immediate help.}%
\iow_now:Nx \@auxout {
\gdef\string\@abspage@last {\int_use:N \g_shipout_readonly_int}}
\fi
- \bool_if:NF \g__shipout_lastpage_handled_bool
+ \bool_if:NTF \g__shipout_lastpage_handled_bool
+ {
+ \int_compare:nNnF \@abspage@last = \g_shipout_readonly_int
+ {
+ \@latex@warning@no@line{Hook~ 'shipout/lastpage'~ executed~
+ on~ wrong~ page~ (\@abspage@last\space not~
+ \int_use:N\g_shipout_readonly_int).\MessageBreak
+ Rerun~ to~ correct~ this}%
+ }
+ }
{
\bool_lazy_and:nnF
{ \hook_if_empty_p:n {shipout/lastpage} }
@@ -15599,8 +16008,10 @@ Type H <return> for immediate help.}%
}%
\def \@opcol {%
\if@twocolumn
+ \@expl@@@mark@update@dblcol@structures@@
\@outputdblcol
\else
+ \@expl@@@mark@update@singlecol@structures@@
\@outputpage
\fi
\global \@mparbottom \z@ \global \@textfloatsheight \z@
@@ -16366,6 +16777,10 @@ Type H <return> for immediate help.}%
\def\newmarks{%
\e@alloc\marks \e@alloc@chardef{\count256}\m@ne\e@alloc@top}
\fi
+\NewMarkClass {2e-left}
+\NewMarkClass {2e-right}
+\NewMarkClass {2e-right-nonempty}
+
\ifx\XeTeXcharclass\@undefined
\else
\ifdim\the\XeTeXversion\XeTeXrevision\p@>0.99993\p@
@@ -16687,13 +17102,13 @@ Type H <return> for immediate help.}%
\def\i{I}\def\j{J}%
\def\reserved@a##1##2{\let##1##2\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\@expl@text@uppercase@@n{#1}}%
+ \protected@edef\reserved@a{\@expl@text@uppercase@@n{\noexpand\unexpanded{#1}}}%
\reserved@a
}}
\DeclareRobustCommand{\MakeLowercase}[1]{{%
\def\reserved@a##1##2{\let##2##1\reserved@a}%
\expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\@expl@text@lowercase@@n{#1}}%
+ \protected@edef\reserved@a{\@expl@text@lowercase@@n{\noexpand\unexpanded{#1}}}%
\reserved@a
}}
\def\@uclclist{\oe\OE\o\O\ae\AE
diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
index 616573fd46e..fd4737154ce 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
@@ -48,6 +48,7 @@
%% ltfloat.dtx (with options: `latexrelease')
%% ltidxglo.dtx (with options: `latexrelease')
%% ltbibl.dtx (with options: `latexrelease')
+%% ltmarks.dtx (with options: `latexrelease')
%% ltpage.dtx (with options: `latexrelease')
%% ltclass.dtx (with options: `latexrelease,tracerollback')
%% ltfilehook.dtx (with options: `latexrelease')
@@ -1889,8 +1890,8 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.0k}
-\def\ltcmddate{2022-02-28}
+\def\ltcmdversion{v1.0l}
+\def\ltcmddate{2022-03-18}
\edef\@latexrelease@catcode@null{\the\catcode`\^^@ }
\catcode`\^^@=12
\ExplSyntaxOn
@@ -4049,22 +4050,14 @@ of this package available from CTAN}
\exp_args:Ne \str_case_e:nnF
{
\exp_args:Nf \tl_if_empty:nT { \cs_argument_spec:N #1 }
- {
- \token_if_macro:NT #1
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \token_to_str:N
- \exp_after:wN \use_i_delimit_by_q_stop:nw
- #1 \scan_stop: \q_stop
- }
- }
+ { \exp_not:N \exp_not:n { \exp_not:e { \tl_head:N #1 } } }
}
{
- { \token_to_str:N \__cmd_start:nNNnnn } {#2}
- { \token_to_str:N \__cmd_start_expandable:nNNNNn } {#3}
- { \token_to_str:N \__cmd_start_env:nnnnn } {#4}
+ { \exp_not:N \__cmd_start:nNNnnn } {#2}
+ { \exp_not:N \__cmd_start_expandable:nNNNNn } {#3}
+ { \exp_not:N \__cmd_start_env:nnnnn } {#4}
{
- \exp_after:wN \token_to_str:N
+ \exp_after:wN \exp_not:N
\cs:w environment~
\exp_last_unbraced:Ne \use_none:nnn
{ \cs_to_str:N #1 } ~end~aux \cs_end:
@@ -4552,8 +4545,8 @@ of this package available from CTAN}
\catcode`\^^@=\@latexrelease@catcode@null\relax
%%% From File: lthooks.dtx
-\def\lthooksversion{v1.0s}
-\def\lthooksdate{2022/01/06}
+\def\lthooksversion{v1.0u}
+\def\lthooksdate{2022/05/19}
\ExplSyntaxOn
\NewModuleRelease{2020/10/01}{lthooks}
{The~hook~management~system}
@@ -5133,6 +5126,7 @@ of this package available from CTAN}
\tl_const:cn { c__hook_generic_env/./begin_tl } { + }
\tl_const:cn { c__hook_generic_env/./end_tl } { + }
\tl_const:cn { c__hook_generic_include/./end_tl } { - }
+\tl_const:cn { c__hook_generic_include/./excluded_tl } { + }
\clist_map_inline:nn { file , package , class , include }
{
\tl_const:cn { c__hook_deprecated_#1/./before_tl } { }
@@ -5194,6 +5188,39 @@ of this package available from CTAN}
\__hook_normalize_hook_rule_args:Nnnnn \__hook_gset_rule:nnnn
{#1} {#2} {#3} {#4}
}
+\IncludeInRelease{2022/06/01}{\__hook_gset_rule:nnnn}
+ {Refuse~setting~rule~for~one-time~hooks}
+\cs_new_protected:Npn \__hook_gset_rule:nnnn #1#2#3#4
+ {
+ \__hook_if_deprecated_generic:nT {#1}
+ {
+ \__hook_deprecated_generic_warn:n {#1}
+ \__hook_do_deprecated_generic:Nn \__hook_gset_rule:nnnn {#1}
+ {#2} {#3} {#4}
+ \__hook_clean_to_scan:w
+ }
+ \__hook_if_execute_immediately:nT {#1}
+ {
+ \msg_error:nnnnnn { hooks } { rule-too-late }
+ {#1} {#2} {#3} {#4}
+ \__hook_clean_to_scan:w
+ }
+ \__hook_init_structure:n {#1}
+ \__hook_rule_gclear:nnn {#1} {#2} {#4}
+ \cs_if_exist_use:cTF { __hook_rule_#3_gset:nnn }
+ {
+ {#1} {#2} {#4}
+ \__hook_update_hook_code:n {#1}
+ }
+ {
+ \msg_error:nnnnnn { hooks } { unknown-rule }
+ {#1} {#2} {#3} {#4}
+ }
+ \s__hook_mark
+ }
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}{\__hook_gset_rule:nnnn}
+ {Refuse~setting~rule~for~one-time~hooks}
\cs_new_protected:Npn \__hook_gset_rule:nnnn #1#2#3#4
{
\__hook_if_deprecated_generic:nT {#1}
@@ -5210,9 +5237,12 @@ of this package available from CTAN}
{#1} {#2} {#4}
\__hook_update_hook_code:n {#1}
}
- { \msg_error:nnnnnn { hooks } { unknown-rule }
- {#1} {#2} {#3} {#4} }
+ {
+ \msg_error:nnnnnn { hooks } { unknown-rule }
+ {#1} {#2} {#3} {#4}
+ }
}
+\EndIncludeInRelease
\cs_new_protected:Npn \__hook_rule_before_gset:nnn #1#2#3
{
\__hook_tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl }
@@ -5282,8 +5312,8 @@ of this package available from CTAN}
}
\cs_new_protected:Npn \__hook_initialize_hook_code:n #1
{
- \__hook_debug:n{ \iow_term:x{^^JUpdate~ code~ for~ hook~
- '#1' \on@line :^^J} }
+ \__hook_debug:n
+ { \iow_term:x { ^^J Update~code~for~hook~'#1' \on@line :^^J } }
\__hook_include_legacy_code_chunk:n {#1}
\__hook_if_usable:nT {#1}
{
@@ -5304,8 +5334,8 @@ of this package available from CTAN}
\prop_set_eq:Nc \l__hook_work_prop { g__hook_#1_code_prop }
\__hook_initialize_single:ccn
{ __hook~#1 } { g__hook_#1_labels_clist } {#1}
- \__hook_debug:n{ \exp_args:NNx \prop_gput:Nnn
- \g__hook_used_prop {#1}{} }
+ \__hook_debug:n
+ { \exp_args:NNx \prop_gput:Nnn \g__hook_used_prop {#1} { } }
}
}
}
@@ -5462,12 +5492,12 @@ of this package available from CTAN}
}
\prop_put:Nnn \l__hook_work_prop {#1} { }
}
-\cs_new_eq:cc { __hook_apply_-rule_<:nnn } { __hook_apply_rule_>:nnn }
-\cs_new_eq:cc { __hook_apply_-rule_>:nnn } { __hook_apply_rule_<:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_<:nnn } { __hook_apply_rule_>:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_>:nnn } { __hook_apply_rule_<:nnn }
\cs_new_eq:cc { __hook_apply_-rule_<-:nnn } { __hook_apply_rule_<-:nnn }
\cs_new_eq:cc { __hook_apply_-rule_->:nnn } { __hook_apply_rule_->:nnn }
-\cs_new_eq:cc { __hook_apply_-rule_xE:nnn } { __hook_apply_rule_xE:nnn }
-\cs_new_eq:cc { __hook_apply_-rule_xW:nnn } { __hook_apply_rule_xW:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_xE:nnn } { __hook_apply_rule_xE:nnn }
+\cs_new_eq:cc { __hook_apply_-rule_xW:nnn } { __hook_apply_rule_xW:nnn }
\cs_new_protected:Npn \__hook_msg_pair_found:nnn #1#2#3
{
\iow_term:x{~ \str_if_eq:nnTF {#3} {??} {default} {~normal} ~
@@ -5763,9 +5793,9 @@ of this package available from CTAN}
\__hook_tl_gclear:c { __hook~#1 }
\__hook_tl_gclear:c { __hook_next~#1 }
\__hook_tl_gclear:c { __hook_toplevel~#1 }
- \prop_gclear:c { g__hook_#1_code_prop }
+ \prop_gclear_new:c { g__hook_#1_code_prop }
}
-\prg_new_conditional:Npnn \__hook_if_execute_immediately:n #1 { F, TF }
+\prg_new_conditional:Npnn \__hook_if_execute_immediately:n #1 { T, F, TF }
{
\__hook_if_usable:nTF {#1}
{
@@ -5888,7 +5918,8 @@ of this package available from CTAN}
This~command~was~ignored.
}
\msg_new:nnnn { hooks } { unknown-rule }
- { Unknown~ relationship~ '#3'~
+ {
+ Unknown~ relationship~ '#3'~
between~ labels~ '#2'~ and~ '#4'~
\str_if_eq:nnF {#1} {??} { ~in~hook~'#1' }. ~
Perhaps~ a~ misspelling?
@@ -5902,6 +5933,19 @@ of this package available from CTAN}
'voids'~ or~
'unrelated'.
}
+\msg_new:nnnn { hooks } { rule-too-late }
+ {
+ Sorting~rule~for~'#1'~hook~applied~too~late.\\
+ Try~setting~this~rule~earlier.
+ }
+ {
+ You~tried~to~set~the~ordering~of~hook~'#1'~using\\
+ \ \ \iow_char:N\\DeclareHookRule{#1}{#2}{#3}{#4}\\
+ but~hook~'#1'~was~already~used~as~a~one-time~hook,~
+ thus~sorting~is\\
+ no~longer~possible.~Declare~the~rule~
+ before~the~hook~is~used.
+ }
\msg_new:nnnn { hooks } { misused-top-level }
{
Illegal~use~of~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
@@ -6582,7 +6626,7 @@ of this package available from CTAN}
%% File: ltpara.dtx (C) Copyright 2020-2021
%%% From File: ltpara.dtx
\def\ltparaversion{v1.0k}
-\def\ltparadate{2021/11/11}
+\def\ltparadate{2022/05/13}
\ExplSyntaxOn
@@ -6726,12 +6770,13 @@ of this package available from CTAN}
\EndModuleRelease
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% File: ltmeta.dtx (C) Copyright 2021
+%% File: ltmeta.dtx (C) Copyright 2021, 2022
%%% From File: ltmeta.dtx
-\def\ltmetaversion{v1.0a}
-\def\ltmetadate{2021/12/07}
-\NewModuleRelease{2021/06/01}{ltmeta}
+\def\ltmetaversion{v1.0b}
+\def\ltmetadate{2022/05/18}
+\NewModuleRelease{2022/06/01}{ltmeta}
{Document Metadata handling}
+\let \IfDocumentMetadataTF \@secondoftwo
\protected\def\DocumentMetadata{%
\InputIfFileExists{documentmetadata-support.ltx}%
{}%
@@ -6743,8 +6788,20 @@ of this package available from CTAN}
Without it, the declaration is ignored.}%
\let\DocumentMetadata\@gobble
}%
+ \let \IfDocumentMetadataTF \@firstoftwo
\DocumentMetadata
}
+\NewDocumentCommand\MakeLinkTarget{sO{}m}{%
+ \ifvmode
+ \special{}%
+ \else
+ \@savsf\spacefactor
+ \smash{}%
+ \spacefactor\@savsf
+ \fi}
+\NewDocumentCommand\LinkTargetOn{}{}
+\NewDocumentCommand\LinkTargetOff{}{}
+\NewDocumentCommand\NextLinkTarget{m}{}
\IncludeInRelease{0000/00/00}{ltmeta}%
{Undo Document Metadata handling}
@@ -7338,7 +7395,7 @@ of this package available from CTAN}
\else \@include#1 \fi}
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
+\IncludeInRelease{2022/06/01}%
{\@include}{Spaces in file names and hooks}%
\def\@include#1 {%
\ifx\@nodocument\relax
@@ -7376,6 +7433,8 @@ of this package available from CTAN}
\else
\deadcycles\z@
\@nameuse{cp@#1}%
+ \UseHook{include/excluded}%
+ \UseOneTimeHook{include/#1/excluded}%
\fi
\let\@auxout\@mainaux
\else
@@ -7386,9 +7445,59 @@ of this package available from CTAN}
\NewHook{include/before}
\NewReversedHook{include/end}
\NewReversedHook{include/after}
+\NewHook{include/excluded}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@include}{Spaces in file names and hooks}%
\EndIncludeInRelease
+\def\@include#1 {%
+\ifx\@nodocument\relax
+ \clearpage
+ \if@filesw
+ \immediate\write\@mainaux{\string\@input{#1.aux}}%
+ \fi
+ \@tempswatrue
+ \if@partsw
+ \@tempswafalse
+ \edef\reserved@b{#1}%
+ \@for\reserved@a:=\@partlist\do
+ {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
+ \fi
+ \if@tempswa
+ \let\@auxout\@partaux
+ \if@filesw
+ \immediate\openout\@partaux "#1.aux"
+ \immediate\write\@partaux{\relax}%
+ \fi
+ \@filehook@set@CurrentFile
+ \UseHook{include/before}%
+ \UseOneTimeHook{include/#1/before}%
+ \@input@{#1.tex}%
+ \UseOneTimeHook{include/#1/end}%
+ \UseHook{include/end}%
+ \clearpage
+ \UseOneTimeHook{include/#1/after}%
+ \UseHook{include/after}%
+ \clearpage
+ \@writeckpt{#1}%
+ \if@filesw
+ \immediate\closeout\@partaux
+ \fi
+ \else
+ \deadcycles\z@
+ \@nameuse{cp@#1}%
+ \fi
+ \let\@auxout\@mainaux
+\else
+\@latex@warning{%
+ \noexpand\include should only be used after \string\begin{document}}%
+\@input@{#1}%
+\fi}
+\NewHook{include/before}
+\NewReversedHook{include/end}
+\NewReversedHook{include/after}
\IncludeInRelease{0000/00/00}%
- {\@include}{Spaces in file names}%
+ {\@include}{Spaces in file names and hooks}%
\def\@include#1 {%
\clearpage
\if@filesw
@@ -10868,8 +10977,47 @@ of this package available from CTAN}
%%% From File: ltpageno.dtx
%%% From File: ltxref.dtx
+\IncludeInRelease{2022/06/01}%
+ {\ref}{Add starred reference commands}%
+\def\@kernel@sref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
+\def\@kernel@spageref#1{\expandafter\@setref\csname r@#1\endcsname
+ \@secondoftwo{#1}}
+\let\@kernel@ref\@kernel@sref
+\let\@kernel@pageref\@kernel@spageref
+\NewDocumentCommand\ref{s}
+ {\IfBooleanTF{#1}{\@kernel@sref}{\@kernel@ref}}
+\NewDocumentCommand\pageref{s}
+ {\IfBooleanTF{#1}{\@kernel@spageref}{\@kernel@pageref}}
+\def\@kernel@pageref@exp#1{\csname cs_if_exist:cTF\endcsname
+ {r@#1}{\csname tl_item:cn\endcsname{r@#1}{2}}{0}}
+\def\@kernel@ref@exp#1{\csname cs_if_exist:cTF\endcsname
+ {r@#1}{\csname tl_item:cn\endcsname{r@#1}{1}}{0}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\ref}{Add starred reference commands}%
+\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}}
+\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname
+ \@secondoftwo{#1}}
+
+\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+ {\Ref}{Add starred version}%
+\def\@currentcounter{}
+\def\refstepcounter#1{\stepcounter{#1}%
+ \edef\@currentcounter{#1}%
+ \protected@edef\@currentlabel
+ {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+}
+\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
+\def\@kernel@Ref#1{\protected@edef\@tempa{\@kernel@ref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+\def\@kernel@sRef#1{\protected@edef\@tempa{\@kernel@sref{#1}}%
+ \expandafter\MakeUppercase\@tempa}
+\NewDocumentCommand\Ref{s}
+ {\IfBooleanTF{#1}{\@kernel@sRef}{\@kernel@Ref}}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
- {\refstepcounter}{Add \@currentcounter}%
+ {\Ref}{Add starred version}%
\def\@currentcounter{}
\def\refstepcounter#1{\stepcounter{#1}%
\edef\@currentcounter{#1}%
@@ -12883,9 +13031,337 @@ of this package available from CTAN}
\@esphack}
\EndIncludeInRelease
+%% File: ltmarks.dtx (C) Copyright 2022
+%%% From File: ltmarks.dtx
+\def\ltmarksversion{v1.0c}
+\def\ltmarksdate{2022/05/06}
+%% \end{function}
+
+\ExplSyntaxOn
+\NewModuleRelease{2022/06/01}{ltmarks}
+ {Marks~handling}
+\seq_new:N \g__mark_classes_seq
+\cs_new_protected:Npn \mark_new_class:n #1
+{
+ \seq_if_in:NnTF \g__mark_classes_seq {#1}
+ {
+ \msg_error:nnn { mark } { class-already-defined }
+ {#1}
+ }
+ { \__mark_new_class:nn {#1} }
+}
+\@onlypreamble \mark_new_class:n
+\cs_new_protected:Npn \__mark_new_class:nn #1
+{
+ \exp_args:Nc \newmarks {c__mark_class_ #1 _mark}
+ \seq_gput_right:Nn \g__mark_classes_seq {#1}
+ \tl_new:c { g__mark_page_top_ #1 _tl }
+ \tl_new:c { g__mark_page_first_ #1 _tl }
+ \tl_new:c { g__mark_page_last_ #1 _tl }
+ \tl_new:c { g__mark_previous-page_top_ #1 _tl }
+ \tl_new:c { g__mark_previous-page_first_ #1 _tl }
+ \tl_new:c { g__mark_previous-page_last_ #1 _tl }
+ \tl_new:c { g__mark_column_top_ #1 _tl }
+ \tl_new:c { g__mark_column_first_ #1 _tl }
+ \tl_new:c { g__mark_column_last_ #1 _tl }
+ \tl_new:c { g__mark_previous-column_top_ #1 _tl }
+ \tl_new:c { g__mark_previous-column_first_ #1 _tl }
+ \tl_new:c { g__mark_previous-column_last_ #1 _tl }
+ \tl_new:c { g__mark_first-column_top_ #1 _tl }
+ \tl_new:c { g__mark_first-column_first_ #1 _tl }
+ \tl_new:c { g__mark_first-column_last_ #1 _tl }
+ \tl_new:c { g__mark_last-column_top_ #1 _tl }
+ \tl_new:c { g__mark_last-column_first_ #1 _tl }
+ \tl_new:c { g__mark_last-column_last_ #1 _tl }
+}
+\box_new:N \l__mark_box
+\tl_new:N \g__mark_tmp_tl
+\tl_new:N \g__mark_new_top_tl
+\cs_new_protected:Npn \__mark_update_structure:nn #1#2
+ {
+ \__mark_update_structure_alias:nn { previous-#1 } {#1}
+ \group_begin:
+ \dim_set_eq:NN \tex_splitmaxdepth:D \c_max_dim
+ \int_set_eq:NN \tex_vbadness:D \c_max_int
+ \dim_set_eq:NN \tex_vfuzz:D \c_max_dim
+ \vbox_set_to_ht:Nnn \l__mark_box { -.5\c_max_dim }
+ {
+ #2
+ \tex_unskip:D
+ \box_set_to_last:N \l__mark_box
+ \box_if_vertical:NT \l__mark_box
+ { \vbox_unpack:N \l__mark_box }
+ \tex_kern:D \c_zero_dim
+ }
+ \int_compare:nNnTF \tex_badness:D > 0
+ {
+ \vbox_set_split_to_ht:NNn \l__mark_box \l__mark_box \c_max_dim
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:Nc \g__mark_new_top_tl { g__mark_#1_last_##1_tl }
+ \tl_gset_eq:cN { g__mark_#1_top_##1_tl } \g__mark_new_top_tl
+ \tl_gset:No \g__mark_tmp_tl
+ { \tex_splitbotmarks:D \use:c { c__mark_class_##1_mark } }
+ \tl_if_empty:NTF \g__mark_tmp_tl
+ {
+ \tl_gset_eq:cN { g__mark_#1_last_ ##1_tl }
+ \g__mark_new_top_tl
+ \tl_gset_eq:cN { g__mark_#1_first_##1_tl }
+ \g__mark_new_top_tl
+ }
+ {
+ \tl_gset_eq:cN { g__mark_#1_last_##1_tl } \g__mark_tmp_tl
+ \tl_gset:co { g__mark_#1_first_##1_tl }
+ {
+ \tex_splitfirstmarks:D
+ \use:c { c__mark_class_##1_mark }
+ }
+ }
+ }
+ }
+ {
+ \msg_error:nnn { mark } { infinite-shrinkage } {#1}
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:cc { g__mark_#1_top_ ##1_tl }
+ { g__mark_#1_last_ ##1_tl }
+ \tl_gset_eq:cc { g__mark_#1_first_##1_tl }
+ { g__mark_#1_last_ ##1_tl }
+ }
+ }
+ \group_end:
+ }
+\cs_new_protected:Npn \__mark_update_structure_alias:nn #1#2 {
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:cc { g__mark_ #1 _top_ ##1 _tl }
+ { g__mark_ #2 _top_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_ #1 _first_ ##1 _tl }
+ { g__mark_ #2 _first_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_ #1 _last_ ##1 _tl }
+ { g__mark_ #2 _last_ ##1 _tl }
+ }
+}
+\cs_new_protected:Npn \__mark_update_structure_to_err:n #1 {
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset:cn { g__mark_ #1 _top_ ##1 _tl } { \__mark_error:n {#1} }
+ \tl_gset:cn { g__mark_ #1 _first_ ##1 _tl } { \__mark_error:n {#1} }
+ \tl_gset:cn { g__mark_ #1 _last_ ##1 _tl } { \__mark_error:n {#1} }
+ }
+}
+\cs_new_protected:Npn \__mark_error:n #1 {
+ \msg_error:nnn { mark } { invalid-use } {#1}
+}
+\cs_new_protected:Npn \mark_insert:nn #1#2
+{
+ \seq_if_in:NnTF \g__mark_classes_seq {#1}
+ {
+ \group_begin:
+ \@kernel@before@insertmark
+ \hook_use:n { insertmark }
+ \unrestored@protected@xdef \g__mark_tmp_tl {#2}
+ \tex_marks:D \use:c { c__mark_class_ #1 _mark }
+ {
+ \tl_if_empty:NTF \g__mark_tmp_tl
+ { \exp_not:n { \prg_do_nothing: } }
+ { \exp_not:o { \g__mark_tmp_tl } }
+ }
+ \group_end:
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ {
+ \msg_error:nnx { mark } { unknown-class }
+ { \tl_to_str:n {#1} }
+ }
+}
+\cs_new:Npn \@kernel@before@insertmark {
+ \cs_set_eq:NN \label \scan_stop:
+ \cs_set_eq:NN \index \scan_stop:
+ \cs_set_eq:NN \glossary \scan_stop:
+}
+\hook_new:n {insertmark}
+\cs_new:Npn \mark_use_first:nn #1#2 { \exp_not:v { g__mark_#1_first_#2_tl } }
+\cs_new:Npn \mark_use_last:nn #1#2 { \exp_not:v { g__mark_#1_last_#2_tl } }
+\cs_new:Npn \mark_use_top:nn #1#2 { \exp_not:v { g__mark_#1_top_#2_tl } }
+\prg_new_conditional:Npnn \mark_if_eq:nnnn #1#2#3#4 { T , F , TF }
+{
+ \tl_if_eq:ccTF { g__mark_ #1 _#3_ #2 _tl }
+ { g__mark_ #1 _#4_ #2 _tl }
+ \prg_return_true:
+ \prg_return_false:
+}
+\prg_new_conditional:Npnn \mark_if_eq:nnnnnn #1#2#3#4#5#6 { T , F , TF }
+{
+ \tl_if_eq:ccTF { g__mark_ #1 _#3_ #2 _tl }
+ { g__mark_ #4 _#6_ #5 _tl }
+ \prg_return_true:
+ \prg_return_false:
+}
+\msg_new:nnnn { mark } { class-already-defined }
+ { Mark~class~'#1'~already~defined }
+ {
+ \c__msg_coding_error_text_tl
+ LaTeX~was~asked~to~define~a~new~mark~class~called~'#1':~
+ this~mark~class~already~exists.
+ \c__msg_return_text_tl
+ }
+\msg_new:nnnn { mark } { unknown-class }
+ { Unknown~mark~class~'#1'. }
+ {
+ \c__msg_coding_error_text_tl
+ LaTeX~was~asked~to~manipulate~a~mark~of~class~'#1',~
+ but~this~class~of~marks~does~not~exist.
+ }
+
+\msg_new:nnnn { mark } { invalid-use }
+ { Mark~region~'#1'~not ~usable }
+ {
+ \c__msg_coding_error_text_tl
+ The~region~'#1'~can~only~be~used~after~
+ all~columns~have~been~assembled.
+ \c__msg_return_text_tl
+ }
+\msg_new:nnnn { mark } { infinite-shrinkage }
+ { Infinite~shrinkage~found~in~'#1'. }
+ {
+ \c__msg_coding_error_text_tl
+ The~mark~region~'#1'~contains~some~infinite~negative~glue~
+ allowing~it~to~shrink~to~an~arbitrary~size.~
+ This~makes~it~impossible~to~split~the~region~apart~to~
+ get~at~its~marks.~They~are~lost.
+ }
+\bool_new:N \g__mark_debug_bool
+\cs_new_eq:NN \__mark_debug:n \use_none:n
+\cs_new_protected:Npn \mark_debug_on:
+ {
+ \bool_gset_true:N \g__mark_debug_bool
+ \__mark_debug_gset:
+ }
+\cs_new_protected:Npn \mark_debug_off:
+ {
+ \bool_gset_false:N \g__mark_debug_bool
+ \__mark_debug_gset:
+ }
+\cs_new_protected:Npn \__mark_debug_gset:
+ {
+ \cs_gset_protected:Npx \__mark_debug:n ##1
+ { \bool_if:NT \g__mark_debug_bool {##1} }
+ }
+\cs_new_eq:NN \DebugMarksOn \mark_debug_on:
+\cs_new_eq:NN \DebugMarksOff \mark_debug_off:
+\cs_new_eq:NN \NewMarkClass \mark_new_class:n
+\@onlypreamble \NewMarkClass
+\cs_new_eq:NN \InsertMark \mark_insert:nn
+\NewExpandableDocumentCommand \FirstMark { O{page} m }
+ { \mark_use_first:nn {#1}{#2} }
+\NewExpandableDocumentCommand \LastMark { O{page} m }
+ { \mark_use_last:nn {#1}{#2} }
+\NewExpandableDocumentCommand \TopMark { O{page} m }
+ { \mark_use_top:nn {#1}{#2} }
+\NewExpandableDocumentCommand \IfMarksEqualTF {O{page}mmm} {
+ \mark_if_eq:nnnnTF {#1}{#2}{#3}{#4}
+}
+\cs_new_protected:Npn \__mark_update_singlecol_structures: {
+ \box_if_vertical:NTF \@outputbox
+ {
+ \__mark_update_structure:nn {page}
+ { \vbox_unpack:N \@outputbox }
+ }
+ {
+ \__mark_update_structure:nn {page}
+ { \hbox_unpack:N \@outputbox }
+ }
+ \__mark_update_structure_alias:nn {previous-column}{previous-page}
+ \__mark_update_structure_alias:nn {column}{page}
+ \__mark_update_structure_alias:nn {first-column}{page}
+ \__mark_update_structure_alias:nn {last-column}{page}
+}
+\cs_new_protected:Npn \__mark_update_dblcol_structures: {
+ \box_if_vertical:NTF \@outputbox
+ {
+ \__mark_update_structure:nn {column}
+ { \vbox_unpack:N \@outputbox }
+ }
+ {
+ \__mark_update_structure:nn {column}
+ { \hbox_unpack:N \@outputbox }
+ }
+ \legacy_if:nTF {@firstcolumn}
+ {
+ \__mark_update_structure_alias:nn {first-column}{column}
+ \__mark_update_structure_to_err:n {last-column}
+ }
+ {
+ \__mark_update_structure_alias:nn {last-column}{column}
+ \seq_map_inline:Nn \g__mark_classes_seq
+ {
+ \tl_gset_eq:cc { g__mark_previous-page_top_ ##1 _tl }
+ { g__mark_page_top_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_previous-page_first_ ##1 _tl }
+ { g__mark_page_first_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_previous-page_last_ ##1 _tl }
+ { g__mark_page_last_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_page_top_ ##1 _tl }
+ { g__mark_first-column_top_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_ page_first_ ##1 _tl }
+ { g__mark_first-column_first_ ##1 _tl }
+ \tl_gset_eq:cc { g__mark_page_last_ ##1 _tl }
+ { g__mark_last-column_last_ ##1 _tl }
+ }
+ }
+}
+\cs_new_eq:NN \@expl@@@mark@update@singlecol@structures@@
+ \__mark_update_singlecol_structures:
+\cs_new_eq:NN \@expl@@@mark@update@dblcol@structures@@
+ \__mark_update_dblcol_structures:
+\IncludeInRelease{0000/00/00}{ltmarks}%
+ {Undo~Marks~handling}
+
+\DeclareRobustCommand \NewMarkClass[1]{}
+\DeclareRobustCommand \InsertMark[2]{}
+\RenewExpandableDocumentCommand \FirstMark { O{} m } { }
+\RenewExpandableDocumentCommand \LastMark { O{} m } { }
+\RenewExpandableDocumentCommand \TopMark { O{} m } { }
+\RenewExpandableDocumentCommand \IfMarksEqualTF { O{} mmm }{ }
+
+\let \@expl@@@mark@update@singlecol@structures@@ \relax
+\let \@expl@@@mark@update@dblcol@structures@@ \relax
+
+
+\EndModuleRelease
+\ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% From File: ltpage.dtx
+\IncludeInRelease{2022/06/01}%
+ {\markboth}{New mark support}%
+\ExplSyntaxOn
+\DeclareRobustCommand*\markboth[2]{%
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \unrestored@protected@xdef\@themark {{#1}{#2}}%
+ \@temptokena \expandafter{\@themark}%
+ \mark_insert:nn{2e-left}{#1}
+ \mark_insert:nn{2e-right}{#2}
+ \tl_if_empty:nF{#2}{ \mark_insert:nn{2e-right-nonempty}{#2} }
+ \mark{\the\@temptokena}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+\DeclareRobustCommand*\markright[1]{%
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark {#1}%
+ \@temptokena \expandafter{\@themark}%
+ \mark_insert:nn{2e-right}{#1}
+ \tl_if_empty:nF{#1}{ \mark_insert:nn{2e-right-nonempty}{#1} }
+ \mark{\the\@temptokena}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+\ExplSyntaxOff
+\EndIncludeInRelease
\IncludeInRelease{2019/10/01}%
{\markboth}{Make commands robust}%
+
\DeclareRobustCommand*\markboth[2]{%
\begingroup
\let\label\relax \let\index\relax \let\glossary\relax
@@ -12902,6 +13378,7 @@ of this package available from CTAN}
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
+
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
{\markboth}{Make commands robust}%
@@ -13476,7 +13953,7 @@ of this package available from CTAN}
{\@onefilewithoptions@clashchk{#2}}
{%
\@namedef{opt@\@currname.\@currext}{#2}%
- \expandafter\expandafter\expandafter\ProcessKeyPackageOptions
+ \expandafter\expandafter\expandafter\ProcessKeyOptions
\expandafter\expandafter\expandafter
[\csname opt@fam@\@currname.\@currext\endcsname]%
}%
@@ -14020,7 +14497,7 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0m}
-\providecommand\ltfilehookdate{2022/03/10}
+\providecommand\ltfilehookdate{2022/04/01}
\IncludeInRelease{2020/10/01}%
{\CurrentFile}{Hook management file}%
\ExplSyntaxOn
@@ -14504,8 +14981,8 @@ of this package available from CTAN}
%% Frank Mittelbach, LaTeX Team
%%
%%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0l}
-\providecommand\ltshipoutdate{2022/01/06}
+\providecommand\ltshipoutversion{v1.0m}
+\providecommand\ltshipoutdate{2022/05/08}
% \cs{AtBeginDvi} is the existing \LaTeXe{} interface to fill the
\IncludeInRelease{2020/10/01}%
{\shipout}{Hook management (shipout)}%
@@ -14619,8 +15096,8 @@ of this package available from CTAN}
\__shipout_add_foreground_box:n
{ \UseHook{shipout/lastpage}
\@kernel@after@shipout@lastpage }
+ \bool_gset_true:N \g__shipout_lastpage_handled_bool
}
- \bool_gset_true:N \g__shipout_lastpage_handled_bool
}
\__shipout_finalize_box:
\cs_set_eq:NN \protect \exp_not:N
@@ -14865,7 +15342,16 @@ of this package available from CTAN}
\iow_now:Nx \@auxout {
\gdef\string\@abspage@last {\int_use:N \g_shipout_readonly_int}}
\fi
- \bool_if:NF \g__shipout_lastpage_handled_bool
+ \bool_if:NTF \g__shipout_lastpage_handled_bool
+ {
+ \int_compare:nNnF \@abspage@last = \g_shipout_readonly_int
+ {
+ \@latex@warning@no@line{Hook~ 'shipout/lastpage'~ executed~
+ on~ wrong~ page~ (\@abspage@last\space not~
+ \int_use:N\g_shipout_readonly_int).\MessageBreak
+ Rerun~ to~ correct~ this}%
+ }
+ }
{
\bool_lazy_and:nnF
{ \hook_if_empty_p:n {shipout/lastpage} }
@@ -15950,6 +16436,16 @@ of this package available from CTAN}
{\newmarks}{Extended Allocation}%
\let\newmarks\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+ {2e-left}{Delayed legacy marks}%
+\NewMarkClass {2e-left}
+\NewMarkClass {2e-right}
+\NewMarkClass {2e-right-nonempty}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {2e-left}{Delayed legacy marks}%
+
+\EndIncludeInRelease
\IncludeInRelease{2015/01/01}%
{\newXeTeXintercharclass}{Extended Allocation}%
\ifx\XeTeXcharclass\@undefined
diff --git a/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu b/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
index ae384c6bc16..21d98b0abc0 100644
--- a/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{lcyenc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
\DeclareUnicodeCharacter{00BB}{\guillemotright}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
index e5787d34b81..9f21a47fedf 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{ly1enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A2}{\textcent}
diff --git a/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu b/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
index 69b17696cbb..cba35738981 100644
--- a/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/omsenc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{omsenc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00B6}{\textparagraph}
\DeclareUnicodeCharacter{00B7}{\textperiodcentered}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
index a152259e769..fa20c8e3f04 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{ot1enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A3}{\textsterling}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
index aa47cff7d0a..de01af4cc72 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{ot2enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
\DeclareUnicodeCharacter{00BB}{\guillemotright}
\DeclareUnicodeCharacter{0131}{\i}
diff --git a/Master/texmf-dist/tex/latex-dev/base/slides.cls b/Master/texmf-dist/tex/latex-dev/base/slides.cls
index 616d8644784..832b37cd253 100644
--- a/Master/texmf-dist/tex/latex-dev/base/slides.cls
+++ b/Master/texmf-dist/tex/latex-dev/base/slides.cls
@@ -43,7 +43,7 @@
%% extension .ins) which are part of the distribution.
\NeedsTeXFormat{LaTeX2e}[1997/06/01]
\ProvidesClass{slides}
- [2021/10/04 v2.4b
+ [2022/05/18 v2.4b
Standard LaTeX document class]
\input{slides.def}
\InputIfFileExists{sfonts.cfg}
diff --git a/Master/texmf-dist/tex/latex-dev/base/slides.def b/Master/texmf-dist/tex/latex-dev/base/slides.def
index 50cd1e54f06..19d98ed86ba 100644
--- a/Master/texmf-dist/tex/latex-dev/base/slides.def
+++ b/Master/texmf-dist/tex/latex-dev/base/slides.def
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{slides.def}
- [2021/10/04 v2.4b
+ [2022/05/18 v2.4b
SLiTeX definitions]
\message{hacks,}
diff --git a/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls b/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls
index b17c4c52b16..f0f1479cac5 100644
--- a/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls
+++ b/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls
@@ -2,7 +2,7 @@
% This class is buggy and needs fixing
\ProvidesClass{source2edoc}
- [2021/01/14 v0.2b Quick hack to typeset source2.tex
+ [2022/04/03 v0.2c Quick hack to typeset source2.tex
(not usable for anything else and buggy -- will vanish again)!]
@@ -171,7 +171,10 @@
t\or u\or v\or w\or x\or y\or z\or A\or B\or C\or
D\or E\or F\or G\or H\or I\or J\or K\or L\or M\or
N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or
- X\or Y\or Z\else\@ctrerr\fi}
+ X\or Y\or Z\or
+ aa\or bb\or cc\or % we are getting definitely too many modules
+ dd%
+ \else\@ctrerr\fi}
\def\docincludeaux{%
\def\thepart{\aalph{part}}\def\filesep{\thepart-}%
\let\filekey\@gobble
@@ -295,6 +298,11 @@ Bug reports can be opened (category \texttt{#1}) at\\%
\fi}%
\endgroup%
+
+% don't run tocs when they are in some module files
+\AddToHook{cmd/tableofcontents/after}{\global\let\tableofcontents\relax}
+
+
\InputIfFileExists{ltxdoc.cfg}
{\typeout{*************************************^^J%
* Local config file ltxdoc.cfg used^^J%
@@ -302,6 +310,7 @@ Bug reports can be opened (category \texttt{#1}) at\\%
{}
+
\errorstopmode
\batchmode
diff --git a/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty b/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
index 78bbf19b48e..f1de46f35a7 100644
--- a/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty
@@ -43,7 +43,7 @@
%% extension .ins) which are part of the distribution.
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0m}
-\providecommand\ltfilehookdate{2022/03/10}
+\providecommand\ltfilehookdate{2022/04/01}
\ProvidesExplPackage
{structuredlog}{\ltfilehookdate}{\ltfilehookversion}
{Structuring the TeX transcript file}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
index 749d3d4a9bf..b90bd46501d 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t1enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{t1enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A3}{\textsterling}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu b/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
index c99141958f6..a9b37aba1d3 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{t2aenc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
@@ -228,7 +228,9 @@
\DeclareUnicodeCharacter{2031}{\textpertenthousand}
\DeclareUnicodeCharacter{2116}{\textnumero}
\DeclareUnicodeCharacter{2329}{\textlangle}
+\DeclareUnicodeCharacter{3008}{\textlangle}
\DeclareUnicodeCharacter{232A}{\textrangle}
+\DeclareUnicodeCharacter{3009}{\textrangle}
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
\DeclareUnicodeCharacter{27E8}{\textlangle}
\DeclareUnicodeCharacter{27E9}{\textrangle}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu b/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
index 769650ecb4e..0e57a1c5fd8 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t2benc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{t2benc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
@@ -222,7 +222,9 @@
\DeclareUnicodeCharacter{2031}{\textpertenthousand}
\DeclareUnicodeCharacter{2116}{\textnumero}
\DeclareUnicodeCharacter{2329}{\textlangle}
+\DeclareUnicodeCharacter{3008}{\textlangle}
\DeclareUnicodeCharacter{232A}{\textrangle}
+\DeclareUnicodeCharacter{3009}{\textrangle}
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
\DeclareUnicodeCharacter{27E8}{\textlangle}
\DeclareUnicodeCharacter{27E9}{\textrangle}
diff --git a/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu b/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
index bdd0aed8137..044366e9dbc 100644
--- a/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{t2cenc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
@@ -218,7 +218,9 @@
\DeclareUnicodeCharacter{2031}{\textpertenthousand}
\DeclareUnicodeCharacter{2116}{\textnumero}
\DeclareUnicodeCharacter{2329}{\textlangle}
+\DeclareUnicodeCharacter{3008}{\textlangle}
\DeclareUnicodeCharacter{232A}{\textrangle}
+\DeclareUnicodeCharacter{3009}{\textrangle}
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
\DeclareUnicodeCharacter{27E8}{\textlangle}
\DeclareUnicodeCharacter{27E9}{\textrangle}
diff --git a/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu b/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
index cdf9b0c224d..42c2e57f59c 100644
--- a/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{ts1enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A2}{\textcent}
\DeclareUnicodeCharacter{00A3}{\textsterling}
\DeclareUnicodeCharacter{00A4}{\textcurrency}
@@ -107,7 +107,9 @@
\DeclareUnicodeCharacter{2192}{\textrightarrow}
\DeclareUnicodeCharacter{2193}{\textdownarrow}
\DeclareUnicodeCharacter{2329}{\textlangle}
+\DeclareUnicodeCharacter{3008}{\textlangle}
\DeclareUnicodeCharacter{232A}{\textrangle}
+\DeclareUnicodeCharacter{3009}{\textrangle}
\DeclareUnicodeCharacter{2422}{\textblank}
\DeclareUnicodeCharacter{25E6}{\textopenbullet}
\DeclareUnicodeCharacter{25EF}{\textbigcircle}
diff --git a/Master/texmf-dist/tex/latex-dev/base/utf8.def b/Master/texmf-dist/tex/latex-dev/base/utf8.def
index 0492b2cf590..ca95b199424 100644
--- a/Master/texmf-dist/tex/latex-dev/base/utf8.def
+++ b/Master/texmf-dist/tex/latex-dev/base/utf8.def
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{utf8.def}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\ifx\ifincsname\@undefined % old e-pTeX or e-upTeX engines
\input utf8-2018.def
\expandafter\@firstofone
diff --git a/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu b/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
index 450cfe80844..79b08b4adcc 100644
--- a/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{utf8enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A0}{\nobreakspace}
\DeclareUnicodeCharacter{00A1}{\textexclamdown}
\DeclareUnicodeCharacter{00A2}{\textcent}
@@ -589,7 +589,9 @@
\DeclareUnicodeCharacter{2192}{\textrightarrow}
\DeclareUnicodeCharacter{2193}{\textdownarrow}
\DeclareUnicodeCharacter{2329}{\textlangle}
+\DeclareUnicodeCharacter{3008}{\textlangle}
\DeclareUnicodeCharacter{232A}{\textrangle}
+\DeclareUnicodeCharacter{3009}{\textrangle}
\DeclareUnicodeCharacter{2422}{\textblank}
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
\DeclareUnicodeCharacter{25E6}{\textopenbullet}
diff --git a/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu b/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
index 1c2eea70ab4..185b8d7d7d5 100644
--- a/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
+++ b/Master/texmf-dist/tex/latex-dev/base/x2enc.dfu
@@ -42,7 +42,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
\ProvidesFile{x2enc.dfu}
- [2022/02/13 v1.3a UTF-8 support]
+ [2022/05/08 v1.3b UTF-8 support]
\DeclareUnicodeCharacter{00A4}{\textcurrency}
\DeclareUnicodeCharacter{00A7}{\textsection}
\DeclareUnicodeCharacter{00AB}{\guillemotleft}
@@ -266,7 +266,9 @@
\DeclareUnicodeCharacter{2031}{\textpertenthousand}
\DeclareUnicodeCharacter{2116}{\textnumero}
\DeclareUnicodeCharacter{2329}{\textlangle}
+\DeclareUnicodeCharacter{3008}{\textlangle}
\DeclareUnicodeCharacter{232A}{\textrangle}
+\DeclareUnicodeCharacter{3009}{\textrangle}
\DeclareUnicodeCharacter{2423}{\textvisiblespace}
\DeclareUnicodeCharacter{27E8}{\textlangle}
\DeclareUnicodeCharacter{27E9}{\textrangle}
diff --git a/Master/texmf-dist/tex/latex-dev/tools/showkeys-2014-10-28.sty b/Master/texmf-dist/tex/latex-dev/tools/showkeys-2014-10-28.sty
new file mode 100644
index 00000000000..b4d7b190287
--- /dev/null
+++ b/Master/texmf-dist/tex/latex-dev/tools/showkeys-2014-10-28.sty
@@ -0,0 +1,272 @@
+%%
+%% This is file `showkeys.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% showkeys.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% The source is maintained by the LaTeX Project team and bug
+%% reports for it can be opened at https://latex-project.org/bugs/
+%% (but please observe conditions on bug reports sent to that address!)
+%%
+%%
+%% Copyright (C) 1993-2021
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% 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 file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% File: showkeys.dtx Copyright (C) 1992-1997 David Carlisle
+%% File: showkeys.dtx Copyright (C) 2006-2019 David Carlisle, LaTeX Project
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{showkeys}
+ [2014/10/28 v3.17 Show cite and label keys (DPC, MH)]
+\DeclareOption{notref}{\let\SK@ref\@empty}
+\DeclareOption{notcite}{\let\SK@cite\@empty}
+\let\SK@refcolor\relax
+\let\SK@labelcolor\relax
+\DeclareOption{color}{\AtEndOfPackage{%
+ \RequirePackage{color}%
+ \definecolor{refkey}{gray}{.75}%
+ \definecolor{labelkey}{gray}{.75}%
+ \def\SK@refcolor{\color{refkey}}%
+ \def\SK@labelcolor{\color{labelkey}}}}
+\DeclareOption{final}{%
+ \providecommand*\showkeyslabelformat[1]{}%
+ \endinput}
+\DeclareOption{draft}{}
+\ProcessOptions
+\let\SK@label\label
+\let\SK@bibitem\@bibitem
+\let\SK@lbibitem\@lbibitem
+\def\label#1{%
+ \@bsphack
+ \SK@\SK@@label{#1}%
+ \begingroup
+ \SK@label{#1}%
+ \endgroup
+ \@esphack}
+\def\@bibitem#1{%
+ \SK@bibitem{#1}\SK@\SK@@label{#1}\ignorespaces}
+\def\@lbibitem[#1]#2{%
+ \SK@lbibitem[{#1}]{#2}\SK@\SK@@label{#2}\ignorespaces}
+\def\SK@#1#2{%
+ \protected@edef\@tempa{#2}%
+ \expandafter#1\meaning\@tempa\SK@}
+\providecommand*\showkeyslabelformat[1]{%
+ \fbox{\normalfont\small\ttfamily#1}}
+\def\SK@@label#1>#2\SK@{%
+ \gdef\SK@lab{\smash{\SK@labelcolor\showkeyslabelformat{#2}}}%
+ \ifvmode
+ \if@inlabel
+ \global\setbox\@labels\hbox{%
+ \llap{\SK@lab\SK@lab@relax
+ \kern\@totalleftmargin\kern\marginparsep}%
+ \box\@labels}%
+ \else
+ \dimen@\prevdepth
+ \nointerlineskip
+ \ifinner
+ \skip@\lastskip\unskip
+ \advance\skip@\lastskip\unskip
+ \setbox\z@\lastbox
+ \ifvoid\z@
+ \llap{\SK@lab\SK@lab@relax\kern\marginparsep}%
+ \else
+ \hbox{\box\z@\rlap{\kern\marginparsep\SK@labx}}%
+ \fi
+ \vskip\skip@
+ \else
+ \llap{\SK@lab\SK@lab@relax\kern\marginparsep}%
+ \fi
+ \prevdepth\dimen@
+ \fi
+ \else
+ \csname SK@\@currenvir\endcsname
+ \ifSK@equation\else
+ \ifmmode
+ \SK@labx
+ \else
+ \ifinner
+ \rlap\SK@lab
+ \else
+ \vadjust{\llap{\SK@lab\kern\marginparsep}}%
+ \fi
+ \SK@lab@relax
+ \fi
+ \fi
+ \fi}
+\AtBeginDocument{%
+ \let\SK@eqnnum\@eqnnum
+ \@ifpackageloaded{amsmath}{%
+ \let\SK@tagform@\tagform@
+ \let\SK@maketag@@@\maketag@@@
+ \iftagsleft@
+ \def\tagform@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \llap{\SK@lab\kern\marginparsep}%
+ \SK@lab@relax\SK@tagform@{#1}}%
+ \def\maketag@@@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \llap{\SK@lab\kern\marginparsep}\SK@lab@relax
+ \SK@maketag@@@{#1}%
+ }%
+ \def\@eqnnum{%
+ \llap{\SK@lab\kern\displaywidth\kern\marginparsep}%
+ \SK@lab@relax\SK@eqnnum}%
+ \else
+ \def\tagform@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \SK@tagform@{#1}%
+ \rlap{\kern\marginparsep\SK@lab}\SK@lab@relax}%
+ \def\maketag@@@#1{%
+ \ifx\df@label\@empty
+ \SK@lab@relax
+ \else
+ \expandafter\SK@@label\meaning\df@label\SK@
+ \fi
+ \SK@maketag@@@{#1}%
+ \rlap{\kern\marginparsep\SK@lab}\SK@lab@relax
+ }%
+ \def\@eqnnum{\SK@eqnnum\rlap{\kern\marginparsep\SK@lab}%
+ \SK@lab@relax}%
+ \fi
+ }%
+ {%
+ \@ifundefined{ver@leqno.clo}{%
+ \def\@eqnnum{\SK@eqnnum\rlap{\kern\marginparsep\SK@lab}%
+ \SK@lab@relax}%
+ }{%
+ \def\@eqnnum{%
+ \llap{\SK@lab\kern\displaywidth\kern\marginparsep}%
+ \SK@lab@relax\SK@eqnnum}%
+ }%
+ }%
+}
+\def\SK@labx{\rlap\SK@lab\global\let\SK@lab\relax}
+\def\SK@lab@relax{\global\let\SK@lab\relax}\SK@lab@relax
+\newif\ifSK@equation
+\let\SK@equation\SK@equationtrue
+\let\SK@eqnarray\SK@equationtrue
+\toks@\expandafter{\eqnarray}
+\edef\eqnarray{\let\noexpand\tagform@\noexpand\SK@tagform@\the\toks@}
+\let\SK@align\SK@equationtrue
+\let\SK@alignat\SK@equationtrue
+\let\SK@xalignat\SK@equationtrue
+\let\SK@xxalignat\SK@equationtrue
+\let\SK@gather\SK@equationtrue
+\let\SK@multline\SK@equationtrue
+\let\SK@flalign\SK@equationtrue
+\expandafter\let\csname SK@align*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@alignat*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@flalign*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@gather*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@multline*\endcsname\SK@equationtrue
+\expandafter\let\csname SK@equation*\endcsname\SK@equationtrue
+\def\SK@def#1{%
+ \edef\@tempa{\expandafter\@gobble\string#1}%
+ \@ifundefined{\@tempa\space}%
+ {\expandafter\let\csname SK@\@tempa\endcsname#1}%
+ {\expandafter\let\csname SK@\@tempa\expandafter\endcsname
+ \csname\@tempa\space\endcsname}%
+ \expandafter\def\expandafter#1\expandafter{%
+ \expandafter\protect\csname\@tempa\space\endcsname}%
+ \expandafter\def\csname\@tempa\space\endcsname}
+\ifx\SK@ref\@empty
+\AtBeginDocument{%
+ \@ifpackageloaded{varioref}{%
+ \SK@def\@@vpageref#1[#2]#3{{%
+ \let\label\SK@label
+ \SK@@@vpageref{#1}[{#2}]{#3}}}%
+ \def\vr@f#1{%
+ \leavevmode\unskip\vref@space
+ \ref{#1}%
+ {\let\label\SK@label
+ \vpageref[\unskip]{#1}}}%
+ }{}}
+\else
+\AtBeginDocument{%
+ \SK@def\ref#1{\SK@\SK@@ref{#1}\SK@ref{#1}}%
+ \SK@def\pageref#1{\SK@\SK@@ref{#1}\SK@pageref{#1}}%
+ \@ifpackageloaded{varioref}{%
+ \SK@def\@@vpageref#1[#2]#3{{%
+ \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
+ \leavevmode\unskip\SK@\SK@@ref{#3}\SK@@@vpageref{#1}[{#2}]{#3}}}%
+ \def\vr@f#1{%
+ \leavevmode\unskip\vref@space
+ \ref{#1}%
+ \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
+ \vpageref[\unskip]{#1}}%
+ }{}}
+\fi
+\ifx\SK@cite\@empty
+\AtBeginDocument{%
+ \ifx\HAR@checkdef\@undefined\else
+ \expandafter\let\expandafter
+ \SK@HAR@bi\csname\string\harvarditem\endcsname
+ \expandafter\def\csname\string\harvarditem\endcsname[#1]#2#3#4{%
+ \SK@HAR@bi[{#1}]{#2}{#3}{#4}\SK@\SK@@label{#4}}%
+ \fi}
+\else
+\AtBeginDocument{%
+ \ifx\HAR@checkdef\@undefined
+ \ifx\citen\@undefined
+ \SK@def\@citex[#1]#2{\SK@citex[{#1}]{#2}}%
+ \else
+ \SK@def\citen#1{\SK@\SK@@ref{#1}\SK@citen{#1}}%
+ \fi
+ \SK@def\citeauthor#1{\SK@\SK@@ref{#1}\SK@citeauthor{#1}}%
+ \SK@def\citefullauthor#1{\SK@\SK@@ref{#1}\SK@citefullauthor{#1}}%
+ \SK@def\citeyear#1{\SK@\SK@@ref{#1}\SK@citeyear{#1}}%
+ \else
+ \SK@def\HAR@checkdef#1#2{%
+ \expandafter\SK@\expandafter\SK@@ref\expandafter{#1}%
+ \SK@HAR@checkdef{#1}{#2}}%
+ \expandafter\let\expandafter
+ \SK@HAR@bi\csname\string\harvarditem\endcsname
+ \expandafter\def\csname\string\harvarditem\endcsname[#1]#2#3#4{%
+ \SK@HAR@bi[{#1}]{#2}{#3}{#4}\SK@\SK@@label{#4}}%
+ \fi}
+\def\SK@citex[#1]#2{%
+ \SK@\SK@@ref{#2}\SK@@citex[{#1}]{#2}}
+\fi
+\def\SK@@ref#1>#2\SK@{%
+ \leavevmode\vbox to\z@{{%
+ \vss
+ \SK@refcolor
+ \rlap{\vrule\raise .75em%
+ \hbox{\underbar{\normalfont\footnotesize\ttfamily#2}}}}}}
+\endinput
+%%
+%% End of file `showkeys.sty'.
diff --git a/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty b/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
index 4b3d5eb1b01..5accb46049a 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
@@ -38,8 +38,15 @@
%% File: showkeys.dtx Copyright (C) 1992-1997 David Carlisle
%% File: showkeys.dtx Copyright (C) 2006-2019 David Carlisle, LaTeX Project
\NeedsTeXFormat{LaTeX2e}
+
+\providecommand\DeclareRelease[3]{}
+\providecommand\DeclareCurrentRelease[2]{}
+
+\DeclareRelease{}{2014-10-28}{showkeys-2014-10-28.sty}
+\DeclareCurrentRelease{}{2022-06-01}
+
\ProvidesPackage{showkeys}
- [2014/10/28 v3.17 Show cite and label keys (DPC, MH)]
+ [2022/04/12 v3.18 Show cite and label keys (DPC, MH)]
\DeclareOption{notref}{\let\SK@ref\@empty}
\DeclareOption{notcite}{\let\SK@cite\@empty}
\let\SK@refcolor\relax
@@ -204,30 +211,19 @@
\expandafter\protect\csname\@tempa\space\endcsname}%
\expandafter\def\csname\@tempa\space\endcsname}
\ifx\SK@ref\@empty
-\AtBeginDocument{%
- \@ifpackageloaded{varioref}{%
- \SK@def\@@vpageref#1[#2]#3{{%
- \let\label\SK@label
- \SK@@@vpageref{#1}[{#2}]{#3}}}%
- \def\vr@f#1{%
- \leavevmode\unskip\vref@space
- \ref{#1}%
- {\let\label\SK@label
- \vpageref[\unskip]{#1}}}%
- }{}}
\else
\AtBeginDocument{%
- \SK@def\ref#1{\SK@\SK@@ref{#1}\SK@ref{#1}}%
- \SK@def\pageref#1{\SK@\SK@@ref{#1}\SK@pageref{#1}}%
+ \let\@kernel@ref@\@kernel@ref
+ \let\@kernel@sref@\@kernel@sref
+ \SK@def\@kernel@ref#1{\SK@\SK@@ref{#1}\SK@@kernel@ref{#1}}%
+ \SK@def\@kernel@sref#1{\SK@\SK@@ref{#1}\SK@@kernel@sref{#1}}%
+ \SK@def\@kernel@pageref#1{\SK@\SK@@ref{#1}\SK@@kernel@pageref{#1}}%
+ \SK@def\@kernel@spageref#1{\SK@\SK@@ref{#1}\SK@@kernel@spageref{#1}}%
+ \SK@def\@kernel@Ref#1{{\let\@kernel@ref\@kernel@ref@\SK@\SK@@ref{#1}\SK@@kernel@Ref{#1}}}%
+ \SK@def\@kernel@sRef#1{\let\@kernel@sref\@kernel@sref@\SK@\SK@@ref{#1}\SK@@kernel@sRef{#1}}%
\@ifpackageloaded{varioref}{%
\SK@def\@@vpageref#1[#2]#3{{%
- \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
- \leavevmode\unskip\SK@\SK@@ref{#3}\SK@@@vpageref{#1}[{#2}]{#3}}}%
- \def\vr@f#1{%
- \leavevmode\unskip\vref@space
- \ref{#1}%
- \let\label\SK@label\let\ref\SK@ref\let\pageref\SK@pageref
- \vpageref[\unskip]{#1}}%
+ \leavevmode\unskip\SK@\SK@@ref{#3}\SK@@@vpageref{#1}[{#2}]{#3}}}%%
}{}}
\fi
\ifx\SK@cite\@empty