From 0068dc20e7132f24c1bb68957ef6ad5ea5b46157 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 19 May 2022 20:13:40 +0000 Subject: latex-dev (19may22) git-svn-id: svn://tug.org/texlive/trunk@63339 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex-dev/amsmath/amsmath.sty | 88 ++-- Master/texmf-dist/tex/latex-dev/amsmath/amsopn.sty | 80 +-- .../texmf-dist/tex/latex-dev/base/atbegshi-ltx.sty | 4 +- .../tex/latex-dev/base/atveryend-ltx.sty | 2 +- Master/texmf-dist/tex/latex-dev/base/fltrace.sty | 2 + Master/texmf-dist/tex/latex-dev/base/ifthen.sty | 10 +- Master/texmf-dist/tex/latex-dev/base/latex.ltx | 543 ++++++++++++++++--- .../texmf-dist/tex/latex-dev/base/latexrelease.sty | 584 +++++++++++++++++++-- Master/texmf-dist/tex/latex-dev/base/lcyenc.dfu | 2 +- Master/texmf-dist/tex/latex-dev/base/ly1enc.dfu | 2 +- Master/texmf-dist/tex/latex-dev/base/omsenc.dfu | 2 +- Master/texmf-dist/tex/latex-dev/base/ot1enc.dfu | 2 +- Master/texmf-dist/tex/latex-dev/base/ot2enc.dfu | 2 +- Master/texmf-dist/tex/latex-dev/base/slides.cls | 2 +- Master/texmf-dist/tex/latex-dev/base/slides.def | 2 +- .../texmf-dist/tex/latex-dev/base/source2edoc.cls | 13 +- .../tex/latex-dev/base/structuredlog.sty | 2 +- Master/texmf-dist/tex/latex-dev/base/t1enc.dfu | 2 +- Master/texmf-dist/tex/latex-dev/base/t2aenc.dfu | 4 +- Master/texmf-dist/tex/latex-dev/base/t2benc.dfu | 4 +- Master/texmf-dist/tex/latex-dev/base/t2cenc.dfu | 4 +- Master/texmf-dist/tex/latex-dev/base/ts1enc.dfu | 4 +- Master/texmf-dist/tex/latex-dev/base/utf8.def | 2 +- Master/texmf-dist/tex/latex-dev/base/utf8enc.dfu | 4 +- Master/texmf-dist/tex/latex-dev/base/x2enc.dfu | 4 +- .../tex/latex-dev/tools/showkeys-2014-10-28.sty | 272 ++++++++++ Master/texmf-dist/tex/latex-dev/tools/showkeys.sty | 38 +- 27 files changed, 1451 insertions(+), 229 deletions(-) create mode 100644 Master/texmf-dist/tex/latex-dev/tools/showkeys-2014-10-28.sty (limited to 'Master/texmf-dist/tex') 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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} } @@ -15949,6 +16435,16 @@ of this package available from CTAN} \IncludeInRelease{0000/00/00}% {\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}% 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 -- cgit v1.2.3