r3tex

custom LuaTeX format
git clone git://git.rr3.xyz/r3tex
Log | Files | Refs | README | LICENSE

commit 26c3d11457f86f879223ef239320401343276335
parent 95f17e9275eecafdc11c2133f5dff8bc2fb08012
Author: robert <robertrussell.72001@gmail.com>
Date:   Fri, 17 Dec 2021 20:57:04 -0800

Import and organize more from plain

Diffstat:
Mdebug.tex | 3+++
Mutil.tex | 80++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
2 files changed, 68 insertions(+), 15 deletions(-)

diff --git a/debug.tex b/debug.tex @@ -1,3 +1,6 @@ +\def\wlog{\immediate\write-1 } +\def\wterm{\immediate\write16 } + \def\loggingall{% \tracingcommands=3 \tracingstats=2 diff --git a/util.tex b/util.tex @@ -1,6 +1,4 @@ -\let\bgroup={ \let\egroup=} - -% Primitive abbreviations. +% Primitive abbreviations \let\g=\global \let\ea=\expandafter \let\attr=\attribute @@ -12,13 +10,26 @@ \let\endcs=\endcsname \let\ifcs=\ifcsname -% Useful inside \edef's: +% Control symbol aliases for special characters +\chardef\%=`\% +\chardef\&=`\& +\chardef\#=`\# +\chardef\$=`\$ + +% Misc from plain +\let\bgroup={ +\let\egroup=} +\let\endgraf=\par +\let\endline=\cr +\def\empty{} +\def\space{ } +\def\null{\hbox{}} +\def\m@th{\mathsurround=0pt } + +% Expansion control \def\nea{\noexpand\ea} \def\eonce#1{\unexpanded\ea{#1}} -\def\wlog{\immediate\write-1 } -\def\wterm{\immediate\write16 } - % Caution: \incr\count0 does not do what you'd hope. We use the "by" keyword % to catch this error. \protected\def\incr#1{\advance#1by1 } @@ -43,6 +54,7 @@ \protected\def\gcsletcs#1#2{\ea\glet\begcs#1\ea\endcs\begcs#2\endcs} \def\selectx#1{} % \gobble +\def\selectO#1{#1} \def\selectxx#1#2{} % \gobbletwo \def\selectOx#1#2{#1} % \firstoftwo \def\selectxO#1#2{#2} % \secondoftwo @@ -51,19 +63,57 @@ \def\selectxOx#1#2#3{#2} \def\selectxxO#1#2#3{#3} -\def\empty{} -\def\space{ } -\def\null{\hbox{}} +% White space control +\def\^^M{\ } % control <return> = control <space> +\def\^^I{\ } % control <tab> = control <space> +{ + \catcode`\^^M=13 % these lines must end with % + % In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' + % since this allows, for example, `\let\par=\cr \obeylines \halign{...' + \gdef\obeylines{\catcode`\^^M=13 \let^^M=\par}% + \glet^^M=\par % in case ^^M appears in a \write +} +\def\obeyspaces{\catcode`\ =13 } +{\obeyspaces\glet =\space} + +% Mode control +\def\leavevmode{\unhbox\voidbox} \def\hmode{\leavevmode} +\def\leavehmode{\par} \def\vmode{\leavehmode} +\def\modechoice#1#2#3{% + \relax + \ifvmode + \def\next{#1}% + \else\ifhmode + \def\next{#2}% + \else % mmode + \def\next{#3}% + \fi\fi + \next +} + +% Generalized mathpalette---gives number to be used with \ifcase +\def\mathpalette#1#2{\mathchoice{#10{#2}}{#11{#2}}{#12{#2}}{#13{#2}}} +\def\sty#1{% + \ifcase\numexpr#1\relax + \displaystyle + \or\textstyle + \or\scriptstyle + \or\scriptscriptstyle + \fi +} +\def\styfont#1{% + \ifcase\numexpr#1\relax + \textfont + \or\textfont + \or\scriptfont + \or\scriptscriptfont + \fi +} {\catcode`\p=12 \catcode`\t=12 \gdef\csA#1pt{#1}} \let\rempt=\csA \def\decimal{\ea\rempt\the} -\chardef\%=`\% -\chardef\&=`\& -\chardef\#=`\# -\chardef\$=`\$ - \def\@regnum#1#2\@END{% \ifx\relax#1\else \ifnum1<1#1 #1\fi