diff options
Diffstat (limited to 'macros/lollipop/tex/lollipop-plain.tex')
-rw-r--r-- | macros/lollipop/tex/lollipop-plain.tex | 1249 |
1 files changed, 0 insertions, 1249 deletions
diff --git a/macros/lollipop/tex/lollipop-plain.tex b/macros/lollipop/tex/lollipop-plain.tex deleted file mode 100644 index 96a3ed703d..0000000000 --- a/macros/lollipop/tex/lollipop-plain.tex +++ /dev/null @@ -1,1249 +0,0 @@ -% This is lollipop-plain.tex, the version of plain.tex adapted to the -% Lollipop format of Victor Eijkhout and Vafa Khalighi. -% copyright 1991/92 Victor Eijkhout -% copyright 2014--2016 Vafa Khalighi -% -% -% This program is free software: you can redistribute it and/or modify -% it under the terms of the GNU General Public License as published by -% the Free Software Foundation, either version 3 of the License, or -% (at your option) any later version. -% -% This program is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this program. If not, see <http://www.gnu.org/licenses/>. -% -% -\catcode`\{=1 % left brace is begin-group character -\catcode`\}=2 % right brace is end-group character -\catcode`\$=3 % dollar sign is math shift -\catcode`\&=4 % ampersand is alignment tab -\catcode`\#=6 % hash mark is macro parameter character -\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts -\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts -\catcode`\^^I=10 % ascii tab is a blank space -\chardef\active=13 \catcode`\~=\active % tilde is active -\chardef\ignored=9 \chardef\other=12 -\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" - -% We had to define the \catcodes right away, before the message line, -% since \message uses the { and } characters. -% When INITEX (the TeX initializer) starts up, -% it has defined the following \catcode values: -% \catcode`\^^@=9 % ascii null is ignored -% \catcode`\^^M=5 % ascii return is end-line -% \catcode`\\=0 % backslash is TeX escape character -% \catcode`\%=14 % percent sign is comment character -% \catcode`\ =10 % ascii space is blank space -% \catcode`\^^?=15 % ascii delete is invalid -% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters -% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters -% all others are type 12 (other) - -% INITEX sets up \mathcode x=x, for x=0..127, except that -% \mathcode x=x+"7100, for x = `A to `Z and `a to `z; -% \mathcode x=x+"7000, for x = `0 to `9. -% The following changes define internal codes as recommended -% in Appendix C of The TeXbook: -\mathcode`\^^@="2201 % \cdot -\mathcode`\^^A="3223 % \downarrow -\mathcode`\^^B="010B % \alpha -\mathcode`\^^C="010C % \beta -\mathcode`\^^D="225E % \land -\mathcode`\^^E="023A % \lnot -\mathcode`\^^F="3232 % \in -\mathcode`\^^G="0119 % \pi -\mathcode`\^^H="0115 % \lambda -\mathcode`\^^I="010D % \gamma -\mathcode`\^^J="010E % \delta -\mathcode`\^^K="3222 % \uparrow -\mathcode`\^^L="2206 % \pm -\mathcode`\^^M="2208 % \oplus -\mathcode`\^^N="0231 % \infty -\mathcode`\^^O="0140 % \partial -\mathcode`\^^P="321A % \subset -\mathcode`\^^Q="321B % \supset -\mathcode`\^^R="225C % \cap -\mathcode`\^^S="225B % \cup -\mathcode`\^^T="0238 % \forall -\mathcode`\^^U="0239 % \exists -\mathcode`\^^V="220A % \otimes -\mathcode`\^^W="3224 % \leftrightarrow -\mathcode`\^^X="3220 % \leftarrow -\mathcode`\^^Y="3221 % \rightarrow -\mathcode`\^^Z="8000 % \ne -\mathcode`\^^[="2205 % \diamond -\mathcode`\^^\="3214 % \le -\mathcode`\^^]="3215 % \ge -\mathcode`\^^^="3211 % \equiv -\mathcode`\^^_="225F % \lor -\mathcode`\ ="8000 % \space -\mathcode`\!="5021 -\mathcode`\'="8000 % ^\prime -\mathcode`\(="4028 -\mathcode`\)="5029 -\mathcode`\*="2203 % \ast -\mathcode`\+="202B -\mathcode`\,="613B -\mathcode`\-="2200 -\mathcode`\.="013A -\mathcode`\/="013D -\mathcode`\:="303A -\mathcode`\;="603B -\mathcode`\<="313C -\mathcode`\=="303D -\mathcode`\>="313E -\mathcode`\?="503F -\mathcode`\[="405B -\mathcode`\\="026E % \backslash -\mathcode`\]="505D -\mathcode`\_="8000 % \_ -\mathcode`\{="4266 -\mathcode`\|="026A -\mathcode`\}="5267 -\mathcode`\^^?="1273 % \smallint - -% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x, -% and \lccode`x=`x, \lccode`X=`x; all other values are zero. -% No changes to those tables are needed in plain TeX format. - -% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999 -% for uppercase letters. The following changes are needed: -\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 -% The \nonfrenchspacing macro will make further changes to \sfcode values. - -% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0 -\delcode`\(="028300 -\delcode`\)="029301 -\delcode`\[="05B302 -\delcode`\]="05D303 -\delcode`\<="26830A -\delcode`\>="26930B -\delcode`\/="02F30E -\delcode`\|="26A30C -\delcode`\\="26E30F -% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails! - -% To make the plain macros more efficient in time and space, -% several constant values are declared here as control sequences. -% If they were changed, anything could happen; so they are private symbols. -\chardef\@ne=1 -\chardef\tw@=2 -\chardef\thr@@=3 -\chardef\sixt@@n=16 -\chardef\@cclv=255 -\mathchardef\@cclvi=256 -\mathchardef\@m=1000 -\mathchardef\@M=10000 -\mathchardef\@MM=20000 - -% Allocation of registers - -% Here are macros for the automatic allocation of \count, \box, \dimen, -% \skip, \muskip, and \toks registers, as well as \read and \write -% stream numbers, \fam codes, \language codes, and \insert numbers. - -% When a register is used only temporarily, it need not be allocated; -% grouping can be used, making the value previously in the register return -% after the close of the group. The main use of these macros is for -% registers that are defined by one macro and used by others, possibly at -% different nesting levels. All such registers should be defined through -% these macros; otherwise conflicts may occur, especially when two or more -% macro packages are being used at once. - -% The following counters are reserved: -% 0 to 9 page numbering -% 10 count allocation -% 11 dimen allocation -% 12 skip allocation -% 13 muskip allocation -% 14 box allocation -% 15 toks allocation -% 16 read file allocation -% 17 write file allocation -% 18 math family allocation -% 19 language allocation -% 20 insert allocation -% 21 the most recently allocated number -% 22 constant -1 -% New counters are allocated starting with 23, 24, etc. Other registers are -% allocated starting with 10. This leaves 0 through 9 for the user to play -% with safely, except that counts 0 to 9 are considered to be the page and -% subpage numbers (since they are displayed during output). In this scheme, -% \count 10 always contains the number of the highest-numbered counter that -% has been allocated, \count 14 the highest-numbered box, etc. -% Inserts are given numbers 254, 253, etc., since they require a \count, -% \dimen, \skip, and \box all with the same number; \count 20 contains the -% lowest-numbered insert that has been allocated. Of course, \box255 is -% reserved for \output; \count255, \dimen255, and \skip255 can be used freely. - -% It is recommended that macro designers always use -% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and -% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255. -% This will prevent ``save stack buildup'' that might otherwise occur. - -\count10=22 % allocates \count registers 23, 24, ... -\count11=9 % allocates \dimen registers 10, 11, ... -\count12=9 % allocates \skip registers 10, 11, ... -\count13=9 % allocates \muskip registers 10, 11, ... -\count14=9 % allocates \box registers 10, 11, ... -\count15=9 % allocates \toks registers 10, 11, ... -\count16=-1 % allocates input streams 0, 1, ... -\count17=-1 % allocates output streams 0, 1, ... -\count18=3 % allocates math families 4, 5, ... -\count19=0 % allocates \language codes 1, 2, ... -\count20=255 % allocates insertions 254, 253, ... -\countdef\insc@unt=20 % the insertion counter -\countdef\allocationnumber=21 % the most recent allocation -\countdef\m@ne=22 \m@ne=-1 % a handy constant -\def\wlog{\immediate\write\m@ne} % write on log file (only) - -% Here are abbreviations for the names of scratch registers -% that don't need to be allocated. - -\countdef\count@=255 -\dimendef\dimen@=0 -\dimendef\dimen@i=1 % global only -\dimendef\dimen@ii=2 -\skipdef\skip@=0 -\toksdef\toks@=0 - -% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo -% and \foo will be defined (with \countdef) to be the next counter. -% To find out which counter \foo is, you can look at \allocationnumber. -% Since there's no \boxdef command, \chardef is used to define a \newbox, -% \newinsert, \newfam, and so on. - -% Be able to save the allocation state. Write streams are -% excepted from this. -\def\SaveAlloc{\xdef\RestoreAlloc - {\begingroup\globaldefs=1 - \count10=\the\count10 \count11=\the\count11 \count12=\the\count12 - \count13=\the\count13 \count14=\the\count14 \count15=\the\count15 - \count16=\the\count16 %\count17=\the\count17 - \count18=\the\count18 - \endgroup}} -%LP no longer outer; switch off trace in these macros -\def\@@newcount{\alloc@0\count\countdef\insc@unt} -\def\@@newdimen{\alloc@1\dimen\dimendef\insc@unt} -\def\@@newskip{\alloc@2\skip\skipdef\insc@unt} -\def\@@newmuskip{\alloc@3\muskip\muskipdef\@cclvi} -\def\@@newbox{\alloc@4\box\chardef\insc@unt} -\let\newtoks\relax -\let\@@newtoks=\relax % we do this to allow plain.tex to be read in twice -\def\@@newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} -\def\@@newtoks{\alloc@5\toks\toksdef\@cclvi} -\def\@@newread{\alloc@6\read\chardef\sixt@@n} -\def\@@newwrite{\alloc@7\write\chardef\sixt@@n} -\def\@@newfam{\alloc@8\fam\chardef\sixt@@n} -\def\@@newlanguage{\alloc@9\language\chardef\@cclvi} - -\def\newcount#1{\@TM@s\@@newcount#1\@TM@r} -\def\newdimen#1{\@TM@s\@@newdimen#1\@TM@r} -\def\newskip#1{\@TM@s\@@newskip#1\@TM@r} -\def\newmuskip#1{\@TM@s\@@newmuskip#1\@TM@r} -\def\newbox#1{\@TM@s\@@newbox#1\@TM@r} -\let\newtoks=\relax % we do this to allow plain.tex to be read in twice -\def\newhelp#1#2{\@TM@s\@@newhelp#1{#2}\@TM@r} -\def\newtoks#1{\@TM@s\@@newtoks#1\@TM@r} -\def\newread#1{\@TM@s\@@newread#1\@TM@r} -\def\newwrite#1{\@TM@s\@@newwrite#1\@TM@r} -\def\newfam#1{\@TM@s\@@newfam#1\@TM@r} -\def\newlanguage#1{\@TM@s\@@newlanguage#1\@TM@r} -\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne - \ch@ck#1#4#2% make sure there's still room - \allocationnumber=\count1#1% - \global#3#5=\allocationnumber - \wlog{\string#5=\string#2\the\allocationnumber}} -\def\newinsert#1{\global\advance\insc@unt by\m@ne - \ch@ck0\insc@unt\count - \ch@ck1\insc@unt\dimen - \ch@ck2\insc@unt\skip - \ch@ck4\insc@unt\box - \allocationnumber=\insc@unt - \global\chardef#1=\allocationnumber - \wlog{\string#1=\string\insert\the\allocationnumber}} -\def\ch@ck#1#2#3{\ifnum\count1#1<#2% - \else\errmessage{No room for a new #3}\fi} - -%% trace -{\def\newcount{\alloc@0\count\countdef\insc@unt} - \def\newdimen{\alloc@1\dimen\dimendef\insc@unt} -\newcount\@TM@c \newcount\@TC@c -\newdimen\z@ \global\z@=0pt} -\def\@TM@s{\@TC@c\tracingcommands \tracingcommands\z@ - \@TM@c\tracingmacros \tracingmacros\z@ - \relax} -\def\@TM@r{\tracingmacros\@TM@c \tracingcommands\@TC@c} -\let\x@TM@s\@TM@s \let\x@TM@r\@TM@r - -% Here are some examples of allocation. -\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen> -\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow -\newskip\centering \centering=0pt plus 1000pt minus 1000pt -\newdimen\p@ \p@=1pt % this saves macro space and time -%V \newdimen\z@ \z@=0pt % defined above -\newskip\z@skip \z@skip=0pt plus0pt minus0pt -\newbox\voidb@x % permanently void box register - -% And here's a different sort of allocation: -% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo. -\def\newif#1{%\@TM@s - \count@\escapechar \escapechar\m@ne - \expandafter\expandafter\expandafter - \xdef\@if#1{yes}{\let\noexpand#1=\noexpand\iftrue}% - \expandafter\expandafter\expandafter - \xdef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% - \expandafter\expandafter\expandafter - \xdef\@if#1{no}{\let\noexpand#1=\noexpand\iffalse}% - \expandafter\expandafter\expandafter - \xdef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% - \global\@if#1{no}% the condition starts out false - \escapechar\count@ -% \@TM@r -} -\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} -{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required - - -% Assign initial values to TeX's parameters - -% All of TeX's numeric parameters are listed here, -% but the code is commented out if no special value needs to be set. -% INITEX makes all parameters zero except where noted. - -\pretolerance=100 -\tolerance=200 % INITEX sets this to 10000 -\hbadness=1000 -\vbadness=1000 -\linepenalty=10 -\hyphenpenalty=50 -\exhyphenpenalty=50 -\binoppenalty=700 -\relpenalty=500 -\clubpenalty=150 -\widowpenalty=150 -\displaywidowpenalty=50 -\brokenpenalty=100 -\predisplaypenalty=10000 -% \postdisplaypenalty=0 -% \interlinepenalty=0 -% \floatingpenalty=0, set during \insert -% \outputpenalty=0, set before TeX enters \output -\doublehyphendemerits=10000 -\finalhyphendemerits=5000 -\adjdemerits=10000 -% \looseness=0, cleared by TeX after each paragraph -% \pausing=0 -% \holdinginserts=0 -% \tracingonline=0 -% \tracingmacros=0 -% \tracingstats=0 -% \tracingparagraphs=0 -% \tracingpages=0 -% \tracingoutput=0 -\tracinglostchars=1 -% \tracingcommands=0 -% \tracingrestores=0 -% \language=0 -\uchyph=1 -% \lefthyphenmin=2 \righthyphenmin=3 set below -% \globaldefs=0 -% \maxdeadcycles=25 % INITEX does this -% \hangafter=1 % INITEX does this, also TeX after each paragraph -% \fam=0 -% \mag=1000 % INITEX does this -% \escapechar=`\\ % INITEX does this -\defaulthyphenchar=`\- -\defaultskewchar=-1 -% \endlinechar=`\^^M % INITEX does this -\newlinechar=-1 -\delimiterfactor=901 -% \time=now % TeX does this at beginning of job -% \day=now % TeX does this at beginning of job -% \month=now % TeX does this at beginning of job -% \year=now % TeX does this at beginning of job -\showboxbreadth=5 -\showboxdepth=3 -\errorcontextlines=5 - -\hfuzz=0.1pt -\vfuzz=0.1pt -\overfullrule=5pt -\hsize=6.5in -\vsize=8.9in -\maxdepth=4pt -\splitmaxdepth=\maxdimen -\boxmaxdepth=\maxdimen -% \lineskiplimit=0pt, changed by \normalbaselines -\delimitershortfall=5pt -\nulldelimiterspace=1.2pt -\scriptspace=0.5pt -% \mathsurround=0pt -% \predisplaysize=0pt, set before TeX enters $$ -% \displaywidth=0pt, set before TeX enters $$ -% \displayindent=0pt, set before TeX enters $$ -\parindent=20pt -% \hangindent=0pt, zeroed by TeX after each paragraph -% \hoffset=0pt -% \voffset=0pt - -% \baselineskip=0pt, changed by \normalbaselines -% \lineskip=0pt, changed by \normalbaselines -\parskip=0pt plus 1pt -\abovedisplayskip=12pt plus 3pt minus 9pt -\abovedisplayshortskip=0pt plus 3pt -\belowdisplayskip=12pt plus 3pt minus 9pt -\belowdisplayshortskip=7pt plus 3pt minus 4pt -% \leftskip=0pt -% \rightskip=0pt -\topskip=10pt -\splittopskip=10pt -% \tabskip=0pt -% \spaceskip=0pt -% \xspaceskip=0pt -\parfillskip=0pt plus 1fil - -\thinmuskip=3mu -\medmuskip=4mu plus 2mu minus 4mu -\thickmuskip=5mu plus 5mu - -% We also define special registers that function like parameters: -\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt -\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt -\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt -\newskip\normalbaselineskip \normalbaselineskip=12pt -\newskip\normallineskip \normallineskip=1pt -\newdimen\normallineskiplimit \normallineskiplimit=0pt -\newdimen\jot \jot=3pt -\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 -\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 - -% Definitions for preloaded fonts - -\def\magstephalf{1095 } -\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax} - -% Fonts assigned to \preloaded are not part of "plain TeX", -% but they are preloaded so that other format packages can use them. -% For example, if another set of macros says "\font\ninerm=cmr9", -% TeX will not have to reload the font metric information for cmr9. - -%\font\tenrm=cmr10 % roman text -%\font\preloaded=cmr9 -%\font\preloaded=cmr8 -%\font\sevenrm=cmr7 -%\font\preloaded=cmr6 -%\font\fiverm=cmr5 - -%\font\teni=cmmi10 % math italic %LP in lollipop-fonts.tex -%\font\preloaded=cmmi9 -%\font\preloaded=cmmi8 -%\font\seveni=cmmi7 -%\font\preloaded=cmmi6 -%\font\fivei=cmmi5 - -%\font\tensy=cmsy10 % math symbols %LP in lollipop-fonts.tex -%\font\preloaded=cmsy9 -%\font\preloaded=cmsy8 -%\font\sevensy=cmsy7 -%\font\preloaded=cmsy6 -%\font\fivesy=cmsy5 - -\font\tenex=cmex10 % math extension (This seems to be necessary here) - -%\font\preloaded=cmss10 % sans serif -%\font\preloaded=cmssq8 - -%\font\preloaded=cmssi10 % sans serif italic -%\font\preloaded=cmssqi8 - -%%\font\tenbf=cmbx10 % boldface extended -%\font\preloaded=cmbx9 -%\font\preloaded=cmbx8 -%%\font\sevenbf=cmbx7 -%\font\preloaded=cmbx6 -%%\font\fivebf=cmbx5 - -\font\tentt=cmtt10 % typewriter -%\font\preloaded=cmtt9 -%\font\preloaded=cmtt8 - -%\font\preloaded=cmsltt10 % slanted typewriter - -%%\font\tensl=cmsl10 % slanted roman -%\font\preloaded=cmsl9 -%\font\preloaded=cmsl8 - -%%\font\tenit=cmti10 % text italic -%\font\preloaded=cmti9 -%\font\preloaded=cmti8 -%\font\preloaded=cmti7 - - -\let\preloaded=\undefined % preloaded fonts must be declared anew later. - -%LP \skewchar moved to lollipop-fonts.tex -%\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177 -%\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60 - -% Macros for setting ordinary text - -\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m - \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} -\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% - \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } - - -% VK define \normalbaselines -\def\normalbaselines{\lineskip\normallineskip - \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} - -\def\^^M{\ } % control <return> = control <space> -\def\^^I{\ } % same for <tab> - -\def\lq{`} \def\rq{'} -\def\lbrack{[} \def\rbrack{]} - -\let\endgraf=\par \let\endline=\cr - -%LP In case we redefine \par, here is the original -\let\@par=\par - -\def\space{ } -\def\empty{} -\def\null{\hbox{}} - -\let\bgroup={ \let\egroup=} - -%%%%%%%%%%%%%%%% Catcode alterations - -%%%% Dospecials -% -% (not counting ascii null, tab, linefeed, formfeed, return, delete) -% Each symbol in the list is preceded by \do, which can be defined -% if you want to do something to every item in the list. -% -% " added wrt plain definition -% -\def\dospecials{\@TM@s\do\ \do\\\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~\do\"\@TM@r} - -% handy abbrevs -% -\def\makeother#1{\catcode`#1\other} -\def\othercr{\makeother\^^M\relax} -\def\normalcr{\catcode`\^^M=5\relax} -\def\activecr{\catcode`\^^M\active} -\def\noeol{\endlinechar\m@ne}\def\normaleol{\endlinechar`\^^M\relax} -\def\noesc{\escapechar\m@ne}\def\normalesc{\escapechar`\\\relax} - -% obeylines -% -% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}' -% since this allows, for example, `\let\par=\cr \obeylines \halign{...' -% -% addition for empty lines -% -{\activecr % these lines must end with % - \gdef\obeylines{\activecr \def^^M{\@par\leavevmode\hbox{}}}% - \global\let^^M\@par} % this is in case ^^M appears in a \write - -% obeyspaces -% -% plain: {\obeyspaces\global\let =\space} -% extended for initial spaces on a line -% -{\catcode`\ \active -\gdef\obeyspaces{\catcode`\ \active\let =\@ospace}} -\def\@ospace{\leavevmode{} } - -%LP minimal improvement over the original \loop macro -\long\def\loop#1\repeat{\long\def\body{#1}\iterate} -\def\iterate{\let\loopnext\relax \body \let\loopnext\iterate \fi - \loopnext} -\let\repeat=\fi % this makes \loop...\if...\repeat skippable - -\def\thinspace{\kern .16667em } -\def\negthinspace{\kern-.16667em } -\def\enspace{\kern.5em } - -\def\enskip{\hskip.5em\relax} -\def\quad{\hskip1em\relax} -\def\qquad{\hskip2em\relax} - -\def\smallskip{\vskip\smallskipamount} -\def\medskip{\vskip\medskipamount} -\def\bigskip{\vskip\bigskipamount} - -\def\nointerlineskip{\prevdepth-1000\p@} -\def\offinterlineskip{\baselineskip-1000\p@ - \lineskip\z@ \lineskiplimit\maxdimen} - -\def\topglue{\nointerlineskip\vglue-\topskip\vglue} % for top of page -\def\vglue{\afterassignment\vgl@\skip@=} -\def\vgl@{\par \dimen@\prevdepth \hrule height\z@ - \nobreak\vskip\skip@ \prevdepth\dimen@} -\def\hglue{\afterassignment\hgl@\skip@=} -\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ - \nobreak\hskip\skip@ \spacefactor\count@} - -\def~{\penalty\@M \ } % tie -\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' - -\def\break{\penalty-\@M} -\def\nobreak{\penalty \@M} -\def\allowbreak{\penalty \z@} - -\def\filbreak{\par\vfil\penalty-200\vfilneg} -\def\goodbreak{\par\penalty-500 } -\def\eject{\par\break} -\def\supereject{\par\penalty-\@MM} - -\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} -\def\smallbreak{\par\ifdim\lastskip<\smallskipamount - \removelastskip\penalty-50\smallskip\fi} -\def\medbreak{\par\ifdim\lastskip<\medskipamount - \removelastskip\penalty-100\medskip\fi} -\def\bigbreak{\par\ifdim\lastskip<\bigskipamount - \removelastskip\penalty-200\bigskip\fi} - -\def\line{\hbox to\hsize} -\def\leftline#1{\line{#1\hss}} -\def\rightline#1{\line{\hss#1}} -\def\centerline#1{\line{\hss#1\hss}} - -\def\rlap#1{\hbox to\z@{#1\hss}} -\def\llap#1{\hbox to\z@{\hss#1}} - -\def\m@th{\mathsurround\z@} -\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ - \m@th \underline{\box\z@}$} - -\newbox\strutbox -\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} -\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} - -\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out -\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign -\newcount\mscount -\def\multispan#1{\omit \mscount#1\relax - \loop\ifnum\mscount>\@ne \sp@n\repeat} -\def\sp@n{\span\omit\advance\mscount\m@ne} - -%LP We keep the old tabbing macros -\newif\ifus@ \newif\if@cr -\newbox\tabs \newbox\tabsyet \newbox\tabsdone - -\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null} -\def\settabs{\setbox\tabs\null \futurelet\next\sett@b} -\let\+=\relax % in case this file is being read in twice -\def\sett@b{\ifx\next\+\def\nxt{\afterassignment\s@tt@b\let\nxt}% - \else\let\nxt\s@tcols\fi \let\next\relax \nxt} -\def\s@tt@b{\let\nxt\relax \us@false\m@ketabbox} -\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+ -\outer\def\+{\tabalign} -\def\s@tcols#1\columns{\count@#1\dimen@\hsize - \loop\ifnum\count@>\z@ \@nother \repeat} -\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@ - \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}% - \advance\dimen@-\dimen@ii \advance\count@\m@ne} - -\def\m@ketabbox{\begingroup - \global\setbox\tabsyet\copy\tabs - \global\setbox\tabsdone\null - \def\cr{\@crtrue\crcr\egroup\egroup - \ifus@\unvbox\z@\lastbox\fi\endgroup - \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}% - \setbox\z@\vbox\bgroup\@crfalse - \ialign\bgroup&\t@bbox##\t@bb@x\crcr} - -\def\t@bbox{\setbox\z@\hbox\bgroup} -\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column - \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet - \global\setbox\@ne\lastbox}% now \box\@ne holds its size - \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}% - \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi - \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi - \box\z@} - -\chardef\%=`\% -\chardef\&=`\& -\chardef\#=`\# -\chardef\$=`\$ -\chardef\ss="19 -\chardef\ae="1A -\chardef\oe="1B -\chardef\o="1C -\chardef\AE="1D -\chardef\OE="1E -\chardef\O="1F -\chardef\i="10 \chardef\j="11 % dotless letters -\def\aa{\accent23a} -\def\l{\char32l} -\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} - -\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary -\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} -\def\AA{\leavevmode\setbox0\hbox{!}\dimen@\ht0\advance\dimen@-1ex% - \rlap{\raise.67\dimen@\hbox{\char'27}}A} - -\def\mathhexbox#1#2#3{\leavevmode - \hbox{$\m@th \mathchar"#1#2#3$}} -\def\dag{\mathhexbox279} -\def\ddag{\mathhexbox27A} -\def\S{\mathhexbox278} -\def\P{\mathhexbox27B} -\def\Orb{\mathhexbox20D} - -\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% - \ialign{##\crcr#1\crcr}}} % put characters over each other -\def\o@lign{\lineskiplimit\z@ \oalign} -\def\ooalign{\lineskiplimit-\maxdimen \oalign} -{\catcode`p=12 \catcode`t=12 \gdef\\#1pt{#1}} \let\getf@ctor=\\ -\def\sh@ft#1{\dimen@#1\kern\expandafter\getf@ctor\the\fontdimen1\font - \dimen@} % kern by #1 times the current slant -\def\d#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{-1ex}.\hidewidth}}} -\def\b#1{{\o@lign{\relax#1\crcr\hidewidth\sh@ft{-3ex}% - \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}} -\def\c#1{{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% - \else\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}\fi}} -\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\Orb}}} - -\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi} -\def\TeX{\protect\@TeX} -\def\@TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} - -\def\`#1{{\accent18 #1}} -\def\'#1{{\accent19 #1}} -\def\v#1{{\accent20 #1}} \let\^^_=\v -\def\u#1{{\accent21 #1}} \let\^^S=\u -\def\=#1{{\accent22 #1}} -\def\^#1{{\accent94 #1}} \let\^^D=\^ -\def\.#1{{\accent95 #1}} -\def\H#1{{\accent"7D #1}} -\def\~#1{{\accent"7E #1}} -\def\"#1{{\accent"7F #1}} -\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}} - -\def\hrulefill{\leaders\hrule\hfill} -\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill} -\def\rightarrowfill{$\m@th\smash-\mkern-7mu% - \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill - \mkern-7mu\mathord\rightarrow$} -\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu% - \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill - \mkern-7mu\smash-$} -\mathchardef\braceld="37A \mathchardef\bracerd="37B -\mathchardef\bracelu="37C \mathchardef\braceru="37D -\def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% - \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru - \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd$} -\def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% - \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd - \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru$} - -%\outer\def\bye{\par\vfill\supereject\end} - -% Macros for math setting - -\let\sp=^ \let\sb=_ -\def\,{\mskip\thinmuskip} -\def\>{\mskip\medmuskip} -\def\;{\mskip\thickmuskip} -\def\!{\mskip-\thinmuskip} -\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} -{\catcode`\'=\active \gdef'{^\bgroup\prim@s}} -\def\prim@s{\prime\futurelet\next\pr@m@s} -\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t - \else\let\nxt\egroup\fi\fi \nxt} -\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} -{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math -{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ - -\mathchardef\alpha="010B -\mathchardef\beta="010C -\mathchardef\gamma="010D -\mathchardef\delta="010E -\mathchardef\epsilon="010F -\mathchardef\zeta="0110 -\mathchardef\eta="0111 -\mathchardef\theta="0112 -\mathchardef\iota="0113 -\mathchardef\kappa="0114 -\mathchardef\lambda="0115 -\mathchardef\mu="0116 -\mathchardef\nu="0117 -\mathchardef\xi="0118 -\mathchardef\pi="0119 -\mathchardef\rho="011A -\mathchardef\sigma="011B -\mathchardef\tau="011C -\mathchardef\upsilon="011D -\mathchardef\phi="011E -\mathchardef\chi="011F -\mathchardef\psi="0120 -\mathchardef\omega="0121 -\mathchardef\varepsilon="0122 -\mathchardef\vartheta="0123 -\mathchardef\varpi="0124 -\mathchardef\varrho="0125 -\mathchardef\varsigma="0126 -\mathchardef\varphi="0127 -\mathchardef\Gamma="7000 -\mathchardef\Delta="7001 -\mathchardef\Theta="7002 -\mathchardef\Lambda="7003 -\mathchardef\Xi="7004 -\mathchardef\Pi="7005 -\mathchardef\Sigma="7006 -\mathchardef\Upsilon="7007 -\mathchardef\Phi="7008 -\mathchardef\Psi="7009 -\mathchardef\Omega="700A - -\mathchardef\aleph="0240 -\def\hbar{{\mathchar'26\mkern-9muh}} -\mathchardef\imath="017B -\mathchardef\jmath="017C -\mathchardef\ell="0160 -\mathchardef\wp="017D -\mathchardef\Re="023C -\mathchardef\Im="023D -\mathchardef\partial="0140 -\mathchardef\infty="0231 -\mathchardef\prime="0230 -\mathchardef\emptyset="023B -\mathchardef\nabla="0272 -\def\surd{{\mathchar"1270}} -\mathchardef\top="023E -\mathchardef\bot="023F -\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr - \not\mathrel{\mkern14mu}\crcr - \noalign{\nointerlineskip} - \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} -\mathchardef\triangle="0234 -\mathchardef\forall="0238 -\mathchardef\exists="0239 -\mathchardef\neg="023A \let\lnot=\neg -\mathchardef\flat="015B -\mathchardef\natural="015C -\mathchardef\sharp="015D -\mathchardef\clubsuit="027C -\mathchardef\diamondsuit="027D -\mathchardef\heartsuit="027E -\mathchardef\spadesuit="027F - -\mathchardef\coprod="1360 -\mathchardef\bigvee="1357 -\mathchardef\bigwedge="1356 -\mathchardef\biguplus="1355 -\mathchardef\bigcap="1354 -\mathchardef\bigcup="1353 -\mathchardef\intop="1352 \def\int{\intop\nolimits} -\mathchardef\prod="1351 -\mathchardef\sum="1350 -\mathchardef\bigotimes="134E -\mathchardef\bigoplus="134C -\mathchardef\bigodot="134A -\mathchardef\ointop="1348 \def\oint{\ointop\nolimits} -\mathchardef\bigsqcup="1346 -\mathchardef\smallint="1273 - -\mathchardef\triangleleft="212F -\mathchardef\triangleright="212E -\mathchardef\bigtriangleup="2234 -\mathchardef\bigtriangledown="2235 -\mathchardef\wedge="225E \let\land=\wedge -\mathchardef\vee="225F \let\lor=\vee -\mathchardef\cap="225C -\mathchardef\cup="225B -\mathchardef\ddagger="227A -\mathchardef\dagger="2279 -\mathchardef\sqcap="2275 -\mathchardef\sqcup="2274 -\mathchardef\uplus="225D -\mathchardef\amalg="2271 -\mathchardef\diamond="2205 -\mathchardef\bullet="220F -\mathchardef\wr="226F -\mathchardef\div="2204 -\mathchardef\odot="220C -\mathchardef\oslash="220B -\mathchardef\otimes="220A -\mathchardef\ominus="2209 -\mathchardef\oplus="2208 -\mathchardef\mp="2207 -\mathchardef\pm="2206 -\mathchardef\circ="220E -\mathchardef\bigcirc="220D -\mathchardef\setminus="226E % for set difference A\setminus B -\mathchardef\cdot="2201 -\mathchardef\ast="2203 -\mathchardef\times="2202 -\mathchardef\star="213F - -\mathchardef\propto="322F -\mathchardef\sqsubseteq="3276 -\mathchardef\sqsupseteq="3277 -\mathchardef\parallel="326B -\mathchardef\mid="326A -\mathchardef\dashv="3261 -\mathchardef\vdash="3260 -\mathchardef\nearrow="3225 -\mathchardef\searrow="3226 -\mathchardef\nwarrow="322D -\mathchardef\swarrow="322E -\mathchardef\Leftrightarrow="322C -\mathchardef\Leftarrow="3228 -\mathchardef\Rightarrow="3229 -\def\neq{\not=} \let\ne=\neq -\mathchardef\leq="3214 \let\le=\leq -\mathchardef\geq="3215 \let\ge=\geq -\mathchardef\succ="321F -\mathchardef\prec="321E -\mathchardef\approx="3219 -\mathchardef\succeq="3217 -\mathchardef\preceq="3216 -\mathchardef\supset="321B -\mathchardef\subset="321A -\mathchardef\supseteq="3213 -\mathchardef\subseteq="3212 -\mathchardef\in="3232 -\mathchardef\ni="3233 \let\owns=\ni -\mathchardef\gg="321D -\mathchardef\ll="321C -\mathchardef\not="3236 -\mathchardef\leftrightarrow="3224 -\mathchardef\leftarrow="3220 \let\gets=\leftarrow -\mathchardef\rightarrow="3221 \let\to=\rightarrow -\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} -\mathchardef\sim="3218 -\mathchardef\simeq="3227 -\mathchardef\perp="323F -\mathchardef\equiv="3211 -\mathchardef\asymp="3210 -\mathchardef\smile="315E -\mathchardef\frown="315F -\mathchardef\leftharpoonup="3128 -\mathchardef\leftharpoondown="3129 -\mathchardef\rightharpoonup="312A -\mathchardef\rightharpoondown="312B - -\def\joinrel{\mathrel{\mkern-3mu}} -\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + -\def\Relbar{\mathrel=} -\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} -\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} -\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} -\def\models{\mathrel|\joinrel=} -\def\Longrightarrow{\Relbar\joinrel\Rightarrow} -\def\longrightarrow{\relbar\joinrel\rightarrow} -\def\longleftarrow{\leftarrow\joinrel\relbar} -\def\Longleftarrow{\Leftarrow\joinrel\Relbar} -\def\longmapsto{\mapstochar\longrightarrow} -\def\longleftrightarrow{\leftarrow\joinrel\rightarrow} -\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} -\def\iff{\;\Longleftrightarrow\;} - -\mathchardef\ldotp="613A % ldot as a punctuation mark -\mathchardef\cdotp="6201 % cdot as a punctuation mark -\mathchardef\colon="603A % colon as a punctuation mark -\def\ldots{\mathinner{\ldotp\ldotp\ldotp}} -\def\cdots{\mathinner{\cdotp\cdotp\cdotp}} -\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ - \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} -\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu - \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} - -\def\acute{\mathaccent"7013 } -\def\grave{\mathaccent"7012 } -\def\ddot{\mathaccent"707F } -\def\tilde{\mathaccent"707E } -\def\bar{\mathaccent"7016 } -\def\breve{\mathaccent"7015 } -\def\check{\mathaccent"7014 } -\def\hat{\mathaccent"705E } -\def\vec{\mathaccent"017E } -\def\dot{\mathaccent"705F } -\def\widetilde{\mathaccent"0365 } -\def\widehat{\mathaccent"0362 } -\def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr - \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} - $\hfil\displaystyle{#1}\hfil$\crcr}}} -\def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr - \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} - $\hfil\displaystyle{#1}\hfil$\crcr}}} -\def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@} - \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} - $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} -\def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr - $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} - \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} -\def\skew#1#2#3{{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@ - #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}} - -\def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) -\def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( -\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips -\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips -\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads -\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads -\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces -\def\Vert{\delimiter"26B30D } \let\|=\Vert -\def\vert{\delimiter"26A30C } -\def\uparrow{\delimiter"3222378 } -\def\downarrow{\delimiter"3223379 } -\def\updownarrow{\delimiter"326C33F } -\def\Uparrow{\delimiter"322A37E } -\def\Downarrow{\delimiter"322B37F } -\def\Updownarrow{\delimiter"326D377 } -\def\backslash{\delimiter"26E30F } % for double coset G\backslash H -\def\rangle{\delimiter"526930B } -\def\langle{\delimiter"426830A } -\def\rbrace{\delimiter"5267309 } \let\}=\rbrace -\def\lbrace{\delimiter"4266308 } \let\{=\lbrace -\def\rceil{\delimiter"5265307 } -\def\lceil{\delimiter"4264306 } -\def\rfloor{\delimiter"5263305 } -\def\lfloor{\delimiter"4262304 } - -\def\bigl{\mathopen\big} -\def\bigm{\mathrel\big} -\def\bigr{\mathclose\big} -\def\Bigl{\mathopen\Big} -\def\Bigm{\mathrel\Big} -\def\Bigr{\mathclose\Big} -\def\biggl{\mathopen\bigg} -\def\biggm{\mathrel\bigg} -\def\biggr{\mathclose\bigg} -\def\Biggl{\mathopen\Bigg} -\def\Biggm{\mathrel\Bigg} -\def\Biggr{\mathclose\Bigg} -\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} -\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} -\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} -\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} -\def\n@space{\nulldelimiterspace\z@ \m@th} - -\def\choose{\atopwithdelims()} -\def\brack{\atopwithdelims[]} -\def\brace{\atopwithdelims\{\}} - -\def\sqrt{\radical"270370 } - -\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% - {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} -\newbox\rootbox -\def\root#1\of{\setbox\rootbox - \hbox{$\m@th\scriptscriptstyle{#1}$}\mathpalette\r@@t} -\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}\dimen@\ht\z@ - \advance\dimen@-\dp\z@ - \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\z@} -\newif\ifv@ \newif\ifh@ -%% LP -\let\v@true=\v@yes \let\v@false=\v@no -\let\h@true=\h@yes \let\h@false=\h@no -\def\vphantom{\v@true\h@false\ph@nt} -\def\hphantom{\v@false\h@true\ph@nt} -\def\phantom{\v@true\h@true\ph@nt} -\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% - \else\let\next\makeph@nt\fi\next} -\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} -\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} -\def\finph@nt{\setbox\tw@\null - \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi - \ifh@ \wd\tw@\wd\z@\fi \box\tw@} -\def\mathstrut{\vphantom(} -\def\smash{\relax % \relax, in case this comes first in \halign - \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh - \fi\next} -\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} -\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} -\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} - -\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign -\def\@vereq#1#2{\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@ - \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} -\def\notin{\mathrel{\mathpalette\c@ncel\in}} -\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} -\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} -\def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt - \hbox{$#1\rightharpoonup$}\crcr - $#1\leftharpoondown$}}}} -\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} -\def\doteq{\buildrel\textstyle.\over=} - -\def\log{\mathop{\rm log}\nolimits} -\def\lg{\mathop{\rm lg}\nolimits} -\def\ln{\mathop{\rm ln}\nolimits} -\def\lim{\mathop{\rm lim}} -\def\limsup{\mathop{\rm lim\,sup}} -\def\liminf{\mathop{\rm lim\,inf}} -\def\sin{\mathop{\rm sin}\nolimits} -\def\arcsin{\mathop{\rm arcsin}\nolimits} -\def\sinh{\mathop{\rm sinh}\nolimits} -\def\cos{\mathop{\rm cos}\nolimits} -\def\arccos{\mathop{\rm arccos}\nolimits} -\def\cosh{\mathop{\rm cosh}\nolimits} -\def\tan{\mathop{\rm tan}\nolimits} -\def\arctan{\mathop{\rm arctan}\nolimits} -\def\tanh{\mathop{\rm tanh}\nolimits} -\def\cot{\mathop{\rm cot}\nolimits} -\def\coth{\mathop{\rm coth}\nolimits} -\def\sec{\mathop{\rm sec}\nolimits} -\def\csc{\mathop{\rm csc}\nolimits} -\def\max{\mathop{\rm max}} -\def\min{\mathop{\rm min}} -\def\sup{\mathop{\rm sup}} -\def\inf{\mathop{\rm inf}} -\def\arg{\mathop{\rm arg}\nolimits} -\def\ker{\mathop{\rm ker}\nolimits} -\def\dim{\mathop{\rm dim}\nolimits} -\def\hom{\mathop{\rm hom}\nolimits} -\def\det{\mathop{\rm det}} -\def\exp{\mathop{\rm exp}\nolimits} -\def\Pr{\mathop{\rm Pr}} -\def\gcd{\mathop{\rm gcd}} -\def\deg{\mathop{\rm deg}\nolimits} - -\def\bmod{\nonscript\mskip-\medmuskip\mkern5mu - \mathbin{\rm mod}\penalty900\mkern5mu\nonscript\mskip-\medmuskip} -\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} - -\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th - \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.} -\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th - \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr - \mathstrut\crcr\noalign{\kern-\baselineskip} - #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} -\def\pmatrix#1{\left(\matrix{#1}\right)} -\newdimen\p@renwd -\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left ( -\def\bordermatrix#1{\begingroup \m@th - \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% - \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil - &&\quad\hfil$##$\hfil\crcr - \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% - #1\crcr\omit\strut\cr}}% - \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% - \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% - \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne - \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% - \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% - \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} - -\def\openup{\afterassignment\@penup\dimen@=} -\def\@penup{\advance\lineskip\dimen@ - \advance\baselineskip\dimen@ - \advance\lineskiplimit\dimen@} -\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th - \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil - \crcr#1\crcr}}\,} -\newif\ifdt@p -\let\dt@ptrue=\dt@pyes \let\dt@pfalse=\dt@pno %%LP -\def\displ@y{\global\dt@ptrue\openup\jot\m@th - \everycr{\noalign{\ifdt@p \global\dt@pfalse \ifdim\prevdepth>-1000\p@ - \vskip-\lineskiplimit \vskip\normallineskiplimit \fi - \else \penalty\interdisplaylinepenalty \fi}}} -\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y -\def\displaylines#1{\displ@y \tabskip\z@skip - \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr - #1\crcr}} -\def\eqalignno#1{\displ@y \tabskip\centering - \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip - &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering - &\llap{$\@lign##$}\tabskip\z@skip\crcr - #1\crcr}} -\def\leqalignno#1{\displ@y \tabskip\centering - \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip - &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering - &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr - #1\crcr}} - -% Definitions related to output - -%LP Voorlopig even laten staat voor een default output routine - -\countdef\pageno=0 \pageno=1 % first page is number 1 - -\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} -\newinsert\footins -\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi - #1\@sf\vfootnote{#1}} -\def\vfootnote#1{\insert\footins\bgroup - \interlinepenalty\interfootnotelinepenalty - \splittopskip\ht\strutbox % top baseline for broken footnotes - \splitmaxdepth\dp\strutbox \floatingpenalty\@MM - \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip - \textindent{#1}\footstrut\futurelet\next\fo@t} -\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} -\def\f@@t{\bgroup\aftergroup\@foot\let\next} -\def\f@t#1{#1\@foot} -\def\@foot{\strut\egroup} -\def\footstrut{\vbox to\splittopskip{}} -\skip\footins=\bigskipamount % space added when footnote is present -\count\footins=1000 % footnote magnification factor (1 to 1) -\dimen\footins=8in % maximum footnotes per page - -\newinsert\topins -\newif\ifp@ge \newif\if@mid -\let\p@getrue=\p@geyes \let\p@gefalse=\p@geno -\let\@midtrue=\@midyes \let\@midfalse=\@midno -\def\topinsert{\@midfalse\p@gefalse\@ins} -\def\midinsert{\@midtrue\@ins} -\def\pageinsert{\@midfalse\p@getrue\@ins} -\skip\topins=\z@skip % no space added when a topinsert is present -\count\topins=1000 % magnification factor (1 to 1) -\dimen\topins=\maxdimen % no limit per page -\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox -\def\endinsert{\egroup % finish the \vbox - \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen@12\p@ - \advance\dimen@\pagetotal \advance\dimen@-\pageshrink - \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi - \if@mid \bigskip\box\z@\bigbreak - \else\insert\topins{\penalty100 % floating insertion - \splittopskip\z@skip - \splitmaxdepth\maxdimen \floatingpenalty\z@ - \ifp@ge \dimen@\dp\z@ - \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero - \else \box\z@\nobreak\bigskip\fi}\fi\endgroup} - - -\def\footnoterule{\kern-3\p@ - \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high - -% Hyphenation, miscellaneous macros, and initial values for standard layout - -\lefthyphenmin=2 \righthyphenmin=3 % disallow x- or -xx breaks -\input hyphen - -\def\magnification{\afterassignment\m@g\count@} -\def\m@g{\mag\count@ - \hsize6.5truein\vsize8.9truein\dimen\footins8truein} - -\def\loggingall{\tracingcommands\tw@\tracingstats\tw@ - \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne - \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne - \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode} -\def\tracingall{\tracingonline\@ne\loggingall} - -\font\tenrm=cmr10 % aw hell. -\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm - \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} - - -\normalbaselines - - -\endinput - -% 2016/04/16 Fixed the error caused by \newhelp -% 2014/04/11 brought up to date with plain.tex for 3.141592653 -% 92/11/03 brought up to date with plain.tex for 3.0
\ No newline at end of file |