%% %% This is file `ltluatex.tex', %% generated with the docstrip utility. %% %% The original source files were: %% %% ltluatex.dtx (with options: `tex,plain') %% %% This is a generated file. %% %% The source is maintained by the LaTeX Project team and bug %% reports for it can be opened at https://latex-project.org/bugs.html %% (but please observe conditions on bug reports sent to that address!) %% %% %% Copyright (C) 1993-2019 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% %% This file was generated from file(s) of the LaTeX base system. %% -------------------------------------------------------------- %% %% It may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c %% of this license or (at your option) any later version. %% The latest version of this license is in %% https://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of LaTeX %% version 2008 or later. %% %% This file has the LPPL maintenance status "maintained". %% %% This file may only be distributed together with a copy of the LaTeX %% base system. You may however distribute the LaTeX base system without %% such generated files. %% %% The list of all files belonging to the LaTeX base distribution is %% given in the file `manifest.txt'. See also `legal.txt' for additional %% information. %% %% The list of derived (unpacked) files belonging to the distribution %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ifx\newluafunction\undefined\else\expandafter\endinput\fi \ifx \ProvidesFile\undefined\begingroup\def\ProvidesFile #1#2[#3]{\endgroup\immediate\write-1{File: #1 #3}} \fi \ProvidesFile{ltluatex.tex} [2018/10/21 v1.1i LuaTeX support for plain TeX (core) ] \edef\etatcatcode{\the\catcode`\@} \catcode`\@=11 \ifnum\luatexversion<60 % \wlog{***************************************************} \wlog{* LuaTeX version too old for ltluatex support *} \wlog{***************************************************} \expandafter\endinput \fi \directlua{tex.enableprimitives("",tex.extraprimitives("luatex"))} \ifx\e@alloc\@undefined \ifx\documentclass\@undefined \ifx\loccount\@undefined \input{etex.src}% \fi \catcode`\@=11 % \outer\expandafter\def\csname newfam\endcsname {\alloc@8\fam\chardef\et@xmaxfam} \else \RequirePackage{etex} \expandafter\def\csname newfam\endcsname {\alloc@8\fam\chardef\et@xmaxfam} \expandafter\let\expandafter\new@mathgroup\csname newfam\endcsname \fi \edef \et@xmaxregs {\ifx\directlua\@undefined 32768\else 65536\fi} \edef \et@xmaxfam {\ifx\Umathchar\@undefined\sixt@@n\else\@cclvi\fi} \count 270=\et@xmaxregs % locally allocates \count registers \count 271=\et@xmaxregs % ditto for \dimen registers \count 272=\et@xmaxregs % ditto for \skip registers \count 273=\et@xmaxregs % ditto for \muskip registers \count 274=\et@xmaxregs % ditto for \box registers \count 275=\et@xmaxregs % ditto for \toks registers \count 276=\et@xmaxregs % ditto for \marks classes \expandafter\let\csname newcount\expandafter\expandafter\endcsname \csname globcount\endcsname \expandafter\let\csname newdimen\expandafter\expandafter\endcsname \csname globdimen\endcsname \expandafter\let\csname newskip\expandafter\expandafter\endcsname \csname globskip\endcsname \expandafter\let\csname newbox\expandafter\expandafter\endcsname \csname globbox\endcsname \chardef\e@alloc@top=65535 \let\e@alloc@chardef\chardef \def\e@alloc#1#2#3#4#5#6{% \global\advance#3\@ne \e@ch@ck{#3}{#4}{#5}#1% \allocationnumber#3\relax \global#2#6\allocationnumber \wlog{\string#6=\string#1\the\allocationnumber}}% \gdef\e@ch@ck#1#2#3#4{% \ifnum#1<#2\else \ifnum#1=#2\relax #1\@cclvi \ifx\count#4\advance#1 10 \fi \fi \ifnum#1<#3\relax \else \errmessage{No room for a new \string#4}% \fi \fi}% \long\def\@gobble#1{} \long\def\@firstofone#1{#1} \expandafter\csname newcount\endcsname\e@alloc@attribute@count \expandafter\csname newcount\endcsname\e@alloc@ccodetable@count \expandafter\csname newcount\endcsname\e@alloc@luafunction@count \expandafter\csname newcount\endcsname\e@alloc@whatsit@count \expandafter\csname newcount\endcsname\e@alloc@bytecode@count \expandafter\csname newcount\endcsname\e@alloc@luachunk@count \fi \ifx\e@alloc@attribute@count\@undefined \countdef\e@alloc@attribute@count=258 \fi \def\newattribute#1{% \e@alloc\attribute\attributedef \e@alloc@attribute@count\m@ne\e@alloc@top#1% } \e@alloc@attribute@count=\z@ \def\setattribute#1#2{#1=\numexpr#2\relax} \def\unsetattribute#1{#1=-"7FFFFFFF\relax} \ifx\e@alloc@ccodetable@count\@undefined \countdef\e@alloc@ccodetable@count=259 \fi \def\newcatcodetable#1{% \e@alloc\catcodetable\chardef \e@alloc@ccodetable@count\m@ne{"8000}#1% \initcatcodetable\allocationnumber } \e@alloc@ccodetable@count=\z@ \newcatcodetable\catcodetable@initex \newcatcodetable\catcodetable@string \begingroup \def\setrangecatcode#1#2#3{% \ifnum#1>#2 % \expandafter\@gobble \else \expandafter\@firstofone \fi {% \catcode#1=#3 % \expandafter\setrangecatcode\expandafter {\number\numexpr#1 + 1\relax}{#2}{#3} }% } \@firstofone{% \catcodetable\catcodetable@initex \catcode0=12 % \catcode13=12 % \catcode37=12 % \setrangecatcode{65}{90}{12}% \setrangecatcode{97}{122}{12}% \catcode92=12 % \catcode127=12 % \savecatcodetable\catcodetable@string \endgroup }% \newcatcodetable\catcodetable@latex \newcatcodetable\catcodetable@atletter \begingroup \def\parseunicodedataI#1;#2;#3;#4\relax{% \parseunicodedataII#1;#3;#2 First>\relax }% \def\parseunicodedataII#1;#2;#3 First>#4\relax{% \ifx\relax#4\relax \expandafter\parseunicodedataIII \else \expandafter\parseunicodedataIV \fi {#1}#2\relax% }% \def\parseunicodedataIII#1#2#3\relax{% \ifnum 0% \if L#21\fi \if M#21\fi >0 % \catcode"#1=11 % \fi }% \def\parseunicodedataIV#1#2#3\relax{% \read\unicoderead to \unicodedataline \if L#2% \count0="#1 % \expandafter\parseunicodedataV\unicodedataline\relax \fi }% \def\parseunicodedataV#1;#2\relax{% \loop \unless\ifnum\count0>"#1 % \catcode\count0=11 % \advance\count0 by 1 % \repeat }% \def\storedpar{\par}% \chardef\unicoderead=\numexpr\count16 + 1\relax \openin\unicoderead=UnicodeData.txt % \loop\unless\ifeof\unicoderead % \read\unicoderead to \unicodedataline \unless\ifx\unicodedataline\storedpar \expandafter\parseunicodedataI\unicodedataline\relax \fi \repeat \closein\unicoderead \@firstofone{% \catcode64=12 % \savecatcodetable\catcodetable@latex \catcode64=11 % \savecatcodetable\catcodetable@atletter } \endgroup \ifx\e@alloc@luafunction@count\@undefined \countdef\e@alloc@luafunction@count=260 \fi \def\newluafunction{% \e@alloc\luafunction\e@alloc@chardef \e@alloc@luafunction@count\m@ne\e@alloc@top } \e@alloc@luafunction@count=\z@ \ifx\e@alloc@whatsit@count\@undefined \countdef\e@alloc@whatsit@count=261 \fi \def\newwhatsit#1{% \e@alloc\whatsit\e@alloc@chardef \e@alloc@whatsit@count\m@ne\e@alloc@top#1% } \e@alloc@whatsit@count=\z@ \ifx\e@alloc@bytecode@count\@undefined \countdef\e@alloc@bytecode@count=262 \fi \def\newluabytecode#1{% \e@alloc\luabytecode\e@alloc@chardef \e@alloc@bytecode@count\m@ne\e@alloc@top#1% } \e@alloc@bytecode@count=\z@ \ifx\e@alloc@luachunk@count\@undefined \countdef\e@alloc@luachunk@count=263 \fi \def\newluachunkname#1{% \e@alloc\luachunk\e@alloc@chardef \e@alloc@luachunk@count\m@ne\e@alloc@top#1% {\escapechar\m@ne \directlua{lua.name[\the\allocationnumber]="\string#1"}}% } \e@alloc@luachunk@count=\z@ \begingroup \attributedef\attributezero=0 % \chardef \charzero =0 % \countdef \CountZero =0 % \dimendef \dimenzero =0 % \mathchardef \mathcharzero =0 % \muskipdef \muskipzero =0 % \skipdef \skipzero =0 % \toksdef \tokszero =0 % \directlua{require("ltluatex")} \endgroup \catcode`\@=\etatcatcode\relax \endinput %% %% End of file `ltluatex.tex'.