diff options
author | Karl Berry <karl@freefriends.org> | 2019-12-17 23:21:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-12-17 23:21:23 +0000 |
commit | c8b55eda8a17bb408bac6d4de98af3dbd1e3cd4a (patch) | |
tree | 72e60c6acef7decb34ca0d6a8e158ab928da09f2 /Master/texmf-dist/tex/generic | |
parent | d005d02253cdbf48af14887a8eab1dacb8f51479 (diff) |
ltxcmds split from oberdiek (18dec19)
git-svn-id: svn://tug.org/texlive/trunk@53165 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic')
-rw-r--r-- | Master/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty | 752 |
1 files changed, 752 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty b/Master/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty new file mode 100644 index 00000000000..2cc5f77c3ed --- /dev/null +++ b/Master/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty @@ -0,0 +1,752 @@ +%% +%% This is file `ltxcmds.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltxcmds.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% Project: ltxcmds +%% Version: 2019/12/15 v1.24 +%% +%% Copyright (C) +%% 2009-2011 Heiko Oberdiek +%% 2016-2019 Oberdiek Package Support Group +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% https://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% https://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainers of this work are +%% Heiko Oberdiek and the Oberdiek Package Support Group +%% https://github.com/ho-tex/ltxcmds/issues +%% +%% +%% The Base Interpreter refers to any `TeX-Format', +%% because some files are installed in TDS:tex/generic//. +%% +%% This work consists of the main source file ltxcmds.dtx +%% and the derived files +%% ltxcmds.sty, ltxcmds.pdf, ltxcmds.ins, ltxcmds.drv, +%% ltxcmds-test1.tex, ltxcmds-test-gobble.tex, +%% ltxcmds-test-ifempty.tex, ltxcmds-test-zapspace.tex, +%% ltxcmds-test-ifboxempty.tex, ltxcmds-test-nextchar.tex, +%% ltxcmds-test-carcdr.tex. +%% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode58=12 % : + \catcode64=11 % @ + \catcode123=1 % { + \catcode125=2 % } + \expandafter\let\expandafter\x\csname ver@ltxcmds.sty\endcsname + \ifx\x\relax % plain-TeX, first loading + \else + \def\empty{}% + \ifx\x\empty % LaTeX, first loading, + % variable is initialized, but \ProvidesPackage not yet seen + \else + \expandafter\ifx\csname PackageInfo\endcsname\relax + \def\x#1#2{% + \immediate\write-1{Package #1 Info: #2.}% + }% + \else + \def\x#1#2{\PackageInfo{#1}{#2, stopped}}% + \fi + \x{ltxcmds}{The package is already loaded}% + \aftergroup\endinput + \fi + \fi +\endgroup% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode35=6 % # + \catcode39=12 % ' + \catcode40=12 % ( + \catcode41=12 % ) + \catcode44=12 % , + \catcode45=12 % - + \catcode46=12 % . + \catcode47=12 % / + \catcode58=12 % : + \catcode64=11 % @ + \catcode91=12 % [ + \catcode93=12 % ] + \catcode123=1 % { + \catcode125=2 % } + \expandafter\ifx\csname ProvidesPackage\endcsname\relax + \def\x#1#2#3[#4]{\endgroup + \immediate\write-1{Package: #3 #4}% + \xdef#1{#4}% + }% + \else + \def\x#1#2[#3]{\endgroup + #2[{#3}]% + \ifx#1\@undefined + \xdef#1{#3}% + \fi + \ifx#1\relax + \xdef#1{#3}% + \fi + }% + \fi +\expandafter\x\csname ver@ltxcmds.sty\endcsname +\ProvidesPackage{ltxcmds}% + [2019/12/15 v1.24 LaTeX kernel commands for general use (HO)]% +\begingroup\catcode61\catcode48\catcode32=10\relax% + \catcode13=5 % ^^M + \endlinechar=13 % + \catcode123=1 % { + \catcode125=2 % } + \catcode64=11 % @ + \def\x{\endgroup + \expandafter\edef\csname LTXcmds@AtEnd\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode13=\the\catcode13\relax + \catcode32=\the\catcode32\relax + \catcode35=\the\catcode35\relax + \catcode61=\the\catcode61\relax + \catcode64=\the\catcode64\relax + \catcode123=\the\catcode123\relax + \catcode125=\the\catcode125\relax + }% + }% +\x\catcode61\catcode48\catcode32=10\relax% +\catcode13=5 % ^^M +\endlinechar=13 % +\catcode35=6 % # +\catcode64=11 % @ +\catcode123=1 % { +\catcode125=2 % } +\def\TMP@EnsureCode#1#2{% + \edef\LTXcmds@AtEnd{% + \LTXcmds@AtEnd + \catcode#1=\the\catcode#1\relax + }% + \catcode#1=#2\relax +} +\TMP@EnsureCode{36}{3}% $ +\TMP@EnsureCode{38}{4}% & +\TMP@EnsureCode{40}{12}% ( +\TMP@EnsureCode{41}{12}% ) +\TMP@EnsureCode{45}{12}% - +\TMP@EnsureCode{46}{12}% . +\TMP@EnsureCode{47}{12}% / +\TMP@EnsureCode{60}{12}% < +\TMP@EnsureCode{62}{12}% > +\TMP@EnsureCode{91}{12}% [ +\TMP@EnsureCode{96}{12}% ` +\TMP@EnsureCode{93}{12}% ] +\TMP@EnsureCode{94}{12}% ^ (superscript) (!) +\TMP@EnsureCode{124}{12}% | +\edef\LTXcmds@AtEnd{\LTXcmds@AtEnd\noexpand\endinput} +\chardef\ltx@zero=0 % +\chardef\ltx@one=1 % +\chardef\ltx@two=2 % +\chardef\ltx@active=13 % +\chardef\ltx@cclv=255 % +\def\ltx@minusone{% + -\ltx@one +} +\toksdef\ltx@LocToksA=0 % +\toksdef\ltx@LocToksB=2 % +\toksdef\ltx@LocToksC=4 % +\toksdef\ltx@LocToksD=6 % +\toksdef\ltx@LocToksE=8 % +\toksdef\ltx@GlobToksA=1 % +\toksdef\ltx@GlobToksB=3 % +\toksdef\ltx@GlobToksC=5 % +\toksdef\ltx@GlobToksD=7 % +\toksdef\ltx@GlobToksE=9 % +\dimendef\ltx@LocDimenA=0 % +\dimendef\ltx@LocDimenB=2 % +\dimendef\ltx@LocDimenC=4 % +\dimendef\ltx@LocDimenD=6 % +\dimendef\ltx@LocDimenE=8 % +\dimendef\ltx@GlobDimenA=1 % +\dimendef\ltx@GlobDimenB=3 % +\dimendef\ltx@GlobDimenC=5 % +\dimendef\ltx@GlobDimenD=7 % +\dimendef\ltx@GlobDimenE=9 % +\skipdef\ltx@LocSkipA=0 % +\skipdef\ltx@LocSkipB=2 % +\skipdef\ltx@LocSkipC=4 % +\skipdef\ltx@LocSkipD=6 % +\skipdef\ltx@LocSkipE=8 % +\skipdef\ltx@GlobSkipA=1 % +\skipdef\ltx@GlobSkipB=3 % +\skipdef\ltx@GlobSkipC=5 % +\skipdef\ltx@GlobSkipD=7 % +\skipdef\ltx@GlobSkipE=9 % +\long\def\ltx@gobble#1{} +\long\def\ltx@gobbletwo#1#2{} +\long\def\ltx@gobblethree#1#2#3{} +\long\def\ltx@gobblefour#1#2#3#4{} +\def\ltx@GobbleNum#1{% + \romannumeral + \csname ltx@zero% + \expandafter\LTXcmds@GobbleNum + \romannumeral\LTXcmds@num{#1}000{m\endcsname}% +} +\def\LTXcmds@GobbleNum#1{% + \csname LTXcmds@G#1\LTXcmds@GobbleNum +} +\long\def\LTXcmds@Gm#1{% + \endcsname +} +\long\def\ltx@firstofone#1{#1} +\long\def\ltx@firstoftwo#1#2{#1} +\long\def\ltx@secondoftwo#1#2{#2} +\long\def\ltx@firstofthree#1#2#3{#1} +\long\def\ltx@secondofthree#1#2#3{#2} +\long\def\ltx@thirdofthree#1#2#3{#3}% +\long\def\ltx@firstoffour#1#2#3#4{#1} +\long\def\ltx@secondoffour#1#2#3#4{#2} +\long\def\ltx@thirdoffour#1#2#3#4{#3}% +\long\def\ltx@fourthoffour#1#2#3#4{#4}% +\long\def\ltx@carzero#1\@nil{}% +\long\def\LTXcmds@cdrzero#1\@nil{#1} +\def\ltx@cdrzero{% + \romannumeral\LTXcmds@cdrzero\ltx@zero +} +\long\def\ltx@car#1#2\@nil{#1} +\long\def\ltx@cdr#1{% + \romannumeral\LTXcmds@cdrzero\ltx@zero +} +\long\def\ltx@cartwo#1#2#3\@nil{#1#2} +\long\def\ltx@carsecond#1#2#3\@nil{#2} +\long\def\ltx@cdrtwo#1#2{% + \romannumeral\LTXcmds@cdrzero\ltx@zero +} +\long\def\ltx@carthree#1#2#3#4\@nil{#1#2#3} +\long\def\ltx@carthird#1#2#3#4\@nil{#3} +\long\def\ltx@cdrthree#1#2#3{% + \romannumeral\LTXcmds@cdrzero\ltx@zero +} +\long\def\ltx@carfour#1#2#3#4#5\@nil{#1#2#3#4} +\long\def\ltx@carfourth#1#2#3#4#5\@nil{#4} +\long\def\ltx@cdrfour#1#2#3#4{% + \romannumeral\LTXcmds@cdrzero\ltx@zero +} +\def\ltx@CarNum#1{% + \romannumeral + \csname LTXcmds@CarNumFinish% + \expandafter\LTXcmds@CarNum + \romannumeral\LTXcmds@num{#1}000{x\endcsname}% +} +\def\LTXcmds@CarNum#1{% + \csname LTXcmds@C#1\LTXcmds@CarNum +} +\long\def\LTXcmds@Cm#1#2{% + \endcsname{#1#2}% +} +\def\LTXcmds@Cx#1{% + \endcsname{}% +} +\long\def\LTXcmds@CarNumFinish#1#2\@nil{% + \ltx@zero + #1% +} +\def\ltx@CarNumth#1{% + \romannumeral + \expandafter\expandafter\expandafter + \LTXcmds@CarNumth + \ltx@GobbleNum{#1}{}% +} +\long\def\LTXcmds@CarNumth#1#2\@nil{% + \ltx@zero + #1% +} +\def\ltx@CdrNum#1{% + \romannumeral% + \expandafter\expandafter\expandafter\ltx@cdrzero + \expandafter\expandafter\expandafter\ltx@zero + \ltx@GobbleNum{#1}% +} +\long\def\ltx@ReturnAfterFi#1\fi{\fi#1} +\long\def\ltx@ReturnAfterElseFi#1\else#2\fi{\fi#1} +\def\ltx@empty{} +\def\ltx@space{ } +\begingroup + \lccode`0=`\%\relax +\lowercase{\endgroup + \def\ltx@percentchar{0}% +} +\begingroup + \lccode`0=`\\\relax +\lowercase{\endgroup + \def\ltx@backslashchar{0}% +} +\begingroup + \lccode`0=`\#\relax +\lowercase{\endgroup + \def\ltx@hashchar{0}% +} +\begingroup + \lccode`0=`\{\relax +\lowercase{\endgroup + \def\ltx@leftbracechar{0}% +} +\begingroup + \lccode`0=`\}\relax +\lowercase{\endgroup + \def\ltx@rightbracechar{0}% +} +\def\ltx@newif#1{% + \begingroup + \escapechar=-1 % + \expandafter\endgroup + \expandafter\LTXcmds@newif\string#1\@nil +} +\begingroup + \escapechar=-1 % +\expandafter\endgroup +\expandafter\def\expandafter\LTXcmds@newif\string\if#1\@nil{% + \expandafter\edef\csname#1true\endcsname{% + \let + \expandafter\noexpand\csname if#1\endcsname + \noexpand\iftrue + }% + \expandafter\edef\csname#1false\endcsname{% + \let + \expandafter\noexpand\csname if#1\endcsname + \noexpand\iffalse + }% + \csname#1false\endcsname +} +\def\ltx@newglobalif#1{% + \begingroup + \escapechar=-1 % + \expandafter\endgroup + \expandafter\LTXcmds@newglobalif\string#1\@nil +} +\begingroup + \escapechar=-1 % +\expandafter\endgroup +\expandafter +\def\expandafter\LTXcmds@newglobalif\string\if#1\@nil{% + \expandafter\edef\csname#1true\endcsname{% + \global\let + \expandafter\noexpand\csname if#1\endcsname + \noexpand\iftrue + }% + \expandafter\edef\csname#1false\endcsname{% + \global\let + \expandafter\noexpand\csname if#1\endcsname + \noexpand\iffalse + }% + \csname#1false\endcsname +} +\def\ltx@LocalExpandAfter{% + \begingroup + \expandafter\expandafter\expandafter + \endgroup + \expandafter +} +\ltx@LocalExpandAfter +\ifx\csname ifcsname\endcsname\relax + \def\ltx@ifundefined#1{% + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + }% + \def\ltx@IfUndefined#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + }% + \expandafter\ltx@gobble +\else + \expandafter\ltx@firstofone +\fi +{% + \def\ltx@ifundefined#1{% + \ifcsname #1\endcsname + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\expandafter\expandafter\ltx@firstoftwo + \else + \expandafter\expandafter\expandafter\ltx@secondoftwo + \fi + \else + \expandafter\ltx@firstoftwo + \fi + }% + \let\ltx@IfUndefined\ltx@ifundefined +} +\def\ltx@RemovePrefix#1>{} +\def\ltx@StripPrefix{% + \expandafter\ltx@RemovePrefix +} +\def\ltx@onelevel@sanitize#1{% + \edef#1{% + \expandafter + \ltx@RemovePrefix\meaning#1% + }% +} +\def\ltx@clsextension{cls} +\def\ltx@pkgextension{sty} +\def\ltx@iffileloaded#1{% + \ltx@ifundefined{ver@#1}\ltx@secondoftwo\ltx@firstoftwo +} +\def\ltx@ifclassloaded#1{% + \ltx@iffileloaded{#1.\ltx@clsextension}% +} +\def\ltx@ifpackageloaded#1{% + \ltx@iffileloaded{#1.\ltx@pkgextension}% +} +\def\ltx@iffilelater#1#2{% + \ltx@iffileloaded{#1}{% + \expandafter\LTXcmds@IfLater\expandafter{% + \number + \expandafter\expandafter\expandafter\LTXcmds@ParseVersion + \expandafter\expandafter\expandafter{% + \csname ver@#1\endcsname + }% + \expandafter}\expandafter{% + \number + \expandafter\LTXcmds@ParseVersion\expandafter{#2}% + }% + }\ltx@secondoftwo +} +\def\LTXcmds@IfLater#1#2{% + \ifcase 0% + \ifnum#1<19940101 % + \else + \ifnum#2<19940101 % + \else + \ifnum#2>#1 % + \else + 1% + \fi + \fi + \fi + \ltx@space + \expandafter\ltx@secondoftwo + \else + \expandafter\ltx@firstoftwo + \fi +} +\def\ltx@ifclasslater#1{% + \ltx@iffilelater{#1.\ltx@clsextension}% +} +\def\ltx@ifpackagelater#1{% + \ltx@iffilelater{#1.\ltx@pkgextension}% +} +\ltx@IfUndefined{pdfmatch}{% + \def\LTXcmds@ParseVersion#1{% + \LTXcmds@@ParseVersion#10000/00/00\@nil + }% + \def\LTXcmds@@ParseVersion#1#2#3#4/#5#6/#7#8#9\@nil{% + #1#2#3#4#5#6#7#8% + }% +}{% + \def\LTXcmds@ParseVersion#1{% + \ifnum\pdfmatch{% + ^% + (199[4-9]|[2-9][0-9][0-9][0-9])/% + (0[1-9]|1[0-2])/% + (0[1-9]|[1-2][0-9]|3[0-1])% + }{#1}=1 % + \ltx@StripPrefix\pdflastmatch1 % + \ltx@StripPrefix\pdflastmatch2 % + \ltx@StripPrefix\pdflastmatch3 % + \else + 0% + \fi + }% +} +\long\def\ltx@GlobalAppendToMacro#1#2{% + \ifx\ltx@undefined#1% + \let#1\ltx@empty + \else + \ifx\relax#1% + \let#1\ltx@empty + \fi + \fi + \begingroup + \ltx@LocToksA\expandafter{#1#2}% + \xdef#1{\the\ltx@LocToksA}% + \endgroup +} +\long\def\ltx@LocalAppendToMacro#1#2{% + \global\let\LTXcmds@gtemp#1% + \ifx\ltx@undefined\LTXcmds@gtemp + \global\let\LTXcmds@gtemp\ltx@empty + \else + \ifx\relax\LTXcmds@gtemp + \global\letLTXcmds@gtemp\ltx@empty + \fi + \fi + \begingroup + \ltx@LocToksA\expandafter{\LTXcmds@gtemp#2}% + \xdef\LTXcmds@gtemp{\the\ltx@LocToksA}% + \endgroup + \let#1\LTXcmds@gtemp +} +\long\def\ltx@GlobalPrependToMacro#1#2{% + \ifx\ltx@undefined#1% + \let#1\ltx@empty + \else + \ifx\relax#1% + \let#1\ltx@empty + \fi + \fi + \begingroup + \ltx@LocToksA{#2}% + \ltx@LocToksB\expandafter{#1}% + \xdef#1{\the\ltx@LocToksA\the\ltx@LocToksB}% + \endgroup +} +\long\def\ltx@LocalPrependToMacro#1#2{% + \global\let\LTXcmds@gtemp#1% + \ifx\ltx@undefined\LTXcmds@gtemp + \global\let\LTXcmds@gtemp\ltx@empty + \else + \ifx\relax\LTXcmds@gtemp + \global\letLTXcmds@gtemp\ltx@empty + \fi + \fi + \begingroup + \ltx@LocToksA{#2}% + \ltx@LocToksB\expandafter{\LTXcmds@gtemp}% + \xdef\LTXcmds@gtemp{\the\ltx@LocToksA\the\ltx@LocToksB}% + \endgroup + \let#1\LTXcmds@gtemp +} +\long\def\ltx@ifnextchar#1#2#3{% + \begingroup + \let\LTXcmds@CharToken= #1\relax + \ltx@LocToksA{\endgroup#2}% + \ltx@LocToksB{\endgroup#3}% + \futurelet\LTXcmds@LetToken\LTXcmds@ifnextchar +} +\def\LTXcmds@ifnextchar{% + \ifx\LTXcmds@LetToken\LTXcmds@CharToken + \the\expandafter\ltx@LocToksA + \else + \expandafter + \ifx\csname LTXcmds@LetToken\endcsname\LTXcmds@SpaceToken + \expandafter\expandafter\expandafter\LTXcmds@@ifnextchar + \else + \the\expandafter\expandafter\expandafter\ltx@LocToksB + \fi + \fi +} +\def\LTXcmds@@ifnextchar{% + \expandafter\futurelet + \expandafter\LTXcmds@LetToken + \expandafter\LTXcmds@ifnextchar + \romannumeral-`\.% +} +\ltx@firstofone{\let\LTXcmds@SpaceToken= } % +\long\def\ltx@ifnextchar@nospace#1#2#3{% + \begingroup + \let\LTXcmds@CharToken= #1\relax + \ltx@LocToksA{\endgroup#2}% + \ltx@LocToksB{\endgroup#3}% + \futurelet\LTXcmds@LetToken\LTXcmds@ifnextchar@nospace +} +\def\LTXcmds@ifnextchar@nospace{% + \the + \ifx\LTXcmds@LetToken\LTXcmds@CharToken + \expandafter\ltx@LocToksA + \else + \expandafter\ltx@LocToksB + \fi +} +\ltx@IfUndefined{quitvmode}{% + \ltx@IfUndefined{leavevmode}{% + \ltx@IfUndefined{voidb@x}{% + \ltx@IfUndefined{newbox}{% + \def\ltx@leavevmode{% + \begingroup + \setbox\ltx@zero=\hbox{}% + \begingroup + \setbox\ltx@zero=\hbox{\box\ltx@zero}% + \endgroup + \unhbox\ltx@zero + \endgroup + }% + }{% + \csname newbox\endcsname\LTXcmds@VoidBox + \ifvoid\LTXcmds@VoidBox + \else + \setbox\LTXcmds@VoidBox=\hbox{}% + \begingroup + \setbox\LTXcmds@VoidBox=\hbox{\box\LTXcmds@VoidBox}% + \endgroup + \fi + \def\ltx@leavevmode{\unhbox\LTXcmds@VoidBox}% + }% + }{% + \def\ltx@leavevmode{\unhbox\voidb@x}% + }% + }{% + \let\ltx@leavevmode\leavevmode + }% +}{% + \let\ltx@leavevmode\quitvmode +} +\def\ltx@mbox{% + \ltx@leavevmode + \hbox +} +\ltx@IfUndefined{numexpr}{% + \def\LTXcmds@num#1{% + \expandafter\ltx@firstofone\expandafter{% + \number#1% + }% + }% +}{% + \def\LTXcmds@num#1{% + \expandafter\ltx@firstofone\expandafter{% + \the\numexpr#1% + }% + }% +} +\ltx@IfUndefined{detokenize}{% + \def\LTXcmds@temp#1{% + \long\def\ltx@ifempty##1{% + \romannumeral0% + \iffalse{\fi + \expandafter\ltx@gobble\expandafter{% + \expandafter{\string##1}% + \expandafter\ltx@gobble\string + }% + \expandafter\ltx@firstofthree\expandafter + {\iffalse}\fi + \expandafter#1\ltx@secondoftwo + }% + \expandafter#1\ltx@firstoftwo + }% + \long\def\ltx@ifblank##1{% + \romannumeral0% + \iffalse{\fi + \expandafter\expandafter\expandafter\ltx@gobble + \expandafter\expandafter\expandafter{% + \expandafter\expandafter\expandafter{% + \expandafter\string\ltx@gobble##1.% + }% + \expandafter\ltx@gobble\string + }% + \expandafter\ltx@firstofthree\expandafter + {\iffalse}\fi + \expandafter#1\ltx@secondoftwo + }% + \expandafter#1\ltx@firstoftwo + }% + }% + \LTXcmds@temp{ }% +}{% + \long\def\ltx@ifempty#1{% + \romannumeral% + \csname + LTXcmds@ifempty% + \ifcat$\detokenize{#1}$% + @% + \fi + \endcsname + }% + \long\def\LTXcmds@ifempty@#1#2{0 #1}% + \long\def\LTXcmds@ifempty#1#2{0 #2}% + \long\def\ltx@ifblank#1{% + \romannumeral% + \csname + LTXcmds@ifempty% + \ifcat$\detokenize\expandafter{\ltx@gobble#1.}$% + @% + \fi + \endcsname + }% +} +\long\def\ltx@zapspace#1{% + \romannumeral + \LTXcmds@zapspace\ltx@zero#1 \@nil +} +\long\def\LTXcmds@zapspace#1 #2\@nil{% + \ltx@ifempty{#2}{% + #1% + }{% + \LTXcmds@zapspace#1#2\@nil + }% +} +\ltx@IfUndefined{lastnodetype}{% + \catcode`\$=9 % + \catcode`\&=14 % +}{% + \catcode`\$=14 % + \catcode`\&=9 % +} +\def\ltx@IfBoxEmpty#1{% + \ifvoid#1\relax + \expandafter\ltx@secondoftwo + \else +& \begingroup +& \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% +& \ifhmode\unhcopy\else\unvcopy\fi#1\relax +& \expandafter +& }% +& \expandafter\endgroup +& \ifnum\lastnodetype<\ltx@zero +& \expandafter\expandafter\expandafter\ltx@firstoftwo +& \else +& \expandafter\expandafter\expandafter\ltx@secondoftwo +& \fi +$ \begingroup +$ \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% +$ \penalty\ltx@one +$ \ifhmode\unhcopy\else\unvcopy\fi#1\relax +$ \expandafter +$ }% +$ \ifnum\lastpenalty=\ltx@one +$ \endgroup +$ \begingroup +$ \setbox\ltx@zero=\ifhbox#1\hbox\else\vbox\fi{% +$ \penalty\ltx@two +$ \ifhmode\unhcopy\else\unvcopy\fi#1\relax +$ \expandafter +$ }% +$ \ifnum\lastpenalty=\ltx@two +$ \def\next{\endgroup\expandafter\ltx@firstoftwo}% +$ \else +$ \def\next{\endgroup\expandafter\ltx@secondoftwo}% +$ \fi +$ \else +$ \def\next{\endgroup\expandafter\ltx@secondoftwo}% +$ \fi +$ \next + \fi +} +\def\ltx@IfBoxVoidOrEmpty#1{% + \ifvoid#1\relax + \expandafter\ltx@thirdoffour + \fi + \ltx@IfBoxEmpty{#1}% +} +\LTXcmds@AtEnd% +%% \section{Installation} +\endinput +%% +%% End of file `ltxcmds.sty'. |