summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-10-11 20:25:43 +0000
committerKarl Berry <karl@freefriends.org>2023-10-11 20:25:43 +0000
commit78d28a91bee05bbfec3c27727fcc3fd54f7ceded (patch)
tree2725fde77a48b331036e43822be966559da097f6 /Master/texmf-dist/tex/context
parent12c5dc413d8aee3b5f9469df3ecc3f136f989631 (diff)
collargs (11oct23)
git-svn-id: svn://tug.org/texlive/trunk@68512 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context')
-rw-r--r--Master/texmf-dist/tex/context/collargs/t-collargs.tex1598
1 files changed, 1598 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/collargs/t-collargs.tex b/Master/texmf-dist/tex/context/collargs/t-collargs.tex
new file mode 100644
index 00000000000..1581e661e06
--- /dev/null
+++ b/Master/texmf-dist/tex/context/collargs/t-collargs.tex
@@ -0,0 +1,1598 @@
+%%
+%% This is file `t-collargs.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% collargs.dtx (with options: `context')
+%%
+%%
+%% This file is a part of CollArgs, a TeX package providing a command which can
+%% determine the argument scope of any command whose argument structure
+%% conforms to xparse's argument specification, available at
+%% https://ctan.org/pkg/advice and https://github.com/sasozivanovic/advice.
+%%
+%% Copyright (c) 2023- Saso Zivanovic <saso.zivanovic@guest.arnes.si>
+%% (Sa\v{s}o \v{Z}ivanovi\'{c})
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at your
+%% option) any later version. The latest version of this license is in
+%% http://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 Maintainer of this work is Saso Zivanovic.
+%%
+%% The files belonging to this work and covered by LPPL are listed in
+%% (<texmf>/doc/generic/collargs/)FILES.
+%D \module[
+%D file=t-collargs.tex,
+%D version=1.0.0,
+%D title=CollArgs,
+%D subtitle=Collect arguments of any command,
+%D author=Saso Zivanovic,
+%D date=2023-10-07,
+%D copyright=Saso Zivanovic,
+%D license=LPPL,
+%D ]
+\writestatus{loading}{ConTeXt User Module / collargs}
+\unprotect
+\startmodule[collargs]
+\input t-pgfkey
+\input etoolbox-generic
+\ifdefined\toksapp\else
+ \long\def\toksapp#1#2{#1\expandafter{\the#1#2}}%
+\fi
+\ifdefined\etoksapp\else
+ \long\def\etoksapp#1#2{#1\expandafter{\normalexpanded{\the#1#2}}}%
+\fi
+\ifdefined\gtoksapp\else
+ \long\def\gtoksapp#1#2{\global#1\expandafter{\the#1#2}}%
+\fi
+\ifdefined\xtoksapp\else
+ \long\def\xtoksapp#1#2{\global#1\expandafter{\normalexpanded{\the#1#2}}}%
+\fi
+\ifdefined\toks@\else\toksdef\toks@=0 \fi
+\protected\def\CollectArguments{%
+ \pgf@keys@utilifnextchar[\CollectArguments@i{\CollectArgumentsRaw{}}%]
+}
+\def\CollectArguments@i[#1]{\CollectArgumentsRaw{\collargsSet{#1}}}
+\protected\def\CollectArgumentsRaw#1#2#3{%
+ \begingroup
+ \global\let\ifcollargs@last@verbatim\ifcollargs@verbatim
+ \global\let\ifcollargs@last@verbatimbraces\ifcollargs@verbatimbraces
+ \global\collargs@double@fixfalse
+ \collargs@verbatim@wrap{#1}%
+ \collargs@init@grabspaces
+ \def\collargs@next{#3}%
+ \global\collargs@toks{}%
+ \collargs@#2.%
+}
+\def\collargsSet#1{\pgfqkeys{/collargs}{#1}}
+\def\collargs@cs@cases#1{\collargs@cs@cases@i#1\collargs@cs@cases@end}
+\let\collargs@cs@cases@end\relax
+\def\collargs@cs@cases@i{\futurelet\collargs@temp\collargs@cs@cases@ii}
+\def\collargs@cs@cases@ii#1#2\collargs@cs@cases@end{%
+ \ifcat\noexpand\collargs@temp\relax
+ \ifx\relax#2\relax
+ \expandafter\expandafter\expandafter\@firstofthree
+ \else
+ \expandafter\expandafter\expandafter\@secondofthree
+ \fi
+ \else
+ \expandafter\@thirdofthree
+ \fi
+}
+\def\@firstofthree#1#2#3{#1}
+\def\@secondofthree#1#2#3{#2}
+\def\@thirdofthree#1#2#3{#3}
+\collargsSet{
+ caller/.code={\collargsCaller{#1}},
+}
+\def\collargsCaller#1{%
+ \collargs@cs@cases{#1}{%
+ \let\collargs@temp\collargs@caller@cs
+ }{%
+ \let\collargs@temp\collargs@caller@csandmore
+ }{%
+ \let\collargs@temp\collargs@caller@env
+ }%
+ \collargs@temp{#1}%
+}
+\def\collargs@caller@cs#1{%
+ \def\collargs@caller{#1}%
+}
+\def\collargs@caller@csandmore#1{%
+ \begingroup
+ \escapechar -1
+ \expandafter\endgroup
+ \expandafter\def\expandafter\collargs@caller\expandafter{%
+ \csname\string#1\endcsname
+ }%
+}
+\def\collargs@caller@env#1{%
+ \expandafter\def\expandafter\collargs@caller\expandafter{%
+ \csname
+ start%
+ #1%
+ \endcsname
+ }%
+}
+\collargsCaller\CollectArguments
+\newif\ifcollargs@verbatim
+\newif\ifcollargs@verbatimbraces
+\collargsSet{
+ verbatim/.code={\let\collargs@apply@verbatim\collargsVerbatim},
+ verb/.code={\let\collargs@apply@verbatim\collargsVerb},
+ no verbatim/.code={\let\collargs@apply@verbatim\collargsNoVerbatim},
+}
+\def\collargs@verbatim@wrap#1{%
+ \let\collargs@apply@verbatim\relax
+ #1%
+ \collargs@apply@verbatim
+}
+\collargsSet{
+ fix from verbatim/.code={\collargsFixFromVerbatim},
+ fix from verb/.code={\collargsFixFromVerb},
+ fix from no verbatim/.code={\collargsFixFromNoVerbatim},
+}
+\def\collargsFixFromNoVerbatim{%
+ \global\collargs@fix@requestedtrue
+ \global\let\ifcollargs@last@verbatim\iffalse
+}
+\def\collargsFixFromVerbatim{%
+ \global\collargs@fix@requestedtrue
+ \global\let\ifcollargs@last@verbatim\iftrue
+ \global\let\ifcollargs@last@verbatimbraces\iftrue
+}
+\def\collargsFixFromVerb{%
+ \global\collargs@fix@requestedtrue
+ \global\let\ifcollargs@last@verbatim\iftrue
+ \global\let\ifcollargs@last@verbatimbraces\iffalse
+}
+\collargsSet{
+ braces/.code={\collargsBraces{#1}}%
+}
+\collargsSet{
+ environment/.estore in=\collargs@b@envname
+}
+\def\collargsEnvironment#1{\edef\collargs@b@envname{#1}}
+\collargsEnvironment{}
+\collargsSet{
+ begin tag/.is if=collargsBeginTag,
+ end tag/.is if=collargsEndTag,
+ tags/.style={begin tag=#1, end tag=#1},
+ tags/.default=true,
+}
+\newif\ifcollargsBeginTag
+\newif\ifcollargsEndTag
+\collargsSet{
+ ignore nesting/.is if=collargsIgnoreNesting,
+}
+\newif\ifcollargsIgnoreNesting
+\collargsSet{
+ ignore other tags/.is if=collargsIgnoreOtherTags,
+}
+\newif\ifcollargsIgnoreOtherTags
+\collargsSet{
+ append preprocessor/.code={\collargsAppendPreprocessor{#1}},
+ prepend preprocessor/.code={\collargsPrependPreprocessor{#1}},
+ append postprocessor/.code={\collargsAppendPostprocessor{#1}},
+ prepend postprocessor/.code={\collargsPrependPostprocessor{#1}},
+}
+\def\collargsAppendPreprocessor{%
+ \collargs@addprocessor\appto\collargs@preprocess@arg}
+\def\collargsPrependPreprocessor{%
+ \collargs@addprocessor\preto\collargs@preprocess@arg}
+\def\collargsAppendPostprocessor{%
+ \collargs@addprocessor\appto\collargs@postprocess@arg}
+\def\collargsPrependPostprocessor{%
+ \collargs@addprocessor\preto\collargs@postprocess@arg}
+\def\collargs@addprocessor#1#2#3{%
+ #1#2{%
+ \normalexpanded{%
+ \normalunexpanded{#3}{\the\collargsArg}%
+ }%
+ }%
+}
+\def\collargs@preprocess@arg{}
+\def\collargs@postprocess@arg{}
+\collargsSet{
+ clear preprocessors/.code={\collargsClearPreprocessors},
+ clear postprocessors/.code={\collargsClearPostprocessors},
+}
+\def\collargsClearPreprocessors{\def\collargs@preprocess@arg{}}%
+\def\collargsClearPostprocessors{\def\collargs@postprocess@arg{}}%
+\collargsSet{
+ append expandable preprocessor/.code={%
+ \collargsAppendExpandablePreprocessor{#1}},
+ prepend expandable preprocessor/.code={%
+ \collargsPrependExpandablePreprocessor{#1}},
+ append expandable postprocessor/.code={%
+ \collargsAppendExpandablePostprocessor{#1}},
+ prepend expandable postprocessor/.code={%
+ \collargsPrependExpandablePostprocessor{#1}},
+}
+\def\collargsAppendExpandablePreprocessor{%
+ \collargs@addeprocessor\appto\collargs@preprocess@arg}
+\def\collargsPrependExpandablePreprocessor{%
+ \collargs@addeprocessor\preto\collargs@preprocess@arg}
+\def\collargsAppendExpandablePostprocessor{%
+ \collargs@addeprocessor\appto\collargs@postprocess@arg}
+\def\collargsPrependExpandablePostprocessor{%
+ \collargs@addeprocessor\preto\collargs@postprocess@arg}
+\def\collargs@addeprocessor#1#2#3{%
+ #1#2{%
+ \normalexpanded{%
+ \edef\noexpand\collargs@temp{\normalunexpanded{#3}{\the\collargsArg}}%
+ \normalunexpanded{\expandafter\collargsArg\expandafter{\collargs@temp}}%
+ }%
+ }%
+}
+\collargsSet{
+ append prewrap/.code={\collargsAppendPrewrap{#1}},
+ prepend prewrap/.code={\collargsPrependPrewrap{#1}},
+ append postwrap/.code={\collargsAppendPostwrap{#1}},
+ prepend postwrap/.code={\collargsPrependPostwrap{#1}},
+}
+\def\collargsAppendPrewrap{\collargs@addwrap\appto\collargs@preprocess@arg}
+\def\collargsPrependPrewrap{\collargs@addwrap\preto\collargs@preprocess@arg}
+\def\collargsAppendPostwrap{\collargs@addwrap\appto\collargs@postprocess@arg}
+\def\collargsPrependPostwrap{\collargs@addwrap\preto\collargs@postprocess@arg}
+\def\collargs@addwrap#1#2#3{%
+ #1#2{%
+ \long\def\collargs@temp##1{#3}%
+ \expandafter\expandafter\expandafter\collargsArg
+ \expandafter\expandafter\expandafter{%
+ \expandafter\collargs@temp\expandafter{\the\collargsArg}%
+ }%
+ }%
+}
+\collargsSet{%
+ no delimiters/.is if=collargsNoDelimiters,
+}
+\newif\ifcollargsNoDelimiters
+\def\collargs@{%
+ \begingroup
+ \collargs@@@
+}
+\def\collargs@@@#1{%
+ \collargs@in@{#1}{&+!>.}%
+ \ifcollargs@in@
+ \expandafter\collargs@@@iii
+ \else
+ \expandafter\collargs@@@i
+ \fi
+ #1%
+}
+\def\collargs@@@i#1.{%
+ \collargs@fix{\collargs@@@ii#1.}%
+}
+\def\collargs@@@ii{%
+ \global\collargs@fix@requestedfalse
+ \global\let\ifcollargs@last@verbatim\ifcollargs@verbatim
+ \global\let\ifcollargs@last@verbatimbraces\ifcollargs@verbatimbraces
+ \collargs@@@iii
+}
+\def\collargs@@@iii#1{%
+ \ifcsname collargs@#1\endcsname
+ \csname collargs@#1\expandafter\endcsname
+ \else
+ \collargs@error@badtype{#1}%
+ \fi
+}
+\def\collargs@error@badtype#1#2.{%
+ \PackageError{collargs}{Unknown xparse argument type or modifier "#1"
+ for "\expandafter\string\collargs@caller\space"}{}%
+ \endgroup
+}
+\csdef{collargs@&}{%
+ \futurelet\collargs@temp\collargs@amp@i
+}
+\def\collargs@amp@i{%
+ \expandafter\ifx\detokenize{&}\collargs@temp
+ \expandafter\collargs@amp@raw
+ \else
+ \expandafter\collargs@amp@set
+ \fi
+}
+\def\collargs@amp@raw#1#2{%
+ \collargs@verbatim@wrap{#2}%
+ \collargs@@@
+}
+\def\collargs@amp@set#1{%
+ \collargs@verbatim@wrap{\collargsSet{#1}}%
+ \collargs@@@
+}
+\csdef{collargs@+}{%
+ \collargs@longtrue
+ \collargs@@@
+}
+\newif\ifcollargs@long
+\csdef{collargs@>}#1{\collargs@@@}
+\csdef{collargs@!}{%
+ \collargs@grabspacesfalse
+ \collargs@@@
+}
+\newtoks\collargs@toks
+\newtoks\collargsArg
+\csdef{collargs@.}{%
+ \endgroup
+ \normalexpanded{%
+ \endgroup
+ \noexpand\collargs@fix{%
+ \expandonce\collargs@next{\the\collargs@toks}%
+ \collargs@spaces
+ }%
+ }%
+}
+\long\def\collargs@appendarg#1{%
+ \collargsArg={#1}%
+ \ifcollargs@double@fix
+ \collargs@cancel@double@fix
+ \fi
+ \collargs@preprocess@arg
+ \ifcollargsNoDelimiters
+ \else
+ \collargs@process@arg
+ \fi
+ \collargs@postprocess@arg
+ \xtoksapp\collargs@toks{\collargs@grabbed@spaces\the\collargsArg}%
+ \collargs@init@grabspaces
+ \endgroup
+}
+\def\collargs@wrap{\collargs@addwrap\appto\collargs@process@arg}
+\def\collargs@process@arg{}
+\def\collargs@defcollector#1#{%
+ \ifcollargs@long\long\fi
+ \expandafter\def\collargs@caller#1%
+}
+\def\collargs@defusecollector#1#{%
+ \afterassignment\collargs@caller
+ \ifcollargs@long\long\fi
+ \expandafter\def\collargs@caller#1%
+}
+\def\collargs@letusecollector#1{%
+ \expandafter\let\collargs@caller#1%
+ \collargs@caller
+}
+\newif\ifcollargs@grabspaces
+\collargs@grabspacestrue
+\def\collargs@init@grabspaces{%
+ \gdef\collargs@gs@state{0}%
+ \gdef\collargs@spaces{}%
+ \gdef\collargs@otherspaces{}%
+}
+\def\collargs@grabspaces#1{%
+ \edef\collargs@gs@next{\normalunexpanded{#1}}%
+ \ifnum\collargs@gs@state=0
+ \gdef\collargs@gs@state{1}%
+ \expandafter\collargs@gs@i
+ \else
+ \expandafter\collargs@gs@next
+ \fi
+}
+\def\collargs@gs@i{%
+ \futurelet\collargs@temp\collargs@gs@g
+}
+\def\collargs@gs@g{%
+ \ifcat\noexpand\collargs@temp\bgroup
+ \expandafter\collargs@gs@next
+ \else
+ \ifcat\noexpand\collargs@temp\egroup
+ \expandafter\expandafter\expandafter\collargs@gs@next
+ \else
+ \expandafter\expandafter\expandafter\collargs@gs@ii
+ \fi
+ \fi
+}
+\def\collargs@gs@ii{%
+ \ifcollargs@verbatim
+ \expandafter\collargs@gos@iii
+ \else
+ \expandafter\collargs@gs@iii
+ \fi
+}
+\def\collargs@gs@iii{%
+ \expandafter\ifx\space\collargs@temp
+ \expandafter\collargs@gs@iv
+ \else
+ \expandafter\collargs@gs@next
+ \fi
+}
+\expandafter\def\expandafter\collargs@gs@iv\space{%
+ \gappto\collargs@spaces{ }%
+ \xappto\collargs@otherspaces{\collargs@otherspace}%
+ \collargs@gs@i
+}
+\begingroup\catcode`\ =12\relax\gdef\collargs@otherspace{ }\endgroup
+\def\collargs@gos@iii#1{%
+ \ifnum\collargs@cc{#1}=10
+ \expandafter\collargs@gos@iv
+ \else
+ \ifnum\collargs@cc{#1}=5
+ \expandafter\expandafter\expandafter\collargs@gos@v
+ \else
+ \expandafter\expandafter\expandafter\collargs@gs@next
+ \fi
+ \fi
+ #1%
+}
+\def\collargs@gos@iv#1{%
+ \gappto\collargs@otherspaces{#1}%
+ \gdef\collargs@spaces{ }%
+ \collargs@gs@i
+}
+\def\collargs@gos@v{%
+ \ifnum\collargs@gs@state=2
+ \expandafter\collargs@gs@next
+ \else
+ \expandafter\collargs@gs@vi
+ \fi
+}
+\def\collargs@gs@vi#1{%
+ \gdef\collargs@gs@state{2}%
+ \gappto\collargs@otherspaces{#1}%
+ \gdef\collargs@spaces{ }%
+ \collargs@gs@i
+}
+\def\collargs@maybegrabspaces{%
+ \ifcollargs@grabspaces
+ \expandafter\collargs@grabspaces
+ \else
+ \expandafter\@firstofone
+ \fi
+}
+\def\collargs@grabbed@spaces{%
+ \ifcollargs@verbatim
+ \collargs@otherspaces
+ \else
+ \collargs@spaces
+ \fi
+}
+\def\collargs@reinsert@spaces#1{%
+ \normalexpanded{%
+ \normalunexpanded{%
+ \collargs@init@grabspaces
+ #1%
+ }%
+ \collargs@grabbed@spaces
+ }%
+}
+\long\def\collargs@ifnextcat#1#2#3{%
+ \let\pgf@keys@utilreserved@d=#1%
+ \def\pgf@keys@utilreserved@a{#2}%
+ \def\pgf@keys@utilreserved@b{#3}%
+ \futurelet\pgf@keys@utillet@token\collargs@ifncat}
+\def\collargs@ifncat{%
+ \ifx\pgf@keys@utillet@token\pgf@keys@utilsptoken
+ \let\pgf@keys@utilreserved@c\collargsxifnch
+ \else
+ \ifcat\noexpand\pgf@keys@utillet@token\pgf@keys@utilreserved@d
+ \let\pgf@keys@utilreserved@c\pgf@keys@utilreserved@a
+ \else
+ \let\pgf@keys@utilreserved@c\pgf@keys@utilreserved@b
+ \fi
+ \fi
+ \pgf@keys@utilreserved@c}
+{%
+ \def\:{\collargs@xifncat}
+ \expandafter\gdef\: {\futurelet\pgf@keys@utillet@token\collargs@ifncat}
+}
+\def\collargs@forrange#1#2{%
+ \normalexpanded{%
+ \noexpand\collargs@forrange@i{\number#1}{\number#2}%
+ }%
+ }
+\def\collargs@forrange@i#1#2{%
+ \ifnum#1>#2 %
+ \expandafter\@gobble
+ \else
+ \expandafter\@firstofone
+ \fi
+ {%
+ \collargs@do{#1}%
+ \expandafter\collargs@forrange@i\expandafter{\number\numexpr#1+1\relax}{#2}%
+ }%
+}
+\def\collargs@forranges{\forcsvlist\collarg@forrange@i}
+\def\collarg@forrange@i#1{\collarg@forrange@ii#1-}
+\def\collarg@forrange@ii#1-#2-{\collargs@forrange{#1}{#2}}
+\begingroup
+\catcode`\%=12
+\gdef\collargs@percentchar{%}
+\endgroup
+\def\collargs@l#1.{%
+ \collargs@reinsert@spaces{\collargs@l@i#1.}%
+}
+\def\collargs@l@i{%
+ \global\collargs@fix@requestedtrue
+ \ifcollargs@verbatimbraces
+ \expandafter\collargs@l@verb
+ \else
+ \expandafter\collargs@l@ii
+ \fi
+}
+\def\collargs@l@ii#1.{%
+ \collargs@defusecollector##1##{%
+ \collargs@appendarg{##1}%
+ \collargs@#1.%
+ }%
+}
+\def\collargs@l@verb#1.{%
+ \expandafter\collargs@defusecollector
+ \expandafter##\expandafter1\collargs@other@bgroup{%
+ \collargs@appendarg{##1}%
+ \normalexpanded{%
+ \noexpand\collargs@\normalunexpanded{#1.}%
+ \collargs@other@bgroup
+ }%
+ }%
+}
+\def\collargs@u{%
+ \ifcollargs@verbatim
+ \expandafter\collargs@u@verb
+ \else
+ \expandafter\collargs@u@i
+ \fi
+}
+\def\collargs@u@verb#1{%
+ \expandafter\collargs@u@i\expandafter{\detokenize\expandafter{\string#1}}%
+}
+\def\collargs@u@i#1#2.{%
+ \collargs@reinsert@spaces{\collargs@u@ii{#1}#2.}%
+}
+\def\collargs@u@ii#1#2.{%
+ \collargs@defusecollector##1#1{%
+ \collargs@wrap{####1#1}%
+ \expandafter\collargs@appendarg\expandafter{##1}%
+ \collargs@#2.%
+ }%
+ \collargs@empty
+}
+\def\collargs@empty{}
+\def\collargs@r{%
+ \ifcollargs@verbatim
+ \expandafter\collargs@r@verb
+ \else
+ \expandafter\collargs@r@i
+ \fi
+}
+\def\collargs@r@verb#1#2{%
+ \expandafter\collargs@r@i\detokenize{#1#2}%
+}
+\def\collargs@r@i#1#2#3.{%
+ \collargs@defcollector#1{%
+ \collargs@defusecollector####1#2{%
+ \collargs@wrap{#1########1#2}%
+ \expandafter\collargs@appendarg\expandafter{####1}%
+ \collargs@#3.%
+ }%
+ \collargs@empty
+ }%
+ \collargs@grabspaces\collargs@caller
+}
+\def\collargs@R#1#2#3{\collargs@r#1#2}
+\def\collargs@d{%
+ \ifcollargs@verbatim
+ \expandafter\collargs@d@verb
+ \else
+ \expandafter\collargs@d@i
+ \fi
+}
+\def\collargs@d@verb#1#2{%
+ \expandafter\collargs@d@i\detokenize{#1#2}%
+}
+\def\collargs@d@i#1#2#3.{%
+ \def\collargs@d@noopt{%
+ \global\collargs@fix@requestedtrue
+ \endgroup
+ \collargs@#3.%
+ }%
+ \collargs@defcollector#1{%
+ \collargs@defusecollector####1#2{%
+ \collargs@wrap{#1########1#2}%
+ \expandafter\collargs@appendarg\expandafter{####1}%
+ \collargs@#3.%
+ }%
+ \collargs@empty
+ }%
+ \def\collargs@d@ii{%
+ \ifx#1\collargs@temp
+ \expandafter\collargs@caller
+ \else
+ \expandafter\collargs@d@noopt
+ \fi
+ }%
+ \collargs@maybegrabspaces{\futurelet\collargs@temp\collargs@d@ii}%
+}
+\def\collargs@D#1#2#3{\collargs@d#1#2}
+\def\collargs@o{\collargs@d[]}
+\def\collargs@O#1{\collargs@d[]}
+\def\collargs@t{%
+ \ifcollargs@verbatim
+ \expandafter\collargs@t@verb
+ \else
+ \expandafter\collargs@t@i
+ \fi
+}
+\def\collargs@t@space{ }
+\def\collargs@t@verb#1{%
+ \let\collargs@t@space\collargs@otherspace
+ \expandafter\collargs@t@i\expandafter{\detokenize{#1}}%
+}
+\def\collargs@t@i#1{%
+ \expandafter\ifx\space#1%
+ \expandafter\collargs@t@s
+ \else
+ \expandafter\collargs@t@I\expandafter#1%
+ \fi
+}
+\def\collargs@t@s#1.{%
+ \collargs@grabspaces{%
+ \ifcollargs@grabspaces
+ \collargs@appendarg{}%
+ \else
+ \normalexpanded{%
+ \noexpand\collargs@init@grabspaces
+ \noexpand\collargs@appendarg{\collargs@grabbed@spaces}%
+ }%
+ \fi
+ \collargs@#1.%
+ }%
+}
+\def\collargs@t@I#1#2.{%
+ \def\collargs@t@noopt{%
+ \global\collargs@fix@requestedtrue
+ \endgroup
+ \collargs@#2.%
+ }%
+ \def\collargs@t@opt##1{%
+ \collargs@appendarg{#1}%
+ \collargs@#2.%
+ }%
+ \def\collargs@t@ii{%
+ \ifx#1\collargs@temp
+ \expandafter\collargs@t@opt
+ \else
+ \expandafter\collargs@t@noopt
+ \fi
+ }%
+ \collargs@maybegrabspaces{\futurelet\collargs@temp\collargs@t@ii}%
+}
+\def\collargs@t@opt@space{%
+ \normalexpanded{\noexpand\collargs@t@opt{\space}\expandafter}\romannumeral-0%
+}%
+\def\collargs@s{\collargs@t*}
+\def\collargs@m{%
+ \ifcollargs@verbatim
+ \expandafter\collargs@m@verb
+ \else
+ \expandafter\collargs@m@i
+ \fi
+}
+\def\collargs@m@i#1.{%
+ \collargs@grabspaces{\collargs@m@checkforgroup#1.}%
+}
+\def\collargs@m@checkforgroup#1.{%
+ \edef\collargs@action{\normalunexpanded{\collargs@m@checkforgroup@i#1.}}%
+ \futurelet\collargs@token\collargs@action
+}
+\def\collargs@m@checkforgroup@i{%
+ \ifcat\noexpand\collargs@token\bgroup
+ \expandafter\collargs@m@group
+ \else
+ \expandafter\collargs@m@token
+ \fi
+}
+\def\collargs@m@group#1.{%
+ \collargs@defusecollector##1{%
+ \collargs@wrap{{####1}}%
+ \collargs@appendarg{##1}%
+ \collargs@#1.%
+ }%
+}
+\def\collargs@m@token#1.{%
+ \collargs@defusecollector##1{%
+ \collargs@appendarg{##1}%
+ \collargs@#1.%
+ }%
+}
+\def\collargs@m@verb#1.{%
+ \collargs@grabspaces{\collargs@m@verb@checkforgroup#1.}%
+}
+\def\collargs@m@verb@checkforgroup{%
+ \ifcollargs@verbatimbraces
+ \expandafter\collargs@m@verb@checkforgroup@i
+ \else
+ \expandafter\collargs@m@checkforgroup
+ \fi
+}
+\def\collargs@m@verb@checkforgroup@i#1.{%
+ \def\collargs@m@verb@checkforgroup@ii{\collargs@m@verb@checkforgroup@iii#1.}%
+ \futurelet\collargs@temp\collargs@m@verb@checkforgroup@ii
+}
+\def\collargs@m@verb@checkforgroup@iii#1.{%
+ \expandafter\ifx\collargs@other@bgroup\collargs@temp
+ \expandafter\collargs@m@verb@group
+ \else
+ \expandafter\ifx\collargs@other@egroup\collargs@temp
+ \expandafter\expandafter\expandafter\collargs@m@verb@egrouperror
+ \else
+ \expandafter\expandafter\expandafter\collargs@m@v@token
+ \fi
+ \fi
+ #1.%
+}
+\def\collargs@m@verb@egrouperror#1.{%
+ \PackageError{collargs}{%
+ Argument of \expandafter\string\collargs@caller\space has an extra
+ \iffalse{\else\string}}{}%
+}
+\def\collargs@m@v@token#1.#2{%
+ \ifnum\collargs@cc{#2}=0
+ \expandafter\collargs@m@v@token@cs
+ \else
+ \expandafter\collargs@m@token
+ \fi
+ #1.#2%
+}
+\def\collargs@m@v@token@cs#1.#2#3{%
+ \ifnum\collargs@cc{#3}=11
+ \expandafter\collargs@m@v@token@cs@letter
+ \else
+ \expandafter\collargs@m@v@token@cs@nonletter
+ \fi
+ #1.#2#3%
+}
+\def\collargs@m@v@token@cs@nonletter#1.#2#3{%
+ \collargs@appendarg{#2#3}%
+ \collargs@#1.%
+}
+\def\collargs@m@v@token@cs@letter#1.#2{%
+ \collargsArg{#2}%
+ \def\collargs@tempa{#1}%
+ \collargs@m@v@token@cs@letter@i
+}
+\def\collargs@m@v@token@cs@letter@i#1{%
+ \ifnum\collargs@cc{#1}=11
+ \toksapp\collargsArg{#1}%
+ \expandafter\collargs@m@v@token@cs@letter@i
+ \else
+ \expandafter\collargs@m@v@token@cs@letter@ii\expandafter#1%
+ \fi
+}
+\def\collargs@m@v@token@cs@letter@ii{%
+ \normalexpanded{%
+ \normalunexpanded{%
+ \expandafter\collargs@appendarg\expandafter{\the\collargsArg}%
+ }%
+ \noexpand\collargs@\expandonce\collargs@tempa.%
+ }%
+}
+\def\collargs@m@verb@group#1.#2{%
+ \let\collargs@begintag\collargs@other@bgroup
+ \let\collargs@endtag\collargs@other@egroup
+ \def\collargs@tagarg{}%
+ \def\collargs@commandatend{\collargs@m@verb@group@i#1.}%
+ \collargs@readContent
+}
+\def\collargs@m@verb@group@i{%
+ \edef\collargs@temp{%
+ \collargs@other@bgroup\normalunexpanded{##1}\collargs@other@egroup}%
+ \expandafter\collargs@wrap\expandafter{\collargs@temp}%
+ \expandafter\collargs@appendarg\expandafter{\the\collargsArg}%
+ \collargs@
+}
+\def\collargs@g{%
+ \def\collargs@m@token{%
+ \global\collargs@fix@requestedtrue
+ \endgroup
+ \collargs@
+ }%
+ \let\collargs@m@v@token\collargs@m@token
+ \collargs@m
+}
+\def\collargs@G#1{\collargs@g}
+\def\collargs@v#1.{%
+ \begingroup
+ \collargsBraces{{}}%
+ \collargsVerbatim
+ \collargs@grabspaces{\collargs@v@i#1.}%
+}
+\def\collargs@v@i#1.#2{%
+ \expandafter\ifx\collargs@other@bgroup#2%
+ \let\collargs@begintag\collargs@other@bgroup
+ \let\collargs@endtag\collargs@other@egroup
+ \def\collargs@tagarg{}%
+ \def\collargs@commandatend{%
+ \edef\collargs@temp{%
+ \collargs@other@bgroup\normalunexpanded{####1}\collargs@other@egroup}%
+ \expandafter\collargs@wrap\expandafter{\collargs@temp}%
+ \expandafter\collargs@appendarg\expandafter{\the\collargsArg}%
+ \endgroup
+ \collargs@#1.%
+ }%
+ \expandafter\collargs@readContent
+ \else
+ \collargs@defcollector##1#2{%
+ \collargs@wrap{#2####1#2}%
+ \collargs@appendarg{##1}%
+ \endgroup
+ \collargs@#1.%
+ }%
+ \expandafter\collargs@caller
+ \fi
+}
+\def\collargs@b{%
+ \collargs@ifnextcat\bgroup\collargs@bg\collargs@bi
+}
+\def\collargs@bg#1{%
+ \edef\collargs@b@envname{#1}%
+ \collargs@bi
+}
+\def\collargs@bi#1.{%
+ \ifcollargs@verbatim
+ \edef\collargs@b@envname{\detokenize\expandafter{\collargs@b@envname}}%
+ \fi
+ \collargs@bi@defCPTbeginend
+ \edef\collargs@tagarg{%
+ \ifcollargs@verbatimbraces
+ \else
+ \ifcollargsIgnoreOtherTags
+ \collargs@b@envname
+ \fi
+ \fi
+ }%
+ \def\collargs@commandatend{%
+ \collargs@biii
+ #1.%
+ }%
+ \collargs@reinsert@spaces\collargs@readContent
+}
+\def\collargs@bi@defCPTbeginend{%
+ \edef\collargs@begintag{%
+ \ifcollargs@verbatim
+ \expandafter\expandafter\expandafter\string
+ \else
+ \expandafter\expandafter\expandafter\noexpand
+ \fi
+ \csname
+ start%
+ \collargs@b@envname
+ \endcsname
+ }%
+ \edef\collargs@endtag{%
+ \ifcollargs@verbatim
+ \expandafter\expandafter\expandafter\string
+ \else
+ \expandafter\expandafter\expandafter\noexpand
+ \fi
+ \csname
+ stop%
+ \collargs@b@envname
+ \endcsname
+ }%
+}
+\def\collargs@biii{%
+ \collargs@b@def@wrapper
+ \expandafter\collargs@appendarg\expandafter{\the\collargsArg}%
+ \collargs@
+}
+\def\collargs@b@def@wrapper{%
+ \edef\collargs@temp{%
+ \ifcollargsBeginTag
+ \expandonce\collargs@begintag
+ \fi
+ ####1%
+ \ifcollargsEndTag
+ \expandonce\collargs@endtag
+ \fi
+ }%
+ \expandafter\collargs@wrap\expandafter{\collargs@temp}%
+}
+\def\collargs@readContent{%
+ \ifcollargs@long\long\fi
+ \collargs@CPT@def\collargs@gobbleOneB\collargs@begintag{%
+ \expandafter\toks@\expandafter{##1}%
+ \futurelet\collargs@temp\collargs@gobbleOneB@i
+ }%
+ \ifcollargs@long\long\fi
+ \collargs@CPT@def\collargs@gobbleUntilE\collargs@endtag{%
+ \expandafter\toksapp\expandafter\toks@\expandafter{##1}%
+ \collargs@gobbleUntilE@i
+ }%
+ \collargs@begins=0\relax
+ \collargsArg{}%
+ \toks@{}%
+ \collargs@letusecollector\collargs@gobbleUntilE
+ \collargs@empty
+}
+\newcount\collargs@begins
+\def\collargs@CPT@def#1#2{%
+ \expandafter\def\expandafter#1%
+ \expandafter##\expandafter1#2%
+}
+\def\collargs@qend{\collargs@qend}
+\def\collargs@gobbleOneB@i{%
+ \def\collargs@begins@increment{1}%
+ \ifx\collargs@qend\collargs@temp
+ \def\collargs@begins@increment{-1}%
+ \expandafter\collargs@gobbleOneB@v
+ \else
+ \etoksapp\toks@{\expandonce\collargs@begintag}%
+ \expandafter\collargs@gobbleOneB@ii
+ \fi
+}%
+\def\collargs@gobbleOneB@ii{%
+ \expandafter\ifx\expandafter\relax\collargs@tagarg\relax
+ \expandafter\collargs@gobbleOneB@vi
+ \else
+ \expandafter\collargs@gobbleOneB@iii
+ \fi
+}
+\def\collargs@gobbleOneB@iii{%
+ \collargs@grabspaces{%
+ \collargs@letusecollector\collargs@gobbleOneB@iv
+ }%
+}
+\def\collargs@gobbleOneB@iv#1{%
+ \def\collargs@temp{#1}%
+ \ifx\collargs@temp\collargs@tagarg
+ \else
+ \def\collargs@begins@increment{0}%
+ \fi
+ \etoksapp\toks@{\collargs@grabbed@spaces\normalunexpanded{{#1}}}%
+ \collargs@init@grabspaces
+ \collargs@gobbleOneB@vi
+}
+\def\collargs@gobbleOneB@v#1{\collargs@gobbleOneB@vi}
+\def\collargs@gobbleOneB@vi{%
+ \etoksapp\collargsArg{\the\toks@}%
+ \advance\collargs@begins\collargs@begins@increment\relax
+ \ifnum\collargs@begins@increment=-1
+ \else
+ \expandafter\collargs@gobbleOneB\expandafter\collargs@empty
+ \fi
+}
+\def\collargs@gobbleUntilE@i{%
+ \expandafter\ifx\expandafter\relax\collargs@tagarg\relax
+ \expandafter\collargs@gobbleUntilE@iv
+ \else
+ \expandafter\collargs@gobbleUntilE@ii
+ \fi
+}
+\def\collargs@gobbleUntilE@ii{%
+ \collargs@grabspaces{%
+ \collargs@letusecollector\collargs@gobbleUntilE@iii
+ }%
+}
+\def\collargs@gobbleUntilE@iii#1{%
+ \etoksapp\toks@{\collargs@grabbed@spaces}%
+ \collargs@init@grabspaces
+ \def\collargs@tempa{#1}%
+ \ifx\collargs@tempa\collargs@tagarg
+ \expandafter\collargs@gobbleUntilE@iv
+ \else
+ \expandafter\toksapp\expandafter\toks@\expandafter{\collargs@endtag{#1}}%
+ \expandafter\collargs@letusecollector\expandafter\collargs@gobbleUntilE
+ \fi
+}
+\def\collargs@gobbleUntilE@iv{%
+ \ifcollargsIgnoreNesting
+ \expandafter\collargsArg\expandafter{\the\toks@}%
+ \expandafter\collargs@commandatend
+ \else
+ \expandafter\collargs@gobbleUntilE@v
+ \fi
+}
+\def\collargs@gobbleUntilE@v{%
+ \normalexpanded{%
+ \noexpand\collargs@letusecollector\noexpand\collargs@gobbleOneB
+ \noexpand\collargs@empty
+ \the\toks@
+ \expandonce\collargs@begintag
+ \noexpand\collargs@qend
+ }%
+ \ifnum\collargs@begins<0
+ \expandafter\collargs@commandatend
+ \else
+ \etoksapp\collargsArg{%
+ \expandonce\collargs@endtag
+ \expandafter\ifx\expandafter\relax\collargs@tagarg\relax\else{%
+ \expandonce\collargs@tagarg}\fi
+ }%
+ \toks@={}%
+ \expandafter\collargs@letusecollector\expandafter\collargs@gobbleUntilE
+ \expandafter\collargs@empty
+ \fi
+}
+\def\collargs@e{%
+ \global\collargs@fix@requestedtrue
+ \begingroup
+ \ifcollargs@verbatim
+ \expandafter\collargs@e@verbatim
+ \else
+ \expandafter\collargs@e@i
+ \fi
+}
+\def\collargs@e@verbatim#1{%
+ \expandafter\collargs@e@i\expandafter{\detokenize{#1}}%
+}
+\def\collargs@e@i#1{\collargs@e@ii#1.}
+\def\collargs@e@ii#1.#2.{%
+ \collargs@grabspaces{\collargs@e@iii#1.#2.}%
+}
+\def\collargs@e@iii#1.#2.{%
+ \def\collargs@e@iv{\collargs@e@v#1.#2.}%
+ \futurelet\collargs@temp\collargs@e@iv
+}
+\def\collargs@e@v{%
+ \ifcat\noexpand\collargs@temp\bgroup\relax
+ \let\collargs@marshal\collargs@e@z
+ \else
+ \ifcat\noexpand\collargs@temp\egroup\relax
+ \let\collargs@marshal\collargs@e@z
+ \else
+ \let\collargs@marshal\collargs@e@vi
+ \fi
+ \fi
+ \collargs@marshal
+}
+\newif\ifcollargs@in@
+\def\collargs@in@#1#2{%
+ \def\collargs@in@@##1#1##2##3\collargs@in@@{%
+ \ifx\collargs@in@##2\global\collargs@in@false\else\global\collargs@in@true\fi
+ }%
+ {\collargs@in@@#2#1\collargs@in@\collargs@in@@}%
+}
+\def\collargs@e@vi#1.#2.#3{%
+ \collargs@in@{#3}{#1}%
+ \ifcollargs@in@
+ \expandafter\collargs@e@vii
+ \else
+ \expandafter\collargs@e@z
+ \fi
+ #1.#2.#3%
+}
+\def\collargs@e@vii#1.#2.#3{%
+ \let\collargs@real@appendarg\collargs@appendarg
+ \def\collargs@appendarg##1{\collargsArg{##1}}%
+ \def\collargs@{\collargs@e@viii#1.#3}%
+ \collargs@m#2.%
+}
+\def\collargs@e@viii#1.#2#3.{%
+ \collargs@wrap{#2##1}%
+ \def\collargs@e@ix##1#2{\collargs@e@x##1}%
+ \collargs@e@ix#1.#3.%
+}
+\def\collargs@e@x{%
+ \expandafter\collargs@real@appendarg\expandafter{\the\collargsArg}%
+ \begingroup
+ \collargs@e@ii
+}
+\def\collargs@e@z#1.{\endgroup\endgroup\collargs@}
+\def\collargs@E#1#2{\collargs@e{#1}}
+\let\collargs@NoVerbatimAfterNoVerbatim\relax
+\def\collargs@VerbAfterNoVerbatim{%
+ \collargs@verbatimtrue
+ \collargs@verbatimbracesfalse
+ \collargs@make@verbatim
+ \collargs@after{Verb}%
+}
+\def\collargs@VerbatimAfterNoVerbatim{%
+ \collargs@verbatimtrue
+ \collargs@verbatimbracestrue
+ \collargs@make@verbatim
+ \collargs@after{Verbatim}%
+}
+\def\collargs@NoVerbatimAfterVerb{%
+ \collargs@verbatimfalse
+ \collargs@verbatimbracesfalse
+ \collargs@make@other@groups
+ \collargs@make@no@verbatim
+ \collargs@after{NoVerbatim}%
+}
+\def\collargs@VerbAfterVerb{%
+ \collargs@make@other@groups
+}
+\def\collargs@VerbatimAfterVerb{%
+ \collargs@verbatimbracestrue
+ \collargs@make@other@groups
+ \def\collargs@do##1{\catcode##1=12 }%
+ \collargs@bgroups
+ \collargs@egroups
+ \collargs@after{Verbatim}%
+}%
+\let\collargs@NoVerbatimAfterVerbatim\collargs@NoVerbatimAfterVerb
+\def\collargs@VerbAfterVerbatim{%
+ \collargs@verbatimbracesfalse
+ \collargs@make@other@groups
+ \def\collargs@do##1{\catcode##1=1 }%
+ \collargs@bgroups
+ \def\collargs@do##1{\catcode##1=2 }%
+ \collargs@egroups
+ \collargs@after{Verb}%
+}%
+\let\collargs@VerbatimAfterVerbatim\collargs@VerbAfterVerb
+\def\collargs@after#1{%
+ \letcs\collargsVerbatim{collargs@VerbatimAfter#1}%
+ \letcs\collargsVerb{collargs@VerbAfter#1}%
+ \letcs\collargsNoVerbatim{collargs@NoVerbatimAfter#1}%
+}
+\collargs@after{NoVerbatim}
+\def\collargs@bgroups{}%
+\def\collargs@egroups{}%
+\ifdefined\luatexversion
+ \def\collargs@cc#1{%
+ \directlua{tex.sprint(tex.getcatcode(\collargs@catcodetable@original,
+ \the\numexpr\expandafter`\csname#1\endcsname\relax))}%
+ }
+\else
+ \def\collargs@cc#1{%
+ \ifcsname collargs@cc@\the\numexpr\expandafter`\csname#1\endcsname\endcsname
+ \csname collargs@cc@\the\numexpr\expandafter`\csname#1\endcsname\endcsname
+ \else
+ 12%
+ \fi
+ }
+\fi
+\def\collargsBraces#1{%
+ \expandafter\collargs@braces@i\detokenize{#1}\relax
+}
+\def\collargs@braces@i#1#2#3\relax{%
+ \def\collargs@make@other@groups{%
+ \def\collargs@other@bgroup{#1}%
+ \def\collargs@other@egroup{#2}%
+ }%
+}
+\def\collargs@make@other@groups{}
+\ifdefined\luatexversion
+ \newcatcodetable\collargs@catcodetable@verbatim
+ \newcatcodetable\collargs@catcodetable@atletter
+ \savecatcodetable\collargs@catcodetable@atletter
+ \begingroup
+ \@firstofone{%
+ \catcodetable\inicatcodes
+ \catcode`\\=12
+ \catcode13=12
+ \catcode0=12
+ \catcode32=12
+ \catcode`\%=12
+ \catcode127=12
+ \def\collargs@do#1{\catcode#1=12 }%
+ \collargs@forrange{`\a}{`\z}%
+ \collargs@forrange{`\A}{`\Z}%
+ \savecatcodetable\collargs@catcodetable@verbatim
+ \endgroup
+ }%
+\fi
+\collargsSet{
+ verbatim ranges/.store in=\collargs@verbatim@ranges,
+}
+\def\collargsVerbatimRanges#1{\def\collargs@verbatim@ranges{#1}}
+\def\collargs@verbatim@ranges{0-255}
+\ifdefined\luatexversion
+ \def\collargs@make@verbatim{%
+ \directlua{%
+ for from, to in string.gmatch(
+ "\luaescapestring{\collargs@verbatim@ranges}",
+ "(\collargs@percentchar d+)-(\collargs@percentchar d+)"
+ ) do
+ for char = tex.round(from), tex.round(to) do
+ catcode = tex.catcode[char]
+ if catcode == 1 then
+ tex.sprint(
+ \number\collargs@catcodetable@atletter,
+ "\noexpand\\collargs@make@verbatim@bgroup{" .. char .. "}")
+ elseif catcode == 2 then
+ tex.sprint(
+ \number\collargs@catcodetable@atletter,
+ "\noexpand\\collargs@make@verbatim@egroup{" .. char .. "}")
+ elseif catcode == 14 then
+ tex.sprint(
+ \number\collargs@catcodetable@atletter,
+ "\noexpand\\collargs@make@verbatim@comment{" .. char .. "}")
+ end
+ end
+ end
+ }%
+ \edef\collargs@catcodetable@original{\the\catcodetable}%
+ \catcodetable\collargs@catcodetable@verbatim
+ \ifcollargs@verbatimbraces
+ \else
+ \def\collargs@do##1{\catcode##1=1\relax}%
+ \collargs@bgroups
+ \def\collargs@do##1{\catcode##1=2\relax}%
+ \collargs@egroups
+ \fi
+ }
+\else
+ \def\collargs@make@verbatim{%
+ \ifdefempty\collargs@make@other@groups{}{%
+ \collargs@make@other@groups
+ \def\collargs@make@other@groups{}%
+ \let\collargs@make@other@bgroup\@gobble
+ \let\collargs@make@other@egroup\@gobble
+ }%
+ \gdef\collargs@comments{}%
+ \let\collargs@do\collargs@make@verbatim@char
+ \expandafter\collargs@forranges\expandafter{\collargs@verbatim@ranges}%
+ }
+ \def\collargs@make@verbatim@char#1{%
+ \ifnum\catcode#1=12
+ \else
+ \csedef{collargs@cc@#1}{\the\catcode#1}%
+ \fi
+ \ifnum\catcode#1=1
+ \collargs@make@verbatim@bgroup{#1}%
+ \else
+ \ifnum\catcode#1=2
+ \collargs@make@verbatim@egroup{#1}%
+ \else
+ \ifnum\catcode#1=14
+ \collargs@make@verbatim@comment{#1}%
+ \fi
+ \ifnum\catcode#1=12
+ \else
+ \catcode#1=12\relax
+ \fi
+ \fi
+ \fi
+ }
+\fi
+\def\collargs@make@verbatim@bgroup#1{%
+ \ifcollargs@verbatimbraces
+ \catcode#1=12\relax
+ \fi
+ \appto\collargs@bgroups{\collargs@do{#1}}%
+ \collargs@make@other@bgroup{#1}%
+}
+\def\collargs@make@other@bgroup#1{%
+ \collargs@make@char\collargs@other@bgroup{#1}{12}%
+ \let\collargs@make@other@bgroup\@gobble
+}
+\def\collargs@make@verbatim@egroup#1{%
+ \ifcollargs@verbatimbraces
+ \catcode#1=12\relax
+ \fi
+ \appto\collargs@egroups{\collargs@do{#1}}%
+ \collargs@make@other@egroup{#1}%
+}
+\def\collargs@make@other@egroup#1{%
+ \collargs@make@char\collargs@other@egroup{#1}{12}%
+ \let\collargs@make@other@egroup\@gobble
+}
+\def\collargs@make@verbatim@comment#1{%
+ \gappto\collargs@comments{\collargs@do{#1}}%
+}
+\ifdefined\luatexversion
+ \def\collargs@make@no@verbatim{%
+ \catcodetable\collargs@catcodetable@original\relax
+ }%
+\else
+\def\collargs@make@no@verbatim{%
+ \let\collargs@do\collargs@make@no@verbatim@char
+ \expandafter\collargs@forranges\expandafter{\collargs@verbatim@ranges}%
+}
+\fi
+\def\collargs@make@no@verbatim@char#1{%
+ \ifcsname collargs@cc@#1\endcsname
+ \catcode#1=\csname collargs@cc@#1\endcsname\relax
+ \fi
+}
+\newif\ifcollargs@fix@requested
+\long\def\collargs@fix#1{%
+ \edef\collargs@fix@next{\normalunexpanded{#1}}%
+ \ifcollargs@fix@requested
+ \letcs\collargs@action{collargs@fix@%
+ \ifcollargs@last@verbatim
+ \ifcollargs@last@verbatimbraces V\else v\fi
+ \else
+ N%
+ \fi
+ to%
+ \ifcollargs@verbatim
+ \ifcollargs@verbatimbraces V\else v\fi
+ \else
+ N%
+ \fi
+ }%
+ \else
+ \let\collargs@action\collargs@fix@next
+ \fi
+ \collargs@action
+}
+\def\collargs@fix@NtoN{\collargs@fix@next}
+\let\collargs@fix@vtov\collargs@fix@NtoN
+\let\collargs@fix@VtoV\collargs@fix@NtoN
+\def\collargs@fix@Ntov{%
+ \futurelet\collargs@temp\collargs@fix@cc@to@other@ii
+}
+\def\collargs@fix@cc@to@other@ii{%
+ \ifcat\noexpand\collargs@temp\bgroup
+ \let\collargs@action\collargs@fix@next
+ \else
+ \ifcat\noexpand\collargs@temp\egroup
+ \let\collargs@action\collargs@fix@next
+ \else
+ \let\collargs@action\collargs@fix@NtoV
+ \fi
+ \fi
+ \collargs@action
+}
+\def\collargs@fix@NtoV{%
+ \ifcollargs@double@fix
+ \ifcollargs@in@second@fix
+ \expandafter\expandafter\expandafter\collargs@fix@NtoV@secondfix
+ \else
+ \expandafter\expandafter\expandafter\collargs@fix@NtoV@onemore
+ \fi
+ \else
+ \expandafter\collargs@fix@NtoV@singlefix
+ \fi
+}
+\def\collargs@fix@NtoV@singlefix{%
+ \expandafter\collargs@fix@next\string
+}
+\def\collargs@fix@NtoV@onemore#1{%
+ \collargs@do@one@more@fix{%
+ \expandafter\collargs@fix@next\string#1%
+ }%
+}
+\def\collargs@fix@NtoV@secondfix{%
+ \if\noexpand\collargs@temp\relax
+ \expandafter\collargs@fix@NtoV@secondfix@i
+ \else
+ \expandafter\collargs@fix@NtoV@singlefix
+ \fi
+}
+\def\collargs@fix@NtoV@secondfix@i#1{%
+ \gdef\collargs@double@fix@cs@ii{#1}%
+ \collargs@fix@NtoV@singlefix#1%
+}
+\def\collargs@fix@vtoN{%
+ \futurelet\collargs@token\collargs@fix@vtoN@i
+}
+\def\collargs@fix@vtoN@i{%
+ \ifcat\noexpand\collargs@token\bgroup
+ \expandafter\collargs@fix@next
+ \else
+ \ifcat\noexpand\collargs@token\egroup
+ \expandafter\expandafter\expandafter\collargs@fix@next
+ \else
+ \expandafter\expandafter\expandafter\collargs@fix@VtoN
+ \fi
+ \fi
+}
+\def\collargs@fix@vtoV{%
+ \futurelet\collargs@token\collargs@fix@vtoV@i
+}
+\def\collargs@fix@vtoV@i{%
+ \ifcat\noexpand\collargs@token\bgroup
+ \expandafter\collargs@fix@NtoV
+ \else
+ \ifcat\noexpand\collargs@token\egroup
+ \expandafter\expandafter\expandafter\collargs@fix@NtoV
+ \else
+ \expandafter\expandafter\expandafter\collargs@fix@next
+ \fi
+ \fi
+}
+\def\collargs@fix@catcode@of@braces@fromverbatim#1{%
+ \ifnum\catcode`#1=1
+ \expandafter\collargs@fix@VtoN
+ \expandafter#1%
+ \else
+ \ifnum\catcode`#1=2
+ \expandafter\expandafter\expandafter\collargs@fix@cc@VtoN
+ \expandafter\expandafter\expandafter#1%
+ \else
+ \expandafter\expandafter\expandafter\collargs@fix@next
+ \fi
+ \fi
+}
+\def\collargs@fix@VtoN#1{%
+ \ifnum\catcode`#1=0
+ \expandafter\collargs@fix@VtoN@escape
+ \else
+ \ifnum\catcode`#1=14
+ \expandafter\expandafter\expandafter\collargs@fix@VtoN@comment
+ \else
+ \expandafter\expandafter\expandafter\collargs@fix@VtoN@token
+ \fi
+ \fi
+ #1%
+}
+\def\collargs@fix@VtoN@token#1{%
+ \collargs@insert@char\collargs@fix@next{`#1}{\the\catcode`#1}%
+}
+\def\collargs@defcommentstripper#1#2{%
+ \def#1##1{%
+ \begingroup%
+ \escapechar=`\\%
+ \catcode\endlinechar=\active%
+ \def\collargs@do####1{\catcode####1=12 }%
+ \collargs@comments
+ \csname\string#1\endcsname%
+ }%
+ \begingroup%
+ \escapechar=`\\%
+ \lccode`\~=\endlinechar%
+ \lowercase{%
+ \expandafter\endgroup
+ \expandafter\def\csname\string#1\endcsname##1~%
+ }{%
+ \endgroup#2%
+ }%
+}
+\collargs@defcommentstripper\collargs@fix@VtoN@comment{%
+ \collargs@fix@next
+}
+\let\collargs@defcommentstripper\relax
+\def\collargs@fix@VtoN@escape#1{%
+ \ifcollargs@double@fix
+ \expandafter\collargs@fix@VtoN@escape@d
+ \else
+ \expandafter\collargs@fix@VtoN@escape@i
+ \fi
+}
+\def\collargs@fix@VtoN@escape@i{%
+ \begingroup
+ \catcode`\\=12
+ \catcode`\{=12
+ \catcode`\}=12
+ \catcode`\ =12
+ \collargs@fix@VtoN@escape@ii
+}
+\def\collargs@fix@VtoN@escape@ii#1{%
+ \endgroup
+ \def\collargs@csname{#1}%
+ \ifnum\catcode`#1=11
+ \expandafter\collargs@fix@VtoN@escape@iii
+ \else
+ \ifnum\catcode`#1=10
+ \expandafter\expandafter\expandafter\collargs@fix@VtoN@escape@s
+ \else
+ \expandafter\expandafter\expandafter\collargs@fix@VtoN@escape@z@i
+ \fi
+ \fi
+}
+\def\collargs@fix@VtoN@escape@iii{%
+ \futurelet\collargs@temp\collargs@fix@VtoN@escape@iv
+}
+\def\collargs@fix@VtoN@escape@iv{%
+ \ifcat\noexpand\collargs@temp\bgroup
+ \let\collargs@action\collargs@fix@VtoN@escape@z
+ \else
+ \ifcat\noexpand\collargs@temp\egroup
+ \let\collargs@action\collargs@fix@VtoN@escape@z
+ \else
+ \expandafter\ifx\space\collargs@temp
+ \let\collargs@action\collargs@fix@VtoN@escape@s
+ \else
+ \let\collargs@action\collargs@fix@VtoN@escape@v
+ \fi
+ \fi
+ \fi
+ \collargs@action
+}
+\def\collargs@fix@VtoN@escape@v#1{%
+ \ifcat\noexpand#1a%
+ \appto\collargs@csname{#1}%
+ \expandafter\collargs@fix@VtoN@escape@iii
+ \else
+ \expandafter\collargs@fix@VtoN@escape@z\expandafter#1%
+ \fi
+}
+\def\collargs@fix@VtoN@escape@s{%
+ \futurelet\collargs@temp\collargs@fix@VtoN@escape@s@i
+}
+\def\collargs@fix@VtoN@escape@s@i{%
+ \expandafter\ifx\space\collargs@temp
+ \expandafter\collargs@fix@VtoN@escape@s@ii
+ \else
+ \expandafter\collargs@fix@VtoN@escape@z
+ \fi
+}
+\def\collargs@fix@VtoN@escape@s@ii{%
+ \expandafter\collargs@fix@VtoN@escape@z\romannumeral-0%
+}
+\def\collargs@fix@VtoN@escape@z@i{%
+ \collargs@fix@VtoN@escape@z@maybe@undefine@cs@begin
+ \collargs@fix@VtoN@escape@z@ii
+}%
+\def\collargs@fix@VtoN@escape@z@maybe@undefine@cs@begin{%
+ \ifcsname\collargs@csname\endcsname
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+}
+\def\collargs@fix@VtoN@escape@z@maybe@undefine@cs@end{%
+ \if@tempswa
+ \else
+ \cslet{\collargs@csname}\collargs@undefined
+ \fi
+}
+\def\collargs@fix@VtoN@escape@z@ii{%
+ \expandafter\collargs@fix@VtoN@escape@z@maybe@undefine@cs@end
+ \expandafter\collargs@fix@next\csname\collargs@csname\endcsname
+}
+\def\collargs@fix@VtoN@escape@z{%
+ \collargs@if@one@more@fix{%
+ \collargs@do@one@more@fix\collargs@fix@VtoN@escape@z@i
+ }{%
+ \collargs@fix@VtoN@escape@z@maybe@undefine@cs@begin
+ \xdef\collargs@double@fix@cs@i{\expandonce{\csname\collargs@csname\endcsname}}%
+ \collargs@fix@VtoN@escape@z@maybe@undefine@cs@end
+ \global\collargs@double@fixtrue
+ \collargs@fix@VtoN@escape@z@ii
+ }%
+}
+\def\collargs@fix@VtoN@escape@d{%
+ \ifcollargs@in@second@fix
+ \expandafter\collargs@fix@VtoN@escape@d@i
+ \expandafter\collargs@double@fix@cs@ii
+ \else
+ \expandafter\collargs@fix@VtoN@escape@d@i
+ \expandafter\collargs@double@fix@cs@i
+ \fi
+}
+\def\collargs@fix@VtoN@escape@d@i#1{%
+ \expandafter\expandafter\expandafter\collargs@fix@VtoN@escape@d@ii
+ \expandafter\string#1\relax
+}
+\def\collargs@fix@VtoN@escape@d@ii#1#2\relax{%
+ \def\collargs@csname{#2}%
+ \def\collargs@fix@VtoN@escape@d@iii#2{%
+ \collargs@fix@VtoN@escape@z
+ }%
+ \collargs@fix@VtoN@escape@d@iii
+}
+\newif\ifcollargs@double@fix
+\newif\ifcollargs@in@second@fix
+\def\collargs@if@one@more@fix{%
+ \ifcollargs@double@fix
+ \ifcollargs@in@second@fix
+ \expandafter\expandafter\expandafter\@secondoftwo
+ \else
+ \expandafter\expandafter\expandafter\@firstoftwo
+ \fi
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\def\collargs@do@one@more@fix#1{%
+ \begingroup
+ \collargs@in@second@fixtrue
+ \collargs@fix{%
+ \endgroup
+ #1%
+ }%
+}
+\def\collargs@cancel@double@fix{%
+ \global\collargs@double@fixfalse
+ \begingroup
+ \collargs@process@arg
+ \edef\collargs@temp{\the\collargsArg}%
+ \edef\collargs@tempa{\expandafter\string\collargs@double@fix@cs@i}%
+ \ifx\collargs@temp\collargs@tempa
+ \global\collargs@fix@requestedtrue
+ \fi
+ \endgroup
+}
+ \def\collargs@insert@char#1#2#3{%
+ \edef\collargs@temp{\normalunexpanded{#1}}%
+ \expandafter\collargs@temp\directlua{%
+ tex.cprint(\number#3,string.char(\number#2))}%
+ }%
+ \def\collargs@make@char#1#2#3{%
+ \edef#1{\directlua{tex.cprint(\number#3,string.char(\number#2))}}%
+ }%
+\stopmodule
+\protect
+\endinput
+%%
+%% End of file `t-collargs.tex'.