summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/xargs/xargs.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/xargs/xargs.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/xargs/xargs.sty')
-rw-r--r--macros/latex/contrib/xargs/xargs.sty361
1 files changed, 361 insertions, 0 deletions
diff --git a/macros/latex/contrib/xargs/xargs.sty b/macros/latex/contrib/xargs/xargs.sty
new file mode 100644
index 0000000000..a523e8abc6
--- /dev/null
+++ b/macros/latex/contrib/xargs/xargs.sty
@@ -0,0 +1,361 @@
+%%
+%% This is file `xargs.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xargs.dtx (with options: `package')
+%%
+%% xargs package by Manuel P\'egouri\'e-Gonnard <mpg@elzevir.fr>
+%% This is a generated file. See xargs.dtx for license information.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xargs}
+ [2008/03/22 v1.1 \space extended macro definitions \space (mpg)]
+\RequirePackage{xkeyval}
+\@ifdefinable\xargs@max{\newcount\xargs@max}
+\@ifdefinable\xargs@temp\relax
+\@ifdefinable\xargs@toksa{\newtoks\xargs@toksa}
+\@ifdefinable\xargs@toksb{\newtoks\xargs@toksb}
+\newcommand*\@protected@testopt@xargs[1]{%
+ \ifx\protect\@typeset@protect
+ \expandafter\xargs@read
+ \else
+ \@x@protect#1%
+ \fi}
+\newcommand*\xargs@read[2]{%
+ \begingroup
+ \xargs@toksa{#1}%
+ \xargs@toksb{#2}%
+ \xargs@continue}
+\newcommand\xargs@continue{%
+ \expandafter\xargs@pick@next\the\xargs@toksb,\@nil
+ \xargs@temp}
+\@ifdefinable\xargs@pick@next{%
+ \def\xargs@pick@next#1,#2\@nil{%
+ \def\xargs@temp{#1}%
+ \xargs@toksb{#2}%
+ \ifx\xargs@temp\empty
+ \def\xargs@temp{\expandafter\endgroup\the\xargs@toksa}%
+ \fi}}
+\newcommand*\xargs@set@defflag[1]{%
+ \def\xargs@default@flag{#1}}
+\newcommand\xargs@put@arg[1]{%
+ \xargs@toksa\expandafter{\the\xargs@toksa{#1}}%
+ \xargs@continue}
+\newcommand*\xargs@test@opt[1]{%
+ \xargs@ifnextchar[%]
+ {\xargs@grab@opt{#1}}%
+ {\xargs@put@opt{#1}}}
+\newcommand\xargs@put@opt[1]{%
+ \xargs@toksa\expandafter{\the\xargs@toksa[{#1}]}%
+ \xargs@continue}
+\@ifdefinable\xargs@grab@opt{%
+ \long\def\xargs@grab@opt#1[#2]{%
+ \toks@{#2}\edef\xargs@temp{\the\toks@}%
+ \ifx\xargs@temp\xargs@default@flag
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi{%
+ \xargs@put@opt{#1}%
+ }{%
+ \xargs@put@opt{#2}}}}
+\newcommand\xargs@ifnextchar[3]{%
+ \let\xargs@temp\empty
+ \let\reserved@d=#1%
+ \def\reserved@a{#2}%
+ \def\reserved@b{#3}%
+ \futurelet\@let@token\xargs@ifnch}
+\newcommand\xargs@ifnch{%
+ \ifx\@let@token\@sptoken
+ \edef\xargs@temp{\xargs@temp\space}%
+ \let\reserved@c\xargs@xifnch
+ \else
+ \ifx\@let@token\reserved@d
+ \let\reserved@c\reserved@a
+ \else
+ \def\reserved@c{\expandafter\reserved@b\xargs@temp}%
+ \fi
+ \fi
+ \reserved@c}
+\@ifdefinable\xargs@xifnch{%
+ \expandafter\def\expandafter\xargs@xifnch\space{%
+ \futurelet\@let@token\xargs@ifnch}}
+\@ifdefinable\xargs@key@addprefix{%
+ \define@key[xargs]{key}{addprefix}[]{%
+ \global\expandafter\def\expandafter\xargs@prefix\expandafter{%
+ \xargs@prefix#1}%
+ \xargs@makeshort#1\long\@nil}}
+\@ifdefinable\xargs@makeshort{%
+ \def\xargs@makeshort#1\long#2{%
+ \expandafter\gdef\expandafter\xargs@shortpref\expandafter{%
+ \xargs@shortpref#1}%
+ \ifx#2\@nil \else
+ \expandafter\xargs@makeshort\expandafter#2%
+ \fi}}
+\newcommand\xargs@star@or@long[1]{%
+ \global\let\xargs@shortpref\@empty
+ \@ifstar{\gdef\xargs@prefix{}#1}{\gdef\xargs@prefix{\long}#1}}
+\define@key[xargs]{key}{usedefault}[]{%
+ \xargs@toksa{#1}\edef\xargs@default@flag{\the\xargs@toksa}}
+\providecommand\@namenewc[1]{%
+ \expandafter\newcommand\csname #1\endcsname}
+\@namenewc{xargs@action@1}{\xargs@put@arg}
+\@namenewc{xargs@action@2}{\xargs@put@arg}
+\@namenewc{xargs@action@3}{\xargs@put@arg}
+\@namenewc{xargs@action@4}{\xargs@put@arg}
+\@namenewc{xargs@action@5}{\xargs@put@arg}
+\@namenewc{xargs@action@6}{\xargs@put@arg}
+\@namenewc{xargs@action@7}{\xargs@put@arg}
+\@namenewc{xargs@action@8}{\xargs@put@arg}
+\@namenewc{xargs@action@9}{\xargs@put@arg}
+\newcommand*\xargs@def@key[2]{%
+ \expandafter\@ifdefinable\csname xargs@key@#1\endcsname{%
+ \define@key[xargs]{key}{#1}[]{%
+ \ifnum\xargs@max<#1
+ \PackageError{xargs}{%
+ Illegal argument label in\MessageBreak
+ optional arguments description%
+ }{%
+ You are trying to make optional an argument whose label (#1)
+ \MessageBreak is higher than the total number (\the\xargs@max)
+ of parameters. \MessageBreak This can't be done and your
+ demand will be ignored.}%
+ \else
+ \expandafter\expandafter\expandafter
+ \ifx\csname xargs@action@#1\endcsname\xargs@put@arg \else
+ \PackageWarning{xargs}{%
+ Argument #1 was allready given a default value.\MessageBreak
+ Previous value will be overriden.\MessageBreak}%
+ \fi
+ \@namedef{xargs@action@#1}{\xargs@test@opt{##1}}%
+ #2%
+ \fi}}}
+\newif\ifxargs@firstopt@
+\newif\ifxargs@otheropt@
+\xargs@def@key1\xargs@firstopt@true
+\xargs@def@key2\xargs@otheropt@true \xargs@def@key3\xargs@otheropt@true
+\xargs@def@key4\xargs@otheropt@true \xargs@def@key5\xargs@otheropt@true
+\xargs@def@key6\xargs@otheropt@true \xargs@def@key7\xargs@otheropt@true
+\xargs@def@key8\xargs@otheropt@true \xargs@def@key9\xargs@otheropt@true
+\newcommand\xargs@setkeys[1]{%
+ \setkeys*[xargs]{key}{#1}%
+ \xargs@check@keys}
+\newcommand\xargs@check@keys{%
+ \ifx\XKV@rm\empty \else
+ \xargs@toksa\expandafter{\XKV@rm}%
+ \PackageError{xargs}{%
+ Illegal key or argument label in\MessageBreak
+ optional arguments description%
+ }{%
+ You can only use non-zero digits as argument labels.\MessageBreak
+ Other allowed keys are usedefault and addprefix.\MessageBreak
+ You wrote: "\the\xargs@toksa".\MessageBreak
+ I can't understand this and I'm going to ignore it.}%
+ \fi}
+\newcommand\xargs@add@args[1]{%
+ \xargs@toksa\expandafter{\the\xargs@toksa #1,}%
+ \expandafter
+ \ifx\@car#1\@nil\xargs@put@arg
+ \xargs@toksb\expandafter\expandafter\expandafter{%
+ \the\expandafter\xargs@toksb\expandafter##\the\count@}%
+ \else
+ \xargs@toksb\expandafter\expandafter\expandafter{%
+ \the\expandafter\xargs@toksb\expandafter
+ [\expandafter##\the\count@]}%
+ \fi}
+\@ifdefinable\xargs@process@keys{%
+ \long\def\xargs@process@keys#1[#2]{%
+ \begingroup
+ \xargs@setkeys{#2}%
+ \xargs@toksa{}\xargs@toksb{}%
+ \@ifundefined{xargs@default@flag}{}{%
+ \xargs@toksa\expandafter{%
+ \expandafter\xargs@set@defflag\expandafter{%
+ \xargs@default@flag}}}
+ \count@\z@
+ \@whilenum\xargs@max>\count@ \do{%
+ \advance\count@\@ne
+ \expandafter\expandafter\expandafter\xargs@add@args
+ \expandafter\expandafter\expandafter{%
+ \csname xargs@action@\the\count@\endcsname}}%
+ \ifxargs@otheropt@ \else
+ \ifxargs@firstopt@
+ \let\xargs@test@opt\@firstofone
+ \xargs@toksa\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter\expandafter{%
+ \csname xargs@action@1\endcsname}%
+ \fi
+ \fi
+ \edef\xargs@temp{%
+ \ifxargs@otheropt@ \noexpand\xargs@xargsdef \else
+ \ifxargs@firstopt@ \noexpand\xargs@xargdef \else
+ \noexpand\xargs@argdef
+ \fi\fi
+ \noexpand#1%
+ \expandafter\noexpand\csname\string#1\endcsname
+ {\the\xargs@toksa}{\the\xargs@toksb}}%
+ \expandafter\endgroup
+ \expandafter\xargs@drc@hook
+ \xargs@temp}}
+\newcommand\xargs@argdef[5]{%
+ \@ifdefinable#1{%
+ \xargs@prefix\def#1#4{#5}}}
+\newcommand\xargs@xargdef[5]{%
+ \@ifdefinable#1{%
+ \xargs@shortpref\def#1{\@protected@testopt#1#2{#3}}%
+ \xargs@prefix\def#2#4{#5}}}
+\newcommand\xargs@xargsdef[5]{%
+ \@ifdefinable#1{%
+ \xargs@shortpref\def#1{\@protected@testopt@xargs#1#2{#3}}%
+ \xargs@prefix\def#2#4{#5}}}
+\newcommand\newcommandx{%
+ \xargs@star@or@long\xargs@newc}
+\newcommand*\xargs@newc[1]{%
+ \@testopt{\xargs@set@max{#1}}{0}}
+\@ifdefinable\xargs@set@max{%
+ \def\xargs@set@max#1[#2]{%
+ \kernel@ifnextchar[%]
+ {\xargs@max=#2 \xargs@check@max{#1}}%
+ {\@argdef#1[#2]}}}
+\newcommand\xargs@check@max{%
+ \ifcase\xargs@max \or\or\or\or\or\or\or\or\or\else
+ \PackageError{xargs}{Illegal number, treated as zero}{The total
+ number of arguments must be in the 0..9 range.\MessageBreak
+ Since your value is illegal, i'm going to use 0 instead.}
+ \xargs@max0
+ \fi
+ \xargs@process@keys}
+\newcommand\CheckCommandx{%
+ \xargs@star@or@long\xargs@CheckC}
+\@onlypreamble\CheckCommandx
+\newcommand\xargs@CheckC[1]{%
+ \@testopt{\xargs@check@a#1}0}
+\@onlypreamble\xargs@CheckC
+\@ifdefinable\xargs@check@a{%
+ \def\xargs@check@a#1[#2]{%
+ \kernel@ifnextchar[%]
+ {\xargs@check@b#1[#2]}%
+ {\xargs@check@c#1{[#2]}}}}
+\@onlypreamble\xargs@check@a
+\@ifdefinable\xargs@check@b{%
+ \def\xargs@check@b#1[#2][#3]{%
+ \xargs@check@c{#1}{[#2][{#3}]}}}
+\@onlypreamble\xargs@check@b
+\newcommand\xargs@check@c[3]{%
+ \xargs@toksa{#1}%
+ \expandafter\let\csname\string\reserved@a\endcsname\relax
+ \xargs@renewc\reserved@a#2{#3}%
+ \@ifundefined{\string\reserved@a}{%
+ \ifx#1\reserved@a \else
+ \xargs@check@complain
+ \fi
+ }{%
+ \expandafter
+ \ifx\csname\string#1\expandafter\endcsname
+ \csname\string\reserved@a\endcsname
+ \xargs@check@d
+ \else
+ \xargs@check@complain
+ \fi}}
+\@onlypreamble\xargs@check@c
+\def\xargs@temp{\@protected@testopt}
+\expandafter\xargs@toksa\expandafter{\meaning\xargs@temp}
+\def\xargs@temp#1 {\def\xargs@temp{#1}}
+\expandafter\xargs@temp\the\xargs@toksa
+\expandafter\newcommand\expandafter\xargs@check@d\expandafter{%
+ \expandafter\expandafter\expandafter\xargs@check@e
+ \expandafter\meaning\expandafter\reserved@a\xargs@temp\@nil}
+\@onlypreamble\xargs@check@d
+\@ifdefinable\xargs@check@e{%
+ \expandafter\def\expandafter\xargs@check@e
+ \expandafter#\expandafter1\xargs@temp#2\@nil{%
+ \ifx\empty#1\empty \else
+ \xargs@check@complain
+ \fi}}
+\@onlypreamble\xargs@check@e
+\newcommand\xargs@check@complain{%
+ \PackageWarningNoLine{xargs}{Command \the\xargs@toksa has changed.
+ \MessageBreak Check if current package is valid}}
+\@onlypreamble\xargs@check@complain
+\newcommand\DeclareRobustCommandx{%
+ \xargs@star@or@long\xargs@DRC}
+\newcommand*\xargs@DRC[1]{%
+ \ifx#1\@undefined\else\ifx#1\relax\else
+ \PackageInfo{xargs}{Redefining \string#1}%
+ \fi\fi
+ \edef\reserved@a{\string#1}%
+ \def\reserved@b{#1}%
+ \edef\reserved@b{\expandafter\strip@prefix\meaning\reserved@b}%
+ \edef\xargs@drc@hook{%
+ \noexpand\xargs@shortpref\def\noexpand#1{%
+ \ifx\reserved@a\reserved@b
+ \noexpand\x@protect
+ \noexpand#1%
+ \fi
+ \noexpand\protect
+ \expandafter\noexpand\csname
+ \expandafter\@gobble\string#1 \endcsname}%
+ \expandafter\let\noexpand\xargs@drc@hook\relax}%
+ \let\@ifdefinable\@rc@ifdefinable
+ \expandafter\xargs@newc\csname
+ \expandafter\@gobble\string#1 \endcsname}
+\let\xargs@drc@hook\relax
+\newcommand\renewcommandx{%
+ \xargs@star@or@long\xargs@renewc}
+\newcommand*\xargs@renewc[1]{%
+ \begingroup\escapechar\m@ne
+ \xdef\@gtempa{{\string#1}}%
+ \endgroup
+ \expandafter\@ifundefined\@gtempa{%
+ \PackageError{xargs}{\noexpand#1undefined}{%
+ Try typing \space <return> \space to proceed.\MessageBreak
+ If that doesn't work, type \space X <return> \space to quit.}}%
+ \relax
+ \let\@ifdefinable\@rc@ifdefinable
+ \xargs@newc#1}
+\newcommand\providecommandx{%
+ \xargs@star@or@long\xargs@providec}
+\newcommand*\xargs@providec[1]{%
+ \begingroup\escapechar\m@ne
+ \xdef\@gtempa{{\string#1}}%
+ \endgroup
+ \expandafter\@ifundefined\@gtempa
+ {\def\reserved@a{\xargs@newc#1}}%
+ {\def\reserved@a{\renew@command\reserved@a}}%
+ \reserved@a}
+\newcommand\newenvironmentx{%
+ \xargs@star@or@long\xargs@newenv}
+\newcommand*\xargs@newenv[1]{%
+ \@testopt{\xargs@newenva#1}0}
+\@ifdefinable\xargs@newenva{%
+ \def\xargs@newenva#1[#2]{%
+ \kernel@ifnextchar[%]
+ {\xargs@newenvb#1[#2]}%
+ {\xargs@new@env{#1}{[#2]}}}}
+\@ifdefinable\xargs@newenvb{%
+ \def\xargs@newenvb#1[#2][#3]{%
+ \xargs@new@env{#1}{[#2][{#3}]}}}
+\newcommand\xargs@new@env[4]{%
+ \@ifundefined{#1}{%
+ \expandafter\let\csname#1\expandafter\endcsname
+ \csname end#1\endcsname}%
+ \relax
+ \expandafter\xargs@newc
+ \csname #1\endcsname#2{#3}%
+ \xargs@shortpref\expandafter\def\csname end#1\endcsname{#4}}
+\newcommand\renewenvironmentx{%
+ \xargs@star@or@long\xargs@renewenv}
+\newcommand*\xargs@renewenv[1]{%
+ \@ifundefined{#1}{%
+ \PackageError{xargs}{\noexpand#1undefined}{%
+ Try typing \space <return> \space to proceed.\MessageBreak
+ If that doesn't work, type \space X <return> \space to quit.}}%
+ \relax
+ \expandafter\let\csname#1\endcsname\relax
+ \expandafter\let\csname end#1\endcsname\relax
+ \xargs@newenv{#1}}
+\endinput
+%%
+%% End of file `xargs.sty'.