diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/xint/xinttools.sty')
-rw-r--r-- | Master/texmf-dist/tex/generic/xint/xinttools.sty | 254 |
1 files changed, 37 insertions, 217 deletions
diff --git a/Master/texmf-dist/tex/generic/xint/xinttools.sty b/Master/texmf-dist/tex/generic/xint/xinttools.sty index b95a530dc77..9639b665c8b 100644 --- a/Master/texmf-dist/tex/generic/xint/xinttools.sty +++ b/Master/texmf-dist/tex/generic/xint/xinttools.sty @@ -20,24 +20,25 @@ %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) -%%---------------------------------------------------------------- -%% The xint bundle (version 1.09n of April 1st, 2014) -%% xinttools: Expandable and non-expandable utilities +%% --------------------------------------------------------------- +%% The xint bundle v1.1 (2014/10/28) %% Copyright (C) 2013-2014 by Jean-Francois Burnol -%%---------------------------------------------------------------- +%% xinttools: Expandable and non-expandable utilities +%% --------------------------------------------------------------- \begingroup\catcode61\catcode48\catcode32=10\relax% \catcode13=5 % ^^M \endlinechar=13 % \catcode123=1 % { \catcode125=2 % } \catcode64=11 % @ - \catcode95=11 % _ \catcode35=6 % # \catcode44=12 % , \catcode45=12 % - \catcode46=12 % . \catcode58=12 % : - \expandafter\let\expandafter\x\csname ver@xint.sty\endcsname + \let\z\endgroup + \expandafter\let\expandafter\x\csname ver@xinttools.sty\endcsname + \expandafter\let\expandafter\w\csname ver@xintkernel.sty\endcsname \expandafter \ifx\csname PackageInfo\endcsname\relax \def\y#1#2{\immediate\write-1{Package #1 Info: #2.}}% @@ -49,177 +50,32 @@ \y{xinttools}{\numexpr not available, aborting input}% \aftergroup\endinput \else - \ifx\x\relax % plain-TeX, first loading + \ifx\x\relax % plain-TeX, first loading of xinttools.sty + \ifx\w\relax % but xintkernel.sty not yet loaded. + \def\z{\endgroup\input xintkernel.sty\relax}% + \fi \else \def\empty {}% \ifx\x\empty % LaTeX, first loading, % variable is initialized, but \ProvidesPackage not yet seen + \ifx\w\relax % xintkernel.sty not yet loaded. + \def\z{\endgroup\RequirePackage{xintkernel}}% + \fi \else - \y{xinttools}{I was already loaded, aborting input}% - \aftergroup\endinput + \aftergroup\endinput % xinttools already loaded. \fi \fi \fi - \def\ChangeCatcodesIfInputNotAborted - {% - \endgroup - \def\XINT_storecatcodes - {% takes care of all, to allow more economical code in modules - \catcode34=\the\catcode34 % " xintbinhex, and 1.09k xintexpr - \catcode63=\the\catcode63 % ? xintexpr - \catcode124=\the\catcode124 % | xintexpr - \catcode38=\the\catcode38 % & xintexpr - \catcode64=\the\catcode64 % @ xintexpr - \catcode33=\the\catcode33 % ! xintexpr - \catcode93=\the\catcode93 % ] -, xintfrac, xintseries, xintcfrac - \catcode91=\the\catcode91 % [ -, xintfrac, xintseries, xintcfrac - \catcode36=\the\catcode36 % $ xintgcd only - \catcode94=\the\catcode94 % ^ - \catcode96=\the\catcode96 % ` - \catcode47=\the\catcode47 % / - \catcode41=\the\catcode41 % ) - \catcode40=\the\catcode40 % ( - \catcode42=\the\catcode42 % * - \catcode43=\the\catcode43 % + - \catcode62=\the\catcode62 % > - \catcode60=\the\catcode60 % < - \catcode58=\the\catcode58 % : - \catcode46=\the\catcode46 % . - \catcode45=\the\catcode45 % - - \catcode44=\the\catcode44 % , - \catcode35=\the\catcode35 % # - \catcode95=\the\catcode95 % _ - \catcode125=\the\catcode125 % } - \catcode123=\the\catcode123 % { - \endlinechar=\the\endlinechar - \catcode13=\the\catcode13 % ^^M - \catcode32=\the\catcode32 % - \catcode61=\the\catcode61\relax % = - }% - \edef\XINT_restorecatcodes_endinput - {% - \XINT_storecatcodes\noexpand\endinput % - }% - \def\XINT_setcatcodes - {% - \catcode61=12 % = - \catcode32=10 % space - \catcode13=5 % ^^M - \endlinechar=13 % - \catcode123=1 % { - \catcode125=2 % } - \catcode95=11 % _ (replaces @ everywhere, starting with 1.06b) - \catcode35=6 % # - \catcode44=12 % , - \catcode45=12 % - - \catcode46=12 % . - \catcode58=11 % : (made letter for error cs) - \catcode60=12 % < - \catcode62=12 % > - \catcode43=12 % + - \catcode42=12 % * - \catcode40=12 % ( - \catcode41=12 % ) - \catcode47=12 % / - \catcode96=12 % ` (for ubiquitous \romannumeral-`0 and some \catcode ) - \catcode94=11 % ^ - \catcode36=3 % $ - \catcode91=12 % [ - \catcode93=12 % ] - \catcode33=11 % ! - \catcode64=11 % @ - \catcode38=12 % & - \catcode124=12 % | - \catcode63=11 % ? - \catcode34=12 % " missing from v < 1.09k although needed in xintbinhex - }% - \XINT_setcatcodes - }% -\ChangeCatcodesIfInputNotAborted -\def\XINTsetupcatcodes {% for use by other modules - \edef\XINT_restorecatcodes_endinput - {% - \XINT_storecatcodes\noexpand\endinput % - }% - \XINT_setcatcodes -}% -\ifdefined\ProvidesPackage - \let\XINT_providespackage\relax -\else - \def\XINT_providespackage #1#2[#3]% - {\immediate\write-1{Package: #2 #3}% - \expandafter\xdef\csname ver@#2.sty\endcsname{#3}}% -\fi +\z% +\XINTsetupcatcodes% defined in xintkernel.sty \XINT_providespackage -\ProvidesPackage {xinttools}% - [2014/04/01 v1.09n Expandable and non-expandable utilities (jfB)]% -\long\def\xint_gobble_ {}% -\long\def\xint_gobble_i #1{}% -\long\def\xint_gobble_ii #1#2{}% -\long\def\xint_gobble_iii #1#2#3{}% -\long\def\xint_gobble_iv #1#2#3#4{}% -\long\def\xint_gobble_v #1#2#3#4#5{}% -\long\def\xint_gobble_vi #1#2#3#4#5#6{}% -\long\def\xint_gobble_vii #1#2#3#4#5#6#7{}% -\long\def\xint_gobble_viii #1#2#3#4#5#6#7#8{}% -\long\def\xint_firstofone #1{#1}% -\long\def\xint_firstoftwo #1#2{#1}% -\long\def\xint_secondoftwo #1#2{#2}% -\long\def\xint_firstofone_thenstop #1{ #1}% -\long\def\xint_firstoftwo_thenstop #1#2{ #1}% -\long\def\xint_secondoftwo_thenstop #1#2{ #2}% -\def\xint_minus_thenstop { -}% -\def\xint_gob_til_zero #10{}% no need to make it long, so far -\def\xint_UDzerominusfork #10-#2#3\krof {#2}% id. -\long\def\xint_gob_til_R #1\R {}% -\long\def\xint_gob_til_W #1\W {}% -\long\def\xint_gob_til_Z #1\Z {}% -\long\def\xint_bye #1\xint_bye {}% -\let\xint_relax\relax -\def\xint_brelax {\xint_relax }% -\long\def\xint_gob_til_xint_relax #1\xint_relax {}% -\long\def\xint_afterfi #1#2\fi {\fi #1}% -\chardef\xint_c_ 0 -\chardef\xint_c_i 1 -\chardef\xint_c_ii 2 -\chardef\xint_c_iii 3 -\chardef\xint_c_iv 4 -\chardef\xint_c_v 5 -\chardef\xint_c_vi 6 -\chardef\xint_c_vii 7 -\chardef\xint_c_viii 8 +\ProvidesPackage{xinttools}% + [2014/10/28 v1.1 Expandable and non-expandable utilities (jfB)]% \newtoks\XINT_toks \xint_firstofone{\let\XINT_sptoken= } %<- space here! -\def\xintodef #1{\expandafter\def\expandafter#1\expandafter }% -\ifdefined\odef\else\let\odef\xintodef\fi -\def\xintgodef {\global\xintodef }% -\def\xintoodef #1{\expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter#1% - \expandafter\expandafter\expandafter }% -\ifdefined\oodef\else\let\oodef\xintoodef\fi +\def\xintgodef {\global\xintodef }% \def\xintgoodef {\global\xintoodef }% -\def\xintfdef #1#2{\expandafter\def\expandafter#1\expandafter - {\romannumeral-`0#2}}% -\ifdefined\fdef\else\let\fdef\xintfdef\fi -\def\xintgfdef {\global\xintfdef }% should be \global\fdef if \fdef pre-exists? -\def\xintReverseOrder {\romannumeral0\xintreverseorder }% -\long\def\xintreverseorder #1% -{% - \XINT_rord_main {}#1% - \xint_relax - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_bye\xint_bye\xint_bye\xint_bye - \xint_relax -}% -\long\def\XINT_rord_main #1#2#3#4#5#6#7#8#9% -{% - \xint_bye #9\XINT_rord_cleanup\xint_bye - \XINT_rord_main {#9#8#7#6#5#4#3#2#1}% -}% -\long\edef\XINT_rord_cleanup\xint_bye\XINT_rord_main #1#2\xint_relax -{% - \noexpand\expandafter\space\noexpand\xint_gob_til_xint_relax #1% -}% +\def\xintgfdef {\global\xintfdef }% \def\xintRevWithBraces {\romannumeral0\xintrevwithbraces }% \def\xintRevWithBracesNoExpand {\romannumeral0\xintrevwithbracesnoexpand }% \long\def\xintrevwithbraces #1% @@ -261,72 +117,36 @@ \space \csname xint_gobble_\romannumeral #1\endcsname }% -\def\xintLength {\romannumeral0\xintlength }% -\long\def\xintlength #1% -{% - \XINT_length_loop - 0.#1\xint_relax\xint_relax\xint_relax\xint_relax - \xint_relax\xint_relax\xint_relax\xint_relax\xint_bye -}% -\long\def\XINT_length_loop #1.#2#3#4#5#6#7#8#9% -{% - \xint_gob_til_xint_relax #9\XINT_length_finish_a\xint_relax - \expandafter\XINT_length_loop\the\numexpr #1+\xint_c_viii.% -}% -\def\XINT_length_finish_a\xint_relax\expandafter\XINT_length_loop - \the\numexpr #1+\xint_c_viii.#2\xint_bye -{% - \XINT_length_finish_b #2\W\W\W\W\W\W\W\Z {#1}% -}% -\def\XINT_length_finish_b #1#2#3#4#5#6#7#8\Z -{% - \xint_gob_til_W - #1\XINT_length_finish_c \xint_c_ - #2\XINT_length_finish_c \xint_c_i - #3\XINT_length_finish_c \xint_c_ii - #4\XINT_length_finish_c \xint_c_iii - #5\XINT_length_finish_c \xint_c_iv - #6\XINT_length_finish_c \xint_c_v - #7\XINT_length_finish_c \xint_c_vi - \W\XINT_length_finish_c \xint_c_vii\Z -}% -\edef\XINT_length_finish_c #1#2\Z #3% - {\noexpand\expandafter\space\noexpand\the\numexpr #3+#1\relax}% \def\xintZapFirstSpaces {\romannumeral0\xintzapfirstspaces }% \long\edef\xintzapfirstspaces #1% - {\noexpand\XINT_zapbsp_a \space #1\space\space\noexpand\xint_bye\xint_relax }% -\xint_firstofone {\long\def\XINT_zapbsp_a #1 } %<- space token here + {\noexpand\XINT_zapbsp_a \space #1\xint_relax \space\space\xint_relax }% +\xint_firstofone {\long\edef\XINT_zapbsp_a #1 } %<- space token here {% - \XINT_zapbsp_again? #1\xint_bye\XINT_zapbsp_b {#1}% + \noexpand\XINT_zapbsp_again? #1\noexpand\xint_bye\noexpand\XINT_zapbsp_b #1\space\space }% \long\def\XINT_zapbsp_again? #1{\xint_bye #1\XINT_zapbsp_again }% -\edef\XINT_zapbsp_again\XINT_zapbsp_b #1{\noexpand\XINT_zapbsp_a\space }% -\long\def\XINT_zapbsp_b #1#2\xint_relax - {\XINT_zapbsp_end? #2\XINT_zapbsp_e\empty #2{#1}}% -\long\def\XINT_zapbsp_end? #1{\xint_bye #1\XINT_zapbsp_end }% -\long\def\XINT_zapbsp_end\XINT_zapbsp_e\empty #1\xint_bye #2{#2#1}% -\xint_firstofone{\long\def\XINT_zapbsp_e #1 } \xint_bye - {\expandafter\XINT_zapbsp_f \expandafter{#1}}% -\long\edef\XINT_zapbsp_f #1#2{#2\space\space #1}% +\xint_firstofone{\def\XINT_zapbsp_again\XINT_zapbsp_b} {\XINT_zapbsp_a }% +\long\def\XINT_zapbsp_b #1\xint_relax #2\xint_relax {#1}% \def\xintZapLastSpaces {\romannumeral0\xintzaplastspaces }% -\long\edef\xintzaplastspaces #1{\noexpand\XINT_zapesp_a {\space}\noexpand\empty - #1\space\space\noexpand\xint_bye \xint_relax}% +\long\edef\xintzaplastspaces #1{\noexpand\XINT_zapesp_a {}\noexpand\empty#1% + \space\space\noexpand\xint_bye\xint_relax}% \xint_firstofone {\long\def\XINT_zapesp_a #1#2 } %<- second space here {\expandafter\XINT_zapesp_b\expandafter{#2}{#1}}% \long\def\XINT_zapesp_b #1#2#3\xint_relax {\XINT_zapesp_end? #3\XINT_zapesp_e {#2#1}\empty #3\xint_relax }% \long\def\XINT_zapesp_end? #1{\xint_bye #1\XINT_zapesp_end }% -\long\def\XINT_zapesp_end\XINT_zapesp_e #1#2\xint_relax {#1}% +\long\def\XINT_zapesp_end\XINT_zapesp_e #1#2\xint_relax { #1}% \long\edef\XINT_zapesp_e #1{\noexpand \XINT_zapesp_a {#1\space\space}}% \def\xintZapSpaces {\romannumeral0\xintzapspaces }% -\long\edef\xintzapspaces #1% - {\noexpand\XINT_zapsp_a \space #1\space\space\noexpand\xint_bye\xint_relax}% -\xint_firstofone {\long\def\XINT_zapsp_a #1 } %<- space token here -{% - \XINT_zapsp_again? #1\xint_bye\XINT_zapesp_b {#1}{}% -}% +\long\edef\xintzapspaces #1% like \xintZapFirstSpaces. + {\noexpand\XINT_zapsp_a \space #1\xint_relax \space\space\xint_relax }% +\xint_firstofone {\long\edef\XINT_zapsp_a #1 } % + {\noexpand\XINT_zapsp_again? #1\noexpand\xint_bye\noexpand\XINT_zapsp_b #1\space\space}% \long\def\XINT_zapsp_again? #1{\xint_bye #1\XINT_zapsp_again }% -\long\edef\XINT_zapsp_again\XINT_zapesp_b #1#2{\noexpand\XINT_zapsp_a\space }% +\xint_firstofone{\def\XINT_zapsp_again\XINT_zapsp_b} {\XINT_zapsp_a }% +\xint_firstofone{\def\XINT_zapsp_b} {\XINT_zapsp_c }% +\long\edef\XINT_zapsp_c #1\xint_relax #2\xint_relax {\noexpand\XINT_zapesp_a + {}\noexpand \empty #1\space\space\noexpand\xint_bye\xint_relax }% \def\xintZapSpacesB {\romannumeral0\xintzapspacesb }% \long\def\xintzapspacesb #1{\XINT_zapspb_one? #1\xint_relax\xint_relax \xint_bye\xintzapspaces {#1}}% |