diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev/base/latexrelease.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex-dev/base/latexrelease.sty | 718 |
1 files changed, 684 insertions, 34 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty index 9b43a0bf02a..4a5ce2a8c48 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty +++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty @@ -53,7 +53,7 @@ %% (but please observe conditions on bug reports sent to that address!) %% %% -%% Copyright 1993-2018 +%% Copyright (C) 1993-2019 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -66,7 +66,7 @@ %% The latest version of this license is in %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. +%% version 2008 or later. %% %% This file has the LPPL maintenance status "maintained". %% @@ -272,7 +272,7 @@ \fi } -\long\def\IfTargetDateBefore#1{% +\DeclareRobustCommand\IfTargetDateBefore[1]{% \ifnum\pkgcls@innerdate <% \expandafter\@parse@version\expandafter0#1//00\@nil \typeout{Exclude code introduced on #1}% @@ -289,7 +289,8 @@ \@includeinreleasefalse \def\IncludeInRelease#1{% \if@includeinrelease - \PackageError{latexrelease}{mis-matched IncludeInRelease}{}% + \PackageError{latexrelease}{mis-matched IncludeInRelease}% + {There is an \string\EndIncludeRelease\space missing}% \@includeinreleasefalse \fi \kernel@ifnextchar[% @@ -326,7 +327,7 @@ \long\def\@check@IncludeInRelease#1\IncludeInRelease #2#3\@end@check@IncludeInRelease{% \ifx\@check@IncludeInRelease#2\else - \PackageError{latexrelease}{skipped IncludeInRelease}{}% + \PackageError{latexrelease}{skipped IncludeInRelease for tag \string#2}{}% \fi} \ProvidesPackage{latexrelease} [2018/05/08 v1.0k LaTeX release emulation and tests @@ -419,6 +420,32 @@ of this package available from CTAN} \EndIncludeInRelease \fi %%% From File: ltdefns.dtx +\IncludeInRelease{2019/10/01}{\MakeRobust}{\MakeRobust}% +\def\MakeRobust#1{% + \@ifundefined{\expandafter\@gobble\string#1}{% + \@latex@error{The control sequence `\string#1' is undefined!% + \MessageBreak There is nothing here to make robust}% + \@eha + }% + {% + \@ifundefined{\expandafter\@gobble\string#1\space}% + {% + \global\expandafter\let\csname + \expandafter\@gobble\string#1\space\endcsname=#1% + \edef\reserved@a{\string#1}% + \def\reserved@b{#1}% + \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}% + \xdef#1{% + \ifx\reserved@a\reserved@b + \noexpand\x@protect\noexpand#1% + \fi + \noexpand\protect\expandafter\noexpand + \csname\expandafter\@gobble\string#1\space\endcsname}% + }% + {\@latex@info{The control sequence `\string#1' is already robust}}% + }% +}% +\EndIncludeInRelease \IncludeInRelease{2015/01/01}{\MakeRobust}{\MakeRobust}% \def\MakeRobust#1{% \@ifundefined{\expandafter\@gobble\string#1}{% @@ -448,6 +475,19 @@ of this package available from CTAN} \IncludeInRelease{0000/00/00}{\MakeRobust}{\MakeRobust}% \let\MakeRobust\@undefined \EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\kernel@make@fragile}{Undo robustness}% +\def\kernel@make@fragile#1{% + \@ifundefined{\expandafter\@gobble\string#1\space}% + {}% + {% + \global\expandafter\let\expandafter #1\csname + \expandafter\@gobble\string#1\space\endcsname + \global\expandafter\let\csname + \expandafter\@gobble\string#1\space\endcsname\@undefined + }% +} +\EndIncludeInRelease \IncludeInRelease{2018-04-01}{\@ifundefined} {Leave commands undefined in \@ifundefined}% \def\@ifundefined#1{% @@ -501,6 +541,46 @@ of this package available from CTAN} \def\-{\discretionary{-}{}{}} \let\@dischyph=\- \EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\allowbreak}{Make various commands robust}% +\MakeRobust\allowbreak +\MakeRobust\bigbreak +\MakeRobust\break +\MakeRobust\dotfill +\MakeRobust\frenchspacing +\MakeRobust\goodbreak +\MakeRobust\hrulefill +\MakeRobust\medbreak +\MakeRobust\nobreak +\MakeRobust\nonfrenchspacing +\MakeRobust\obeylines +\MakeRobust\obeyspaces +\MakeRobust\slash +\MakeRobust\smallbreak +\MakeRobust\strut +\MakeRobust\underbar +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\allowbreak}{Make various commands robust}% + +\kernel@make@fragile\allowbreak +\kernel@make@fragile\bigbreak +\kernel@make@fragile\break +\kernel@make@fragile\dotfill +\kernel@make@fragile\frenchspacing +\kernel@make@fragile\goodbreak +\kernel@make@fragile\hrulefill +\kernel@make@fragile\medbreak +\kernel@make@fragile\nobreak +\kernel@make@fragile\nonfrenchspacing +\kernel@make@fragile\obeylines +\kernel@make@fragile\obeyspaces +\kernel@make@fragile\slash +\kernel@make@fragile\smallbreak +\kernel@make@fragile\strut +\kernel@make@fragile\underbar + +\EndIncludeInRelease %%% From File: ltalloc.dtx %%% From File: ltcntrl.dtx %%% From File: lterror.dtx @@ -626,7 +706,50 @@ of this package available from CTAN} \expandafter\let\csname raisebox \endcsname\@undefined \EndIncludeInRelease %%% From File: lttab.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} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\pushtabs}{Make commands robust}% + +\kernel@make@fragile\pushtabs +\kernel@make@fragile\poptabs +\kernel@make@fragile\kill + +\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(} +\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{% @@ -650,6 +773,24 @@ of this package available from CTAN} {\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{2015/01/01}{\(}{Make \( robust}% \DeclareRobustCommand\({% \relax\ifmmode\@badmath\else$\fi}% @@ -722,7 +863,7 @@ of this package available from CTAN} {Avoid almost zero length leaders}% \newif\if@ovvline \@ovvlinetrue \newif\if@ovhline \@ovhlinetrue -\gdef\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen +\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}% @@ -745,7 +886,7 @@ of this package available from CTAN} \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup} -\gdef\@ovvert#1#2{\vbox to\@ovyy{% +\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 @@ -754,7 +895,7 @@ of this package available from CTAN} \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax \hbox{\char \@tempcntb}% \else \kern \@ovdy \kern \@ovro \fi}} -\gdef\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro +\def\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro \if@ovr \else \kern \@ovdx \fi \if@ovhline \leaders \hrule \@height \@wholewidth \fi \hfil @@ -766,7 +907,7 @@ of this package available from CTAN} {Avoid almost zero length leaders}% \let\if@ovvline\@undefined \let\if@ovhline\@undefined -\gdef\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen +\def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tfor\reserved@a :=#3\do {\csname @ov\reserved@a false\endcsname}% @@ -788,7 +929,7 @@ of this package available from CTAN} \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup} -\gdef\@ovvert#1#2{\vbox to\@ovyy{% +\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 @@ -796,14 +937,70 @@ of this package available from CTAN} \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax \hbox{\char \@tempcntb}% \else \kern \@ovdy \kern \@ovro \fi}} -\gdef\@ovhorz{\hb@xt@\@ovxx{\kern \@ovro +\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{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}}% +} +\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{2018/12/01}% {\addcontentsline}{Mask line endings}% \def\addcontentsline#1#2#3{% @@ -1010,7 +1207,7 @@ of this package available from CTAN} \def\quote@name#1{"\quote@@name#1\@gobble""} \def\quote@@name#1"{#1\quote@@name} \def\unquote@name#1{\quote@@name#1\@gobble"} -\def\IfFileExists#1{% +\DeclareRobustCommand\IfFileExists[1]{% \set@curr@file{#1}% \edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}% \expandafter\IfFileExists@\expandafter{\q@curr@file}} @@ -1057,7 +1254,7 @@ of this package available from CTAN} \EndIncludeInRelease \IncludeInRelease{2019/10/01}% {\InputIfFileExists}{Don't lose the file name}% -\long\def \InputIfFileExists#1#2{% +\DeclareRobustCommand \InputIfFileExists[2]{% \IfFileExists{#1}% {% \expandafter\@swaptwoargs\expandafter @@ -1138,6 +1335,33 @@ of this package available from CTAN} \expandafter\def\csname\expandafter\string\csname #2\endcsname\string#1-\string#3\@empty\endcsname{#4}} \EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\UseTextAccent}{Make commands robust}% +\DeclareRobustCommand\UseTextAccent[3]{% + \hmode@start@before@group + {% + \let\hmode@start@before@group\@firstofone + \let\@curr@enc\cf@encoding + \@use@text@encoding{#1}% + #2{\@use@text@encoding\@curr@enc#3}% + }} +\DeclareRobustCommand\UseTextSymbol[2]{% + \hmode@start@before@group + {% + \def\@wrong@font@char{\MessageBreak + for \noexpand\symbol`\string#2'}% + \@use@text@encoding{#1}% + #2% + }% + } +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\UseTextAccent}{Make commands robust}% + +\kernel@make@fragile\UseTextAccent +\kernel@make@fragile\UseTextSymbol + +\EndIncludeInRelease \IncludeInRelease{2015/10/01}{\textcommabelow}{comma accent}% \DeclareTextCommandDefault\textcommabelow[1] {\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex @@ -1517,6 +1741,32 @@ of this package available from CTAN} %%% 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]{% + \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: ltoutput.dtx \IncludeInRelease{2015/10/01}% {\bx@ZZ}{Extended float list}% @@ -2439,7 +2689,32 @@ of this package available from CTAN} \reserved@a} \EndIncludeInRelease \IncludeInRelease{2019/10/01}% - {\filec@ntents}{Spaces in file names}% + {\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]{% + \@for\@tempa:=#1\do{% + \ifcsname filec@ntents@\@tempa\endcsname + \csname filec@ntents@\@tempa\endcsname + \else + \@latex@error{Unknown filecontents option #1}% + {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 @@ -2451,12 +2726,10 @@ of this package available from CTAN} \catcode`\^^M\active% \catcode`\^^L\active\let^^L\relax% \catcode`\^^I\active% -\gdef\filecontents{\@tempswatrue\filec@ntents}% -\gdef\filecontents*{\@tempswafalse\filec@ntents}% \gdef\filec@ntents#1{% - \set@curr@file{#1}% - \edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}% - \openin\@inputcheck\q@curr@file \space % + \set@curr@file{\filec@ntents@checkdir#1}% + \edef\q@curr@file{\expandafter\quote@name\expandafter{\@curr@file}}% + \openin\@inputcheck\q@curr@file \space % \ifeof\@inputcheck% \@latex@warning@no@line% {Writing file `\@currdir\@curr@file'}% @@ -2464,13 +2737,38 @@ of this package available from CTAN} \ch@ck7\reserved@c\write% \immediate\openout\reserved@c\q@curr@file\relax% \else% - \closein\@inputcheck% - \@latex@warning@no@line% - {File `\@curr@file' already exists on the system.\MessageBreak% + \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% + \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% + \chardef\reserved@c15 % + \ch@ck7\reserved@c\write% + \if@filesw% % Foul ... trying to overwrite \jobname! + \@latex@error{Trying to overwrite `\jobname.tex'}{You can't % + write to the file you a 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#1\relax% + \fi% + \fi% \fi% + \closein\@inputcheck% \if@tempswa% \immediate\write\reserved@c{% \@percentchar\@percentchar\space% @@ -2522,7 +2820,16 @@ of this package available from CTAN} \endgroup% \EndIncludeInRelease \IncludeInRelease{0000/00/00}% - {\filec@ntents}{Spaces in file names}% + {\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 @@ -2603,6 +2910,31 @@ of this package available from CTAN} \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}% + +\kernel@make@fragile\pagebreak +\kernel@make@fragile\nopagebreak +\kernel@make@fragile\linebreak +\kernel@make@fragile\nolinebreak +\kernel@make@fragile\samepage + +\EndIncludeInRelease \IncludeInRelease{2018/10/10}% {\@esphack}{hyphenation and nobreak after space hack}% \def\@esphack{% @@ -2749,9 +3081,9 @@ of this package available from CTAN} \EndIncludeInRelease \IncludeInRelease{2018/12/01}% {\thinspace}{Start LR-mode}% -\def\thinspace{\leavevmode@ifvmode\kern .16667em } -\def\negthinspace{\leavevmode@ifvmode\kern-.16667em } -\def\enspace{\leavevmode@ifvmode\kern.5em } +\DeclareRobustCommand\thinspace{\leavevmode@ifvmode\kern .16667em } +\DeclareRobustCommand\negthinspace{\leavevmode@ifvmode\kern-.16667em } +\DeclareRobustCommand\enspace{\leavevmode@ifvmode\kern.5em } \protected\def\leavevmode@ifvmode{\ifvmode\expandafter\indent\fi} \EndIncludeInRelease \IncludeInRelease{0000/00/00}% @@ -3191,6 +3523,241 @@ of this package available from CTAN} }% } \EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {DeclareMathAccent}{Make math accents robust}% +\def\DeclareMathAccent#1#2#3#4{% + \expandafter\in@\csname sym#3\expandafter\endcsname + \expandafter{\group@list}% + \ifin@ + \begingroup + \count\z@=#4\relax + \count\tw@\count\z@ + \divide\count\z@\sixt@@n + \count@\count\z@ + \multiply\count@\sixt@@n + \advance\count\tw@-\count@ + \if\relax\noexpand#1% is command? + \edef\reserved@a{\noexpand\in@ + {\expandafter\@gobble\string\mathaccent} + {\expandafter\meaning + \csname\expandafter\@gobble\string#1\space\endcsname}}% + \reserved@a + \ifin@ + \expandafter\let + \csname\expandafter\@gobble\string#1\space\endcsname + \@undefined + \expandafter\set@mathaccent + \csname sym#3\endcsname#1#2% + {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + \@font@info{Redeclaring math accent \string#1}% + \else + \expandafter\ifx + \csname\expandafter\@gobble\string#1\endcsname + \relax + \expandafter\set@mathaccent + \csname sym#3\endcsname#1#2% + {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + \else + \@latex@error{Command `\string#1' already defined}\@eha + \fi + \fi + \else + \@latex@error{Not a command name: `\noexpand#1'}\@eha + \fi + \endgroup + \else + \@latex@error{Symbol font `#3' is not defined}\@eha + \fi +} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {DeclareMathAccent}{Make math accents robust}% +\def\DeclareMathAccent#1#2#3#4{% + \expandafter\in@\csname sym#3\expandafter\endcsname + \expandafter{\group@list}% + \ifin@ + \begingroup + \count\z@=#4\relax + \count\tw@\count\z@ + \divide\count\z@\sixt@@n + \count@\count\z@ + \multiply\count@\sixt@@n + \advance\count\tw@-\count@ + \if\relax\noexpand#1% is command? + \edef\reserved@a{\noexpand\in@ + {\expandafter\@gobble\string\mathaccent}{\meaning#1}}% + \reserved@a + \ifin@ + \expandafter\set@mathaccent + \csname sym#3\endcsname#1#2% + {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + \@font@info{Redeclaring math accent \string#1}% + \else + \expandafter\ifx + \csname\expandafter\@gobble\string#1\endcsname + \relax + \expandafter\set@mathaccent + \csname sym#3\endcsname#1#2% + {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + \else + \@latex@error{Command `\string#1' already defined}\@eha + \fi + \fi + \else + \@latex@error{Not a command name: `\noexpand#1'}\@eha + \fi + \endgroup + \else + \@latex@error{Symbol font `#3' is not defined}\@eha + \fi +} +\EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\set@mathaccent}{makemath accents robust}% +\def\set@mathaccent#1#2#3#4{% + \xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}% + \MakeRobust#2% +} +\@onlypreamble\set@mathaccent +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\set@mathaccent}{makemath accents robust}% + +\def\set@mathaccent#1#2#3#4{% + \xdef#2{\mathaccent"\mathchar@type#3\hexnumber@#1#4\relax}} + +\EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\@DeclareMathDelimiter}{Make math delimiters robust}% +\def\@DeclareMathDelimiter#1#2#3#4#5#6{% + \expandafter\in@\csname sym#3\expandafter\endcsname + \expandafter{\group@list}% + \ifin@ + \expandafter\in@\csname sym#5\expandafter\endcsname + \expandafter{\group@list}% + \ifin@ + \begingroup + \count\z@=#4\relax + \count\tw@\count\z@ + \divide\count\z@\sixt@@n + \count@\count\z@ + \multiply\count@\sixt@@n + \advance\count\tw@-\count@ + \edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + % + \count\z@=#6\relax + \count\tw@\count\z@ + \divide\count\z@\sixt@@n + \count@\count\z@ + \multiply\count@\sixt@@n + \advance\count\tw@-\count@ + \edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + % + \edef\reserved@a{\noexpand\in@ + {\expandafter\@gobble\string\delimiter}% + {\expandafter\meaning\csname\expandafter\@gobble\string#1\space\endcsname}}% + \reserved@a + \ifin@ + \expandafter\let\csname\expandafter\@gobble\string#1\space\endcsname\@undefined + \expandafter\set@mathdelimiter + \csname sym#3\expandafter\endcsname + \csname sym#5\endcsname#1#2% + \reserved@c\reserved@d + \@font@info{Redeclaring math delimiter \string#1}% + \else + \expandafter\ifx + \csname\expandafter\@gobble\string#1\endcsname + \relax + \expandafter\set@mathdelimiter + \csname sym#3\expandafter\endcsname + \csname sym#5\endcsname#1#2% + \reserved@c\reserved@d + \else + \@latex@error{Command `\string#1' already defined}\@eha + \fi + \fi + \endgroup + \else + \@latex@error{Symbol font `#5' is not defined}\@eha + \fi + \else + \@latex@error{Symbol font `#3' is not defined}\@eha + \fi +} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@DeclareMathDelimiter}{Make math delimiters robust}% +\def\@DeclareMathDelimiter#1#2#3#4#5#6{% + \expandafter\in@\csname sym#3\expandafter\endcsname + \expandafter{\group@list}% + \ifin@ + \expandafter\in@\csname sym#5\expandafter\endcsname + \expandafter{\group@list}% + \ifin@ + \begingroup + \count\z@=#4\relax + \count\tw@\count\z@ + \divide\count\z@\sixt@@n + \count@\count\z@ + \multiply\count@\sixt@@n + \advance\count\tw@-\count@ + \edef\reserved@c{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + % + \count\z@=#6\relax + \count\tw@\count\z@ + \divide\count\z@\sixt@@n + \count@\count\z@ + \multiply\count@\sixt@@n + \advance\count\tw@-\count@ + \edef\reserved@d{\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% + % + \edef\reserved@a{\noexpand\in@ + {\expandafter\@gobble\string\delimiter}{\meaning#1}}% + \reserved@a + \ifin@ + \expandafter\set@mathdelimiter + \csname sym#3\expandafter\endcsname + \csname sym#5\endcsname#1#2% + \reserved@c\reserved@d + \@font@info{Redeclaring math delimiter \string#1}% + \else + \expandafter\ifx + \csname\expandafter\@gobble\string#1\endcsname + \relax + \expandafter\set@mathdelimiter + \csname sym#3\expandafter\endcsname + \csname sym#5\endcsname#1#2% + \reserved@c\reserved@d + \else + \@latex@error{Command `\string#1' already defined}\@eha + \fi + \fi + \endgroup + \else + \@latex@error{Symbol font `#5' is not defined}\@eha + \fi + \else + \@latex@error{Symbol font `#3' is not defined}\@eha + \fi +} +\EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\set@mathdelimiter}{make delimiters robust}% +\def\set@mathdelimiter#1#2#3#4#5#6{% + \xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5% + \hexnumber@#2#6 }% + \MakeRobust#3% +} +\@onlypreamble\set@mathdelimiter +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\set@mathdelimiter}{make delimiters robust}% + +\def\set@mathdelimiter#1#2#3#4#5#6{% + \xdef#3{\delimiter"\mathchar@type#4\hexnumber@#1#5% + \hexnumber@#2#6 }} + +\EndIncludeInRelease %%% From File: ltfssini.dtx %% Copyright (C) 1989-2001 Frank Mittelbach and Rainer Sch\"opf, %% all rights reserved. @@ -3237,13 +3804,13 @@ of this package available from CTAN} \EndIncludeInRelease \IncludeInRelease{2018/12/01}% {\Big}{Start LR-mode}% -\def\big#1{\leavevmode@ifvmode +\DeclareRobustCommand\big[1]{\leavevmode@ifvmode {\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} -\def\Big#1{\leavevmode@ifvmode +\DeclareRobustCommand\Big[1]{\leavevmode@ifvmode {\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} -\def\bigg#1{\leavevmode@ifvmode +\DeclareRobustCommand\bigg[1]{\leavevmode@ifvmode {\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} -\def\Bigg#1{\leavevmode@ifvmode +\DeclareRobustCommand\Bigg[1]{\leavevmode@ifvmode {\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} \EndIncludeInRelease \IncludeInRelease{0000/00/00}% @@ -3394,7 +3961,7 @@ of this package available from CTAN} \IncludeInRelease{2017/01/01}{\showhyphens}% {XeTeX support for \showhyphens}% \ifx\XeTeXcharclass\@undefined -\gdef\showhyphens#1{% +\DeclareRobustCommand\showhyphens[1]{% \setbox0\vbox{% \color@begingroup \everypar{}% @@ -3403,7 +3970,7 @@ of this package available from CTAN} \pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1% \color@endgroup}} \else -\long\def\showhyphens#1{% +\DeclareRobustCommand\showhyphens[1]{% \setbox0\vbox{% \usefont{TU}{lmr}{m}{n}% \hsize 1sp % @@ -3613,6 +4180,27 @@ of this package available from CTAN} \EndIncludeInRelease %%% From File: ltpageno.dtx %%% From File: ltxref.dtx +\IncludeInRelease{2019/10/01}% + {\refstepcounter}{Add \labelformat and \Ref}% +\def\refstepcounter#1{\stepcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% +} +\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1} +\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}% + \expandafter\MakeUppercase\@tempa} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\refstepcounter}{Add \labelformat and \Ref}% + +\def\refstepcounter#1{\stepcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% +} +\let\labelformat\@undefined +\let\Ref\@undefined + +\EndIncludeInRelease %%% From File: ltmiscen.dtx \IncludeInRelease{2018/12/01}% {\protected@file@percent}{Mask line endings}% @@ -3648,6 +4236,68 @@ of this package available from CTAN} }% } \EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\begin}{Making \begin/\end robust}% +\DeclareRobustCommand\begin[1]{% + \@ifundefined{#1}% + {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}% + {\def\reserved@a{\def\@currenvir{#1}% + \edef\@currenvline{\on@line}% + \csname #1\endcsname}}% + \@ignorefalse + \begingroup\@endpefalse\reserved@a} +\edef\end + {\unexpanded{% + \romannumeral + \ifx\protect\@typeset@protect + \expandafter %1 + \expandafter %2 + \expandafter %1 + \expandafter %3 expands the \csname inside \end<space> + \expandafter %1 + \expandafter %2 expands \end<space> + \expandafter %1 expands the \else + \z@ + \else + \expandafter\z@\expandafter\protect + \fi + }% + \expandafter\noexpand\csname end \endcsname + } +\@namedef{end }#1{% + \csname end#1\endcsname\@checkend{#1}% + \expandafter\endgroup\if@endpe\@doendpe\fi + \if@ignore\@ignorefalse\ignorespaces\fi} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\begin}{Making \begin/\end robust}% +\kernel@make@fragile\begin +\kernel@make@fragile\end + +\EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\centering}{Make commands robust}% +\DeclareRobustCommand\centering{% + \let\\\@centercr + \rightskip\@flushglue\leftskip\@flushglue + \parindent\z@\parfillskip\z@skip} +\DeclareRobustCommand\raggedright{% + \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip + \leftskip\z@skip + \parindent\z@} +\DeclareRobustCommand\raggedleft{% + \let\\\@centercr + \rightskip\z@skip\leftskip\@flushglue + \parindent\z@\parfillskip\z@skip} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\centering}{Make commands robust}% + +\kernel@make@fragile\centering +\kernel@make@fragile\raggedright +\kernel@make@fragile\raggedleft + +\EndIncludeInRelease \IncludeInRelease{2017-04-15}{\@verbatim}% {Disable hyphenation in verbatim}% \def\@verbatim{\trivlist \item\relax |