summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev/base/latexrelease.sty')
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latexrelease.sty11746
1 files changed, 6115 insertions, 5631 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
index 7caf477c37d..af3b8833b6c 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
@@ -8,6 +8,8 @@
%% ltvers.dtx (with options: `latexrelease')
%% latexrelease.dtx (with options: `latexrelease')
%% ltdirchk.dtx (with options: `latexrelease')
+%% ltplain.dtx (with options: `latexrelease')
+%% ltluatex.dtx (with options: `latexrelease')
%% ltexpl.dtx (with options: `latexrelease')
%% ltdefns.dtx (with options: `latexrelease')
%% lthooks.dtx (with options: `latexrelease')
@@ -15,42 +17,39 @@
%% ltcntrl.dtx (with options: `latexrelease')
%% lterror.dtx (with options: `latexrelease')
%% ltpar.dtx (with options: `latexrelease')
+%% ltspace.dtx (with options: `latexrelease')
+%% ltlogos.dtx (with options: `latexrelease')
+%% ltfiles.dtx (with options: `latexrelease')
+%% ltoutenc.dtx (with options: `latexrelease')
+%% ltcounts.dtx (with options: `latexrelease')
+%% ltlength.dtx (with options: `latexrelease')
+%% ltfssbas.dtx (with options: `latexrelease')
+%% ltfssaxes.dtx (with options: `latexrelease')
+%% ltfsstrc.dtx (with options: `latexrelease')
+%% ltfssdcl.dtx (with options: `latexrelease')
+%% ltfssini.dtx (with options: `latexrelease')
+%% fontdef.dtx (with options: `latexrelease')
+%% ltfntcmd.dtx (with options: `latexrelease')
+%% lttextcomp.dtx (with options: `latexrelease')
+%% ltpageno.dtx (with options: `latexrelease')
+%% ltxref.dtx (with options: `latexrelease')
+%% ltmiscen.dtx (with options: `latexrelease')
+%% ltmath.dtx (with options: `latexrelease')
%% ltlists.dtx (with options: `latexrelease')
%% ltboxes.dtx (with options: `latexrelease')
%% lttab.dtx (with options: `latexrelease')
-%% ltmath.dtx (with options: `latexrelease')
%% ltpictur.dtx (with options: `latexrelease')
%% ltthm.dtx (with options: `latexrelease')
%% ltsect.dtx (with options: `latexrelease')
-%% ltfiles.dtx (with options: `latexrelease')
-%% ltoutenc.dtx (with options: `latexrelease')
-%% ltcounts.dtx (with options: `latexrelease')
-%% ltlength.dtx (with options: `latexrelease')
%% ltfloat.dtx (with options: `latexrelease')
%% ltidxglo.dtx (with options: `latexrelease')
%% ltbibl.dtx (with options: `latexrelease')
%% ltpage.dtx (with options: `latexrelease')
+%% ltclass.dtx (with options: `latexrelease,tracerollback')
%% ltfilehook.dtx (with options: `latexrelease')
%% ltshipout.dtx (with options: `latexrelease')
%% ltoutput.dtx (with options: `latexrelease')
-%% ltclass.dtx (with options: `latexrelease,tracerollback')
-%% ltspace.dtx (with options: `latexrelease')
-%% ltlogos.dtx (with options: `latexrelease')
-%% ltplain.dtx (with options: `latexrelease')
-%% ltfssdcl.dtx (with options: `latexrelease')
-%% ltfssini.dtx (with options: `latexrelease')
-%% fontdef.dtx (with options: `latexrelease')
-%% ltfntcmd.dtx (with options: `latexrelease')
-%% lttextcomp.dtx (with options: `latexrelease')
-%% ltfssbas.dtx (with options: `latexrelease')
-%% ltfssaxes.dtx (with options: `latexrelease')
-%% ltfsstrc.dtx (with options: `latexrelease')
%% ltfsscmp.dtx (with options: `latexrelease')
-%% ltpageno.dtx (with options: `latexrelease')
-%% ltxref.dtx (with options: `latexrelease')
-%% ltmiscen.dtx (with options: `latexrelease')
-%% ltluatex.dtx (with options: `latexrelease')
-%% ltexpl.dtx (with options: `latexrelease')
%% ltfinal.dtx (with options: `latexrelease')
%%
%% This is a generated file.
@@ -60,7 +59,7 @@
%% (but please observe conditions on bug reports sent to that address!)
%%
%%
-%% Copyright (C) 1993-2020
+%% Copyright (C) 1993-2021
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -239,10 +238,10 @@
}
\def\pkgcls@rollbackdate@error#1{%
\@latex@error{Suspicious rollback date given}%
- {The \@cls@pkg\space'\@currname' claims that it
- came into existence on #1 which\MessageBreak
+ {The \@cls@pkg\space'\@currname' has no rollback data
+ before #1 which\MessageBreak
is after your requested rollback date --- so
- something is wrong here.\MessageBreak
+ something may be wrong here.\MessageBreak
Continue and we use the earliest known release.}}
\def\DeclareCurrentRelease#1#2{%
\ifnum\pkgcls@targetdate>\z@ % some sort of rollback request
@@ -330,7 +329,7 @@
\PackageError{latexrelease}{skipped IncludeInRelease for tag \string#2}{}%
\fi}
\ProvidesPackage{latexrelease}
- [2018/05/08 v1.0k LaTeX release emulation and tests
+ [2020/12/06 v1.0k LaTeX release emulation and tests
(including releases up to \latexreleaseversion)]
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\DeclareOption*{%
@@ -446,8 +445,558 @@ of this package available from CTAN}
\fi
\edef\filename@base{#1}}
\EndIncludeInRelease
+%%% From File: ltplain.dtx
+\IncludeInRelease{2015/01/01}%
+ {\newcount}{Extended Allocation}%
+\def\newcount {\e@alloc\count \countdef {\count10}\insc@unt\float@count}
+\def\newdimen {\e@alloc\dimen \dimendef {\count11}\insc@unt\float@count}
+\def\newskip {\e@alloc\skip \skipdef {\count12}\insc@unt\float@count}
+\def\newmuskip
+ {\e@alloc\muskip\muskipdef{\count13}\m@ne\e@alloc@top}
+\def\newbox {\e@alloc\box
+ {\ifnum\allocationnumber<\@cclvi
+ \expandafter\chardef
+ \else
+ \expandafter\e@alloc@chardef
+ \fi}
+ {\count14}\insc@unt\float@count}
+\def\newtoks {\e@alloc\toks \toksdef{\count15}\m@ne\e@alloc@top}
+\def\newread {\e@alloc\read \chardef{\count16}\m@ne\sixt@@n}
+\ifx\directlua\@undefined
+ \def\newwrite {\e@alloc\write \chardef{\count17}\m@ne\sixt@@n}
+\else
+ \def\newwrite {\e@alloc\write
+ {\ifnum\allocationnumber=18
+ \advance\count17\@ne
+ \allocationnumber\count17 %
+ \fi
+ \global\chardef}%
+ {\count17}%
+ \m@ne
+ {128}}
+\fi
+\def\new@mathgroup
+ {\e@alloc\mathgroup\chardef{\count18}\m@ne\e@mathgroup@top}
+\let\newfam\new@mathgroup
+\ifx\directlua\@undefined
+ \def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne\@cclvi}
+\else
+ \def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne{16384}}
+\fi
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\newcount}{Extended Allocation}%
+\def\newcount{\alloc@0\count\countdef\insc@unt}
+\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
+\def\newskip{\alloc@2\skip\skipdef\insc@unt}
+\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
+\def\newbox{\alloc@4\box\chardef\insc@unt}
+\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
+\def\newread{\alloc@6\read\chardef\sixt@@n}
+\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\def\new@mathgroup{\alloc@8\fam\chardef\sixt@@n}
+\def\newlanguage{\alloc@9\language\chardef\@cclvi}
+\let\newfam\new@mathgroup
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\e@alloc@chardef}{Extended Allocation}%
+\ifx\directlua\@undefined
+ \ifx\widowpenalties\@undefined
+ \mathchardef\e@alloc@top=255
+ \let\e@alloc@chardef\chardef
+ \else
+ \mathchardef\e@alloc@top=32767
+ \let\e@alloc@chardef\mathchardef
+ \fi
+\else
+ \chardef\e@alloc@top=65535
+ \let\e@alloc@chardef\chardef
+\fi
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\e@alloc@chardef}{Extended Allocation}%
+\let\e@alloc@top\@undefined
+\let\e@alloc@chardef\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\e@mathgroup@top}{Extended Allocation}%
+\ifx\Umathcode\@undefined
+ \chardef\e@mathgroup@top=16
+\else
+ \chardef\e@mathgroup@top=256
+\fi
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\e@mathgroup@top}{Extended Allocation}%
+\let\e@mathgroup@top\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\e@alloc}{Extended Allocation}%
+\def\e@alloc#1#2#3#4#5#6{%
+ \global\advance#3\@ne
+ \e@ch@ck{#3}{#4}{#5}#1%
+ \allocationnumber#3\relax
+ \global#2#6\allocationnumber
+ \wlog{\string#6=\string#1\the\allocationnumber}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\e@alloc}{Extended Allocation}%
+\let\e@alloc\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/10/01}
+ {\e@ch@ck}{Extended Allocation (checking)}%
+\gdef\e@ch@ck#1#2#3#4{%
+ \ifnum#1<#2\else
+ \ifnum#1=#2\relax
+ \global#1\@cclvi
+ \ifx\count#4\global\advance#1 10 \fi
+ \fi
+ \ifnum#1<#3\relax
+ \else
+ \errmessage{No room for a new \string#4}%
+ \fi
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\e@ch@ck}{Extended Allocation (checking)}%
+\gdef\e@ch@ck#1#2#3#4{%
+ \ifnum#1<#2\else
+ \ifnum#1=#2\relax
+ #1\@cclvi
+ \ifx\count#4\advance#1 10 \fi
+ \fi
+ \ifnum#1<#3\relax
+ \else
+ \errmessage{No room for a new #4}%
+ \fi
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\e@ch@ck}{Extended Allocation (checking)}%
+\let\e@ch@ck\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\extrafloats}{Extra floats}%
+\let\float@count\e@alloc@top
+\ifx\numexpr\@undefined
+\def\extrafloats#1{%
+\count@#1\relax
+\ifnum\count@>\z@
+\newinsert\reserved@a
+\global\expandafter\chardef
+ \csname bx@\the\allocationnumber\endcsname\allocationnumber
+\@cons\@freelist{\csname bx@\the\allocationnumber\endcsname}%
+\advance\count@\m@ne
+\expandafter\extrafloats
+\expandafter\count@
+\fi
+}%
+\else
+\def\extrafloats#1{%
+\ifnum#1>\z@
+\count@\numexpr\float@count-1\relax
+ \ch@ck0\count@\count
+ \ch@ck1\count@\dimen
+ \ch@ck2\count@\skip
+ \ch@ck4\count@\box
+\global\e@alloc@chardef\float@count\count@
+\global\expandafter\e@alloc@chardef
+ \csname bx@\the\float@count\endcsname\float@count
+\@cons\@freelist{\csname bx@\the\float@count\endcsname}%
+\expandafter
+\extrafloats\expandafter{\numexpr#1-1\relax}%
+\fi}%
+\fi
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\extrafloats}{Extra floats}%
+\let\float@count\@undefined
+\let\extrafloats\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}
+ {\alloc@}{emulate alloc@}%
+\def\alloc@#1#2#3#4{\e@alloc#2#3{\count1#1}#4\float@count}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\alloc@}{emulate alloc@}%
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1\@ne
+ \ch@ck#1#4#2%
+ \allocationnumber\count1#1%
+ \global#3#5\allocationnumber
+ \wlog{\string#5=\string#2\the\allocationnumber}}
+\EndIncludeInRelease
+\IncludeInRelease{2015/10/01}
+ {\newinsert}{Extended \newinsert}%
+\ifx\numexpr\@undefined
+\def\newinsert#1{\global\advance\insc@unt \m@ne
+ \ch@ck0\insc@unt\count
+ \ch@ck1\insc@unt\dimen
+ \ch@ck2\insc@unt\skip
+ \ch@ck4\insc@unt\box
+ \allocationnumber\insc@unt
+ \global\chardef#1\allocationnumber
+ \wlog{\string#1=\string\insert\the\allocationnumber}}
+\else
+\ifx\directlua\@undefined
+ \chardef\e@insert@top255
+\else
+ \chardef\e@insert@top\e@alloc@top
+\fi
+\def\newinsert#1{%
+\@tempswafalse
+\global\advance\insc@unt\m@ne
+\ifnum\count10<\insc@unt
+\ifnum\count11<\insc@unt
+\ifnum\count12<\insc@unt
+\ifnum\count14<\insc@unt
+ \@tempswatrue
+\fi\fi\fi\fi
+\if@tempswa
+\allocationnumber\insc@unt
+\else
+\global\advance\insc@unt\@ne
+ \extrafloats\@ne
+ \@next\@currbox\@freelist
+ {\ifnum\@currbox<\e@insert@top
+ \allocationnumber\@currbox
+ \else
+ \ch@ck0\m@ne\insert
+ \fi}%
+ {\ch@ck0\m@ne\insert}%
+\fi
+\global\chardef#1\allocationnumber
+\wlog{\string#1=\string\insert\the\allocationnumber}%
+}
+\fi
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\newinsert}{Extended \newinsert}%
+\let\e@insert@top\@undefined
+\def\newinsert#1{\global\advance\insc@unt \m@ne
+ \ch@ck0\insc@unt\count
+ \ch@ck1\insc@unt\dimen
+ \ch@ck2\insc@unt\skip
+ \ch@ck4\insc@unt\box
+ \allocationnumber\insc@unt
+ \global\chardef#1\allocationnumber
+ \wlog{\string#1=\string\insert\the\allocationnumber}}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\loggingall}{etex tracing}%
+\ifx\tracingscantokens\@undefined
+\gdef\loggingall{%
+ \tracingstats\tw@
+ \tracingpages\@ne
+ \tracinglostchars\@ne
+ \tracingparagraphs\@ne
+ \errorcontextlines\maxdimen
+ \loggingoutput
+ \tracingmacros\tw@
+ \tracingcommands\tw@
+ \tracingrestores\@ne
+ }%
+\else
+\gdef\loggingall{%
+ \tracingstats\tw@
+ \tracingpages\@ne
+ \tracinglostchars\tw@
+ \tracingparagraphs\@ne
+ \tracinggroups\@ne
+ \tracingifs\@ne
+ \tracingscantokens\@ne
+ \tracingnesting\@ne
+ \errorcontextlines\maxdimen
+ \loggingoutput
+ \tracingmacros\tw@
+ \tracingcommands\thr@@
+ \tracingrestores\@ne
+ \tracingassigns\@ne
+}%
+\fi
+\gdef\tracingall{\showoverfull\loggingall}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\loggingall}{etex tracing}%
+\gdef\loggingall{\tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne\tracinglostchars\@ne
+ \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
+ \errorcontextlines\maxdimen\loggingoutput}
+ \gdef\tracingall{\loggingall\showoverfull}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\tracingnone}%
+ {turn off etex tracing}%
+\ifx\tracingscantokens\@undefined
+\def\tracingnone{%
+ \tracingonline\z@
+ \tracingcommands\z@
+ \showboxdepth\m@ne
+ \showboxbreadth\m@ne
+ \tracingoutput\z@
+ \errorcontextlines\m@ne
+ \tracingrestores\z@
+ \tracingparagraphs\z@
+ \tracingmacros\z@
+ \tracinglostchars\@ne
+ \tracingpages\z@
+ \tracingstats\z@
+}%
+\else
+\def\tracingnone{%
+ \tracingassigns\z@
+ \tracingrestores\z@
+ \tracingonline\z@
+ \tracingcommands\z@
+ \showboxdepth\m@ne
+ \showboxbreadth\m@ne
+ \tracingoutput\z@
+ \errorcontextlines\m@ne
+ \tracingnesting\z@
+ \tracingscantokens\z@
+ \tracingifs\z@
+ \tracinggroups\z@
+ \tracingparagraphs\z@
+ \tracingmacros\z@
+ \tracinglostchars\@ne
+ \tracingpages\z@
+ \tracingstats\z@
+}%
+\fi
+\def\hideoutput{%
+ \tracingoutput\z@
+ \showboxbreadth\m@ne
+ \showboxdepth\m@ne
+ \tracingonline\m@ne
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\tracingnone}%
+ {turn off etex tracing}%
+\let\tracingnone\@undefined
+\let\hideoutput\@undefined
+\EndIncludeInRelease
+\ifx\directlua\@undefined\else
+\IncludeInRelease{2015/10/01}
+ {\newluafunction}{LuaTeX}%
+\ifnum\luatexversion<60 %
+ \wlog{***************************************************}
+ \wlog{* LuaTeX version too old for ltluatex support *}
+ \wlog{***************************************************}
+ \expandafter\endinput
+\fi
+\long\def\@gobble#1{}
+\long\def\@firstofone#1{#1}
+\ifx\e@alloc@attribute@count\@undefined
+ \countdef\e@alloc@attribute@count=258
+ \e@alloc@attribute@count=\z@
+\fi
+\def\newattribute#1{%
+ \e@alloc\attribute\attributedef
+ \e@alloc@attribute@count\m@ne\e@alloc@top#1%
+}
+\def\setattribute#1#2{#1=\numexpr#2\relax}
+\def\unsetattribute#1{#1=-"7FFFFFFF\relax}
+\ifx\e@alloc@ccodetable@count\@undefined
+ \countdef\e@alloc@ccodetable@count=259
+ \e@alloc@ccodetable@count=\z@
+\fi
+\def\newcatcodetable#1{%
+ \e@alloc\catcodetable\chardef
+ \e@alloc@ccodetable@count\m@ne{"8000}#1%
+ \initcatcodetable\allocationnumber
+}
+\newcatcodetable\catcodetable@initex
+\newcatcodetable\catcodetable@string
+\begingroup
+ \def\setrangecatcode#1#2#3{%
+ \ifnum#1>#2 %
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \catcode#1=#3 %
+ \expandafter\setrangecatcode\expandafter
+ {\number\numexpr#1 + 1\relax}{#2}{#3}
+ }%
+ }
+ \@firstofone{%
+ \catcodetable\catcodetable@initex
+ \catcode0=12 %
+ \catcode13=12 %
+ \catcode37=12 %
+ \setrangecatcode{65}{90}{12}%
+ \setrangecatcode{97}{122}{12}%
+ \catcode92=12 %
+ \catcode127=12 %
+ \savecatcodetable\catcodetable@string
+ \endgroup
+ }%
+\newcatcodetable\catcodetable@latex
+\newcatcodetable\catcodetable@atletter
+\begingroup
+ \def\parseunicodedataI#1;#2;#3;#4\relax{%
+ \parseunicodedataII#1;#3;#2 First>\relax
+ }%
+ \def\parseunicodedataII#1;#2;#3 First>#4\relax{%
+ \ifx\relax#4\relax
+ \expandafter\parseunicodedataIII
+ \else
+ \expandafter\parseunicodedataIV
+ \fi
+ {#1}#2\relax%
+ }%
+ \def\parseunicodedataIII#1#2#3\relax{%
+ \ifnum 0%
+ \if L#21\fi
+ \if M#21\fi
+ >0 %
+ \catcode"#1=11 %
+ \fi
+ }%
+ \def\parseunicodedataIV#1#2#3\relax{%
+ \read\unicoderead to \unicodedataline
+ \if L#2%
+ \count0="#1 %
+ \expandafter\parseunicodedataV\unicodedataline\relax
+ \fi
+ }%
+ \def\parseunicodedataV#1;#2\relax{%
+ \loop
+ \unless\ifnum\count0>"#1 %
+ \catcode\count0=11 %
+ \advance\count0 by 1 %
+ \repeat
+ }%
+ \def\storedpar{\par}%
+ \chardef\unicoderead=\numexpr\count16 + 1\relax
+ \openin\unicoderead=UnicodeData.txt %
+ \loop\unless\ifeof\unicoderead %
+ \read\unicoderead to \unicodedataline
+ \unless\ifx\unicodedataline\storedpar
+ \expandafter\parseunicodedataI\unicodedataline\relax
+ \fi
+ \repeat
+ \closein\unicoderead
+ \@firstofone{%
+ \catcode64=12 %
+ \savecatcodetable\catcodetable@latex
+ \catcode64=11 %
+ \savecatcodetable\catcodetable@atletter
+ }
+\endgroup
+\ifx\e@alloc@luafunction@count\@undefined
+ \countdef\e@alloc@luafunction@count=260
+ \e@alloc@luafunction@count=\z@
+\fi
+\def\newluafunction{%
+ \e@alloc\luafunction\e@alloc@chardef
+ \e@alloc@luafunction@count\m@ne\e@alloc@top
+}
+\ifx\e@alloc@whatsit@count\@undefined
+ \countdef\e@alloc@whatsit@count=261
+ \e@alloc@whatsit@count=\z@
+\fi
+\def\newwhatsit#1{%
+ \e@alloc\whatsit\e@alloc@chardef
+ \e@alloc@whatsit@count\m@ne\e@alloc@top#1%
+}
+\ifx\e@alloc@bytecode@count\@undefined
+ \countdef\e@alloc@bytecode@count=262
+ \e@alloc@bytecode@count=\z@
+\fi
+\def\newluabytecode#1{%
+ \e@alloc\luabytecode\e@alloc@chardef
+ \e@alloc@bytecode@count\m@ne\e@alloc@top#1%
+}
+
+\ifx\e@alloc@luachunk@count\@undefined
+ \countdef\e@alloc@luachunk@count=263
+ \e@alloc@luachunk@count=\z@
+\fi
+\def\newluachunkname#1{%
+ \e@alloc\luachunk\e@alloc@chardef
+ \e@alloc@luachunk@count\m@ne\e@alloc@top#1%
+ {\escapechar\m@ne
+ \directlua{lua.name[\the\allocationnumber]="\string#1"}}%
+}
+\def\now@and@everyjob#1{%
+ \everyjob\expandafter{\the\everyjob
+ #1%
+ }%
+ #1%
+}
+ \begingroup
+ \attributedef\attributezero=0 %
+ \chardef \charzero =0 %
+ \countdef \CountZero =0 %
+ \dimendef \dimenzero =0 %
+ \mathchardef \mathcharzero =0 %
+ \muskipdef \muskipzero =0 %
+ \skipdef \skipzero =0 %
+ \toksdef \tokszero =0 %
+ \directlua{require("ltluatex")}
+ \endgroup
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}
+ {\newluafunction}{LuaTeX}%
+\let\e@alloc@attribute@count\@undefined
+\let\newattribute\@undefined
+\let\setattribute\@undefined
+\let\unsetattribute\@undefined
+\let\e@alloc@ccodetable@count\@undefined
+\let\newcatcodetable\@undefined
+\let\catcodetable@initex\@undefined
+\let\catcodetable@string\@undefined
+\let\catcodetable@latex\@undefined
+\let\catcodetable@atletter\@undefined
+\let\e@alloc@luafunction@count\@undefined
+\let\newluafunction\@undefined
+\let\e@alloc@luafunction@count\@undefined
+\let\newwhatsit\@undefined
+\let\e@alloc@whatsit@count\@undefined
+\let\newluabytecode\@undefined
+\let\e@alloc@bytecode@count\@undefined
+\let\newluachunkname\@undefined
+\let\e@alloc@luachunk@count\@undefined
+\directlua{luatexbase.uninstall()}
+\EndIncludeInRelease
+\IncludeInRelease{2017/01/01}%
+ {\fontencoding}{TU in everyjob}%
+\fontencoding{TU}\let\encodingdefault\f@encoding
+\ifx\directlua\@undefined\else
+ \directlua{%
+ if xpcall(function ()%
+ require('luaotfload-main')%
+ end,texio.write_nl) then %
+ local _void = luaotfload.main ()%
+ else %
+ texio.write_nl('Error in luaotfload: reverting to OT1')%
+ tex.print('\string\\def\string\\encodingdefault{OT1}')%
+ end %
+ }%
+ \let\f@encoding\encodingdefault
+ \expandafter\let\csname ver@luaotfload.sty\endcsname\fmtversion
+\fi
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\fontencoding}{TU in everyjob}%
+\fontencoding{OT1}\let\encodingdefault\f@encoding
+\EndIncludeInRelease
+\fi
%%% From File: ltexpl.dtx
\IncludeInRelease{2020/10/01}%
+ {kernel@enddocument hooks}{Define kernel enddocument Hooks}%
+\let\@kernel@after@enddocument\@empty
+\let\@kernel@after@enddocument@afterlastpage\@empty
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {kernel@enddocument hooks}{Define kernel enddocument Hooks}%
+\let\@kernel@after@enddocument\@undefined
+\let\@kernel@after@enddocument@afterlastpage\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@expl@sys@load@backend@@}{Roll forward support}%
+\def\@expl@sys@load@backend@@{}
+\def\@expl@push@filename@@{}
+\def\@expl@push@filename@aux@@{}
+\def\@expl@pop@filename@@{}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
{expl3}{Pre-load expl3}%
\expandafter\ifx\csname tex\string _let:D\endcsname\relax
\expandafter\@firstofone
@@ -478,8 +1027,14 @@ of this package available from CTAN}
\fi
}
{%
- \@latex@error{LaTeX requires expl3}\@ehd
- \@gobble
+ \@latex@warning@no@line
+ {You need a format that already contains a recent\MessageBreak
+ expl3 as part of the kernel, e.g. at least a kernel\MessageBreak
+ from 2019 to roll forward to that date!\MessageBreak
+ --- I'm giving up!\MessageBreak\MessageBreak
+ Note that manually loading the expl3 package\MessageBreak
+ from your distribution is not enough}%
+ \@@end % die
}%
{%
\input expl3.ltx
@@ -513,9 +1068,17 @@ of this package available from CTAN}
}%
\input{expl3.ltx}
\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\NewDocumentCommand}{Emergency loading xparse}%
+
+\ifdefined\NewDocumentCommand \else
+ \RequirePackage{xparse}
+\fi
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}{\@expl@cs@to@str@@N}%
+ {expl3 macros added for the 2020-10-01 release}%
\ExplSyntaxOn
-\IncludeInRelease{2020/10/01}{expl3~2020-10-01}%
- {expl3~macros~added~for~the~2020-10-01~release}%
\cs_gset_eq:NN \@expl@cs@to@str@@N \cs_to_str:N
\cs_gset_eq:NN \@expl@str@if@eq@@nnTF \str_if_eq:nnTF
\cs_gset_eq:NN \@expl@cs@prefix@spec@@N \cs_prefix_spec:N
@@ -523,17 +1086,17 @@ of this package available from CTAN}
\cs_gset_eq:NN \@expl@cs@replacement@spec@@N \cs_replacement_spec:N
\cs_gset_eq:NN \@expl@str@map@function@@NN \str_map_function:NN
\cs_gset_eq:NN \@expl@char@generate@@nn \char_generate:nn
+\ExplSyntaxOff
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{expl3~2020-10-01}%
- {expl3~macros~added~for~the~2020-10-01~release}%
-\cs_undefine:N \@expl@cs@to@str@@N
-\cs_undefine:N \@expl@str@if@eq@@nnTF
-\cs_undefine:N \@expl@cs@prefix@spec@@N
-\cs_undefine:N \@expl@cs@argument@spec@@N
-\cs_undefine:N \@expl@cs@replacement@spec@@N
-\cs_undefine:N \@expl@str@map@function@@NN
+\IncludeInRelease{0000/00/00}{\@expl@cs@to@str@@N}%
+ {expl3 macros added for the 2020-10-01 release}%
+\let \@expl@cs@to@str@@N \@undefined
+\let \@expl@str@if@eq@@nnTF \@undefined
+\let \@expl@cs@prefix@spec@@N \@undefined
+\let \@expl@cs@argument@spec@@N \@undefined
+\let \@expl@cs@replacement@spec@@N \@undefined
+\let \@expl@str@map@function@@NN \@undefined
\EndIncludeInRelease
-\ExplSyntaxOff
%%% From File: ltdefns.dtx
\IncludeInRelease{2020/10/01}%
{\typeout}{Allow "par" in \typeout}%
@@ -548,6 +1111,12 @@ of this package available from CTAN}
\def\typeout#1{\begingroup\set@display@protect
\immediate\write\@unused{#1}\endgroup}
\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}{\@carcube}{Make \@carcube long}%
+\long\def\@carcube#1#2#3#4\@nil{#1#2#3}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@carcube}{Undo: Make \@carcube long}%
+\def\@carcube#1#2#3#4\@nil{#1#2#3}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}{\MakeRobust}{\MakeRobust}%
\def\MakeRobust#1{%
\count@=\escapechar
@@ -1008,11 +1577,11 @@ of this package available from CTAN}
\EndIncludeInRelease
%%
-%% File: lthooks.dtx (C) Copyright 2020 Frank Mittelbach,
+%% File: lthooks.dtx (C) Copyright 2020,2021 Frank Mittelbach,
%% Phelype Oleinik & LaTeX Team
%%% From File: lthooks.dtx
-\def\lthooksversion{v1.0e}
-\def\lthooksdate{2020/10/23}
+\def\lthooksversion{v1.0h}
+\def\lthooksdate{2021/01/07}
\IncludeInRelease{2020/10/01}%
{\NewHook}{The hook management}%
\ExplSyntaxOn
@@ -1051,6 +1620,34 @@ of this package available from CTAN}
\cs_generate_variant:Nn \tl_show:n { x }
\cs_generate_variant:Nn \tl_log:n { x }
\scan_new:N \s__hook_mark
+\cs_new_protected:Npn \__hook_tl_set:Nn #1#2
+ { \cs_set_nopar:Npx #1 { \__kernel_exp_not:w {#2} } }
+\cs_new_protected:Npn \__hook_tl_set:Nx #1#2
+ { \cs_set_nopar:Npx #1 {#2} }
+\cs_generate_variant:Nn \__hook_tl_set:Nn { c }
+\cs_generate_variant:Nn \__hook_tl_set:Nx { c }
+\cs_new_protected:Npn \__hook_tl_gset:Nn #1#2
+ { \cs_gset_nopar:Npx #1 { \__kernel_exp_not:w {#2} } }
+\cs_new_protected:Npn \__hook_tl_gset:No #1#2
+ { \cs_gset_nopar:Npx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } }
+\cs_new_protected:Npn \__hook_tl_gset:Nx #1#2
+ { \cs_gset_nopar:Npx #1 {#2} }
+\cs_generate_variant:Nn \__hook_tl_gset:Nn { c }
+\cs_generate_variant:Nn \__hook_tl_gset:No { c }
+\cs_generate_variant:Nn \__hook_tl_gset:Nx { c }
+\cs_new_protected:Npn \__hook_tl_gput_right:Nn #1#2
+ { \__hook_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } }
+\cs_generate_variant:Nn \__hook_tl_gput_right:Nn { No, cn }
+\cs_new_protected:Npn \__hook_tl_gput_left:Nn #1#2
+ {
+ \__hook_tl_gset:Nx #1
+ { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} }
+ }
+\cs_generate_variant:Nn \__hook_tl_gput_left:Nn { No }
+\cs_new_eq:NN \__hook_tl_gset_eq:NN \tl_gset_eq:NN
+\cs_new_protected:Npn \__hook_tl_gclear:N #1
+ { \__hook_tl_gset_eq:NN #1 \c_empty_tl }
+\cs_generate_variant:Nn \__hook_tl_gclear:N { c }
\cs_new_protected:Npn \hook_new:n #1
{ \__hook_normalize_hook_args:Nn \__hook_new:n {#1} }
\cs_new_protected:Npn \__hook_new:n #1
@@ -1071,6 +1668,7 @@ of this package available from CTAN}
\__hook_if_exist:nF {#1}
{
\prop_new:c { g__hook_#1_code_prop }
+ \tl_new:c { __hook_toplevel~#1 }
\tl_new:c { __hook_next~#1 }
}
}
@@ -1085,59 +1683,58 @@ of this package available from CTAN}
{ \hook_new:n {#1} \hook_new_reversed:n {#2} }
\cs_new_protected:Npn \__hook_include_legacy_code_chunk:n #1
{
- \debug_suspend:
\tl_if_exist:cT { @#1hook }
{
\tl_if_empty:cF { @#1hook }
{
\exp_args:Nnnv \__hook_hook_gput_code_do:nnn {#1}
{ legacy } { @#1hook }
- \tl_gclear:c { @#1hook }
+ \__hook_tl_gclear:c { @#1hook }
}
}
- \debug_resume:
}
\cs_new:Npn \__hook_parse_label_default:n #1
{
\tl_if_novalue:nTF {#1}
- { \__hook_currname_or_default:n { top-level } }
- {
- \tl_trim_spaces_apply:nN {#1}
- \__hook_parse_dot_label:nn { top-level }
- }
+ { \__hook_currname_or_default: }
+ { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:n }
}
-\cs_new:Npn \__hook_parse_dot_label:nn #1 #2
+\cs_new:Npn \__hook_parse_dot_label:n #1
{
\tl_if_empty:nTF {#1}
{
- \msg_expandable_error:nnn { hooks } { empty-label } {#2}
- #2
+ \msg_expandable_error:nn { hooks } { empty-label }
+ \__hook_currname_or_default:
}
{
\str_if_eq:nnTF {#1} { . }
- { \__hook_currname_or_default:n {#2} }
- { \__hook_parse_dot_label:nw {#2} #1 ./ \s__hook_mark }
+ { \__hook_currname_or_default: }
+ { \__hook_parse_dot_label:w #1 ./ \s__hook_mark }
}
}
-\cs_new:Npn \__hook_parse_dot_label:nw #1 #2 ./ #3 \s__hook_mark
+\cs_new:Npn \__hook_parse_dot_label:w #1 ./ #2 \s__hook_mark
{
- \tl_if_empty:nTF {#2}
- { \__hook_parse_dot_label_aux:nw {#1} #3 \s__hook_mark }
+ \tl_if_empty:nTF {#1}
+ { \__hook_parse_dot_label_aux:w #2 \s__hook_mark }
{
- \tl_if_empty:nTF {#3}
- { \__hook_make_name:n {#2} }
- { \__hook_parse_dot_label_cleanup:w #2 ./ #3 \s__hook_mark }
+ \tl_if_empty:nTF {#2}
+ { \__hook_make_name:n {#1} }
+ { \__hook_parse_dot_label_cleanup:w #1 ./ #2 \s__hook_mark }
}
}
\cs_new:Npn \__hook_parse_dot_label_cleanup:w #1 ./ \s__hook_mark {#1}
-\cs_new:Npn \__hook_parse_dot_label_aux:nw #1 #2 ./ \s__hook_mark
- { \__hook_currname_or_default:n {#1} / \__hook_make_name:n {#2} }
-\cs_new:Npn \__hook_currname_or_default:n #1
+\cs_new:Npn \__hook_parse_dot_label_aux:w #1 ./ \s__hook_mark
+ { \__hook_currname_or_default: / \__hook_make_name:n {#1} }
+\cs_new:Npn \__hook_currname_or_default:
{
\tl_if_empty:NTF \g__hook_hook_curr_name_tl
{
\tl_if_empty:NTF \@currname
- { \__hook_make_name:n {#1} }
+ {
+ \msg_expandable_error:nnn { hooks } { should-not-happen }
+ { Empty~default~label. }
+ \__hook_make_name:n { label-missing }
+ }
{ \@currname }
}
{ \g__hook_hook_curr_name_tl }
@@ -1207,12 +1804,23 @@ of this package available from CTAN}
\hook_if_exist:nF {#1} { undeclared~ }
hook~ #1~ (#2)
\on@line\space <-~ \tl_to_str:n{#3}} }
- \prop_get:cnNTF { g__hook_#1_code_prop } {#2} \l__hook_return_tl
+ \str_if_eq:nnTF {#2} { top-level }
{
- \prop_gput:cno { g__hook_#1_code_prop } {#2}
- { \l__hook_return_tl #3 }
+ \str_if_eq:eeTF { top-level } { \__hook_currname_or_default: }
+ {
+ \__hook_declare:n {#1}
+ \__hook_tl_gput_right:cn { __hook_toplevel~#1 } {#3}
+ }
+ { \msg_error:nnn { hooks } { misused-top-level } {#1} }
+ }
+ {
+ \prop_get:cnNTF { g__hook_#1_code_prop } {#2} \l__hook_return_tl
+ {
+ \prop_gput:cno { g__hook_#1_code_prop } {#2}
+ { \l__hook_return_tl #3 }
+ }
+ { \prop_gput:cnn { g__hook_#1_code_prop } {#2} {#3} }
}
- { \prop_gput:cnn { g__hook_#1_code_prop } {#2} {#3} }
}
\cs_new_protected:Npn \__hook_gput_undeclared_hook:nnn #1 #2 #3
{
@@ -1285,11 +1893,11 @@ of this package available from CTAN}
{ \__hook_strip_double_slash:n {#1} }
\cs_new:Npn \__hook_strip_double_slash:n #1
{ \__hook_strip_double_slash:w #1 // \s__hook_mark }
-\cs_new:Npn \__hook_strip_double_slash:w #1 // #2 \s__hook_mark
+\cs_new:Npn \__hook_strip_double_slash:w #1/#2/#3 // #4 \s__hook_mark
{
- \tl_if_empty:nTF {#2}
- {#1}
- { \__hook_strip_double_slash:w #1 / #2 \s__hook_mark }
+ \tl_if_empty:nTF {#4}
+ { #1/#2/#3 }
+ { \__hook_strip_double_slash:w #1/#2/#3 / #4 \s__hook_mark }
}
\prop_const_from_keyval:Nn \c__hook_generics_prop
{env=,file=,package=,class=,include=}
@@ -1303,12 +1911,20 @@ of this package available from CTAN}
\__hook_if_exist:nTF {#1}
{
\str_if_eq:nnTF {#2} {*}
- { \prop_gclear:c { g__hook_#1_code_prop } }
{
- \prop_get:cnNTF { g__hook_#1_code_prop } {#2} \l__hook_return_tl
- { \__hook_gremove_code_do:nn }
- { \__hook_mark_removal:nn }
- {#1} {#2}
+ \prop_gclear:c { g__hook_#1_code_prop }
+ \__hook_tl_gclear:c { __hook_toplevel~#1 }
+ \__hook_tl_gclear:c { __hook_next~#1 }
+ }
+ {
+ \str_if_eq:nnTF {#2} { top-level }
+ { \__hook_tl_gclear:c { __hook_toplevel~#1 } }
+ {
+ \prop_get:cnNTF { g__hook_#1_code_prop } {#2} \l__hook_return_tl
+ { \__hook_gremove_code_do:nn }
+ { \__hook_mark_removal:nn }
+ {#1} {#2}
+ }
}
\hook_if_exist:nT {#1}
{ \__hook_update_hook_code:n {#1} }
@@ -1347,7 +1963,6 @@ of this package available from CTAN}
{
\__hook_declare:n {#1}
\__hook_rule_gclear:nnn {#1} {#2} {#4}
- \debug_suspend:
\cs_if_exist_use:cTF { __hook_rule_#3_gset:nnn }
{
{#1} {#2} {#4}
@@ -1355,29 +1970,28 @@ of this package available from CTAN}
}
{ \msg_error:nnnnnn { hooks } { unknown-rule }
{#1} {#2} {#3} {#4} }
- \debug_resume:
}
\cs_new_protected:Npn \__hook_rule_before_gset:nnn #1#2#3
{
- \tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl }
+ \__hook_tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl }
{ \__hook_label_ordered:nnTF {#2} {#3} { < } { > } }
}
\cs_new_eq:cN { __hook_rule_<_gset:nnn } \__hook_rule_before_gset:nnn
\cs_new_protected:Npn \__hook_rule_after_gset:nnn #1#2#3
{
- \tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#3} {#2} _tl }
+ \__hook_tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#3} {#2} _tl }
{ \__hook_label_ordered:nnTF {#3} {#2} { < } { > } }
}
\cs_new_eq:cN { __hook_rule_>_gset:nnn } \__hook_rule_after_gset:nnn
\cs_new_protected:Npn \__hook_rule_voids_gset:nnn #1#2#3
{
- \tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl }
+ \__hook_tl_gset:cx { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl }
{ \__hook_label_ordered:nnTF {#2} {#3} { -> } { <- } }
}
\cs_new_protected:cpn { __hook_rule_incompatible-error_gset:nnn } #1#2#3
- { \tl_gset:cn { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl } { xE } }
+ { \__hook_tl_gset:cn { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl } { xE } }
\cs_new_protected:cpn { __hook_rule_incompatible-warning_gset:nnn } #1#2#3
- { \tl_gset:cn { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl } { xW } }
+ { \__hook_tl_gset:cn { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl } { xW } }
\cs_new_protected:Npn \__hook_rule_unrelated_gset:nnn #1#2#3 { }
\cs_new_protected:Npn \__hook_rule_gclear:nnn #1#2#3
{ \cs_undefine:c { g__hook_#1_rule_ \__hook_label_pair:nn {#2} {#3} _tl } }
@@ -1424,30 +2038,32 @@ of this package available from CTAN}
}
\cs_new_protected:Npn \__hook_initialize_hook_code:n #1
{
- \debug_suspend:
\__hook_debug:n{ \iow_term:x{^^JUpdate~ code~ for~ hook~
'#1' \on@line :^^J} }
\__hook_include_legacy_code_chunk:n {#1}
\hook_if_exist:nT {#1}
{
\prop_if_empty:cTF {g__hook_#1_code_prop}
- { \tl_gset:co { __hook~#1 }
- { \cs:w __hook_next~#1 \cs_end: } }
+ {
+ \__hook_tl_gset:co { __hook~#1 }
+ {
+ \cs:w __hook_toplevel~#1 \exp_after:wN \cs_end:
+ \cs:w __hook_next~#1 \cs_end:
+ }
+ }
{
\__hook_if_reversed:nTF {#1}
- { \cs_set_eq:NN \__hook_tl_gput:NV \tl_gput_left:NV
+ { \cs_set_eq:NN \__hook_tl_gput:Nn \__hook_tl_gput_left:Nn
\cs_set_eq:NN \__hook_clist_gput:NV \clist_gput_left:NV }
- { \cs_set_eq:NN \__hook_tl_gput:NV \tl_gput_right:NV
+ { \cs_set_eq:NN \__hook_tl_gput:Nn \__hook_tl_gput_right:Nn
\cs_set_eq:NN \__hook_clist_gput:NV \clist_gput_right:NV }
\prop_set_eq:Nc \l__hook_work_prop { g__hook_#1_code_prop }
- \__hook_initialize_single:cccn
- { __hook~#1 } { __hook_next~#1 }
- { g__hook_#1_labels_clist } {#1}
+ \__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}{} }
}
}
- \debug_resume:
}
\cs_new:Npn \__hook_tl_csname:n #1 { l__hook_label_#1_tl }
\cs_new:Npn \__hook_seq_csname:n #1 { l__hook_label_#1_seq }
@@ -1456,16 +2072,16 @@ of this package available from CTAN}
\tl_new:N \l__hook_front_tl
\tl_new:N \l__hook_rear_tl
\tl_new:c { \__hook_tl_csname:n { 0 } }
-\cs_new_protected:Npn \__hook_initialize_single:NNNn #1#2#3#4
+\cs_new_protected:Npn \__hook_initialize_single:NNn #1#2#3
{
\seq_clear:N \l__hook_labels_seq
\int_zero:N \l__hook_labels_int
- \tl_set:Nn \l__hook_cur_hook_tl {#4}
+ \tl_set:Nn \l__hook_cur_hook_tl {#3}
\prop_map_inline:Nn \l__hook_work_prop
{
\int_incr:N \l__hook_labels_int
\seq_put_right:Nn \l__hook_labels_seq {##1}
- \tl_set:cn { \__hook_tl_csname:n {##1} }{0}
+ \__hook_tl_set:cn { \__hook_tl_csname:n {##1} } { 0 }
\seq_clear_new:c { \__hook_seq_csname:n {##1} }
}
\prop_map_inline:Nn \l__hook_work_prop
@@ -1476,7 +2092,7 @@ of this package available from CTAN}
{ \prop_map_break: }
{ \__hook_apply_label_pair:nnn {##1} {####1} }
{ \__hook_apply_label_pair:nnn {####1} {##1} }
- {#4}
+ {#3}
}
}
\__hook_debug:n { \__hook_debug_label_data:N \l__hook_work_prop }
@@ -1491,14 +2107,14 @@ of this package available from CTAN}
}
}
\tl_set_eq:Nc \l__hook_front_tl { \__hook_tl_csname:n { 0 } }
- \tl_gclear:N #1
- \clist_gclear:N #3
+ \__hook_tl_gclear:N #1
+ \clist_gclear:N #2
\bool_while_do:nn { ! \str_if_eq_p:Vn \l__hook_front_tl { 0 } }
{
\int_decr:N \l__hook_labels_int
\prop_get:NVN \l__hook_work_prop \l__hook_front_tl \l__hook_return_tl
- \__hook_tl_gput:NV #1 \l__hook_return_tl
- \__hook_clist_gput:NV #3 \l__hook_front_tl
+ \exp_args:NNV \__hook_tl_gput:Nn #1 \l__hook_return_tl
+ \__hook_clist_gput:NV #2 \l__hook_front_tl
\__hook_debug:n{ \iow_term:x{Handled~ code~ for~ \l__hook_front_tl} }
\seq_map_inline:cn { \__hook_seq_csname:n { \l__hook_front_tl } }
{
@@ -1523,11 +2139,12 @@ of this package available from CTAN}
\__hook_debug_label_data:N \l__hook_work_prop
\iow_term:x{====================}
}
- \tl_gput_right:Nn #1 {#2}
+ \exp_args:NNo \__hook_tl_gput:Nn #1 { \cs:w __hook_toplevel~#3 \cs_end: }
+ \__hook_tl_gput_right:No #1 { \cs:w __hook_next~#3 \cs_end: }
}
-\cs_generate_variant:Nn \__hook_initialize_single:NNNn {ccc}
-\cs_new:Npn \__hook_tl_gput:NV {\ERROR}
-\cs_new:Npn \__hook_clist_gput:NV {\ERROR}
+\cs_generate_variant:Nn \__hook_initialize_single:NNn { cc }
+\cs_new:Npn \__hook_tl_gput:Nn { \ERROR }
+\cs_new:Npn \__hook_clist_gput:NV { \ERROR }
\cs_new_protected:Npn \__hook_apply_label_pair:nnn #1#2#3
{
\__hook_label_if_exist_apply:nnnF {#1} {#2} {#3}
@@ -1646,7 +2263,8 @@ of this package available from CTAN}
\__hook_log_cmd:x { ^^J ->~The~hook~'#1': }
\hook_if_exist:nF {#1}
{ \__hook_log_line:x { is~not~declared! } }
- \__hook_if_exist:nTF {#1}
+ \hook_if_empty:nTF {#1}
+ { #2 { The~hook~is~empty } }
{
\__hook_log_line:x { Code~chunks: }
\prop_if_empty:cTF { g__hook_#1_code_prop }
@@ -1655,7 +2273,19 @@ of this package available from CTAN}
\prop_map_inline:cn { g__hook_#1_code_prop }
{ \__hook_log_line_indent:x { ##1~->~\tl_to_str:n {##2} } }
}
- \__hook_log_line:x { Extra~code~for~next~invocation:}
+ \__hook_log_line:x
+ {
+ Document-level~(top-level)~code
+ \hook_if_exist:nT {#1}
+ { ~(executed~\__hook_if_reversed:nTF {#1} {first} {last} ) } :
+ }
+ \__hook_log_line_indent:x
+ {
+ \tl_if_empty:cTF { __hook_toplevel~#1 }
+ { --- }
+ { -> ~ \exp_args:Nv \tl_to_str:n { __hook_toplevel~#1 } }
+ }
+ \__hook_log_line:x { Extra~code~for~next~invocation: }
\__hook_log_line_indent:x
{
\tl_if_empty:cTF { __hook_next~#1 }
@@ -1706,7 +2336,6 @@ of this package available from CTAN}
}
}
}
- { #2 { The~hook~is~empty. } }
}
\cs_new:Npn \__hook_log_next_code:n #1
{ \exp_args:No \tl_to_str:n { \use_none:nn #1 } }
@@ -1727,7 +2356,7 @@ of this package available from CTAN}
}
\cs_new_protected:Npn \__hook_list_one_rule:nnn #1#2#3
{
- \__hook_list_if_rule_exists:nnnF {#1} {#2} {#3} { }
+ \__hook_list_if_rule_exists:nnnF {#1} {#2} {#3}
{ \__hook_list_if_rule_exists:nnnF {#1} {#2} { ?? } { } }
}
\cs_new_protected:Npn \__hook_list_if_rule_exists:nnnF #1#2#3
@@ -1735,7 +2364,9 @@ of this package available from CTAN}
\if_cs_exist:w g__hook_ #3 _rule_ #1 | #2 _tl \cs_end:
\exp_args:Nv \__hook_tmp:w
{ g__hook_ #3 _rule_ #1 | #2 _tl } { #1 | #2 } {#3}
+ \exp_after:wN \use_none:nn
\fi:
+ \use:n
}
\cs_new_protected:Npn \__hook_debug_print_rules:n #1
{
@@ -1757,12 +2388,10 @@ of this package available from CTAN}
{ \__hook_normalize_hook_args:Nn \__hook_gput_next_code:nn {#1} }
\cs_new_protected:Npn \__hook_gput_next_code:nn #1 #2
{
- \debug_suspend:
\__hook_declare:n {#1}
\hook_if_exist:nTF {#1}
{ \__hook_gput_next_do:nn {#1} {#2} }
{ \__hook_try_declaring_generic_next_hook:nn {#1} {#2} }
- \debug_resume:
}
\cs_new_protected:Npn \__hook_gput_next_do:nn #1
{
@@ -1774,8 +2403,8 @@ of this package available from CTAN}
\tl_if_empty:cT { __hook~#2 }
{ \__hook_update_hook_code:n {#2} }
\tl_if_empty:NT #1
- { \tl_gset:Nn #1 { \__hook_clear_next:n {#2} } }
- \tl_gput_right:Nn #1
+ { \__hook_tl_gset:Nn #1 { \__hook_clear_next:n {#2} } }
+ \__hook_tl_gput_right:Nn #1
}
\cs_new_protected:Npn \__hook_clear_next:n #1
{ \cs_gset_eq:cN { __hook_next~#1 } \c_empty_tl }
@@ -1845,7 +2474,11 @@ of this package available from CTAN}
{
\bool_lazy_and:nnTF
{ \prop_if_empty_p:c { g__hook_#1_code_prop } }
- { \tl_if_empty_p:c { __hook_next~#1 } }
+ {
+ \bool_lazy_and_p:nn
+ { \tl_if_empty_p:c { __hook_toplevel~#1 } }
+ { \tl_if_empty_p:c { __hook_next~#1 } }
+ }
{ \prg_return_true: }
{ \prg_return_false: }
}
@@ -1887,7 +2520,15 @@ of this package available from CTAN}
name.\\
Please~ use~ a~ different~ name~ for~ your~ hook.}
\msg_new:nnn { hooks } { empty-label }
- { Empty~code~label~\msg_line_context:.~Using~`#1'~instead. }
+ {
+ Empty~code~label~\msg_line_context:.~
+ Using~`\__hook_currname_or_default:'~instead.
+ }
+\msg_new:nnn { hooks } { no-default-label }
+ {
+ Missing~(empty)~default~label~\msg_line_context:. \\
+ This~command~was~ignored.
+ }
\msg_new:nnnn { hooks } { unknown-rule }
{ Unknown~ relationship~ `#3'~
between~ labels~ `#2'~ and~ `#4'~
@@ -1903,6 +2544,39 @@ of this package available from CTAN}
`voids'~ or~
`unrelated'.
}
+\msg_new:nnnn { hooks } { misused-top-level }
+ {
+ Illegal~\iow_char:N \\AddToHook{#1}[top-level]{...}.\\
+ 'top-level'~is~reserved~for~the~user's~document.
+ }
+ {
+ The~'top-level'~label~is~meant~for~user~code~only,~and~should~only~
+ be~used~(sparingly)~in~the~main~document.~Use~the~default~label~
+ '\__hook_currname_or_default:'~for~this~\@cls@pkg,~or~another~
+ suitable~label.
+ }
+\msg_new:nnn { hooks } { set-top-level }
+ {
+ You~cannot~change~the~default~label~#1~`top-level'.~Illegal \\
+ \use:nn { ~ } { ~ } \iow_char:N \\#2{#3} \\
+ \msg_line_context:.
+ }
+\msg_new:nnn { hooks } { ddhl-deprecated }
+ {
+ \iow_char:N \\DeclareDefaultHookLabel~is~deprecated.\\
+ Use~\iow_char:N \\SetDefaultHookLabel~instead.\\ \\
+ The~deprecated~name~will~be~removed~in~the~next~release.
+ }
+\msg_new:nnn { hooks } { extra-pop-label }
+ {
+ Extra~\iow_char:N \\PopDefaultHookLabel. \\
+ This~command~will~be~ignored.
+ }
+\msg_new:nnn { hooks } { missing-pop-label }
+ {
+ Missing~\iow_char:N \\PopDefaultHookLabel. \\
+ The~label~`#1'~was~pushed~but~never~popped.~Something~is~wrong.
+ }
\msg_new:nnn { hooks } { should-not-happen }
{
ERROR!~This~should~not~happen.~#1 \\
@@ -1917,26 +2591,86 @@ of this package available from CTAN}
{ \hook_gput_next_code:nn {#1} {#2} }
\NewDocumentCommand \RemoveFromHook { m o }
{ \hook_gremove_code:nn {#1} {#2} }
-\seq_gpush:Nn \g__hook_name_stack_seq { }
+\tl_gset:Nn \g__hook_hook_curr_name_tl { top-level }
+\seq_gput_right:Nn \g__hook_name_stack_seq { top-level }
+\cs_set_protected:Npn \__hook_tmp:w #1 #2 #3
+ {
+ \quark_if_recursion_tail_stop:n {#1}
+ \seq_gput_right:Nn \g__hook_name_stack_seq {#1}
+ \__hook_tmp:w
+ }
+\exp_after:wN \__hook_tmp:w \@currnamestack
+ \q_recursion_tail \q_recursion_tail
+ \q_recursion_tail \q_recursion_stop
+\tl_gset:Nx \g__hook_hook_curr_name_tl { \@currname }
\cs_new_protected:Npn \__hook_curr_name_push:n #1
+ { \exp_args:Nx \__hook_curr_name_push_aux:n { \__hook_make_name:n {#1} } }
+\cs_new_protected:Npn \__hook_curr_name_push_aux:n #1
{
- \seq_gpush:Nn \g__hook_name_stack_seq {#1}
- \tl_gset:Nn \g__hook_hook_curr_name_tl {#1}
+ \tl_if_blank:nTF {#1}
+ { \msg_error:nn { hooks } { no-default-label } }
+ {
+ \str_if_eq:nnTF {#1} { top-level }
+ {
+ \msg_error:nnnnn { hooks } { set-top-level }
+ { to } { PushDefaultHookLabel } {#1}
+ }
+ {
+ \seq_gpush:NV \g__hook_name_stack_seq \g__hook_hook_curr_name_tl
+ \tl_gset:Nn \g__hook_hook_curr_name_tl {#1}
+ }
+ }
}
\cs_new_protected:Npn \__hook_curr_name_pop:
{
- \seq_gpop:NN \g__hook_name_stack_seq \l__hook_return_tl
- \seq_get:NNTF \g__hook_name_stack_seq \l__hook_return_tl
+ \seq_gpop:NNTF \g__hook_name_stack_seq \l__hook_return_tl
{ \tl_gset_eq:NN \g__hook_hook_curr_name_tl \l__hook_return_tl }
+ { \msg_error:nn { hooks } { extra-pop-label } }
+ }
+\tl_gput_right:Nn \@kernel@after@enddocument@afterlastpage
+ { \__hook_end_document_label_check: }
+\cs_new_protected:Npn \__hook_end_document_label_check:
+ {
+ \seq_gpop:NNT \g__hook_name_stack_seq \l__hook_return_tl
{
- \msg_error:nnn { hooks } { should-not-happen }
- { Tried~to~pop~from~an~empty~default~label~stack. }
+ \msg_error:nnx { hooks } { missing-pop-label }
+ { \g__hook_hook_curr_name_tl }
+ \tl_gset_eq:NN \g__hook_hook_curr_name_tl \l__hook_return_tl
+ \__hook_end_document_label_check:
+ }
+ }
+\NewDocumentCommand \SetDefaultHookLabel { m }
+ {
+ \seq_if_empty:NTF \g__hook_name_stack_seq
+ {
+ \msg_error:nnnnn { hooks } { set-top-level }
+ { for } { SetDefaultHookLabel } {#1}
+ }
+ { \exp_args:Nx \__hook_set_default_label:n { \__hook_make_name:n {#1} } }
+ }
+\cs_new_protected:Npn \__hook_set_default_label:n #1
+ {
+ \str_if_eq:nnTF {#1} { top-level }
+ {
+ \msg_error:nnnnn { hooks } { set-top-level }
+ { to } { SetDefaultHookLabel } {#1}
}
+ { \tl_gset:Nn \g__hook_hook_curr_name_tl {#1} }
}
\NewDocumentCommand \DeclareDefaultHookLabel { m }
{
- \seq_gpop:NN \g__hook_name_stack_seq \l__hook_return_tl
- \__hook_curr_name_push:n {#1}
+ \msg_error:nn { hooks } { ddhl-deprecated }
+ \SetDefaultHookLabel {#1}
+ }
+\NewDocumentCommand \PushDefaultHookLabel { m }
+ { \__hook_curr_name_push:n {#1} }
+\NewDocumentCommand \PopDefaultHookLabel { }
+ { \__hook_curr_name_pop: }
+\cs_gset_protected:Npn \@expl@push@filename@aux@@ #1#2#3
+ {
+ \__hook_curr_name_push:n {#3}
+ \str_gset:Nx \g_file_curr_name_str {#3}
+ #1 #2 {#3}
}
\cs_new:Npn \UseHook { \hook_use:n }
\cs_new:Npn \UseOneTimeHook { \hook_use_once:n }
@@ -1956,8 +2690,6 @@ of this package available from CTAN}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
\cs_new_eq:NN \@expl@@@initialize@all@@
\__hook_initialize_all:
-\cs_new_eq:NN \@expl@@@hook@curr@name@push@@n
- \__hook_curr_name_push:n
\cs_new_eq:NN \@expl@@@hook@curr@name@pop@@
\__hook_curr_name_pop:
\ExplSyntaxOff
@@ -1995,1052 +2727,340 @@ of this package available from CTAN}
%%% From File: ltcntrl.dtx
%%% From File: lterror.dtx
%%% From File: ltpar.dtx
-%%% From File: ltlists.dtx
-%%% From File: ltboxes.dtx
-\IncludeInRelease{2015/01/01}%
- {\makebox}{Make \makebox robust}%
-\DeclareRobustCommand\makebox{%
- \leavevmode
- \@ifnextchar(%)
- \@makepicbox
- {\@ifnextchar[\@makebox\mbox}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\makebox}{Make \makebox robust}%
-\def\makebox{%
- \leavevmode
- \@ifnextchar(%)
- \@makepicbox
- {\@ifnextchar[\@makebox\mbox}}%
-\expandafter\let\csname makebox \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@imakepicbox}{default units}%
-\long\def\@imakepicbox(#1,#2)[#3]#4{%
- \@defaultunitsset\@tempdimc{#2}\unitlength
- \vbox to\@tempdimc
- {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
- \let\mb@t\vss
- \@tfor\reserved@a :=#3\do{%
- \if s\reserved@a
- \let\mb@l\relax\let\mb@r\relax
- \else
- \expandafter\let\csname mb@\reserved@a\endcsname\relax
- \fi}%
- \mb@t
- \@defaultunitsset\@tempdimc{#1}\unitlength
- \hb@xt@\@tempdimc{\mb@l #4\mb@r}%
- \mb@b
- \kern\z@}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@imakepicbox}{default units}%
-\long\def\@imakepicbox(#1,#2)[#3]#4{%
- \vbox to#2\unitlength
- {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
- \let\mb@t\vss
- \@tfor\reserved@a :=#3\do{%
- \if s\reserved@a
- \let\mb@l\relax\let\mb@r\relax
- \else
- \expandafter\let\csname mb@\reserved@a\endcsname\relax
- \fi}%
- \mb@t
- \hb@xt@ #1\unitlength{\mb@l #4\mb@r}%
- \mb@b
- \kern\z@}}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\savebox}{Make \savebox robust}%
-\DeclareRobustCommand\savebox[1]{%
- \@ifnextchar(%)
- {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\savebox}{Make \savebox robust}%
-\def\savebox#1{%
- \@ifnextchar(%)
- {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
-\expandafter\let\csname savebox \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\framebox}{Make \framebox robust}%
-\DeclareRobustCommand\framebox{%
- \@ifnextchar(%)
- \@framepicbox{\@ifnextchar[\@framebox\fbox}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\framebox}{Make \framebox robust}%
-\def\framebox{%
- \@ifnextchar(%)
- \@framepicbox{\@ifnextchar[\@framebox\fbox}}%
-\expandafter\let\csname framebox \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\parbox}{Make \parbox robust}%
-\DeclareRobustCommand\parbox{%
- \@ifnextchar[%]
- \@iparbox
- {\@iiiparbox c\relax[s]}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\parbox}{Make \parbox robust}%
-\def\parbox{%
- \@ifnextchar[%]
- \@iparbox
- {\@iiiparbox c\relax[s]}}%
-\expandafter\let\csname parbox \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2017-04-15}%
- {\normallineskiplimit}
- {reset \lineskiplimit}%
-\def\@arrayparboxrestore{%
- \let\if@nobreak\iffalse
- \let\if@noskipsec\iffalse
- \let\par\@@par
- \let\-\@dischyph
- \let\'\@acci\let\`\@accii\let\=\@acciii
- \parindent\z@ \parskip\z@skip
- \everypar{}%
- \linewidth\hsize
- \@totalleftmargin\z@
- \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
- \parfillskip\@flushglue
- \lineskip\normallineskip
- \lineskiplimit\normallineskiplimit
- \baselineskip\normalbaselineskip
- \sloppy}
-\EndIncludeInRelease
-\IncludeInRelease{0000-00-00}%
- {\normallineskiplimit}
- {reset \lineskiplimit}%
-\def\@arrayparboxrestore{%
- \let\if@nobreak\iffalse
- \let\if@noskipsec\iffalse
- \let\par\@@par
- \let\-\@dischyph
- \let\'\@acci\let\`\@accii\let\=\@acciii
- \parindent\z@ \parskip\z@skip
- \everypar{}%
- \linewidth\hsize
- \@totalleftmargin\z@
- \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
- \parfillskip\@flushglue \lineskip\normallineskip
- \baselineskip\normalbaselineskip
- \sloppy}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\rule}{Make \rule robust}%
-\DeclareRobustCommand\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\rule}{Make \rule robust}%
-\def\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
-\expandafter\let\csname rule \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\raisebox}{Make \raisebox robust}%
-\DeclareRobustCommand\raisebox[1]{%
- \leavevmode
- \@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\raisebox}{Make \raisebox robust}%
-\def\raisebox#1{%
- \leavevmode
- \@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
-\expandafter\let\csname raisebox \endcsname\@undefined
-\EndIncludeInRelease
-%%% From File: lttab.dtx
-\IncludeInRelease{2020/10/01}%
- {\@itabcr}{Tabbing calc syntax}%
-\def\@itabcr[#1]{\@vspace@calcify{#1}\@startline\ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@itabcr}{Tabbing calc syntax}%
-
-\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
-\EndIncludeInRelease
+%%% From File: ltspace.dtx
\IncludeInRelease{2019/10/01}%
- {\pushtabs}{Make commands robust}%
-\DeclareRobustCommand\pushtabs{%
- \@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup
- \@contfield}
-\DeclareRobustCommand\poptabs{\@stopfield\@addfield
- \ifnum \@tabpush >\z@
- \endgroup
- \global\advance\@tabpush \m@ne
- \ifnum \@curtab >\@hightab
- \global \@curtab \@hightab
- \@badtab
- \fi
- \else
- \@badpoptabs
- \fi
- \@contfield}
-\DeclareRobustCommand\kill{\@stopfield\@startline\ignorespaces}
+ {\pagebreak}{Make commands robust}%
+\DeclareRobustCommand\pagebreak{\@testopt{\@no@pgbk-}4}
+\DeclareRobustCommand\nopagebreak{\@testopt\@no@pgbk4}
+\DeclareRobustCommand\linebreak{\@testopt{\@no@lnbk-}4}
+\DeclareRobustCommand\nolinebreak{\@testopt\@no@lnbk4}
+\DeclareRobustCommand\samepage{\interlinepenalty\@M
+ \postdisplaypenalty\@M
+ \interdisplaylinepenalty\@M
+ \@beginparpenalty\@M
+ \@endparpenalty\@M
+ \@itempenalty\@M
+ \@secpenalty\@M
+ \interfootnotelinepenalty\@M}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\pushtabs}{Make commands robust}%
-
-\kernel@make@fragile\pushtabs
-\kernel@make@fragile\poptabs
-\kernel@make@fragile\kill
+ {\pagebreak}{Make commands robust}%
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@yargarraycr}{tabular support calc syntax}%
-\def\@yargarraycr#1{\cr\noalign{\@vspace@calcify{#1}}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@yargarraycr}{tabular support calc syntax}%
+\kernel@make@fragile\pagebreak
+\kernel@make@fragile\nopagebreak
+\kernel@make@fragile\linebreak
+\kernel@make@fragile\nolinebreak
+\kernel@make@fragile\samepage
-\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
\EndIncludeInRelease
-%%% From File: ltmath.dtx
-\IncludeInRelease{2019/10/01}%
- {\vphantom}{Make commands robust}%
-\DeclareRobustCommand\vphantom{\v@true\h@false\ph@nt}
-\DeclareRobustCommand\hphantom{\v@false\h@true\ph@nt}
-\DeclareRobustCommand\phantom{\v@true\h@true\ph@nt}
-\DeclareRobustCommand\mathstrut{\vphantom(}
+\IncludeInRelease{2020/02/02}%
+ {\@normalcr}{Make robust}%
+\protected\def\@normalcr{%
+ \let \reserved@e \relax
+ \let \reserved@f \relax
+ \@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
+ \@xnewline}%
+ \@xnewline}
+\let\\\@normalcr
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\vphantom}{Make commands robust}%
+ {\@normalcr}{Make robust}%
-\kernel@make@fragile\vphantom
-\kernel@make@fragile\hphantom
-\kernel@make@fragile\phantom
-\kernel@make@fragile\mathstrut
+\DeclareRobustCommand\\{%
+ \let \reserved@e \relax
+ \let \reserved@f \relax
+ \@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
+ \@xnewline}%
+ \@xnewline}
+\expandafter\let\expandafter\@normalcr
+ \csname\expandafter\@gobble\string\\ \endcsname
\EndIncludeInRelease
-\IncludeInRelease{2018/12/01}%
- {\finph@nt}{Start LR-mode}%
-\def\finph@nt{%
- \setbox\tw@\null
- \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
- \ifh@ \wd\tw@\wd\z@\fi
- \leavevmode@ifvmode\box\tw@}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\finph@nt}{Start LR-mode}%
-\def\finph@nt{%
- \setbox\tw@\null
- \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
- \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
-\EndIncludeInRelease
-\IncludeInRelease{2018/12/01}%
- {\finsm@sh}{Start LR-mode}%
-\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \leavevmode@ifvmode\box\z@}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\finsm@sh}{Start LR-mode}%
-\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
-\EndIncludeInRelease
-\IncludeInRelease{2019/10/01}%
- {\cases}{Make commands robust}%
-\DeclareRobustCommand*\cases[1]{\left\{\,\vcenter{\normalbaselines\m@th
- \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.}
-\DeclareRobustCommand*\matrix[1]{\null\,\vcenter{\normalbaselines\m@th
- \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
- \mathstrut\crcr\noalign{\kern-\baselineskip}
- #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
-\DeclareRobustCommand*\pmatrix[1]{\left(\matrix{#1}\right)}
+\IncludeInRelease{2020/10/01}%
+ {\@vspace@calcify}{Add calc support}%
+\def\@vspace@calcify#1{\begingroup\setlength\skip@{#1}\vskip\skip@\endgroup}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\cases}{Make commands robust}%
-
-\kernel@make@fragile\cases
-\kernel@make@fragile\matrix
-\kernel@make@fragile\pmatrix
+ {\@vspace@calcify}{Add calc support}%
+\let\@vspace@calcify\@undefined
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
- {\tmspace}{amsmath spacing commands}%
-\DeclareRobustCommand\tmspace[3]{%
- \ifmmode\mskip#1#2\else\leavevmode@ifvmode\kern#1#3\fi\relax}
-\DeclareRobustCommand\,{\tmspace+\thinmuskip{.16667em}}
-\let\thinspace\,
-\DeclareRobustCommand\!{\tmspace-\thinmuskip{.16667em}}
-\let\negthinspace\!
-\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}}
-\let\medspace\:
-\let\>=\:
-\DeclareRobustCommand\negmedspace{\tmspace-\medmuskip{.2222em}}
-\DeclareRobustCommand\;{\tmspace+\thickmuskip{.2777em}}
-\let\thickspace\;
-\DeclareRobustCommand\negthickspace{\tmspace-\thickmuskip{.2777em}}
+ {\@newline}{\newline calc support}%
+\def\@newline[#1]{\let \reserved@e \vadjust
+ \@gnewline {\@vspace@calcify{#1}}}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\tmspace}{amsmath spacing commands}%
-
-\let\tmspace\@undefined
-\DeclareRobustCommand{\,}{%
- \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
-\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
-\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
-\def\>{\mskip\medmuskip}
-\let\:=\>
-\def\;{\mskip\thickmuskip}
-\def\!{\mskip-\thinmuskip}
+ {\@newline}{\newline calc support}%
+\def\@newline[#1]{\let \reserved@e \vadjust
+ \@gnewline {\vskip #1}}
\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\(}{Make \( robust}%
-\DeclareRobustCommand\({%
- \relax\ifmmode\@badmath\else$\fi}%
-\DeclareRobustCommand\){%
- \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\(}{Make \( robust}%
-\def\({%
- \relax\ifmmode\@badmath\else$\fi}%
-\expandafter\let\csname\string( \endcsname\@undefined
-\def\){%
- \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
-\expandafter\let\csname\string) \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\[}{Make \[ robust}%
-\DeclareRobustCommand\[{%
- \relax\ifmmode
- \@badmath
- \else
- \ifvmode
- \nointerlineskip
- \makebox[.6\linewidth]{}%
- \fi
- $$%%$$ BRACE MATCH HACK
- \fi
-}%
-\DeclareRobustCommand\]{%
- \relax\ifmmode
- \ifinner
- \@badmath
- \else
- $$%%$$ BRACE MATCH HACK
+\IncludeInRelease{2018/10/10}%
+ {\@esphack}{hyphenation and nobreak after space hack}%
+\def\@esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \ifdim\lastskip=\z@
+ \nobreak \hskip\z@skip
\fi
- \else
- \@badmath
- \fi
- \ignorespaces
-}%
+ \ignorespaces
+ \fi
+ \else
+ \ifvmode
+ \if@nobreak\nobreak\else\if@noskipsec\nobreak\fi\fi
+ \fi
+ \fi}%
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\[}{Make \[ robust}%
-\def\[{%
- \relax\ifmmode
- \@badmath
- \else
- \ifvmode
- \nointerlineskip
- \makebox[.6\linewidth]{}%
- \fi
- $$%%$$ BRACE MATCH HACK
- \fi
-}%
-\expandafter\let\csname\string[ \endcsname\@undefined
-\def\]{%
- \relax\ifmmode
- \ifinner
- \@badmath
- \else
- $$%%$$ BRACE MATCH HACK
+\IncludeInRelease{2015/10/01}%
+ {\@esphack}{hyphenation and nobreak after space hack}%
+\def\@esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \ifdim\lastskip=\z@
+ \nobreak \hskip\z@skip
\fi
- \else
- \@badmath
- \fi
- \ignorespaces
-}%
-\expandafter\let\csname\string] \endcsname\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@xeqncr}{eqnarray support calc syntax}%
-\def\@xeqncr[#1]{%
- \ifnum0=`{\fi}%
- \@@eqncr
- \noalign{\penalty\@eqpen\vskip\jot\@vspace@calcify{#1}}%
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@xeqncr}{eqnarray support calc syntax}%
-
-\def\@xeqncr[#1]{%
- \ifnum0=`{\fi}%
- \@@eqncr
- \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
-}
-\EndIncludeInRelease
-%%% From File: ltpictur.dtx
-\IncludeInRelease{2020/10/01}%
- {\@defaultunitsset}{default units}%
-\def\@defaultunitsset#1#2#3{%
- \@defaultunits#1\dimexpr#2#3\relax\relax\@nnil}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@defaultunitsset}{default units}%
-\let\@defaultunitsset\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@picture}{default units}%
-\def\@picture(#1,#2)(#3,#4){%
- \@defaultunitsset\@picht{#2}\unitlength
- \@defaultunitsset\@tempdimc{#1}\unitlength
- \setbox\@picbox\hb@xt@\@tempdimc\bgroup
- \@defaultunitsset\@tempdimc{#3}\unitlength
- \hskip -\@tempdimc
- \@defaultunitsset\@tempdimc{#4}\unitlength
- \lower\@tempdimc\hbox\bgroup
- \ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@picture}{default units}%
-\def\@picture(#1,#2)(#3,#4){%
- \@picht#2\unitlength
- \setbox\@picbox\hb@xt@#1\unitlength\bgroup
- \hskip -#3\unitlength
- \lower #4\unitlength\hbox\bgroup
- \ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\put}{default units}%
-\expandafter\let\csname put \endcsname\@undefind
-\long\def\put(#1,#2)#3{%
- \@killglue
- \@defaultunitsset\@tempdimc{#2}\unitlength
- \raise\@tempdimc
- \hb@xt@\z@{%
- \@defaultunitsset\@tempdimc{#1}\unitlength
- \kern\@tempdimc
- #3\hss}%
- \ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\put}{default units}%
-\expandafter\let\csname put \endcsname\@undefind
-\long\def\put(#1,#2)#3{%
- \@killglue\raise#2\unitlength
- \hb@xt@\z@{\kern#1\unitlength #3\hss}%
- \ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\multiput}{default units}%
-\expandafter\let\csname multiput \endcsname\@undefind
-\def\multiput(#1,#2)#3{%
- \@defaultunitsset\@xdim{#1}\unitlength
- \@defaultunitsset\@ydim{#2}\unitlength
- \@multiput(}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\multiput}{default units}%
-\expandafter\let\csname multiput \endcsname\@undefind
-\def\multiput(#1,#2)#3{%
- \@xdim #1\unitlength
- \@ydim #2\unitlength
- \@multiput(}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@multiput}{default units}%
-\long\def\@multiput(#1,#2)#3#4{%
- \@killglue\@multicnt #3\relax
- \@whilenum \@multicnt >\z@\do
- {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
- \advance\@multicnt\m@ne
- \@defaultunitsset{\advance\@xdim}{#1}\unitlength
- \@defaultunitsset{\advance\@ydim}{#2}\unitlength}%
- \ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@multiput}{default units}%
-\long\def\@multiput(#1,#2)#3#4{%
- \@killglue\@multicnt #3\relax
- \@whilenum \@multicnt >\z@\do
- {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
- \advance\@multicnt\m@ne
- \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}%
- \ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@istackcr}{\shortstack calc support}%
-\def\@istackcr[#1]{\cr\noalign{\@vspace@calcify{#1}}\ignorespaces}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@istackcr}{\shortstack calc support}%
-
-\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+ \ignorespaces
+ \fi
+ \fi}%
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\line}{default units}%
-\expandafter\let\csname line \endcsname\@undefind
-\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
- \@defaultunitsset\@linelen{#3}\unitlength
- \ifdim\@linelen<\z@\@badlinearg\else
- \ifnum\@xarg =\z@ \@vline
- \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
+\IncludeInRelease{2015/01/01}%
+ {\@esphack}{hyphenation and nobreak after space hack}%
+\def\@esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip
+ \ignorespaces
\fi
- \fi}
+ \fi}%
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\line}{default units}%
-\expandafter\let\csname line \endcsname\@undefind
-\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
- \@linelen #3\unitlength
- \ifdim\@linelen<\z@\@badlinearg\else
- \ifnum\@xarg =\z@ \@vline
- \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
+ {\@esphack}{hyphenation and nobreak after space hack}%
+\def\@esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \ignorespaces
\fi
- \fi}
+ \fi}%
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\vector}{default units}%
-\expandafter\let\csname vector \endcsname\@undefind
-\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
- \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
- \ifnum\@tempcnta<5\relax
- \@defaultunitsset\@linelen{#3}\unitlength
- \ifdim\@linelen<\z@\@badlinearg\else
- \ifnum\@xarg =\z@ \@vvector
- \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
+\IncludeInRelease{2015/01/01}%
+ {\@Esphack}{hyphenation after space hack}%
+\def\@Esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \nobreak \hskip\z@skip
+ \@ignoretrue
+ \ignorespaces
\fi
- \fi
- \else\@badlinearg\fi}
+ \fi}%
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\vector}{default units}%
-\expandafter\let\csname vector \endcsname\@undefind
-\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
- \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
- \ifnum\@tempcnta<5\relax
- \@linelen #3\unitlength
- \ifdim\@linelen<\z@\@badlinearg\else
- \ifnum\@xarg =\z@ \@vvector
- \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
+ {\@Esphack}{hyphenation after space hack}%
+\def\@Esphack{%
+ \relax
+ \ifhmode
+ \spacefactor\@savsf
+ \ifdim\@savsk>\z@
+ \@ignoretrue
+ \ignorespaces
\fi
- \fi
- \else\@badlinearg\fi}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\dashbox}{default units}%
-\expandafter\let\csname dashbox \endcsname\@undefind
-\def\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip
-\lineskip \z@skip
-\@defaultunitsset\@dashdim{#2}\unitlength
-\@dashcnt \@dashdim \advance\@dashcnt 200
-\@defaultunitsset\@dashdim{#1}\unitlength
-\divide\@dashcnt \@dashdim
-\ifodd\@dashcnt\@dashdim \z@
-\advance\@dashcnt \@ne \divide\@dashcnt \tw@
-\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
-\advance\@dashcnt \m@ne
-\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
-\@width \@dashdim}\put(0,0){\copy\@dashbox}%
-\put(0,#3){\copy\@dashbox}%
-\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
-\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
-\multiply\@dashdim \thr@@
-\fi
-\setbox\@dashbox \hbox{%
- \@defaultunitsset\@tempdimc{#1}\unitlength
- \vrule \@height \@halfwidth \@depth \@halfwidth \@width \@tempdimc
- \hskip\@tempdimc}%
-\@tempcnta\z@
-\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
-\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
-\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
-\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
-\@defaultunitsset\@dashdim{#3}\unitlength
-\@dashcnt \@dashdim \advance\@dashcnt 200
-\@defaultunitsset\@dashdim{#1}\unitlength
-\divide\@dashcnt \@dashdim
-\ifodd\@dashcnt \@dashdim \z@
-\advance\@dashcnt \@ne \divide\@dashcnt \tw@
-\else
-\divide\@dashdim \tw@ \divide\@dashcnt \tw@
-\advance\@dashcnt \m@ne
-\setbox\@dashbox\hbox{\hskip -\@halfwidth
-\vrule \@width \@wholewidth
-\@height \@dashdim}\put(0,0){\copy\@dashbox}%
-\put(#2,0){\copy\@dashbox}%
-\put(0,#3){\lower\@dashdim\copy\@dashbox}%
-\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
-\multiply\@dashdim \thr@@
-\fi
-\@defaultunitsset\@tempdimb{#1}\unitlength
-\setbox\@dashbox\hbox{%
- \vrule \@width \@wholewidth \@height\@tempdimb}%
-\@tempcnta\z@
-\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
-\do{\vskip\@tempdimb\copy\@dashbox\advance\@tempcnta \@ne }%
-\vskip\@dashdim}}\@tempcnta\z@
-\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
-\do{\vskip\@tempdimb\copy\@dashbox\advance\@tempcnta \@ne }%
-\vskip\@dashdim}}}\@makepicbox(#2,#3)}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\dashbox}{default units}%
-\expandafter\let\csname dashbox \endcsname\@undefind
-\def\dashbox#1(#2,#3){%
-\leavevmode\hb@xt@\z@{\baselineskip \z@skip
-\lineskip \z@skip
-\@dashdim #2\unitlength
-\@dashcnt \@dashdim \advance\@dashcnt 200
-\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
-\ifodd\@dashcnt\@dashdim \z@
-\advance\@dashcnt \@ne \divide\@dashcnt \tw@
-\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
-\advance\@dashcnt \m@ne
-\setbox\@dashbox \hbox{%
- \vrule \@height \@halfwidth \@depth \@halfwidth
- \@width \@dashdim}\put(0,0){\copy\@dashbox}%
-\put(0,#3){\copy\@dashbox}%
-\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
-\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
-\multiply\@dashdim \thr@@
-\fi
-\setbox\@dashbox \hbox{%
- \vrule \@height \@halfwidth \@depth \@halfwidth
- \@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
-\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
-\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
-\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
-\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
-\@dashdim #3\unitlength
-\@dashcnt \@dashdim \advance\@dashcnt 200
-\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
-\ifodd\@dashcnt \@dashdim \z@
-\advance\@dashcnt \@ne \divide\@dashcnt \tw@
-\else
-\divide\@dashdim \tw@ \divide\@dashcnt \tw@
-\advance\@dashcnt \m@ne
-\setbox\@dashbox\hbox{\hskip -\@halfwidth
-\vrule \@width \@wholewidth
-\@height \@dashdim}\put(0,0){\copy\@dashbox}%
-\put(#2,0){\copy\@dashbox}%
-\put(0,#3){\lower\@dashdim\copy\@dashbox}%
-\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
-\multiply\@dashdim \thr@@
-\fi
-\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
-\@height #1\unitlength}\@tempcnta\z@
-\put(0,0){%
- \hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
- \do{\vskip #1\unitlength\copy\@dashbox
- \advance\@tempcnta\@ne }%
- \vskip\@dashdim}}\@tempcnta\z@
-\put(#2,0){%
- \hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
- \do{\vskip #1\unitlength\copy\@dashbox
- \advance\@tempcnta \@ne }%
- \vskip\@dashdim}}}\@makepicbox(#2,#3)}
-\EndIncludeInRelease
-\IncludeInRelease{2016/03/31}%
- {\@ovhlinetrue}%
- {Avoid almost zero length leaders}%
-\newif\if@ovvline \@ovvlinetrue
-\newif\if@ovhline \@ovhlinetrue
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@ovhlinetrue}%
- {Avoid almost zero length leaders}%
-\let\if@ovvline\@undefined
-\let\if@ovhline\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@oval}{default units}%
-\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
- \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
- \@ovvlinefalse \@ovhlinefalse
- \@tfor\reserved@a :=#3\do{%
- \csname @ov\reserved@a false\endcsname}%
- \@defaultunitsset\@ovxx{#1}\unitlength
- \@defaultunitsset\@ovyy{#2}\unitlength
- \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue
- \else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue \fi\fi
- \advance \@tempdimb -2\p@
- \@getcirc \@tempdimb
- \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
- \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
- \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
- \ifdim \@ovdx >\z@ \@ovhlinetrue \fi
- \ifdim \@ovdy >\z@ \@ovvlinetrue \fi
- \@circlefnt \setbox\@tempboxa
- \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
- \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
- \if@ovt \@ovhorz \kern -\@ovxx \fi
- \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
- \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
- \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
- \endgroup}
-\EndIncludeInRelease
-\IncludeInRelease{2016/03/31}%
- {\@oval}{default units}%
-\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
- \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
- \@ovvlinefalse \@ovhlinefalse
- \@tfor\reserved@a :=#3\do{%
- \csname @ov\reserved@a false\endcsname}%
- \@ovxx #1\unitlength
- \@ovyy #2\unitlength
- \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue
- \else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue
- \fi\fi
- \advance \@tempdimb -2\p@
- \@getcirc \@tempdimb
- \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
- \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
- \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
- \ifdim \@ovdx >\z@ \@ovhlinetrue \fi
- \ifdim \@ovdy >\z@ \@ovvlinetrue \fi
- \@circlefnt \setbox\@tempboxa
- \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
- \if@ovl
- \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx
- \fi
- \if@ovt \@ovhorz \kern -\@ovxx \fi
- \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
- \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
- \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
- \endgroup}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@oval}{default units}%
-\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
- \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
- \@tfor\reserved@a :=#3\do
- {\csname @ov\reserved@a false\endcsname}%
- \@ovxx #1\unitlength
- \@ovyy #2\unitlength
- \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
- \advance \@tempdimb -2\p@
- \@getcirc \@tempdimb
- \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
- \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
- \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
- \@circlefnt \setbox\@tempboxa
- \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
- \if@ovl
- \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx
- \fi
- \if@ovt \@ovhorz \kern -\@ovxx \fi
- \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
- \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
- \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
- \endgroup}
-\EndIncludeInRelease
-\IncludeInRelease{2016/03/31}%
- {\@ovvert}{Avoid almost zero length leaders}%
-\def\@ovvert#1#2{\vbox to\@ovyy{%
- \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
- \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
- \else \kern \@ovri \kern \@ovdy \fi
- \if@ovvline \leaders\vrule \@width \@wholewidth \fi
- \vfil \nointerlineskip
- \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
- \hbox{\char \@tempcntb}%
- \else \kern \@ovdy \kern \@ovro \fi}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@ovvert}{Avoid almost zero length leaders}%
-\def\@ovvert#1#2{\vbox to\@ovyy{%
- \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
- \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
- \else \kern \@ovri \kern \@ovdy \fi
- \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
- \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
- \hbox{\char \@tempcntb}%
- \else \kern \@ovdy \kern \@ovro \fi}}
-\EndIncludeInRelease
-\IncludeInRelease{2016/03/31}%
- {\@ovhorz}{Avoid almost zero length leaders}%
-\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
- \if@ovr \else \kern \@ovdx \fi
- \if@ovhline \leaders \hrule \@height \@wholewidth \fi
- \hfil
- \if@ovl \else \kern \@ovdx \fi
- \kern \@ovri}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@ovhorz}{Avoid almost zero length leaders}%
-\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
- \if@ovr \else \kern \@ovdx \fi
- \leaders \hrule \@height \@wholewidth \hfil
- \if@ovl \else \kern \@ovdx \fi
- \kern \@ovri}}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@circle}{default units}%
-\def\@circle#1{%
- \begingroup \boxmaxdepth \maxdimen
- \@defaultunitsset\@tempdimb{#1}\unitlength
- \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
- \@ovro\ht\@tempboxa
- \setbox\@tempboxa\hbox{\@circlefnt
- \advance\@tempcnta\tw@ \char \@tempcnta
- \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
- \advance\@tempcnta\tw@
- \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
- \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
- \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
- \else \@circ\@tempdimb{96}\fi\endgroup}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@circle}{default units}%
-\def\@circle#1{%
- \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
- \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
- \@ovro\ht\@tempboxa
- \setbox\@tempboxa\hbox{\@circlefnt
- \advance\@tempcnta\tw@ \char \@tempcnta
- \advance\@tempcnta\m@ne \char \@tempcnta
- \kern -2\@tempdima
- \advance\@tempcnta\tw@
- \raise \@tempdima \hbox{\char\@tempcnta}%
- \raise \@tempdima
- \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
- \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
- \else \@circ\@tempdimb{96}\fi\endgroup}
+ \fi}%
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
- {\@dot}{default units}%
-\def\@dot#1{%
- \@defaultunitsset\@tempdimb{#1}\unitlength
- \@circ\@tempdimb{112}}
+ {\addvspace}{\addvspace calc support}%
+\def\addvspace#1{%
+ \ifvmode
+ \if@minipage\else
+ \ifdim \lastskip =\z@
+ \@vspace@calcify{#1}%
+ \else
+ \setlength\@tempskipb{#1}%
+ \@xaddvskip
+ \fi
+ \fi
+ \else
+ \@noitemerr
+ \fi}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@dot}{default units}%
-\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
+ {\addvspace}{\addvspace calc support}%
+
+\def\addvspace#1{%
+ \ifvmode
+ \if@minipage\else
+ \ifdim \lastskip =\z@
+ \vskip #1\relax
+ \else
+ \@tempskipb#1\relax
+ \@xaddvskip
+ \fi
+ \fi
+ \else
+ \@noitemerr
+ \fi}
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@bezier}{default units}%
-\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
- \ifnum #1=\z@
- \@defaultunitsset\@ovxx{#4}\unitlength
- \@defaultunitsset{\advance\@ovxx}{-#2}\unitlength
- \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
- \@defaultunitsset\@ovdx{#6}\unitlength
- \@defaultunitsset{\advance\@ovdx}{-#4}\unitlength
- \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
- \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
- \@defaultunitsset\@ovyy{#5}\unitlength
- \@defaultunitsset{\advance\@ovyy}{-#3}\unitlength
- \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
- \@defaultunitsset\@ovdy{#7}\unitlength
- \@defaultunitsset{\advance\@ovdy}{-#5}\unitlength
- \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi
- \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi
- \@multicnt
- \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
- \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
- \ifnum \qbeziermax<\@multicnt
- \@multicnt\qbeziermax\relax
+\IncludeInRelease{2015/01/01}%
+ {\addpenalty}{\addpenalty}%
+\def\addpenalty#1{%
+ \ifvmode
+ \if@minipage
+ \else
+ \if@nobreak
+ \else
+ \ifdim\lastskip=\z@
+ \penalty#1\relax
+ \else
+ \@tempskipb\lastskip
+ \begingroup
+ \@tempskipa\@tempskipb
+ \advance \@tempskipb
+ \ifdim\prevdepth>\maxdepth\maxdepth\else
+ \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi
+ \fi
+ \vskip -\@tempskipb
+ \penalty#1%
+ \ifdim\@tempskipa=\@tempskipb
+ \else
+ \advance\@tempskipb -\@tempskipa
+ \vskip \@tempskipb
+ \fi
+ \vskip \@tempskipa
+ \endgroup
+ \fi
\fi
- \else \@multicnt#1\relax \fi
- \@tempcnta\@multicnt \advance\@tempcnta\@ne
- \@defaultunitsset\@ovdx{#4}\unitlength
- \@defaultunitsset{\advance\@ovdx}{-#2}\unitlength
- \multiply\@ovdx \tw@
- \@defaultunitsset\@ovxx{#6}\unitlength
- \@defaultunitsset{\advance\@ovxx}{-#2}\unitlength
- \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
- \@defaultunitsset\@ovdy{#5}\unitlength
- \@defaultunitsset{\advance\@ovdy}{-#3}\unitlength
- \multiply\@ovdy \tw@
- \@defaultunitsset\@ovyy{#7}\unitlength
- \@defaultunitsset{\advance\@ovyy}{-#3}\unitlength
- \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
- \setbox\@tempboxa\hbox{%
- \hskip -\@halfwidth
- \vrule \@height\@halfwidth
- \@depth \@halfwidth
- \@width \@wholewidth}%
- \put(#2,#3){%
- \count@\z@
- \@whilenum{\count@<\@tempcnta}\do
- {\@xdim\count@\@ovxx
- \advance\@xdim\@ovdx
- \divide\@xdim\@multicnt
- \multiply\@xdim\count@
- \@ydim\count@\@ovyy
- \advance\@ydim\@ovdy
- \divide\@ydim\@multicnt
- \multiply\@ydim\count@
- \raise \@ydim
- \hb@xt@\z@{\kern\@xdim
- \unhcopy\@tempboxa\hss}%
- \advance\count@\@ne}}}
+ \fi
+ \else
+ \@noitemerr
+ \fi}%
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@bezier}{default units}%
-\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
- \ifnum #1=\z@
- \@ovxx #4\unitlength
- \advance\@ovxx -#2\unitlength
- \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
- \@ovdx #6\unitlength
- \advance\@ovdx -#4\unitlength
- \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
- \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
- \@ovyy #5\unitlength
- \advance\@ovyy -#3\unitlength
- \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
- \@ovdy #7\unitlength
- \advance\@ovdy -#5\unitlength
- \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi
- \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi
- \@multicnt
- \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
- \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
- \ifnum
- \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax
+ {\addpenalty}{\addpenalty}%
+\def\addpenalty#1{%
+ \ifvmode
+ \if@minipage
+ \else
+ \if@nobreak
+ \else
+ \ifdim\lastskip=\z@
+ \penalty#1\relax
+ \else
+ \@tempskipb\lastskip
+ \vskip -\lastskip
+ \penalty#1%
+ \vskip\@tempskipb
+ \fi
\fi
- \else \@multicnt#1\relax \fi
- \@tempcnta\@multicnt \advance\@tempcnta\@ne
- \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength
- \multiply\@ovdx \tw@
- \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength
- \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
- \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength
- \multiply\@ovdy \tw@
- \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength
- \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
- \setbox\@tempboxa\hbox{%
- \hskip -\@halfwidth
- \vrule \@height\@halfwidth
- \@depth \@halfwidth
- \@width \@wholewidth}%
- \put(#2,#3){%
- \count@\z@
- \@whilenum{\count@<\@tempcnta}\do
- {\@xdim\count@\@ovxx
- \advance\@xdim\@ovdx
- \divide\@xdim\@multicnt
- \multiply\@xdim\count@
- \@ydim\count@\@ovyy
- \advance\@ydim\@ovdy
- \divide\@ydim\@multicnt
- \multiply\@ydim\count@
- \raise \@ydim
- \hb@xt@\z@{\kern\@xdim
- \unhcopy\@tempboxa\hss}%
- \advance\count@\@ne}}}
+ \fi
+ \else
+ \@noitemerr
+ \fi}%
\EndIncludeInRelease
-\IncludeInRelease{2019/10/01}%
- {\bezier}{Make commands robust}%
-\MakeRobust\bezier
-\MakeRobust\circle
-\MakeRobust\dashbox
-\MakeRobust\line
-\MakeRobust\linethickness
-\MakeRobust\multiput
-\MakeRobust\oval
-\MakeRobust\put
-\MakeRobust\qbezier
-\MakeRobust\shortstack
-\MakeRobust\thinlines
-\MakeRobust\vector
+\IncludeInRelease{2020/10/01}%
+ {\@vspace}{Support calc in \vspace}%
+\def\@vspace #1{%
+ \ifvmode
+ \@vspace@calcify{#1}%
+ \vskip\z@skip
+ \else
+ \@bsphack
+ \vadjust{\@restorepar
+ \@vspace@calcify{#1}%
+ \vskip\z@skip
+ }%
+ \@esphack
+ \fi}
+\def\@vspacer#1{%
+ \ifvmode
+ \dimen@\prevdepth
+ \hrule \@height\z@
+ \nobreak
+ \@vspace@calcify{#1}%
+ \vskip\z@skip
+ \prevdepth\dimen@
+ \else
+ \@bsphack
+ \vadjust{\@restorepar
+ \hrule \@height\z@
+ \nobreak
+ \@vspace@calcify{#1}%
+ \vskip\z@skip}%
+ \@esphack
+ \fi}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\bezier}{Make commands robust}%
-
-\kernel@make@fragile\bezier
-\kernel@make@fragile\circle
-\kernel@make@fragile\dashbox
-\kernel@make@fragile\line
-\kernel@make@fragile\linethickness
-\kernel@make@fragile\multiput
-\kernel@make@fragile\oval
-\kernel@make@fragile\put
-\kernel@make@fragile\qbezier
-\kernel@make@fragile\shortstack
-\kernel@make@fragile\thinlines
-\kernel@make@fragile\vector
+ {\@vspace}{Support calc in \vspace}%
+\def\@vspace #1{%
+ \ifvmode
+ \vskip #1
+ \vskip\z@skip
+ \else
+ \@bsphack
+ \vadjust{\@restorepar
+ \vskip #1
+ \vskip\z@skip
+ }%
+ \@esphack
+ \fi}
+\def\@vspacer#1{%
+ \ifvmode
+ \dimen@\prevdepth
+ \hrule \@height\z@
+ \nobreak
+ \vskip #1
+ \vskip\z@skip
+ \prevdepth\dimen@
+ \else
+ \@bsphack
+ \vadjust{\@restorepar
+ \hrule \@height\z@
+ \nobreak
+ \vskip #1
+ \vskip\z@skip}%
+ \@esphack
+ \fi}
\EndIncludeInRelease
-%%% From File: ltthm.dtx
-%%% From File: ltsect.dtx
-\IncludeInRelease{2019/10/01}%
- {\title}{Make commands robust}%
-\DeclareRobustCommand\title[1]{\gdef\@title{#1}}
-\DeclareRobustCommand*\author[1]{\gdef\@author{#1}}
-\DeclareRobustCommand*\date[1]{\gdef\@date{#1}}
-\DeclareRobustCommand\thanks[1]{\footnotemark
- \protected@xdef\@thanks{\@thanks
- \protect\footnotetext[\the\c@footnote]{#1}}%
-}
-\DeclareRobustCommand\and{% % \begin{tabular}
- \end{tabular}%
- \hskip 1em \@plus.17fil%
- \begin{tabular}[t]{c}}% % \end{tabular}
+\IncludeInRelease{2015/01/01}%
+ {\@}{Space after \@}%
+\def\@{\spacefactor\@m{}}%
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\title}{Make commands robust}%
-
-\kernel@make@fragile\title
-\kernel@make@fragile\author
-\kernel@make@fragile\date
-\kernel@make@fragile\thanks
-\kernel@make@fragile\and
-
+ {\@}{Space after \@}%
+\def\@{\spacefactor\@m}%
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
- {\addcontentsline}{fourth argument}%
-\def\addcontentsline#1#2#3{%
- \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}{}%
- \protected@file@percent}}
-\EndIncludeInRelease
-\IncludeInRelease{2018/12/01}%
- {\addcontentsline}{Mask line endings}%
- \def\addcontentsline#1#2#3{%
- \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}%
- \protected@file@percent}}
+ {\@hspace}{Support calc with \hspace}%
+\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\addcontentsline}{Mask line endings}%
-\def\addcontentsline#1#2#3{%
- \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
+ {\@hspace}{Support calc with \hspace}%
+
+
+\def\@hspace#1{\hskip #1\relax}
\EndIncludeInRelease
\IncludeInRelease{2018/12/01}%
- {\@dottedtocline}{Prevent protrusion}%
-\def\@dottedtocline#1#2#3#4#5{%
- \ifnum #1>\c@tocdepth \else
- \vskip \z@ \@plus.2\p@
- {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
- \parindent #2\relax\@afterindenttrue
- \interlinepenalty\@M
- \leavevmode
- \@tempdima #3\relax
- \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
- {#4}\nobreak
- \leaders\hbox{$\m@th
- \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
- mu$}\hfill
- \nobreak
- \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5%
- \kern-\p@\kern\p@}%
- \par}%
- \fi}
-
-\DeclareRobustCommand\noprotrusion{\leavevmode\kern-\p@\kern\p@}
+ {\thinspace}{Start LR-mode}%
+\DeclareRobustCommand\enspace{\leavevmode@ifvmode\kern.5em }
+\protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@dottedtocline}{Prevent protrusion}%
-\def\@dottedtocline#1#2#3#4#5{%
- \ifnum #1>\c@tocdepth \else
- \vskip \z@ \@plus.2\p@
- {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
- \parindent #2\relax\@afterindenttrue
- \interlinepenalty\@M
- \leavevmode
- \@tempdima #3\relax
- \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
- {#4}\nobreak
- \leaders\hbox{$\m@th
- \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
- mu$}\hfill
- \nobreak
- \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
- \par}%
- \fi}
-
-\let\noprotrusion\@undefined
+ {\thinspace}{Start LR-mode}%
+\def\thinspace{\kern .16667em }
+\def\negthinspace{\kern-.16667em }
+\def\enspace{\kern.5em }
+\let\leavevmode@ifvmode\@undefined
\EndIncludeInRelease
+%%% From File: ltlogos.dtx
%%% From File: ltfiles.dtx
\IncludeInRelease{2020/10/01}%
{\document}{Added hook to load l3backend code}%
@@ -3778,3302 +3798,1110 @@ of this package available from CTAN}
{\setlength}{Using \setlength with \dimen0}%
\def\setlength#1#2{#1#2\relax}
\EndIncludeInRelease
-%%% From File: ltfloat.dtx
-\IncludeInRelease{2015/01/01}%
- {\@xfloat}{Check float options}%
-\def\@xfloat #1[#2]{%
- \@nodocument
- \def \@captype {#1}%
- \def \@fps {#2}%
- \@onelevel@sanitize \@fps
- \def \reserved@b {!}%
- \ifx \reserved@b \@fps
- \@fpsadddefault
+%%% From File: ltfssbas.dtx
+%% Copyright (C) 1989-2002 Frank Mittelbach and Rainer Sch\"opf
+\IncludeInRelease{2020/02/02}%
+ {\DeclareFontShape@}{Maybe drop one m}%
+\def\DeclareFontShape@#1#2#3#4#5#6{%
+ \expandafter\ifx\csname #1+#2\endcsname\relax
+ \@latex@error{Font family `#1+#2' unknown}\@eha
\else
- \ifx \@fps \@empty
- \@fpsadddefault
+ \edef\reserved@a{#3}%
+ \series@maybe@drop@one@m\reserved@a\reserved@b
+ \ifx\reserved@a\reserved@b\else
+ \@latex@warning{Font shape declaration has incorrect series
+ value `#3'.\MessageBreak It should not contain an `m'!
+ Please correct it.\MessageBreak Found}%
\fi
+ \expandafter
+ \xdef\csname#1/#2/\reserved@b/#4\endcsname
+ {\expandafter\noexpand\csname #5\endcsname}%
+ \def\reserved@a{#6}%
+ \global
+ \expandafter\let\csname#5\expandafter\endcsname
+ \ifx\reserved@a\@empty
+ \@empty
+ \else
+ \reserved@a
+ \fi
\fi
- \ifhmode
- \@bsphack
- \@floatpenalty -\@Mii
- \else
- \@floatpenalty-\@Miii
- \fi
- \ifinner
- \@parmoderr\@floatpenalty\z@
- \else
- \@next\@currbox\@freelist
- {%
- \@tempcnta \sixt@@n
- \expandafter \@tfor \expandafter \reserved@a
- \expandafter :\expandafter =\@fps
- \do
- {%
- \if \reserved@a h%
- \ifodd \@tempcnta
- \else
- \advance \@tempcnta \@ne
- \fi
- \else\if \reserved@a t%
- \@setfpsbit \tw@
- \else\if \reserved@a b%
- \@setfpsbit 4%
- \else\if \reserved@a p%
- \@setfpsbit 8%
- \else\if \reserved@a !%
- \ifnum \@tempcnta>15
- \advance\@tempcnta -\sixt@@n\relax
- \fi
- \else
- \@latex@error{Unknown float option `\reserved@a'}%
- {Option `\reserved@a' ignored and `p' used.}%
- \@setfpsbit 8%
- \fi\fi\fi\fi\fi
- }%
- \@tempcntb \csname ftype@\@captype \endcsname
- \multiply \@tempcntb \@xxxii
- \advance \@tempcnta \@tempcntb
- \global \count\@currbox \@tempcnta
- }%
- \@fltovf
- \fi
- \global \setbox\@currbox
- \color@vbox
- \normalcolor
- \vbox \bgroup
- \hsize\columnwidth
- \@parboxrestore
- \@floatboxreset
-}%
+ }
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@xfloat}{Check float options}%
-\def\@xfloat #1[#2]{%
- \@nodocument
- \def \@captype {#1}%
- \def \@fps {#2}%
- \@onelevel@sanitize \@fps
- \def \reserved@b {!}%
- \ifx \reserved@b \@fps
- \@fpsadddefault
- \else
- \ifx \@fps \@empty
- \@fpsadddefault
- \fi
- \fi
- \ifhmode
- \@bsphack
- \@floatpenalty -\@Mii
+ {\DeclareFontShape@}{Maybe drop one m}%
+
+\def\DeclareFontShape@#1#2#3#4#5#6{%
+ \expandafter\ifx\csname #1+#2\endcsname\relax
+ \@latex@error{Font family `#1+#2' unknown}\@eha
\else
- \@floatpenalty-\@Miii
+ \expandafter
+ \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand
+ \csname #5\endcsname}%
+ \def\reserved@a{#6}%
+ \global
+ \expandafter\let\csname#5\expandafter\endcsname
+ \ifx\reserved@a\@empty
+ \@empty
+ \else
+ \reserved@a
+ \fi
\fi
- \ifinner
- \@parmoderr\@floatpenalty\z@
- \else
- \@next\@currbox\@freelist
- {%
- \@tempcnta \sixt@@n
- \expandafter \@tfor \expandafter \reserved@a
- \expandafter :\expandafter =\@fps
- \do
- {%
- \if \reserved@a h%
- \ifodd \@tempcnta
- \else
- \advance \@tempcnta \@ne
- \fi
- \fi
- \if \reserved@a t%
- \@setfpsbit \tw@
- \fi
- \if \reserved@a b%
- \@setfpsbit 4%
- \fi
- \if \reserved@a p%
- \@setfpsbit 8%
- \fi
- \if \reserved@a !%
- \ifnum \@tempcnta>15
- \advance\@tempcnta -\sixt@@n\relax
- \fi
- \fi
- }%
- \@tempcntb \csname ftype@\@captype \endcsname
- \multiply \@tempcntb \@xxxii
- \advance \@tempcnta \@tempcntb
- \global \count\@currbox \@tempcnta
- }%
- \@fltovf
- \fi
- \global \setbox\@currbox
- \color@vbox
- \normalcolor
- \vbox \bgroup
- \hsize\columnwidth
- \@parboxrestore
- \@floatboxreset
-}%
+ }
\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\end@dblfloat}{float order in 2-column}%
-\def\end@dblfloat{%
- \if@twocolumn
- \@endfloatbox
- \ifnum\@floatpenalty <\z@
- \@largefloatcheck
- \global\dp\@currbox1sp %
- \@cons\@currlist\@currbox
- \ifnum\@floatpenalty <-\@Mii
- \penalty -\@Miv
- \@tempdima\prevdepth
- \vbox{}%
- \prevdepth\@tempdima
- \penalty\@floatpenalty
- \else
- \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
- \fi
- \fi
+\IncludeInRelease{2015/01/01}{\@DeclareMathSizes}%
+ {Arbitrary units in \DeclareMathSizes}%
+\def\@DeclareMathSizes #1#2#3#4#5{%
+ \@defaultunits\dimen@ #2pt\relax\@nnil
+ \if $#3$%
+ \expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse
\else
- \end@float
- \fi
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\end@dblfloat}{float order in 2-column}%
-\def\end@dblfloat{%
-\if@twocolumn
- \@endfloatbox
- \ifnum\@floatpenalty <\z@
- \@largefloatcheck
- \@cons\@dbldeferlist\@currbox
+ \@defaultunits\dimen@ii #3pt\relax\@nnil
+ \@defaultunits\@tempdima #4pt\relax\@nnil
+ \@defaultunits\@tempdimb #5pt\relax\@nnil
+ \toks@{#1}%
+ \expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{%
+ \gdef\noexpand\tf@size{\strip@pt\dimen@ii}%
+ \gdef\noexpand\sf@size{\strip@pt\@tempdima}%
+ \gdef\noexpand\ssf@size{\strip@pt\@tempdimb}%
+ \the\toks@
+ }%
\fi
- \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
-\else
- \end@float
-\fi
}%
\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@dblfloatplacement}{float order in 2-column}%
-\def\@dblfloatplacement{\global\@dbltopnum\c@dbltopnumber
- \global\@dbltoproom \dbltopfraction\@colht
- \@textmin \@colht
- \advance \@textmin -\@dbltoproom
- \@fpmin \dblfloatpagefraction\textheight
- \@fptop \@dblfptop
- \@fpsep \@dblfpsep
- \@fpbot \@dblfpbot
- \def\f@depth{1sp}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@dblfloatplacement}{float order in 2-column}%
-\def \@dblfloatplacement {%
- \global \@dbltopnum \c@dbltopnumber
- \global \@dbltoproom \dbltopfraction\@colht
- \@textmin \@colht
- \advance \@textmin -\@dbltoproom
- \@fpmin \dblfloatpagefraction\textheight
- \@fptop \@dblfptop
- \@fpsep \@dblfpsep
- \@fpbot \@dblfpbot
-}%
+\IncludeInRelease{0000/00/00}{\@DeclareMathSizes}%
+ {Arbitrary units in \DeclareMathSizes}%
+\def\@DeclareMathSizes#1#2#3#4#5{%
+ \@defaultunits\dimen@#2pt\relax\@nnil
+ \if$#3$%
+ \expandafter \let
+ \csname S@\strip@pt\dimen@\endcsname
+ \math@fontsfalse
+ \else
+ \expandafter \gdef
+ \csname S@\strip@pt\dimen@\endcsname
+ {\gdef\tf@size{#3}\gdef\sf@size{#4}%
+ \gdef\ssf@size{#5}%
+ #1%
+ }%
+ \fi}%
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@textsuperscript}{superscript baseline}%
-\def\@textsuperscript#1{%
- {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\sf@size#1}}}}}
+\IncludeInRelease{2020/02/02}%
+ {\usefont}{Drop m in usefont}%
+\DeclareRobustCommand\usefont[4]{\fontencoding{#1}%
+ \edef\f@family{#2}%
+ \set@target@series{#3}%
+ \edef\f@shape{#4}\selectfont
+ \ignorespaces}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@textsuperscript}{superscript baseline}%
+ {\usefont}{Drop m in usefont}%
-\def\@textsuperscript#1{%
- {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\textsubscript}{\textsubscript}%
-\DeclareRobustCommand*\textsubscript[1]{%
- \@textsubscript{\selectfont#1}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\textsubscript}{\textsubscript}%
-\let\textsubscript\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@textsubscript}{subscript baseline}%
-\def\@textsubscript#1{%
- {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\sf@size#1}}}}}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@textsubscript}{subscript baseline}%
+\DeclareRobustCommand\usefont[4]{\fontencoding{#1}%
+ \edef\f@family{#2}%
+ \edef\f@series{#3}%
+ \edef\f@shape{#4}\selectfont
+ \ignorespaces}
-\def\@textsubscript#1{%
- {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@textsubscript}{subscript baseline}%
-\let\@textsubscript\@undefined
\EndIncludeInRelease
-%%% From File: ltidxglo.dtx
-%%% From File: ltbibl.dtx
-%%% From File: ltpage.dtx
-\IncludeInRelease{2019/10/01}%
- {\markboth}{Make commands robust}%
-\DeclareRobustCommand*\markboth[2]{%
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \unrestored@protected@xdef\@themark {{#1}{#2}}%
- \@temptokena \expandafter{\@themark}%
- \mark{\the\@temptokena}%
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi}
-\DeclareRobustCommand*\markright[1]{%
+\IncludeInRelease{2020/02/02}%
+ {\LoadFontDefinitionFile}{Loading .fd files}%
+\def\LoadFontDefinitionFile#1#2{%
\begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark {#1}%
- \@temptokena \expandafter{\@themark}%
- \mark{\the\@temptokena}%
+ \edef\f@encoding{#1}%
+ \edef\f@family{#2}%
+ \try@load@fontshape
\endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\markboth}{Make commands robust}%
-
-\kernel@make@fragile\markboth
-\kernel@make@fragile\markright
-
-\EndIncludeInRelease
-%%
-%% File: ltfilehook.dtx (C) Copyright 2020 Frank Mittelbach,
-%% Phelype Oleinik & LaTeX Team
-%%% From File: ltfilehook.dtx
-\providecommand\ltfilehookversion{v1.0c}
-\providecommand\ltfilehookdate{2020/10/18}
-\IncludeInRelease{2020/10/01}%
- {\CurrentFile}{Hook management file}%
-\ExplSyntaxOn
-\tl_new:N \CurrentFile
-\tl_new:N \CurrentFilePath
-\tl_new:N \CurrentFileUsed
-\tl_new:N \CurrentFilePathUsed
-\ExplSyntaxOff
+}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\CurrentFile}{Hook management file}%
-
-\let \CurrentFile \@undefined
-\let \CurrentFilePath \@undefined
-\let \CurrentFileUsed \@undefined
-\let \CurrentFilePathUsed \@undefined
+ {\LoadFontDefinitionFile}{Loading .fd files}%
+\let\LoadFontDefinitionFile\@undefined
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\__filehook_file_parse_full_name:nN}{File helpers}%
-\ExplSyntaxOn
-\cs_new:Npn \__filehook_file_parse_full_name:nN #1
- {
- \exp_args:Nf \file_parse_full_name_apply:nN
- {
- \exp_args:Nf \__filehook_full_name:nn
- { \file_full_name:n {#1} } {#1}
- }
- }
-\cs_new:Npn \__filehook_full_name:nn #1 #2
- {
- \tl_if_empty:nTF {#1}
- { \tl_trim_spaces:n {#2} }
- { \tl_trim_spaces:n {#1} }
- }
-\cs_new:Npn \__filehook_if_no_extension:nTF #1
- {
- \exp_args:Ne \tl_if_empty:nTF
- { \file_parse_full_name_apply:nN {#1} \use_iii:nnn }
- }
-\cs_new_protected:Npn \__filehook_drop_extension:N #1
- {
- \tl_gset:Nx #1
- {
- \exp_args:NV \__filehook_file_parse_full_name:nN #1
- \__filehook_drop_extension_aux:nnn
- }
- }
-\cs_new:Npn \__filehook_drop_extension_aux:nnn #1 #2 #3
- { \tl_if_empty:nF {#1} { #1 / } #2 }
-\tl_new:N \l__filehook_internal_tl
-\seq_new:N \g__filehook_input_file_seq
-\cs_new_protected:Npn \__filehook_file_push:
- {
- \seq_gpush:Nx \g__filehook_input_file_seq
- {
- { \CurrentFilePathUsed } { \CurrentFileUsed }
- { \CurrentFilePath } { \CurrentFile }
- }
- }
-\cs_new_protected:Npn \__filehook_file_pop:
- {
- \seq_gpop:NNTF \g__filehook_input_file_seq \l__filehook_internal_tl
- { \exp_after:wN \__filehook_file_pop_assign:nnnn \l__filehook_internal_tl }
- {
- \msg_error:nnn { hooks } { should-not-happen }
- { Tried~to~pop~from~an~empty~file~name~stack. }
- }
- }
-\cs_new_protected:Npn \__filehook_file_pop_assign:nnnn #1 #2 #3 #4
- {
- \tl_set:Nn \CurrentFilePathUsed {#1}
- \tl_set:Nn \CurrentFileUsed {#2}
- \tl_set:Nn \CurrentFilePath {#3}
- \tl_set:Nn \CurrentFile {#4}
- }
-\ExplSyntaxOff
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\InputIfFileExists}{Hook management (files)}%
-\let\InputIfFileExists\@undefined
-\DeclareRobustCommand \InputIfFileExists[2]{%
- \IfFileExists{#1}%
- {%
- \@expl@@@filehook@file@push@@
- \@filehook@set@CurrentFile
- \edef\reserved@a{\@filef@und
- \@expl@@@filehook@file@pop@assign@@nnnn
- {\CurrentFilePathUsed}%
- {\CurrentFileUsed}%
- {\CurrentFilePath}%
- {\CurrentFile}}%
- \expandafter\@swaptwoargs\expandafter
- {\reserved@a}%
- {%
- #2%
- \@addtofilelist{#1}%
- \UseHook{file/before}%
- \UseHook{file/before/\CurrentFile}%
- \@@input
- }%
- \UseHook{file/after/\CurrentFile}%
- \UseHook{file/after}%
- \@expl@@@filehook@file@pop@@
- }%
+\IncludeInRelease{2020/02/02}%
+ {\DeclareFontFamilySubstitution}{Provide family substitution}%
+\begingroup
+\nfss@catcodes
+\gdef\DeclareFontFamilySubstitution#1#2#3{%
+ \LoadFontDefinitionFile{#1}{#2}%
+ \LoadFontDefinitionFile{#1}{#3}%
+ \DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}%
+ \DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}%
+ \DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}%
+ \DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}%
+ \DeclareFontShape{#1}{#2}{m}{sw}{<->ssub * #3/m/sw}{}%
+ \DeclareFontShape{#1}{#2}{m}{scit}{<->ssub * #3/m/scit}{}%
+ \DeclareFontShape{#1}{#2}{m}{scsl}{<->ssub * #3/m/scsl}{}%
+ \DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/b/it}{}%
+ \DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/b/n}{}%
+ \DeclareFontShape{#1}{#2}{b}{scit}{<->ssub * #3/b/scit}{}%
+ \DeclareFontShape{#1}{#2}{b}{scsl}{<->ssub * #3/b/scsl}{}%
+ \DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/b/sc}{}%
+ \DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/b/sl}{}%
+ \DeclareFontShape{#1}{#2}{b}{sw}{<->ssub * #3/b/sw}{}%
+ \DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}%
+ \DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}%
+ \DeclareFontShape{#1}{#2}{bx}{scit}{<->ssub * #3/bx/scit}{}%
+ \DeclareFontShape{#1}{#2}{bx}{scsl}{<->ssub * #3/bx/scsl}{}%
+ \DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}%
+ \DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}%
+ \DeclareFontShape{#1}{#2}{bx}{sw}{<->ssub * #3/bx/sw}{}%
}
-\EndIncludeInRelease
-\IncludeInRelease{2019/10/01}%
- {\InputIfFileExists}{Hook management (files)}%
-
-\DeclareRobustCommand \InputIfFileExists[2]{%
- \IfFileExists{#1}%
- {%
- \expandafter\@swaptwoargs\expandafter
- {\@filef@und}{#2\@addtofilelist{#1}\@@input}}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\InputIfFileExists}{Hook management (files)}%
-\long\def \InputIfFileExists#1#2{%
- \IfFileExists{#1}%
- {#2\@addtofilelist{#1}\@@input \@filef@und}}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\__filehook_subst_add:nn}{Declaring file substitution}%
-\ExplSyntaxOn
-\cs_new_protected:Npn \__filehook_subst_add:nn #1 #2
- {
- \group_begin:
- \cs_set:cpx { } { \exp_not:o { \cs:w\cs_end: } }
- \int_set:Nn \tex_escapechar:D { -1 }
- \cs_gset:cpx { @file-subst@ \__filehook_subst_file_normalize:n {#1} }
- { \__filehook_subst_file_normalize:n {#2} }
- \group_end:
- }
-\cs_new_protected:Npn \__filehook_subst_remove:n #1
- {
- \group_begin:
- \cs_set:cpx { } { \exp_not:o { \cs:w\cs_end: } }
- \int_set:Nn \tex_escapechar:D { -1 }
- \cs_undefine:c { @file-subst@ \__filehook_subst_file_normalize:n {#1} }
- \group_end:
- }
-\cs_new:Npn \__filehook_subst_file_normalize:n #1
- {
- \exp_after:wN \__filehook_subst_empty_name_chk:NN
- \cs:w \exp_after:wN \cs_end:
- \cs:w \__filehook_file_parse_full_name:nN {#1} \use_ii_iii:nnn \cs_end:
- }
-\cs_new:Npn \__filehook_subst_empty_name_chk:NN #1 #2
- { \if_meaning:w #1 #2 .tex \else: \token_to_str:N #2 \fi: }
-\cs_gset:Npn \use_ii_iii:nnn #1 #2 #3 {#2 #3}
-\ExplSyntaxOff
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\declare@file@substitution}{File substitution}%
-\ExplSyntaxOn
-\cs_new_eq:NN \declare@file@substitution \__filehook_subst_add:nn
-\cs_new_eq:NN \undeclare@file@substitution \__filehook_subst_remove:n
-\ExplSyntaxOff
+\endgroup
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\declare@file@substitution}{File substitution}%
+ {\DeclareFontFamilySubstitution}{Provide family substitution}%
-\let \declare@file@substitution \@undefined
-\let \undeclare@file@substitution \@undefined
-
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\set@curr@file}{Setting current file name}%
-\def\set@curr@file#1{%
- \begingroup
- \escapechar\m@ne
- \expandafter\def\csname\expandafter\endcsname
- \expandafter{\csname\endcsname}%
- \@expl@@@filehook@if@no@extension@@nTF{#1}%
- {\@tempswatrue}{\@tempswafalse}%
- \@kernel@make@file@csname\@curr@file
- \@expl@@@filehook@resolve@file@subst@@w {#1}%
- \@expl@@@filehook@if@file@replaced@@TF
- {\@kernel@make@file@csname\@curr@file@reqd
- \@expl@@@filehook@normalize@file@name@@w{#1}%
- \if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file@reqd \fi}%
- {\if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file \fi
- \global\let\@curr@file@reqd\@curr@file}%
- \endgroup}
+\let\DeclareFontFamilySubstitution\@undefined
\EndIncludeInRelease
\IncludeInRelease{2019/10/01}%
- {\set@curr@file}{Setting current file name}%
-\def\set@curr@file#1{%
- \begingroup
- \escapechar\m@ne
- \xdef\@curr@file{%
- \expandafter\expandafter\expandafter\unquote@name
- \expandafter\expandafter\expandafter{%
- \expandafter\string
- \csname\@firstofone#1\@empty\endcsname}}%
- \endgroup
+ {\DeclareErrorFont}{No side effects please}%
+\def\DeclareErrorFont#1#2#3#4#5{%
+ \xdef\error@fontshape{%
+ \noexpand\expandafter\noexpand\split@name\noexpand\string
+ \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
+ \noexpand\@nil}%
+ \gdef\default@family{#2}%
+ \gdef\default@series{#3}%
+ \gdef\default@shape{#4}%
}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\set@curr@file}{Setting current file name}%
-\let\set@curr@file\@undefined
+ {\DeclareErrorFont}{No side effects please}%
+
+\def\DeclareErrorFont#1#2#3#4#5{%
+ \xdef\error@fontshape{%
+ \noexpand\expandafter\noexpand\split@name\noexpand\string
+ \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
+ \noexpand\@nil}%
+ \gdef\default@family{#2}%
+ \gdef\default@series{#3}%
+ \gdef\default@shape{#4}%
+ \global\let\f@family\default@family
+ \global\let\f@series\default@series
+ \global\let\f@shape\default@shape
+ \gdef\f@size{#5}%
+ \gdef\f@baselineskip{#5pt}%
+}
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@kernel@make@file@csname}{Make file csname}%
-\def\@kernel@make@file@csname#1#2#3{%
- \xdef#1{\expandafter\@set@curr@file@aux
- \csname\expandafter#2\@firstofone#3\@nil\endcsname}}
-\def\@set@curr@file@aux#1{%
- \expandafter\ifx\csname\endcsname#1%
- .tex\else\string#1\fi}
-\def\@filehook@set@CurrentFile{%
- \@expl@@@filehook@set@curr@file@@nNN{\@curr@file}%
- \CurrentFileUsed\CurrentFilePathUsed
- \ifx\@curr@file@reqd\@curr@file
- \let\CurrentFile\CurrentFileUsed
- \let\CurrentFilePath\CurrentFilePathUsed
+\IncludeInRelease{2015/01/01}{\wrong@fontshape}%
+ {Font substitution in preamble}%
+\def\wrong@fontshape{%
+ \csname D@\f@encoding\endcsname % install defaults if in math
+ \edef\reserved@a{\csname\curr@fontshape\endcsname}%
+ \ifx\last@fontshape\reserved@a
+ \errmessage{Corrupted NFSS tables}%
+ \error@fontshape
\else
- \@expl@@@filehook@set@curr@file@@nNN{\@curr@file@reqd}%
- \CurrentFile\CurrentFilePath
- \fi}
+ \let\f@shape\default@shape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@series\default@series
+ \expandafter
+ \ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@family\default@family
+ \begingroup
+ \try@load@fontshape
+ \endgroup
+ \fi \fi
+ \fi
+ \@font@warning{Font shape `\expandafter\string\reserved@a'
+ \expandafter\@gobble\string\@undefined\MessageBreak
+ using `\curr@fontshape' instead\@wrong@font@char}%
+ \global\let\last@fontshape\reserved@a
+ \gdef\@defaultsubs{%
+ \@font@warning{Some font shapes were not available, defaults
+ substituted.\@gobbletwo}}%
+ \global\expandafter\expandafter\expandafter\let
+ \expandafter\reserved@a
+ \csname\curr@fontshape\endcsname
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font}
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {@@_set_curr_file:nNN}{Set curr file}%
-\ExplSyntaxOn
-\cs_new_protected:Npn \__filehook_set_curr_file:nNN #1
- {
- \exp_args:Nf \__filehook_file_parse_full_name:nN {#1}
- \__filehook_set_curr_file_assign:nnnNN
- }
-\cs_new_protected:Npn \__filehook_set_curr_file_assign:nnnNN #1 #2 #3 #4 #5
- {
- \str_set:Nn #5 {#1}
- \str_set:Nn #4 {#2#3}
- }
-\ExplSyntaxOff
+\IncludeInRelease{0000/00/00}{\wrong@fontshape}%
+ {Font substitution in preamble}%
+\def\wrong@fontshape{%
+ \csname D@\f@encoding\endcsname
+ \edef\reserved@a{\csname\curr@fontshape\endcsname}%
+ \ifx\last@fontshape\reserved@a
+ \errmessage{Corrupted NFSS tables}%
+ \error@fontshape
+ \else
+ \let\f@shape\default@shape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@series\default@series
+ \expandafter
+ \ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@family\default@family
+ \fi \fi
+ \fi
+ \@font@warning{Font shape
+ `\expandafter\string\reserved@a'
+ \expandafter\@gobble\string\@undefined
+ \MessageBreak
+ using `\curr@fontshape' instead\@wrong@font@char}%
+ \global\let\last@fontshape\reserved@a
+ \gdef\@defaultsubs{%
+ \@font@warning{Some font shapes were not available,
+ defaults substituted.\@gobbletwo}}%
+ \global\expandafter\expandafter\expandafter\let
+ \expandafter\reserved@a
+ \csname\curr@fontshape\endcsname
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font}
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\__filehook_resolve_file_subst:w}{Replace files detect loops}%
-\ExplSyntaxOn
-\cs_new:Npn \__filehook_resolve_file_subst:w #1 \@nil
- { \__filehook_file_parse_full_name:nN {#1} \__filehook_file_subst_begin:nnn }
-\cs_new:Npn \__filehook_normalize_file_name:w #1 \@nil
- { \__filehook_file_parse_full_name:nN {#1} \__filehook_file_name_compose:nnn }
-\cs_new:Npn \__filehook_file_name_compose:nnn #1 #2 #3
- { \tl_if_empty:nF {#1} { #1 / } #2#3 }
-\flag_new:n { __filehook_file_replaced }
-\cs_new:Npn \__filehook_if_file_replaced:TF #1 #2
- { \flag_if_raised:nTF { __filehook_file_replaced } {#1} {#2} }
-\cs_new:Npn \__filehook_file_subst_begin:nnn #1 #2 #3
- {
- \__filehook_file_subst_tortoise_hare:nn { #2#3 } { #2#3 }
- { \__filehook_file_name_compose:nnn {#1} {#2} {#3} }
- }
-\ExplSyntaxOff
+\IncludeInRelease{2017/01/01}{\showhyphens}%
+ {XeTeX support for \showhyphens}%
+\ifx\XeTeXcharclass\@undefined
+\DeclareRobustCommand\showhyphens[1]{%
+ \setbox0\vbox{%
+ \color@begingroup
+ \everypar{}%
+ \parfillskip\z@skip\hsize\maxdimen
+ \normalfont
+ \pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1%
+ \color@endgroup}}
+\else
+\DeclareRobustCommand\showhyphens[1]{%
+ \setbox0\vbox{%
+ \usefont{TU}{lmr}{m}{n}%
+ \hsize 1sp %
+ \hbadness\@M
+ \hfuzz\maxdimen
+ \tracingonline\z@
+ \everypar={}%
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \parfillskip\z@skip
+ \hyphenpenalty=-\@M
+ \pretolerance\m@ne
+ \interlinepenalty\z@
+ \clubpenalty\z@
+ \widowpenalty\z@
+ \brokenpenalty1127 %
+ \setbox\z@\hbox{}%
+ \noindent
+ \hskip\z@skip
+ #1%
+ \par
+ \loop
+ \@tempswafalse
+ \ifnum\lastnodetype=11\unskip\@tempswatrue\fi
+ \ifnum\lastnodetype=12\unkern\@tempswatrue\fi
+ \ifnum\lastnodetype=13 %
+ \count@\lastpenalty
+ \unpenalty\@tempswatrue
+ \fi
+ \ifnum\lastnodetype=\@ne
+ \setbox\tw@\lastbox\@tempswatrue
+ \setbox0\hbox{\unhbox\tw@\unskip\unskip\unpenalty
+ \ifnum\count@=1127 \else\ \fi
+ \unhbox0}%
+ \count@\z@
+ \fi
+ \if@tempswa
+ \repeat
+ \hbadness\z@
+ \hsize\maxdimen
+ \showboxdepth\z@
+ \tolerance\m@ne
+ \hyphenpenalty\z@
+ \noindent\unhbox\z@
+}}
+\fi
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\__filehook_file_subst_tortoise_hare:nn}{Tortoise and Hare}%
-\ExplSyntaxOn
-\cs_new:Npn \__filehook_file_subst_tortoise_hare:nn #1 #2 #3
- {
- \cs_if_exist:cTF { @file-subst@ #2 }
- {
- \flag_if_raised:nF { __filehook_file_replaced }
- { \flag_raise:n { __filehook_file_replaced } }
- \cs_if_exist:cTF { @file-subst@ \use:c { @file-subst@ #2 } }
- {
- \__filehook_file_subst_loop:cc
- { @file-subst@ #1 }
- { @file-subst@ \use:c { @file-subst@ #2 } }
- }
- { \use:c { @file-subst@ #2 } }
- }
- { #3 }
- }
-\cs_new:Npn \__filehook_file_subst_loop:NN #1 #2
- {
- \token_if_eq_meaning:NNTF #1 #2
- {
- .tex
- \__filehook_file_subst_cycle_error:cN { @file-subst@ #1 } #1
- }
- { \__filehook_file_subst_tortoise_hare:nn {#1} {#2} {#2} }
- }
-\cs_generate_variant:Nn \__filehook_file_subst_loop:NN { cc }
-\cs_new:Npn \__filehook_file_subst_cycle_error:NN #1 #2
- {
- \__kernel_msg_expandable_error:nnff { kernel } { file-cycle }
- {#1} { \use:c { @file-subst@ #1 } }
- \token_if_eq_meaning:NNF #1 #2
- { \__filehook_file_subst_cycle_error:cN { @file-subst@ #1 } #2 }
- }
-\cs_generate_variant:Nn \__filehook_file_subst_cycle_error:NN { c }
-\__kernel_msg_new:nnn { kernel } { file-cycle }
- { File~loop!~#1~replaced~by~#2... }
-\ExplSyntaxOff
+\IncludeInRelease{0000/00/00}{\showhyphens}%
+ {XeTeX support for \showhyphens}%
+\gdef\showhyphens#1{%
+ \setbox0\vbox{%
+ \color@begingroup
+ \everypar{}%
+ \parfillskip\z@skip\hsize\maxdimen
+ \normalfont
+ \pretolerance\m@ne\tolerance\m@ne
+ \hbadness\z@\showboxdepth\z@\ #1%
+ \color@endgroup}}
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\disable@package@load}{Disable packages}%
-\def\disable@package@load#1#2{%
- \global\@namedef{@pkg-disable@#1.\@pkgextension}{#2}}
-\def\@disable@packageload@do#1#2{%
- \@ifundefined{@pkg-disable@#1}{#2}%
- {\@nameuse{@pkg-disable@#1}}}
-\def\reenable@package@load#1{%
- \global\expandafter\let
- \csname @pkg-disable@#1.\@pkgextension \endcsname \@undefined}
+%%% From File: ltfssaxes.dtx
+%% Copyright (C) 1999-2020 Frank Mittelbach
+\IncludeInRelease{2020/02/02}%
+ {\DeclareFontSeriesChangeRule}{Series change rules}%
+\def\DeclareFontSeriesChangeRule#1#2#3#4{%
+ \@namedef{series@#1@#2}{{#3}{#4}}}
+\DeclareFontSeriesChangeRule {bc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {bc}{c}{bc}{}
+\DeclareFontSeriesChangeRule {bc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {bc}{ec}{bec} {bc}
+\DeclareFontSeriesChangeRule {bc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {bc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {bc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {bc}{sc}{bsc} {bc}
+\DeclareFontSeriesChangeRule {bc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {bc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {bc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {bc}{x}{bx}{}
+\DeclareFontSeriesChangeRule {bx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {bx}{c} {bc} {bx} %<-----
+\DeclareFontSeriesChangeRule {bx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {bx}{ec} {bec} {bx} %<-----
+\DeclareFontSeriesChangeRule {bx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {bx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {bx}{sb} {sbx} {}
+\DeclareFontSeriesChangeRule {bx}{sc} {bsc} {bx} %<-----
+\DeclareFontSeriesChangeRule {bx}{sl}{slx} {}
+\DeclareFontSeriesChangeRule {bx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {bx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {bx}{x}{bx}{}
+\DeclareFontSeriesChangeRule {b}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{c} {bc} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{ec} {bec} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{sb} {sb} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{sc} {bsc} {b} %<-----
+\DeclareFontSeriesChangeRule {b}{x} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {c}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {c}{b}{bc}{}
+\DeclareFontSeriesChangeRule {c}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {c}{el}{elc}{}
+\DeclareFontSeriesChangeRule {c}{l}{lc}{}
+\DeclareFontSeriesChangeRule {c}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {c}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {c}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {c}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {c}{x}{x}{m} %<-----
+\DeclareFontSeriesChangeRule {ebc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {ebc}{c}{ebc}{}
+\DeclareFontSeriesChangeRule {ebc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {ebc}{ec}{ebec}{ebc}
+\DeclareFontSeriesChangeRule {ebc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {ebc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {ebc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {ebc}{sc}{ebsc}{ebc}
+\DeclareFontSeriesChangeRule {ebc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {ebc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {ebc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {ebc}{x}{ebx}{}
+\DeclareFontSeriesChangeRule {ec}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {ec}{b}{bec}{}
+\DeclareFontSeriesChangeRule {ec}{eb}{ebec}{}
+\DeclareFontSeriesChangeRule {ec}{el}{elec}{}
+\DeclareFontSeriesChangeRule {ec}{l}{lec}{}
+\DeclareFontSeriesChangeRule {ec}{sb}{sbec}{}
+\DeclareFontSeriesChangeRule {ec}{sl}{slec}{}
+\DeclareFontSeriesChangeRule {ec}{ub}{ubec}{}
+\DeclareFontSeriesChangeRule {ec}{ul}{ulec}{}
+\DeclareFontSeriesChangeRule {ec}{x}{x}{m} %<-----
+\DeclareFontSeriesChangeRule {sc}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {sc}{b}{bsc}{}
+\DeclareFontSeriesChangeRule {sc}{eb}{ebsc}{}
+\DeclareFontSeriesChangeRule {sc}{el}{elsc}{}
+\DeclareFontSeriesChangeRule {sc}{l}{lsc}{}
+\DeclareFontSeriesChangeRule {sc}{sb}{sbsc}{}
+\DeclareFontSeriesChangeRule {sc}{sl}{slsc}{}
+\DeclareFontSeriesChangeRule {sc}{ub}{ubsc}{}
+\DeclareFontSeriesChangeRule {sc}{ul}{ulsc}{}
+\DeclareFontSeriesChangeRule {sc}{x}{x}{m} %<-----
+\DeclareFontSeriesChangeRule {ebx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {ebx}{c}{ebc}{}
+\DeclareFontSeriesChangeRule {ebx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {ebx}{ec}{ebec}{}
+\DeclareFontSeriesChangeRule {ebx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {ebx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {ebx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {ebx}{sc}{ebsc}{}
+\DeclareFontSeriesChangeRule {ebx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {ebx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {ebx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {ebx}{x}{ebx}{}
+\DeclareFontSeriesChangeRule {eb}{c}{ebc}{}
+\DeclareFontSeriesChangeRule {eb}{ec}{ebec}{}
+\DeclareFontSeriesChangeRule {eb}{sc}{ebsc}{}
+\DeclareFontSeriesChangeRule {eb}{x}{ebx}{}
+\DeclareFontSeriesChangeRule {elc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {elc}{c}{elc}{}
+\DeclareFontSeriesChangeRule {elc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {elc}{ec}{elec}{}
+\DeclareFontSeriesChangeRule {elc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {elc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {elc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {elc}{sc}{elsc}{}
+\DeclareFontSeriesChangeRule {elc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {elc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {elc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {elc}{x}{elx}{}
+\DeclareFontSeriesChangeRule {elx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {elx}{c}{elc}{}
+\DeclareFontSeriesChangeRule {elx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {elx}{ec}{elec}{}
+\DeclareFontSeriesChangeRule {elx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {elx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {elx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {elx}{sc}{elsc}{}
+\DeclareFontSeriesChangeRule {elx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {elx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {elx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {elx}{x}{elx}{}
+\DeclareFontSeriesChangeRule {el}{c}{elc}{}
+\DeclareFontSeriesChangeRule {el}{ec}{elec}{}
+\DeclareFontSeriesChangeRule {el}{sc}{elsc}{}
+\DeclareFontSeriesChangeRule {el}{x}{elx}{}
+\DeclareFontSeriesChangeRule {lc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {lc}{c}{lc}{}
+\DeclareFontSeriesChangeRule {lc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {lc}{ec}{lec}{}
+\DeclareFontSeriesChangeRule {lc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {lc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {lc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {lc}{sc}{lsc}{}
+\DeclareFontSeriesChangeRule {lc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {lc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {lc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {lc}{x}{lx}{}
+\DeclareFontSeriesChangeRule {lx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {lx}{c}{lc}{}
+\DeclareFontSeriesChangeRule {lx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {lx}{ec}{lec}{}
+\DeclareFontSeriesChangeRule {lx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {lx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {lx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {lx}{sc}{lsc}{}
+\DeclareFontSeriesChangeRule {lx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {lx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {lx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {lx}{x}{lx}{}
+\DeclareFontSeriesChangeRule {l}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {l}{b} {b} {bx} %<-----
+\DeclareFontSeriesChangeRule {l}{c} {lc} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{ec} {lec} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{sb} {sb} {b} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{sc} {lsc} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {l}{x} {lx} {l} % ? %<-----
+\DeclareFontSeriesChangeRule {m}{bx} {bx} {b} %<-----
+\DeclareFontSeriesChangeRule {m}{b} {b} {bx} %<-----
+\DeclareFontSeriesChangeRule {m}{c} {c} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{ec} {ec} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{l} {l} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{sb} {sb} {b} %<-----
+\DeclareFontSeriesChangeRule {m}{sc} {sc} {m} %<-----
+\DeclareFontSeriesChangeRule {m}{x} {x} {m} %<-----
+\DeclareFontSeriesChangeRule {sbc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {sbc}{c}{sbc}{}
+\DeclareFontSeriesChangeRule {sbc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {sbc}{ec}{sbec}{sbc}
+\DeclareFontSeriesChangeRule {sbc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {sbc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {sbc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {sbc}{sc}{sbsc}{sbc}
+\DeclareFontSeriesChangeRule {sbc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {sbc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {sbc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {sbc}{x}{sbx}{}
+\DeclareFontSeriesChangeRule {sbx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {sbx}{c}{sbc}{}
+\DeclareFontSeriesChangeRule {sbx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {sbx}{ec}{sbec}{}
+\DeclareFontSeriesChangeRule {sbx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {sbx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {sbx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {sbx}{sc}{sbsc}{}
+\DeclareFontSeriesChangeRule {sbx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {sbx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {sbx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {sbx}{x}{sbx}{}
+\DeclareFontSeriesChangeRule {sb}{c} {sbc} {bc} %? %<-----
+\DeclareFontSeriesChangeRule {sb}{ec} {sbec} {sbc} %? %<-----
+\DeclareFontSeriesChangeRule {sb}{sc} {sbsc} {sbc} %? %<-----
+\DeclareFontSeriesChangeRule {sb}{x} {sbx} {bx} %? %<-----
+\DeclareFontSeriesChangeRule {slc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {slc}{c}{slc}{}
+\DeclareFontSeriesChangeRule {slc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {slc}{ec}{slec}{}
+\DeclareFontSeriesChangeRule {slc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {slc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {slc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {slc}{sc}{slsc}{}
+\DeclareFontSeriesChangeRule {slc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {slc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {slc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {slc}{x}{slx}{}
+\DeclareFontSeriesChangeRule {slx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {slx}{c}{slc}{}
+\DeclareFontSeriesChangeRule {slx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {slx}{ec}{slec}{}
+\DeclareFontSeriesChangeRule {slx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {slx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {slx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {slx}{sc}{slsc}{}
+\DeclareFontSeriesChangeRule {slx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {slx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {slx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {slx}{x}{slx}{}
+\DeclareFontSeriesChangeRule {sl}{c}{slc}{}
+\DeclareFontSeriesChangeRule {sl}{ec}{slec}{}
+\DeclareFontSeriesChangeRule {sl}{sc}{slsc}{}
+\DeclareFontSeriesChangeRule {sl}{x}{slx}{}
+\DeclareFontSeriesChangeRule {ubc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {ubc}{c}{ubc}{}
+\DeclareFontSeriesChangeRule {ubc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {ubc}{ec}{ubec}{}
+\DeclareFontSeriesChangeRule {ubc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {ubc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {ubc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {ubc}{sc}{ubsc}{}
+\DeclareFontSeriesChangeRule {ubc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {ubc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {ubc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {ubc}{x}{ubx}{}
+\DeclareFontSeriesChangeRule {ubx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {ubx}{c}{ubc}{}
+\DeclareFontSeriesChangeRule {ubx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {ubx}{ec}{ubec}{}
+\DeclareFontSeriesChangeRule {ubx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {ubx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {ubx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {ubx}{sc}{ubsc}{}
+\DeclareFontSeriesChangeRule {ubx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {ubx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {ubx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {ubx}{x}{ubx}{}
+\DeclareFontSeriesChangeRule {ub}{c}{ubc}{}
+\DeclareFontSeriesChangeRule {ub}{ec}{ubec}{}
+\DeclareFontSeriesChangeRule {ub}{sc}{ubsc}{}
+\DeclareFontSeriesChangeRule {ub}{x}{ubx}{}
+\DeclareFontSeriesChangeRule {ulc}{b}{bc}{}
+\DeclareFontSeriesChangeRule {ulc}{c}{ulc}{}
+\DeclareFontSeriesChangeRule {ulc}{eb}{ebc}{}
+\DeclareFontSeriesChangeRule {ulc}{ec}{ulec}{ulc}
+\DeclareFontSeriesChangeRule {ulc}{el}{elc}{}
+\DeclareFontSeriesChangeRule {ulc}{l}{lc}{}
+\DeclareFontSeriesChangeRule {ulc}{sb}{sbc}{}
+\DeclareFontSeriesChangeRule {ulc}{sc}{ulsc}{ulc}
+\DeclareFontSeriesChangeRule {ulc}{sl}{slc}{}
+\DeclareFontSeriesChangeRule {ulc}{ub}{ubc}{}
+\DeclareFontSeriesChangeRule {ulc}{ul}{ulc}{}
+\DeclareFontSeriesChangeRule {ulc}{x}{ulx}{}
+\DeclareFontSeriesChangeRule {ulx}{b}{bx}{}
+\DeclareFontSeriesChangeRule {ulx}{c}{ulc}{}
+\DeclareFontSeriesChangeRule {ulx}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {ulx}{ec}{ulec}{}
+\DeclareFontSeriesChangeRule {ulx}{el}{elx}{}
+\DeclareFontSeriesChangeRule {ulx}{l}{lx}{}
+\DeclareFontSeriesChangeRule {ulx}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {ulx}{sc}{ulsc}{}
+\DeclareFontSeriesChangeRule {ulx}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {ulx}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {ulx}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {ulx}{x}{ulx}{}
+\DeclareFontSeriesChangeRule {ul}{c}{ulc}{}
+\DeclareFontSeriesChangeRule {ul}{ec}{ulec}{}
+\DeclareFontSeriesChangeRule {ul}{sc}{ulsc}{}
+\DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
+\DeclareFontSeriesChangeRule {x}{b}{bx}{}
+\DeclareFontSeriesChangeRule {x}{c}{c}{}
+\DeclareFontSeriesChangeRule {x}{eb}{ebx}{}
+\DeclareFontSeriesChangeRule {x}{ec}{ec}{}
+\DeclareFontSeriesChangeRule {x}{el}{elx}{}
+\DeclareFontSeriesChangeRule {x}{l}{lx}{}
+\DeclareFontSeriesChangeRule {x}{sb}{sbx}{}
+\DeclareFontSeriesChangeRule {x}{sc}{sc}{}
+\DeclareFontSeriesChangeRule {x}{sl}{slx}{}
+\DeclareFontSeriesChangeRule {x}{ub}{ubx}{}
+\DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
+\DeclareFontSeriesChangeRule {bc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {bec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {bsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {bx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {b}{m?}{m}{}
+\DeclareFontSeriesChangeRule {c}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ebc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ebec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {ebsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {ebx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {eb}{m?}{m}{}
+\DeclareFontSeriesChangeRule {ec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {elc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {elec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {elsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {elx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {el}{m?}{m}{}
+\DeclareFontSeriesChangeRule {lc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {lec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {lsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {lx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {l}{m?}{m}{}
+\DeclareFontSeriesChangeRule {m}{m?}{m}{}
+\DeclareFontSeriesChangeRule {sbc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {sbec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {sbsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {sbx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {sb}{m?}{m}{}
+\DeclareFontSeriesChangeRule {sc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {slc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {slec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {slsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {slx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {sl}{m?}{m}{}
+\DeclareFontSeriesChangeRule {ubc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ubec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {ubsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {ubx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {ub}{m?}{ub}{}
+\DeclareFontSeriesChangeRule {ulc}{m?}{c}{}
+\DeclareFontSeriesChangeRule {ulec}{m?}{ec}{}
+\DeclareFontSeriesChangeRule {ulsc}{m?}{sc}{}
+\DeclareFontSeriesChangeRule {ulx}{m?}{x}{}
+\DeclareFontSeriesChangeRule {ul}{m?}{m}{}
+\DeclareFontSeriesChangeRule {x}{m?}{x}{}
+\DeclareFontSeriesChangeRule {bc}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bec}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
+\DeclareFontSeriesChangeRule {bx}{?m}{b}{}
+\DeclareFontSeriesChangeRule {b}{?m}{b}{}
+\DeclareFontSeriesChangeRule {c}{?m}{m}{}
+\DeclareFontSeriesChangeRule {ebc}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebec}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ebx}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {eb}{?m}{eb}{}
+\DeclareFontSeriesChangeRule {ec}{?m}{m}{}
+\DeclareFontSeriesChangeRule {elc}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elec}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
+\DeclareFontSeriesChangeRule {elx}{?m}{el}{}
+\DeclareFontSeriesChangeRule {el}{?m}{el}{}
+\DeclareFontSeriesChangeRule {lc}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lec}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
+\DeclareFontSeriesChangeRule {lx}{?m}{l}{}
+\DeclareFontSeriesChangeRule {l}{?m}{l}{}
+\DeclareFontSeriesChangeRule {m}{?m}{m}{}
+\DeclareFontSeriesChangeRule {sbc}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbec}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sbx}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sb}{?m}{sb}{}
+\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
+\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
+\DeclareFontSeriesChangeRule {slc}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slec}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {slx}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {sl}{?m}{sl}{}
+\DeclareFontSeriesChangeRule {ubc}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubec}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ubx}{?m}{ub}{}
+\DeclareFontSeriesChangeRule {ub}{?m}{m}{}
+\DeclareFontSeriesChangeRule {ulc}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulec}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ulx}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {ul}{?m}{ul}{}
+\DeclareFontSeriesChangeRule {x}{?m}{m}{}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\disable@package@load}{Disable packages}%
+ {\DeclareFontSeriesChangeRule}{Series change rules}%
+
+\let\DeclareFontSeriesChangeRule\@undefined
-\let\disable@package@load \@undefined
-\let\@disable@packageload@do\@undefined
-\let\reenable@package@load \@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@expl@@@filehook@if@no@extension@@nTF}{2e tmp interfaces}%
-\ExplSyntaxOn
-\cs_new_eq:NN \@expl@@@filehook@if@no@extension@@nTF
- \__filehook_if_no_extension:nTF
-\cs_new_eq:NN \@expl@@@filehook@set@curr@file@@nNN
- \__filehook_set_curr_file:nNN
-\cs_new_eq:NN \@expl@@@filehook@resolve@file@subst@@w
- \__filehook_resolve_file_subst:w
-\cs_new_eq:NN \@expl@@@filehook@normalize@file@name@@w
- \__filehook_normalize_file_name:w
-\cs_new_eq:NN \@expl@@@filehook@if@file@replaced@@TF
- \__filehook_if_file_replaced:TF
-\cs_new_eq:NN \@expl@@@filehook@drop@extension@@N
- \__filehook_drop_extension:N
-\cs_new_eq:NN \@expl@@@filehook@file@push@@
- \__filehook_file_push:
-\cs_new_eq:NN \@expl@@@filehook@file@pop@@
- \__filehook_file_pop:
-\cs_new_eq:NN \@expl@@@filehook@file@pop@assign@@nnnn
- \__filehook_file_pop_assign:nnnn
-\ExplSyntaxOff
\EndIncludeInRelease
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% File: ltshipout.dtx (C) Copyright 2020 Frank Mittelbach, LaTeX Team
-%%
-%%% From File: ltshipout.dtx
-\providecommand\ltshipoutversion{v1.0c}
-\providecommand\ltshipoutdate{2020/09/27}
-\IncludeInRelease{2020/10/01}%
- {\shipout}{Hook mangement (shipout)}%
-\ExplSyntaxOn
-\bool_new:N \g__shipout_debug_bool
-\cs_new_eq:NN \__shipout_debug:n \use_none:n
-\cs_new_protected:Npn \shipout_debug_on:
- {
- \bool_gset_true:N \g__shipout_debug_bool
- \__shipout_debug_gset:
- }
-\cs_new_protected:Npn \shipout_debug_off:
- {
- \bool_gset_false:N \g__shipout_debug_bool
- \__shipout_debug_gset:
- }
-\cs_new_protected:Npn \__shipout_debug_gset:
- {
- \cs_gset_protected:Npx \__shipout_debug:n ##1
- { \bool_if:NT \g__shipout_debug_bool {##1} }
- }
-\box_new:N \l_shipout_box
-\cs_set_eq:NN \ShipoutBox \l_shipout_box
-\cs_set_protected:Npn \__shipout_execute: {
- \tl_set:Nx \l__shipout_group_level_tl
- { \int_value:w \tex_currentgrouplevel:D }
- \tex_afterassignment:D \__shipout_execute_test_level:
- \tex_setbox:D \l_shipout_box
-}
-\cs_gset_eq:NN \shipout \__shipout_execute:
-\tl_new:N \l__shipout_group_level_tl
-\cs_new:Npn \__shipout_execute_test_level: {
- \int_compare:nNnT
- \l__shipout_group_level_tl < \tex_currentgrouplevel:D
- \tex_aftergroup:D
- \__shipout_execute_cont:
-}
-\cs_new:Npn \__shipout_execute_cont: {
- \box_if_empty:NTF \l_shipout_box
- { \PackageWarning{ltshipout}{Ignoring~ void~ shipout~ box} }
- {
- \bool_gset_false:N \g__shipout_discard_bool
- \cs_set_eq:NN \__shipout_saved_protect: \protect
- \set@typeset@protect
- \__shipout_get_box_size:N \l_shipout_box
- \hook_use:n {shipout/before}
- \int_gincr:N \g_shipout_totalpages_int
- \bool_if:NTF \g__shipout_discard_bool
- { \PackageInfo{ltshipout}{Completed~ page~ discarded}
- \bool_gset_false:N \g__shipout_discard_bool
- \tex_deadcycles:D \c_zero_int
- }
- { \box_if_empty:NTF \l_shipout_box
- { \PackageWarning{ltshipout}{
- Shipout~ box~ was~ voided~ by~ hook,\MessageBreak
- ignoring~ shipout~ box }
- }
- {
- \int_gincr:N \g_shipout_readonly_int
- \__shipout_debug:n {
- \typeout{Absolute~ page~ =~ \int_use:N \g_shipout_readonly_int
- \space (target:~ \@abspage@last)}
- }
- \__shipout_get_box_size:N \l_shipout_box
- \hook_if_empty:nF {shipout/foreground}
- { \__shipout_add_foreground_picture:n
- { \hook_use:n {shipout/foreground} } }
- \hook_if_empty:nF {shipout/background}
- { \__shipout_add_background_picture:n
- { \@kernel@before@shipout@background
- \hook_use:n {shipout/background} } }
- \__shipout_execute_firstpage_hook:
- \int_compare:nNnT \@abspage@last = \g_shipout_readonly_int
- { \hook_if_empty:nF {shipout/lastpage}
- { \__shipout_debug:n { \typeout{Executing~ lastpage~ hook~
- on~ page~ \int_use:N \g_shipout_readonly_int } }
- \__shipout_add_foreground_box:n { \UseHook{shipout/lastpage}
- \@kernel@after@shipout@lastpage }
- }
- \bool_gset_true:N \g__shipout_lastpage_handled_bool
- }
- \cs_set_eq:NN \protect \exp_not:N
- \tex_shipout:D \box_use:N \l_shipout_box
- }
- }
- \cs_set_eq:NN \protect \__shipout_saved_protect:
- }
-}
-\cs_new_eq:NN \__shipout_saved_protect: \protect
-\hook_new:n{shipout/before}
-\hook_new:n{shipout/foreground}
-\hook_new:n{shipout/background}
-\hook_new:n{shipout/firstpage}
-\hook_new:n{shipout/lastpage}
-\let\@kernel@after@shipout@lastpage\@empty
-\let\@kernel@before@shipout@background\@empty
-\cs_new:Npn \__shipout_execute_firstpage_hook: {
- \hook_if_empty:nF {shipout/firstpage}
- { \__shipout_add_background_box:n { \UseHook{shipout/firstpage} } }
- \cs_gset_eq:NN \__shipout_execute_firstpage_hook: \prg_do_nothing:
- \cs_gset:Npn \__shipout_add_firstpage_material:Nn ##1 ##2 {
- \@latex@warning{
- First~ page~ is~ already~ shipped~ out,~ ignoring\MessageBreak
- \string##1 }
- }
-}
-\bool_new:N \g__shipout_lastpage_handled_bool
-\cs_new:Npn \__shipout_add_firstpage_material:Nn #1#2 {
- \AddToHook{shipout/firstpage}{#2}
-}
-\cs_new:Npn \__shipout_get_box_size:N #1 {
- \dim_set:Nn \l_shipout_box_ht_dim { \box_ht:N #1 }
- \dim_set:Nn \l_shipout_box_dp_dim { \box_dp:N #1 }
- \dim_set:Nn \l_shipout_box_wd_dim { \box_wd:N #1 }
- \dim_set:Nn \l_shipout_box_ht_plus_dp_dim { \l_shipout_box_ht_dim +
- \l_shipout_box_dp_dim }
-}
-\dim_new:N \l_shipout_box_ht_dim
-\dim_new:N \l_shipout_box_dp_dim
-\dim_new:N \l_shipout_box_wd_dim
-\dim_new:N \l_shipout_box_ht_plus_dp_dim
-\bool_new:N \g__shipout_discard_bool
-\box_new:N \l__shipout_tmp_box
-\tl_new:N \l__shipout_saved_badness_tl
-\cs_new:Npn \__shipout_add_background_box:n #1
-{ \__shipout_get_box_size:N \l_shipout_box
- \box_if_vertical:NTF \l_shipout_box
- {
- \tl_set:Nx \l__shipout_saved_badness_tl
- { \vfuzz=\the\vfuzz\relax
- \vbadness=\the\vbadness\relax }
- \vfuzz=\c_max_dim
- \vbadness=\c_max_int
- \vbox_set_to_ht:Nnn \l_shipout_box \l_shipout_box_ht_plus_dp_dim
- {
- \hbox_set:Nn \l__shipout_tmp_box
- { \l__shipout_saved_badness_tl #1 }
- \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
- \skip_zero:N \baselineskip
- \skip_zero:N \lineskip
- \skip_zero:N \lineskiplimit
- \box_use:N \l__shipout_tmp_box
- \vbox_unpack:N \l_shipout_box
- \kern \c_zero_dim
- }
- \box_set_ht:Nn \l_shipout_box \l_shipout_box_ht_dim
- \box_set_dp:Nn \l_shipout_box \l_shipout_box_dp_dim
- \l__shipout_saved_badness_tl
- }
- {
- \box_if_horizontal:NT \l_shipout_box
- {
- \tl_set:Nx \l__shipout_saved_badness_tl
- { \hfuzz=\the\hfuzz\relax
- \hbadness=\the\hbadness\relax }
- \hfuzz=\c_max_dim
- \hbadness=\c_max_int
- \hbox_set_to_wd:Nnn \l_shipout_box \l_shipout_box_wd_dim
- {
- \hbox_set:Nn \l__shipout_tmp_box
- { \l__shipout_saved_badness_tl #1 }
- \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
- \box_move_up:nn
- \l_shipout_box_ht_dim
- { \box_use:N \l__shipout_tmp_box }
- \hbox_unpack:N \l_shipout_box
- }
- \l__shipout_saved_badness_tl
- }
- }
-}
-\cs_new:Npn \__shipout_add_foreground_box:n #1
-{
- \box_if_vertical:NTF \l_shipout_box
- {
- \tl_set:Nx \l__shipout_saved_badness_tl
- { \vfuzz=\the\vfuzz\relax
- \vbadness=\the\vbadness\relax }
- \vfuzz=\c_max_dim
- \vbadness=\c_max_int
- \vbox_set_to_ht:Nnn \l_shipout_box \l_shipout_box_ht_plus_dp_dim
- {
- \hbox_set:Nn \l__shipout_tmp_box
- { \l__shipout_saved_badness_tl #1 }
- \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
- \skip_zero:N \baselineskip
- \skip_zero:N \lineskip
- \skip_zero:N \lineskiplimit
- \vbox_unpack:N \l_shipout_box
- \kern -\l_shipout_box_ht_plus_dp_dim
- \box_use:N \l__shipout_tmp_box
- \kern \l_shipout_box_ht_plus_dp_dim
- }
- \l__shipout_saved_badness_tl
- \box_set_ht:Nn \l_shipout_box \l_shipout_box_ht_dim
- \box_set_dp:Nn \l_shipout_box \l_shipout_box_dp_dim
- }
- {
- \box_if_horizontal:NT \l_shipout_box
- {
- \tl_set:Nx \l__shipout_saved_badness_tl
- { \hfuzz=\the\hfuzz\relax
- \hbadness=\the\hbadness\relax }
- \hfuzz=\c_max_dim
- \hbadness=\c_max_int
- \hbox_set_to_wd:Nnn \l_shipout_box \l_shipout_box_wd_dim
- {
- \hbox_unpack:N \l_shipout_box
- \kern -\box_wd:N \l_shipout_box
- \hbox_set:Nn \l__shipout_tmp_box
- { \l__shipout_saved_badness_tl #1 }
- \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
- \box_move_up:nn { \box_ht:N \l_shipout_box }
- { \box_use:N \l__shipout_tmp_box }
- \kern \box_wd:N \l_shipout_box
- }%
- \l__shipout_saved_badness_tl
- }
- }
-}
-\cs_new:Npn \__shipout_init_page_origins: {
- \tl_const:Nx \c__shipout_horigin_tl
- {
- \cs_if_exist_use:NTF \pdfvariable { horigin }
- { \cs_if_exist_use:NF \pdfhorigin { 1in } }
- }
- \tl_const:Nx \c__shipout_vorigin_tl
- {
- \cs_if_exist_use:NTF \pdfvariable { vorigin }
- { \cs_if_exist_use:NF \pdfvorigin { 1in } }
- }
- \cs_gset_eq:NN \__shipout_init_page_origins: \prg_do_nothing:
-}
-\cs_new:Npn \__shipout_picture_overlay:n #1 {
- \__shipout_init_page_origins:
- \kern -\c__shipout_horigin_tl \scan_stop:
- \vbox_to_zero:n {
- \kern -\c__shipout_vorigin_tl \scan_stop:
- \unitlength 1pt \scan_stop:
- \hbox_set_to_wd:Nnn \l__shipout_tmp_box \c_zero_dim
- { \ignorespaces #1 \hss }
- \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
- \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
- \box_use:N \l__shipout_tmp_box
- \tex_vss:D
- }
-}
-\cs_new:Npn \__shipout_add_background_picture:n #1 {
- \__shipout_add_background_box:n { \__shipout_picture_overlay:n {#1} }
-}
-\cs_new:Npn \__shipout_add_foreground_picture:n #1 {
- \__shipout_add_foreground_box:n { \__shipout_picture_overlay:n {#1} }
-}
-\cs_new_protected:Npn \shipout_discard: {
- \bool_gset_true:N \g__shipout_discard_bool
-}
-\int_new:N \g_shipout_readonly_int
-\cs_new_eq:NN \ReadonlyShipoutCounter \g_shipout_readonly_int
-\int_new:N \g_shipout_totalpages_int
-\cs_new_eq:NN \c@totalpages \g_shipout_totalpages_int
-\cs_new:Npn \thetotalpages { \arabic{totalpages} }
-\xdef\@abspage@last{\number\maxdimen}
-\g@addto@macro \@kernel@after@enddocument {
- \int_compare:nNnT \@abspage@last = \maxdimen
- {
- \xdef\@abspage@last{ \int_eval:n {\g_shipout_readonly_int + 1} }
- }
-}
-\g@addto@macro \@kernel@after@enddocument@afterlastpage {
- \int_compare:nNnF \g_shipout_readonly_int = 0
- {
- \if@filesw
- \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_lazy_and:nnF
- { \hook_if_empty_p:n {shipout/lastpage} }
- { \tl_if_empty_p:N \@kernel@after@shipout@lastpage }
- {
- \tex_shipout:D\vbox to\textheight
- {
- \hbox:n { \UseHook{shipout/lastpage}
- \@kernel@after@shipout@lastpage }
- \__shipout_excuse_extra_page:
- \null
- }
- \cs_gset_eq:NN \@extra@page@added \relax
- }
- }
- }
-}
-\cs_new:Npn \__shipout_excuse_extra_page: {
- \vfil
- \begin{center}
- \bfseries Temporary~ page!
- \end{center}
- \LaTeX{}~ was~ unable~ to~ guess~ the~ total~ number~ of~ pages~
- correctly.~ ~ As~ there~ was~ some~ unprocessed~ data~ that~
- should~ have~ been~ added~ to~ the~ final~ page~ this~ extra~
- page~ has~ been~ added~ to~ receive~ it.
- \par
- If~ you~ rerun~ the~ document~ (without~ altering~ it)~ this~
- surplus~ page~ will~ go~ away,~ because~ \LaTeX{}~ now~ knows~
- how~ many~ pages~ to~ expect~ for~ this~ document.
- \vfil
-}
-\def\PreviousTotalPages{0}
-\g@addto@macro\@kernel@before@begindocument
- {\ifnum\@abspage@last<\maxdimen
- \xdef\PreviousTotalPages{\@abspage@last}\fi}
-\cs_new_eq:NN \DiscardShipoutBox \shipout_discard:
-\cs_new_protected:Npn \AtBeginDvi {\__shipout_add_firstpage_material:Nn \AtBeginDvi}
-\cs_new_eq:NN \DebugShipoutsOn \shipout_debug_on:
-\cs_new_eq:NN \DebugShipoutsOff \shipout_debug_off:
-\cs_set_eq:NN \@expl@@@shipout@add@firstpage@material@@Nn
- \__shipout_add_firstpage_material:Nn
-\cs_set_eq:NN \@expl@@@shipout@add@background@box@@n
- \__shipout_add_background_box:n
-\cs_set_eq:NN \@expl@@@shipout@add@foreground@box@@n
- \__shipout_add_foreground_box:n
-\cs_set_eq:NN \@expl@@@shipout@add@background@picture@@n
- \__shipout_add_background_picture:n
-\cs_set_eq:NN \@expl@@@shipout@add@foreground@picture@@n
- \__shipout_add_foreground_picture:n
-\ExplSyntaxOff
+\IncludeInRelease{2021/05/01}%
+ {\fontseries}{delay fontseries update}%
+\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse
+ \expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ {\delayed@f@adjustment\delayed@merge@font@series{#1}}}
+\let\delayed@f@adjustment\@empty
+\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue
+ \expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ {\delayed@f@adjustment\edef\f@series{#1}}}
+\newif\if@forced@series
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\shipout}{The hook management (shipout)}%
-\expandafter\let\expandafter\shipout\csname tex_shipout:D\endcsname
-
-\let \ShipoutBox\@undefined
-\let \ReadonlyShipoutCounter \@undefined
-\let \c@totalpages \@undefined
-\let \thetotalpages \@undefined
-
-\let \DiscardShipoutBox \@undefined
-\let \DebugShipoutsOn \@undefined
-\let \DebugShipoutsOff \@undefined
-
-\DeclareRobustCommand \AtBeginDvi [1]{%
- \global \setbox \@begindvibox
- \vbox{\unvbox \@begindvibox #1}%
-}
-
-\let \AtBeginShipout \@undefined
-\let \AtBeginShipoutNext \@undefined
-
-\let \AtBeginShipoutFirst \@undefined
-
-\let \ShipoutBoxHeight \@undefined
-\let \ShipoutBoxDepth \@undefined
-\let \ShipoutBoxWidth \@undefined
-
-\let \AtBeginShipoutDiscard \@undefined
-
-\let \AtBeginShipoutAddToBox \@undefined
-\let \AtBeginShipoutAddToBoxForeground \@undefined
-\let \AtBeginShipoutUpperLeft \@undefined
-\let \AtBeginShipoutUpperLeftForeground \@undefined
-
+\IncludeInRelease{2020/02/02}%
+ {\fontseries}{delay fontseries update}%
-\let \AtEndDvi \@undefined
+\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse\merge@font@series{#1}}
+\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue\edef\f@series{#1}}
+\let\delayed@f@adjustment\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\AtEndDvi}{atenddvi emulation}%
-\ExplSyntaxOn
-\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
-\ExplSyntaxOff
-\disable@package@load{atenddvi}
- {\PackageWarning{atenddvi}
- {Functionality of this package is already\MessageBreak
- provided by LaTeX.\MessageBreak\MessageBreak
- It is there no longer necessary to load it\MessageBreak
- and you can safely remove it.\MessageBreak
- Found on}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\AtEndDvi}{atenddvi emulation}%
-\let \AtEndDvi \@undefined
-\EndIncludeInRelease
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% From File: ltoutput.dtx
-\IncludeInRelease{2015/10/01}%
- {\bx@ZZ}{Extended float list}%
-\let\@elt\newinsert
-\ifx\numexpr\@undefined\else
-\def\reserved@a{%
- \@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V
- \@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z
- \@elt\bx@AA\@elt\bx@BB\@elt\bx@CC\@elt\bx@DD\@elt\bx@EE
- \@elt\bx@FF\@elt\bx@GG\@elt\bx@HH\@elt\bx@II\@elt\bx@JJ
- \@elt\bx@KK\@elt\bx@LL\@elt\bx@MM\@elt\bx@NN
- \@elt\bx@OO\@elt\bx@PP\@elt\bx@QQ\@elt\bx@RR
- \@elt\bx@SS\@elt\bx@TT\@elt\bx@UU\@elt\bx@VV
- \@elt\bx@WW\@elt\bx@XX\@elt\bx@YY\@elt\bx@ZZ}
-\reserved@a
-\def\@elt{\noexpand\@elt\noexpand}
-\edef\@freelist{\@freelist\reserved@a}
+\ifx\@forced@seriestrue\@undefined \else
+ \expandafter\newif\csname if@forced@series\endcsname
\fi
-\let\reserved@a\relax
-\let\@elt\relax
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\bx@ZZ}{Extended float list}%
-\def\@freelist{%
- \@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
- \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
- \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
- \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R}
- \insc@unt=234
-\EndIncludeInRelease
-\IncludeInRelease{2017/04/15}%
- {\newpage}{Check depth of page}%
-\def \newpage {%
- \if@noskipsec
- \ifx \@nodocument\relax
- \leavevmode
- \global \@noskipsecfalse
- \fi
- \fi
- \if@inlabel
- \leavevmode
- \global \@inlabelfalse
- \fi
- \if@nobreak \@nobreakfalse \everypar{}\fi
- \par
- \ifdim\prevdepth>\z@
- \vskip -%
- \ifdim\prevdepth>\maxdepth
- \maxdepth
- \else
- \prevdepth
- \fi
- \fi
- \vfil
- \penalty -\@M}
+
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\newpage}{Check depth of page}%
-\def \newpage {%
- \if@noskipsec
- \ifx \@nodocument\relax
- \leavevmode
- \global \@noskipsecfalse
- \fi
- \fi
- \if@inlabel
- \leavevmode
- \global \@inlabelfalse
- \fi
- \if@nobreak \@nobreakfalse \everypar{}\fi
- \par
- \vfil
- \penalty -\@M}
+ {\fontseries}{delay fontseries update}%
+
+\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
+\let\fontseriesforce\@undefined
+
\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@testwrongwidth}{float order in 2-column}%
-\def\@testwrongwidth #1{%
- \ifdim\dp#1=\f@depth
+\IncludeInRelease{2020/02/02}%
+ {\merge@font@series}{Merge series values}%
+\def\merge@font@series#1{%
+ \expandafter\expandafter\expandafter
+ \merge@font@series@
+ \csname series@\f@series @#1\endcsname
+ {#1}%
+ \@nil
+}
+\def\merge@font@series@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \set@target@series{#2}%
\else
- \global\@testtrue
- \fi}%
-\let\f@depth\z@
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@testwrongwidth}{float order in 2-column}%
-\let\@testwrongwidth\@undefined
-\let\f@depth\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\@doclearpage}%
- {float order in 2-column}%
-\def \@doclearpage {%
- \ifvoid\footins
- \ifvbox\@kludgeins
- {\setbox \@tempboxa \box \@kludgeins}%
- \fi
- \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
- \setbox\@tempboxa\box\@cclv
- \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
- \global \let \@toplist \@empty
- \global \let \@botlist \@empty
- \global \@colroom \@colht
- \ifx \@currlist\@empty
- \else
- \@latexerr{Float(s) lost}\@ehb
- \global \let \@currlist \@empty
- \fi
- \@makefcolumn\@deferlist
- \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
- \if@twocolumn
- \if@firstcolumn
- \xdef\@deferlist{\@dbltoplist\@deferlist}%
- \global \let \@dbltoplist \@empty
- \global \@colht \textheight
- \begingroup
- \@dblfloatplacement
- \@makefcolumn\@deferlist
- \@whilesw\if@fcolmade \fi{\@outputpage
- \@makefcolumn\@deferlist}%
- \endgroup
- \else
- \vbox{}\clearpage
- \fi
- \fi
- \ifx\@deferlist\@empty \else\clearpage \fi
- \else
- \setbox\@cclv\vbox{\box\@cclv\vfil}%
- \@makecol\@opcol
- \clearpage
- \fi
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\@doclearpage}%
- {float order in 2-column}%
-\def \@doclearpage {%
- \ifvoid\footins
- \ifvbox\@kludgeins
- {\setbox \@tempboxa \box \@kludgeins}%
- \fi
- \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
- \setbox\@tempboxa\box\@cclv
- \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
- \global \let \@toplist \@empty
- \global \let \@botlist \@empty
- \global \@colroom \@colht
- \ifx \@currlist\@empty
+ \edef\reserved@a{\f@encoding /\f@family /#1/\f@shape}%
+ \ifcsname \reserved@a \endcsname
+ \set@target@series{#1}%
+ \else
+ \ifcsname \f@encoding /\f@family /#2/\f@shape \endcsname
+ \set@target@series{#2}%
+ \@font@shape@subst@warning
\else
- \@latexerr{Float(s) lost}\@ehb
- \global \let \@currlist \@empty
- \fi
- \@makefcolumn\@deferlist
- \@whilesw\if@fcolmade \fi
- {\@opcol\@makefcolumn\@deferlist}%
- \if@twocolumn
- \if@firstcolumn
- \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
- \global \let \@dbltoplist \@empty
- \global \@colht \textheight
- \begingroup
- \@dblfloatplacement
- \@makefcolumn\@dbldeferlist
- \@whilesw\if@fcolmade \fi
- {\@outputpage\@makefcolumn\@dbldeferlist}%
- \endgroup
- \else
- \vbox{}\clearpage
- \fi
+ \set@target@series{#3}%
+ \@font@shape@subst@warning
\fi
- \else
- \setbox\@cclv\vbox{\box\@cclv\vfil}%
- \@makecol\@opcol
- \clearpage
- \fi
- }%
-\EndIncludeInRelease
-\IncludeInRelease{2017/04/15}%
- {\@outputpage}{Reset language for hyphenation}%
-\def\@outputpage{%
-\begingroup
- \let \protect \noexpand
- \language\document@default@language
- \@resetactivechars
- \global\let\@@if@newlist\if@newlist
- \global\@newlistfalse
- \@parboxrestore
- \shipout \vbox{%
- \set@typeset@protect
- \aftergroup \endgroup
- \aftergroup \set@typeset@protect
- \if@specialpage
- \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
- \fi
- \if@twoside
- \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
- \let\@themargin\oddsidemargin
- \else \let\@thehead\@evenhead
- \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
\fi
\fi
- \reset@font
- \normalsize
- \normalsfcodes
- \let\label\@gobble
- \let\index\@gobble
- \let\glossary\@gobble
- \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
- \@begindvi
- \vskip \topmargin
- \moveright\@themargin \vbox {%
- \setbox\@tempboxa \vbox to\headheight{%
- \vfil
- \color@hbox
- \normalcolor
- \hb@xt@\textwidth{\@thehead}%
- \color@endbox
- }%
- \dp\@tempboxa \z@
- \box\@tempboxa
- \vskip \headsep
- \box\@outputbox
- \baselineskip \footskip
- \color@hbox
- \normalcolor
- \hb@xt@\textwidth{\@thefoot}%
- \color@endbox
- }%
- }%
- \global\let\if@newlist\@@if@newlist
- \global \@colht \textheight
- \stepcounter{page}%
- \let\firstmark\botmark
}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@outputpage}{Reset language for hyphenation}%
-\def\@outputpage{%
-\begingroup
- \let \protect \noexpand
- \@resetactivechars
- \global\let\@@if@newlist\if@newlist
- \global\@newlistfalse
- \@parboxrestore
- \shipout \vbox{%
- \set@typeset@protect
- \aftergroup \endgroup
- \aftergroup \set@typeset@protect
- \if@specialpage
- \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
- \fi
- \if@twoside
- \ifodd\count\z@
- \let\@thehead\@oddhead \let\@thefoot\@oddfoot
- \let\@themargin\oddsidemargin
- \else \let\@thehead\@evenhead
- \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
- \fi
- \fi
- \reset@font
- \normalsize
- \normalsfcodes
- \let\label\@gobble
- \let\index\@gobble
- \let\glossary\@gobble
- \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
- \@begindvi
- \vskip \topmargin
- \moveright\@themargin \vbox {%
- \setbox\@tempboxa \vbox to\headheight{%
- \vfil
- \color@hbox
- \normalcolor
- \hb@xt@\textwidth{\@thehead}%
- \color@endbox
- }%
- \dp\@tempboxa \z@
- \box\@tempboxa
- \vskip \headsep
- \box\@outputbox
- \baselineskip \footskip
- \color@hbox
- \normalcolor
- \hb@xt@\textwidth{\@thefoot}%
- \color@endbox
- }%
- }%
- \global\let\if@newlist\@@if@newlist
- \global \@colht \textheight
- \stepcounter{page}%
- \let\firstmark\botmark
+\def\@font@shape@subst@warning{%
+ \edef\reserved@b{\curr@fontshape}%
+ \ifx\reserved@a\reserved@b \else
+ \@font@warning{Font shape `\reserved@a' undefined\MessageBreak
+ using `\reserved@b' instead}%
+ \fi
}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@startdblcolumn}{float order in 2-column}%
-\def \@startdblcolumn {%
- \@tryfcolumn \@deferlist
- \if@fcolmade
- \else
- \begingroup
- \let \reserved@b \@deferlist
- \global \let \@deferlist \@empty
- \let \@elt \@sdblcolelt
- \reserved@b
- \endgroup
- \fi
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@startdblcolumn}{float order in 2-column}%
-\def \@startdblcolumn {%
-% \global \@colht \textheight
- \@tryfcolumn \@dbldeferlist
- \if@fcolmade
- \else
- \begingroup
- \let \reserved@b \@dbldeferlist
- \global \let \@dbldeferlist \@empty
- \let \@elt \@sdblcolelt
- \reserved@b
- \endgroup
- \fi
-}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\@xtryfc}%
- {float order in 2-column}%
-\def\@xtryfc #1{%
- \@next\reserved@a\@trylist{}{}%
- \@currtype \count #1%
- \divide\@currtype\@xxxii
- \multiply\@currtype\@xxxii
- \@bitor \@currtype \@failedlist
- \@testfp #1%
- \@testwrongwidth #1%
- \ifdim \ht #1>\@colht
- \@testtrue
- \fi
- \if@test
- \@cons\@failedlist #1%
- \else
- \@ytryfc #1%
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\@xtryfc}%
- {float order in 2-column}%
-\def\@xtryfc #1{%
- \@next\reserved@a\@trylist{}{}%
- \@currtype \count #1%
- \divide\@currtype\@xxxii
- \multiply\@currtype\@xxxii
- \@bitor \@currtype \@failedlist
- \@testfp #1%
- \ifdim \ht #1>\@colht
- \@testtrue
- \fi
- \if@test
- \@cons\@failedlist #1%
- \else
- \@ytryfc #1%
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{@ztryfc}%
- {float order in 2-column}%
-\def\@ztryfc #1{%
- \@tempcnta\count #1%
- \divide\@tempcnta\@xxxii
- \multiply\@tempcnta\@xxxii
- \@bitor \@tempcnta {\@failedlist \@flfail}%
- \@testfp #1%
- \@testwrongwidth #1%
- \@tempdimb\@tempdima
- \advance\@tempdimb\ht #1%
- \advance\@tempdimb\@fpsep
- \ifdim \@tempdimb >\@colht
- \@testtrue
- \fi
- \if@test
- \@cons\@flfail #1%
+\def\merge@font@series@without@substitution#1{%
+ \expandafter\expandafter\expandafter
+ \merge@font@series@without@substitution@
+ \csname series@\f@series @#1\endcsname
+ {#1}%
+ \@nil
+}
+\def\merge@font@series@without@substitution@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \set@target@series{#2}%
\else
- \@cons\@flsucceed #1%
- \@tempdima\@tempdimb
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{@ztryfc}%
- {float order in 2-column}%
-\def\@ztryfc #1{%
- \@tempcnta \count#1%
- \divide\@tempcnta\@xxxii
- \multiply\@tempcnta\@xxxii
- \@bitor \@tempcnta {\@failedlist \@flfail}%
- \@testfp #1%
- \@tempdimb\@tempdima
- \advance\@tempdimb \ht#1%
- \advance\@tempdimb\@fpsep
- \ifdim \@tempdimb >\@colht
- \@testtrue
+ \set@target@series{#1}%
\fi
- \if@test
- \@cons\@flfail #1%
- \else
- \@cons\@flsucceed #1%
- \@tempdima\@tempdimb
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@addtocurcol}{float order in 2-column}%
-\def \@addtocurcol {%
- \@insertfalse
- \@setfloattypecounts
- \ifnum \@fpstype=8
- \else
- \ifnum \@fpstype=24
- \else
- \@flsettextmin
- \advance \@textmin \@textfloatsheight
- \@reqcolroom \@pageht
- \ifdim \@textmin>\@reqcolroom
- \@reqcolroom \@textmin
- \fi
- \advance \@reqcolroom \ht\@currbox
- \ifdim \@colroom>\@reqcolroom
- \@flsetnum \@colnum
- \ifnum \@colnum>\z@
- \@bitor\@currtype\@deferlist
- \@testwrongwidth\@currbox
- \if@test
- \else
- \@bitor\@currtype\@botlist
- \if@test
- \@addtobot
- \else
- \ifodd \count\@currbox
- \advance \@reqcolroom \intextsep
- \ifdim \@colroom>\@reqcolroom
- \global \advance \@colnum \m@ne
- \global \advance \@textfloatsheight \ht\@currbox
- \global \advance \@textfloatsheight 2\intextsep
- \@cons \@midlist \@currbox
- \if@nobreak
- \nobreak
- \@nobreakfalse
- \everypar{}%
- \else
- \addpenalty \interlinepenalty
- \fi
- \vskip \intextsep
- \box\@currbox
- \penalty\interlinepenalty
- \vskip\intextsep
- \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
- \outputpenalty \z@
- \@inserttrue
- \fi
- \fi
- \if@insert
- \else
- \@addtotoporbot
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \if@insert
- \else
- \@resethfps
- \@cons\@deferlist\@currbox
- \fi
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@addtocurcol}{float order in 2-column}%
-\def \@addtocurcol {%
- \@insertfalse
- \@setfloattypecounts
- \ifnum \@fpstype=8
- \else
- \ifnum \@fpstype=24
- \else
- \@flsettextmin
- \advance \@textmin \@textfloatsheight
- \@reqcolroom \@pageht
- \ifdim \@textmin>\@reqcolroom
- \@reqcolroom \@textmin
- \fi
- \advance \@reqcolroom \ht\@currbox
- \ifdim \@colroom>\@reqcolroom
- \@flsetnum \@colnum
- \ifnum \@colnum>\z@
- \@bitor\@currtype\@deferlist
- \if@test
- \else
- \@bitor\@currtype\@botlist
- \if@test
- \@addtobot
- \else
- \ifodd \count\@currbox
- \advance \@reqcolroom \intextsep
- \ifdim \@colroom>\@reqcolroom
- \global \advance \@colnum \m@ne
- \global \advance
- \@textfloatsheight\ht\@currbox
- \global \advance
- \@textfloatsheight 2\intextsep
- \@cons \@midlist \@currbox
- \if@nobreak
- \nobreak
- \@nobreakfalse
- \everypar{}%
- \else
- \addpenalty\interlinepenalty
- \fi
- \vskip \intextsep
- \box\@currbox
- \penalty\interlinepenalty
- \vskip\intextsep
- \ifnum\outputpenalty
- <-\@Mii \vskip
- -\parskip\fi
- \outputpenalty \z@
- \@inserttrue
- \fi
- \fi
- \if@insert
- \else
- \@addtobot
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \if@insert
- \else
- \@resethfps
- \@cons\@deferlist\@currbox
- \fi
- }%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}
- {\@addtonextcol}{float order in 2-column}%
-\def\@addtonextcol{%
- \begingroup
- \@insertfalse
- \@setfloattypecounts
- \ifnum \@fpstype=8
- \else
- \ifnum \@fpstype=24
- \else
- \@flsettextmin
- \@reqcolroom \ht\@currbox
- \advance \@reqcolroom \@textmin
- \ifdim \@colroom>\@reqcolroom
- \@flsetnum \@colnum
- \ifnum\@colnum>\z@
- \@bitor\@currtype\@deferlist
- \@testwrongwidth\@currbox
- \if@test
- \else
- \@addtotoporbot
- \fi
- \fi
- \fi
- \fi
- \fi
- \if@insert
- \else
- \@cons\@deferlist\@currbox
- \fi
- \endgroup
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@addtonextcol}{float order in 2-column}%
-\def\@addtonextcol{%
- \begingroup
- \@insertfalse
- \@setfloattypecounts
- \ifnum \@fpstype=8
- \else
- \ifnum \@fpstype=24
- \else
- \@flsettextmin
- \@reqcolroom \ht\@currbox
- \advance \@reqcolroom \@textmin
- \ifdim \@colroom>\@reqcolroom
- \@flsetnum \@colnum
- \ifnum\@colnum>\z@
- \@bitor\@currtype\@deferlist
- \if@test
- \else
- \@addtotoporbot
- \fi
- \fi
- \fi
- \fi
- \fi
- \if@insert
- \else
- \@cons\@deferlist\@currbox
- \fi
- \endgroup
-}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@addtodblcol}{float order in 2-column}%
-\def\@addtodblcol{%
- \begingroup
- \@insertfalse
- \@setfloattypecounts
- \@getfpsbit \tw@
- \ifodd\@tempcnta
- \@flsetnum \@dbltopnum
- \ifnum \@dbltopnum>\z@
- \@tempswafalse
- \ifdim \@dbltoproom>\ht\@currbox
- \@tempswatrue
- \else
- \ifnum \@fpstype<\sixt@@n
- \advance \@dbltoproom \@textmin
- \ifdim \@dbltoproom>\ht\@currbox
- \@tempswatrue
- \fi
- \advance \@dbltoproom -\@textmin
- \fi
- \fi
- \if@tempswa
- \@bitor \@currtype \@deferlist
- \@testwrongwidth\@currbox
- \if@test
- \else
- \@tempdima -\ht\@currbox
- \advance\@tempdima
- -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
- \dblfloatsep \fi
- \global \advance \@dbltoproom \@tempdima
- \global \advance \@colht \@tempdima
- \global \advance \@dbltopnum \m@ne
- \@cons \@dbltoplist \@currbox
- \@inserttrue
- \fi
- \fi
- \fi
- \fi
- \if@insert
- \else
- \@cons\@deferlist\@currbox
- \fi
- \endgroup
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@addtodblcol}{float order in 2-column}%
-\def\@addtodblcol{%
- \begingroup
- \@insertfalse
- \@setfloattypecounts
- \@getfpsbit \tw@
- \ifodd\@tempcnta
- \@flsetnum \@dbltopnum
- \ifnum \@dbltopnum>\z@
- \@tempswafalse
- \ifdim \@dbltoproom>\ht\@currbox
- \@tempswatrue
- \else
- \ifnum \@fpstype<\sixt@@n
- \advance \@dbltoproom \@textmin
- \ifdim \@dbltoproom>\ht\@currbox
- \@tempswatrue
- \fi
- \advance \@dbltoproom -\@textmin
- \fi
- \fi
- \if@tempswa
- \@bitor \@currtype \@dbldeferlist
- \if@test
- \else
- \@tempdima -\ht\@currbox
- \advance\@tempdima
- -\ifx \@dbltoplist\@empty
- \dbltextfloatsep
- \else \dblfloatsep \fi
- \global \advance \@dbltoproom \@tempdima
- \global \advance \@colht \@tempdima
- \global \advance \@dbltopnum \m@ne
- \@cons \@dbltoplist \@currbox
- \@inserttrue
- \fi
- \fi
- \fi
- \fi
- \if@insert
- \else
- \@cons\@dbldeferlist\@currbox
- \fi
- \endgroup
-}%
-\EndIncludeInRelease
-\IncludeInRelease{2017/01/01}%
- {\@makefcolumn}{negative height floats}%
-\def\@makefcolumn #1{%
- \begingroup
- \@fpmin -\maxdimen
- \let \@testfp \@gobble
- \@tryfcolumn #1%
- \endgroup
}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@makefcolumn}{negative height floats}%
-\def\@makefcolumn #1{%
+\let\delayed@merge@font@series\merge@font@series@without@substitution
+\def\maybe@load@fontshape{%
\begingroup
- \@fpmin \z@
- \let \@testfp \@gobble
- \@tryfcolumn #1%
- \endgroup
+ \let \typeout \@font@info
+ \try@load@fontshape
+ \endgroup}
+\def\set@target@series#1{%
+ \edef\f@series{#1}%
+ \series@maybe@drop@one@m\f@series\f@series
}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@outputdblcol}{2 column marks}%
-\def\@outputdblcol{%
- \if@firstcolumn
- \global\@firstcolumnfalse
- \global\setbox\@leftcolumn\copy\@outputbox
- \splitmaxdepth\maxdimen
- \vbadness\maxdimen
- \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
- \setbox\@outputbox\vsplit\@outputbox to\maxdimen
- \toks@\expandafter{\topmark}%
- \xdef\@firstcoltopmark{\the\toks@}%
- \toks@\expandafter{\splitfirstmark}%
- \xdef\@firstcolfirstmark{\the\toks@}%
- \ifx\@firstcolfirstmark\@empty
- \global\let\@setmarks\relax
- \else
- \gdef\@setmarks{%
- \let\firstmark\@firstcolfirstmark
- \let\topmark\@firstcoltopmark}%
- \fi
- \else
- \global\@firstcolumntrue
- \setbox\@outputbox\vbox{%
- \hb@xt@\textwidth{%
- \hb@xt@\columnwidth{\box\@leftcolumn \hss}%
- \hfil
- {\normalcolor\vrule \@width\columnseprule}%
- \hfil
- \hb@xt@\columnwidth{\box\@outputbox \hss}}}%
- \@combinedblfloats
- \@setmarks
- \@outputpage
- \begingroup
- \@dblfloatplacement
- \@startdblcolumn
- \@whilesw\if@fcolmade \fi{\@outputpage
- \@startdblcolumn}%
- \endgroup
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@outputdblcol}{2 column marks}%
-\def\@outputdblcol{%
- \if@firstcolumn
- \global \@firstcolumnfalse
- \global \setbox\@leftcolumn \box\@outputbox
+\def\series@maybe@drop@one@m#1{%
+ \expandafter\series@maybe@drop@one@m@x\expandafter{#1}}
+
+\def\series@maybe@drop@one@m@x#1#2{%
+ \def\in@@##1,#1,{}%
+ \series@check@toks\expandafter{\in@@
+ ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
+ \edef\in@@{\the\series@check@toks}%
+ \ifx\in@@\@empty
+ \edef#2{#1}%
\else
- \global \@firstcolumntrue
- \setbox\@outputbox \vbox {%
- \hb@xt@\textwidth {%
- \hb@xt@\columnwidth {%
- \box\@leftcolumn \hss}%
- \hfil
- {\normalcolor\vrule
- \@width\columnseprule}%
- \hfil
- \hb@xt@\columnwidth {%
- \box\@outputbox \hss}%
- }%
- }%
- \@combinedblfloats
- \@outputpage
- \begingroup
- \@dblfloatplacement
- \@startdblcolumn
- \@whilesw\if@fcolmade \fi
- {\@outputpage
- \@startdblcolumn}%
- \endgroup
+ \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
\fi
-}%
-\EndIncludeInRelease
-%%% From File: ltclass.dtx
-
-\IncludeInRelease{2020/10/01}{\@pushfilename}%
- {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
-\def\@pushfilename{%
- \@expl@@@hook@curr@name@push@@n{}%
- \@expl@push@filename@@
- \xdef\@currnamestack{%
- {\@currname}%
- {\@currext}%
- {\the\catcode`\@}%
- \@currnamestack}%
- \@expl@push@filename@aux@@}
+}
+\newtoks\series@check@toks
+\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
+ #1#2%
+}
\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\merge@font@series}{Merge series values}%
-\IncludeInRelease{2020/02/02}{\@pushfilename}%
- {Add \@expl@push@filename@@}%
-\def\@pushfilename{%
- \@expl@push@filename@@
- \xdef\@currnamestack{%
- {\@currname}%
- {\@currext}%
- {\the\catcode`\@}%
- \@currnamestack}%
- \@expl@push@filename@aux@@}
-\EndIncludeInRelease
+\let\merge@font@series\@undefined
+\let\merge@font@series@\@undefined
+\let\@font@shape@subst@warning\@undefined
+\let\merge@font@series@without@substitution\@undefined
+\let\merge@font@series@without@substitution@\@undefined
+\let\delayed@merge@font@series\@undefined
+\let\maybe@load@fontshape\@undefined
+\let\set@target@series\@undefined
+\let\series@maybe@drop@one@m\@undefined
+\let\series@drop@one@m\@undefined
-\IncludeInRelease{0000/00/00}{\@pushfilename}%
- {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
-\def\@pushfilename{%
- \xdef\@currnamestack{%
- {\@currname}%
- {\@currext}%
- {\the\catcode`\@}%
- \@currnamestack}}
\EndIncludeInRelease
-\@onlypreamble\@pushfilename
-\IncludeInRelease{2020/10/01}{\@popfilename}%
- {Add \@expl@pop@filename@@}%
-\def\@popfilename{\@expl@@@hook@curr@name@pop@@
- \expandafter\@p@pfilename\@currnamestack\@nil
- \@expl@pop@filename@@}
+\IncludeInRelease{2020/02/02}%
+ {\DeclareFontShapeChangeRule}{Font shape change rules}%
+\def\DeclareFontShapeChangeRule #1#2#3#4{%
+ \@namedef{shape@#1@#2}{{#3}{#4}}}
+\DeclareRobustCommand\ulcshape
+ {\not@math@alphabet\ulcshape\relax
+ \fontshape\ulcdefault\selectfont}
+\let\ulcdefault\@undefined % for rollback
+\newcommand\ulcdefault{ulc}
+\DeclareRobustCommand\swshape
+ {\not@math@alphabet\swshape\relax
+ \fontshape\swdefault\selectfont}
+\let\swdefault\@undefined % for rollback
+\newcommand\swdefault{sw}
+\DeclareRobustCommand\sscshape
+ {\not@math@alphabet\sscshape\relax
+ \fontshape\sscdefault\selectfont}
+\let\sscdefault\@undefined % for rollback
+\newcommand\sscdefault{ssc}
+\DeclareFontShapeChangeRule {n}{it} {it} {sl}
+\DeclareFontShapeChangeRule {n}{sl} {sl} {it}
+\DeclareFontShapeChangeRule {n}{ulc} {n} {}
+\DeclareFontShapeChangeRule {n}{up} {n} {}
+\DeclareFontShapeChangeRule {it}{sl} {sl} {it}
+\DeclareFontShapeChangeRule {it}{sc} {scit} {scsl}
+\DeclareFontShapeChangeRule {it}{ulc} {it} {}
+\DeclareFontShapeChangeRule {it}{up} {n} {}
+\DeclareFontShapeChangeRule {sl}{it} {it} {sl}
+\DeclareFontShapeChangeRule {sl}{sc} {scsl} {scit}
+\DeclareFontShapeChangeRule {sl}{ulc} {sl} {}
+\DeclareFontShapeChangeRule {sl}{up} {n} {}
+\DeclareFontShapeChangeRule {sc}{it} {scit} {scsl}
+\DeclareFontShapeChangeRule {sc}{sl} {scsl} {scit}
+\DeclareFontShapeChangeRule {sc}{sw} {scsw} {sw}
+\DeclareFontShapeChangeRule {sc}{ulc} {n} {}
+\DeclareFontShapeChangeRule {sc}{up} {n} {}
+\DeclareFontShapeChangeRule {scit}{it} {scit} {}
+\DeclareFontShapeChangeRule {scit}{sl} {scsl} {scit}
+\DeclareFontShapeChangeRule {scit}{sw} {scsw} {sc} % or scit?
+\DeclareFontShapeChangeRule {scit}{sc} {scit} {}
+\DeclareFontShapeChangeRule {scit}{ulc} {it} {}
+\DeclareFontShapeChangeRule {scit}{up} {sc} {}
+\DeclareFontShapeChangeRule {scsl}{it} {scit} {scsl}
+\DeclareFontShapeChangeRule {scsl}{sl} {scsl} {}
+\DeclareFontShapeChangeRule {scsl}{sw} {scsw} {sc} % or scsl?
+\DeclareFontShapeChangeRule {scsl}{sc} {scsl} {}
+\DeclareFontShapeChangeRule {scsl}{ulc} {sl} {}
+\DeclareFontShapeChangeRule {scsl}{up} {sc} {}
+\DeclareFontShapeChangeRule {scsw}{it} {scit} {scsw}
+\DeclareFontShapeChangeRule {scsw}{sl} {scsl} {}
+\DeclareFontShapeChangeRule {scsw}{sw} {scsw} {}
+\DeclareFontShapeChangeRule {scsw}{sc} {scsw} {}
+\DeclareFontShapeChangeRule {scsw}{ulc} {sw} {}
+\DeclareFontShapeChangeRule {scsw}{up} {sc} {}
+\DeclareFontShapeChangeRule {sw}{sc} {scsw} {}
+\DeclareFontShapeChangeRule {sw}{ulc} {sw} {}
+\DeclareFontShapeChangeRule {sw}{up} {n} {}
\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\DeclareFontShapeChangeRule}{Font shape change rules}%
-\IncludeInRelease{2020/02/02}{\@popfilename}%
- {Add \@expl@push@filename@@}%
-\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil
- \@expl@pop@filename@@}
-\EndIncludeInRelease
+\let\DeclareFontShapeChangeRule\@undefined
+\let\ulcshape\@undefined
+\let\ulcdefault\@undefined
+\let\swshape\@undefined
+\let\swdefault\@undefined
+\let\sscshape\@undefined
+\let\sscdefault\@undefined
-\IncludeInRelease{0000/00/00}{\@popfilename}%
- {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
-\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
-\EndIncludeInRelease
-\@onlypreamble\@popfilename
-\IncludeInRelease{2020/10/01}%
- {\IfFormatAtLeastTF}{Test format date}%
-\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
-\let\IfPackageAtLeastTF\@ifpackagelater
-\let\IfClassAtLeastTF\@ifclasslater
-\@onlypreamble\IfFormatAtLeastTF
-\@onlypreamble\IfPackageAtLeastTF
-\@onlypreamble\IfClassAtLeastTF
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\IfFormatAtLeastTF}{Test format date}%
-\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
-\let\IfPackageAtLeastTF\@ifpackagelater
-\let\IfClassAtLeastTF\@ifclasslater
\EndIncludeInRelease
-\IncludeInRelease{2018/04/01}%
- {\@ifl@t@r}{Guard against bad input}%
-\def\@ifl@t@r#1#2{%
- \ifnum\expandafter\@parse@version@#1//00\@nil<%
- \expandafter\@parse@version@#2//00\@nil
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi}
-\def\@parse@version@#1{\@parse@version0#1}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@ifl@t@r}{Guard against bad input}%
-\def\@ifl@t@r#1#2{%
- \ifnum\expandafter\@parse@version#1//00\@nil<%
- \expandafter\@parse@version#2//00\@nil
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi}
-\let\@parse@version@\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2017/01/01}%
- {\@if@pti@ns}{Spaces in option clash check}%
-\def\@if@pti@ns#1#2{%
- \let\reserved@a\@firstoftwo
- \edef\reserved@b{\zap@space#2 \@empty}%
- \@for\reserved@b:=\reserved@b\do{%
- \ifx\reserved@b\@empty
- \else
- \expandafter\in@\expandafter{\expandafter,\reserved@b,}{,#1,}%
- \ifin@
- \else
- \let\reserved@a\@secondoftwo
- \fi
- \fi
- }%
- \reserved@a}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@if@pti@ns}{Spaces in option clash check}%
-\def\@if@pti@ns#1#2{%
- \let\reserved@a\@firstoftwo
- \@for\reserved@b:=#2\do{%
- \ifx\reserved@b\@empty
- \else
- \expandafter\in@\expandafter
- {\expandafter,\reserved@b,}{,#1,}%
- \ifin@
- \else
- \let\reserved@a\@secondoftwo
- \fi
- \fi
- }%
- \reserved@a}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@pr@videpackage}{Allow for package subsitution}%
-\def\@pr@videpackage[#1]{%
- \expandafter\protected@xdef % <-- protected...
- \csname ver@\@currname.\@currext\endcsname{#1}% Loaded package
- \expandafter\let
- \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package
- \csname ver@\@currname.\@currext\endcsname
- \ifx\@currext\@clsextension
- \typeout{Document Class: \@gtempa\space#1}%
- \else
- \protected@wlog{Package: \@gtempa\space#1}% <--- protected
- \fi}
-\long\def\protected@wlog#1{\begingroup
- \set@display@protect
- \immediate \write \m@ne {#1}\endgroup }
+\IncludeInRelease{2021/05/01}%
+ {\fontshape}{Font shape change}%
+\DeclareRobustCommand\fontshape[1]
+ {\expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ {\delayed@f@adjustment\delayed@merge@font@shape{#1}}}
+\DeclareRobustCommand\fontshapeforce[1]
+ {\expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ {\delayed@f@adjustment\edef\f@shape{#1}}}
\EndIncludeInRelease
\IncludeInRelease{2020/02/02}%
- {\@pr@videpackage}{Protection for package info}%
+ {\fontshape}{Font shape change}%
-\def\@pr@videpackage[#1]{%
- \expandafter\protected@xdef % <-- protected...
- \csname ver@\@currname.\@currext\endcsname{#1}%
-\ifx\@currext\@clsextension
- \typeout{Document Class: \@gtempa\space#1}%
- \else
- \protected@wlog{Package: \@gtempa\space#1}% <--- protected
- \fi}
+\DeclareRobustCommand\fontshape[1]{\merge@font@shape{#1}}
+\DeclareRobustCommand\fontshapeforce[1]{\edef\f@shape{#1}}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@pr@videpackage}{Protection for package info}%
+ {\fontshape}{Font shape change}%
-\def\@pr@videpackage[#1]{%
- \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}%
- \ifx\@currext\@clsextension
- \typeout{Document Class: \@gtempa\space#1}%
- \else
- \wlog{Package: \@gtempa\space#1}%
- \fi}
-\let\protected@wlog\@undefined
+\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
+\let\fontshapeforce\@undefined
\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}{\@pass@ptions}
- {Add file replacement in \@pass@ptions}%
-\def\@pass@ptions#1#2#3{%
- \@expl@@@filehook@set@curr@file@@nNN
- {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
- \reserved@a\reserved@b
- \expandafter\xdef\csname opt@\reserved@a\endcsname{%
- \@ifundefined{opt@\reserved@a}\@empty
- {\csname opt@\reserved@a\endcsname,}%
- \zap@space#2 \@empty}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\@pass@ptions}
- {\@pass@ptions}%
-\def\@pass@ptions#1#2#3{%
- \expandafter\xdef\csname opt@#3.#1\endcsname{%
- \@ifundefined{opt@#3.#1}\@empty
- {\csname opt@#3.#1\endcsname,}%
- \zap@space#2 \@empty}}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@process@pti@ns}{Unused options issue}%
-\def\@process@pti@ns{%
- \@for\CurrentOption:=\@curroptions\do{%
- \@ifundefined{ds@\CurrentOption}%
- {\@use@ption
- \default@ds}%
- \@use@ption}%
- \@for\CurrentOption:=\@declaredoptions\do{%
- \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
- \let\CurrentOption\@empty
- \let\@fileswith@pti@ns\@@fileswith@pti@ns
- \AtEndOfPackage{\expandafter\let
- \csname unprocessedoptions-\@currname.\@currext\endcsname
- \relax}}
-\@onlypreamble\@process@pti@ns
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@process@pti@ns}{Unused options issue}%
-\def\@process@pti@ns{%
- \@for\CurrentOption:=\@curroptions\do{%
- \@ifundefined{ds@\CurrentOption}%
- {\@use@ption
- \default@ds}%
- \@use@ption}%
- \@for\CurrentOption:=\@declaredoptions\do{%
- \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
- \let\CurrentOption\@empty
- \let\@fileswith@pti@ns\@@fileswith@pti@ns
- \AtEndOfPackage{\let\@unprocessedoptions\relax}}
-\EndIncludeInRelease
-\IncludeInRelease{2017/01/01}%
- {\ExecuteOptions}{Spaces in \ExecuteOptions}%
-\def\ExecuteOptions#1{%
- \edef\@fortmp{\zap@space#1 \@empty}%
- \def\reserved@a##1\@nil{%
- \@for\CurrentOption:=\@fortmp\do
- {\csname ds@\CurrentOption\endcsname}%
- \edef\CurrentOption{##1}}%
- \expandafter\reserved@a\CurrentOption\@nil}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\ExecuteOptions}{Spaces in \ExecuteOptions}%
-\def\ExecuteOptions#1{%
- \def\reserved@a##1\@nil{%
- \@for\CurrentOption:=#1\do
- {\csname ds@\CurrentOption\endcsname}%
- \edef\CurrentOption{##1}}%
- \expandafter\reserved@a\CurrentOption\@nil}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\RequirePackageWithOptions}{Unused options issue}%
-\def\RequirePackageWithOptions{%
- \AtEndOfPackage{\expandafter\let
- \csname unprocessedoptions-\@currname.\@currext\endcsname
- \relax}%
- \@loadwithoptions\@pkgextension\RequirePackage}
-\@onlypreamble\RequirePackageWithOptions
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\RequirePackageWithOptions}{Unused options issue}%
+\IncludeInRelease{2020/02/02}%
+ {\merge@font@shape}{Font shape change rules}%
+\def\merge@font@shape#1{%
+ \expandafter\expandafter\expandafter
+ \merge@font@shape@
+ \csname shape@\f@shape @#1\endcsname
+ {#1}%
+ \@nil
+}
-\def\RequirePackageWithOptions{%
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
- \@loadwithoptions\@pkgextension\RequirePackage}
-\EndIncludeInRelease
-\IncludeInRelease{2017/01/01}%
- {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
-\def\@fileswith@pti@ns#1[#2]#3[#4]{%
- \ifx#1\@clsextension
- \ifx\@classoptionslist\relax
- \xdef\@classoptionslist{\zap@space#2 \@empty}%
- \def\reserved@a{%
- \@onefilewithoptions#3[{#2}][{#4}]#1%
- \@documentclasshook}%
- \else
- \def\reserved@a{%
- \@onefilewithoptions#3[{#2}][{#4}]#1}%
- \fi
+\def\merge@font@shape@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \edef\f@shape{#2}%
\else
- \def\reserved@b##1,{%
- \ifx\@nnil##1\relax\else
- \ifx\@nnil##1\@nnil\else
- \noexpand\@onefilewithoptions##1[{#2}][{#4}]%
- \noexpand\@pkgextension
- \fi
- \expandafter\reserved@b
- \fi}%
- \edef\reserved@a{\zap@space#3 \@empty}%
- \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
- \fi
- \reserved@a}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
-\def\@fileswith@pti@ns#1[#2]#3[#4]{%
- \ifx#1\@clsextension
- \ifx\@classoptionslist\relax
- \xdef\@classoptionslist{\zap@space#2 \@empty}%
- \def\reserved@a{%
- \@onefilewithoptions#3[{#2}][{#4}]#1%
- \@documentclasshook}%
+ \edef\reserved@a{\f@encoding /\f@family /\f@series/#1}%
+ \ifcsname \reserved@a\endcsname
+ \edef\f@shape{#1}%
\else
- \def\reserved@a{%
- \@onefilewithoptions#3[{#2}][{#4}]#1}%
+ \ifcsname \f@encoding /\f@family /\f@series/#2\endcsname
+ \edef\f@shape{#2}%
+ \@font@shape@subst@warning
+ \else
+ \edef\f@shape{#3}%
+ \@font@shape@subst@warning
+ \fi
\fi
- \else
- \def\reserved@b##1,{%
- \ifx\@nil##1\relax\else
- \ifx\relax##1\relax\else
- \noexpand\@onefilewithoptions##1[{#2}][{#4}]%
- \noexpand\@pkgextension
- \fi
- \expandafter\reserved@b
- \fi}%
- \edef\reserved@a{\zap@space#3 \@empty}%
- \edef\reserved@a{%
- \expandafter\reserved@b\reserved@a,\@nil,}%
\fi
- \reserved@a}
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@onefilewithoptions}{Hooks and unused options issue}%
-\def\@onefilewithoptions#1[#2][#3]#4{%
- \@pushfilename
- \xdef\@currname{#1}%
- \global\let\@currext#4%
- \@ifl@aded\@currext\@currname
- {\@if@ptions\@currext{\@currname}{#2}{}%
- {\@latex@error
- {Option clash for \@cls@pkg\space \@currname}%
- {The package \@currname\space has already been loaded
- with options:\MessageBreak
- \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
- There has now been an attempt to load it
- with options\MessageBreak
- \space\space[#2]\MessageBreak
- Adding the global options:\MessageBreak
- \space\space
- \@ptionlist{\@currname.\@currext},#2\MessageBreak
- to your \noexpand\documentclass declaration may fix this.%
- \MessageBreak
- Try typing \space <return> \space to proceed.}}%
- \@firstofone}%
- {\makeatletter
- \@reset@ptions
- \IfFileExists{\@currname.\@currext}{}%
- {\@missing@onefilewithoptions{#2}}%
- \ifx\@currname\@empty
- \expandafter\@gobble
- \else
- \@disable@packageload@do{\@currname.\@currext}%
- {\@expl@@@filehook@file@push@@
- \set@curr@file{\@currname.\@currext}%
- \@filehook@set@CurrentFile
- \expandafter\@swaptwoargs\expandafter
- {\expandafter{\@currpkg@reqd}}%
- {% <
- \edef\@currpkg@reqd{\@currname.\@currext}%
- \ifx\CurrentFile\CurrentFileUsed
- \else
- \filename@parse\@curr@file
- \edef\@currname{\string@makeletter\filename@base}%
- \edef\@currext{\string@makeletter\filename@ext}%
- \fi
- \load@onefile@withoptions{#2}%
- \def\@currpkg@reqd%{\@currpkg@reqd}
- }% >
- \@expl@@@filehook@file@pop@@}%
- \expandafter\@firstofone
- \fi}%
- {\@ifl@ter\@currext{\@currname}{#3}{}%
- {\@latex@warning@no@line
- {You have requested,\on@line,
- version\MessageBreak
- `#3' of \@cls@pkg\space \@currname,\MessageBreak
- but only version\MessageBreak
- `\csname ver@\@currname.\@currext\endcsname'\MessageBreak
- is available}}%
- \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}%
- \@popfilename
- \@reset@ptions}
-\let\@currpkg@reqd\@empty
-\@onlypreamble\@onefilewithoptions
-\let\@unprocessedoptions\@undefined
-\def\@missing@onefilewithoptions#1{%
- \@missingfileerror\@currname\@currext
- \xdef\@currname{\@missingfile@area\@missingfile@base}%
- \global\let\@currext\@missingfile@ext}
-\def\load@onefile@withoptions#1{%
- \let\CurrentOption\@empty
- \@reset@ptions
- \def\reserved@a{%
- \@pass@ptions\@currext{#1}{\@currname}%
- \global\expandafter
- \let\csname ver@\@currname.\@currext\endcsname\@empty
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
- \ifx\@currext\@pkgextension
- \UseHook{package/before}%
- \UseHook{package/before/\@currname}%
- \else
- \ifx\@currext\@clsextension
- \UseHook{class/before}%
- \UseHook{class/before/\@currname}%
- \fi
- \fi
- \InputIfFileExists{\@currpkg@reqd}{}%
- {\@latex@error
- {The \@cls@pkg\space\@currpkg@reqd\space failed to load.}\@ehd}%
- \expandafter\let\csname unprocessedoptions-\@currname.\@currext\endcsname
- \@@unprocessedoptions
- \csname\@currname.\@currext-h@@k\endcsname
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
- \@undefined
- \ifx\@unprocessedoptions\relax
- \let\@unprocessedoptions\@undefined
- \else
- \csname unprocessedoptions-\@currname.\@currext\endcsname
- \fi
- \expandafter\let
- \csname unprocessedoptions-\@currname.\@currext\endcsname
- \@undefined
- \ifx\@currext\@pkgextension
- \UseHook{package/after/\@currname}%
- \UseHook{package/after}%
- \else
- \ifx\@currext\@clsextension
- \UseHook{class/after/\@currname}%
- \UseHook{class/after}%
- \fi
- \fi}%
- \@ifl@aded\@currext\@currname{}{\reserved@a}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@onefilewithoptions}{Hooks and unused options issue}%
-
-\def\load@onefilewithoptions#1[#2][#3]#4{%
- \@pushfilename
- \xdef\@currname{#1}%
- \global\let\@currext#4%
- \let\CurrentOption\@empty
- \@reset@ptions
- \makeatletter
- \def\reserved@a{%
- \@ifl@aded\@currext{#1}%
- {\@if@ptions\@currext{#1}{#2}{}%
- {\@latex@error
- {Option clash for \@cls@pkg\space #1}%
- {The package #1 has already been loaded
- with options:\MessageBreak
- \space\space[\@ptionlist{#1.\@currext}]\MessageBreak
- There has now been an attempt to load it
- with options\MessageBreak
- \space\space[#2]\MessageBreak
- Adding the global options:\MessageBreak
- \space\space
- \@ptionlist{#1.\@currext},#2\MessageBreak
- to your \noexpand\documentclass declaration may fix this.%
- \MessageBreak
- Try typing \space <return> \space to proceed.}}}%
- {\@pass@ptions\@currext{#2}{#1}%
- \global\expandafter
- \let\csname ver@\@currname.\@currext\endcsname\@empty
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
- \InputIfFileExists
- {\@currname.\@currext}%
- {}%
- {\@missingfileerror\@currname\@currext}%
- \let\@unprocessedoptions\@@unprocessedoptions
- \csname\@currname.\@currext-h@@k\endcsname
- \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
- \@undefined
- \@unprocessedoptions}%
- \@ifl@ter\@currext{#1}{#3}{}%
- {\@latex@warning@no@line
- {You have requested,\on@line,
- version\MessageBreak
- `#3' of \@cls@pkg\space #1,\MessageBreak
- but only version\MessageBreak
- `\csname ver@#1.\@currext\endcsname'\MessageBreak
- is available}}%
- \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
- \@popfilename
- \@reset@ptions}%
- \reserved@a}
-
-\let \load@onefile@withoptions \@undefined
-\let \@missing@onefilewithoptions \@undefined
-
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\AtBeginDocument}{Use hook system}%
-\DeclareRobustCommand\AtBeginDocument{\AddToHook{begindocument}}
-\DeclareRobustCommand\AtEndDocument {\AddToHook{enddocument}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\AtBeginDocument}{Use hook system}%
-
-\DeclareRobustCommand\AtBeginDocument{\g@addto@macro\@begindocumenthook}
-\DeclareRobustCommand\AtEndDocument{\g@addto@macro\@enddocumenthook}
-
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\filec@ntents}{Define \q@curr@file directly (gh/220)}%
-\def\filecontents{\@tempswatrue\@fileswtrue
- \@ifnextchar[\filec@ntents@opt\filec@ntents
}
-\@namedef{filecontents*}{\@tempswafalse\@fileswtrue
- \@ifnextchar[\filec@ntents@opt\filec@ntents
-}
-\def\filec@ntents@opt[#1]{%
- \edef\@fortmp{\zap@space#1 \@empty}%
- \@for\reserved@a:=\@fortmp\do{%
- \ifcsname filec@ntents@\reserved@a\endcsname
- \csname filec@ntents@\reserved@a\endcsname
- \else
- \@latex@error{Unknown filecontents option \reserved@a}%
- {Valid options are force (or overwrite), nosearch, noheader}%
- \fi}%
- \filec@ntents
-}
-\let\filec@ntents@force\@fileswfalse
-\let\filec@ntents@overwrite\@fileswfalse % alternative name
-\let\filec@ntents@noheader\@tempswafalse
-\def\filec@ntents@nosearch{%
- \let\filec@ntents@checkdir\@currdir
- \def\filec@ntents@where{in current directory}}
-\let\filec@ntents@checkdir\@empty
-\def\filec@ntents@where{exists on the system}
-\begingroup%
-\@tempcnta=1
-\loop
- \catcode\@tempcnta=12 %
- \advance\@tempcnta\@ne %
-\ifnum\@tempcnta<32 %
-\repeat %
-\catcode`\*=11 %
-\catcode`\^^M\active%
-\catcode`\^^L\active\let^^L\relax%
-\catcode`\^^I\active%
-\gdef\filec@ntents#1{%
- \set@curr@file{\filec@ntents@checkdir#1}%
- \edef\q@curr@file{"\@curr@file"}%
- \chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
- \openin\@inputcheck\q@curr@file \space %
- \ifeof\@inputcheck%
- \@latex@warning@no@line%
- {Writing file `\@currdir\@curr@file'}%
- \ch@ck7\reserved@c\write\relax%
- \immediate\openout\reserved@c\q@curr@file\relax%
- \else%
- \if@filesw%
- \@latex@warning@no@line%
- {File `\@curr@file' already \filec@ntents@where.\MessageBreak%
- Not generating it from this source}%
- \let\write\@gobbletwo%
- \let\closeout\@gobble%
- \else%
- \edef\reserved@a{#1}%
- \edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
- \edef\reserved@b{\detokenize\expandafter{\jobname}}%
- \ifx\reserved@a\reserved@b%
- \@fileswtrue%
- \else%
- \edef\reserved@b{\reserved@b\detokenize{.tex}}%
- \ifx\reserved@a\reserved@b
- \@fileswtrue%
- \fi%
- \fi%
- \ch@ck7\reserved@c\write\relax%
- \if@filesw% % Foul ... trying to overwrite \jobname!
- \@latex@error{Trying to overwrite `\jobname.tex'}{You can't %
- write to the file you are reading from!\MessageBreak%
- Data is written to screen instead.}%
- \else%
- \@latex@warning@no@line%
- {Writing or overwriting file `\@currdir\@curr@file'}%
- \immediate\openout\reserved@c\q@curr@file\relax%
- \fi%
- \fi%
- \fi%
- \closein\@inputcheck%
- \if@tempswa%
- \immediate\write\reserved@c{%
- \@percentchar\@percentchar\space%
- \expandafter\@gobble\string\LaTeX2e file `\@curr@file'^^J%
- \@percentchar\@percentchar\space generated by the %
- `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
- \@percentchar\@percentchar\space from source `\jobname' on %
- \number\year/\two@digits\month/\two@digits\day.^^J%
- \@percentchar\@percentchar}%
- \fi%
- \let\do\@makeother\dospecials%
- \count@ 128\relax%
- \loop%
- \catcode\count@ 11\relax%
- \advance\count@ \@ne%
- \ifnum\count@<\@cclvi%
- \repeat%
- \edef\E{\@backslashchar end\string{\@currenvir\string}}%
- \edef\reserved@b{%
- \def\noexpand\reserved@b%
- ####1\E####2\E####3\relax}%
- \reserved@b{%
- \ifx\relax##3\relax%
- \immediate\write\reserved@c{##1}%
- \else%
- \edef^^M{\noexpand\end{\@currenvir}}%
- \ifx\relax##1\relax%
- \else%
- \@latex@warning{Writing text `##1' before %
- \string\end{\@currenvir}\MessageBreak as last line of \@curr@file}%
- \immediate\write\reserved@c{##1}%
- \fi%
- \ifx\relax##2\relax%
- \else%
- \@latex@warning{%
- Ignoring text `##2' after \string\end{\@currenvir}}%
- \fi%
- \fi%
- ^^M}%
- \catcode`\^^L\active%
- \let\L\@undefined%
- \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
- \catcode`\^^I\active%
- \let\I\@undefined%
- \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
- \catcode`\^^M\active%
- \edef^^M##1^^M{%
- \noexpand\reserved@b##1\E\E\relax}}%
-\endgroup%
-\EndIncludeInRelease
-\IncludeInRelease{2019/10/01}%
- {\filec@ntents}{Spaces in file names + optional arg}%
-\def\filecontents{\@tempswatrue\@fileswtrue
- \@ifnextchar[\filec@ntents@opt\filec@ntents
+\def\merge@font@shape@without@substitution#1{%
+ \expandafter\expandafter\expandafter
+ \merge@font@shape@without@substitution@
+ \csname shape@\f@shape @#1\endcsname
+ {#1}%
+ \@nil
}
-\@namedef{filecontents*}{\@tempswafalse\@fileswtrue
- \@ifnextchar[\filec@ntents@opt\filec@ntents
+\def\merge@font@shape@without@substitution@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \edef\f@shape{#2}%
+ \else
+ \edef\f@shape{#1}%
+ \fi
}
-\def\filec@ntents@opt[#1]{%
- \edef\@fortmp{\zap@space#1 \@empty}%
- \@for\reserved@a:=\@fortmp\do{%
- \ifcsname filec@ntents@\reserved@a\endcsname
- \csname filec@ntents@\reserved@a\endcsname
- \else
- \@latex@error{Unknown filecontents option \reserved@a}%
- {Valid options are force (or overwrite), nosearch, noheader}%
- \fi}%
- \filec@ntents
+\let\delayed@merge@font@shape\merge@font@shape@without@substitution
+\protected\def\normalshape
+ {\not@math@alphabet\normalshape\relax
+ \fontshape\shapedefault\selectfont}%
+\def\reinstall@nfss@defs{%
+ \protected\def\upshape
+ {\not@math@alphabet\upshape\relax
+ \fontshape\updefault\selectfont}%
+ \protected\def\slshape
+ {\not@math@alphabet\slshape\relax
+ \fontshape\sldefault\selectfont}%
+ \protected\def\scshape
+ {\not@math@alphabet\scshape\relax
+ \fontshape\scdefault\selectfont}%
+ \protected\def\itshape
+ {\not@math@alphabet\itshape\mathit
+ \fontshape\itdefault\selectfont}%
+ \protected\def\ulcshape
+ {\not@math@alphabet\ulcshape\relax
+ \fontshape{ulc}\selectfont}%
+ \protected\def\swshape
+ {\not@math@alphabet\swshape\relax
+ \fontshape\swdefault\selectfont}%
+ \protected\def\sscshape
+ {\not@math@alphabet\sscshape\relax
+ \fontshape\sscdefault\selectfont}%
}
-\let\filec@ntents@force\@fileswfalse
-\let\filec@ntents@overwrite\@fileswfalse % alternative name
-\let\filec@ntents@noheader\@tempswafalse
-\def\filec@ntents@nosearch{%
- \let\filec@ntents@checkdir\@currdir
- \def\filec@ntents@where{in current directory}}
-\let\filec@ntents@checkdir\@empty
-\def\filec@ntents@where{exists on the system}
-\begingroup%
-\@tempcnta=1
-\loop
- \catcode\@tempcnta=12 %
- \advance\@tempcnta\@ne %
-\ifnum\@tempcnta<32 %
-\repeat %
-\catcode`\*=11 %
-\catcode`\^^M\active%
-\catcode`\^^L\active\let^^L\relax%
-\catcode`\^^I\active%
-\gdef\filec@ntents#1{%
- \set@curr@file{\filec@ntents@checkdir#1}%
- \edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}%
- \chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
- \openin\@inputcheck\q@curr@file \space %
- \ifeof\@inputcheck%
- \@latex@warning@no@line%
- {Writing file `\@currdir\@curr@file'}%
- \ch@ck7\reserved@c\write\relax%
- \immediate\openout\reserved@c\q@curr@file\relax%
- \else%
- \if@filesw%
- \@latex@warning@no@line%
- {File `\@curr@file' already \filec@ntents@where.\MessageBreak%
- Not generating it from this source}%
- \let\write\@gobbletwo%
- \let\closeout\@gobble%
- \else%
- \edef\reserved@a{#1}%
- \edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
- \edef\reserved@b{\detokenize\expandafter{\jobname}}%
- \ifx\reserved@a\reserved@b%
- \@fileswtrue%
- \else%
- \edef\reserved@b{\reserved@b\detokenize{.tex}}%
- \ifx\reserved@a\reserved@b
- \@fileswtrue%
- \fi%
- \fi%
- \ch@ck7\reserved@c\write\relax%
- \if@filesw% % Foul ... trying to overwrite \jobname!
- \@latex@error{Trying to overwrite `\jobname.tex'}{You can't %
- write to the file you are reading from!\MessageBreak%
- Data is written to screen instead.}%
- \else%
- \@latex@warning@no@line%
- {Writing or overwriting file `\@currdir\@curr@file'}%
- \immediate\openout\reserved@c\q@curr@file\relax%
- \fi%
- \fi%
- \fi%
- \closein\@inputcheck%
- \if@tempswa%
- \immediate\write\reserved@c{%
- \@percentchar\@percentchar\space%
- \expandafter\@gobble\string\LaTeX2e file `\@curr@file'^^J%
- \@percentchar\@percentchar\space generated by the %
- `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
- \@percentchar\@percentchar\space from source `\jobname' on %
- \number\year/\two@digits\month/\two@digits\day.^^J%
- \@percentchar\@percentchar}%
- \fi%
- \let\do\@makeother\dospecials%
- \count@ 128\relax%
- \loop%
- \catcode\count@ 11\relax%
- \advance\count@ \@ne%
- \ifnum\count@<\@cclvi%
- \repeat%
- \edef\E{\@backslashchar end\string{\@currenvir\string}}%
- \edef\reserved@b{%
- \def\noexpand\reserved@b%
- ####1\E####2\E####3\relax}%
- \reserved@b{%
- \ifx\relax##3\relax%
- \immediate\write\reserved@c{##1}%
- \else%
- \edef^^M{\noexpand\end{\@currenvir}}%
- \ifx\relax##1\relax%
- \else%
- \@latex@warning{Writing text `##1' before %
- \string\end{\@currenvir}\MessageBreak as last line of \@curr@file}%
- \immediate\write\reserved@c{##1}%
- \fi%
- \ifx\relax##2\relax%
- \else%
- \@latex@warning{%
- Ignoring text `##2' after \string\end{\@currenvir}}%
- \fi%
- \fi%
- ^^M}%
- \catcode`\^^L\active%
- \let\L\@undefined%
- \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
- \catcode`\^^I\active%
- \let\I\@undefined%
- \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
- \catcode`\^^M\active%
- \edef^^M##1^^M{%
- \noexpand\reserved@b##1\E\E\relax}}%
-\endgroup%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\filec@ntents}{Spaces in file names + optional arg}%
-
-\let\filec@ntents@opt \@undefined
-\let\filec@ntents@force \@undefined
-\let\filec@ntents@overwrite \@undefined
-\let\filec@ntents@noheader \@undefined
-\let\filec@ntents@nosearch \@undefined
-\let\filec@ntents@checkdir \@undefined
-\let\filec@ntents@where \@undefined
-
-\begingroup%
-\@tempcnta=1
-\loop
- \catcode\@tempcnta=12 %
- \advance\@tempcnta\@ne %
-\ifnum\@tempcnta<32 %
-\repeat %
-\catcode`\*=11 %
-\catcode`\^^M\active%
-\catcode`\^^L\active\let^^L\relax%
-\catcode`\^^I\active%
+ {\merge@font@shape}{Font shape change rules}%
-\gdef\filec@ntents#1{%
- \openin\@inputcheck#1 %
- \ifeof\@inputcheck%
- \@latex@warning@no@line%
- {Writing file `\@currdir#1'}%
- \chardef\reserved@c15 %
- \ch@ck7\reserved@c\write%
- \immediate\openout\reserved@c#1\relax%
- \else%
- \closein\@inputcheck%
- \@latex@warning@no@line%
- {File `#1' already exists on the system.\MessageBreak%
- Not generating it from this source}%
- \let\write\@gobbletwo%
- \let\closeout\@gobble%
- \fi%
- \if@tempswa%
- \immediate\write\reserved@c{%
- \@percentchar\@percentchar\space%
- \expandafter\@gobble\string\LaTeX2e file `#1'^^J%
- \@percentchar\@percentchar\space generated by the %
- `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
- \@percentchar\@percentchar\space from source `\jobname' on %
- \number\year/\two@digits\month/\two@digits\day.^^J%
- \@percentchar\@percentchar}%
- \fi%
- \let\do\@makeother\dospecials%
- \count@ 128\relax%
- \loop%
- \catcode\count@ 11\relax%
- \advance\count@ \@ne%
- \ifnum\count@<\@cclvi%
- \repeat%
- \edef\E{\@backslashchar end\string{\@currenvir\string}}%
- \edef\reserved@b{%
- \def\noexpand\reserved@b%
- ####1\E####2\E####3\relax}%
- \reserved@b{%
- \ifx\relax##3\relax%
- \immediate\write\reserved@c{##1}%
- \else%
- \edef^^M{\noexpand\end{\@currenvir}}%
- \ifx\relax##1\relax%
- \else%
- \@latex@warning{Writing text `##1' before %
- \string\end{\@currenvir}\MessageBreak as last line of #1}%
- \immediate\write\reserved@c{##1}%
- \fi%
- \ifx\relax##2\relax%
- \else%
- \@latex@warning{%
- Ignoring text `##2' after \string\end{\@currenvir}}%
- \fi%
- \fi%
- ^^M}%
-
- \catcode`\^^L\active%
- \let\L\@undefined%
- \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
- \catcode`\^^I\active%
- \let\I\@undefined%
- \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
- \catcode`\^^M\active%
- \edef^^M##1^^M{%
- \noexpand\reserved@b##1\E\E\relax}}%
-\endgroup%
-\EndIncludeInRelease
-%%% From File: ltspace.dtx
-\IncludeInRelease{2019/10/01}%
- {\pagebreak}{Make commands robust}%
-\DeclareRobustCommand\pagebreak{\@testopt{\@no@pgbk-}4}
-\DeclareRobustCommand\nopagebreak{\@testopt\@no@pgbk4}
-\DeclareRobustCommand\linebreak{\@testopt{\@no@lnbk-}4}
-\DeclareRobustCommand\nolinebreak{\@testopt\@no@lnbk4}
-\DeclareRobustCommand\samepage{\interlinepenalty\@M
- \postdisplaypenalty\@M
- \interdisplaylinepenalty\@M
- \@beginparpenalty\@M
- \@endparpenalty\@M
- \@itempenalty\@M
- \@secpenalty\@M
- \interfootnotelinepenalty\@M}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\pagebreak}{Make commands robust}%
+\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
+\let\fontshapeforce\@undefined
-\kernel@make@fragile\pagebreak
-\kernel@make@fragile\nopagebreak
-\kernel@make@fragile\linebreak
-\kernel@make@fragile\nolinebreak
-\kernel@make@fragile\samepage
+\let\merge@font@shape\@undefined
+\let\merge@font@shape@\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/02/02}%
- {\@normalcr}{Make robust}%
-\protected\def\@normalcr{%
- \let \reserved@e \relax
- \let \reserved@f \relax
- \@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
- \@xnewline}%
- \@xnewline}
-\let\\\@normalcr
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@normalcr}{Make robust}%
+\let\merge@font@shape@without@substitution\@undefined
+\let\merge@font@shape@without@substitution@\@undefined
+\let\delayed@merge@font@shape\@undefined
-\DeclareRobustCommand\\{%
- \let \reserved@e \relax
- \let \reserved@f \relax
- \@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak
- \@xnewline}%
- \@xnewline}
-\expandafter\let\expandafter\@normalcr
- \csname\expandafter\@gobble\string\\ \endcsname
+\let\normalshape\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@vspace@calcify}{Add calc support}%
-\def\@vspace@calcify#1{\begingroup\setlength\skip@{#1}\vskip\skip@\endgroup}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@vspace@calcify}{Add calc support}%
-\let\@vspace@calcify\@undefined
+\let\reinstall@nfss@defs\relax
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
- {\@newline}{\newline calc support}%
-\def\@newline[#1]{\let \reserved@e \vadjust
- \@gnewline {\@vspace@calcify{#1}}}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@newline}{\newline calc support}%
-
-\def\@newline[#1]{\let \reserved@e \vadjust
- \@gnewline {\vskip #1}}
-\EndIncludeInRelease
-\IncludeInRelease{2018/10/10}%
- {\@esphack}{hyphenation and nobreak after space hack}%
-\def\@esphack{%
- \relax
- \ifhmode
- \spacefactor\@savsf
- \ifdim\@savsk>\z@
- \ifdim\lastskip=\z@
- \nobreak \hskip\z@skip
- \fi
- \ignorespaces
- \fi
- \else
- \ifvmode
- \if@nobreak\nobreak\else\if@noskipsec\nobreak\fi\fi
- \fi
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/10/01}%
- {\@esphack}{hyphenation and nobreak after space hack}%
-\def\@esphack{%
- \relax
- \ifhmode
- \spacefactor\@savsf
- \ifdim\@savsk>\z@
- \ifdim\lastskip=\z@
- \nobreak \hskip\z@skip
- \fi
- \ignorespaces
- \fi
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@esphack}{hyphenation and nobreak after space hack}%
-\def\@esphack{%
- \relax
- \ifhmode
- \spacefactor\@savsf
- \ifdim\@savsk>\z@
- \nobreak \hskip\z@skip
- \ignorespaces
- \fi
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@esphack}{hyphenation and nobreak after space hack}%
-\def\@esphack{%
- \relax
- \ifhmode
- \spacefactor\@savsf
- \ifdim\@savsk>\z@
- \ignorespaces
- \fi
- \fi}%
+ {\reinstall@nfss@defs}{NFSS series init}%
+\g@addto@macro\@kernel@after@begindocument@before
+ {\reinstall@nfss@defs\init@series@setup}
\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@Esphack}{hyphenation after space hack}%
-\def\@Esphack{%
- \relax
- \ifhmode
- \spacefactor\@savsf
- \ifdim\@savsk>\z@
- \nobreak \hskip\z@skip
- \@ignoretrue
- \ignorespaces
- \fi
- \fi}%
+\IncludeInRelease{2020/02/02}%
+ {\reinstall@nfss@defs}{NFSS series init}%
+\AtBeginDocument{\reinstall@nfss@defs\init@series@setup}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@Esphack}{hyphenation after space hack}%
-\def\@Esphack{%
- \relax
- \ifhmode
- \spacefactor\@savsf
- \ifdim\@savsk>\z@
- \@ignoretrue
- \ignorespaces
- \fi
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\addvspace}{\addvspace calc support}%
-\def\addvspace#1{%
- \ifvmode
- \if@minipage\else
- \ifdim \lastskip =\z@
- \@vspace@calcify{#1}%
- \else
- \setlength\@tempskipb{#1}%
- \@xaddvskip
- \fi
- \fi
- \else
- \@noitemerr
- \fi}
+ {\reinstall@nfss@defs}{NFSS series init}%
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\addvspace}{\addvspace calc support}%
+%%% From File: ltfsstrc.dtx
+%% Copyright (C) 1989-97 by Frank Mittelbach and Rainer Sch\"opf.
+%% Copyright (C) 1994-97 by LaTeX3 project. All rights reserved.
-\def\addvspace#1{%
- \ifvmode
- \if@minipage\else
- \ifdim \lastskip =\z@
- \vskip #1\relax
- \else
- \@tempskipb#1\relax
- \@xaddvskip
- \fi
- \fi
- \else
- \@noitemerr
- \fi}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\addpenalty}{\addpenalty}%
-\def\addpenalty#1{%
- \ifvmode
- \if@minipage
- \else
- \if@nobreak
- \else
- \ifdim\lastskip=\z@
- \penalty#1\relax
- \else
- \@tempskipb\lastskip
- \begingroup
- \@tempskipa\@tempskipb
- \advance \@tempskipb
- \ifdim\prevdepth>\maxdepth\maxdepth\else
- \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi
- \fi
- \vskip -\@tempskipb
- \penalty#1%
- \ifdim\@tempskipa=\@tempskipb
- \else
- \advance\@tempskipb -\@tempskipa
- \vskip \@tempskipb
- \fi
- \vskip \@tempskipa
- \endgroup
- \fi
- \fi
- \fi
- \else
- \@noitemerr
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\addpenalty}{\addpenalty}%
-\def\addpenalty#1{%
- \ifvmode
- \if@minipage
+\IncludeInRelease{2021/05/01}%
+ {\selectfont}{Add hook to \selectfont}%
+\DeclareRobustCommand\selectfont
+ {%
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
+ \ifx\delayed@f@adjustment\@empty
\else
- \if@nobreak
+ \let\f@shape@saved\f@shape
+ \let\f@series@saved\f@series
+ \delayed@f@adjustment
+ \maybe@load@fontshape
+ \ifcsname \f@encoding/\f@family/\f@series/\f@shape \endcsname
\else
- \ifdim\lastskip=\z@
- \penalty#1\relax
- \else
- \@tempskipb\lastskip
- \vskip -\lastskip
- \penalty#1%
- \vskip\@tempskipb
- \fi
+ \let\f@shape\f@shape@saved
+ \let\f@series\f@series@saved
+ \let\delayed@merge@font@shape\merge@font@shape
+ \let\delayed@merge@font@series\merge@font@series
+ \delayed@f@adjustment
+ \let\delayed@merge@font@shape\merge@font@shape@without@substitution
+ \let\delayed@merge@font@series\merge@font@series@without@substitution
\fi
+ \let\delayed@f@adjustment\@empty
\fi
- \else
- \@noitemerr
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@vspace}{Support calc in \vspace}%
-\def\@vspace #1{%
- \ifvmode
- \@vspace@calcify{#1}%
- \vskip\z@skip
- \else
- \@bsphack
- \vadjust{\@restorepar
- \@vspace@calcify{#1}%
- \vskip\z@skip
- }%
- \@esphack
- \fi}
-\def\@vspacer#1{%
- \ifvmode
- \dimen@\prevdepth
- \hrule \@height\z@
- \nobreak
- \@vspace@calcify{#1}%
- \vskip\z@skip
- \prevdepth\dimen@
- \else
- \@bsphack
- \vadjust{\@restorepar
- \hrule \@height\z@
- \nobreak
- \@vspace@calcify{#1}%
- \vskip\z@skip}%
- \@esphack
- \fi}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@vspace}{Support calc in \vspace}%
-
-\def\@vspace #1{%
- \ifvmode
- \vskip #1
- \vskip\z@skip
- \else
- \@bsphack
- \vadjust{\@restorepar
- \vskip #1
- \vskip\z@skip
- }%
- \@esphack
- \fi}
-\def\@vspacer#1{%
- \ifvmode
- \dimen@\prevdepth
- \hrule \@height\z@
- \nobreak
- \vskip #1
- \vskip\z@skip
- \prevdepth\dimen@
- \else
- \@bsphack
- \vadjust{\@restorepar
- \hrule \@height\z@
- \nobreak
- \vskip #1
- \vskip\z@skip}%
- \@esphack
- \fi}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\@}{Space after \@}%
-\def\@{\spacefactor\@m{}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@}{Space after \@}%
-\def\@{\spacefactor\@m}%
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\@hspace}{Support calc with \hspace}%
-\def\@hspace#1{\begingroup\setlength\skip@{#1}\hskip\skip@\endgroup}
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \UseHook{selectfont}%
+ \size@update
+ \enc@update
+ }
+\NewHook{selectfont}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\@hspace}{Support calc with \hspace}%
+ {\selectfont}{Add hook to \selectfont}%
+\DeclareRobustCommand\selectfont
+ {%
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip \fi
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \size@update
+ \enc@update
+ }
-\def\@hspace#1{\hskip #1\relax}
-\EndIncludeInRelease
-\IncludeInRelease{2018/12/01}%
- {\thinspace}{Start LR-mode}%
-\DeclareRobustCommand\enspace{\leavevmode@ifvmode\kern.5em }
-\protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\thinspace}{Start LR-mode}%
-\def\thinspace{\kern .16667em }
-\def\negthinspace{\kern-.16667em }
-\def\enspace{\kern.5em }
-\let\leavevmode@ifvmode\@undefined
-\EndIncludeInRelease
-%%% From File: ltlogos.dtx
-%%% From File: ltplain.dtx
-\IncludeInRelease{2015/01/01}%
- {\newcount}{Extended Allocation}%
-\def\newcount {\e@alloc\count \countdef {\count10}\insc@unt\float@count}
-\def\newdimen {\e@alloc\dimen \dimendef {\count11}\insc@unt\float@count}
-\def\newskip {\e@alloc\skip \skipdef {\count12}\insc@unt\float@count}
-\def\newmuskip
- {\e@alloc\muskip\muskipdef{\count13}\m@ne\e@alloc@top}
-\def\newbox {\e@alloc\box
- {\ifnum\allocationnumber<\@cclvi
- \expandafter\chardef
- \else
- \expandafter\e@alloc@chardef
- \fi}
- {\count14}\insc@unt\float@count}
-\def\newtoks {\e@alloc\toks \toksdef{\count15}\m@ne\e@alloc@top}
-\def\newread {\e@alloc\read \chardef{\count16}\m@ne\sixt@@n}
-\ifx\directlua\@undefined
- \def\newwrite {\e@alloc\write \chardef{\count17}\m@ne\sixt@@n}
-\else
- \def\newwrite {\e@alloc\write
- {\ifnum\allocationnumber=18
- \advance\count17\@ne
- \allocationnumber\count17 %
- \fi
- \global\chardef}%
- {\count17}%
- \m@ne
- {128}}
-\fi
-\def\new@mathgroup
- {\e@alloc\mathgroup\chardef{\count18}\m@ne\e@mathgroup@top}
-\let\newfam\new@mathgroup
-\ifx\directlua\@undefined
- \def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne\@cclvi}
-\else
- \def\newlanguage {\e@alloc\language \chardef{\count19}\m@ne{16384}}
-\fi
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\newcount}{Extended Allocation}%
-\def\newcount{\alloc@0\count\countdef\insc@unt}
-\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
-\def\newskip{\alloc@2\skip\skipdef\insc@unt}
-\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
-\def\newbox{\alloc@4\box\chardef\insc@unt}
-\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
-\def\newread{\alloc@6\read\chardef\sixt@@n}
-\def\newwrite{\alloc@7\write\chardef\sixt@@n}
-\def\new@mathgroup{\alloc@8\fam\chardef\sixt@@n}
-\def\newlanguage{\alloc@9\language\chardef\@cclvi}
-\let\newfam\new@mathgroup
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\e@alloc@chardef}{Extended Allocation}%
-\ifx\directlua\@undefined
- \ifx\widowpenalties\@undefined
- \mathchardef\e@alloc@top=255
- \let\e@alloc@chardef\chardef
- \else
- \mathchardef\e@alloc@top=32767
- \let\e@alloc@chardef\mathchardef
- \fi
-\else
- \chardef\e@alloc@top=65535
- \let\e@alloc@chardef\chardef
-\fi
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\e@alloc@chardef}{Extended Allocation}%
-\let\e@alloc@top\@undefined
-\let\e@alloc@chardef\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\e@mathgroup@top}{Extended Allocation}%
-\ifx\Umathcode\@undefined
- \chardef\e@mathgroup@top=16
-\else
- \chardef\e@mathgroup@top=256
-\fi
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\e@mathgroup@top}{Extended Allocation}%
-\let\e@mathgroup@top\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\e@alloc}{Extended Allocation}%
-\def\e@alloc#1#2#3#4#5#6{%
- \global\advance#3\@ne
- \e@ch@ck{#3}{#4}{#5}#1%
- \allocationnumber#3\relax
- \global#2#6\allocationnumber
- \wlog{\string#6=\string#1\the\allocationnumber}}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\e@alloc}{Extended Allocation}%
-\let\e@alloc\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/10/01}
- {\e@ch@ck}{Extended Allocation (checking)}%
-\gdef\e@ch@ck#1#2#3#4{%
- \ifnum#1<#2\else
- \ifnum#1=#2\relax
- \global#1\@cclvi
- \ifx\count#4\global\advance#1 10 \fi
- \fi
- \ifnum#1<#3\relax
- \else
- \errmessage{No room for a new \string#4}%
- \fi
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\e@ch@ck}{Extended Allocation (checking)}%
-\gdef\e@ch@ck#1#2#3#4{%
- \ifnum#1<#2\else
- \ifnum#1=#2\relax
- #1\@cclvi
- \ifx\count#4\advance#1 10 \fi
- \fi
- \ifnum#1<#3\relax
- \else
- \errmessage{No room for a new #4}%
- \fi
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\e@ch@ck}{Extended Allocation (checking)}%
-\let\e@ch@ck\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}%
- {\extrafloats}{Extra floats}%
-\let\float@count\e@alloc@top
-\ifx\numexpr\@undefined
-\def\extrafloats#1{%
-\count@#1\relax
-\ifnum\count@>\z@
-\newinsert\reserved@a
-\global\expandafter\chardef
- \csname bx@\the\allocationnumber\endcsname\allocationnumber
-\@cons\@freelist{\csname bx@\the\allocationnumber\endcsname}%
-\advance\count@\m@ne
-\expandafter\extrafloats
-\expandafter\count@
-\fi
-}%
-\else
-\def\extrafloats#1{%
-\ifnum#1>\z@
-\count@\numexpr\float@count-1\relax
- \ch@ck0\count@\count
- \ch@ck1\count@\dimen
- \ch@ck2\count@\skip
- \ch@ck4\count@\box
-\global\e@alloc@chardef\float@count\count@
-\global\expandafter\e@alloc@chardef
- \csname bx@\the\float@count\endcsname\float@count
-\@cons\@freelist{\csname bx@\the\float@count\endcsname}%
-\expandafter
-\extrafloats\expandafter{\numexpr#1-1\relax}%
-\fi}%
-\fi
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\extrafloats}{Extra floats}%
-\let\float@count\@undefined
-\let\extrafloats\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}
- {\alloc@}{emulate alloc@}%
-\def\alloc@#1#2#3#4{\e@alloc#2#3{\count1#1}#4\float@count}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\alloc@}{emulate alloc@}%
-\def\alloc@#1#2#3#4#5{\global\advance\count1#1\@ne
- \ch@ck#1#4#2%
- \allocationnumber\count1#1%
- \global#3#5\allocationnumber
- \wlog{\string#5=\string#2\the\allocationnumber}}
-\EndIncludeInRelease
-\IncludeInRelease{2015/10/01}
- {\newinsert}{Extended \newinsert}%
-\ifx\numexpr\@undefined
-\def\newinsert#1{\global\advance\insc@unt \m@ne
- \ch@ck0\insc@unt\count
- \ch@ck1\insc@unt\dimen
- \ch@ck2\insc@unt\skip
- \ch@ck4\insc@unt\box
- \allocationnumber\insc@unt
- \global\chardef#1\allocationnumber
- \wlog{\string#1=\string\insert\the\allocationnumber}}
-\else
-\ifx\directlua\@undefined
- \chardef\e@insert@top255
-\else
- \chardef\e@insert@top\e@alloc@top
-\fi
-\def\newinsert#1{%
-\@tempswafalse
-\global\advance\insc@unt\m@ne
-\ifnum\count10<\insc@unt
-\ifnum\count11<\insc@unt
-\ifnum\count12<\insc@unt
-\ifnum\count14<\insc@unt
- \@tempswatrue
-\fi\fi\fi\fi
-\if@tempswa
-\allocationnumber\insc@unt
-\else
-\global\advance\insc@unt\@ne
- \extrafloats\@ne
- \@next\@currbox\@freelist
- {\ifnum\@currbox<\e@insert@top
- \allocationnumber\@currbox
- \else
- \ch@ck0\m@ne\insert
- \fi}%
- {\ch@ck0\m@ne\insert}%
-\fi
-\global\chardef#1\allocationnumber
-\wlog{\string#1=\string\insert\the\allocationnumber}%
+\IncludeInRelease{2020/02/02}%
+ {\@font@aliasinfo}{alias size function}%
+\DeclareSizeFunction{alias}{\sub@sfcnt\@font@aliasinfo}
+\def\@font@aliasinfo#1{%
+ \@font@info{Font\space shape\space `\curr@fontshape'\space
+ aliased\space to\MessageBreak `\mandatory@arg'}%
}
-\fi
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\newinsert}{Extended \newinsert}%
-\let\e@insert@top\@undefined
-\def\newinsert#1{\global\advance\insc@unt \m@ne
- \ch@ck0\insc@unt\count
- \ch@ck1\insc@unt\dimen
- \ch@ck2\insc@unt\skip
- \ch@ck4\insc@unt\box
- \allocationnumber\insc@unt
- \global\chardef#1\allocationnumber
- \wlog{\string#1=\string\insert\the\allocationnumber}}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\loggingall}{etex tracing}%
-\ifx\tracingscantokens\@undefined
-\gdef\loggingall{%
- \tracingstats\tw@
- \tracingpages\@ne
- \tracinglostchars\@ne
- \tracingparagraphs\@ne
- \errorcontextlines\maxdimen
- \loggingoutput
- \tracingmacros\tw@
- \tracingcommands\tw@
- \tracingrestores\@ne
- }%
-\else
-\gdef\loggingall{%
- \tracingstats\tw@
- \tracingpages\@ne
- \tracinglostchars\tw@
- \tracingparagraphs\@ne
- \tracinggroups\@ne
- \tracingifs\@ne
- \tracingscantokens\@ne
- \tracingnesting\@ne
- \errorcontextlines\maxdimen
- \loggingoutput
- \tracingmacros\tw@
- \tracingcommands\thr@@
- \tracingrestores\@ne
- \tracingassigns\@ne
-}%
-\fi
-\gdef\tracingall{\showoverfull\loggingall}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\loggingall}{etex tracing}%
-\gdef\loggingall{\tracingcommands\tw@\tracingstats\tw@
- \tracingpages\@ne\tracinglostchars\@ne
- \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
- \errorcontextlines\maxdimen\loggingoutput}
- \gdef\tracingall{\loggingall\showoverfull}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\tracingnone}%
- {turn off etex tracing}%
-\ifx\tracingscantokens\@undefined
-\def\tracingnone{%
- \tracingonline\z@
- \tracingcommands\z@
- \showboxdepth\m@ne
- \showboxbreadth\m@ne
- \tracingoutput\z@
- \errorcontextlines\m@ne
- \tracingrestores\z@
- \tracingparagraphs\z@
- \tracingmacros\z@
- \tracinglostchars\@ne
- \tracingpages\z@
- \tracingstats\z@
-}%
-\else
-\def\tracingnone{%
- \tracingassigns\z@
- \tracingrestores\z@
- \tracingonline\z@
- \tracingcommands\z@
- \showboxdepth\m@ne
- \showboxbreadth\m@ne
- \tracingoutput\z@
- \errorcontextlines\m@ne
- \tracingnesting\z@
- \tracingscantokens\z@
- \tracingifs\z@
- \tracinggroups\z@
- \tracingparagraphs\z@
- \tracingmacros\z@
- \tracinglostchars\@ne
- \tracingpages\z@
- \tracingstats\z@
-}%
-\fi
-\def\hideoutput{%
- \tracingoutput\z@
- \showboxbreadth\m@ne
- \showboxdepth\m@ne
- \tracingonline\m@ne
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\tracingnone}%
- {turn off etex tracing}%
-\let\tracingnone\@undefined
-\let\hideoutput\@undefined
+ {\@font@aliasinfo}{alias size function}%
+\let\s@fct@alias\@undefined
+\let\@font@aliasinfo\@undefined
+
\EndIncludeInRelease
%%% From File: ltfssdcl.dtx
%% Copyright (C) 1989-1998 Frank Mittelbach and Rainer Sch\"opf,
@@ -8573,1078 +6401,6 @@ of this package available from CTAN}
\EndIncludeInRelease
-%%% From File: ltfssbas.dtx
-%% Copyright (C) 1989-2002 Frank Mittelbach and Rainer Sch\"opf
-\IncludeInRelease{2020/02/02}%
- {\DeclareFontShape@}{Maybe drop one m}%
-\def\DeclareFontShape@#1#2#3#4#5#6{%
- \expandafter\ifx\csname #1+#2\endcsname\relax
- \@latex@error{Font family `#1+#2' unknown}\@eha
- \else
- \edef\reserved@a{#3}%
- \series@maybe@drop@one@m\reserved@a\reserved@b
- \ifx\reserved@a\reserved@b\else
- \@latex@warning{Font shape declaration has incorrect series
- value `#3'.\MessageBreak It should not contain an `m'!
- Please correct it.\MessageBreak Found}%
- \fi
- \expandafter
- \xdef\csname#1/#2/\reserved@b/#4\endcsname
- {\expandafter\noexpand\csname #5\endcsname}%
- \def\reserved@a{#6}%
- \global
- \expandafter\let\csname#5\expandafter\endcsname
- \ifx\reserved@a\@empty
- \@empty
- \else
- \reserved@a
- \fi
- \fi
- }
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\DeclareFontShape@}{Maybe drop one m}%
-
-\def\DeclareFontShape@#1#2#3#4#5#6{%
- \expandafter\ifx\csname #1+#2\endcsname\relax
- \@latex@error{Font family `#1+#2' unknown}\@eha
- \else
- \expandafter
- \xdef\csname#1/#2/#3/#4\endcsname{\expandafter\noexpand
- \csname #5\endcsname}%
- \def\reserved@a{#6}%
- \global
- \expandafter\let\csname#5\expandafter\endcsname
- \ifx\reserved@a\@empty
- \@empty
- \else
- \reserved@a
- \fi
- \fi
- }
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\@DeclareMathSizes}%
- {Arbitrary units in \DeclareMathSizes}%
-\def\@DeclareMathSizes #1#2#3#4#5{%
- \@defaultunits\dimen@ #2pt\relax\@nnil
- \if $#3$%
- \expandafter\let\csname S@\strip@pt\dimen@\endcsname\math@fontsfalse
- \else
- \@defaultunits\dimen@ii #3pt\relax\@nnil
- \@defaultunits\@tempdima #4pt\relax\@nnil
- \@defaultunits\@tempdimb #5pt\relax\@nnil
- \toks@{#1}%
- \expandafter\xdef\csname S@\strip@pt\dimen@\endcsname{%
- \gdef\noexpand\tf@size{\strip@pt\dimen@ii}%
- \gdef\noexpand\sf@size{\strip@pt\@tempdima}%
- \gdef\noexpand\ssf@size{\strip@pt\@tempdimb}%
- \the\toks@
- }%
- \fi
-}%
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\@DeclareMathSizes}%
- {Arbitrary units in \DeclareMathSizes}%
-\def\@DeclareMathSizes#1#2#3#4#5{%
- \@defaultunits\dimen@#2pt\relax\@nnil
- \if$#3$%
- \expandafter \let
- \csname S@\strip@pt\dimen@\endcsname
- \math@fontsfalse
- \else
- \expandafter \gdef
- \csname S@\strip@pt\dimen@\endcsname
- {\gdef\tf@size{#3}\gdef\sf@size{#4}%
- \gdef\ssf@size{#5}%
- #1%
- }%
- \fi}%
-\EndIncludeInRelease
-\IncludeInRelease{2020/02/02}%
- {\LoadFontDefinitionFile}{Loading .fd files}%
-\def\LoadFontDefinitionFile#1#2{%
- \begingroup
- \edef\f@encoding{#1}%
- \edef\f@family{#2}%
- \try@load@fontshape
- \endgroup
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\LoadFontDefinitionFile}{Loading .fd files}%
-
-\let\LoadFontDefinitionFile\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2020/02/02}%
- {\DeclareFontFamilySubstitution}{Provide family substituation}%
-\begingroup
-\nfss@catcodes
-\gdef\DeclareFontFamilySubstitution#1#2#3{%
- \LoadFontDefinitionFile{#1}{#2}%
- \LoadFontDefinitionFile{#1}{#3}%
- \DeclareFontShape{#1}{#2}{m}{it}{<->ssub * #3/m/it}{}%
- \DeclareFontShape{#1}{#2}{m}{n}{<->ssub * #3/m/n}{}%
- \DeclareFontShape{#1}{#2}{m}{sc}{<->ssub * #3/m/sc}{}%
- \DeclareFontShape{#1}{#2}{m}{sl}{<->ssub * #3/m/sl}{}%
- \DeclareFontShape{#1}{#2}{m}{sw}{<->ssub * #3/m/sw}{}%
- \DeclareFontShape{#1}{#2}{m}{scit}{<->ssub * #3/m/scit}{}%
- \DeclareFontShape{#1}{#2}{m}{scsl}{<->ssub * #3/m/scsl}{}%
- \DeclareFontShape{#1}{#2}{b}{it}{<->ssub * #3/b/it}{}%
- \DeclareFontShape{#1}{#2}{b}{n}{<->ssub * #3/b/n}{}%
- \DeclareFontShape{#1}{#2}{b}{scit}{<->ssub * #3/b/scit}{}%
- \DeclareFontShape{#1}{#2}{b}{scsl}{<->ssub * #3/b/scsl}{}%
- \DeclareFontShape{#1}{#2}{b}{sc}{<->ssub * #3/b/sc}{}%
- \DeclareFontShape{#1}{#2}{b}{sl}{<->ssub * #3/b/sl}{}%
- \DeclareFontShape{#1}{#2}{b}{sw}{<->ssub * #3/b/sw}{}%
- \DeclareFontShape{#1}{#2}{bx}{it}{<->ssub * #3/bx/it}{}%
- \DeclareFontShape{#1}{#2}{bx}{n}{<->ssub * #3/bx/n}{}%
- \DeclareFontShape{#1}{#2}{bx}{scit}{<->ssub * #3/bx/scit}{}%
- \DeclareFontShape{#1}{#2}{bx}{scsl}{<->ssub * #3/bx/scsl}{}%
- \DeclareFontShape{#1}{#2}{bx}{sc}{<->ssub * #3/bx/sc}{}%
- \DeclareFontShape{#1}{#2}{bx}{sl}{<->ssub * #3/bx/sl}{}%
- \DeclareFontShape{#1}{#2}{bx}{sw}{<->ssub * #3/bx/sw}{}%
-}
-\endgroup
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\DeclareFontFamilySubstitution}{Provide family substituation}%
-
-\let\DeclareFontFamilySubstitution\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{2019/10/01}%
- {\DeclareErrorFont}{No side effects please}%
-\def\DeclareErrorFont#1#2#3#4#5{%
- \xdef\error@fontshape{%
- \noexpand\expandafter\noexpand\split@name\noexpand\string
- \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
- \noexpand\@nil}%
- \gdef\default@family{#2}%
- \gdef\default@series{#3}%
- \gdef\default@shape{#4}%
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\DeclareErrorFont}{No side effects please}%
-
-\def\DeclareErrorFont#1#2#3#4#5{%
- \xdef\error@fontshape{%
- \noexpand\expandafter\noexpand\split@name\noexpand\string
- \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
- \noexpand\@nil}%
- \gdef\default@family{#2}%
- \gdef\default@series{#3}%
- \gdef\default@shape{#4}%
- \global\let\f@family\default@family
- \global\let\f@series\default@series
- \global\let\f@shape\default@shape
- \gdef\f@size{#5}%
- \gdef\f@baselineskip{#5pt}%
-}
-\EndIncludeInRelease
-\IncludeInRelease{2015/01/01}{\wrong@fontshape}%
- {Font substituation in preamble}%
-\def\wrong@fontshape{%
- \csname D@\f@encoding\endcsname % install defaults if in math
- \edef\reserved@a{\csname\curr@fontshape\endcsname}%
- \ifx\last@fontshape\reserved@a
- \errmessage{Corrupted NFSS tables}%
- \error@fontshape
- \else
- \let\f@shape\default@shape
- \expandafter\ifx\csname\curr@fontshape\endcsname\relax
- \let\f@series\default@series
- \expandafter
- \ifx\csname\curr@fontshape\endcsname\relax
- \let\f@family\default@family
- \begingroup
- \try@load@fontshape
- \endgroup
- \fi \fi
- \fi
- \@font@warning{Font shape `\expandafter\string\reserved@a'
- \expandafter\@gobble\string\@undefined\MessageBreak
- using `\curr@fontshape' instead\@wrong@font@char}%
- \global\let\last@fontshape\reserved@a
- \gdef\@defaultsubs{%
- \@font@warning{Some font shapes were not available, defaults
- substituted.\@gobbletwo}}%
- \global\expandafter\expandafter\expandafter\let
- \expandafter\reserved@a
- \csname\curr@fontshape\endcsname
- \xdef\font@name{%
- \csname\curr@fontshape/\f@size\endcsname}%
- \pickup@font}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\wrong@fontshape}%
- {Font substituation in preamble}%
-\def\wrong@fontshape{%
- \csname D@\f@encoding\endcsname
- \edef\reserved@a{\csname\curr@fontshape\endcsname}%
- \ifx\last@fontshape\reserved@a
- \errmessage{Corrupted NFSS tables}%
- \error@fontshape
- \else
- \let\f@shape\default@shape
- \expandafter\ifx\csname\curr@fontshape\endcsname\relax
- \let\f@series\default@series
- \expandafter
- \ifx\csname\curr@fontshape\endcsname\relax
- \let\f@family\default@family
- \fi \fi
- \fi
- \@font@warning{Font shape
- `\expandafter\string\reserved@a'
- \expandafter\@gobble\string\@undefined
- \MessageBreak
- using `\curr@fontshape' instead\@wrong@font@char}%
- \global\let\last@fontshape\reserved@a
- \gdef\@defaultsubs{%
- \@font@warning{Some font shapes were not available,
- defaults substituted.\@gobbletwo}}%
- \global\expandafter\expandafter\expandafter\let
- \expandafter\reserved@a
- \csname\curr@fontshape\endcsname
- \xdef\font@name{%
- \csname\curr@fontshape/\f@size\endcsname}%
- \pickup@font}
-\EndIncludeInRelease
-\IncludeInRelease{2017/01/01}{\showhyphens}%
- {XeTeX support for \showhyphens}%
-\ifx\XeTeXcharclass\@undefined
-\DeclareRobustCommand\showhyphens[1]{%
- \setbox0\vbox{%
- \color@begingroup
- \everypar{}%
- \parfillskip\z@skip\hsize\maxdimen
- \normalfont
- \pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1%
- \color@endgroup}}
-\else
-\DeclareRobustCommand\showhyphens[1]{%
- \setbox0\vbox{%
- \usefont{TU}{lmr}{m}{n}%
- \hsize 1sp %
- \hbadness\@M
- \hfuzz\maxdimen
- \tracingonline\z@
- \everypar={}%
- \leftskip\z@skip
- \rightskip\z@skip
- \parfillskip\z@skip
- \hyphenpenalty=-\@M
- \pretolerance\m@ne
- \interlinepenalty\z@
- \clubpenalty\z@
- \widowpenalty\z@
- \brokenpenalty1127 %
- \setbox\z@\hbox{}%
- \noindent
- \hskip\z@skip
- #1%
- \par
- \loop
- \@tempswafalse
- \ifnum\lastnodetype=11\unskip\@tempswatrue\fi
- \ifnum\lastnodetype=12\unkern\@tempswatrue\fi
- \ifnum\lastnodetype=13 %
- \count@\lastpenalty
- \unpenalty\@tempswatrue
- \fi
- \ifnum\lastnodetype=\@ne
- \setbox\tw@\lastbox\@tempswatrue
- \setbox0\hbox{\unhbox\tw@\unskip\unskip\unpenalty
- \ifnum\count@=1127 \else\ \fi
- \unhbox0}%
- \count@\z@
- \fi
- \if@tempswa
- \repeat
- \hbadness\z@
- \hsize\maxdimen
- \showboxdepth\z@
- \tolerance\m@ne
- \hyphenpenalty\z@
- \noindent\unhbox\z@
-}}
-\fi
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\showhyphens}%
- {XeTeX support for \showhyphens}%
-\gdef\showhyphens#1{%
- \setbox0\vbox{%
- \color@begingroup
- \everypar{}%
- \parfillskip\z@skip\hsize\maxdimen
- \normalfont
- \pretolerance\m@ne\tolerance\m@ne
- \hbadness\z@\showboxdepth\z@\ #1%
- \color@endgroup}}
-\EndIncludeInRelease
-%%% From File: ltfssaxes.dtx
-%% Copyright (C) 1999-2020 Frank Mittelbach
-\IncludeInRelease{2020/02/02}%
- {\DeclareFontSeriesChangeRule}{Series change rules}%
-\def\DeclareFontSeriesChangeRule#1#2#3#4{%
- \@namedef{series@#1@#2}{{#3}{#4}}}
-\DeclareFontSeriesChangeRule {bc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {bc}{c}{bc}{}
-\DeclareFontSeriesChangeRule {bc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {bc}{ec}{bec} {bc}
-\DeclareFontSeriesChangeRule {bc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {bc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {bc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {bc}{sc}{bsc} {bc}
-\DeclareFontSeriesChangeRule {bc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {bc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {bc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {bc}{x}{bx}{}
-\DeclareFontSeriesChangeRule {bx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {bx}{c} {bc} {bx} %<-----
-\DeclareFontSeriesChangeRule {bx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {bx}{ec} {bec} {bx} %<-----
-\DeclareFontSeriesChangeRule {bx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {bx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {bx}{sb} {sbx} {}
-\DeclareFontSeriesChangeRule {bx}{sc} {bsc} {bx} %<-----
-\DeclareFontSeriesChangeRule {bx}{sl}{slx} {}
-\DeclareFontSeriesChangeRule {bx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {bx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {bx}{x}{bx}{}
-\DeclareFontSeriesChangeRule {b}{bx} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {b}{c} {bc} {b} %<-----
-\DeclareFontSeriesChangeRule {b}{ec} {bec} {b} %<-----
-\DeclareFontSeriesChangeRule {b}{sb} {sb} {b} %<-----
-\DeclareFontSeriesChangeRule {b}{sc} {bsc} {b} %<-----
-\DeclareFontSeriesChangeRule {b}{x} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {c}{bx} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {c}{b}{bc}{}
-\DeclareFontSeriesChangeRule {c}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {c}{el}{elc}{}
-\DeclareFontSeriesChangeRule {c}{l}{lc}{}
-\DeclareFontSeriesChangeRule {c}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {c}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {c}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {c}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {c}{x}{x}{m} %<-----
-\DeclareFontSeriesChangeRule {ebc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {ebc}{c}{ebc}{}
-\DeclareFontSeriesChangeRule {ebc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {ebc}{ec}{ebec}{ebc}
-\DeclareFontSeriesChangeRule {ebc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {ebc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {ebc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {ebc}{sc}{ebsc}{ebc}
-\DeclareFontSeriesChangeRule {ebc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {ebc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {ebc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {ebc}{x}{ebx}{}
-\DeclareFontSeriesChangeRule {ec}{bx} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {ec}{b}{bec}{}
-\DeclareFontSeriesChangeRule {ec}{eb}{ebec}{}
-\DeclareFontSeriesChangeRule {ec}{el}{elec}{}
-\DeclareFontSeriesChangeRule {ec}{l}{lec}{}
-\DeclareFontSeriesChangeRule {ec}{sb}{sbec}{}
-\DeclareFontSeriesChangeRule {ec}{sl}{slec}{}
-\DeclareFontSeriesChangeRule {ec}{ub}{ubec}{}
-\DeclareFontSeriesChangeRule {ec}{ul}{ulec}{}
-\DeclareFontSeriesChangeRule {ec}{x}{x}{m} %<-----
-\DeclareFontSeriesChangeRule {sc}{bx} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {sc}{b}{bsc}{}
-\DeclareFontSeriesChangeRule {sc}{eb}{ebsc}{}
-\DeclareFontSeriesChangeRule {sc}{el}{elsc}{}
-\DeclareFontSeriesChangeRule {sc}{l}{lsc}{}
-\DeclareFontSeriesChangeRule {sc}{sb}{sbsc}{}
-\DeclareFontSeriesChangeRule {sc}{sl}{slsc}{}
-\DeclareFontSeriesChangeRule {sc}{ub}{ubsc}{}
-\DeclareFontSeriesChangeRule {sc}{ul}{ulsc}{}
-\DeclareFontSeriesChangeRule {sc}{x}{x}{m} %<-----
-\DeclareFontSeriesChangeRule {ebx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {ebx}{c}{ebc}{}
-\DeclareFontSeriesChangeRule {ebx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {ebx}{ec}{ebec}{}
-\DeclareFontSeriesChangeRule {ebx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {ebx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {ebx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {ebx}{sc}{ebsc}{}
-\DeclareFontSeriesChangeRule {ebx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {ebx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {ebx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {ebx}{x}{ebx}{}
-\DeclareFontSeriesChangeRule {eb}{c}{ebc}{}
-\DeclareFontSeriesChangeRule {eb}{ec}{ebec}{}
-\DeclareFontSeriesChangeRule {eb}{sc}{ebsc}{}
-\DeclareFontSeriesChangeRule {eb}{x}{ebx}{}
-\DeclareFontSeriesChangeRule {elc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {elc}{c}{elc}{}
-\DeclareFontSeriesChangeRule {elc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {elc}{ec}{elec}{}
-\DeclareFontSeriesChangeRule {elc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {elc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {elc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {elc}{sc}{elsc}{}
-\DeclareFontSeriesChangeRule {elc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {elc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {elc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {elc}{x}{elx}{}
-\DeclareFontSeriesChangeRule {elx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {elx}{c}{elc}{}
-\DeclareFontSeriesChangeRule {elx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {elx}{ec}{elec}{}
-\DeclareFontSeriesChangeRule {elx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {elx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {elx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {elx}{sc}{elsc}{}
-\DeclareFontSeriesChangeRule {elx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {elx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {elx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {elx}{x}{elx}{}
-\DeclareFontSeriesChangeRule {el}{c}{elc}{}
-\DeclareFontSeriesChangeRule {el}{ec}{elec}{}
-\DeclareFontSeriesChangeRule {el}{sc}{elsc}{}
-\DeclareFontSeriesChangeRule {el}{x}{elx}{}
-\DeclareFontSeriesChangeRule {lc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {lc}{c}{lc}{}
-\DeclareFontSeriesChangeRule {lc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {lc}{ec}{lec}{}
-\DeclareFontSeriesChangeRule {lc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {lc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {lc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {lc}{sc}{lsc}{}
-\DeclareFontSeriesChangeRule {lc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {lc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {lc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {lc}{x}{lx}{}
-\DeclareFontSeriesChangeRule {lx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {lx}{c}{lc}{}
-\DeclareFontSeriesChangeRule {lx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {lx}{ec}{lec}{}
-\DeclareFontSeriesChangeRule {lx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {lx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {lx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {lx}{sc}{lsc}{}
-\DeclareFontSeriesChangeRule {lx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {lx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {lx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {lx}{x}{lx}{}
-\DeclareFontSeriesChangeRule {l}{bx} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {l}{b} {b} {bx} %<-----
-\DeclareFontSeriesChangeRule {l}{c} {lc} {l} % ? %<-----
-\DeclareFontSeriesChangeRule {l}{ec} {lec} {l} % ? %<-----
-\DeclareFontSeriesChangeRule {l}{sb} {sb} {b} % ? %<-----
-\DeclareFontSeriesChangeRule {l}{sc} {lsc} {l} % ? %<-----
-\DeclareFontSeriesChangeRule {l}{x} {lx} {l} % ? %<-----
-\DeclareFontSeriesChangeRule {m}{bx} {bx} {b} %<-----
-\DeclareFontSeriesChangeRule {m}{b} {b} {bx} %<-----
-\DeclareFontSeriesChangeRule {m}{c} {c} {m} %<-----
-\DeclareFontSeriesChangeRule {m}{ec} {ec} {m} %<-----
-\DeclareFontSeriesChangeRule {m}{l} {l} {m} %<-----
-\DeclareFontSeriesChangeRule {m}{sb} {sb} {b} %<-----
-\DeclareFontSeriesChangeRule {m}{sc} {sc} {m} %<-----
-\DeclareFontSeriesChangeRule {m}{x} {x} {m} %<-----
-\DeclareFontSeriesChangeRule {sbc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {sbc}{c}{sbc}{}
-\DeclareFontSeriesChangeRule {sbc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {sbc}{ec}{sbec}{sbc}
-\DeclareFontSeriesChangeRule {sbc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {sbc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {sbc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {sbc}{sc}{sbsc}{sbc}
-\DeclareFontSeriesChangeRule {sbc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {sbc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {sbc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {sbc}{x}{sbx}{}
-\DeclareFontSeriesChangeRule {sbx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {sbx}{c}{sbc}{}
-\DeclareFontSeriesChangeRule {sbx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {sbx}{ec}{sbec}{}
-\DeclareFontSeriesChangeRule {sbx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {sbx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {sbx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {sbx}{sc}{sbsc}{}
-\DeclareFontSeriesChangeRule {sbx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {sbx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {sbx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {sbx}{x}{sbx}{}
-\DeclareFontSeriesChangeRule {sb}{c} {sbc} {bc} %? %<-----
-\DeclareFontSeriesChangeRule {sb}{ec} {sbec} {sbc} %? %<-----
-\DeclareFontSeriesChangeRule {sb}{sc} {sbsc} {sbc} %? %<-----
-\DeclareFontSeriesChangeRule {sb}{x} {sbx} {bx} %? %<-----
-\DeclareFontSeriesChangeRule {slc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {slc}{c}{slc}{}
-\DeclareFontSeriesChangeRule {slc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {slc}{ec}{slec}{}
-\DeclareFontSeriesChangeRule {slc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {slc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {slc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {slc}{sc}{slsc}{}
-\DeclareFontSeriesChangeRule {slc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {slc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {slc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {slc}{x}{slx}{}
-\DeclareFontSeriesChangeRule {slx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {slx}{c}{slc}{}
-\DeclareFontSeriesChangeRule {slx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {slx}{ec}{slec}{}
-\DeclareFontSeriesChangeRule {slx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {slx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {slx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {slx}{sc}{slsc}{}
-\DeclareFontSeriesChangeRule {slx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {slx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {slx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {slx}{x}{slx}{}
-\DeclareFontSeriesChangeRule {sl}{c}{slc}{}
-\DeclareFontSeriesChangeRule {sl}{ec}{slec}{}
-\DeclareFontSeriesChangeRule {sl}{sc}{slsc}{}
-\DeclareFontSeriesChangeRule {sl}{x}{slx}{}
-\DeclareFontSeriesChangeRule {ubc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {ubc}{c}{ubc}{}
-\DeclareFontSeriesChangeRule {ubc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {ubc}{ec}{ubec}{}
-\DeclareFontSeriesChangeRule {ubc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {ubc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {ubc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {ubc}{sc}{ubsc}{}
-\DeclareFontSeriesChangeRule {ubc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {ubc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {ubc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {ubc}{x}{ubx}{}
-\DeclareFontSeriesChangeRule {ubx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {ubx}{c}{ubc}{}
-\DeclareFontSeriesChangeRule {ubx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {ubx}{ec}{ubec}{}
-\DeclareFontSeriesChangeRule {ubx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {ubx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {ubx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {ubx}{sc}{ubsc}{}
-\DeclareFontSeriesChangeRule {ubx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {ubx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {ubx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {ubx}{x}{ubx}{}
-\DeclareFontSeriesChangeRule {ub}{c}{ubc}{}
-\DeclareFontSeriesChangeRule {ub}{ec}{ubec}{}
-\DeclareFontSeriesChangeRule {ub}{sc}{ubsc}{}
-\DeclareFontSeriesChangeRule {ub}{x}{ubx}{}
-\DeclareFontSeriesChangeRule {ulc}{b}{bc}{}
-\DeclareFontSeriesChangeRule {ulc}{c}{ulc}{}
-\DeclareFontSeriesChangeRule {ulc}{eb}{ebc}{}
-\DeclareFontSeriesChangeRule {ulc}{ec}{ulec}{ulc}
-\DeclareFontSeriesChangeRule {ulc}{el}{elc}{}
-\DeclareFontSeriesChangeRule {ulc}{l}{lc}{}
-\DeclareFontSeriesChangeRule {ulc}{sb}{sbc}{}
-\DeclareFontSeriesChangeRule {ulc}{sc}{ulsc}{ulc}
-\DeclareFontSeriesChangeRule {ulc}{sl}{slc}{}
-\DeclareFontSeriesChangeRule {ulc}{ub}{ubc}{}
-\DeclareFontSeriesChangeRule {ulc}{ul}{ulc}{}
-\DeclareFontSeriesChangeRule {ulc}{x}{ulx}{}
-\DeclareFontSeriesChangeRule {ulx}{b}{bx}{}
-\DeclareFontSeriesChangeRule {ulx}{c}{ulc}{}
-\DeclareFontSeriesChangeRule {ulx}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {ulx}{ec}{ulec}{}
-\DeclareFontSeriesChangeRule {ulx}{el}{elx}{}
-\DeclareFontSeriesChangeRule {ulx}{l}{lx}{}
-\DeclareFontSeriesChangeRule {ulx}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {ulx}{sc}{ulsc}{}
-\DeclareFontSeriesChangeRule {ulx}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {ulx}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {ulx}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {ulx}{x}{ulx}{}
-\DeclareFontSeriesChangeRule {ul}{c}{ulc}{}
-\DeclareFontSeriesChangeRule {ul}{ec}{ulec}{}
-\DeclareFontSeriesChangeRule {ul}{sc}{ulsc}{}
-\DeclareFontSeriesChangeRule {ul}{x}{ulx}{}
-\DeclareFontSeriesChangeRule {x}{b}{bx}{}
-\DeclareFontSeriesChangeRule {x}{c}{c}{}
-\DeclareFontSeriesChangeRule {x}{eb}{ebx}{}
-\DeclareFontSeriesChangeRule {x}{ec}{ec}{}
-\DeclareFontSeriesChangeRule {x}{el}{elx}{}
-\DeclareFontSeriesChangeRule {x}{l}{lx}{}
-\DeclareFontSeriesChangeRule {x}{sb}{sbx}{}
-\DeclareFontSeriesChangeRule {x}{sc}{sc}{}
-\DeclareFontSeriesChangeRule {x}{sl}{slx}{}
-\DeclareFontSeriesChangeRule {x}{ub}{ubx}{}
-\DeclareFontSeriesChangeRule {x}{ul}{ulx}{}
-\DeclareFontSeriesChangeRule {bc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {bec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {bsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {bx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {b}{m?}{m}{}
-\DeclareFontSeriesChangeRule {c}{m?}{c}{}
-\DeclareFontSeriesChangeRule {ebc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {ebec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {ebsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {ebx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {eb}{m?}{m}{}
-\DeclareFontSeriesChangeRule {ec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {elc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {elec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {elsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {elx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {el}{m?}{m}{}
-\DeclareFontSeriesChangeRule {lc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {lec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {lsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {lx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {l}{m?}{m}{}
-\DeclareFontSeriesChangeRule {m}{m?}{m}{}
-\DeclareFontSeriesChangeRule {sbc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {sbec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {sbsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {sbx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {sb}{m?}{m}{}
-\DeclareFontSeriesChangeRule {sc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {slc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {slec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {slsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {slx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {sl}{m?}{m}{}
-\DeclareFontSeriesChangeRule {ubc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {ubec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {ubsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {ubx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {ub}{m?}{ub}{}
-\DeclareFontSeriesChangeRule {ulc}{m?}{c}{}
-\DeclareFontSeriesChangeRule {ulec}{m?}{ec}{}
-\DeclareFontSeriesChangeRule {ulsc}{m?}{sc}{}
-\DeclareFontSeriesChangeRule {ulx}{m?}{x}{}
-\DeclareFontSeriesChangeRule {ul}{m?}{m}{}
-\DeclareFontSeriesChangeRule {x}{m?}{x}{}
-\DeclareFontSeriesChangeRule {bc}{?m}{b}{}
-\DeclareFontSeriesChangeRule {bec}{?m}{b}{}
-\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
-\DeclareFontSeriesChangeRule {bsc}{?m}{b}{}
-\DeclareFontSeriesChangeRule {bx}{?m}{b}{}
-\DeclareFontSeriesChangeRule {b}{?m}{b}{}
-\DeclareFontSeriesChangeRule {c}{?m}{m}{}
-\DeclareFontSeriesChangeRule {ebc}{?m}{eb}{}
-\DeclareFontSeriesChangeRule {ebec}{?m}{eb}{}
-\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
-\DeclareFontSeriesChangeRule {ebsc}{?m}{eb}{}
-\DeclareFontSeriesChangeRule {ebx}{?m}{eb}{}
-\DeclareFontSeriesChangeRule {eb}{?m}{eb}{}
-\DeclareFontSeriesChangeRule {ec}{?m}{m}{}
-\DeclareFontSeriesChangeRule {elc}{?m}{el}{}
-\DeclareFontSeriesChangeRule {elec}{?m}{el}{}
-\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
-\DeclareFontSeriesChangeRule {elsc}{?m}{el}{}
-\DeclareFontSeriesChangeRule {elx}{?m}{el}{}
-\DeclareFontSeriesChangeRule {el}{?m}{el}{}
-\DeclareFontSeriesChangeRule {lc}{?m}{l}{}
-\DeclareFontSeriesChangeRule {lec}{?m}{l}{}
-\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
-\DeclareFontSeriesChangeRule {lsc}{?m}{l}{}
-\DeclareFontSeriesChangeRule {lx}{?m}{l}{}
-\DeclareFontSeriesChangeRule {l}{?m}{l}{}
-\DeclareFontSeriesChangeRule {m}{?m}{m}{}
-\DeclareFontSeriesChangeRule {sbc}{?m}{sb}{}
-\DeclareFontSeriesChangeRule {sbec}{?m}{sb}{}
-\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
-\DeclareFontSeriesChangeRule {sbsc}{?m}{sb}{}
-\DeclareFontSeriesChangeRule {sbx}{?m}{sb}{}
-\DeclareFontSeriesChangeRule {sb}{?m}{sb}{}
-\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
-\DeclareFontSeriesChangeRule {sc}{?m}{m}{}
-\DeclareFontSeriesChangeRule {slc}{?m}{sl}{}
-\DeclareFontSeriesChangeRule {slec}{?m}{sl}{}
-\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
-\DeclareFontSeriesChangeRule {slsc}{?m}{sl}{}
-\DeclareFontSeriesChangeRule {slx}{?m}{sl}{}
-\DeclareFontSeriesChangeRule {sl}{?m}{sl}{}
-\DeclareFontSeriesChangeRule {ubc}{?m}{ub}{}
-\DeclareFontSeriesChangeRule {ubec}{?m}{ub}{}
-\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
-\DeclareFontSeriesChangeRule {ubsc}{?m}{ub}{}
-\DeclareFontSeriesChangeRule {ubx}{?m}{ub}{}
-\DeclareFontSeriesChangeRule {ub}{?m}{m}{}
-\DeclareFontSeriesChangeRule {ulc}{?m}{ul}{}
-\DeclareFontSeriesChangeRule {ulec}{?m}{ul}{}
-\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
-\DeclareFontSeriesChangeRule {ulsc}{?m}{ul}{}
-\DeclareFontSeriesChangeRule {ulx}{?m}{ul}{}
-\DeclareFontSeriesChangeRule {ul}{?m}{ul}{}
-\DeclareFontSeriesChangeRule {x}{?m}{m}{}
-
-
-\newif\if@forced@series
-\DeclareRobustCommand\fontseriesforce[1]{\@forced@seriestrue\edef\f@series{#1}}
-\DeclareRobustCommand\fontseries[1]{\@forced@seriesfalse\merge@font@series{#1}}
-
-\def\merge@font@series#1{%
- \expandafter\expandafter\expandafter
- \merge@font@series@
- \csname series@\f@series @#1\endcsname
- {#1}%
- \@nil
-}
-
-\def\merge@font@series@#1#2#3\@nil{%
- \def\reserved@a{#3}%
- \ifx\reserved@a\@empty
- \set@target@series{#2}%
- \else
- \maybe@load@fontshape
- \edef\reserved@a{\f@encoding /\f@family /#1/\f@shape}%
- \ifcsname \reserved@a \endcsname
- \set@target@series{#1}%
- \else
- \ifcsname \f@encoding /\f@family /#2/\f@shape \endcsname
- \set@target@series{#2}%
- \@font@shape@subst@warning
- \else
- \set@target@series{#3}%
- \@font@shape@subst@warning
- \fi
- \fi
- \fi
-}
-\def\@font@shape@subst@warning{%
- \edef\reserved@b{\curr@fontshape}%
- \ifx\reserved@a\reserved@b \else
- \@font@warning{Font shape `\reserved@a' undefined\MessageBreak
- using `\reserved@b' instead}%
- \fi
-}
-\def\maybe@load@fontshape{\begingroup\try@load@fontshape\endgroup}
-\DeclareFontSeriesChangeRule {m}{sc}{msc}{mc}
-\def\set@target@series#1{%
- \edef\f@series{#1}%
- \series@maybe@drop@one@m\f@series\f@series
-}
-\def\series@maybe@drop@one@m#1{%
- \expandafter\series@maybe@drop@one@m@x\expandafter{#1}}
-
-\def\series@maybe@drop@one@m@x#1#2{%
- \def\in@@##1,#1,{}%
- \series@check@toks\expandafter{\in@@
- ,ulm,elm,lm,slm,mm,sbm,bm,ebm,ubm,muc,mec,mc,msc,msx,mx,mex,mux,{}{},#1,}%
- \edef\in@@{\the\series@check@toks}%
- \ifx\in@@\@empty
- \edef#2{#1}%
- \else
- \edef#2{\expandafter\series@drop@one@m #1m\series@drop@one@m}%
- \fi
-}
-\newtoks\series@check@toks
-\def\series@drop@one@m#1m#2m#3\series@drop@one@m{%
- #1#2%
-}
-
-\def\DeclareFontShapeChangeRule #1#2#3#4{%
- \@namedef{shape@#1@#2}{{#3}{#4}}}
-\DeclareRobustCommand\ulcshape
- {\not@math@alphabet\ulcshape\relax
- \fontshape\ulcdefault\selectfont}
-\let\ulcdefault\@undefined % for rollback
-\newcommand\ulcdefault{ulc}
-\DeclareRobustCommand\swshape
- {\not@math@alphabet\swshape\relax
- \fontshape\swdefault\selectfont}
-\let\swdefault\@undefined % for rollback
-\newcommand\swdefault{sw}
-\DeclareRobustCommand\sscshape
- {\not@math@alphabet\sscshape\relax
- \fontshape\sscdefault\selectfont}
-\let\sscdefault\@undefined % for rollback
-\newcommand\sscdefault{ssc}
-\DeclareFontShapeChangeRule {n}{it} {it} {sl}
-\DeclareFontShapeChangeRule {n}{sl} {sl} {it}
-\DeclareFontShapeChangeRule {n}{ulc} {n} {}
-\DeclareFontShapeChangeRule {n}{up} {n} {}
-\DeclareFontShapeChangeRule {it}{sl} {sl} {it}
-\DeclareFontShapeChangeRule {it}{sc} {scit} {scsl}
-\DeclareFontShapeChangeRule {it}{ulc} {it} {}
-\DeclareFontShapeChangeRule {it}{up} {n} {}
-\DeclareFontShapeChangeRule {sl}{it} {it} {sl}
-\DeclareFontShapeChangeRule {sl}{sc} {scsl} {scit}
-\DeclareFontShapeChangeRule {sl}{ulc} {sl} {}
-\DeclareFontShapeChangeRule {sl}{up} {n} {}
-\DeclareFontShapeChangeRule {sc}{it} {scit} {scsl}
-\DeclareFontShapeChangeRule {sc}{sl} {scsl} {scit}
-\DeclareFontShapeChangeRule {sc}{sw} {scsw} {sw}
-\DeclareFontShapeChangeRule {sc}{ulc} {n} {}
-\DeclareFontShapeChangeRule {sc}{up} {n} {}
-\DeclareFontShapeChangeRule {scit}{it} {scit} {}
-\DeclareFontShapeChangeRule {scit}{sl} {scsl} {scit}
-\DeclareFontShapeChangeRule {scit}{sw} {scsw} {sc} % or scit?
-\DeclareFontShapeChangeRule {scit}{sc} {scit} {}
-\DeclareFontShapeChangeRule {scit}{ulc} {it} {}
-\DeclareFontShapeChangeRule {scit}{up} {sc} {}
-\DeclareFontShapeChangeRule {scsl}{it} {scit} {scsl}
-\DeclareFontShapeChangeRule {scsl}{sl} {scsl} {}
-\DeclareFontShapeChangeRule {scsl}{sw} {scsw} {sc} % or scsl?
-\DeclareFontShapeChangeRule {scsl}{sc} {scsl} {}
-\DeclareFontShapeChangeRule {scsl}{ulc} {sl} {}
-\DeclareFontShapeChangeRule {scsl}{up} {sc} {}
-\DeclareFontShapeChangeRule {scsw}{it} {scit} {scsw}
-\DeclareFontShapeChangeRule {scsw}{sl} {scsl} {}
-\DeclareFontShapeChangeRule {scsw}{sw} {scsw} {}
-\DeclareFontShapeChangeRule {scsw}{sc} {scsw} {}
-\DeclareFontShapeChangeRule {scsw}{ulc} {sw} {}
-\DeclareFontShapeChangeRule {scsw}{up} {sc} {}
-\DeclareFontShapeChangeRule {sw}{sc} {scsw} {}
-\DeclareFontShapeChangeRule {sw}{ulc} {sw} {}
-\DeclareFontShapeChangeRule {sw}{up} {n} {}
-\DeclareRobustCommand\fontshape[1]{\merge@font@shape{#1}}
-\DeclareRobustCommand\fontshapeforce[1]{\edef\f@shape{#1}}
-\def\merge@font@shape#1{%
- \expandafter\expandafter\expandafter
- \merge@font@shape@
- \csname shape@\f@shape @#1\endcsname
- {#1}%
- \@nil
-}
-
-\def\merge@font@shape@#1#2#3\@nil{%
- \def\reserved@a{#3}%
- \ifx\reserved@a\@empty
- \edef\f@shape{#2}%
- \else
- \maybe@load@fontshape
- \edef\reserved@a{\f@encoding /\f@family /\f@series/#1}%
- \ifcsname \reserved@a\endcsname
- \edef\f@shape{#1}%
- \else
- \ifcsname \f@encoding /\f@family /\f@series/#2\endcsname
- \edef\f@shape{#2}%
- \@font@shape@subst@warning
- \else
- \edef\f@shape{#3}%
- \@font@shape@subst@warning
- \fi
- \fi
- \fi
-}
-\protected\def\normalshape
- {\not@math@alphabet\normalshape\relax
- \fontshape\shapedefault\selectfont}%
-\def\reinstall@nfss@defs{%
- \protected\def\upshape
- {\not@math@alphabet\upshape\relax
- \fontshape\updefault\selectfont}%
- \protected\def\slshape
- {\not@math@alphabet\slshape\relax
- \fontshape\sldefault\selectfont}%
- \protected\def\scshape
- {\not@math@alphabet\scshape\relax
- \fontshape\scdefault\selectfont}%
- \protected\def\itshape
- {\not@math@alphabet\itshape\mathit
- \fontshape\itdefault\selectfont}%
- \protected\def\ulcshape
- {\not@math@alphabet\ulcshape\relax
- \fontshape{ulc}\selectfont}%
- \protected\def\swshape
- {\not@math@alphabet\swshape\relax
- \fontshape\swdefault\selectfont}%
- \protected\def\sscshape
- {\not@math@alphabet\sscshape\relax
- \fontshape\sscdefault\selectfont}%
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\DeclareFontSeriesChangeRule}{Series change rules}%
-
-\DeclareRobustCommand\fontseries[1]{\edef\f@series{#1}}
-\DeclareRobustCommand\fontshape [1]{\edef\f@shape{#1}}
-\let\fontseriesforce\@undefined
-\let\fontshapeforce\@undefined
-
-\let\DeclareFontSeriesChangeRule\@undefined
-\let\merge@font@series\@undefined
-\let\merge@font@series@\@undefined
-\let\@font@shape@subst@warning\@undefined
-\let\maybe@load@fontshape\@undefined
-\let\set@target@series\@undefined
-\let\series@maybe@drop@one@m\@undefined
-\let\series@drop@one@m\@undefined
-\let\DeclareFontShapeChangeRule\@undefined
-\let\merge@font@shape\@undefined
-\let\merge@font@shape@\@undefined
-\let\normalshape\@undefined
-\let\ulcshape\@undefined
-\let\ulcdefault\@undefined
-\let\swshape\@undefined
-\let\swdefault\@undefined
-\let\sscshape\@undefined
-\let\sscdefault\@undefined
-\let\normalshape\@undefined
-
-\let\reinstall@nfss@defs\relax
-\EndIncludeInRelease
-\IncludeInRelease{2020/10/01}%
- {\reinstall@nfss@defs}{NFSS series init}%
-\g@addto@macro\@kernel@after@begindocument@before
- {\reinstall@nfss@defs\init@series@setup}
-\EndIncludeInRelease
-\IncludeInRelease{2020/02/02}%
- {\reinstall@nfss@defs}{NFSS series init}%
-\AtBeginDocument{\reinstall@nfss@defs\init@series@setup}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\reinstall@nfss@defs}{NFSS series init}%
-\EndIncludeInRelease
-%%% From File: ltfsstrc.dtx
-%% Copyright (C) 1989-97 by Frank Mittelbach and Rainer Sch\"opf.
-%% Copyright (C) 1994-97 by LaTeX3 project. All rights reserved.
-\IncludeInRelease{2020/02/02}%
- {\@font@aliasinfo}{alias size function}%
-\DeclareSizeFunction{alias}{\sub@sfcnt\@font@aliasinfo}
-\def\@font@aliasinfo#1{%
- \@font@info{Font\space shape\space `\curr@fontshape'\space
- aliased\space to\MessageBreak `\mandatory@arg'}%
-}
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}%
- {\@font@aliasinfo}{alias size function}%
-\let\s@fct@alias\@undefined
-\let\@font@aliasinfo\@undefined
-
-\EndIncludeInRelease
-%%% From File: ltfsscmp.dtx
-%% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
-%% all rights reserved.
-\IncludeInRelease{2015/01/01}{\new@fontshape}%
- {NFSS version1 commands}%
-\let\new@fontshape\@undefined
-\let\warn@rel@i\@undefined
-\let\scan@fontshape\@undefined
-\let\scan@@fontshape\@undefined
-\let\subst@fontshape\@undefined
-\let\extra@def\@undefined
-\let\default@mextra\@undefined
-\let\preload@sizes\@undefined
-\let\err@rel@i\@undefined
-\let\newmathalphabet\@undefined
-\let\newmathalphabet@\@undefined
-\let\newmathalphabet@@@\@undefined
-\let\if@no@font@opt\@undefined
-\let\@no@font@optfalse\@undefined
-\let\define@mathalphabet\@undefined
-\let\define@mathgroup\@undefined
-\let\addtoversion\@undefined
-\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{\new@fontshape}%
- {NFSS version1 commands}%
-\gdef\new@fontshape#1#2#3#4{%
- \warn@rel@i\new@fontshape\DeclareFontShape
- \expandafter\scan@fontshape\@gobble#4<\@nil><<%
- \DeclareFontShape U{#1}{#2}{#3}\reserved@f}%
-\@onlypreamble\new@fontshape
-\gdef\warn@rel@i#1#2{%
- \@font@warning{*** NFSS release 1 command
- \noexpand#1found\MessageBreak
- *** Update by using release 2 command
- \string#2.\MessageBreak
- *** Recovery is probably possible}%
-}%
-\@onlypreamble\warn@rel@i
-\gdef\scan@fontshape{%
- \let\reserved@f\@empty
- \let\reserved@e\@empty % holds last info
- \scan@@fontshape
-}%
-\@onlypreamble\scan@fontshape
-\gdef\scan@@fontshape#1>#2#3<{%
- \ifx\@nil#1%
- \edef\reserved@f{\reserved@f\reserved@e}%
- \else
- \def\reserved@b{#1}% nick names
- \def\reserved@c{#3}%
- \in@{ at}{#3}%
- \ifin@
- \in@{pt}{#3}% not a proof but a good chance
- \ifin@
- \def\reserved@a##1 at##2pt##3\@nil{%
- \def\reserved@b{##2}%
- \def\reserved@c{##1}%
- }%
- \reserved@a#3\@nil
- \fi
- \fi
- \ifnum 0<0#2
- \edef\reserved@d{subf*\reserved@c}%
- \ifcase #2\or
- \or
- \else
- \errmessage{*** What's this? NFSS release 0? ***}%
- \fi
- \else
- \edef\reserved@d{#2\reserved@c}%
- \fi
- \ifx\reserved@d\reserved@e
- \edef\reserved@f{\reserved@f<\reserved@b>}%
- \else
- \edef\reserved@f{\reserved@f\reserved@e<\reserved@b>}%add old info
- \let\reserved@e\reserved@d
- \fi
- \expandafter\scan@@fontshape
- \fi
-}%
-\@onlypreamble\scan@@fontshape
-\gdef\subst@fontshape#1#2#3#4#5#6{%
- \warn@rel@i\subst@fontshape\DeclareFontShape
- \DeclareFontShape{U}{#1}{#2}{#3}{<->sub*#4/#5/#6}{}}%
-\@onlypreamble\subst@fontshape
-\gdef\extra@def#1#2#3{%
- \warn@rel@i\extra@def\DeclareFontFamily
- \DeclareFontFamily{U}{#1}{}%
-}%
-\@onlypreamble\extra@def
-\gdef\default@mextra{%
- \warn@rel@i\default@mextra\DeclareFontEncodingDefaults
- \DeclareFontEncodingDefaults\relax
-}%
-\@onlypreamble\default@mextra
-\gdef\preload@sizes{%
- \warn@rel@i\preload@sizes\DeclarePreloadSizes
- \DeclarePreloadSizes U%
-}%
-\@onlypreamble\preload@sizes
-\gdef\err@rel@i#1#2{%
- \@latex@error{*** NFSS release 1 command \noexpand#1found%
- ^^J*** Recovery not possible. Use \string#2}%
- {The new release of NFSS doesn't support the
- \noexpand#1command^^Jany longer.
- Please upgrade your file to the syntax of NFSS
- release 2^^Jusing the \noexpand#2command.}%
- \batchmode\input.\relax
-}%
-\@onlypreamble\err@rel@i
-\gdef\newmathalphabet{%
- \if@no@font@opt
- \@latex@error{*** NFSS release 1 command
- \noexpand\newmathalphabet found%
- ^^J \space*** Automatic recovery not possible.%
- ^^J \space*** TYPE H for Help%
- }%
- {Please look at the file usrguide.tex for hints on
- how to resolve this problem.}%
- \else
- \warn@rel@i\newmathalphabet\DeclareMathAlphabet
- \fi
- \@ifstar\newmathalphabet@@@
- \newmathalphabet@@}%
-\gdef\newmathalphabet@@#1{\DeclareMathAlphabet#1{U}{}{}{}}%
-\gdef\newmathalphabet@@@#1#2#3#4{%
- \DeclareMathAlphabet{#1}{U}{#2}{#3}{#4}}%
-\@onlypreamble\newmathalphabet
-\@onlypreamble\newmathalphabet@@
-\@onlypreamble\newmathalphabet@@@
-\global\let\if@no@font@opt\iftrue
-\gdef\@no@font@optfalse{\let\if@no@font@opt\iffalse}%
-\gdef\define@mathalphabet{%
- \err@rel@i\define@mathalphabet\DeclareMathAlphabet
-}%
-\@onlypreamble\define@mathalphabet
-\gdef\define@mathgroup{%
- \err@rel@i\define@mathgroup\DeclareSymbolFont
-}%
-\@onlypreamble\define@mathgroup
-\def\addtoversion#1#2{%
- \warn@rel@i\addtoversion\SetMathAlphabet
- \SetMathAlphabet#2{#1}{U}}%
-\@onlypreamble\addtoversion
-\EndIncludeInRelease
%%% From File: ltpageno.dtx
%%% From File: ltxref.dtx
\IncludeInRelease{2020/10/01}%
@@ -9685,6 +6441,7 @@ of this package available from CTAN}
\IncludeInRelease{2020/10/01}%
{\enddocument}{Use Hooks}%
\def\enddocument{%
+ \@kernel@before@enddocument
\UseOneTimeHook{enddocument}%
\@kernel@after@enddocument
\@checkend{document}%
@@ -9712,8 +6469,6 @@ of this package available from CTAN}
\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist}
\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings}
\DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings}
-\let\@kernel@after@enddocument\@empty
-\let\@kernel@after@enddocument@afterlastpage\@empty
\def\@enddocument@kernel@warnings{%
\ifdim \font@submax >\fontsubfuzz\relax
\@font@warning{Size substitutions with differences\MessageBreak
@@ -9773,11 +6528,19 @@ of this package available from CTAN}
\endgroup
\deadcycles\z@\@@end}
-\let\@kernel@after@enddocument\@undefined
-\let\@kernel@after@enddocument@afterlastpage\@undefined
\let\@enddocument@kernel@warnings\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2021/05/01}%
+ {\@kernel@before@enddocument}{kernel before hook}%
+\def\@kernel@before@enddocument{\par}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@kernel@before@enddocument}{kernel before hook}%
+
+\let\@kernel@before@enddocument\@empty
+
+\EndIncludeInRelease
\IncludeInRelease{2018/12/01}%
{\protected@file@percent}{Mask line endings}%
\protected\def\protected@file@percent{}
@@ -10132,303 +6895,4024 @@ of this package available from CTAN}
\verbatim@font\@noligs
\@ifstar\@sverb\@verb}
\EndIncludeInRelease
-\ifx\directlua\@undefined\else
-\IncludeInRelease{2015/10/01}
- {\newluafunction}{LuaTeX}%
-\ifnum\luatexversion<60 %
- \wlog{***************************************************}
- \wlog{* LuaTeX version too old for ltluatex support *}
- \wlog{***************************************************}
- \expandafter\endinput
+%%% From File: ltmath.dtx
+\IncludeInRelease{2019/10/01}%
+ {\vphantom}{Make commands robust}%
+\DeclareRobustCommand\vphantom{\v@true\h@false\ph@nt}
+\DeclareRobustCommand\hphantom{\v@false\h@true\ph@nt}
+\DeclareRobustCommand\phantom{\v@true\h@true\ph@nt}
+\DeclareRobustCommand\mathstrut{\vphantom(}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\vphantom}{Make commands robust}%
+
+\kernel@make@fragile\vphantom
+\kernel@make@fragile\hphantom
+\kernel@make@fragile\phantom
+\kernel@make@fragile\mathstrut
+
+\EndIncludeInRelease
+\IncludeInRelease{2018/12/01}%
+ {\finph@nt}{Start LR-mode}%
+\def\finph@nt{%
+ \setbox\tw@\null
+ \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
+ \ifh@ \wd\tw@\wd\z@\fi
+ \leavevmode@ifvmode\box\tw@}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\finph@nt}{Start LR-mode}%
+\def\finph@nt{%
+ \setbox\tw@\null
+ \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
+ \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
+\EndIncludeInRelease
+\IncludeInRelease{2018/12/01}%
+ {\finsm@sh}{Start LR-mode}%
+\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \leavevmode@ifvmode\box\z@}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\finsm@sh}{Start LR-mode}%
+\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\cases}{Make commands robust}%
+\DeclareRobustCommand*\cases[1]{\left\{\,\vcenter{\normalbaselines\m@th
+ \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.}
+\DeclareRobustCommand*\matrix[1]{\null\,\vcenter{\normalbaselines\m@th
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+\DeclareRobustCommand*\pmatrix[1]{\left(\matrix{#1}\right)}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\cases}{Make commands robust}%
+
+\kernel@make@fragile\cases
+\kernel@make@fragile\matrix
+\kernel@make@fragile\pmatrix
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\tmspace}{amsmath spacing commands}%
+\DeclareRobustCommand\tmspace[3]{%
+ \ifmmode\mskip#1#2\else\leavevmode@ifvmode\kern#1#3\fi\relax}
+\DeclareRobustCommand\,{\tmspace+\thinmuskip{.16667em}}
+\let\thinspace\,
+\DeclareRobustCommand\!{\tmspace-\thinmuskip{.16667em}}
+\let\negthinspace\!
+\DeclareRobustCommand\:{\tmspace+\medmuskip{.2222em}}
+\let\medspace\:
+\let\>=\:
+\DeclareRobustCommand\negmedspace{\tmspace-\medmuskip{.2222em}}
+\DeclareRobustCommand\;{\tmspace+\thickmuskip{.2777em}}
+\let\thickspace\;
+\DeclareRobustCommand\negthickspace{\tmspace-\thickmuskip{.2777em}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\tmspace}{amsmath spacing commands}%
+
+\let\tmspace\@undefined
+\DeclareRobustCommand{\,}{%
+ \relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
+\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em }
+\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em }
+\def\>{\mskip\medmuskip}
+\let\:=\>
+\def\;{\mskip\thickmuskip}
+\def\!{\mskip-\thinmuskip}
+
+\let\negmedspace\@undefined
+\let\negthickspace\@undefined
+
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\(}{Make \( robust}%
+\DeclareRobustCommand\({%
+ \relax\ifmmode\@badmath\else$\fi}%
+\DeclareRobustCommand\){%
+ \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\(}{Make \( robust}%
+\def\({%
+ \relax\ifmmode\@badmath\else$\fi}%
+\expandafter\let\csname\string( \endcsname\@undefined
+\def\){%
+ \relax\ifmmode\ifinner$\else\@badmath\fi\else \@badmath\fi}%
+\expandafter\let\csname\string) \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\[}{Make \[ robust}%
+\DeclareRobustCommand\[{%
+ \relax\ifmmode
+ \@badmath
+ \else
+ \ifvmode
+ \nointerlineskip
+ \makebox[.6\linewidth]{}%
+ \fi
+ $$%%$$ BRACE MATCH HACK
+ \fi
+}%
+\DeclareRobustCommand\]{%
+ \relax\ifmmode
+ \ifinner
+ \@badmath
+ \else
+ $$%%$$ BRACE MATCH HACK
+ \fi
+ \else
+ \@badmath
+ \fi
+ \ignorespaces
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\[}{Make \[ robust}%
+\def\[{%
+ \relax\ifmmode
+ \@badmath
+ \else
+ \ifvmode
+ \nointerlineskip
+ \makebox[.6\linewidth]{}%
+ \fi
+ $$%%$$ BRACE MATCH HACK
+ \fi
+}%
+\expandafter\let\csname\string[ \endcsname\@undefined
+\def\]{%
+ \relax\ifmmode
+ \ifinner
+ \@badmath
+ \else
+ $$%%$$ BRACE MATCH HACK
+ \fi
+ \else
+ \@badmath
+ \fi
+ \ignorespaces
+}%
+\expandafter\let\csname\string] \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@xeqncr}{eqnarray support calc syntax}%
+\def\@xeqncr[#1]{%
+ \ifnum0=`{\fi}%
+ \@@eqncr
+ \noalign{\penalty\@eqpen\vskip\jot\@vspace@calcify{#1}}%
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@xeqncr}{eqnarray support calc syntax}%
+
+\def\@xeqncr[#1]{%
+ \ifnum0=`{\fi}%
+ \@@eqncr
+ \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}%
+}
+\EndIncludeInRelease
+%%% From File: ltlists.dtx
+%%% From File: ltboxes.dtx
+\IncludeInRelease{2015/01/01}%
+ {\makebox}{Make \makebox robust}%
+\DeclareRobustCommand\makebox{%
+ \leavevmode
+ \@ifnextchar(%)
+ \@makepicbox
+ {\@ifnextchar[\@makebox\mbox}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\makebox}{Make \makebox robust}%
+\def\makebox{%
+ \leavevmode
+ \@ifnextchar(%)
+ \@makepicbox
+ {\@ifnextchar[\@makebox\mbox}}%
+\expandafter\let\csname makebox \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@imakepicbox}{default units}%
+\long\def\@imakepicbox(#1,#2)[#3]#4{%
+ \@defaultunitsset\@tempdimc{#2}\unitlength
+ \vbox to\@tempdimc
+ {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
+ \let\mb@t\vss
+ \@tfor\reserved@a :=#3\do{%
+ \if s\reserved@a
+ \let\mb@l\relax\let\mb@r\relax
+ \else
+ \expandafter\let\csname mb@\reserved@a\endcsname\relax
+ \fi}%
+ \mb@t
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \hb@xt@\@tempdimc{\mb@l #4\mb@r}%
+ \mb@b
+ \kern\z@}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@imakepicbox}{default units}%
+\long\def\@imakepicbox(#1,#2)[#3]#4{%
+ \vbox to#2\unitlength
+ {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
+ \let\mb@t\vss
+ \@tfor\reserved@a :=#3\do{%
+ \if s\reserved@a
+ \let\mb@l\relax\let\mb@r\relax
+ \else
+ \expandafter\let\csname mb@\reserved@a\endcsname\relax
+ \fi}%
+ \mb@t
+ \hb@xt@ #1\unitlength{\mb@l #4\mb@r}%
+ \mb@b
+ \kern\z@}}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\savebox}{Make \savebox robust}%
+\DeclareRobustCommand\savebox[1]{%
+ \@ifnextchar(%)
+ {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\savebox}{Make \savebox robust}%
+\def\savebox#1{%
+ \@ifnextchar(%)
+ {\@savepicbox#1}{\@ifnextchar[{\@savebox#1}{\sbox#1}}}%
+\expandafter\let\csname savebox \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\framebox}{Make \framebox robust}%
+\DeclareRobustCommand\framebox{%
+ \@ifnextchar(%)
+ \@framepicbox{\@ifnextchar[\@framebox\fbox}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\framebox}{Make \framebox robust}%
+\def\framebox{%
+ \@ifnextchar(%)
+ \@framepicbox{\@ifnextchar[\@framebox\fbox}}%
+\expandafter\let\csname framebox \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\parbox}{Make \parbox robust}%
+\DeclareRobustCommand\parbox{%
+ \@ifnextchar[%]
+ \@iparbox
+ {\@iiiparbox c\relax[s]}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\parbox}{Make \parbox robust}%
+\def\parbox{%
+ \@ifnextchar[%]
+ \@iparbox
+ {\@iiiparbox c\relax[s]}}%
+\expandafter\let\csname parbox \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2017-04-15}%
+ {\normallineskiplimit}
+ {reset \lineskiplimit}%
+\def\@arrayparboxrestore{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \let\-\@dischyph
+ \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+ \linewidth\hsize
+ \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue
+ \lineskip\normallineskip
+ \lineskiplimit\normallineskiplimit
+ \baselineskip\normalbaselineskip
+ \sloppy}
+\EndIncludeInRelease
+\IncludeInRelease{0000-00-00}%
+ {\normallineskiplimit}
+ {reset \lineskiplimit}%
+\def\@arrayparboxrestore{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \let\-\@dischyph
+ \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+ \linewidth\hsize
+ \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\rule}{Make \rule robust}%
+\DeclareRobustCommand\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\rule}{Make \rule robust}%
+\def\rule{\@ifnextchar[\@rule{\@rule[\z@]}}%
+\expandafter\let\csname rule \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\raisebox}{Make \raisebox robust}%
+\DeclareRobustCommand\raisebox[1]{%
+ \leavevmode
+ \@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\raisebox}{Make \raisebox robust}%
+\def\raisebox#1{%
+ \leavevmode
+ \@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
+\expandafter\let\csname raisebox \endcsname\@undefined
+\EndIncludeInRelease
+%%% From File: lttab.dtx
+\IncludeInRelease{2020/10/01}%
+ {\@itabcr}{Tabbing calc syntax}%
+\def\@itabcr[#1]{\@vspace@calcify{#1}\@startline\ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@itabcr}{Tabbing calc syntax}%
+
+\def\@itabcr[#1]{\vskip #1\@startline\ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\pushtabs}{Make commands robust}%
+\DeclareRobustCommand\pushtabs{%
+ \@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup
+ \@contfield}
+\DeclareRobustCommand\poptabs{\@stopfield\@addfield
+ \ifnum \@tabpush >\z@
+ \endgroup
+ \global\advance\@tabpush \m@ne
+ \ifnum \@curtab >\@hightab
+ \global \@curtab \@hightab
+ \@badtab
+ \fi
+ \else
+ \@badpoptabs
+ \fi
+ \@contfield}
+\DeclareRobustCommand\kill{\@stopfield\@startline\ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\pushtabs}{Make commands robust}%
+
+\kernel@make@fragile\pushtabs
+\kernel@make@fragile\poptabs
+\kernel@make@fragile\kill
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@yargarraycr}{tabular support calc syntax}%
+\def\@yargarraycr#1{\cr\noalign{\@vspace@calcify{#1}}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@yargarraycr}{tabular support calc syntax}%
+
+\def\@yargarraycr#1{\cr\noalign{\vskip #1}}
+\EndIncludeInRelease
+%%% From File: ltpictur.dtx
+\IncludeInRelease{2020/10/01}%
+ {\@defaultunitsset}{default units}%
+\def\@defaultunitsset#1#2#3{%
+ \@defaultunits#1\dimexpr#2#3\relax\relax\@nnil}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@defaultunitsset}{default units}%
+\let\@defaultunitsset\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@picture}{default units}%
+\def\@picture(#1,#2)(#3,#4){%
+ \@defaultunitsset\@picht{#2}\unitlength
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \setbox\@picbox\hb@xt@\@tempdimc\bgroup
+ \@defaultunitsset\@tempdimc{#3}\unitlength
+ \hskip -\@tempdimc
+ \@defaultunitsset\@tempdimc{#4}\unitlength
+ \lower\@tempdimc\hbox\bgroup
+ \ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@picture}{default units}%
+\def\@picture(#1,#2)(#3,#4){%
+ \@picht#2\unitlength
+ \setbox\@picbox\hb@xt@#1\unitlength\bgroup
+ \hskip -#3\unitlength
+ \lower #4\unitlength\hbox\bgroup
+ \ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\put}{default units}%
+\expandafter\let\csname put \endcsname\@undefind
+\long\def\put(#1,#2)#3{%
+ \@killglue
+ \@defaultunitsset\@tempdimc{#2}\unitlength
+ \raise\@tempdimc
+ \hb@xt@\z@{%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \kern\@tempdimc
+ #3\hss}%
+ \ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\put}{default units}%
+\expandafter\let\csname put \endcsname\@undefind
+\long\def\put(#1,#2)#3{%
+ \@killglue\raise#2\unitlength
+ \hb@xt@\z@{\kern#1\unitlength #3\hss}%
+ \ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\multiput}{default units}%
+\expandafter\let\csname multiput \endcsname\@undefind
+\def\multiput(#1,#2)#3{%
+ \@defaultunitsset\@xdim{#1}\unitlength
+ \@defaultunitsset\@ydim{#2}\unitlength
+ \@multiput(}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\multiput}{default units}%
+\expandafter\let\csname multiput \endcsname\@undefind
+\def\multiput(#1,#2)#3{%
+ \@xdim #1\unitlength
+ \@ydim #2\unitlength
+ \@multiput(}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@multiput}{default units}%
+\long\def\@multiput(#1,#2)#3#4{%
+ \@killglue\@multicnt #3\relax
+ \@whilenum \@multicnt >\z@\do
+ {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
+ \advance\@multicnt\m@ne
+ \@defaultunitsset{\advance\@xdim}{#1}\unitlength
+ \@defaultunitsset{\advance\@ydim}{#2}\unitlength}%
+ \ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@multiput}{default units}%
+\long\def\@multiput(#1,#2)#3#4{%
+ \@killglue\@multicnt #3\relax
+ \@whilenum \@multicnt >\z@\do
+ {\raise\@ydim\hb@xt@\z@{\kern\@xdim #4\hss}%
+ \advance\@multicnt\m@ne
+ \advance\@xdim#1\unitlength\advance\@ydim#2\unitlength}%
+ \ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@istackcr}{\shortstack calc support}%
+\def\@istackcr[#1]{\cr\noalign{\@vspace@calcify{#1}}\ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@istackcr}{\shortstack calc support}%
+
+\def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\line}{default units}%
+\expandafter\let\csname line \endcsname\@undefind
+\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@defaultunitsset\@linelen{#3}\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vline
+ \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
+ \fi
+ \fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\line}{default units}%
+\expandafter\let\csname line \endcsname\@undefind
+\def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@linelen #3\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vline
+ \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
+ \fi
+ \fi}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\vector}{default units}%
+\expandafter\let\csname vector \endcsname\@undefind
+\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
+ \ifnum\@tempcnta<5\relax
+ \@defaultunitsset\@linelen{#3}\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vvector
+ \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
+ \fi
+ \fi
+ \else\@badlinearg\fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\vector}{default units}%
+\expandafter\let\csname vector \endcsname\@undefind
+\def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
+ \ifnum\@tempcnta<5\relax
+ \@linelen #3\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vvector
+ \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
+ \fi
+ \fi
+ \else\@badlinearg\fi}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\dashbox}{default units}%
+\expandafter\let\csname dashbox \endcsname\@undefind
+\def\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip
+\lineskip \z@skip
+\@defaultunitsset\@dashdim{#2}\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@defaultunitsset\@dashdim{#1}\unitlength
+\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(0,#3){\copy\@dashbox}%
+\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
+\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim \thr@@
\fi
-\long\def\@gobble#1{}
-\long\def\@firstofone#1{#1}
-\ifx\e@alloc@attribute@count\@undefined
- \countdef\e@alloc@attribute@count=258
- \e@alloc@attribute@count=\z@
+\setbox\@dashbox \hbox{%
+ \@defaultunitsset\@tempdimc{#1}\unitlength
+ \vrule \@height \@halfwidth \@depth \@halfwidth \@width \@tempdimc
+ \hskip\@tempdimc}%
+\@tempcnta\z@
+\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
+\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
+\@defaultunitsset\@dashdim{#3}\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@defaultunitsset\@dashdim{#1}\unitlength
+\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule \@width \@wholewidth
+\@height \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(#2,0){\copy\@dashbox}%
+\put(0,#3){\lower\@dashdim\copy\@dashbox}%
+\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim \thr@@
\fi
-\def\newattribute#1{%
- \e@alloc\attribute\attributedef
- \e@alloc@attribute@count\m@ne\e@alloc@top#1%
-}
-\def\setattribute#1#2{#1=\numexpr#2\relax}
-\def\unsetattribute#1{#1=-"7FFFFFFF\relax}
-\ifx\e@alloc@ccodetable@count\@undefined
- \countdef\e@alloc@ccodetable@count=259
- \e@alloc@ccodetable@count=\z@
+\@defaultunitsset\@tempdimb{#1}\unitlength
+\setbox\@dashbox\hbox{%
+ \vrule \@width \@wholewidth \@height\@tempdimb}%
+\@tempcnta\z@
+\put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
+\do{\vskip\@tempdimb\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}\@tempcnta\z@
+\put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
+\do{\vskip\@tempdimb\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}}\@makepicbox(#2,#3)}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\dashbox}{default units}%
+\expandafter\let\csname dashbox \endcsname\@undefind
+\def\dashbox#1(#2,#3){%
+\leavevmode\hb@xt@\z@{\baselineskip \z@skip
+\lineskip \z@skip
+\@dashdim #2\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox \hbox{%
+ \vrule \@height \@halfwidth \@depth \@halfwidth
+ \@width \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(0,#3){\copy\@dashbox}%
+\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
+\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim \thr@@
\fi
-\def\newcatcodetable#1{%
- \e@alloc\catcodetable\chardef
- \e@alloc@ccodetable@count\m@ne{"8000}#1%
- \initcatcodetable\allocationnumber
+\setbox\@dashbox \hbox{%
+ \vrule \@height \@halfwidth \@depth \@halfwidth
+ \@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
+\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
+\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
+\@dashdim #3\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule \@width \@wholewidth
+\@height \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(#2,0){\copy\@dashbox}%
+\put(0,#3){\lower\@dashdim\copy\@dashbox}%
+\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
+\@height #1\unitlength}\@tempcnta\z@
+\put(0,0){%
+ \hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt
+ \do{\vskip #1\unitlength\copy\@dashbox
+ \advance\@tempcnta\@ne }%
+ \vskip\@dashdim}}\@tempcnta\z@
+\put(#2,0){%
+ \hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt
+ \do{\vskip #1\unitlength\copy\@dashbox
+ \advance\@tempcnta \@ne }%
+ \vskip\@dashdim}}}\@makepicbox(#2,#3)}
+\EndIncludeInRelease
+\IncludeInRelease{2016/03/31}%
+ {\@ovhlinetrue}%
+ {Avoid almost zero length leaders}%
+\newif\if@ovvline \@ovvlinetrue
+\newif\if@ovhline \@ovhlinetrue
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@ovhlinetrue}%
+ {Avoid almost zero length leaders}%
+\let\if@ovvline\@undefined
+\let\if@ovhline\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@oval}{default units}%
+\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@ovvlinefalse \@ovhlinefalse
+ \@tfor\reserved@a :=#3\do{%
+ \csname @ov\reserved@a false\endcsname}%
+ \@defaultunitsset\@ovxx{#1}\unitlength
+ \@defaultunitsset\@ovyy{#2}\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue
+ \else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue \fi\fi
+ \advance \@tempdimb -2\p@
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \ifdim \@ovdx >\z@ \@ovhlinetrue \fi
+ \ifdim \@ovdy >\z@ \@ovvlinetrue \fi
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+\EndIncludeInRelease
+\IncludeInRelease{2016/03/31}%
+ {\@oval}{default units}%
+\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@ovvlinefalse \@ovhlinefalse
+ \@tfor\reserved@a :=#3\do{%
+ \csname @ov\reserved@a false\endcsname}%
+ \@ovxx #1\unitlength
+ \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx \@ovvlinetrue
+ \else \@ovyy \ifdim \@ovyy =\@ovxx \else \@ovhlinetrue
+ \fi\fi
+ \advance \@tempdimb -2\p@
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \ifdim \@ovdx >\z@ \@ovhlinetrue \fi
+ \ifdim \@ovdy >\z@ \@ovvlinetrue \fi
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl
+ \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx
+ \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@oval}{default units}%
+\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen
+ \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue
+ \@tfor\reserved@a :=#3\do
+ {\csname @ov\reserved@a false\endcsname}%
+ \@ovxx #1\unitlength
+ \@ovyy #2\unitlength
+ \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi
+ \advance \@tempdimb -2\p@
+ \@getcirc \@tempdimb
+ \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa
+ \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@
+ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@
+ \@circlefnt \setbox\@tempboxa
+ \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi
+ \if@ovl
+ \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx
+ \fi
+ \if@ovt \@ovhorz \kern -\@ovxx \fi
+ \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro
+ \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}%
+ \endgroup}
+\EndIncludeInRelease
+\IncludeInRelease{2016/03/31}%
+ {\@ovvert}{Avoid almost zero length leaders}%
+\def\@ovvert#1#2{\vbox to\@ovyy{%
+ \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
+ \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
+ \else \kern \@ovri \kern \@ovdy \fi
+ \if@ovvline \leaders\vrule \@width \@wholewidth \fi
+ \vfil \nointerlineskip
+ \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
+ \hbox{\char \@tempcntb}%
+ \else \kern \@ovdy \kern \@ovro \fi}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@ovvert}{Avoid almost zero length leaders}%
+\def\@ovvert#1#2{\vbox to\@ovyy{%
+ \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
+ \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
+ \else \kern \@ovri \kern \@ovdy \fi
+ \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
+ \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
+ \hbox{\char \@tempcntb}%
+ \else \kern \@ovdy \kern \@ovro \fi}}
+\EndIncludeInRelease
+\IncludeInRelease{2016/03/31}%
+ {\@ovhorz}{Avoid almost zero length leaders}%
+\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
+ \if@ovr \else \kern \@ovdx \fi
+ \if@ovhline \leaders \hrule \@height \@wholewidth \fi
+ \hfil
+ \if@ovl \else \kern \@ovdx \fi
+ \kern \@ovri}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@ovhorz}{Avoid almost zero length leaders}%
+\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro
+ \if@ovr \else \kern \@ovdx \fi
+ \leaders \hrule \@height \@wholewidth \hfil
+ \if@ovl \else \kern \@ovdx \fi
+ \kern \@ovri}}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@circle}{default units}%
+\def\@circle#1{%
+ \begingroup \boxmaxdepth \maxdimen
+ \@defaultunitsset\@tempdimb{#1}\unitlength
+ \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
+ \@ovro\ht\@tempboxa
+ \setbox\@tempboxa\hbox{\@circlefnt
+ \advance\@tempcnta\tw@ \char \@tempcnta
+ \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima
+ \advance\@tempcnta\tw@
+ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima
+ \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
+ \else \@circ\@tempdimb{96}\fi\endgroup}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@circle}{default units}%
+\def\@circle#1{%
+ \begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength
+ \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb
+ \@ovro\ht\@tempboxa
+ \setbox\@tempboxa\hbox{\@circlefnt
+ \advance\@tempcnta\tw@ \char \@tempcnta
+ \advance\@tempcnta\m@ne \char \@tempcnta
+ \kern -2\@tempdima
+ \advance\@tempcnta\tw@
+ \raise \@tempdima \hbox{\char\@tempcnta}%
+ \raise \@tempdima
+ \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@
+ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}%
+ \else \@circ\@tempdimb{96}\fi\endgroup}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@dot}{default units}%
+\def\@dot#1{%
+ \@defaultunitsset\@tempdimb{#1}\unitlength
+ \@circ\@tempdimb{112}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@dot}{default units}%
+\def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@bezier}{default units}%
+\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
+ \ifnum #1=\z@
+ \@defaultunitsset\@ovxx{#4}\unitlength
+ \@defaultunitsset{\advance\@ovxx}{-#2}\unitlength
+ \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
+ \@defaultunitsset\@ovdx{#6}\unitlength
+ \@defaultunitsset{\advance\@ovdx}{-#4}\unitlength
+ \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
+ \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
+ \@defaultunitsset\@ovyy{#5}\unitlength
+ \@defaultunitsset{\advance\@ovyy}{-#3}\unitlength
+ \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
+ \@defaultunitsset\@ovdy{#7}\unitlength
+ \@defaultunitsset{\advance\@ovdy}{-#5}\unitlength
+ \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi
+ \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi
+ \@multicnt
+ \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
+ \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
+ \ifnum \qbeziermax<\@multicnt
+ \@multicnt\qbeziermax\relax
+ \fi
+ \else \@multicnt#1\relax \fi
+ \@tempcnta\@multicnt \advance\@tempcnta\@ne
+ \@defaultunitsset\@ovdx{#4}\unitlength
+ \@defaultunitsset{\advance\@ovdx}{-#2}\unitlength
+ \multiply\@ovdx \tw@
+ \@defaultunitsset\@ovxx{#6}\unitlength
+ \@defaultunitsset{\advance\@ovxx}{-#2}\unitlength
+ \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
+ \@defaultunitsset\@ovdy{#5}\unitlength
+ \@defaultunitsset{\advance\@ovdy}{-#3}\unitlength
+ \multiply\@ovdy \tw@
+ \@defaultunitsset\@ovyy{#7}\unitlength
+ \@defaultunitsset{\advance\@ovyy}{-#3}\unitlength
+ \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
+ \setbox\@tempboxa\hbox{%
+ \hskip -\@halfwidth
+ \vrule \@height\@halfwidth
+ \@depth \@halfwidth
+ \@width \@wholewidth}%
+ \put(#2,#3){%
+ \count@\z@
+ \@whilenum{\count@<\@tempcnta}\do
+ {\@xdim\count@\@ovxx
+ \advance\@xdim\@ovdx
+ \divide\@xdim\@multicnt
+ \multiply\@xdim\count@
+ \@ydim\count@\@ovyy
+ \advance\@ydim\@ovdy
+ \divide\@ydim\@multicnt
+ \multiply\@ydim\count@
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@bezier}{default units}%
+\def\@bezier#1(#2,#3)(#4,#5)(#6,#7){%
+ \ifnum #1=\z@
+ \@ovxx #4\unitlength
+ \advance\@ovxx -#2\unitlength
+ \ifdim \@ovxx<\z@ \@ovxx -\@ovxx \fi
+ \@ovdx #6\unitlength
+ \advance\@ovdx -#4\unitlength
+ \ifdim \@ovdx<\z@ \@ovdx -\@ovdx \fi
+ \ifdim \@ovxx<\@ovdx \@ovxx \@ovdx \fi
+ \@ovyy #5\unitlength
+ \advance\@ovyy -#3\unitlength
+ \ifdim \@ovyy<\z@ \@ovyy -\@ovyy \fi
+ \@ovdy #7\unitlength
+ \advance\@ovdy -#5\unitlength
+ \ifdim \@ovdy<\z@ \@ovdy -\@ovdy \fi
+ \ifdim \@ovyy<\@ovdy \@ovyy \@ovdy \fi
+ \@multicnt
+ \ifdim \@ovxx>\@ovyy \@ovxx \else \@ovyy \fi
+ \@ovxx .5\@halfwidth \divide\@multicnt\@ovxx
+ \ifnum
+ \qbeziermax<\@multicnt \@multicnt\qbeziermax\relax
+ \fi
+ \else \@multicnt#1\relax \fi
+ \@tempcnta\@multicnt \advance\@tempcnta\@ne
+ \@ovdx #4\unitlength \advance\@ovdx -#2\unitlength
+ \multiply\@ovdx \tw@
+ \@ovxx #6\unitlength \advance\@ovxx -#2\unitlength
+ \advance\@ovxx -\@ovdx \divide\@ovxx\@multicnt
+ \@ovdy #5\unitlength \advance\@ovdy -#3\unitlength
+ \multiply\@ovdy \tw@
+ \@ovyy #7\unitlength \advance\@ovyy -#3\unitlength
+ \advance\@ovyy -\@ovdy \divide\@ovyy\@multicnt
+ \setbox\@tempboxa\hbox{%
+ \hskip -\@halfwidth
+ \vrule \@height\@halfwidth
+ \@depth \@halfwidth
+ \@width \@wholewidth}%
+ \put(#2,#3){%
+ \count@\z@
+ \@whilenum{\count@<\@tempcnta}\do
+ {\@xdim\count@\@ovxx
+ \advance\@xdim\@ovdx
+ \divide\@xdim\@multicnt
+ \multiply\@xdim\count@
+ \@ydim\count@\@ovyy
+ \advance\@ydim\@ovdy
+ \divide\@ydim\@multicnt
+ \multiply\@ydim\count@
+ \raise \@ydim
+ \hb@xt@\z@{\kern\@xdim
+ \unhcopy\@tempboxa\hss}%
+ \advance\count@\@ne}}}
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\bezier}{Make commands robust}%
+\MakeRobust\bezier
+\MakeRobust\circle
+\MakeRobust\dashbox
+\MakeRobust\line
+\MakeRobust\linethickness
+\MakeRobust\multiput
+\MakeRobust\oval
+\MakeRobust\put
+\MakeRobust\qbezier
+\MakeRobust\shortstack
+\MakeRobust\thinlines
+\MakeRobust\vector
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\bezier}{Make commands robust}%
+
+\kernel@make@fragile\bezier
+\kernel@make@fragile\circle
+\kernel@make@fragile\dashbox
+\kernel@make@fragile\line
+\kernel@make@fragile\linethickness
+\kernel@make@fragile\multiput
+\kernel@make@fragile\oval
+\kernel@make@fragile\put
+\kernel@make@fragile\qbezier
+\kernel@make@fragile\shortstack
+\kernel@make@fragile\thinlines
+\kernel@make@fragile\vector
+
+\EndIncludeInRelease
+%%% From File: ltthm.dtx
+%%% From File: ltsect.dtx
+\IncludeInRelease{2019/10/01}%
+ {\title}{Make commands robust}%
+\DeclareRobustCommand\title[1]{\gdef\@title{#1}}
+\DeclareRobustCommand*\author[1]{\gdef\@author{#1}}
+\DeclareRobustCommand*\date[1]{\gdef\@date{#1}}
+\DeclareRobustCommand\thanks[1]{\footnotemark
+ \protected@xdef\@thanks{\@thanks
+ \protect\footnotetext[\the\c@footnote]{#1}}%
}
-\newcatcodetable\catcodetable@initex
-\newcatcodetable\catcodetable@string
-\begingroup
- \def\setrangecatcode#1#2#3{%
- \ifnum#1>#2 %
- \expandafter\@gobble
+\DeclareRobustCommand\and{% % \begin{tabular}
+ \end{tabular}%
+ \hskip 1em \@plus.17fil%
+ \begin{tabular}[t]{c}}% % \end{tabular}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\title}{Make commands robust}%
+
+\kernel@make@fragile\title
+\kernel@make@fragile\author
+\kernel@make@fragile\date
+\kernel@make@fragile\thanks
+\kernel@make@fragile\and
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\addcontentsline}{fourth argument}%
+\def\addcontentsline#1#2#3{%
+ \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}{}%
+ \protected@file@percent}}
+\EndIncludeInRelease
+\IncludeInRelease{2018/12/01}%
+ {\addcontentsline}{Mask line endings}%
+ \def\addcontentsline#1#2#3{%
+ \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}%
+ \protected@file@percent}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\addcontentsline}{Mask line endings}%
+\def\addcontentsline#1#2#3{%
+ \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}}
+\EndIncludeInRelease
+\IncludeInRelease{2018/12/01}%
+ {\@dottedtocline}{Prevent protrusion}%
+\def\@dottedtocline#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5%
+ \kern-\p@\kern\p@}%
+ \par}%
+ \fi}
+
+\DeclareRobustCommand\noprotrusion{\leavevmode\kern-\p@\kern\p@}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@dottedtocline}{Prevent protrusion}%
+\def\@dottedtocline#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+ \par}%
+ \fi}
+
+\let\noprotrusion\@undefined
+\EndIncludeInRelease
+%%% From File: ltfloat.dtx
+\IncludeInRelease{2015/01/01}%
+ {\@xfloat}{Check float options}%
+\def\@xfloat #1[#2]{%
+ \@nodocument
+ \def \@captype {#1}%
+ \def \@fps {#2}%
+ \@onelevel@sanitize \@fps
+ \def \reserved@b {!}%
+ \ifx \reserved@b \@fps
+ \@fpsadddefault
+ \else
+ \ifx \@fps \@empty
+ \@fpsadddefault
+ \fi
+ \fi
+ \ifhmode
+ \@bsphack
+ \@floatpenalty -\@Mii
+ \else
+ \@floatpenalty-\@Miii
+ \fi
+ \ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else
+ \@next\@currbox\@freelist
+ {%
+ \@tempcnta \sixt@@n
+ \expandafter \@tfor \expandafter \reserved@a
+ \expandafter :\expandafter =\@fps
+ \do
+ {%
+ \if \reserved@a h%
+ \ifodd \@tempcnta
+ \else
+ \advance \@tempcnta \@ne
+ \fi
+ \else\if \reserved@a t%
+ \@setfpsbit \tw@
+ \else\if \reserved@a b%
+ \@setfpsbit 4%
+ \else\if \reserved@a p%
+ \@setfpsbit 8%
+ \else\if \reserved@a !%
+ \ifnum \@tempcnta>15
+ \advance\@tempcnta -\sixt@@n\relax
+ \fi
+ \else
+ \@latex@error{Unknown float option `\reserved@a'}%
+ {Option `\reserved@a' ignored and `p' used.}%
+ \@setfpsbit 8%
+ \fi\fi\fi\fi\fi
+ }%
+ \@tempcntb \csname ftype@\@captype \endcsname
+ \multiply \@tempcntb \@xxxii
+ \advance \@tempcnta \@tempcntb
+ \global \count\@currbox \@tempcnta
+ }%
+ \@fltovf
+ \fi
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox \bgroup
+ \hsize\columnwidth
+ \@parboxrestore
+ \@floatboxreset
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@xfloat}{Check float options}%
+\def\@xfloat #1[#2]{%
+ \@nodocument
+ \def \@captype {#1}%
+ \def \@fps {#2}%
+ \@onelevel@sanitize \@fps
+ \def \reserved@b {!}%
+ \ifx \reserved@b \@fps
+ \@fpsadddefault
+ \else
+ \ifx \@fps \@empty
+ \@fpsadddefault
+ \fi
+ \fi
+ \ifhmode
+ \@bsphack
+ \@floatpenalty -\@Mii
+ \else
+ \@floatpenalty-\@Miii
+ \fi
+ \ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else
+ \@next\@currbox\@freelist
+ {%
+ \@tempcnta \sixt@@n
+ \expandafter \@tfor \expandafter \reserved@a
+ \expandafter :\expandafter =\@fps
+ \do
+ {%
+ \if \reserved@a h%
+ \ifodd \@tempcnta
+ \else
+ \advance \@tempcnta \@ne
+ \fi
+ \fi
+ \if \reserved@a t%
+ \@setfpsbit \tw@
+ \fi
+ \if \reserved@a b%
+ \@setfpsbit 4%
+ \fi
+ \if \reserved@a p%
+ \@setfpsbit 8%
+ \fi
+ \if \reserved@a !%
+ \ifnum \@tempcnta>15
+ \advance\@tempcnta -\sixt@@n\relax
+ \fi
+ \fi
+ }%
+ \@tempcntb \csname ftype@\@captype \endcsname
+ \multiply \@tempcntb \@xxxii
+ \advance \@tempcnta \@tempcntb
+ \global \count\@currbox \@tempcnta
+ }%
+ \@fltovf
+ \fi
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox \bgroup
+ \hsize\columnwidth
+ \@parboxrestore
+ \@floatboxreset
+}%
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\end@dblfloat}{float order in 2-column}%
+\def\end@dblfloat{%
+ \if@twocolumn
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \global\dp\@currbox1sp %
+ \@cons\@currlist\@currbox
+ \ifnum\@floatpenalty <-\@Mii
+ \penalty -\@Miv
+ \@tempdima\prevdepth
+ \vbox{}%
+ \prevdepth\@tempdima
+ \penalty\@floatpenalty
+ \else
+ \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
+ \fi
+ \fi
+ \else
+ \end@float
+ \fi
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\end@dblfloat}{float order in 2-column}%
+\def\end@dblfloat{%
+\if@twocolumn
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \@cons\@dbldeferlist\@currbox
+ \fi
+ \ifnum \@floatpenalty =-\@Mii \@Esphack\fi
+\else
+ \end@float
+\fi
+}%
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\@dblfloatplacement}{float order in 2-column}%
+\def\@dblfloatplacement{\global\@dbltopnum\c@dbltopnumber
+ \global\@dbltoproom \dbltopfraction\@colht
+ \@textmin \@colht
+ \advance \@textmin -\@dbltoproom
+ \@fpmin \dblfloatpagefraction\textheight
+ \@fptop \@dblfptop
+ \@fpsep \@dblfpsep
+ \@fpbot \@dblfpbot
+ \def\f@depth{1sp}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@dblfloatplacement}{float order in 2-column}%
+\def \@dblfloatplacement {%
+ \global \@dbltopnum \c@dbltopnumber
+ \global \@dbltoproom \dbltopfraction\@colht
+ \@textmin \@colht
+ \advance \@textmin -\@dbltoproom
+ \@fpmin \dblfloatpagefraction\textheight
+ \@fptop \@dblfptop
+ \@fpsep \@dblfpsep
+ \@fpbot \@dblfpbot
+}%
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@textsuperscript}{superscript baseline}%
+\def\@textsuperscript#1{%
+ {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\sf@size#1}}}}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@textsuperscript}{superscript baseline}%
+
+\def\@textsuperscript#1{%
+ {\m@th\ensuremath{^{\mbox{\fontsize\sf@size\z@#1}}}}}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\textsubscript}{\textsubscript}%
+\DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\textsubscript}{\textsubscript}%
+\let\textsubscript\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@textsubscript}{subscript baseline}%
+\def\@textsubscript#1{%
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\sf@size#1}}}}}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\@textsubscript}{subscript baseline}%
+
+\def\@textsubscript#1{%
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@textsubscript}{subscript baseline}%
+\let\@textsubscript\@undefined
+\EndIncludeInRelease
+%%% From File: ltidxglo.dtx
+%%% From File: ltbibl.dtx
+\IncludeInRelease{2021/05/01}%
+ {\nocite}{Allow nocite in preamble}%
+\def\nocite#1{\@bsphack
+ \ifx\@onlypreamble\document
+ \@for\@citeb:=#1\do{%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb}{\G@refundefinedtrue
+ \@latex@warning{Citation `\@citeb' undefined}}{}}%
+ \else
+ \AddToHook{begindocument/end}[kernel]{\nocite{#1}}%
+ \fi
+ \@esphack}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\nocite}{Allow nocite in preamble}%
+
+\def\nocite#1{\@bsphack
+ \ifx\@onlypreamble\document
+ \@for\@citeb:=#1\do{%
+ \edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@ifundefined{b@\@citeb}{\G@refundefinedtrue
+ \@latex@warning{Citation `\@citeb' undefined}}{}}%
+ \else
+ \@latex@error{Cannot be used in preamble}\@eha
+ \fi
+ \@esphack}
+
+\EndIncludeInRelease
+%%% From File: ltpage.dtx
+\IncludeInRelease{2019/10/01}%
+ {\markboth}{Make commands robust}%
+\DeclareRobustCommand*\markboth[2]{%
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \unrestored@protected@xdef\@themark {{#1}{#2}}%
+ \@temptokena \expandafter{\@themark}%
+ \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{\the\@temptokena}%
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\markboth}{Make commands robust}%
+
+\kernel@make@fragile\markboth
+\kernel@make@fragile\markright
+
+\EndIncludeInRelease
+%%% From File: ltclass.dtx
+
+\IncludeInRelease{2020/10/01}{\@currpath}%
+ {Add \@currpath}%
+\let\@currpath\@empty
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@currpath}%
+ {Add \@currpath}%
+\let\@currpath\@undefined
+\EndIncludeInRelease
+
+\IncludeInRelease{2020/10/01}{\@pushfilename}%
+ {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
+\def\@pushfilename{%
+ \@expl@push@filename@@
+ \xdef\@currnamestack{%
+ {\@currname}%
+ {\@currext}%
+ {\the\catcode`\@}%
+ \@currnamestack}%
+ \xdef\@kernel@currpathstack{%
+ {\@currpath}%
+ \@kernel@currpathstack}%
+ \@expl@push@filename@aux@@}
+\EndIncludeInRelease
+
+\IncludeInRelease{2020/02/02}{\@pushfilename}%
+ {Add \@expl@push@filename@@}%
+\def\@pushfilename{%
+ \@expl@push@filename@@
+ \xdef\@currnamestack{%
+ {\@currname}%
+ {\@currext}%
+ {\the\catcode`\@}%
+ \@currnamestack}%
+ \@expl@push@filename@aux@@}
+\EndIncludeInRelease
+
+\IncludeInRelease{0000/00/00}{\@pushfilename}%
+ {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
+\def\@pushfilename{%
+ \xdef\@currnamestack{%
+ {\@currname}%
+ {\@currext}%
+ {\the\catcode`\@}%
+ \@currnamestack}}
+\EndIncludeInRelease
+\@onlypreamble\@pushfilename
+
+\IncludeInRelease{2020/10/01}{\@popfilename}%
+ {Add \@expl@pop@filename@@}%
+\def\@popfilename{\@expl@@@hook@curr@name@pop@@
+ \expandafter\@p@pfilename\@currnamestack\@nil
+ \expandafter\@p@pfilepath\@kernel@currpathstack\@nil
+ \@expl@pop@filename@@}
+\EndIncludeInRelease
+
+\IncludeInRelease{2020/02/02}{\@popfilename}%
+ {Add \@expl@push@filename@@}%
+\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil
+ \@expl@pop@filename@@}
+\EndIncludeInRelease
+
+\IncludeInRelease{0000/00/00}{\@popfilename}%
+ {Add \@expl@push@filename@@ and \@expl@push@filename@aux@@}%
+\def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil}
+\EndIncludeInRelease
+\@onlypreamble\@popfilename
+
+\IncludeInRelease{2020/10/01}{\@kernel@currpathstack}%
+ {Add \@kernel@currpathstack}%
+\gdef\@kernel@currpathstack{}
+\def\@p@pfilepath#1{%
+ \gdef\@currpath{#1}\@p@pfilepath@aux\@empty}
+\def\@p@pfilepath@aux#1\@nil{%
+ \xdef\@kernel@currpathstack{#1}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@kernel@currpathstack}%
+ {Add \@kernel@currpathstack}%
+\let\@kernel@currpathstack\@undefined
+\let\@p@pfilepath\@undefined
+\let\@p@pfilepath@aux\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\IfFormatAtLeastTF}{Test format date}%
+\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\let\IfPackageAtLeastTF\@ifpackagelater
+\let\IfClassAtLeastTF\@ifclasslater
+\@onlypreamble\IfFormatAtLeastTF
+\@onlypreamble\IfPackageAtLeastTF
+\@onlypreamble\IfClassAtLeastTF
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\IfFormatAtLeastTF}{Test format date}%
+\def\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
+\let\IfPackageAtLeastTF\@ifpackagelater
+\let\IfClassAtLeastTF\@ifclasslater
+\EndIncludeInRelease
+\IncludeInRelease{2018/04/01}%
+ {\@ifl@t@r}{Guard against bad input}%
+\def\@ifl@t@r#1#2{%
+ \ifnum\expandafter\@parse@version@#1//00\@nil<%
+ \expandafter\@parse@version@#2//00\@nil
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+\def\@parse@version@#1{\@parse@version0#1}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@ifl@t@r}{Guard against bad input}%
+\def\@ifl@t@r#1#2{%
+ \ifnum\expandafter\@parse@version#1//00\@nil<%
+ \expandafter\@parse@version#2//00\@nil
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+\let\@parse@version@\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2017/01/01}%
+ {\@if@pti@ns}{Spaces in option clash check}%
+\def\@if@pti@ns#1#2{%
+ \let\reserved@a\@firstoftwo
+ \edef\reserved@b{\zap@space#2 \@empty}%
+ \@for\reserved@b:=\reserved@b\do{%
+ \ifx\reserved@b\@empty
+ \else
+ \expandafter\in@\expandafter{\expandafter,\reserved@b,}{,#1,}%
+ \ifin@
+ \else
+ \let\reserved@a\@secondoftwo
+ \fi
+ \fi
+ }%
+ \reserved@a}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@if@pti@ns}{Spaces in option clash check}%
+\def\@if@pti@ns#1#2{%
+ \let\reserved@a\@firstoftwo
+ \@for\reserved@b:=#2\do{%
+ \ifx\reserved@b\@empty
+ \else
+ \expandafter\in@\expandafter
+ {\expandafter,\reserved@b,}{,#1,}%
+ \ifin@
\else
- \expandafter\@firstofone
+ \let\reserved@a\@secondoftwo
\fi
- {%
- \catcode#1=#3 %
- \expandafter\setrangecatcode\expandafter
- {\number\numexpr#1 + 1\relax}{#2}{#3}
- }%
- }
- \@firstofone{%
- \catcodetable\catcodetable@initex
- \catcode0=12 %
- \catcode13=12 %
- \catcode37=12 %
- \setrangecatcode{65}{90}{12}%
- \setrangecatcode{97}{122}{12}%
- \catcode92=12 %
- \catcode127=12 %
- \savecatcodetable\catcodetable@string
- \endgroup
- }%
-\newcatcodetable\catcodetable@latex
-\newcatcodetable\catcodetable@atletter
-\begingroup
- \def\parseunicodedataI#1;#2;#3;#4\relax{%
- \parseunicodedataII#1;#3;#2 First>\relax
- }%
- \def\parseunicodedataII#1;#2;#3 First>#4\relax{%
- \ifx\relax#4\relax
- \expandafter\parseunicodedataIII
+ \fi
+ }%
+ \reserved@a}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\ProvidesPackage}{Check name with \strcmp}%
+\def\ProvidesPackage#1{%
+ \xdef\@gtempa{#1}%
+ \@expandtwoargs\@expl@str@if@eq@@nnTF
+ {\@gtempa}{\@currpath\@currname}{}{%
+ \@latex@warning@no@line{You have requested
+ \@cls@pkg\space`\@currpath\@currname',\MessageBreak
+ but the \@cls@pkg\space provides `#1'}%
+ }%
+ \@ifnextchar[\@pr@videpackage{\@pr@videpackage[]}}%]
+\@onlypreamble\ProvidesPackage
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\ProvidesPackage}{Undo: check name with \strcmp}%
+\def\ProvidesPackage#1{%
+ \xdef\@gtempa{#1}%
+ \ifx\@gtempa\@currname\else
+ \@latex@warning@no@line{You have requested
+ \@cls@pkg\space`\@currname',\MessageBreak
+ but the \@cls@pkg\space provides `#1'}%
+ \fi
+ \@ifnextchar[\@pr@videpackage{\@pr@videpackage[]}}%]
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@pr@videpackage}{Allow for package substitution}%
+\def\@pr@videpackage[#1]{%
+ \expandafter\protected@xdef % <-- protected...
+ \csname ver@\@currname.\@currext\endcsname{#1}% Loaded package
+ \expandafter\let
+ \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package
+ \csname ver@\@currname.\@currext\endcsname
+ \ifx\@currext\@clsextension
+ \typeout{Document Class: \@gtempa\space#1}%
+ \else
+ \protected@wlog{Package: \@gtempa\space#1}% <--- protected
+ \fi}
+\long\def\protected@wlog#1{\begingroup
+ \set@display@protect
+ \immediate \write \m@ne {#1}\endgroup }
+\EndIncludeInRelease
+\IncludeInRelease{2020/02/02}%
+ {\@pr@videpackage}{Protection for package info}%
+
+\def\@pr@videpackage[#1]{%
+ \expandafter\protected@xdef % <-- protected...
+ \csname ver@\@currname.\@currext\endcsname{#1}%
+\ifx\@currext\@clsextension
+ \typeout{Document Class: \@gtempa\space#1}%
+ \else
+ \protected@wlog{Package: \@gtempa\space#1}% <--- protected
+ \fi}
+
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@pr@videpackage}{Protection for package info}%
+
+\def\@pr@videpackage[#1]{%
+ \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}%
+ \ifx\@currext\@clsextension
+ \typeout{Document Class: \@gtempa\space#1}%
+ \else
+ \wlog{Package: \@gtempa\space#1}%
+ \fi}
+\let\protected@wlog\@undefined
+
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\ProvidesClass}{Track \ProvidesPackage}%
+\let\ProvidesClass\ProvidesPackage
+\@onlypreamble\ProvidesClass
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}{\@pass@ptions}
+ {Add file replacement in \@pass@ptions}%
+\def\@pass@ptions#1#2#3{%
+ \@expl@@@filehook@set@curr@file@@nNN
+ {\@expl@@@filehook@resolve@file@subst@@w #3.#1\@nil}%
+ \reserved@a\reserved@b
+ \@expl@@@filehook@clear@replacement@flag@@
+ \expandafter\xdef\csname opt@\reserved@a\endcsname{%
+ \@ifundefined{opt@\reserved@a}\@empty
+ {\csname opt@\reserved@a\endcsname,}%
+ \zap@space#2 \@empty}%
+ \expandafter\let
+ \csname opt@#3.#1\expandafter\endcsname
+ \csname opt@\reserved@a\endcsname}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@pass@ptions}
+ {\@pass@ptions}%
+\def\@pass@ptions#1#2#3{%
+ \expandafter\xdef\csname opt@#3.#1\endcsname{%
+ \@ifundefined{opt@#3.#1}\@empty
+ {\csname opt@#3.#1\endcsname,}%
+ \zap@space#2 \@empty}}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@process@pti@ns}{Unused options issue}%
+\def\@process@pti@ns{%
+ \@for\CurrentOption:=\@curroptions\do{%
+ \@ifundefined{ds@\CurrentOption}%
+ {\@use@ption
+ \default@ds}%
+ \@use@ption}%
+ \@for\CurrentOption:=\@declaredoptions\do{%
+ \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
+ \let\CurrentOption\@empty
+ \let\@fileswith@pti@ns\@@fileswith@pti@ns
+ \AtEndOfPackage{\expandafter\let
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \relax}}
+\@onlypreamble\@process@pti@ns
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@process@pti@ns}{Unused options issue}%
+
+\def\@process@pti@ns{%
+ \@for\CurrentOption:=\@curroptions\do{%
+ \@ifundefined{ds@\CurrentOption}%
+ {\@use@ption
+ \default@ds}%
+ \@use@ption}%
+ \@for\CurrentOption:=\@declaredoptions\do{%
+ \expandafter\let\csname ds@\CurrentOption\endcsname\relax}%
+ \let\CurrentOption\@empty
+ \let\@fileswith@pti@ns\@@fileswith@pti@ns
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}}
+\EndIncludeInRelease
+\IncludeInRelease{2017/01/01}%
+ {\ExecuteOptions}{Spaces in \ExecuteOptions}%
+\def\ExecuteOptions#1{%
+ \edef\@fortmp{\zap@space#1 \@empty}%
+ \def\reserved@a##1\@nil{%
+ \@for\CurrentOption:=\@fortmp\do
+ {\csname ds@\CurrentOption\endcsname}%
+ \edef\CurrentOption{##1}}%
+ \expandafter\reserved@a\CurrentOption\@nil}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\ExecuteOptions}{Spaces in \ExecuteOptions}%
+\def\ExecuteOptions#1{%
+ \def\reserved@a##1\@nil{%
+ \@for\CurrentOption:=#1\do
+ {\csname ds@\CurrentOption\endcsname}%
+ \edef\CurrentOption{##1}}%
+ \expandafter\reserved@a\CurrentOption\@nil}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\RequirePackageWithOptions}{Unused options issue}%
+\def\RequirePackageWithOptions{%
+ \AtEndOfPackage{\expandafter\let
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \relax}%
+ \@loadwithoptions\@pkgextension\RequirePackage}
+\@onlypreamble\RequirePackageWithOptions
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\RequirePackageWithOptions}{Unused options issue}%
+
+\def\RequirePackageWithOptions{%
+ \AtEndOfPackage{\let\@unprocessedoptions\relax}%
+ \@loadwithoptions\@pkgextension\RequirePackage}
+\EndIncludeInRelease
+\IncludeInRelease{2017/01/01}%
+ {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
+\def\@fileswith@pti@ns#1[#2]#3[#4]{%
+ \ifx#1\@clsextension
+ \ifx\@classoptionslist\relax
+ \xdef\@classoptionslist{\zap@space#2 \@empty}%
+ \def\reserved@a{%
+ \@onefilewithoptions#3[{#2}][{#4}]#1%
+ \@documentclasshook}%
\else
- \expandafter\parseunicodedataIV
+ \def\reserved@a{%
+ \@onefilewithoptions#3[{#2}][{#4}]#1}%
\fi
- {#1}#2\relax%
- }%
- \def\parseunicodedataIII#1#2#3\relax{%
- \ifnum 0%
- \if L#21\fi
- \if M#21\fi
- >0 %
- \catcode"#1=11 %
+ \else
+ \def\reserved@b##1,{%
+ \ifx\@nnil##1\relax\else
+ \ifx\@nnil##1\@nnil\else
+ \noexpand\@onefilewithoptions##1[{#2}][{#4}]%
+ \noexpand\@pkgextension
+ \fi
+ \expandafter\reserved@b
+ \fi}%
+ \edef\reserved@a{\zap@space#3 \@empty}%
+ \edef\reserved@a{\expandafter\reserved@b\reserved@a,\@nnil,}%
+ \fi
+ \reserved@a}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@fileswith@pti@ns}{ifx tests in \@fileswith@pti@ns}%
+\def\@fileswith@pti@ns#1[#2]#3[#4]{%
+ \ifx#1\@clsextension
+ \ifx\@classoptionslist\relax
+ \xdef\@classoptionslist{\zap@space#2 \@empty}%
+ \def\reserved@a{%
+ \@onefilewithoptions#3[{#2}][{#4}]#1%
+ \@documentclasshook}%
+ \else
+ \def\reserved@a{%
+ \@onefilewithoptions#3[{#2}][{#4}]#1}%
\fi
- }%
- \def\parseunicodedataIV#1#2#3\relax{%
- \read\unicoderead to \unicodedataline
- \if L#2%
- \count0="#1 %
- \expandafter\parseunicodedataV\unicodedataline\relax
+ \else
+ \def\reserved@b##1,{%
+ \ifx\@nil##1\relax\else
+ \ifx\relax##1\relax\else
+ \noexpand\@onefilewithoptions##1[{#2}][{#4}]%
+ \noexpand\@pkgextension
+ \fi
+ \expandafter\reserved@b
+ \fi}%
+ \edef\reserved@a{\zap@space#3 \@empty}%
+ \edef\reserved@a{%
+ \expandafter\reserved@b\reserved@a,\@nil,}%
+ \fi
+ \reserved@a}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@onefilewithoptions}{Hooks and unused options issue}%
+\def\@onefilewithoptions#1[#2][#3]#4{%
+ \@expl@@@filehook@set@curr@file@@nNN{#1.#4}\reserved@a\reserved@b
+ \edef\reserved@c{\def\noexpand\reserved@c####1%
+ \detokenize\expandafter{\expanded{.#4}}%
+ \noexpand\@nil{\def\noexpand\reserved@a{####1}}}\reserved@c
+ \expandafter\reserved@c\reserved@a\@nil
+ \@pushfilename
+ \xdef\@currname{\string@makeletter\reserved@a}%
+ \xdef\@currpath{\ifx\reserved@b\@empty\else\reserved@b/\fi}%
+ \global\let\@currext#4%
+ \@ifl@aded\@currext\@currname
+ {\@if@ptions\@currext{\@currname}{#2}{}%
+ {\@latex@error
+ {Option clash for \@cls@pkg\space \@currname}%
+ {The package \@currname\space has already been loaded
+ with options:\MessageBreak
+ \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak
+ There has now been an attempt to load it
+ with options\MessageBreak
+ \space\space[#2]\MessageBreak
+ Adding the global options:\MessageBreak
+ \space\space
+ \@ptionlist{\@currname.\@currext},#2\MessageBreak
+ to your \noexpand\documentclass declaration may fix this.%
+ \MessageBreak
+ Try typing \space <return> \space to proceed.}}%
+ \@firstofone}%
+ {\makeatletter
+ \@reset@ptions
+ \IfFileExists{\@currpath\@currname.\@currext}{}%
+ {\@missing@onefilewithoptions{#2}}%
+ \ifx\@currname\@empty
+ \expandafter\@gobble
+ \else
+ \@disable@packageload@do{\@currname.\@currext}%
+ {\@expl@@@filehook@file@push@@
+ \set@curr@file{\@currpath\@currname.\@currext}%
+ \@filehook@set@CurrentFile
+ \expandafter\@swaptwoargs\expandafter
+ {\expandafter{\@currpkg@reqd}}%
+ {% <
+ \edef\@currpkg@reqd{\@currname.\@currext}%
+ \ifx\CurrentFile\CurrentFileUsed
+ \else
+ \filename@parse\@curr@file
+ \edef\@currpath{\string@makeletter\filename@area}%
+ \edef\@currname{\string@makeletter\filename@base}%
+ \edef\@currext{\string@makeletter\filename@ext}%
+ \fi
+ \load@onefile@withoptions{#2}%
+ \def\@currpkg@reqd%{\@currpkg@reqd}
+ }% >
+ \@expl@@@filehook@file@pop@@}%
+ \expandafter\@firstofone
+ \fi}%
+ {\@ifl@ter\@currext{\@currname}{#3}{}%
+ {\@latex@warning@no@line
+ {You have requested,\on@line,
+ version\MessageBreak
+ `#3' of \@cls@pkg\space \@currname,\MessageBreak
+ but only version\MessageBreak
+ `\csname ver@\@currname.\@currext\endcsname'\MessageBreak
+ is available}}%
+ \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}%
+ \@popfilename
+ \@reset@ptions}
+\let\@currpkg@reqd\@empty
+\@onlypreamble\@onefilewithoptions
+\let\@unprocessedoptions\@undefined
+\def\@missing@onefilewithoptions#1{%
+ \@missingfileerror{\@currpath\@currname}\@currext
+ \global\let\@currpath\@missingfile@area
+ \global\let\@currname\@missingfile@base
+ \global\let\@currext\@missingfile@ext}
+\def\load@onefile@withoptions#1{%
+ \let\CurrentOption\@empty
+ \@reset@ptions
+ \def\reserved@a{%
+ \@pass@ptions\@currext{#1}{\@currname}%
+ \expandafter\let
+ \csname opt@\@currpkg@reqd\expandafter\endcsname
+ \csname opt@\@currname.\@currext\endcsname
+ \global\expandafter
+ \let\csname ver@\@currname.\@currext\endcsname\@empty
+ \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
+ \ifx\@currext\@pkgextension
+ \UseHook{package/before}%
+ \UseHook{package/before/\@currname}%
+ \else
+ \ifx\@currext\@clsextension
+ \UseHook{class/before}%
+ \UseHook{class/before/\@currname}%
+ \fi
\fi
- }%
- \def\parseunicodedataV#1;#2\relax{%
- \loop
- \unless\ifnum\count0>"#1 %
- \catcode\count0=11 %
- \advance\count0 by 1 %
- \repeat
- }%
- \def\storedpar{\par}%
- \chardef\unicoderead=\numexpr\count16 + 1\relax
- \openin\unicoderead=UnicodeData.txt %
- \loop\unless\ifeof\unicoderead %
- \read\unicoderead to \unicodedataline
- \unless\ifx\unicodedataline\storedpar
- \expandafter\parseunicodedataI\unicodedataline\relax
+ \InputIfFileExists{\@currpath\@currpkg@reqd}{}%
+ {\@latex@error
+ {The \@cls@pkg\space\@currpkg@reqd\space failed to load}\@ehd}%
+ \expandafter\let\csname unprocessedoptions-\@currname.\@currext\endcsname
+ \@@unprocessedoptions
+ \csname\@currname.\@currext-h@@k\endcsname
+ \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
+ \@undefined
+ \ifx\@unprocessedoptions\relax
+ \let\@unprocessedoptions\@undefined
+ \else
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
\fi
- \repeat
- \closein\unicoderead
- \@firstofone{%
- \catcode64=12 %
- \savecatcodetable\catcodetable@latex
- \catcode64=11 %
- \savecatcodetable\catcodetable@atletter
- }
-\endgroup
-\ifx\e@alloc@luafunction@count\@undefined
- \countdef\e@alloc@luafunction@count=260
- \e@alloc@luafunction@count=\z@
-\fi
-\def\newluafunction{%
- \e@alloc\luafunction\e@alloc@chardef
- \e@alloc@luafunction@count\m@ne\e@alloc@top
+ \expandafter\let
+ \csname unprocessedoptions-\@currname.\@currext\endcsname
+ \@undefined
+ \ifx\@currext\@pkgextension
+ \UseHook{package/after/\@currname}%
+ \UseHook{package/after}%
+ \else
+ \ifx\@currext\@clsextension
+ \UseHook{class/after/\@currname}%
+ \UseHook{class/after}%
+ \fi
+ \fi}%
+ \@ifl@aded\@currext\@currname{}{\reserved@a}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@onefilewithoptions}{Hooks and unused options issue}%
+
+\def\load@onefilewithoptions#1[#2][#3]#4{%
+ \@pushfilename
+ \xdef\@currname{#1}%
+ \global\let\@currext#4%
+ \let\CurrentOption\@empty
+ \@reset@ptions
+ \makeatletter
+ \def\reserved@a{%
+ \@ifl@aded\@currext{#1}%
+ {\@if@ptions\@currext{#1}{#2}{}%
+ {\@latex@error
+ {Option clash for \@cls@pkg\space #1}%
+ {The package #1 has already been loaded
+ with options:\MessageBreak
+ \space\space[\@ptionlist{#1.\@currext}]\MessageBreak
+ There has now been an attempt to load it
+ with options\MessageBreak
+ \space\space[#2]\MessageBreak
+ Adding the global options:\MessageBreak
+ \space\space
+ \@ptionlist{#1.\@currext},#2\MessageBreak
+ to your \noexpand\documentclass declaration may fix this.%
+ \MessageBreak
+ Try typing \space <return> \space to proceed.}}}%
+ {\@pass@ptions\@currext{#2}{#1}%
+ \global\expandafter
+ \let\csname ver@\@currname.\@currext\endcsname\@empty
+ \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty
+ \InputIfFileExists
+ {\@currname.\@currext}%
+ {}%
+ {\@missingfileerror\@currname\@currext}%
+ \let\@unprocessedoptions\@@unprocessedoptions
+ \csname\@currname.\@currext-h@@k\endcsname
+ \expandafter\let\csname\@currname.\@currext-h@@k\endcsname
+ \@undefined
+ \@unprocessedoptions}%
+ \@ifl@ter\@currext{#1}{#3}{}%
+ {\@latex@warning@no@line
+ {You have requested,\on@line,
+ version\MessageBreak
+ `#3' of \@cls@pkg\space #1,\MessageBreak
+ but only version\MessageBreak
+ `\csname ver@#1.\@currext\endcsname'\MessageBreak
+ is available}}%
+ \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi
+ \@popfilename
+ \@reset@ptions}%
+ \reserved@a}
+
+\let \load@onefile@withoptions \@undefined
+\let \@missing@onefilewithoptions \@undefined
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\AtBeginDocument}{Use hook system}%
+\DeclareRobustCommand\AtBeginDocument{\AddToHook{begindocument}}
+\DeclareRobustCommand\AtEndDocument {\AddToHook{enddocument}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\AtBeginDocument}{Use hook system}%
+
+\DeclareRobustCommand\AtBeginDocument{\g@addto@macro\@begindocumenthook}
+\DeclareRobustCommand\AtEndDocument{\g@addto@macro\@enddocumenthook}
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\filec@ntents}{Define \q@curr@file directly (gh/220)}%
+\def\filecontents{\@tempswatrue\@fileswtrue
+ \@ifnextchar[\filec@ntents@opt\filec@ntents
}
-\ifx\e@alloc@whatsit@count\@undefined
- \countdef\e@alloc@whatsit@count=261
- \e@alloc@whatsit@count=\z@
-\fi
-\def\newwhatsit#1{%
- \e@alloc\whatsit\e@alloc@chardef
- \e@alloc@whatsit@count\m@ne\e@alloc@top#1%
+\@namedef{filecontents*}{\@tempswafalse\@fileswtrue
+ \@ifnextchar[\filec@ntents@opt\filec@ntents
}
-\ifx\e@alloc@bytecode@count\@undefined
- \countdef\e@alloc@bytecode@count=262
- \e@alloc@bytecode@count=\z@
-\fi
-\def\newluabytecode#1{%
- \e@alloc\luabytecode\e@alloc@chardef
- \e@alloc@bytecode@count\m@ne\e@alloc@top#1%
+\def\filec@ntents@opt[#1]{%
+ \edef\@fortmp{\zap@space#1 \@empty}%
+ \@for\reserved@a:=\@fortmp\do{%
+ \ifcsname filec@ntents@\reserved@a\endcsname
+ \csname filec@ntents@\reserved@a\endcsname
+ \else
+ \@latex@error{Unknown filecontents option \reserved@a}%
+ {Valid options are force (or overwrite), nosearch, noheader}%
+ \fi}%
+ \filec@ntents
}
+\let\filec@ntents@force\@fileswfalse
+\let\filec@ntents@overwrite\@fileswfalse % alternative name
+\let\filec@ntents@noheader\@tempswafalse
+\def\filec@ntents@nosearch{%
+ \let\filec@ntents@checkdir\@currdir
+ \def\filec@ntents@where{in current directory}}
+\let\filec@ntents@checkdir\@empty
+\def\filec@ntents@where{exists on the system}
+\begingroup%
+\@tempcnta=1
+\loop
+ \catcode\@tempcnta=12 %
+ \advance\@tempcnta\@ne %
+\ifnum\@tempcnta<32 %
+\repeat %
+\catcode`\*=11 %
+\catcode`\^^M\active%
+\catcode`\^^L\active\let^^L\relax%
+\catcode`\^^I\active%
+\gdef\filec@ntents#1{%
+ \set@curr@file{\filec@ntents@checkdir#1}%
+ \edef\q@curr@file{"\@curr@file"}%
+ \chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
+ \openin\@inputcheck\q@curr@file \space %
+ \ifeof\@inputcheck%
+ \@latex@warning@no@line%
+ {Writing file `\@currdir\@curr@file'}%
+ \ch@ck7\reserved@c\write\relax%
+ \immediate\openout\reserved@c\q@curr@file\relax%
+ \else%
+ \if@filesw%
+ \@latex@warning@no@line%
+ {File `\@curr@file' already \filec@ntents@where.\MessageBreak%
+ Not generating it from this source}%
+ \let\write\@gobbletwo%
+ \let\closeout\@gobble%
+ \else%
+ \edef\reserved@a{#1}%
+ \edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
+ \edef\reserved@b{\detokenize\expandafter{\jobname}}%
+ \ifx\reserved@a\reserved@b%
+ \@fileswtrue%
+ \else%
+ \edef\reserved@b{\reserved@b\detokenize{.tex}}%
+ \ifx\reserved@a\reserved@b
+ \@fileswtrue%
+ \fi%
+ \fi%
+ \ch@ck7\reserved@c\write\relax%
+ \if@filesw% % Foul ... trying to overwrite \jobname!
+ \@latex@error{Trying to overwrite `\jobname.tex'}{You can't %
+ write to the file you are reading from!\MessageBreak%
+ Data is written to screen instead.}%
+ \else%
+ \@latex@warning@no@line%
+ {Writing or overwriting file `\@currdir\@curr@file'}%
+ \immediate\openout\reserved@c\q@curr@file\relax%
+ \fi%
+ \fi%
+ \fi%
+ \closein\@inputcheck%
+ \if@tempswa%
+ \immediate\write\reserved@c{%
+ \@percentchar\@percentchar\space%
+ \expandafter\@gobble\string\LaTeX2e file `\@curr@file'^^J%
+ \@percentchar\@percentchar\space generated by the %
+ `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
+ \@percentchar\@percentchar\space from source `\jobname' on %
+ \number\year/\two@digits\month/\two@digits\day.^^J%
+ \@percentchar\@percentchar}%
+ \fi%
+ \let\do\@makeother\dospecials%
+ \count@ 128\relax%
+ \loop%
+ \catcode\count@ 11\relax%
+ \advance\count@ \@ne%
+ \ifnum\count@<\@cclvi%
+ \repeat%
+ \edef\E{\@backslashchar end\string{\@currenvir\string}}%
+ \edef\reserved@b{%
+ \def\noexpand\reserved@b%
+ ####1\E####2\E####3\relax}%
+ \reserved@b{%
+ \ifx\relax##3\relax%
+ \immediate\write\reserved@c{##1}%
+ \else%
+ \edef^^M{\noexpand\end{\@currenvir}}%
+ \ifx\relax##1\relax%
+ \else%
+ \@latex@warning{Writing text `##1' before %
+ \string\end{\@currenvir}\MessageBreak as last line of \@curr@file}%
+ \immediate\write\reserved@c{##1}%
+ \fi%
+ \ifx\relax##2\relax%
+ \else%
+ \@latex@warning{%
+ Ignoring text `##2' after \string\end{\@currenvir}}%
+ \fi%
+ \fi%
+ ^^M}%
+ \catcode`\^^L\active%
+ \let\L\@undefined%
+ \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
+ \catcode`\^^I\active%
+ \let\I\@undefined%
+ \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
+ \catcode`\^^M\active%
+ \edef^^M##1^^M{%
+ \noexpand\reserved@b##1\E\E\relax}}%
+\endgroup%
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\filec@ntents}{Spaces in file names + optional arg}%
+\def\filecontents{\@tempswatrue\@fileswtrue
+ \@ifnextchar[\filec@ntents@opt\filec@ntents
+}
+\@namedef{filecontents*}{\@tempswafalse\@fileswtrue
+ \@ifnextchar[\filec@ntents@opt\filec@ntents
+}
+\def\filec@ntents@opt[#1]{%
+ \edef\@fortmp{\zap@space#1 \@empty}%
+ \@for\reserved@a:=\@fortmp\do{%
+ \ifcsname filec@ntents@\reserved@a\endcsname
+ \csname filec@ntents@\reserved@a\endcsname
+ \else
+ \@latex@error{Unknown filecontents option \reserved@a}%
+ {Valid options are force (or overwrite), nosearch, noheader}%
+ \fi}%
+ \filec@ntents
+}
+\let\filec@ntents@force\@fileswfalse
+\let\filec@ntents@overwrite\@fileswfalse % alternative name
+\let\filec@ntents@noheader\@tempswafalse
+\def\filec@ntents@nosearch{%
+ \let\filec@ntents@checkdir\@currdir
+ \def\filec@ntents@where{in current directory}}
+\let\filec@ntents@checkdir\@empty
+\def\filec@ntents@where{exists on the system}
+\begingroup%
+\@tempcnta=1
+\loop
+ \catcode\@tempcnta=12 %
+ \advance\@tempcnta\@ne %
+\ifnum\@tempcnta<32 %
+\repeat %
+\catcode`\*=11 %
+\catcode`\^^M\active%
+\catcode`\^^L\active\let^^L\relax%
+\catcode`\^^I\active%
+\gdef\filec@ntents#1{%
+ \set@curr@file{\filec@ntents@checkdir#1}%
+ \edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}%
+ \chardef\reserved@c\ifx\directlua\@undefined 15 \else 127 \fi%
+ \openin\@inputcheck\q@curr@file \space %
+ \ifeof\@inputcheck%
+ \@latex@warning@no@line%
+ {Writing file `\@currdir\@curr@file'}%
+ \ch@ck7\reserved@c\write\relax%
+ \immediate\openout\reserved@c\q@curr@file\relax%
+ \else%
+ \if@filesw%
+ \@latex@warning@no@line%
+ {File `\@curr@file' already \filec@ntents@where.\MessageBreak%
+ Not generating it from this source}%
+ \let\write\@gobbletwo%
+ \let\closeout\@gobble%
+ \else%
+ \edef\reserved@a{#1}%
+ \edef\reserved@a{\detokenize\expandafter{\reserved@a}}%
+ \edef\reserved@b{\detokenize\expandafter{\jobname}}%
+ \ifx\reserved@a\reserved@b%
+ \@fileswtrue%
+ \else%
+ \edef\reserved@b{\reserved@b\detokenize{.tex}}%
+ \ifx\reserved@a\reserved@b
+ \@fileswtrue%
+ \fi%
+ \fi%
+ \ch@ck7\reserved@c\write\relax%
+ \if@filesw% % Foul ... trying to overwrite \jobname!
+ \@latex@error{Trying to overwrite `\jobname.tex'}{You can't %
+ write to the file you are reading from!\MessageBreak%
+ Data is written to screen instead.}%
+ \else%
+ \@latex@warning@no@line%
+ {Writing or overwriting file `\@currdir\@curr@file'}%
+ \immediate\openout\reserved@c\q@curr@file\relax%
+ \fi%
+ \fi%
+ \fi%
+ \closein\@inputcheck%
+ \if@tempswa%
+ \immediate\write\reserved@c{%
+ \@percentchar\@percentchar\space%
+ \expandafter\@gobble\string\LaTeX2e file `\@curr@file'^^J%
+ \@percentchar\@percentchar\space generated by the %
+ `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
+ \@percentchar\@percentchar\space from source `\jobname' on %
+ \number\year/\two@digits\month/\two@digits\day.^^J%
+ \@percentchar\@percentchar}%
+ \fi%
+ \let\do\@makeother\dospecials%
+ \count@ 128\relax%
+ \loop%
+ \catcode\count@ 11\relax%
+ \advance\count@ \@ne%
+ \ifnum\count@<\@cclvi%
+ \repeat%
+ \edef\E{\@backslashchar end\string{\@currenvir\string}}%
+ \edef\reserved@b{%
+ \def\noexpand\reserved@b%
+ ####1\E####2\E####3\relax}%
+ \reserved@b{%
+ \ifx\relax##3\relax%
+ \immediate\write\reserved@c{##1}%
+ \else%
+ \edef^^M{\noexpand\end{\@currenvir}}%
+ \ifx\relax##1\relax%
+ \else%
+ \@latex@warning{Writing text `##1' before %
+ \string\end{\@currenvir}\MessageBreak as last line of \@curr@file}%
+ \immediate\write\reserved@c{##1}%
+ \fi%
+ \ifx\relax##2\relax%
+ \else%
+ \@latex@warning{%
+ Ignoring text `##2' after \string\end{\@currenvir}}%
+ \fi%
+ \fi%
+ ^^M}%
+ \catcode`\^^L\active%
+ \let\L\@undefined%
+ \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
+ \catcode`\^^I\active%
+ \let\I\@undefined%
+ \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
+ \catcode`\^^M\active%
+ \edef^^M##1^^M{%
+ \noexpand\reserved@b##1\E\E\relax}}%
+\endgroup%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\filec@ntents}{Spaces in file names + optional arg}%
-\ifx\e@alloc@luachunk@count\@undefined
- \countdef\e@alloc@luachunk@count=263
- \e@alloc@luachunk@count=\z@
-\fi
-\def\newluachunkname#1{%
- \e@alloc\luachunk\e@alloc@chardef
- \e@alloc@luachunk@count\m@ne\e@alloc@top#1%
- {\escapechar\m@ne
- \directlua{lua.name[\the\allocationnumber]="\string#1"}}%
+\let\filec@ntents@opt \@undefined
+\let\filec@ntents@force \@undefined
+\let\filec@ntents@overwrite \@undefined
+\let\filec@ntents@noheader \@undefined
+\let\filec@ntents@nosearch \@undefined
+\let\filec@ntents@checkdir \@undefined
+\let\filec@ntents@where \@undefined
+
+\begingroup%
+\@tempcnta=1
+\loop
+ \catcode\@tempcnta=12 %
+ \advance\@tempcnta\@ne %
+\ifnum\@tempcnta<32 %
+\repeat %
+\catcode`\*=11 %
+\catcode`\^^M\active%
+\catcode`\^^L\active\let^^L\relax%
+\catcode`\^^I\active%
+
+\gdef\filec@ntents#1{%
+ \openin\@inputcheck#1 %
+ \ifeof\@inputcheck%
+ \@latex@warning@no@line%
+ {Writing file `\@currdir#1'}%
+ \chardef\reserved@c15 %
+ \ch@ck7\reserved@c\write%
+ \immediate\openout\reserved@c#1\relax%
+ \else%
+ \closein\@inputcheck%
+ \@latex@warning@no@line%
+ {File `#1' already exists on the system.\MessageBreak%
+ Not generating it from this source}%
+ \let\write\@gobbletwo%
+ \let\closeout\@gobble%
+ \fi%
+ \if@tempswa%
+ \immediate\write\reserved@c{%
+ \@percentchar\@percentchar\space%
+ \expandafter\@gobble\string\LaTeX2e file `#1'^^J%
+ \@percentchar\@percentchar\space generated by the %
+ `\@currenvir' \expandafter\@gobblefour\string\newenvironment^^J%
+ \@percentchar\@percentchar\space from source `\jobname' on %
+ \number\year/\two@digits\month/\two@digits\day.^^J%
+ \@percentchar\@percentchar}%
+ \fi%
+ \let\do\@makeother\dospecials%
+ \count@ 128\relax%
+ \loop%
+ \catcode\count@ 11\relax%
+ \advance\count@ \@ne%
+ \ifnum\count@<\@cclvi%
+ \repeat%
+ \edef\E{\@backslashchar end\string{\@currenvir\string}}%
+ \edef\reserved@b{%
+ \def\noexpand\reserved@b%
+ ####1\E####2\E####3\relax}%
+ \reserved@b{%
+ \ifx\relax##3\relax%
+ \immediate\write\reserved@c{##1}%
+ \else%
+ \edef^^M{\noexpand\end{\@currenvir}}%
+ \ifx\relax##1\relax%
+ \else%
+ \@latex@warning{Writing text `##1' before %
+ \string\end{\@currenvir}\MessageBreak as last line of #1}%
+ \immediate\write\reserved@c{##1}%
+ \fi%
+ \ifx\relax##2\relax%
+ \else%
+ \@latex@warning{%
+ Ignoring text `##2' after \string\end{\@currenvir}}%
+ \fi%
+ \fi%
+ ^^M}%
+
+ \catcode`\^^L\active%
+ \let\L\@undefined%
+ \def^^L{\expandafter\ifx\csname L\endcsname\relax\fi ^^J^^J}%
+ \catcode`\^^I\active%
+ \let\I\@undefined%
+ \def^^I{\expandafter\ifx\csname I\endcsname\relax\fi\space}%
+ \catcode`\^^M\active%
+ \edef^^M##1^^M{%
+ \noexpand\reserved@b##1\E\E\relax}}%
+\endgroup%
+\EndIncludeInRelease
+%%
+%% File: ltfilehook.dtx (C) Copyright 2020,2021 Frank Mittelbach,
+%% Phelype Oleinik & LaTeX Team
+%%% From File: ltfilehook.dtx
+\providecommand\ltfilehookversion{v1.0e}
+\providecommand\ltfilehookdate{2021/01/07}
+\IncludeInRelease{2020/10/01}%
+ {\CurrentFile}{Hook management file}%
+\ExplSyntaxOn
+\tl_new:N \CurrentFile
+\tl_new:N \CurrentFilePath
+\tl_new:N \CurrentFileUsed
+\tl_new:N \CurrentFilePathUsed
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\CurrentFile}{Hook management file}%
+
+\let \CurrentFile \@undefined
+\let \CurrentFilePath \@undefined
+\let \CurrentFileUsed \@undefined
+\let \CurrentFilePathUsed \@undefined
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\__filehook_file_parse_full_name:nN}{File helpers}%
+\ExplSyntaxOn
+\cs_new:Npn \__filehook_file_parse_full_name:nN #1
+ {
+ \exp_args:Nf \file_parse_full_name_apply:nN
+ {
+ \exp_args:Nf \__filehook_full_name:nn
+ { \file_full_name:n {#1} } {#1}
+ }
+ }
+\cs_new:Npn \__filehook_full_name:nn #1 #2
+ {
+ \tl_if_empty:nTF {#1}
+ { \tl_trim_spaces:n {#2} }
+ { \tl_trim_spaces:n {#1} }
+ }
+\cs_new:Npn \__filehook_if_no_extension:nTF #1
+ {
+ \exp_args:Ne \tl_if_empty:nTF
+ { \file_parse_full_name_apply:nN {#1} \use_iii:nnn }
+ }
+\cs_new_protected:Npn \__filehook_drop_extension:N #1
+ {
+ \tl_gset:Nx #1
+ {
+ \exp_args:NV \__filehook_file_parse_full_name:nN #1
+ \__filehook_drop_extension_aux:nnn
+ }
+ }
+\cs_new:Npn \__filehook_drop_extension_aux:nnn #1 #2 #3
+ { \tl_if_empty:nF {#1} { #1 / } #2 }
+\tl_new:N \l__filehook_internal_tl
+\seq_new:N \g__filehook_input_file_seq
+\cs_new_protected:Npn \__filehook_file_push:
+ {
+ \seq_gpush:Nx \g__filehook_input_file_seq
+ {
+ { \CurrentFilePathUsed } { \CurrentFileUsed }
+ { \CurrentFilePath } { \CurrentFile }
+ }
+ }
+\cs_new_protected:Npn \__filehook_file_pop:
+ {
+ \seq_gpop:NNTF \g__filehook_input_file_seq \l__filehook_internal_tl
+ { \exp_after:wN \__filehook_file_pop_assign:nnnn \l__filehook_internal_tl }
+ {
+ \msg_error:nnn { hooks } { should-not-happen }
+ { Tried~to~pop~from~an~empty~file~name~stack. }
+ }
+ }
+\cs_new_protected:Npn \__filehook_file_pop_assign:nnnn #1 #2 #3 #4
+ {
+ \tl_set:Nn \CurrentFilePathUsed {#1}
+ \tl_set:Nn \CurrentFileUsed {#2}
+ \tl_set:Nn \CurrentFilePath {#3}
+ \tl_set:Nn \CurrentFile {#4}
+ }
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\file_parse_full_name_apply:nN}{Roll forward help}%
+
+\ExplSyntaxOn
+\cs_if_exist:NF\file_parse_full_name_apply:nN
+{
+\cs_new:Npn \file_parse_full_name_apply:nN #1
+ {
+ \exp_args:Ne \__file_parse_full_name_auxi:nN
+ { \__kernel_file_name_sanitize:n {#1} }
+ }
+\cs_new:Npn \__file_parse_full_name_auxi:nN #1
+ {
+ \__file_parse_full_name_area:nw { } #1
+ / \s__file_stop
+ }
+\cs_new:Npn \__file_parse_full_name_area:nw #1 #2 / #3 \s__file_stop
+ {
+ \tl_if_empty:nTF {#3}
+ { \__file_parse_full_name_base:nw { } #2 . \s__file_stop {#1} }
+ { \__file_parse_full_name_area:nw { #1 / #2 } #3 \s__file_stop }
+ }
+\cs_new:Npn \__file_parse_full_name_base:nw #1 #2 . #3 \s__file_stop
+ {
+ \tl_if_empty:nTF {#3}
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \tl_if_empty:nTF {#2}
+ { \__file_parse_full_name_tidy:nnnN { } { } }
+ { \__file_parse_full_name_tidy:nnnN { .#2 } { } }
+ }
+ { \__file_parse_full_name_tidy:nnnN {#1} { .#2 } }
+ }
+ { \__file_parse_full_name_base:nw { #1 . #2 } #3 \s__file_stop }
+ }
+\cs_new:Npn \__file_parse_full_name_tidy:nnnN #1 #2 #3 #4
+ {
+ \exp_args:Nee #4
+ {
+ \str_if_eq:nnF {#3} { / } { \use_none:n }
+ #3 \prg_do_nothing:
+ }
+ { \use_none:n #1 \prg_do_nothing: }
+ {#2}
+ }
}
-\def\now@and@everyjob#1{%
- \everyjob\expandafter{\the\everyjob
- #1%
- }%
- #1%
+\ExplSyntaxOff
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\InputIfFileExists}{Hook management (files)}%
+\let\InputIfFileExists\@undefined
+\DeclareRobustCommand \InputIfFileExists[2]{%
+ \IfFileExists{#1}%
+ {%
+ \@expl@@@filehook@file@push@@
+ \@filehook@set@CurrentFile
+ \expandafter\@swaptwoargs\expandafter
+ {\expandafter\@input@file@exists@with@hooks
+ \expandafter{\@filef@und}}%
+ {#2}%
+ \@expl@@@filehook@file@pop@@
+ }%
}
+\def\@input@file@exists@with@hooks#1{%
+ \edef\reserved@a{%
+ \@expl@@@filehook@file@pop@assign@@nnnn
+ {\CurrentFilePathUsed}%
+ {\CurrentFileUsed}%
+ {\CurrentFilePath}%
+ {\CurrentFile}}%
+ \expandafter\@swaptwoargs\expandafter{\reserved@a}%
+ {\edef\reserved@a{\unqu@tefilef@und#1\@nil}%
+ \@addtofilelist{\string@makeletter\reserved@a}%
+ \UseHook{file/before}%
+ \UseHook{file/before/\CurrentFile}%
+ \@@input #1% <- trailing space comes from \@filef@und
+ }%
+ \UseHook{file/after/\CurrentFile}%
+ \UseHook{file/after}}
+\def\unqu@tefilef@und"#1" \@nil{#1}
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\InputIfFileExists}{Hook management (files)}%
+
+\DeclareRobustCommand \InputIfFileExists[2]{%
+ \IfFileExists{#1}%
+ {%
+ \expandafter\@swaptwoargs\expandafter
+ {\@filef@und}{#2\@addtofilelist{#1}\@@input}}}
+\let\@input@file@exists@with@hooks\@undefined
+\let\unqu@tefilef@und\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\InputIfFileExists}{Hook management (files)}%
+\long\def \InputIfFileExists#1#2{%
+ \IfFileExists{#1}%
+ {#2\@addtofilelist{#1}\@@input \@filef@und}}
+\let\@input@file@exists@with@hooks\@undefined
+\let\unqu@tefilef@und\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\__filehook_subst_add:nn}{Declaring file substitution}%
+\ExplSyntaxOn
+\cs_new_protected:Npn \__filehook_subst_add:nn #1 #2
+ {
+ \group_begin:
+ \cs_set:cpx { } { \exp_not:o { \cs:w\cs_end: } }
+ \int_set:Nn \tex_escapechar:D { -1 }
+ \cs_gset:cpx
+ {
+ @file-subst@
+ \__filehook_subst_file_normalize:Nn \use_ii_iii:nnn {#1}
+ }
+ { \__filehook_subst_file_normalize:Nn \__filehook_file_name_compose:nnn {#2} }
+ \group_end:
+ }
+\cs_new_protected:Npn \__filehook_subst_remove:n #1
+ {
+ \group_begin:
+ \cs_set:cpx { } { \exp_not:o { \cs:w\cs_end: } }
+ \int_set:Nn \tex_escapechar:D { -1 }
+ \cs_undefine:c
+ {
+ @file-subst@
+ \__filehook_subst_file_normalize:Nn \use_ii_iii:nnn {#1}
+ }
+ \group_end:
+ }
+\cs_new:Npn \__filehook_subst_file_normalize:Nn #1 #2
+ {
+ \exp_after:wN \__filehook_subst_empty_name_chk:NN
+ \cs:w \exp_after:wN \cs_end:
+ \cs:w \__filehook_file_parse_full_name:nN {#2} #1 \cs_end:
+ }
+\cs_new:Npn \__filehook_subst_empty_name_chk:NN #1 #2
+ { \if_meaning:w #1 #2 .tex \else: \token_to_str:N #2 \fi: }
+\cs_gset:Npn \use_ii_iii:nnn #1 #2 #3 {#2 #3}
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\declare@file@substitution}{File substitution}%
+\ExplSyntaxOn
+\cs_new_eq:NN \declare@file@substitution \__filehook_subst_add:nn
+\cs_new_eq:NN \undeclare@file@substitution \__filehook_subst_remove:n
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\declare@file@substitution}{File substitution}%
+
+\let \declare@file@substitution \@gobbletwo
+\let \undeclare@file@substitution \@gobble
+
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\set@curr@file}{Setting current file name}%
+\def\set@curr@file#1{%
\begingroup
- \attributedef\attributezero=0 %
- \chardef \charzero =0 %
- \countdef \CountZero =0 %
- \dimendef \dimenzero =0 %
- \mathchardef \mathcharzero =0 %
- \muskipdef \muskipzero =0 %
- \skipdef \skipzero =0 %
- \toksdef \tokszero =0 %
- \directlua{require("ltluatex")}
+ \escapechar\m@ne
+ \expandafter\def\csname\expandafter\endcsname
+ \expandafter{\csname\endcsname}%
+ \@expl@@@filehook@if@no@extension@@nTF{#1}%
+ {\@tempswatrue}{\@tempswafalse}%
+ \@kernel@make@file@csname\@curr@file
+ \@expl@@@filehook@resolve@file@subst@@w {#1}%
+ \@expl@@@filehook@if@file@replaced@@TF
+ {\@kernel@make@file@csname\@curr@file@reqd
+ \@expl@@@filehook@normalize@file@name@@w{#1}%
+ \if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file@reqd \fi}%
+ {\if@tempswa \@expl@@@filehook@drop@extension@@N\@curr@file \fi
+ \global\let\@curr@file@reqd\@curr@file}%
+ \@expl@@@filehook@clear@replacement@flag@@
+ \endgroup}
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\set@curr@file}{Setting current file name}%
+\def\set@curr@file#1{%
+ \begingroup
+ \escapechar\m@ne
+ \xdef\@curr@file{%
+ \expandafter\expandafter\expandafter\unquote@name
+ \expandafter\expandafter\expandafter{%
+ \expandafter\string
+ \csname\@firstofone#1\@empty\endcsname}}%
\endgroup
+}
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}
- {\newluafunction}{LuaTeX}%
-\let\e@alloc@attribute@count\@undefined
-\let\newattribute\@undefined
-\let\setattribute\@undefined
-\let\unsetattribute\@undefined
-\let\e@alloc@ccodetable@count\@undefined
-\let\newcatcodetable\@undefined
-\let\catcodetable@initex\@undefined
-\let\catcodetable@string\@undefined
-\let\catcodetable@latex\@undefined
-\let\catcodetable@atletter\@undefined
-\let\e@alloc@luafunction@count\@undefined
-\let\newluafunction\@undefined
-\let\e@alloc@luafunction@count\@undefined
-\let\newwhatsit\@undefined
-\let\e@alloc@whatsit@count\@undefined
-\let\newluabytecode\@undefined
-\let\e@alloc@bytecode@count\@undefined
-\let\newluachunkname\@undefined
-\let\e@alloc@luachunk@count\@undefined
-\directlua{luatexbase.uninstall()}
+\IncludeInRelease{0000/00/00}%
+ {\set@curr@file}{Setting current file name}%
+\let\set@curr@file\@undefined
\EndIncludeInRelease
-\IncludeInRelease{2017/01/01}%
- {\fontencoding}{TU in everyjob}%
-\fontencoding{TU}\let\encodingdefault\f@encoding
-\ifx\directlua\@undefined\else
- \directlua{%
- if xpcall(function ()%
- require('luaotfload-main')%
- end,texio.write_nl) then %
- local _void = luaotfload.main ()%
- else %
- texio.write_nl('Error in luaotfload: reverting to OT1')%
- tex.print('\string\\def\string\\encodingdefault{OT1}')%
- end %
- }%
- \let\f@encoding\encodingdefault
- \expandafter\let\csname ver@luaotfload.sty\endcsname\fmtversion
-\fi
+\IncludeInRelease{2020/10/01}%
+ {\@kernel@make@file@csname}{Make file csname}%
+\def\@kernel@make@file@csname#1#2#3{%
+ \xdef#1{\expandafter\@set@curr@file@aux
+ \csname\expandafter#2\@firstofone#3\@nil\endcsname}}
+\def\@set@curr@file@aux#1{%
+ \expandafter\ifx\csname\endcsname#1%
+ .tex\else\string#1\fi}
+\def\@filehook@set@CurrentFile{%
+ \@expl@@@filehook@set@curr@file@@nNN{\@curr@file}%
+ \CurrentFileUsed\CurrentFilePathUsed
+ \ifx\@curr@file@reqd\@curr@file
+ \let\CurrentFile\CurrentFileUsed
+ \let\CurrentFilePath\CurrentFilePathUsed
+ \else
+ \@expl@@@filehook@set@curr@file@@nNN{\@curr@file@reqd}%
+ \CurrentFile\CurrentFilePath
+ \fi}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {@@_set_curr_file:nNN}{Set curr file}%
+\ExplSyntaxOn
+\cs_new_protected:Npn \__filehook_set_curr_file:nNN #1
+ {
+ \exp_args:Nf \__filehook_file_parse_full_name:nN {#1}
+ \__filehook_set_curr_file_assign:nnnNN
+ }
+\cs_new_protected:Npn \__filehook_set_curr_file_assign:nnnNN #1 #2 #3 #4 #5
+ {
+ \str_set:Nn #5 {#1}
+ \str_set:Nn #4 {#2#3}
+ }
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\__filehook_resolve_file_subst:w}{Replace files detect loops}%
+\ExplSyntaxOn
+\cs_new:Npn \__filehook_resolve_file_subst:w #1 \@nil
+ { \__filehook_file_parse_full_name:nN {#1} \__filehook_file_subst_begin:nnn }
+\cs_new:Npn \__filehook_normalize_file_name:w #1 \@nil
+ { \__filehook_file_parse_full_name:nN {#1} \__filehook_file_name_compose:nnn }
+\cs_new:Npn \__filehook_file_name_compose:nnn #1 #2 #3
+ { \tl_if_empty:nF {#1} { #1 / } #2#3 }
+\flag_new:n { __filehook_file_replaced }
+\cs_new:Npn \__filehook_if_file_replaced:TF #1 #2
+ { \flag_if_raised:nTF { __filehook_file_replaced } {#1} {#2} }
+\cs_new_protected:Npn \__filehook_clear_replacement_flag:
+ { \flag_clear:n { __filehook_file_replaced } }
+\cs_new:Npn \__filehook_file_subst_begin:nnn #1 #2 #3
+ {
+ \__filehook_file_subst_tortoise_hare:nn { #2#3 } { #2#3 }
+ { \__filehook_file_name_compose:nnn {#1} {#2} {#3} }
+ }
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\__filehook_file_subst_tortoise_hare:nn}{Tortoise and Hare}%
+\ExplSyntaxOn
+\cs_new:Npn \__filehook_file_subst_tortoise_hare:nn #1 #2 #3
+ {
+ \cs_if_exist:cTF { @file-subst@ #2 }
+ {
+ \flag_if_raised:nF { __filehook_file_replaced }
+ { \flag_raise:n { __filehook_file_replaced } }
+ \cs_if_exist:cTF { @file-subst@ \use:c { @file-subst@ #2 } }
+ {
+ \__filehook_file_subst_loop:cc
+ { @file-subst@ #1 }
+ { @file-subst@ \use:c { @file-subst@ #2 } }
+ }
+ { \use:c { @file-subst@ #2 } }
+ }
+ { #3 }
+ }
+\cs_new:Npn \__filehook_file_subst_loop:NN #1 #2
+ {
+ \token_if_eq_meaning:NNTF #1 #2
+ {
+ .tex
+ \__filehook_file_subst_cycle_error:cN { @file-subst@ #1 } #1
+ }
+ { \__filehook_file_subst_tortoise_hare:nn {#1} {#2} {#2} }
+ }
+\cs_generate_variant:Nn \__filehook_file_subst_loop:NN { cc }
+\cs_new:Npn \__filehook_file_subst_cycle_error:NN #1 #2
+ {
+ \__kernel_msg_expandable_error:nnff { kernel } { file-cycle }
+ {#1} { \use:c { @file-subst@ #1 } }
+ \token_if_eq_meaning:NNF #1 #2
+ { \__filehook_file_subst_cycle_error:cN { @file-subst@ #1 } #2 }
+ }
+\cs_generate_variant:Nn \__filehook_file_subst_cycle_error:NN { c }
+\__kernel_msg_new:nnn { kernel } { file-cycle }
+ { File~loop!~#1~replaced~by~#2... }
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\disable@package@load}{Disable packages}%
+\def\disable@package@load#1#2{%
+ \global\@namedef{@pkg-disable@#1.\@pkgextension}{#2}}
+\def\@disable@packageload@do#1#2{%
+ \@ifundefined{@pkg-disable@#1}{#2}%
+ {\@nameuse{@pkg-disable@#1}}}
+\def\reenable@package@load#1{%
+ \global\expandafter\let
+ \csname @pkg-disable@#1.\@pkgextension \endcsname \@undefined}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\fontencoding}{TU in everyjob}%
-\fontencoding{OT1}\let\encodingdefault\f@encoding
+ {\disable@package@load}{Disable packages}%
+
+\let\disable@package@load \@undefined
+\let\@disable@packageload@do\@undefined
+\let\reenable@package@load \@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\@expl@@@filehook@if@no@extension@@nTF}{2e tmp interfaces}%
+\ExplSyntaxOn
+\cs_new_eq:NN \@expl@@@filehook@if@no@extension@@nTF
+ \__filehook_if_no_extension:nTF
+\cs_new_eq:NN \@expl@@@filehook@set@curr@file@@nNN
+ \__filehook_set_curr_file:nNN
+\cs_new_eq:NN \@expl@@@filehook@resolve@file@subst@@w
+ \__filehook_resolve_file_subst:w
+\cs_new_eq:NN \@expl@@@filehook@normalize@file@name@@w
+ \__filehook_normalize_file_name:w
+\cs_new_eq:NN \@expl@@@filehook@if@file@replaced@@TF
+ \__filehook_if_file_replaced:TF
+\cs_new_eq:NN \@expl@@@filehook@clear@replacement@flag@@
+ \__filehook_clear_replacement_flag:
+\cs_new_eq:NN \@expl@@@filehook@drop@extension@@N
+ \__filehook_drop_extension:N
+\cs_new_eq:NN \@expl@@@filehook@file@push@@
+ \__filehook_file_push:
+\cs_new_eq:NN \@expl@@@filehook@file@pop@@
+ \__filehook_file_pop:
+\cs_new_eq:NN \@expl@@@filehook@file@pop@assign@@nnnn
+ \__filehook_file_pop_assign:nnnn
+\ExplSyntaxOff
\EndIncludeInRelease
+
+\IncludeInRelease{0000/00/00}%
+ {\@expl@@@filehook@if@no@extension@@nTF}{2e tmp interfaces}%
+\let\@expl@@@filehook@file@pop@@\relax
+\EndIncludeInRelease
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% File: ltshipout.dtx (C) Copyright 2020,2021 Frank Mittelbach, LaTeX Team
+%%
+%%% From File: ltshipout.dtx
+\providecommand\ltshipoutversion{v1.0d}
+\providecommand\ltshipoutdate{2020/12/06}
+\IncludeInRelease{2020/10/01}%
+ {\shipout}{Hook management (shipout)}%
+\ExplSyntaxOn
+\bool_new:N \g__shipout_debug_bool
+\cs_new_eq:NN \__shipout_debug:n \use_none:n
+\cs_new_protected:Npn \shipout_debug_on:
+ {
+ \bool_gset_true:N \g__shipout_debug_bool
+ \__shipout_debug_gset:
+ }
+\cs_new_protected:Npn \shipout_debug_off:
+ {
+ \bool_gset_false:N \g__shipout_debug_bool
+ \__shipout_debug_gset:
+ }
+\cs_new_protected:Npn \__shipout_debug_gset:
+ {
+ \cs_gset_protected:Npx \__shipout_debug:n ##1
+ { \bool_if:NT \g__shipout_debug_bool {##1} }
+ }
+\box_new:N \l_shipout_box
+\cs_set_eq:NN \ShipoutBox \l_shipout_box
+\cs_set_protected:Npn \__shipout_execute: {
+ \tl_set:Nx \l__shipout_group_level_tl
+ { \int_value:w \tex_currentgrouplevel:D }
+ \tex_afterassignment:D \__shipout_execute_test_level:
+ \tex_setbox:D \l_shipout_box
+}
+\cs_gset_eq:NN \shipout \__shipout_execute:
+\tl_new:N \l__shipout_group_level_tl
+\cs_new:Npn \__shipout_execute_test_level: {
+ \int_compare:nNnT
+ \l__shipout_group_level_tl < \tex_currentgrouplevel:D
+ \tex_aftergroup:D
+ \__shipout_execute_cont:
+}
+\cs_new:Npn \__shipout_execute_cont: {
+ \box_if_empty:NTF \l_shipout_box
+ { \PackageWarning{ltshipout}{Ignoring~ void~ shipout~ box} }
+ {
+ \bool_gset_false:N \g__shipout_discard_bool
+ \cs_set_eq:NN \__shipout_saved_protect: \protect
+ \set@typeset@protect
+ \__shipout_get_box_size:N \l_shipout_box
+ \hook_use:n {shipout/before}
+ \int_gincr:N \g_shipout_totalpages_int
+ \bool_if:NTF \g__shipout_discard_bool
+ { \PackageInfo{ltshipout}{Completed~ page~ discarded}
+ \bool_gset_false:N \g__shipout_discard_bool
+ \tex_deadcycles:D \c_zero_int
+ }
+ { \box_if_empty:NTF \l_shipout_box
+ { \PackageWarning{ltshipout}{
+ Shipout~ box~ was~ voided~ by~ hook,\MessageBreak
+ ignoring~ shipout~ box }
+ }
+ {
+ \int_gincr:N \g_shipout_readonly_int
+ \__shipout_debug:n {
+ \typeout{Absolute~ page~ =~ \int_use:N \g_shipout_readonly_int
+ \space (target:~ \@abspage@last)}
+ }
+ \__shipout_get_box_size:N \l_shipout_box
+ \hook_if_empty:nF {shipout/foreground}
+ { \__shipout_add_foreground_picture:n
+ { \hook_use:n {shipout/foreground} } }
+ \bool_lazy_and:nnF
+ { \hook_if_empty_p:n {shipout/background} }
+ { \tl_if_empty_p:N \@kernel@before@shipout@background }
+ { \__shipout_add_background_picture:n
+ { \@kernel@before@shipout@background
+ \hook_use:n {shipout/background} } }
+ \__shipout_execute_firstpage_hook:
+ \int_compare:nNnT \@abspage@last = \g_shipout_readonly_int
+ { \bool_lazy_and:nnF
+ { \hook_if_empty_p:n {shipout/lastpage} }
+ { \tl_if_empty_p:N \@kernel@after@shipout@lastpage }
+ { \__shipout_debug:n { \typeout{Executing~ lastpage~ hook~
+ on~ page~ \int_use:N \g_shipout_readonly_int } }
+ \__shipout_add_foreground_box:n { \UseHook{shipout/lastpage}
+ \@kernel@after@shipout@lastpage }
+ }
+ \bool_gset_true:N \g__shipout_lastpage_handled_bool
+ }
+ \cs_set_eq:NN \protect \exp_not:N
+ \tex_shipout:D \box_use:N \l_shipout_box
+ }
+ }
+ \cs_set_eq:NN \protect \__shipout_saved_protect:
+ }
+}
+\cs_new_eq:NN \__shipout_saved_protect: \protect
+\hook_new:n{shipout/before}
+\hook_new:n{shipout/foreground}
+\hook_new:n{shipout/background}
+\hook_new:n{shipout/firstpage}
+\hook_new:n{shipout/lastpage}
+\let\@kernel@after@shipout@lastpage\@empty
+\let\@kernel@before@shipout@background\@empty
+\cs_new:Npn \__shipout_execute_firstpage_hook: {
+ \hook_if_empty:nF {shipout/firstpage}
+ { \__shipout_add_background_box:n { \UseHook{shipout/firstpage} } }
+ \cs_gset_eq:NN \__shipout_execute_firstpage_hook: \prg_do_nothing:
+ \cs_gset:Npn \__shipout_add_firstpage_material:Nn ##1 ##2 {
+ \@latex@warning{
+ First~ page~ is~ already~ shipped~ out,~ ignoring\MessageBreak
+ \string##1 }
+ }
+}
+\bool_new:N \g__shipout_lastpage_handled_bool
+\cs_new:Npn \__shipout_add_firstpage_material:Nn #1#2 {
+ \AddToHook{shipout/firstpage}{#2}
+}
+\cs_new:Npn \__shipout_get_box_size:N #1 {
+ \dim_set:Nn \l_shipout_box_ht_dim { \box_ht:N #1 }
+ \dim_set:Nn \l_shipout_box_dp_dim { \box_dp:N #1 }
+ \dim_set:Nn \l_shipout_box_wd_dim { \box_wd:N #1 }
+ \dim_set:Nn \l_shipout_box_ht_plus_dp_dim { \l_shipout_box_ht_dim +
+ \l_shipout_box_dp_dim }
+}
+\dim_new:N \l_shipout_box_ht_dim
+\dim_new:N \l_shipout_box_dp_dim
+\dim_new:N \l_shipout_box_wd_dim
+\dim_new:N \l_shipout_box_ht_plus_dp_dim
+\bool_new:N \g__shipout_discard_bool
+\box_new:N \l__shipout_tmp_box
+\tl_new:N \l__shipout_saved_badness_tl
+\cs_new:Npn \__shipout_add_background_box:n #1
+{ \__shipout_get_box_size:N \l_shipout_box
+ \box_if_vertical:NTF \l_shipout_box
+ {
+ \tl_set:Nx \l__shipout_saved_badness_tl
+ { \vfuzz=\the\vfuzz\relax
+ \vbadness=\the\vbadness\relax }
+ \vfuzz=\c_max_dim
+ \vbadness=\c_max_int
+ \vbox_set_to_ht:Nnn \l_shipout_box \l_shipout_box_ht_plus_dp_dim
+ {
+ \hbox_set:Nn \l__shipout_tmp_box
+ { \l__shipout_saved_badness_tl #1 }
+ \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
+ \skip_zero:N \baselineskip
+ \skip_zero:N \lineskip
+ \skip_zero:N \lineskiplimit
+ \box_use:N \l__shipout_tmp_box
+ \vbox_unpack:N \l_shipout_box
+ \kern \c_zero_dim
+ }
+ \box_set_ht:Nn \l_shipout_box \l_shipout_box_ht_dim
+ \box_set_dp:Nn \l_shipout_box \l_shipout_box_dp_dim
+ \l__shipout_saved_badness_tl
+ }
+ {
+ \box_if_horizontal:NT \l_shipout_box
+ {
+ \tl_set:Nx \l__shipout_saved_badness_tl
+ { \hfuzz=\the\hfuzz\relax
+ \hbadness=\the\hbadness\relax }
+ \hfuzz=\c_max_dim
+ \hbadness=\c_max_int
+ \hbox_set_to_wd:Nnn \l_shipout_box \l_shipout_box_wd_dim
+ {
+ \hbox_set:Nn \l__shipout_tmp_box
+ { \l__shipout_saved_badness_tl #1 }
+ \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_move_up:nn
+ \l_shipout_box_ht_dim
+ { \box_use:N \l__shipout_tmp_box }
+ \hbox_unpack:N \l_shipout_box
+ }
+ \l__shipout_saved_badness_tl
+ }
+ }
+}
+\cs_new:Npn \__shipout_add_foreground_box:n #1
+{
+ \box_if_vertical:NTF \l_shipout_box
+ {
+ \tl_set:Nx \l__shipout_saved_badness_tl
+ { \vfuzz=\the\vfuzz\relax
+ \vbadness=\the\vbadness\relax }
+ \vfuzz=\c_max_dim
+ \vbadness=\c_max_int
+ \vbox_set_to_ht:Nnn \l_shipout_box \l_shipout_box_ht_plus_dp_dim
+ {
+ \hbox_set:Nn \l__shipout_tmp_box
+ { \l__shipout_saved_badness_tl #1 }
+ \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
+ \skip_zero:N \baselineskip
+ \skip_zero:N \lineskip
+ \skip_zero:N \lineskiplimit
+ \vbox_unpack:N \l_shipout_box
+ \kern -\l_shipout_box_ht_plus_dp_dim
+ \box_use:N \l__shipout_tmp_box
+ \kern \l_shipout_box_ht_plus_dp_dim
+ }
+ \l__shipout_saved_badness_tl
+ \box_set_ht:Nn \l_shipout_box \l_shipout_box_ht_dim
+ \box_set_dp:Nn \l_shipout_box \l_shipout_box_dp_dim
+ }
+ {
+ \box_if_horizontal:NT \l_shipout_box
+ {
+ \tl_set:Nx \l__shipout_saved_badness_tl
+ { \hfuzz=\the\hfuzz\relax
+ \hbadness=\the\hbadness\relax }
+ \hfuzz=\c_max_dim
+ \hbadness=\c_max_int
+ \hbox_set_to_wd:Nnn \l_shipout_box \l_shipout_box_wd_dim
+ {
+ \hbox_unpack:N \l_shipout_box
+ \kern -\box_wd:N \l_shipout_box
+ \hbox_set:Nn \l__shipout_tmp_box
+ { \l__shipout_saved_badness_tl #1 }
+ \box_set_wd:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_move_up:nn { \box_ht:N \l_shipout_box }
+ { \box_use:N \l__shipout_tmp_box }
+ \kern \box_wd:N \l_shipout_box
+ }%
+ \l__shipout_saved_badness_tl
+ }
+ }
+}
+\cs_new:Npn \__shipout_init_page_origins: {
+ \tl_const:Nx \c__shipout_horigin_tl
+ {
+ \cs_if_exist_use:NTF \pdfvariable { horigin }
+ { \cs_if_exist_use:NF \pdfhorigin { 1in } }
+ }
+ \tl_const:Nx \c__shipout_vorigin_tl
+ {
+ \cs_if_exist_use:NTF \pdfvariable { vorigin }
+ { \cs_if_exist_use:NF \pdfvorigin { 1in } }
+ }
+ \cs_gset_eq:NN \__shipout_init_page_origins: \prg_do_nothing:
+}
+\cs_new:Npn \__shipout_picture_overlay:n #1 {
+ \__shipout_init_page_origins:
+ \kern -\c__shipout_horigin_tl \scan_stop:
+ \vbox_to_zero:n {
+ \kern -\c__shipout_vorigin_tl \scan_stop:
+ \unitlength 1pt \scan_stop:
+ \hbox_set_to_wd:Nnn \l__shipout_tmp_box \c_zero_dim
+ { \ignorespaces #1 \hss }
+ \box_set_ht:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_set_dp:Nn \l__shipout_tmp_box \c_zero_dim
+ \box_use:N \l__shipout_tmp_box
+ \tex_vss:D
+ }
+}
+\cs_new:Npn \__shipout_add_background_picture:n #1 {
+ \__shipout_add_background_box:n { \__shipout_picture_overlay:n {#1} }
+}
+\cs_new:Npn \__shipout_add_foreground_picture:n #1 {
+ \__shipout_add_foreground_box:n { \__shipout_picture_overlay:n {#1} }
+}
+\cs_new_protected:Npn \shipout_discard: {
+ \bool_gset_true:N \g__shipout_discard_bool
+}
+\int_new:N \g_shipout_readonly_int
+\cs_new_eq:NN \ReadonlyShipoutCounter \g_shipout_readonly_int
+\int_new:N \g_shipout_totalpages_int
+\cs_new_eq:NN \c@totalpages \g_shipout_totalpages_int
+\cs_new:Npn \thetotalpages { \arabic{totalpages} }
+\xdef\@abspage@last{\number\maxdimen}
+\g@addto@macro \@kernel@after@enddocument {
+ \int_compare:nNnT \@abspage@last = \maxdimen
+ {
+ \xdef\@abspage@last{ \int_eval:n {\g_shipout_readonly_int + 1} }
+ }
+}
+\g@addto@macro \@kernel@after@enddocument@afterlastpage {
+ \int_compare:nNnF \g_shipout_readonly_int = 0
+ {
+ \if@filesw
+ \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_lazy_and:nnF
+ { \hook_if_empty_p:n {shipout/lastpage} }
+ { \tl_if_empty_p:N \@kernel@after@shipout@lastpage }
+ {
+ \tex_shipout:D\vbox to\textheight
+ {
+ \hbox:n { \UseHook{shipout/lastpage}
+ \@kernel@after@shipout@lastpage }
+ \__shipout_excuse_extra_page:
+ \null
+ }
+ \cs_gset_eq:NN \@extra@page@added \relax
+ }
+ }
+ }
+}
+\cs_new:Npn \__shipout_excuse_extra_page: {
+ \vfil
+ \begin{center}
+ \bfseries Temporary~ page!
+ \end{center}
+ \LaTeX{}~ was~ unable~ to~ guess~ the~ total~ number~ of~ pages~
+ correctly.~ ~ As~ there~ was~ some~ unprocessed~ data~ that~
+ should~ have~ been~ added~ to~ the~ final~ page~ this~ extra~
+ page~ has~ been~ added~ to~ receive~ it.
+ \par
+ If~ you~ rerun~ the~ document~ (without~ altering~ it)~ this~
+ surplus~ page~ will~ go~ away,~ because~ \LaTeX{}~ now~ knows~
+ how~ many~ pages~ to~ expect~ for~ this~ document.
+ \vfil
+}
+\def\PreviousTotalPages{0}
+\g@addto@macro\@kernel@before@begindocument
+ {\ifnum\@abspage@last<\maxdimen
+ \xdef\PreviousTotalPages{\@abspage@last}\fi}
+\cs_new_eq:NN \DiscardShipoutBox \shipout_discard:
+\cs_set_protected:Npn \AtBeginDvi {\__shipout_add_firstpage_material:Nn \AtBeginDvi}
+\cs_new_eq:NN \DebugShipoutsOn \shipout_debug_on:
+\cs_new_eq:NN \DebugShipoutsOff \shipout_debug_off:
+\cs_set_eq:NN \@expl@@@shipout@add@firstpage@material@@Nn
+ \__shipout_add_firstpage_material:Nn
+\cs_set_eq:NN \@expl@@@shipout@add@background@box@@n
+ \__shipout_add_background_box:n
+\cs_set_eq:NN \@expl@@@shipout@add@foreground@box@@n
+ \__shipout_add_foreground_box:n
+\cs_set_eq:NN \@expl@@@shipout@add@background@picture@@n
+ \__shipout_add_background_picture:n
+\cs_set_eq:NN \@expl@@@shipout@add@foreground@picture@@n
+ \__shipout_add_foreground_picture:n
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\shipout}{Hook management (shipout)}%
+
+\ifcsname tex_shipout:D\endcsname
+\expandafter\let\expandafter\shipout
+ \csname tex_shipout:D\endcsname
\fi
-%%% From File: ltexpl.dtx
+
+\let \ShipoutBox\@undefined
+\let \ReadonlyShipoutCounter \@undefined
+\let \c@totalpages \@undefined
+\let \thetotalpages \@undefined
+
+\let \DiscardShipoutBox \@undefined
+\let \DebugShipoutsOn \@undefined
+\let \DebugShipoutsOff \@undefined
+
+\DeclareRobustCommand \AtBeginDvi [1]{%
+ \global \setbox \@begindvibox
+ \vbox{\unvbox \@begindvibox #1}%
+}
+
+\let \AtBeginShipout \@undefined
+\let \AtBeginShipoutNext \@undefined
+
+\let \AtBeginShipoutFirst \@undefined
+
+\let \ShipoutBoxHeight \@undefined
+\let \ShipoutBoxDepth \@undefined
+\let \ShipoutBoxWidth \@undefined
+
+\let \AtBeginShipoutDiscard \@undefined
+
+\let \AtBeginShipoutAddToBox \@undefined
+\let \AtBeginShipoutAddToBoxForeground \@undefined
+\let \AtBeginShipoutUpperLeft \@undefined
+\let \AtBeginShipoutUpperLeftForeground \@undefined
+
+
+\let \AtEndDvi \@undefined
+
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
- {expl3}{Pre-load expl3}%
-\expandafter\ifx\csname tex\string _let:D\endcsname\relax
- \expandafter\@firstofone
-\else
- \GenericInfo{}{Skipping: expl3 code already part of the format}%
- \expandafter\@gobble
+ {\AtEndDvi}{atenddvi emulation}%
+\ExplSyntaxOn
+\cs_new_protected:Npn \AtEndDvi {\AddToHook{shipout/lastpage}}
+\ExplSyntaxOff
+\disable@package@load{atenddvi}
+ {\PackageWarning{atenddvi}
+ {Functionality of this package is already\MessageBreak
+ provided by LaTeX.\MessageBreak\MessageBreak
+ It is there no longer necessary to load it\MessageBreak
+ and you can safely remove it.\MessageBreak
+ Found on}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\AtEndDvi}{atenddvi emulation}%
+\let \AtEndDvi \@undefined
+\EndIncludeInRelease
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% From File: ltoutput.dtx
+\IncludeInRelease{2015/10/01}%
+ {\bx@ZZ}{Extended float list}%
+\let\@elt\newinsert
+\ifx\numexpr\@undefined\else
+\def\reserved@a{%
+ \@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V
+ \@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z
+ \@elt\bx@AA\@elt\bx@BB\@elt\bx@CC\@elt\bx@DD\@elt\bx@EE
+ \@elt\bx@FF\@elt\bx@GG\@elt\bx@HH\@elt\bx@II\@elt\bx@JJ
+ \@elt\bx@KK\@elt\bx@LL\@elt\bx@MM\@elt\bx@NN
+ \@elt\bx@OO\@elt\bx@PP\@elt\bx@QQ\@elt\bx@RR
+ \@elt\bx@SS\@elt\bx@TT\@elt\bx@UU\@elt\bx@VV
+ \@elt\bx@WW\@elt\bx@XX\@elt\bx@YY\@elt\bx@ZZ}
+\reserved@a
+\def\@elt{\noexpand\@elt\noexpand}
+\edef\@freelist{\@freelist\reserved@a}
\fi
- {%
- \IfFileExists{expl3.ltx}
- {%
- \ifnum0%
- \ifdefined\pdffilesize 1\fi
- \ifdefined\filesize 1\fi
- \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
- \ifdefined\kanjiskip 1\fi
- >0 %
- \expandafter\@firstofone
- \else
- \@latex@error{%
- LaTeX requires the e-TeX primitives and additional\MessageBreak
- functionality available in the engines:\MessageBreak
- - pdfTeX v1.40\MessageBreak
- - XeTeX v0.99992\MessageBreak
- - LuaTeX v0.95\MessageBreak
- - e-(u)pTeX mid-2012\MessageBreak
- or later%
- }\@ehd \expandafter\@gobble
- \fi
- }
- {%
- \@latex@error{LaTeX requires expl3}\@ehd
- \@gobble
- }%
- {%
- \input expl3.ltx
- \ifdefined\NewDocumentCommand
- \else
- \IfFileExists{xparse.ltx}
- {\input xparse.ltx }
- {}%
+\let\reserved@a\relax
+\let\@elt\relax
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\bx@ZZ}{Extended float list}%
+\def\@freelist{%
+ \@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E
+ \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J
+ \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N
+ \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R}
+ \insc@unt=234
+\EndIncludeInRelease
+\IncludeInRelease{2017/04/15}%
+ {\newpage}{Check depth of page}%
+\def \newpage {%
+ \if@noskipsec
+ \ifx \@nodocument\relax
+ \leavevmode
+ \global \@noskipsecfalse
+ \fi
+ \fi
+ \if@inlabel
+ \leavevmode
+ \global \@inlabelfalse
+ \fi
+ \if@nobreak \@nobreakfalse \everypar{}\fi
+ \par
+ \ifdim\prevdepth>\z@
+ \vskip -%
+ \ifdim\prevdepth>\maxdepth
+ \maxdepth
+ \else
+ \prevdepth
+ \fi
+ \fi
+ \vfil
+ \penalty -\@M}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\newpage}{Check depth of page}%
+\def \newpage {%
+ \if@noskipsec
+ \ifx \@nodocument\relax
+ \leavevmode
+ \global \@noskipsecfalse
+ \fi
+ \fi
+ \if@inlabel
+ \leavevmode
+ \global \@inlabelfalse
+ \fi
+ \if@nobreak \@nobreakfalse \everypar{}\fi
+ \par
+ \vfil
+ \penalty -\@M}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\@testwrongwidth}{float order in 2-column}%
+\def\@testwrongwidth #1{%
+ \ifdim\dp#1=\f@depth
+ \else
+ \global\@testtrue
+ \fi}%
+\let\f@depth\z@
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@testwrongwidth}{float order in 2-column}%
+\let\@testwrongwidth\@undefined
+\let\f@depth\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\@doclearpage}%
+ {float order in 2-column}%
+\def \@doclearpage {%
+ \ifvoid\footins
+ \ifvbox\@kludgeins
+ {\setbox \@tempboxa \box \@kludgeins}%
+ \fi
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@deferlist{\@dbltoplist\@deferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@makefcolumn\@deferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
\fi
+ \fi
+ \ifx\@deferlist\@empty \else\clearpage \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@doclearpage}%
+ {float order in 2-column}%
+\def \@doclearpage {%
+ \ifvoid\footins
+ \ifvbox\@kludgeins
+ {\setbox \@tempboxa \box \@kludgeins}%
+ \fi
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi
+ {\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade \fi
+ {\@outputpage\@makefcolumn\@dbldeferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
+ \fi
+ \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi
+ }%
+\EndIncludeInRelease
+\IncludeInRelease{2017/04/15}%
+ {\@outputpage}{Reset language for hyphenation}%
+\def\@outputpage{%
+\begingroup
+ \let \protect \noexpand
+ \language\document@default@language
+ \@resetactivechars
+ \global\let\@@if@newlist\if@newlist
+ \global\@newlistfalse
+ \@parboxrestore
+ \shipout \vbox{%
+ \set@typeset@protect
+ \aftergroup \endgroup
+ \aftergroup \set@typeset@protect
+ \if@specialpage
+ \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
+ \fi
+ \if@twoside
+ \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
+ \let\@themargin\oddsidemargin
+ \else \let\@thehead\@evenhead
+ \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
+ \fi
+ \fi
+ \reset@font
+ \normalsize
+ \normalsfcodes
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
+ \@begindvi
+ \vskip \topmargin
+ \moveright\@themargin \vbox {%
+ \setbox\@tempboxa \vbox to\headheight{%
+ \vfil
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\@thehead}%
+ \color@endbox
+ }%
+ \dp\@tempboxa \z@
+ \box\@tempboxa
+ \vskip \headsep
+ \box\@outputbox
+ \baselineskip \footskip
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\@thefoot}%
+ \color@endbox
}%
- }
+ }%
+ \global\let\if@newlist\@@if@newlist
+ \global \@colht \textheight
+ \stepcounter{page}%
+ \let\firstmark\botmark
+}
\EndIncludeInRelease
-
-\IncludeInRelease{2020/02/02}%
- {expl3}{Pre-load expl3}%
-\IfFileExists{expl3.ltx}
- {%
- \ifnum0%
- \ifdefined\pdffilesize 1\fi
- \ifdefined\filesize 1\fi
- \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
- >0 %
- \else
- \message{Skipping expl3-dependent extensions}
- \expandafter\@gobbletwo
+\IncludeInRelease{0000/00/00}%
+ {\@outputpage}{Reset language for hyphenation}%
+\def\@outputpage{%
+\begingroup
+ \let \protect \noexpand
+ \@resetactivechars
+ \global\let\@@if@newlist\if@newlist
+ \global\@newlistfalse
+ \@parboxrestore
+ \shipout \vbox{%
+ \set@typeset@protect
+ \aftergroup \endgroup
+ \aftergroup \set@typeset@protect
+ \if@specialpage
+ \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
+ \fi
+ \if@twoside
+ \ifodd\count\z@
+ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
+ \let\@themargin\oddsidemargin
+ \else \let\@thehead\@evenhead
+ \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
\fi
- }
- {%
- \message{Skipping expl3-dependent extensions}%
- \@gobbletwo
+ \fi
+ \reset@font
+ \normalsize
+ \normalsfcodes
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
+ \@begindvi
+ \vskip \topmargin
+ \moveright\@themargin \vbox {%
+ \setbox\@tempboxa \vbox to\headheight{%
+ \vfil
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\@thehead}%
+ \color@endbox
+ }%
+ \dp\@tempboxa \z@
+ \box\@tempboxa
+ \vskip \headsep
+ \box\@outputbox
+ \baselineskip \footskip
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\@thefoot}%
+ \color@endbox
+ }%
+ }%
+ \global\let\if@newlist\@@if@newlist
+ \global \@colht \textheight
+ \stepcounter{page}%
+ \let\firstmark\botmark
+}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\@startdblcolumn}{float order in 2-column}%
+\def \@startdblcolumn {%
+ \@tryfcolumn \@deferlist
+ \if@fcolmade
+ \else
+ \begingroup
+ \let \reserved@b \@deferlist
+ \global \let \@deferlist \@empty
+ \let \@elt \@sdblcolelt
+ \reserved@b
+ \endgroup
+ \fi
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@startdblcolumn}{float order in 2-column}%
+\def \@startdblcolumn {%
+% \global \@colht \textheight
+ \@tryfcolumn \@dbldeferlist
+ \if@fcolmade
+ \else
+ \begingroup
+ \let \reserved@b \@dbldeferlist
+ \global \let \@dbldeferlist \@empty
+ \let \@elt \@sdblcolelt
+ \reserved@b
+ \endgroup
+ \fi
+}%
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{\@xtryfc}%
+ {float order in 2-column}%
+\def\@xtryfc #1{%
+ \@next\reserved@a\@trylist{}{}%
+ \@currtype \count #1%
+ \divide\@currtype\@xxxii
+ \multiply\@currtype\@xxxii
+ \@bitor \@currtype \@failedlist
+ \@testfp #1%
+ \@testwrongwidth #1%
+ \ifdim \ht #1>\@colht
+ \@testtrue
+ \fi
+ \if@test
+ \@cons\@failedlist #1%
+ \else
+ \@ytryfc #1%
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@xtryfc}%
+ {float order in 2-column}%
+\def\@xtryfc #1{%
+ \@next\reserved@a\@trylist{}{}%
+ \@currtype \count #1%
+ \divide\@currtype\@xxxii
+ \multiply\@currtype\@xxxii
+ \@bitor \@currtype \@failedlist
+ \@testfp #1%
+ \ifdim \ht #1>\@colht
+ \@testtrue
+ \fi
+ \if@test
+ \@cons\@failedlist #1%
+ \else
+ \@ytryfc #1%
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}{@ztryfc}%
+ {float order in 2-column}%
+\def\@ztryfc #1{%
+ \@tempcnta\count #1%
+ \divide\@tempcnta\@xxxii
+ \multiply\@tempcnta\@xxxii
+ \@bitor \@tempcnta {\@failedlist \@flfail}%
+ \@testfp #1%
+ \@testwrongwidth #1%
+ \@tempdimb\@tempdima
+ \advance\@tempdimb\ht #1%
+ \advance\@tempdimb\@fpsep
+ \ifdim \@tempdimb >\@colht
+ \@testtrue
+ \fi
+ \if@test
+ \@cons\@flfail #1%
+ \else
+ \@cons\@flsucceed #1%
+ \@tempdima\@tempdimb
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{@ztryfc}%
+ {float order in 2-column}%
+\def\@ztryfc #1{%
+ \@tempcnta \count#1%
+ \divide\@tempcnta\@xxxii
+ \multiply\@tempcnta\@xxxii
+ \@bitor \@tempcnta {\@failedlist \@flfail}%
+ \@testfp #1%
+ \@tempdimb\@tempdima
+ \advance\@tempdimb \ht#1%
+ \advance\@tempdimb\@fpsep
+ \ifdim \@tempdimb >\@colht
+ \@testtrue
+ \fi
+ \if@test
+ \@cons\@flfail #1%
+ \else
+ \@cons\@flsucceed #1%
+ \@tempdima\@tempdimb
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\@addtocurcol}{float order in 2-column}%
+\def \@addtocurcol {%
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \advance \@textmin \@textfloatsheight
+ \@reqcolroom \@pageht
+ \ifdim \@textmin>\@reqcolroom
+ \@reqcolroom \@textmin
+ \fi
+ \advance \@reqcolroom \ht\@currbox
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum \@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@bitor\@currtype\@botlist
+ \if@test
+ \@addtobot
+ \else
+ \ifodd \count\@currbox
+ \advance \@reqcolroom \intextsep
+ \ifdim \@colroom>\@reqcolroom
+ \global \advance \@colnum \m@ne
+ \global \advance \@textfloatsheight \ht\@currbox
+ \global \advance \@textfloatsheight 2\intextsep
+ \@cons \@midlist \@currbox
+ \if@nobreak
+ \nobreak
+ \@nobreakfalse
+ \everypar{}%
+ \else
+ \addpenalty \interlinepenalty
+ \fi
+ \vskip \intextsep
+ \box\@currbox
+ \penalty\interlinepenalty
+ \vskip\intextsep
+ \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+ \outputpenalty \z@
+ \@inserttrue
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ \fi
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@addtocurcol}{float order in 2-column}%
+\def \@addtocurcol {%
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \advance \@textmin \@textfloatsheight
+ \@reqcolroom \@pageht
+ \ifdim \@textmin>\@reqcolroom
+ \@reqcolroom \@textmin
+ \fi
+ \advance \@reqcolroom \ht\@currbox
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum \@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \if@test
+ \else
+ \@bitor\@currtype\@botlist
+ \if@test
+ \@addtobot
+ \else
+ \ifodd \count\@currbox
+ \advance \@reqcolroom \intextsep
+ \ifdim \@colroom>\@reqcolroom
+ \global \advance \@colnum \m@ne
+ \global \advance
+ \@textfloatsheight\ht\@currbox
+ \global \advance
+ \@textfloatsheight 2\intextsep
+ \@cons \@midlist \@currbox
+ \if@nobreak
+ \nobreak
+ \@nobreakfalse
+ \everypar{}%
+ \else
+ \addpenalty\interlinepenalty
+ \fi
+ \vskip \intextsep
+ \box\@currbox
+ \penalty\interlinepenalty
+ \vskip\intextsep
+ \ifnum\outputpenalty
+ <-\@Mii \vskip
+ -\parskip\fi
+ \outputpenalty \z@
+ \@inserttrue
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtobot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ \fi
}%
-\input{expl3.ltx}
\EndIncludeInRelease
-\ExplSyntaxOn
-\IncludeInRelease{2020/10/01}{expl3~2020-10-01}%
- {expl3~macros~added~for~the~2020-10-01~release}%
-\cs_gset_eq:NN \@expl@cs@to@str@@N \cs_to_str:N
-\cs_gset_eq:NN \@expl@str@if@eq@@nnTF \str_if_eq:nnTF
-\cs_gset_eq:NN \@expl@cs@prefix@spec@@N \cs_prefix_spec:N
-\cs_gset_eq:NN \@expl@cs@argument@spec@@N \cs_argument_spec:N
-\cs_gset_eq:NN \@expl@cs@replacement@spec@@N \cs_replacement_spec:N
-\cs_gset_eq:NN \@expl@str@map@function@@NN \str_map_function:NN
-\cs_gset_eq:NN \@expl@char@generate@@nn \char_generate:nn
+\IncludeInRelease{2015/01/01}
+ {\@addtonextcol}{float order in 2-column}%
+\def\@addtonextcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \@reqcolroom \ht\@currbox
+ \advance \@reqcolroom \@textmin
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum\@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@deferlist\@currbox
+ \fi
+ \endgroup
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@addtonextcol}{float order in 2-column}%
+\def\@addtonextcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \@reqcolroom \ht\@currbox
+ \advance \@reqcolroom \@textmin
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum\@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \if@test
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@deferlist\@currbox
+ \fi
+ \endgroup
+}%
\EndIncludeInRelease
-\IncludeInRelease{0000/00/00}{expl3~2020-10-01}%
- {expl3~macros~added~for~the~2020-10-01~release}%
-\cs_undefine:N \@expl@cs@to@str@@N
-\cs_undefine:N \@expl@str@if@eq@@nnTF
-\cs_undefine:N \@expl@cs@prefix@spec@@N
-\cs_undefine:N \@expl@cs@argument@spec@@N
-\cs_undefine:N \@expl@cs@replacement@spec@@N
-\cs_undefine:N \@expl@str@map@function@@NN
+\IncludeInRelease{2015/01/01}%
+ {\@addtodblcol}{float order in 2-column}%
+\def\@addtodblcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \@getfpsbit \tw@
+ \ifodd\@tempcnta
+ \@flsetnum \@dbltopnum
+ \ifnum \@dbltopnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@bitor \@currtype \@deferlist
+ \@testwrongwidth\@currbox
+ \if@test
+ \else
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dbltoplist\@empty \dbltextfloatsep \else
+ \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@dbltopnum \m@ne
+ \@cons \@dbltoplist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@deferlist\@currbox
+ \fi
+ \endgroup
+}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@addtodblcol}{float order in 2-column}%
+\def\@addtodblcol{%
+ \begingroup
+ \@insertfalse
+ \@setfloattypecounts
+ \@getfpsbit \tw@
+ \ifodd\@tempcnta
+ \@flsetnum \@dbltopnum
+ \ifnum \@dbltopnum>\z@
+ \@tempswafalse
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \else
+ \ifnum \@fpstype<\sixt@@n
+ \advance \@dbltoproom \@textmin
+ \ifdim \@dbltoproom>\ht\@currbox
+ \@tempswatrue
+ \fi
+ \advance \@dbltoproom -\@textmin
+ \fi
+ \fi
+ \if@tempswa
+ \@bitor \@currtype \@dbldeferlist
+ \if@test
+ \else
+ \@tempdima -\ht\@currbox
+ \advance\@tempdima
+ -\ifx \@dbltoplist\@empty
+ \dbltextfloatsep
+ \else \dblfloatsep \fi
+ \global \advance \@dbltoproom \@tempdima
+ \global \advance \@colht \@tempdima
+ \global \advance \@dbltopnum \m@ne
+ \@cons \@dbltoplist \@currbox
+ \@inserttrue
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@cons\@dbldeferlist\@currbox
+ \fi
+ \endgroup
+}%
+\EndIncludeInRelease
+\IncludeInRelease{2017/01/01}%
+ {\@makefcolumn}{negative height floats}%
+\def\@makefcolumn #1{%
+ \begingroup
+ \@fpmin -\maxdimen
+ \let \@testfp \@gobble
+ \@tryfcolumn #1%
+ \endgroup
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@makefcolumn}{negative height floats}%
+\def\@makefcolumn #1{%
+ \begingroup
+ \@fpmin \z@
+ \let \@testfp \@gobble
+ \@tryfcolumn #1%
+ \endgroup
+}
+\EndIncludeInRelease
+\IncludeInRelease{2015/01/01}%
+ {\@outputdblcol}{2 column marks}%
+\def\@outputdblcol{%
+ \if@firstcolumn
+ \global\@firstcolumnfalse
+ \global\setbox\@leftcolumn\copy\@outputbox
+ \splitmaxdepth\maxdimen
+ \vbadness\maxdimen
+ \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
+ \setbox\@outputbox\vsplit\@outputbox to\maxdimen
+ \toks@\expandafter{\topmark}%
+ \xdef\@firstcoltopmark{\the\toks@}%
+ \toks@\expandafter{\splitfirstmark}%
+ \xdef\@firstcolfirstmark{\the\toks@}%
+ \ifx\@firstcolfirstmark\@empty
+ \global\let\@setmarks\relax
+ \else
+ \gdef\@setmarks{%
+ \let\firstmark\@firstcolfirstmark
+ \let\topmark\@firstcoltopmark}%
+ \fi
+ \else
+ \global\@firstcolumntrue
+ \setbox\@outputbox\vbox{%
+ \hb@xt@\textwidth{%
+ \hb@xt@\columnwidth{\box\@leftcolumn \hss}%
+ \hfil
+ {\normalcolor\vrule \@width\columnseprule}%
+ \hfil
+ \hb@xt@\columnwidth{\box\@outputbox \hss}}}%
+ \@combinedblfloats
+ \@setmarks
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@startdblcolumn}%
+ \endgroup
+ \fi}%
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@outputdblcol}{2 column marks}%
+\def\@outputdblcol{%
+ \if@firstcolumn
+ \global \@firstcolumnfalse
+ \global \setbox\@leftcolumn \box\@outputbox
+ \else
+ \global \@firstcolumntrue
+ \setbox\@outputbox \vbox {%
+ \hb@xt@\textwidth {%
+ \hb@xt@\columnwidth {%
+ \box\@leftcolumn \hss}%
+ \hfil
+ {\normalcolor\vrule
+ \@width\columnseprule}%
+ \hfil
+ \hb@xt@\columnwidth {%
+ \box\@outputbox \hss}%
+ }%
+ }%
+ \@combinedblfloats
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi
+ {\@outputpage
+ \@startdblcolumn}%
+ \endgroup
+ \fi
+}%
+\EndIncludeInRelease
+%%% From File: ltfsscmp.dtx
+%% Copyright (C) 1989-1995 Frank Mittelbach and Rainer Sch\"opf,
+%% all rights reserved.
+\IncludeInRelease{2015/01/01}{\new@fontshape}%
+ {NFSS version1 commands}%
+\let\new@fontshape\@undefined
+\let\warn@rel@i\@undefined
+\let\scan@fontshape\@undefined
+\let\scan@@fontshape\@undefined
+\let\subst@fontshape\@undefined
+\let\extra@def\@undefined
+\let\default@mextra\@undefined
+\let\preload@sizes\@undefined
+\let\err@rel@i\@undefined
+\let\newmathalphabet\@undefined
+\let\newmathalphabet@\@undefined
+\let\newmathalphabet@@@\@undefined
+\let\if@no@font@opt\@undefined
+\let\@no@font@optfalse\@undefined
+\let\define@mathalphabet\@undefined
+\let\define@mathgroup\@undefined
+\let\addtoversion\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\new@fontshape}%
+ {NFSS version1 commands}%
+\gdef\new@fontshape#1#2#3#4{%
+ \warn@rel@i\new@fontshape\DeclareFontShape
+ \expandafter\scan@fontshape\@gobble#4<\@nil><<%
+ \DeclareFontShape U{#1}{#2}{#3}\reserved@f}%
+\@onlypreamble\new@fontshape
+\gdef\warn@rel@i#1#2{%
+ \@font@warning{*** NFSS release 1 command
+ \noexpand#1found\MessageBreak
+ *** Update by using release 2 command
+ \string#2.\MessageBreak
+ *** Recovery is probably possible}%
+}%
+\@onlypreamble\warn@rel@i
+\gdef\scan@fontshape{%
+ \let\reserved@f\@empty
+ \let\reserved@e\@empty % holds last info
+ \scan@@fontshape
+}%
+\@onlypreamble\scan@fontshape
+\gdef\scan@@fontshape#1>#2#3<{%
+ \ifx\@nil#1%
+ \edef\reserved@f{\reserved@f\reserved@e}%
+ \else
+ \def\reserved@b{#1}% nick names
+ \def\reserved@c{#3}%
+ \in@{ at}{#3}%
+ \ifin@
+ \in@{pt}{#3}% not a proof but a good chance
+ \ifin@
+ \def\reserved@a##1 at##2pt##3\@nil{%
+ \def\reserved@b{##2}%
+ \def\reserved@c{##1}%
+ }%
+ \reserved@a#3\@nil
+ \fi
+ \fi
+ \ifnum 0<0#2
+ \edef\reserved@d{subf*\reserved@c}%
+ \ifcase #2\or
+ \or
+ \else
+ \errmessage{*** What's this? NFSS release 0? ***}%
+ \fi
+ \else
+ \edef\reserved@d{#2\reserved@c}%
+ \fi
+ \ifx\reserved@d\reserved@e
+ \edef\reserved@f{\reserved@f<\reserved@b>}%
+ \else
+ \edef\reserved@f{\reserved@f\reserved@e<\reserved@b>}%add old info
+ \let\reserved@e\reserved@d
+ \fi
+ \expandafter\scan@@fontshape
+ \fi
+}%
+\@onlypreamble\scan@@fontshape
+\gdef\subst@fontshape#1#2#3#4#5#6{%
+ \warn@rel@i\subst@fontshape\DeclareFontShape
+ \DeclareFontShape{U}{#1}{#2}{#3}{<->sub*#4/#5/#6}{}}%
+\@onlypreamble\subst@fontshape
+\gdef\extra@def#1#2#3{%
+ \warn@rel@i\extra@def\DeclareFontFamily
+ \DeclareFontFamily{U}{#1}{}%
+}%
+\@onlypreamble\extra@def
+\gdef\default@mextra{%
+ \warn@rel@i\default@mextra\DeclareFontEncodingDefaults
+ \DeclareFontEncodingDefaults\relax
+}%
+\@onlypreamble\default@mextra
+\gdef\preload@sizes{%
+ \warn@rel@i\preload@sizes\DeclarePreloadSizes
+ \DeclarePreloadSizes U%
+}%
+\@onlypreamble\preload@sizes
+\gdef\err@rel@i#1#2{%
+ \@latex@error{*** NFSS release 1 command \noexpand#1found%
+ ^^J*** Recovery not possible. Use \string#2}%
+ {The new release of NFSS doesn't support the
+ \noexpand#1command^^Jany longer.
+ Please upgrade your file to the syntax of NFSS
+ release 2^^Jusing the \noexpand#2command.}%
+ \batchmode\input.\relax
+}%
+\@onlypreamble\err@rel@i
+\gdef\newmathalphabet{%
+ \if@no@font@opt
+ \@latex@error{*** NFSS release 1 command
+ \noexpand\newmathalphabet found%
+ ^^J \space*** Automatic recovery not possible.%
+ ^^J \space*** TYPE H for Help%
+ }%
+ {Please look at the file usrguide.tex for hints on
+ how to resolve this problem.}%
+ \else
+ \warn@rel@i\newmathalphabet\DeclareMathAlphabet
+ \fi
+ \@ifstar\newmathalphabet@@@
+ \newmathalphabet@@}%
+\gdef\newmathalphabet@@#1{\DeclareMathAlphabet#1{U}{}{}{}}%
+\gdef\newmathalphabet@@@#1#2#3#4{%
+ \DeclareMathAlphabet{#1}{U}{#2}{#3}{#4}}%
+\@onlypreamble\newmathalphabet
+\@onlypreamble\newmathalphabet@@
+\@onlypreamble\newmathalphabet@@@
+\global\let\if@no@font@opt\iftrue
+\gdef\@no@font@optfalse{\let\if@no@font@opt\iffalse}%
+\gdef\define@mathalphabet{%
+ \err@rel@i\define@mathalphabet\DeclareMathAlphabet
+}%
+\@onlypreamble\define@mathalphabet
+\gdef\define@mathgroup{%
+ \err@rel@i\define@mathgroup\DeclareSymbolFont
+}%
+\@onlypreamble\define@mathgroup
+\def\addtoversion#1#2{%
+ \warn@rel@i\addtoversion\SetMathAlphabet
+ \SetMathAlphabet#2{#1}{U}}%
+\@onlypreamble\addtoversion
\EndIncludeInRelease
-\ExplSyntaxOff
%%% From File: ltfinal.dtx
\IncludeInRelease{2015/01/01}%
{\newmarks}{Extended Allocation}%