commit 2be90569b326ae6a1cc862a0c7b6769b3550d30b
parent 10162a96d78f1ae5abc653f386a567966c2f2f2a
Author: robert <robertrussell.72001@gmail.com>
Date: Sun, 30 Jan 2022 14:14:55 -0800
Make $ active
This allows redefining $. Such radical catcode choices really must be
done at the format-level, otherwise macros containing $ will be broken.
Diffstat:
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/catcode.tex b/catcode.tex
@@ -14,7 +14,7 @@
% \catcode`\\=0
\catcode`\{=1
\catcode`\}=2
-\catcode`\$=3
+\catcode`\$=13 % Unlike plain, $ is active.
\catcode`\&=4
% \catcode`\^^M=5
\catcode`\#=6
@@ -25,7 +25,7 @@
\catcode`\^^I=10
% \catcode`\A=11 ... \catcode`\Z=11
% \catcode`\a=11 ... \catcode`\z=11
-\catcode`\@=11 % Unlike plain TeX, @ is always a letter.
+\catcode`\@=11 % Unlike plain, @ is always a letter.
\catcode`\~=13
% \catcode`\%=14
% \catcode`\^^?=15
diff --git a/math.tex b/math.tex
@@ -1,5 +1,15 @@
% TODO: most things here copied from plain; need to sort thru
+\def\begmath{\Ustartmath}
+\def\endmath{\Ustopmath}
+\def\togmath{\relax\ifmmode\ea\endmath\else\ea\begmath\fi}
+\def\begdisplaymath{\Ustartdisplaymath}
+\def\enddisplaymath{\Ustopdisplaymath\optionalspace}
+\def\togdisplaymath{\relax\ifmmode\ea\enddisplaymath\else\ea\begdisplaymath\fi}
+\def\@dmmode${\togdisplaymath}
+\def\@mmode{\ifx\next$\ea\@dmmode\else\ea\togmath\fi}
+\def${\futurelet\next\@mmode}
+
\input mathenc
\def\lnot{\neg}
@@ -103,6 +113,7 @@
\def\biggl{\mathopen\bigg} \def\biggm{\mathrel\bigg} \def\biggr{\mathclose\bigg}
\def\Biggl{\mathopen\Bigg} \def\Biggm{\mathrel\Bigg} \def\Biggr{\mathclose\Bigg}
% TODO need to reconsider when new font system designed
+% TODO use luaTeX Uleft, Uright?
\def\big#1{{\hbox{$\left#1\vbox to\Fbight{}\right.\n@space$}}}
\def\Big#1{{\hbox{$\left#1\vbox to\FBight{}\right.\n@space$}}}
\def\bigg#1{{\hbox{$\left#1\vbox to\Fbigght{}\right.\n@space$}}}
diff --git a/util.tex b/util.tex
@@ -109,6 +109,9 @@
}
\gdef\expandtabs{\afterassignment\@expandtabs \countA=}
}
+\def\gobblespace{\let\csA= }
+\def\@optionalspace{\ifcat\next\space\ea\gobblespace\fi}
+\def\optionalspace{\futurelet\next\@optionalspace}
% Mode control
% TODO: remove \leaveXmode and replace with \Ymode