Current File : //usr/share/texlive/texmf-dist/tex/latex/base/ltluatex.tex |
%%
%% 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-2020
%% 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}%
[2020/09/25 v1.1s
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
\long\def\@gobble#1{}
\long\def\@firstofone#1{#1}
\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\Umathcode\@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}%
\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
\e@alloc@attribute@count=\z@
\fi
\def\newattribute#1{%
\e@alloc\attribute\attributedef
\e@alloc@attribute@count\m@ne\e@alloc@top#1%
}
\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
\e@alloc@ccodetable@count=\z@
\fi
\def\newcatcodetable#1{%
\e@alloc\catcodetable\chardef
\e@alloc@ccodetable@count\m@ne{"8000}#1%
\initcatcodetable\allocationnumber
}
\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
\e@alloc@luafunction@count=\z@
\fi
\def\newluafunction{%
\e@alloc\luafunction\e@alloc@chardef
\e@alloc@luafunction@count\m@ne\e@alloc@top
}
\ifx\e@alloc@whatsit@count\@undefined
\countdef\e@alloc@whatsit@count=261
\e@alloc@whatsit@count=\z@
\fi
\def\newwhatsit#1{%
\e@alloc\whatsit\e@alloc@chardef
\e@alloc@whatsit@count\m@ne\e@alloc@top#1%
}
\ifx\e@alloc@bytecode@count\@undefined
\countdef\e@alloc@bytecode@count=262
\e@alloc@bytecode@count=\z@
\fi
\def\newluabytecode#1{%
\e@alloc\luabytecode\e@alloc@chardef
\e@alloc@bytecode@count\m@ne\e@alloc@top#1%
}
\ifx\e@alloc@luachunk@count\@undefined
\countdef\e@alloc@luachunk@count=263
\e@alloc@luachunk@count=\z@
\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"}}%
}
\def\now@and@everyjob#1{%
\everyjob\expandafter{\the\everyjob
#1%
}%
#1%
}
\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'.