%% %% This is file `luatexbase-attr.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% luatexbase-attr.dtx (with options: `texpackage') %% %% Written in 2009, 2010 by Manuel Pegourie-Gonnard and Elie Roux. %% %% This work is under the CC0 license. %% See source file 'luatexbase-attr.dtx' for details. %% \csname lltxb@attr@loaded\endcsname \expandafter\let\csname lltxb@attr@loaded\endcsname\endinput \begingroup \catcode123 1 % { \catcode125 2 % } \catcode 35 6 % # \toks0{}% \def\x{}% \def\y#1 #2 {% \toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}% \edef\x{\x \catcode#1 #2}}% \y 123 1 % { \y 125 2 % } \y 35 6 % # \y 10 12 % ^^J \y 34 12 % " \y 36 3 % $ $ \y 39 12 % ' \y 40 12 % ( \y 41 12 % ) \y 42 12 % * \y 43 12 % + \y 44 12 % , \y 45 12 % - \y 46 12 % . \y 47 12 % / \y 60 12 % < \y 61 12 % = \y 64 11 % @ (letter) \y 62 12 % > \y 95 12 % _ (other) \y 96 12 % ` \edef\y#1{\endgroup\edef#1{\the\toks0\relax}\x}% \expandafter\y\csname lltxb@attr@AtEnd\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-attr}[2011/05/21 v0.31 Attributes 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-attr}{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.} \lltxb@attr@AtEnd \expandafter\endinput \fi \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input luatexbase-compat.sty \else \RequirePackage{luatexbase-compat} \fi \luatexbase@ensure@primitive{luaescapestring} \luatexbase@ensure@primitive{attributedef} \luatexbase@ensure@primitive{attribute} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname RequirePackage\endcsname\relax \input luatexbase-loader.sty \else \RequirePackage{luatexbase-loader} \fi \luatexbase@directlua{require('luatexbase.attr')} \def\newluatexattribute#1{% \begingroup\escapechar\m@ne \expandafter\expandafter\expandafter \endgroup \expandafter\expandafter\expandafter \allocationnumber \luatexbase@directlua{tex.write( luatexbase.new_attribute("\luatexluaescapestring{\string#1}", true))}% \ifnum\allocationnumber>\m@ne \global\luatexattributedef#1=\allocationnumber \wlog{\string#1=\string\luatexattribute\the\allocationnumber}% \else \errmessage{No room for a new \string\attribute}% \fi} \def\unsetluatexattribute#1{% \begingroup\escapechar\m@ne \edef\x{\endgroup \noexpand\luatexbase@directlua{% luatexbase.unset_attribute("\luatexluaescapestring{\string#1}")}% }\x} \def\setluatexattribute#1#2{% #1=\numexpr#2\relax} \lltxb@attr@AtEnd \endinput %% %% End of file `luatexbase-attr.sty'.