You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
269 lines
8.3 KiB
269 lines
8.3 KiB
%%
|
|
%% 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/06/10 v1.1n
|
|
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\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}%
|
|
\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'.
|
|
|