%% %% This is file `luatexbase-cctb.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% luatexbase-cctb.dtx (with options: `texpackage') %% %% See the aforementioned source file(s) for copyright and licensing information. %% \begingroup\catcode61\catcode48\catcode32=10\relax% = and space \catcode123 1 % { \catcode125 2 % } \catcode 35 6 % # \toks0\expandafter{\expandafter\endlinechar\the\endlinechar}% \edef\x{\endlinechar13}% \def\y#1 #2 {% \toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}% \edef\x{\x \catcode#1 #2}}% \y 13 5 % carriage return \y 61 12 % = \y 32 10 % space \y 123 1 % { \y 125 2 % } \y 35 6 % # \y 64 11 % @ (letter) \y 10 12 % new line ^^J \y 39 12 % ' \y 40 12 % ( \y 41 12 % ) \y 44 12 % , \y 45 12 % - \y 46 12 % . \y 47 12 % / \y 58 12 % : \y 60 12 % < \y 62 12 % > \y 91 12 % [ \y 93 12 % ] \y 94 7 % ^ \y 95 8 % _ \y 96 12 % ` \toks0\expandafter{\the\toks0 \relax\noexpand\endinput}% \edef\y#1{\noexpand\expandafter\endgroup% \noexpand\ifx#1\relax \edef#1{\the\toks0}\x\relax% \noexpand\else \noexpand\expandafter\noexpand\endinput% \noexpand\fi}% \expandafter\y\csname luatexbase@cctb@sty@endinput\endcsname% \begingroup \expandafter\ifx\csname ProvidesPackage\endcsname\relax \def\x#1[#2]{\immediate\write16{Package: #1 #2}} \else \let\x\ProvidesPackage \fi \expandafter\endgroup \x{luatexbase-cctb}[2013/05/11 v0.6 Catcodetable allocation for LuaTeX] \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input ifluatex.sty \else \RequirePackage{ifluatex} \fi \ifluatex\else \begingroup \expandafter\ifx\csname PackageError\endcsname\relax \def\x#1#2#3{\begingroup \newlinechar10 \errhelp{#3}\errmessage{Package #1 error: #2}\endgroup} \else \let\x\PackageError \fi \expandafter\endgroup \x{luatexbase-cctb}{LuaTeX is required for this package. Aborting.}{% This package can only be used with the LuaTeX engine^^J% (command `lualatex' or `luatex').^^J% Package loading has been stopped to prevent additional errors.} \expandafter\luatexbase@cctb@sty@endinput% \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input luatexbase-modutils.sty \else \RequirePackage{luatexbase-modutils} \fi \luatexbase@directlua{require('luatexbase.cctb')} \luatexbase@ensure@primitive{luaescapestring} \luatexbase@ensure@primitive{catcodetable} \luatexbase@ensure@primitive{initcatcodetable} \luatexbase@ensure@primitive{savecatcodetable} \newcount\lltxb@catcodetable@alloc \lltxb@catcodetable@alloc\m@ne \newcount\CatcodeTableStack \CatcodeTableStack\z@ \def\newluatexcatcodetable#1{% \ifnum\lltxb@catcodetable@alloc<65535\relax \global\advance\lltxb@catcodetable@alloc\tw@ \allocationnumber\lltxb@catcodetable@alloc \global\chardef#1\allocationnumber \luatexinitcatcodetable\allocationnumber \begingroup\escapechar\m@ne \luatexbase@directlua{luatexbase.catcodetabledef_from_tex( '\luatexluaescapestring{\string#1}', '\number\allocationnumber')}% \endgroup \wlog{\string#1=\string\luatexcatcodetable\the\allocationnumber}% \else \errmessage{No room for a new \string\luatexcatcodetable}% \fi} \def\IncCatcodeTableStack{% \ifnum\CatcodeTableStack<65534\relax \global\advance\CatcodeTableStack\tw@ \else \errmessage{CatcodeTableStack overflow}% \fi} \def\DecCatcodeTableStack{% \ifnum\CatcodeTableStack>\z@ \global\advance\CatcodeTableStack-2\relax \else \errmessage{CatcodeTableStack underflow}% \fi} \expandafter\ifx\csname @tempcnta\endcsname\relax \csname newcount\endcsname\@tempcnta \fi \expandafter\ifx\csname @tempcntb\endcsname\relax \csname newcount\endcsname\@tempcntb \fi \def\SetCatcodeRange#1#2#3{% \edef\luaSCR@temp{% \noexpand\@tempcnta=\the\@tempcnta \noexpand\@tempcntb=\the\@tempcntb \noexpand\count@=\the\count@ \relax}% \@tempcnta=#1\relax \@tempcntb=#2\relax \count@=#3\relax \loop\unless\ifnum\@tempcnta>\@tempcntb \catcode\@tempcnta=\count@ \advance\@tempcnta\@ne \repeat \luaSCR@temp} \def\lltxb@synonym#1#2{% \def#1{% \begingroup \ifdefined\PackageWarning \let\x\PackageWarning \else \def\x####1####2{% \begingroup \endlinechar10 \message{Package ####1 warning: ####2}% \endgroup} \fi \expandafter\endgroup \x{luatex}{\string#1 is deprecated^^J% and will be removed in the next version of the package.^^J% Please use \string#2 instead.} \let#1#2% #1}} \lltxb@synonym \setcatcoderange \SetCatcodeRange \def\setluatexcatcodetable#1#2{% \begingroup #2% \luatexsavecatcodetable#1% \endgroup} \newluatexcatcodetable\CatcodeTableIniTeX \newluatexcatcodetable\CatcodeTableString \setluatexcatcodetable\CatcodeTableString{% \luatexcatcodetable\CatcodeTableIniTeX \catcode0 12 % nul \catcode13 12 % carriage return \catcode37 12 % percent \SetCatcodeRange{65}{90}{12}% A-Z \SetCatcodeRange{97}{122}{12}% a-z \catcode92 12 % backslash \catcode127 12 } \newluatexcatcodetable\CatcodeTableOther \setluatexcatcodetable\CatcodeTableOther{% \luatexcatcodetable\CatcodeTableString \catcode32 12 } \newluatexcatcodetable\CatcodeTableLaTeX \setluatexcatcodetable\CatcodeTableLaTeX{% \luatexcatcodetable\CatcodeTableIniTeX \SetCatcodeRange{0}{31}{15}% \catcode9 10 % tab \catcode10 12 % newline \catcode12 13 % form feed \catcode13 5 % carriage return \catcode35 6 % hash \catcode36 3 % dollar \catcode38 4 % ampersand \catcode94 7 % circumflex \catcode95 8 % underscore \catcode123 1 % brace left \catcode125 2 % brace right \catcode126 13 % tilde \catcode127 15 } \newluatexcatcodetable\CatcodeTableLaTeXAtLetter \setluatexcatcodetable\CatcodeTableLaTeXAtLetter{% \luatexcatcodetable\CatcodeTableLaTeX \catcode64=11 } \newluatexcatcodetable\CatcodeTableExpl \setluatexcatcodetable\CatcodeTableExpl{% \luatexcatcodetable\CatcodeTableLaTeX \catcode126 10 % tilde is a space char \catcode32 9 % space is ignored \catcode9 9 % tab also ignored \catcode95 11 % underscore letter \catcode58 11 % colon letter } \luatexbase@directlua{luatexbase.catcodetable_do_shortcuts()} \def\lltxb@cctb@numstack{0} \def\PushCatcodeTableNumStack{% \xdef\lltxb@cctb@numstack{{\the\luatexcatcodetable}\lltxb@cctb@numstack}} \def\PopCatcodeTableNumStack{% \expandafter\lltxb@cctb@numstack@pop\lltxb@cctb@numstack\@nil} \def\lltxb@cctb@numstack@pop#1#2\@nil{% \ifx\empty#2\empty \begingroup \ifdefined\PackageWarning \let\x\PackageWarning \else \def\x####1####2{% \begingroup \endlinechar10 \message{Package ####1 warning: ####2}% \endgroup}% \fi \expandafter\endgroup \x{luatexbase-cctb}{Popping from an empty CatcodeTableNumStack}% \luatexcatcodetable\z@ \else \gdef\lltxb@cctb@numstack{#2}% \luatexcatcodetable#1\relax \fi} \def\BeginCatcodeRegime#1{% \PushCatcodeTableNumStack \IncCatcodeTableStack \setluatexcatcodetable\CatcodeTableStack{\luatexcatcodetable#1}% \luatexcatcodetable\CatcodeTableStack} \def\EndCatcodeRegime{% \DecCatcodeTableStack \PopCatcodeTableNumStack} \luatexbase@cctb@sty@endinput% \endinput %% %% End of file `luatexbase-cctb.sty'.