r3tex

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

commit 3c1a68e9e2a87847edd48345bb1bd16b85cd9394
parent a08197334526f4c4c82916d00dd97748e8d4a33a
Author: Robert Russell <robertrussell.72001@gmail.com>
Date:   Sat, 26 Nov 2022 11:49:14 -0800

Stuff

Diffstat:
Malloc.tex | 2++
Mmath.tex | 3++-
Mmathenc.tex | 2+-
Mprimitive.tex | 1+
Mtmpfont.tex | 137+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
5 files changed, 95 insertions(+), 50 deletions(-)

diff --git a/alloc.tex b/alloc.tex @@ -2,6 +2,8 @@ % By "temporary", we mean the register may be clobbered by any macro. In some % cases, not being able to use temporary registers with certain macros is very % restrictive, so these macros are documented as not using temporary registers. +% Also, macros likely to be assigned to active characters should not use +% temporary registers, because then checking for conflicts is difficult. % count: % 0--9: page identification % 10--29: internal to allocator diff --git a/math.tex b/math.tex @@ -17,6 +17,7 @@ \def\lnot{\neg} \def\land{\wedge} \def\lor{\vee} +\def\limp{\rightarrow} \def\int{\intop\nolimits} \def\oint{\ointop\nolimits} @@ -162,7 +163,7 @@ \def\cong{\mathrel{\mathpalette\@vereq\sim}} \def\@vereq#1#2{\lower.5pt \vbox{\lineskiplimit\maxdimen\lineskip-.5pt \ialign{$\m@th\sty#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} -\def\notin{\mathrel{\mathpalette\c@ncel\in}} +%\def\notin{\mathrel{\mathpalette\c@ncel\in}} \def\c@ncel#1#2{\m@th\ooalign{$\hfil\sty#1\mkern1mu/\hfil$\crcr$\sty#1#2$}} % \def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} % \def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt diff --git a/mathenc.tex b/mathenc.tex @@ -102,7 +102,7 @@ % scheme) that, e.g., provisions for unfilled/filled shapes, single vs double % vs triple vs etc. stroke arrows, etc. -\mathchardef\aleph="0240 +\mathchardef\aleph="0640 \def\hbar{{\mathchar'26 \mkern-9mu h}} \mathchardef\imath="017B \mathchardef\jmath="017C diff --git a/primitive.tex b/primitive.tex @@ -8,6 +8,7 @@ \let\@primxdef=\xdef \protected\def\xdef{\@primlong\@primxdef} %%% Old LuaTeX compatibility +% TODO remove this? \ifprimitive\glet \else \protected\def\glet{\global\let} \fi diff --git a/tmpfont.tex b/tmpfont.tex @@ -48,8 +48,8 @@ \def\@Fentries#1=#2;;{#2;} \def\@Fgobble#1;{} \def\@Fsearch#1:#2;{% - \gdef\@Fname{#2 }% - \ifdim#1pt>\@dimen \else \let\\=\@Fgobble \fi + \gdef\@Fname{#2}% + \ifdim#1pt>\dimenA \else \let\\=\@Fgobble \fi } % \@Fload loads a font with size \dimenA from font set #1 according to the @@ -58,8 +58,7 @@ \@Fskewchar=\defaultskewchar \@Fhyphenchar=\defaulthyphenchar \@Fscalenum=1 \@Fscaleden=1 {\let\\=\@Fsearch \ea\@Fentries#1}% - \dimenB=\dimexpr\dimenA*\@Fscalenum/\@Fscaleden\relax - \font\Ffont=\@Fname at\dimenA + \font\Ffont={\@Fname}at\dimexpr\dimenA*\@Fscalenum/\@Fscaleden\relax \skewchar\Ffont=\@Fskewchar \hyphenchar\Ffont=\@Fhyphenchar } @@ -82,21 +81,26 @@ \def\Fdef#1#2{\def\@{\Ffind#2\let#1=\Ffont}\afterassignment\@\dimenA=} \def\@Fdecompose#1#2#3{\let\@Ftset=#1\let\@Fsset=#2\let\@Fssset=#3} -\def\@Fupdfam"#1#2{% - \ea\@Fdecompose#2% - \dimenA=\Ftsize \Ffind\@Ftset\textfont"#1=\Ffont - \dimenA=\Fssize \Ffind\@Fsset\scriptfont"#1=\Ffont - \dimenA=\Fsssize \Ffind\@Fssset\scriptscriptfont"#1=\Ffont +\def\@Fupdfam"#1#2#3{% + \ea\@Fdecompose#3% + \dimenA=\Ftsize \Ffind\@Ftset\textfont"#1#2=\Ffont + \dimenA=\Fssize \Ffind\@Fsset\scriptfont"#1#2=\Ffont + \dimenA=\Fsssize \Ffind\@Fssset\scriptscriptfont"#1#2=\Ffont } \def\Fupdfams{% - \@Fupdfam"0\Ffamseta \@Fupdfam"1\Ffamsetb - \@Fupdfam"2\Ffamsetc \@Fupdfam"3\Ffamsetd - \@Fupdfam"4\Ffamsete \@Fupdfam"5\Ffamsetf - \@Fupdfam"6\Ffamsetg \@Fupdfam"7\Ffamseth - \@Fupdfam"8\Ffamseti \@Fupdfam"9\Ffamsetj - \@Fupdfam"A\FfamsetA \@Fupdfam"B\FfamsetB - \@Fupdfam"C\FfamsetC \@Fupdfam"D\FfamsetD - \@Fupdfam"E\FfamsetE \@Fupdfam"F\FfamsetF + \@Fupdfam"00\Ffamseta \@Fupdfam"01\Ffamsetb + \@Fupdfam"02\Ffamsetc \@Fupdfam"03\Ffamsetd + \@Fupdfam"04\Ffamsete \@Fupdfam"05\Ffamsetf + \@Fupdfam"06\Ffamsetg \@Fupdfam"07\Ffamseth + \@Fupdfam"08\Ffamseti \@Fupdfam"09\Ffamsetj + \@Fupdfam"0A\FfamsetA \@Fupdfam"0B\FfamsetB + \@Fupdfam"0C\FfamsetC \@Fupdfam"0D\FfamsetD + \@Fupdfam"0E\FfamsetE \@Fupdfam"0F\FfamsetF + \@Fupdfam"10\FfamsetG \@Fupdfam"11\FfamsetH + \@Fupdfam"12\FfamsetI \@Fupdfam"13\FfamsetJ + \@Fupdfam"14\FfamsetK \@Fupdfam"15\FfamsetL + \@Fupdfam"16\FfamsetM \@Fupdfam"17\FfamsetN + \@Fupdfam"18\FfamsetO \@Fupdfam"19\FfamsetP } \def\Fupdfonts{\dimenA=\Fsize \Fupduser} \def\@Fupddelim#1#2{% @@ -174,6 +178,14 @@ \def\FSmpalbexx{mpalbexx=\\10:zplbexx;;} \def\FSmpalbexa{mpalbexa=\\10:zplbexa;;} +\def\FSrrrmpalwidecheck{r3mpalwidecheck=\\10:r3-widecheck;;} + +% Palatino sans +\def\FSpalsansl{r3palsansl=\\10:r3-palatino_sans-light-tlf;;} +\def\FSpalsansr{r3palsansr=\\10:r3-palatino_sans-regular-tlf;;} +\def\FSpalsansm{r3palsansm=\\10:r3-palatino_sans-medium-tlf;;} +\def\FSpalsansb{r3palsansb=\\10:r3-palatino_sans-bold-tlf;;} + % Optima \def\FSoptr{optr=\\10:URWClassico-Regular-lf-t1;;} \def\FSopti{opti=\\10:URWClassico-Italic-lf-t1;;} @@ -181,8 +193,8 @@ \def\FSoptbi{optbi=\\10:URWClassico-BoldItalic-lf-t1;;} % Inconsolata (not narrow and without variant 0, l, or quotes) -\def\FSincr{incr=\\10:t1-zi4r-0;;} -\def\FSincb{incb=\\10:t1-zi4b-0;;} +\def\FSincr{incr=\Fscale11/10\\10:t1-zi4r-0;;} +\def\FSincb{incb=\Fscale11/10\\10:t1-zi4b-0;;} % Euler \def\FSeurm{eurm=\Fskew'177\\10:eurm10;\\9:eurm9;\\8:eurm8;\\7:eurm7;\\6:eurm6;\\5:eurm5;;} @@ -197,22 +209,35 @@ \def\FSboondsr{boondsr=\\10:BOONDOX-r-ds;;} \def\FSboondsb{boondsb=\\10:BOONDOX-b-ds;;} -\def\Ffamseta{\FSpalr\FSpalr\FSpalr} % palatino rm -\def\Ffamsetb{\FSeurm\FSeurm\FSeurm} % euler rm -\def\Ffamsetc{\FSmpalsy\FSmpalsy\FSmpalsy} % newpx symbols -\def\Ffamsetd{\FSmpalexx\FSmpalexx\FSmpalexx} % newpx ext -\def\Ffamsete{\FSeuex\FSeuex\FSeuex} % euler ext -\def\Ffamsetf{\FSeurb\FSeurb\FSeurb} % euler rb -\def\Ffamsetg{\FSeusm\FSeusm\FSeusm} % euler sm -\def\Ffamseth{\FSeusb\FSeusb\FSeusb} % euler sb -\def\Ffamseti{\FSeufm\FSeufm\FSeufm} % euler fm -\def\Ffamsetj{\FSeufb\FSeufb\FSeufb} % euler fb -\def\FfamsetA{\FSboondsr\FSboondsr\FSboondsr} % boon ds -\def\FfamsetB{\FSpali\FSnull\FSnull} % palatino it -\def\FfamsetC{\FSpalb\FSnull\FSnull} % palatino rm b -\def\FfamsetD{\FSpalbi\FSnull\FSnull} % palatino it b -% \def\FfamsetE{} -% \def\FfamsetF{} +% Pagella double struct +\def\FSrrrpalmathds{r3palmathds=\\10:r3-palatino_math-ds;;} + +\def\Ffamseta{\FSpalr\FSpalr\FSpalr} % palatino rm +\def\Ffamsetb{\FSeurm\FSeurm\FSeurm} % euler rm +\def\Ffamsetc{\FSmpalsy\FSmpalsy\FSmpalsy} % newpx symbols +\def\Ffamsetd{\FSmpalexx\FSmpalexx\FSmpalexx} % newpx ext +\def\Ffamsete{\FSeuex\FSeuex\FSeuex} % euler ext +\def\Ffamsetf{\FSeurb\FSeurb\FSeurb} % euler rb +\def\Ffamsetg{\FSeusm\FSeusm\FSeusm} % euler sm +\def\Ffamseth{\FSeusb\FSeusb\FSeusb} % euler sb +\def\Ffamseti{\FSeufm\FSeufm\FSeufm} % euler fm +\def\Ffamsetj{\FSeufb\FSeufb\FSeufb} % euler fb +\def\FfamsetA{\FSrrrpalmathds\FSrrrpalmathds\FSrrrpalmathds} % pagella ds +\def\FfamsetB{\FSpali\FSnull\FSnull} % palatino it +\def\FfamsetC{\FSpalb\FSnull\FSnull} % palatino rm b +\def\FfamsetD{\FSpalbi\FSnull\FSnull} % palatino it b +\def\FfamsetE{\FSmpalmia\FSmpalmia\FSmpalmia} % newpx +\def\FfamsetF{\FSmpalsym\FSmpalsym\FSmpalsym} % newpx +\def\FfamsetG{\FSmpalmi\FSmpalmi\FSmpalmi} % newpx +\def\FfamsetH{\FSmpalexa\FSmpalexa\FSmpalexa} % newpx +\def\FfamsetI{\FSmpalsyc\FSmpalsyc\FSmpalsyc} % newpx +\def\FfamsetJ{\FSincr\FSincr\FSincr} % inconsolata r +\def\FfamsetK{\FSincb\FSincb\FSincb} % inconsolata b +\def\FfamsetL{\FSpalsansl\FSpalsansl\FSpalsansl} % palatino sans l +\def\FfamsetM{\FSpalsansr\FSpalsansr\FSpalsansr} % palatino sans r +\def\FfamsetN{\FSpalsansm\FSpalsansm\FSpalsansm} % palatino sans m +\def\FfamsetO{\FSpalsansb\FSpalsansb\FSpalsansb} % palatino sans b +\def\FfamsetP{\FSrrrmpalwidecheck\FSrrrmpalwidecheck\FSrrrmpalwidecheck} \mathchardef\Fbigchar="0300 \mathchardef\FBigchar="0310 @@ -220,29 +245,37 @@ \mathchardef\FBiggchar="0320 \def\Fupduser{% - \Ffind\FSpalr \let\rmfont=\Ffont - \Ffind\FSeufm \let\fmfont=\Ffont - \Ffind\FSpali \let\itfont=\Ffont - \Ffind\FSpalb \let\bffont=\Ffont - \Ffind\FSpalbi \let\bifont=\Ffont - \Ffind\FSincr \let\ttfont=\Ffont - \Ffind\FSincb \let\tbfont=\Ffont - \Ffind\FSpalrsc \let\scfont=\Ffont + \Ffind\FSpalr \let\rmfont=\Ffont + \Ffind\FSeufm \let\fmfont=\Ffont + \Ffind\FSpali \let\itfont=\Ffont + \Ffind\FSpalb \let\bffont=\Ffont + \Ffind\FSpalbi \let\bifont=\Ffont + \Ffind\FSincr \let\trfont=\Ffont + \Ffind\FSincb \let\tbfont=\Ffont + \Ffind\FSpalsansl \let\slfont=\Ffont + \Ffind\FSpalsansr \let\srfont=\Ffont + \Ffind\FSpalsansm \let\smfont=\Ffont + \Ffind\FSpalsansb \let\sbfont=\Ffont + \Ffind\FSpalrsc \let\scfont=\Ffont } \def\rm{\fam=0 \rmfont} \def\mi{\fam=1 } \def\sy{\fam=2 } \def\bm{\fam=5 } -\def\sr{\fam=6 } -\def\sb{\fam=7 } +\def\hr{\fam=6 } +\def\hb{\fam=7 } \def\fr{\fam=8 } \def\oldstyle{\fam=8 \fmfont} \def\fb{\fam=9 } \def\bb{\fam=10 } \def\it{\fam=11 \itfont} \def\bf{\fam=12 \bffont} \def\bi{\fam=13 \bifont} -\def\tt{\ttfont} -\def\tb{\tbfont} +\def\tr{\fam=19 \trfont} +\def\tb{\fam=20 \tbfont} +\def\sl{\fam=21 \slfont} +\def\sr{\fam=22 \srfont} +\def\sm{\fam=23 \smfont} +\def\sb{\fam=24 \sbfont} \def\sc{\scfont} @@ -250,7 +283,7 @@ % Encoding stuff necessary for euler (see gkpmac.tex) % Actually, we take most non-letter symbols from newpx instead. This keeps % things consistent (since euler is somewhat incomplete) and easy (since -% we needn't change the conventions from plain). +% we needn't change many of the conventions from plain). % Take numerals from euler rm (default is fam 0) \mathcode`\0="7130 @@ -323,6 +356,14 @@ % \def\vert{\delimiter"066A30C } % \def\backslash{\delimiter"066E30F } +\mathcode`\,="602C +\mathcode`\.="002E +\Umathcode`\/="0"10"3D +\Umathcode`\<="3"10"3C +\Umathcode`\>="3"10"3E +\Umathchardef\star="2"10"3F +\Umathchardef\ldotp="6"10"3A + \tenpt\rm \endinput