r3base.tex (4510B)
1 \cs{input:r3base.tex} 2 \cslet{input:r3base.tex}\endinput 3 4 5 % Extra fonts 6 \let\footset=\FSpnrutl 7 \Fdef\footfont\footset10pt 8 9 10 % Pararmeters 11 \paper[letter] 12 \hoffset=1.5in \voffset=1.5in % 1.5in margins 13 \hsize=5.5in \vsize=7.9in 14 \normalparindent=10pt \parindent=\normalparindent 15 \normalparskip=0pt plus1pt \parskip=\normalparskip 16 17 18 % Math spacing 19 \newmuskip\tthinmuskip \tthinmuskip=3mu 20 \newmuskip\dthinmuskip \dthinmuskip=3mu 21 \newmuskip\tmedmuskip \tmedmuskip=4mu plus 2mu minus 4mu 22 \newmuskip\dmedmuskip \dmedmuskip=4mu plus 2mu minus 2mu 23 \newmuskip\tthickmuskip \tthickmuskip=6mu plus 4mu 24 \newmuskip\dthickmuskip \dthickmuskip=10mu minus 3mu 25 \def\textmath{% 26 \thinmuskip=\tthinmuskip 27 \medmuskip=\tmedmuskip 28 \thickmuskip=\tthickmuskip 29 } 30 \def\displaymath{% 31 \thinmuskip=\dthinmuskip 32 \medmuskip=\dmedmuskip 33 \thickmuskip=\dthickmuskip 34 } 35 % TODO: use event? 36 \everymath={\textmath} 37 \everydisplay={\displaymath} 38 39 40 % Output 41 \countdef\pageno=0 \pageno=1 42 43 \newtoks\footline 44 \footline={\hss\footfont\number\pageno\hss} 45 \def\nopagenumbers{\footline={\hfil}} 46 47 \output={\baseoutput} 48 \def\baseoutput{% 49 \shipout\vbox{\pagebody\makefootline}% 50 \gincr\pageno 51 } 52 \def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \unvbox255}} 53 \def\makefootline{\baselineskip=24pt \lineskiplimit=0pt \line{\the\footline}} 54 55 56 % Sectioning 57 % TODO consider moving to text.tex 58 \newcount\@mpenalty \newif\if@mpenalty 59 \def\mpenalty{\global\@mpenaltytrue \@mpenalty=} 60 \def\@mvskip{% 61 \par 62 \ifdim\lastskip<\skipA 63 \removelastskip 64 \if@mpenalty \penalty\@mpenalty \fi 65 \vskip\skipA 66 \fi 67 \global\@mpenaltyfalse 68 } 69 \def\mvskip{\afterassignment\@mvskip \skipA=} 70 \def\msmallskip{\mvskip\smallskipamount} 71 \def\mmedskip{\mvskip\medskipamount} 72 \def\mbigskip{\mvskip\bigskipamount} 73 \def\removelastskip{\ifdim\lastskip=0pt \else \vskip-\lastskip \fi} 74 75 76 % Lists 77 \Lindent=0pt 78 \Lmaxprotrusion=20pt 79 \Llmargin=20pt 80 \Ltopskip=\smallskipamount \Ltoppenalty=50 81 \Lmidskip=\smallskipamount \Lmidpenalty=0 82 \Lbotskip=\smallskipamount \Lbotpenalty=50 83 84 \def\begol{\Lbegx{\f[r]\number\Lcnt.\enspace}} 85 \def\endol{\Lend} 86 87 \def\begolb{\Lbegx{\f[b]\number\Lcnt.\enspace}} 88 \def\endolb{\Lend} 89 90 \def\begul{\Lbegx{$\nosurround\bullet$\enspace}} 91 \def\endul{\Lend} 92 93 94 % Links 95 96 \pdflinkmargin=.5pt 97 \def\deflinkdoc[#1]{\pdfdest name {#1} xyz\relax} 98 \def\linkdoc[#1]#2{% 99 \leavevmode 100 {\pdfstartlink goto name {#1}\relax#2\pdfendlink}% 101 } 102 \def\linkurl[#1]#2{% 103 \leavevmode 104 {\pdfstartlink user {% 105 /Subtype/Link% 106 /A<<% 107 /Type/Action% 108 /S/URI% 109 /URI(#1)% 110 >>% 111 }\relax#2\pdfendlink}% 112 } 113 114 \newread\labauxi 115 \def\readlab{% 116 \openin\labauxi=lab.aux% 117 \beggroup 118 \def\\##1;##2;{\gcsdef{lab:##1}{##2}}% 119 \loop \unless\ifeof\labauxi 120 \read\labauxi to\do 121 \do 122 \repeat 123 \endgroup 124 \closein\labauxi 125 } 126 127 \newtoks\labname 128 \newif\iflab \labfalse 129 \def\lab[#1]{% 130 \global\labname={#1}% 131 \global\labtrue 132 \ignorespaces 133 } 134 135 \newwrite\labauxo 136 \newif\iflabauxo \labauxofalse 137 \def\deflab#1{% 138 \iflab 139 \xcsdef{lab:\the\labname}{#1}% 140 \deflinkdoc[\the\labname]% 141 \iflabauxo \else 142 \immediate\openout\labauxo=lab.aux% 143 \labauxotrue 144 \fi 145 \immediate\ea\write\ea\labauxo\ea{\ea\string\ea\\\the\labname;#1;}% 146 \global\labfalse 147 \fi 148 } 149 150 \def\unknownref{\hbox{\f[r]\Chex"CC1111??}} 151 \def\ref[#1]{% 152 \ifcs lab:#1\endcs 153 \cs{lab:#1}% 154 \else 155 \unknownref 156 \fi 157 } 158 \def\sref[#1]{\linkdoc[sec.#1]{\char"A7 \ref[sec.#1]}} 159 \newif\ifcreffirst 160 \def\cref[#1]{[% 161 \creffirsttrue 162 \foreach#1,\do##1,{% 163 \ifcreffirst\else,\ \fi 164 \linkdoc[cite.##1]{\ref[cite.##1]}% 165 \creffirstfalse 166 }% 167 ]} 168 \def\href#1[#2]{\linkdoc[#2]{#1\ref[#2]}} 169 \def\xref#1[#2]{\linkdoc[#2]{#1}} 170 171 172 % Misc 173 \def\slugbox{\hbox{\kern1.5pt\vrule width2.5pt height6pt depth1.5pt\kern1.5pt}} 174 \def\slug{\unskip\nobreak\quad\slugbox} 175 \def\pdfimg#1file #2.pdf{\pdfximage#1{#2.pdf}\pdfrefximage\pdflastximage} 176 \def\eqref(#1){({\f[ro]#1})} 177 \def\C{{\f[d]C}} 178 \def\Q{{\f[d]Q}} 179 \def\R{{\f[d]R}} 180 \def\Z{{\f[d]Z}} 181 \def\N{{\f[d]N}} 182 \def\tbin#1{\nonscript\mskip\tmedmuskip{#1}\nonscript\mskip\tmedmuskip} 183 \def\trel#1{\nonscript\mskip\tthickmuskip{#1}\nonscript\mskip\tthickmuskip} 184 \def\dbin#1{\nonscript\mskip\dmedmuskip{#1}\nonscript\mskip\dmedmuskip} 185 \def\drel#1{\nonscript\mskip\dthickmuskip{#1}\nonscript\mskip\dthickmuskip} 186 \def\upto{\mathinner{\ldotp\ldotp}} 187 188 % TeX logo modified for Palatino Nova 189 \def\TeX{T\kern-.1667em\lower.4ex\hbox{E}\kern-.125emX} 190 191 % \left and \right but the resulting atoms are open/close, not inner. 192 \def\ml{\mathopen{}\mathclose\bgroup\left} 193 \def\mr{\aftergroup\egroup\right} 194 195 196 \endinput