diff options
author | Karl Berry <karl@freefriends.org> | 2010-05-28 15:54:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-05-28 15:54:16 +0000 |
commit | 7db7ee076f98cc2b3dca7228ae0e38ba4e88715a (patch) | |
tree | c15a7028a935446f0d5dcce2b5008a6f24e2242f /Master/texmf-dist/source | |
parent | ae29f8fd830ee6798b80ee088fdd0c92b1a215f4 (diff) |
luatexbase update (27may10)
git-svn-id: svn://tug.org/texlive/trunk@18560 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
9 files changed, 350 insertions, 39 deletions
diff --git a/Master/texmf-dist/source/luatex/luatexbase/Makefile b/Master/texmf-dist/source/luatex/luatexbase/Makefile index 4f018590786..8c82909d79f 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/Makefile +++ b/Master/texmf-dist/source/luatex/luatexbase/Makefile @@ -21,8 +21,10 @@ UNPACKED_MODUTILS = luatexbase-modutils.sty modutils.lua test-modutils.lua \ test-modutils-plain.tex test-modutils-latex.tex UNPACKED_COMPAT = luatexbase-compat.sty \ test-compat-plain.tex test-compat-latex.tex +UNPACKED_CORE = luatexbase.sty UNPACKED = $(UNPACKED_MCB) $(UNPACKED_REGS) $(UNPACKED_ATTR) $(UNPACKED_CCTB) \ - $(UNPACKED_LOADER) $(UNPACKED_MODUTILS) $(UNPACKED_COMPAT) + $(UNPACKED_LOADER) $(UNPACKED_MODUTILS) $(UNPACKED_COMPAT) \ + $(UNPACKED_CORE) COMPILED = $(DOC) GENERATED = $(COMPILED) $(UNPACKED) SOURCE = $(DTX) $(DTXSTY) README TODO Changes Makefile @@ -101,6 +103,9 @@ $(UNPACKED_MODUTILS): luatexbase-modutils.dtx $(UNPACKED_COMPAT): luatexbase-compat.dtx $(DO_TEX) +$(UNPACKED_CORE): luatexbase.dtx + $(DO_TEX) + check-regs: $(UNPACKED_REGS) luatex --interaction=batchmode test-regs-plain.tex >/dev/null lualatex --interaction=batchmode test-regs-latex.tex >/dev/null diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-attr.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-attr.dtx index cf310d06570..5847daec422 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-attr.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-attr.dtx @@ -114,7 +114,7 @@ See source file '\inFileName' for details. % Right brace \} Tilde \~} % % \title{The \pk{luatexbase-attr} package} -% \date{v0.2 2010-05-12} +% \date{v0.2a 2010-05-27} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \email{mpg@elzevir.fr} \and % \'Elie Roux \\ \email{elie.roux@telecom-bretagne.eu}} @@ -124,17 +124,20 @@ See source file '\inFileName' for details. % \begin{abstract} % In addition to the registers existing in \tex and \etex, \luatex introduces % a new concept: attributes. This package takes care of attribute allocation -% just like Plain TeX and LaTeX do for other registers. +% just like Plain TeX and LaTeX do for other registers, and also provides a +% Lua interface. % \end{abstract} % % \tableofcontents % % \section{Documentation} % +% \subsection{\tex interface} +% % The main macro defined here is |\newluatexattribute|. It behaves in the same % way as |\newcount|. There are also two helper macros: |\setluatexattibute| % sets an attribute's value (locally, but you can use |\global| in front of -% it). |\unsetluatexattribute| unsets an atribute by giving it a special +% it). |\unsetluatexattribute| unsets an attribute by giving it a special % value, depending on \luatex's version; you should always use this macro % in order to be sure the correct special value for your version of \luatex is % used. @@ -143,6 +146,8 @@ See source file '\inFileName' for details. % allocate an attribute the way you can locally allocate a counter using % \file{etex.sty}'s |\loccount|, so no corresponding macro is defined. % +% \subsection{Lua interface} +% % The various Lua functions for manipulating attributes use a number to % designate the attribute. Hence, package writers need a way to know the % number of the attribute associated to |\fooattr| assuming it was defined @@ -159,6 +164,16 @@ See source file '\inFileName' for details. % |luatexbase.attributes.foobar| (mind the absence of backslash here) at any % time. % +% Also, two Lua functions are provided that are analogous to the above \tex +% macros (actually, the macros are wrappers around the functions): +% |luatexbase.new_attributes|\parg{name} allocates a new attribute, without +% defining a corresponding \tex control sequence (only an entry in +% |luatexbase.attributes| is created. It usually returns the number of the +% allocated attribute. If room is missing, it raises an error, unless the +% second argument (optional) is not false, in which case it returns -1. +% +% |luatexbase.unset_attribute|\parg{name} unsets an existing attribute. +% % \section{Implementation} % % \subsection{\tex package} @@ -223,7 +238,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-attr}[2010/05/12 v0.2 Attributes allocation for LuaTeX] +\x{luatexbase-attr}[2010/05/27 v0.2a Attributes allocation for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. @@ -288,36 +303,32 @@ See source file '\inFileName' for details. % % \subsection{User macros} % -% The allocaton macro. +% The allocaton macro is merely a wrapper around the Lua function, but +% handles error and logging in \tex, for consistency with other allocation +% macros. % % \begin{macrocode} -\newcount\lltxb@attribute@alloc -\lltxb@attribute@alloc\m@ne \def\newluatexattribute#1{% - \ifnum\lltxb@attribute@alloc<65535\relax - \global\advance\lltxb@attribute@alloc\@ne - \allocationnumber\lltxb@attribute@alloc + \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 - \unsetluatexattribute#1% - \begingroup\escapechar\m@ne - \luatexbase@directlua{luatexbase.attributedef_from_tex( - '\luatexluaescapestring{\string#1}', '\number\allocationnumber')}% - \endgroup \wlog{\string#1=\string\luatexattribute\the\allocationnumber}% \else \errmessage{No room for a new \string\attribute}% \fi} % \end{macrocode} % -% Helper macro |\unsetluatexattribute|: depends on \luatex's version. +% Helper macro |\unsetluatexattribute|: wrapper around the Lua function. % % \begin{macrocode} \def\unsetluatexattribute#1{% - \ifnum\luatexversion<37\relax - #1=-1\relax - \else - #1=-"7FFFFFFF\relax - \fi} + \begingroup\escapechar\m@ne + \luatexbase@directlua{% + luatexbase.unset_attribute("\luatexluaescapestring{\string#1}")}% + \endgroup} % \end{macrocode} % % And now the trivial helper macro. @@ -341,12 +352,44 @@ See source file '\inFileName' for details. module('luatexbase', package.seeall) % \end{macrocode} % -% Record the allocation number in a Lua table. +% This table holds the values of the allocated attributes, indexed by name. % % \begin{macrocode} attributes = {} -function attributedef_from_tex(name, number) - attributes[name] = tonumber(number) +% \end{macrocode} +% +% The allocaton function. Unlike other registers, allocate starting from 1. +% Some code (eg, font handling coming from Con\tex{}t) behaves strangely +% with \verb+\attribute0+ and since there is plenty of room here, it +% doesn't seem bad to ``loose'' one item in order to avoid this problem. +% +% \begin{macrocode} +local last_alloc = 0 +function new_attribute(name, silent) + if last_alloc >= 65535 then + if silent then + return -1 + else + error("No room for a new \\attribute", 1) + end + end + last_alloc = last_alloc + 1 + attributes[name] = last_alloc + unset_attribute(name) + if not silent then + texio.write_nl('log', string.format( + 'luatexbase.attributes[%q] = %d', name, last_alloc)) + end + return last_alloc +end +% \end{macrocode} +% +% Unset an attribute the correct way depending on \luatex's version. +% +% \begin{macrocode} +local unset_value = (luatexbase.luatexversion < 37) and -1 or -2147483647 +function unset_attribute(name) + tex.setattribute(attributes[name], unset_value) end % \end{macrocode} % @@ -370,6 +413,8 @@ end \unsetluatexattribute\testattr \catcode64 11 \luatexbase@directlua{assert(luatexbase.attributes.testattr)} +\luatexbase@directlua{luatexbase.new_attribute('luatestattr')} +\luatexbase@directlua{assert(luatexbase.attributes.luatestattr)} \begingroup \escapechar64 \newluatexattribute\anotherattr diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx index 141f1203bef..4b7b8c64231 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-cctb.dtx @@ -114,7 +114,7 @@ See source file '\inFileName' for details. % Right brace \} Tilde \~} % % \title{The \pk{luatexbase-cctb} package} -% \date{v0.2 2010-05-12} +% \date{v0.2a 2010-05-27} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \texttt{mpg@elzevir.fr} \and % \'Elie Roux \\ \texttt{elie.roux@telecom-bretagne.eu}} @@ -246,7 +246,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-cctb}[2010/05/11 v0.2 Catcodetable allocation for LuaTeX] +\x{luatexbase-cctb}[2010/05/27 v0.2a Catcodetable allocation for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-compat.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-compat.dtx index dbff084195c..f4a903b74be 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-compat.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-compat.dtx @@ -103,7 +103,7 @@ See source file '\inFileName' for details. % Right brace \} Tilde \~} % % \title{The \pk{luatexbase-compat} package} -% \date{v0.2 2010/05/12} +% \date{v0.2a 2010/05/27} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \email{mpg@elzevir.fr} \and % \'Elie Roux \\ \email{elie.roux@telecom-bretagne.eu}} @@ -258,7 +258,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-compat}[2010/05/12 v0.2 Compatibility tools for LuaTeX] +\x{luatexbase-compat}[2010/05/27 v0.2a Compatibility tools for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx index 8fe81acb6d5..bd900c26969 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx @@ -117,7 +117,7 @@ See source file '\inFileName' for details. % Right brace \} Tilde \~} % % \title{The \pk{luatexbase-loader} package} -% \date{v0.2 2010-05-12} +% \date{v0.2a 2010-05-27} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \texttt{mpg@elzevir.fr} \and % \'Elie Roux \\ \texttt{elie.roux@telecom-bretagne.eu}} @@ -230,7 +230,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-loader}[2010/05/12 v0.2 Lua module loader for LuaTeX] +\x{luatexbase-loader}[2010/05/27 v0.2a Lua module loader for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-mcb.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-mcb.dtx index f30753c737f..86a4788d2be 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-mcb.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-mcb.dtx @@ -114,7 +114,7 @@ See source file '\inFileName' for details. % Right brace \} Tilde \~} % % \title{The \textsf{luatexbase-mcb} package} -% \date{2010/05/12 v0.2} +% \date{2010/05/27 v0.2a} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \email{mpg@elzevir.fr} \and % \'Elie Roux \\ \email{elie.roux@telecom-bretagne.eu}} @@ -241,7 +241,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-mcb}[2010/05/12 v0.2 Callback management for LuaTeX] +\x{luatexbase-mcb}[2010/05/27 v0.2a Callback management for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-modutils.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-modutils.dtx index 9c2936f4ce8..dd5b118f9aa 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-modutils.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-modutils.dtx @@ -263,7 +263,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-modutils}[2010/05/12 v0.2 Module utilities for LuaTeX] +\x{luatexbase-modutils}[2010/05/27 v0.2a Module utilities for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. @@ -315,7 +315,7 @@ See source file '\inFileName' for details. % % \begin{macrocode} \def\luatexUseModule#1{\luatexbase@directlua{% - luatexbase.use_module("\luatexluescapestring{#1}")}} + luatexbase.use_module("\luatexluaescapestring{#1}")}} % \end{macrocode} % % Interface to |require_module()| with syntax depending on the format. @@ -486,7 +486,7 @@ function provides_module(mod) end requiredversion = requiredversions[mod.name] if requiredversion then - if requiredversion.type == date + if requiredversion.type == date and requiredversion.version > datetonumber(mod.date) then err("loading module %s in version %s, " .."but version %s was required", @@ -498,7 +498,7 @@ function provides_module(mod) mod.name, mod.version, requiredversion.orig) end end - modules[mod.name] = module + modules[mod.name] = mod texio.write_nl('log', string.format("Lua module: %s %s v%.02f %s\n", mod.name, mod.date, mod.version, mod.description)) end @@ -531,6 +531,7 @@ luatexbase.provides_module { %<testplain>\input luatexbase-modutils.sty %<testlatex>\RequirePackage{luatexbase-modutils} %<*testplain,testlatex> +\luatexUseModule{test-modutils} \luatexRequireModule %<testlatex>[1970/01/01] {test-modutils} diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-regs.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-regs.dtx index 313af007c97..08d1060ab23 100644 --- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-regs.dtx +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-regs.dtx @@ -104,7 +104,7 @@ See source file '\inFileName' for details. % Right brace \} Tilde \~} % % \title{The \pk{luatexbase-regs} package} -% \date{v0.2 2010/05/12} +% \date{v0.2a 2010/05/27} % \author{% % Manuel P\'egouri\'e-Gonnard \\ \email{mpg@elzevir.fr} \and % \'Elie Roux \\ \email{elie.roux@telecom-bretagne.eu}} @@ -211,7 +211,7 @@ See source file '\inFileName' for details. \let\x\ProvidesPackage \fi \expandafter\endgroup -\x{luatexbase-regs}[2010/05/12 v0.2 Registers allocation for LuaTeX] +\x{luatexbase-regs}[2010/05/27 v0.2a Registers allocation for LuaTeX] % \end{macrocode} % % Make sure \luatex is used. diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase.dtx new file mode 100644 index 00000000000..f2859128497 --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexbase/luatexbase.dtx @@ -0,0 +1,260 @@ +% \iffalse meta-comment +% +% Written in 2009, 2010 by Manuel Pégourié-Gonnard and Élie Roux. +% <mpg@elzevir.fr> +% <elie.roux@telecom-bretagne.eu> +% +% This work is under the CC0 license. +% +% This work consists of the main source file luatexbase.dtx +% and the derived files +% luatexbase.sty +% +% Unpacking: +% tex luatexbase.dtx +% Documentation: +% pdflatex luatexbase.dtx +% +%<*ignore> +\begingroup + \def\x{LaTeX2e}% +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +%</ignore> +%<*install> +\input docstrip.tex + +\keepsilent +\askforoverwritefalse + +\let\MetaPrefix\relax + +\preamble + +Written in 2009, 2010 by Manuel Pegourie-Gonnard and Elie Roux. + +This work is under the CC0 license. +See source file '\inFileName' for details. + +\endpreamble + +\generate{% + \usedir{tex/luatex/luatexbase}% + \file{luatexbase.sty}{\from{luatexbase.dtx}{texpackage}}% +} + +\obeyspaces +\Msg{************************************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* luatexbase.sty} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{************************************************************************} + +\endbatchfile +%</install> +%<*ignore> +\fi +%</ignore> +%<*driver> +\documentclass{ltxdoc} +\input{lltxb-dtxstyle} +\newcommand\subpk[1]{% + \item[\href{luatexbase-#1.pdf}{luatexbase-#1}\normalfont:]} +\begin{document} + \DocInput{luatexbase.dtx}% +\end{document} +%</driver> +% \fi +% +% \CheckSum{0} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \title{The \pk{luatexbase} package} +% \date{v0.2a 2010-05-27} +% \author{% +% Manuel P\'egouri\'e-Gonnard \\ \email{mpg@elzevir.fr} \and +% \'Elie Roux \\ \email{elie.roux@telecom-bretagne.eu}} +% +% \maketitle +% +% \begin{abstract} +% This convenience package loads all of the (stable) packages in the +% \pk{luatexbase} bundle. +% \end{abstract} +% +% \tableofcontents +% +% \section{Documentation} +% +% The \pk{luatexbase} package loads the following packages: +% \begin{description} +% \subpk{compat} compatibility helpers for \verb+\directlua+, primitive +% names and version information from Lua. +% \subpk{loader} extension of \luatex's Lua module loader (since version +% 0.60.0, this is more of a compatibility layer for older versions than a +% real extension). +% \subpk{regs} extented allocation scheme for registers and the like, +% \emph{\`a la} \pk{etex}. +% \subpk{cctb} catcode table allocation. +% \subpk{attr} attribute allocation. +% \end{description} +% +% These packages are almost stable: it is unlikely that backward-incompatible +% changes will be made in the future (other than necessary for merging with +% \pk{luatex.sty}, which strongly overlaps with the above). If they happen, +% such changes will be announced on \email{lualatex-dev@tug.org} before they +% are pushed to the master branch and then CTAN. +% +% Other packages included in the bundle, but currently not loaded by the +% present package, are: +% \begin{description} +% \subpk{modutils} Lua module declaration, including version checks. +% \subpk{mcb} callbacks extensions allowing to register many functions in a +% single callback, and declare new callbacks for packages. +% \end{description} +% +% All packages in this bundle are supposed to work with \luatex 0.25.4 to +% 0.60.x, with formats based on \plaintex or \latex, as included in \texlive +% 2008, 2009, and 2010. +% +% \section{Implementation} +% +% \begin{macrocode} +%<*texpackage> +% \end{macrocode} +% +% \subsection{Preliminaries} +% +% Reload protection, especially for \plaintex. +% +% \begin{macrocode} + \csname lltxb@core@loaded\endcsname +\expandafter\let\csname lltxb@core@loaded\endcsname\endinput +% \end{macrocode} +% +% Catcode defenses. +% +% \begin{macrocode} +\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@core@AtEnd\endcsname +% \end{macrocode} +% +% Package declaration. +% +% \begin{macrocode} +\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}[2010/05/27 v0.2a Module utilities for LuaTeX] +% \end{macrocode} +% +% Make sure \luatex is used. +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input ifluatex.sty +\else + \RequirePackage{ifluatex} +\fi +\ifluatex\else + \begingroup + \expandafter\ifx\csname PackageWarningNoLine\endcsname\relax + \def\x#1#2{\begingroup\newlinechar10 + \immediate\write16{Package #1 warning: #2}\endgroup} + \else + \let\x\PackageWarningNoLine + \fi + \expandafter\endgroup + \x{luatexbase}{LuaTeX is required for this package. Aborting.} + \lltxb@core@AtEnd + \expandafter\endinput +\fi +% \end{macrocode} +% +% \subsection{Packages loading} +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname RequirePackage\endcsname\relax + \input luatexbase-compat.sty + \input luatexbase-loader.sty + \input luatexbase-regs.sty + \input luatexbase-attr.sty + \input luatexbase-cctb.sty +\else + \RequirePackage{luatexbase-compat} + \RequirePackage{luatexbase-loader} + \RequirePackage{luatexbase-regs} + \RequirePackage{luatexbase-attr} + \RequirePackage{luatexbase-cctb} +\fi +% \end{macrocode} +% +% This is the end, my friend\dots the end. +% +% \begin{macrocode} +\lltxb@core@AtEnd +%</texpackage> +% \end{macrocode} +% +% +% \Finale +\endinput |