summaryrefslogtreecommitdiff
path: root/macros/blu/blue.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/blu/blue.tex
Initial commit
Diffstat (limited to 'macros/blu/blue.tex')
-rw-r--r--macros/blu/blue.tex4225
1 files changed, 4225 insertions, 0 deletions
diff --git a/macros/blu/blue.tex b/macros/blu/blue.tex
new file mode 100644
index 0000000000..0aa5d33fb8
--- /dev/null
+++ b/macros/blu/blue.tex
@@ -0,0 +1,4225 @@
+%To prevent double loading
+\ifx\beginscript\undefined\else
+\message{---not loaded---}\endinput\fi
+%The material is shareware and subject
+%to the separate note on copyright.
+%
+%To print the format properly, copy
+%the following 11-lines job and
+%substitute the semicolon token
+%(=escape char) for `semi-col'. (2x)
+% ---Kees---
+%\input blue.tex
+%\hfuzz10pt
+%\title{File: blue.tex}
+%\issue{Version 1.0}
+%\beginscript
+%\thisverbatim={\catcode`\`semicol'=0
+% \catcode`\!=12
+% \catcode`\|=12
+% \input blue.tex}
+%\beginverbatim
+%`semi-col'endverbatim
+%\endscript
+%
+%
+%
+%Copyright Notice BLUe's Format system
+%-------------------------------------
+%The software
+% blue.tex
+% fmt.dat
+% tools.dat
+%is shareware available. It is not allowed
+%to make any profit on it. A happy user is
+%requested to send US$25 to the author, or
+%better still according to the Macindex the
+%equivalent of 20 breads in US dollars.
+%(twenty-five US dollar)
+% C.G van der Laan
+% Hunzeweg 57
+% 9893 PB Garnwerd
+% The Netherlands
+% (cgl@rc.service.rug.nl)
+%The contributors will be added to my
+% register.blu database.
+%Russian users are relieved for the moment
+%from the shareware request, with respect
+%to personal use.
+%Auxiliary and personalized files are the
+%databases
+% address.dat addresses
+% lit.dat references
+% pic.dat pictures.
+%
+%The main reason to ask for shareware support
+%is to protect myself against too many request,
+%and to raise some funds to continue my \TeX{}
+%work.
+%
+%The user's guide `Publishing with \TeX,' and the
+%accompanying articles are free for personal use.
+%
+% March, 1995
+% C.G van der Laan%;newcol
+%
+%
+%
+%begin%%%%%%%%%%%%%%%general description%
+\message{ ---blue.tex 1.0, Jan 95, cgl--- }
+% ;nonum
+%This file blue.tex accompanies
+%Publishing with TeX by Kees van der Laan
+%Available from CTAN:
+%-pwt.scr (user's guide, which invokes
+% the chapters: pwt.int, -.txt, -.mat
+% -.tab, -.grf, -.ref, -.ind, -.cus
+% -.aft, -.fmt, -.tls, -.tot, -.his,
+% next to the dynamical generated
+% answers, examples, contents and index.)
+%-blue.tex (macros)
+%-fmt.dat, tools.dat,
+%-lit.dat, pic.dat, address.dat.
+%Author: C.G. van der Laan
+% Hunzeweg 57
+% 9893 PB Garnwerd
+% The Netherlands
+% 31 (0)594 62 1525
+% cgl@rc.service.rug.nl
+%Purpose: general independent format.
+%It is composed of
+%-- abbreviations, from tugboat.cmn
+%-- manmac.tex (+customization macros)
+%-- ppt.tex, my preprint proposal, from
+% TUGboat BLUes
+%-- miscellaneous additions
+%-- \eqalign family with multi-alignment
+% point, from Math into BLUes
+%-- icon macros via LaTeX's line fonts
+%-- btable.tex, my bordered table macros,
+% from Table Diversions
+%-- vrb.tex (my verbatim mode suite), from
+% BLUe's Verbatim
+%-- macros for cross-referencing, from
+% BLUe's Cross-Referencing
+%-- macros for bibliography handling, from
+% BLUe's Bibliography
+%-- gkppic.tex a subset of gkpmac.tex for
+% LaTeX's picture environment
+%-- turtle graphics
+%-- trs.tex for overhead transparencies
+%-- crs.tex for crosswords via plain
+%-- macros for creating an index
+% from BLUe's Index
+%The problem is to keep the constituent
+%collections unaltered.
+%For each set a table of contents has
+%been added to locate macros.
+%The reason for putting it all in one file
+%is to handle conflicting items and to
+%facilitate fast loading, read make it a
+%format.
+%Note. In order to process this file
+%verbatim the semicolon has been reserved
+%as escape character.
+%The files have not been ordered alphabe-
+%tically, due to the hierarchy.
+%end%%%%%%%%%%%%%%%%%general description%;newpage
+%
+%
+%
+\catcode`\@=11
+%begin%%%%%%%%%%%%%%%%%%%%%abbreviations%
+%;numvrb
+%Abbreviations borrowed from tugboat.cmn.
+\newcount\TestCount
+\def\smc{\tensmc}
+\def\SMC{\ninerm}
+\font\tensmc=cmcsc10
+
+\def\AllTeX{(\La)\TeX}
+
+\def\AMS{American Mathematical Society}
+
+\def\AmS{{\the\textfont2 A}\kern-.1667em%
+ \lower.5ex\hbox{\the\textfont2 M}%
+ \kern-.125em{\the\textfont2 S}}
+\def\AmSTeX{\AmS-\TeX}
+ \def\AmSLaTeX{\AmS-\LaTeX}%Addition
+\def\aw{A\kern.1em-W}
+\def\AW{Addison\kern.1em-\penalty\z@
+ \hskip\z@skip Wesley}
+
+\def\BibTeX{{\rm B\kern-.05em{\smc i%
+ \kern-.025emb}\kern-.08em\TeX}}
+
+\def\CandT{{\sl Computers \&
+ Typesetting}}
+
+\def\DVItoVDU{DVIto\kern-.12em VDU}
+
+\def\ISBN{{\SMC ISBN} }
+
+% Japanese TeX
+\def\JTeX{\leavevmode\hbox{\lower.5ex%
+ \hbox{J}\kern-.18em\TeX}}
+
+\def\JoT{{\sl The Joy of \TeX}}
+
+\def\LAMSTeX{L\raise.42ex\hbox{\kern
+ -.3em\the\scriptfont2 A}\kern-.2em%
+ \lower.376ex\hbox{\the\textfont2 M}%
+ \kern-.125em{\the\textfont2 S}-\TeX}
+ \let\LAmsTeX=\LAMSTeX%addition
+\def\La{\TestCount=\the\fam \leavevmode
+ L\raise.42ex\hbox{$\fam\TestCount
+ \scriptstyle\kern-.3em A$}}
+\def\LaTeX{\La\kern-.15em\TeX}
+
+% for Robert McGaffey
+\def\Mc{\setbox\TestBox=\hbox{M}M\vbox
+ to\ht\TestBox{\hbox{c}\vfil}}
+
+\font\manual=logo10
+% font used for the METAFONT logo, etc.
+\def\MF{{\manual META}\-{\manual FONT}}
+\def\MP{{\manual META}\-{\smc post}}
+\def\MFB{{\sl The \slMF book}}
+
+% multilingual (INRS) TeX
+\def\mtex{T\kern-.1667em\lower.5ex%
+ \hbox{\^E}\kern-.125emX}
+
+\def\pcMF{\leavevmode\raise.5ex\hbox
+ {p\kern-.3ptc}MF}
+\def\PCTeX{PC\thinspace\TeX}
+\def\pcTeX{\leavevmode\raise.5ex\hbox
+ {p\kern-.3ptc}\TeX}
+
+\def\Pas{Pascal}
+
+\def\PiC{P\kern-.12em\lower.5ex%
+ \hbox{I}\kern-.075emC}
+\def\PiCTeX{\PiC\kern-.11em\TeX}
+
+\def\plain{{\tt plain}}
+
+\def\POBox{P.\thinspace O.\ Box }
+\def\POBoxTUG{\POBox\unskip\ 21041,
+ Santa Barbara, CA93121-1041, USA}
+
+\def\PS{{Post\-Script}}
+
+\def\SC{Steering Committee}
+
+\def\SGML{{\SMC SGML}}
+
+\def\SliTeX{{\rm S\kern-.06em{\smc
+ l\kern-.035emi}\kern-.06em\TeX}}
+
+\def\slMF{\MF}
+%Use \font\manualsl=logosl10 instead,
+%if it's available, for
+%\def\slMF{{\manualsl META}\-{\manualsl
+% FONT}}
+
+% Atari ST (Klaus Guntermann)
+\def\stTeX{{\smc st\rm\kern-0.13em\TeX}}
+
+\def\TANGLE{{\tt TANGLE}}
+
+\def\TB{{\sl The \TeX book}}
+\def\TP{{\sl \TeX\/}:
+ {\sl The Program\/}}
+
+\def\TeX{T\hbox{\kern-.1667em%
+ \lower.424ex\hbox{E}\kern-.125emX}}
+
+\def\TeXhax{\TeX hax}
+
+% Don Hosek
+\def\TeXMaG{\TeX M\kern-.1667em%
+ \lower.5ex\hbox{A}\kern-.2267emG}
+
+\def\TeXtures{{\it Textures}}
+\let\Textures=\TeXtures
+
+\def\TeXXeT{\TeX--X\kern-.125em%
+ \lower.5ex\hbox{E}\kern-.1667emT}
+
+\def\ttn{{\sl TTN}}
+\def\TTN{{\sl \TeX{} and TUG News}}
+
+\def\tubfont{\sl}
+\def\TUB{{\tubfont TUGboat\/}}
+
+\def\TUG{\TeX\ \UG}
+
+\def\UG{Users Group}
+
+\def\UNIX{{\SMC UNIX}}
+
+\def\VAX{\leavevmode\hbox{V\kern-.12em%
+ A\kern-.1em X}}
+
+\def\VorTeX{V\kern-2.7pt\lower.5ex%
+ \hbox{O\kern-1.4pt R}\kern-2.6pt\TeX}
+
+\def\XeT{\leavevmode\hbox{X\kern-.125em%
+ \lower.424ex\hbox{E}\kern-.1667emT}}
+
+\def\WEB{{\tt WEB}}
+\def\WEAVE{{\tt WEAVE}}
+%Additions
+\def\maps#1#2{MAPS {\oldstyle#1}.%
+ {\oldstyle#2}}%;nonum
+%
+%Although not necessary because of
+%alphabetical ordering, I supplied
+%also
+%
+%Table of contents abbreviations TUG
+%\AllTeX..........................7
+%\AMS.............................9
+%\AmS, \AmSTeX...................14
+%\aw.............................16
+%\AW.............................17
+%\BibTeX.....................20, 21
+%\CandT......................23, 24
+%\DVItoVDU.......................26
+%\ISBN...........................28
+%\JTeX.......................31, 32
+%\JoT............................34
+%\LAMSTeX....................36--39
+%\La.........................41--43
+%\LaTeX..........................44
+%\maps (added)
+%\Mc.........................47--48
+%\MF.............................52
+%\mf.............................53
+%\MFB........................54, 55
+%\mtex.......................57, 58
+%\pcMF.......................60, 61
+%\PCTeX..........................62
+%\pcTeX......................63, 64
+%\Pas............................66
+%\PiCTeX.........................70
+%\plain..........................72
+%\POBox..........................74
+%\POBoxTUG...................75--76
+%\PS.............................78
+%\SC.............................80
+%\SGML...........................82
+%\SliTeX.....................84, 85
+%\slMF......................%90, 91
+%\stTeX..........................94
+%\TANGLE.........................96
+%\TB.............................98
+%\TP.............................99
+%\TeX......................102, 103
+%\TeXhax........................105
+%\TeXMaG...................108, 109
+%\TeXtures......................111
+%\TeXXeT...................114, 115
+%\ttn...........................117
+%\TTN...........................118
+%\TUB...........................121
+%\TUG...........................123
+%\UG............................125
+%\UNIX..........................127
+%\VAX......................129, 130
+%\VorTeX...................132, 133
+%\XeT......................135, 136
+%\WEB...........................138
+%\WEAVE.........................139
+%end%%%%%%%%%%%%%%%%%%%%%%%abbreviations%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%manmac%
+%;numvrb
+%manmac.tex cgl@rc.service.rug.nl
+%Knuth's macros for formatting The TeXbook
+%and The METAfont book.
+%
+%\catcode`@=11
+%
+\font\tentex=cmtex10
+
+\font\inchhigh=cminch
+\font\titlefont=cmssdc10 at 40pt
+
+\font\ninerm=cmr9
+\font\eightrm=cmr8
+\font\sixrm=cmr6
+
+\font\ninei=cmmi9
+\font\eighti=cmmi8
+\font\sixi=cmmi6
+\skewchar\ninei='177
+\skewchar\eighti='177
+\skewchar\sixi='177
+
+\font\ninesy=cmsy9
+\font\eightsy=cmsy8
+\font\sixsy=cmsy6
+\skewchar\ninesy='60
+\skewchar\eightsy='60
+\skewchar\sixsy='60
+
+\font\eightss=cmssq8
+
+\font\eightssi=cmssqi8
+
+\font\ninebf=cmbx9
+\font\eightbf=cmbx8
+\font\sixbf=cmbx6
+
+\font\ninett=cmtt9
+\font\eighttt=cmtt8
+
+\hyphenchar\tentt=-1 % inhibit hyphenation
+ % in typewriter type
+\hyphenchar\ninett=-1
+\hyphenchar\eighttt=-1
+
+\font\ninesl=cmsl9
+\font\eightsl=cmsl8
+
+\font\nineit=cmti9
+\font\eightit=cmti8
+
+\font\tenu=cmu10 % unslanted text italic
+\font\magnifiedfiverm=cmr5 at 10pt
+%Next two not available on my system
+%\font\manual=manfnt % font used for the
+ % METAFONT logo, etc.
+%\font\cmman=cmman % font used for
+%
+%miscellaneous Computer Modern variations
+\newskip\ttglue
+\def\tenpoint{\def\rm{\fam0\tenrm}%
+ \textfont0=\tenrm\scriptfont0=\sevenrm
+ \scriptscriptfont0=\fiverm
+ \textfont1=\teni \scriptfont1=\seveni
+ \scriptscriptfont1=\fivei
+ \textfont2=\tensy\scriptfont2=\sevensy
+ \scriptscriptfont2=\fivesy
+ \textfont3=\tenex\scriptfont3=\tenex
+ \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\tenit}\def\oldstyle
+ {\fam1 \teni}\textfont\itfam=\tenit
+ \def\sl{\fam\slfam\tensl}%
+ \textfont\slfam=\tensl
+ \def\bf{\fam\bffam\tenbf}%
+ \textfont\bffam=\tenbf
+ \scriptfont\bffam=\sevenbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\tentt}%
+ \textfont\ttfam=\tentt
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=12pt plus1pt minus1pt
+ \def\MF{{\manual META}\-{\manual FONT}}%
+ \let\sc=\eightrm
+ \let\big=\tenbig
+ \setbox\strutbox=\hbox{\vrule
+ height8.5pt depth3.5pt width\z@}%
+ \normalbaselines\rm}
+
+\def\ninepoint{\def\rm{\fam0\ninerm}%
+ \textfont0=\ninerm\scriptfont0=\sixrm
+ \scriptscriptfont0=\fiverm
+ \textfont1=\ninei\scriptfont1=\sixi
+ \scriptscriptfont1=\fivei
+ \textfont2=\ninesy\scriptfont2=\sixsy
+ \scriptscriptfont2=\fivesy
+ \textfont3=\tenex\scriptfont3=\tenex
+ \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\nineit}\def\oldstyle
+ {\fam1 \ninei}\textfont\itfam=\nineit
+ \def\sl{\fam\slfam\ninesl}%
+ \textfont\slfam=\ninesl
+ \def\bf{\fam\bffam\ninebf}%
+ \textfont\bffam=\ninebf
+ \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\ninett}%
+ \textfont\ttfam=\ninett
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=11pt plus1pt minus1pt
+ \def\MF{{\manual hijk}\-{\manual lmnj}}%
+ \let\sc=\sevenrm
+ \let\big=\ninebig
+ \setbox\strutbox=\hbox{\vrule height8pt
+ depth3pt width\z@}%
+ \normalbaselines\rm}
+
+\def\eightpoint{\def\rm{\fam0\eightrm}%
+ \textfont0=\eightrm \scriptfont0=\sixrm
+ \scriptscriptfont0=\fiverm
+ \textfont1=\eighti \scriptfont1=\sixi
+ \scriptscriptfont1=\fivei
+ \textfont2=\eightsy \scriptfont2=\sixsy
+ \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex
+ \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\eightit}\def\oldstyle
+ {\fam1 \eighti}\textfont\itfam=\eightit
+ \def\sl{\fam\slfam\eightsl}%
+ \textfont\slfam=\eightsl
+ \def\bf{\fam\bffam\eightbf}%
+ \textfont\bffam=\eightbf
+ \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\eighttt}%
+ \textfont\ttfam=\eighttt
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=10pt plus1pt minus1pt
+ \def\MF{{\manual opqr}\-{\manual stuq}}%
+ \let\sc=\sixrm
+ \let\big=\eightbig
+ \setbox\strutbox=\hbox{\vrule height7pt
+ depth2pt width\z@}%
+ \normalbaselines\rm}
+
+\def\tenmath{\tenpoint\fam-1 } % use after $
+ % in ninepoint sections
+\def\tenbig#1{{\hbox{$\left#1\vbox to8.5pt{}%
+ \right.\n@space$}}}
+\def\ninebig#1{{\hbox{$\textfont0=\tenrm
+ \textfont2=\tensy
+ \left#1\vbox to7.25pt{}\right.\n@space$}}}
+\def\eightbig#1{{\hbox{$\textfont0=\ninerm
+ \textfont2=\ninesy
+ \left#1\vbox to6.5pt{}\right.\n@space$}}}
+% Page layout
+\newdimen\manmachsize\newdimen\manmacvsize
+\newdimen\pagewidth \newdimen\pageheight
+\newdimen\manmacparindent\newdimen\ruleht%Cornrules
+\manmachsize29pc\manmacvsize44pc\maxdepth2.2pt
+\manmacparindent=3pc \ruleht=.5pt
+\pagewidth\manmachsize\pageheight\manmacvsize
+\abovedisplayskip=6pt plus 3pt minus 1pt
+\belowdisplayskip=6pt plus 3pt minus 1pt
+\abovedisplayshortskip=0pt plus 3pt
+\belowdisplayshortskip=4pt plus 3pt
+
+\newinsert\footins
+\def\manmacfootnote#1{\edef\@sf{\spacefactor
+ \the\spacefactor}#1\@sf
+ \insert\footins\bgroup\eightpoint
+ \interlinepenalty100 \let\par=\endgraf
+ \leftskip=\z@skip \rightskip=\z@skip
+ \splittopskip=10pt plus 1pt minus 1pt
+ \floatingpenalty=20000
+ \smallskip\item{#1}\bgroup\strut
+ \aftergroup\@foot\let\next}
+
+\skip\footins=12pt plus 2pt minus 4pt
+% space added when footnote is present
+\count\footins=1000
+% footnote magnification factor (1 to 1)
+\dimen\footins=30pc
+% maximum footnotes per page
+
+\newinsert\margin
+\dimen\margin=\maxdimen
+\count\margin=0 \skip\margin=0pt
+% marginal inserts take up no space
+
+\newif\iftitle
+\def\titlepage{\global\titletrue}
+% for pages without headlines
+\def\rhead{} % contains the running headline
+
+\def\leftheadline{\hbox to \pagewidth{%
+ \vbox to 10pt{}% strut to position the
+ % baseline
+ \llap{\tenbf\folio\kern1pc}% folio to
+ % left of text
+ \tenit\rhead\hfil% running head flush left
+}}
+\def\rightheadline{\hbox to \pagewidth{%
+ \vbox to 10pt{}% strut to position the
+ % baseline
+ \hfil\tenit\rhead\/% running head flush
+ % right
+ \rlap{\kern1pc\tenbf\folio}% folio to
+ % right of text
+}}
+
+\def\onepageout#1{\shipout\vbox{ % here we
+ % define one page of output
+ \offinterlineskip % butt the boxes together
+ \vbox to 3pc{ % this part goes on top of
+ % the 44pc pages
+ \iftitle % the next is used for title pages
+ \global\titlefalse % reset the titlepage
+ % switch
+ \setcornerrules % for camera alignment
+ \else\ifodd\pageno \rightheadline\else
+ \leftheadline\fi\fi
+ \vfill} % this completes the \vbox to 3pc
+ \vbox to \pageheight{
+ \ifvoid\margin\else%marginal info is present
+ \rlap{\kern31pc\vbox to\z@{\kern4pt%
+ \box\margin \vss}}\fi
+ #1 % now insert the main information
+ \ifvoid\footins\else%footnote info is present
+ \vskip\skip\footins \kern-3pt
+ \hrule height\ruleht width\pagewidth
+ \kern-\ruleht \kern3pt
+ \unvbox\footins\fi
+ \boxmaxdepth=\maxdepth
+ } % this completes the \vbox to \pageheight
+}\advancepageno}
+
+\def\setcornerrules{\hbox to \pagewidth{%
+ \vrule width 1pc height\ruleht
+ \hfil \vrule width 1pc}
+ \hbox to \pagewidth{\llap{\sevenrm(page
+ \folio)\kern1pc}%
+ \vrule height1pc width\ruleht depth\z@
+ \hfil \vrule width\ruleht depth\z@}}
+
+\def\manmacoutput{\onepageout{
+ \unvbox255}}
+
+\newbox\partialpage
+\def\begindoublecolumns{\begingroup
+ \output={\global\setbox\partialpage=
+ \vbox{\unvbox255\bigskip}}\eject
+ \output={\doublecolumnout}%
+ \hsize=9cm \vsize=51cm}%cgl mods
+\def\enddoublecolumns{\output=
+ {\balancecolumns}\eject \endgroup
+ \pagegoal=\vsize}
+
+\def\doublecolumnout{\splittopskip=\topskip
+ \splitmaxdepth=\maxdepth \dimen@=25cm
+ \advance\dimen@ by-\ht\partialpage
+ \setbox0=\vsplit255 to\dimen@
+ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255 \penalty\outputpenalty}
+\def\pagesofar{\unvbox\partialpage
+ \wd0=\hsize \wd2=\hsize \hbox to
+ \pagewidth{\box0\hfil\box2}}
+\def\balancecolumns{\setbox0=\vbox{\unvbox255}
+ \dimen@=\ht0
+ \advance\dimen@ by\topskip
+ \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by2 \splittopskip=\topskip
+ {\vbadness=10000
+ \loop \global\setbox3=\copy0
+ \global\setbox1=\vsplit3 to\dimen@
+ \ifdim\ht3>\dimen@
+ \global\advance\dimen@ by1pt
+ \repeat}
+ \setbox0=\vbox to\dimen@{\unvbox1}
+ \setbox2=\vbox to\dimen@{\unvbox3}
+ \pagesofar}
+
+% To produce only a subset of pages,
+% put the page numbers on separate
+% lines in a file called pages.tex
+\let\Shipout=\shipout
+\newread\pages \newcount\nextpage
+\openin\pages=pages
+\def\getnextpage{\pages\else
+ {\endlinechar=-1\read\pages to\next
+ \ifx\next\empty % in this case we should
+ % have eof now
+ \else\global\nextpage=\next\fi}\fi}
+\ifeof\pages\else\message{OK, I'll ship only
+ the requested pages}\getnextpage\fi
+%
+\def\shipout{\ifeof\pages
+ \let\next=\Shipout\else
+ \ifnum\pageno=\nextpage
+ \getnextpage\let\next=\Shipout
+ \else\let\next=\Tosspage\fi\fi \next}
+%
+\newbox\garbage
+\def\Tosspage{\deadcycles=0
+ \setbox\garbage=}
+
+% Chapter formatting
+% The preface and table of contents are
+% formatted in place, not here.
+\newcount\exno % for the number of exercises
+ % in the current chapter
+\newcount\subsecno % for the number of
+ % subsections in the current chapter
+
+\def\manmacbeginchapter#1 #2#3. #4\par{%
+\global\exno=0\subsecno=0\def\chapno{#2#3}
+ \ifodd\pageno
+ \errmessage{You had too much text on
+ that last page, I'm backing up}
+ \advance\pageno by-1
+ \fi \titlepage
+ \def\\{ } % \\'s in the title will be
+ % treated as spaces
+ \message{#1 #2#3:} % show the chapter
+ % title on the terminal
+ \def\MF{{\manual 89:%insert semi-col
+ <=>:}} % slant the logo
+ \xdef\rhead{#1 #2#3: #4\unskip}
+ {\def\TeX{T\kern-.2em\lower.5ex%
+ \hbox{E}\kern-.06em X}
+ \def\MF{{\vbox to30pt{}\manual ()*+,-.*}}
+ \def\\{#3}
+ \ifx\empty\\
+ \rightline{\inchhigh #2\kern-.04em}
+ \else\rightline{\inchhigh #2\kern-.06em%
+ #3\kern-.04em}%
+ \fi \vskip 1.75pc
+ \baselineskip 36pt \lineskiplimit
+ \titlelsl \lineskip 12pt
+ \let\\=\cr%now the \\'s are line dividers
+ \halign{\line{\titlefont\hfil##}\\#4%
+ \unskip\\}\vfill\eject} % output the
+ % chapter title page
+ \tenpoint\noindent\ignorespaces}% the first
+%paragraph of a chapter is not indented
+\newdimen\titlelsl \titlelsl=1pt
+
+\outer\def\manmacendchapter{\ifodd\pageno
+ \else\vfill\eject\null\fi
+ \begingroup\bigskip\vfill % beginning of
+ % the quotes
+ \def\eject{\endgroup\eject}
+ \def\par{\ifhmode\/\endgraf\fi}\obeylines
+ \def\TeX{T\kern-.2em\lower.5ex\hbox{E}%
+ \kern-.000em X}
+ \def\MF{{\manual opqr}\-{\manual stuq}}
+ \eightpoint \let\tt=\ninett
+ \baselineskip 10pt
+ \parfillskip \z@
+ \interlinepenalty 10000
+ \leftskip \z@ plus 40pc minus \parindent
+ \let\rm=\eightss \let\sl=\eightssi
+ \everypar{\sl}}
+%
+\def\manmacauthor#1(#2){\smallskip
+\noindent\rm--- #1\unskip\enspace(#2)}
+
+\def\dbend{{\manual\char127}}
+% dangerous bend sign
+\def\d@nger{\medbreak\begingroup
+ \clubpenalty=10000
+ \def\par{\endgraf\endgroup\medbreak}
+ \noindent\hang\hangafter=-2
+ \hbox to0pt{\hskip-\hangindent\dbend
+ \hfill}\ninepoint}
+\outer\def\danger{\d@nger}
+\def\dd@nger{\medbreak\begingroup
+ \clubpenalty=10000
+ \def\par{\endgraf\endgroup\medbreak}
+ \noindent\hang\hangafter=-2
+ \hbox to0pt{\hskip-\hangindent\dbend
+ \kern1pt\dbend\hfill}\ninepoint}
+\outer\def\ddanger{\dd@nger}
+\def\enddanger{\endgraf\endgroup} % omits
+ % the \medbreak
+
+\outer\def\subsection#1. {\medbreak
+ \advance\subsecno by 1
+ \noindent
+ {\it \the\subsecno.\enspace#1.\enspace}}
+\def\ansno#1.#2:{\medbreak\noindent
+ \hbox to\parindent{\bf\hss#1.#2.\enspace}
+ \ignorespaces}
+
+% Composition macros
+\hyphenation{man-u-script man-u-scripts
+ ap-pen-dix xscaled}
+
+%\def\AmSTeX{$\cal A\kern-.1667em\lower
+% .5ex\hbox{$\cal M$}\kern-.075em S$-\TeX}
+\def\bull{\vrule height .9ex width .8ex%
+ depth -.1ex } % square bullet
+\def\SS{{\it SS}} % scriptscript style
+\def\|{\leavevmode\hbox{\tt\char`\|}}
+ % vertical line
+\def\dn{\leavevmode\hbox{\tt\char'14}}
+ % downward arrow
+\def\up{\leavevmode\hbox{\tt\char'13}}
+ % upward arrow
+\def\]{\leavevmode\hbox{\tt\char`\ }}
+ % visible space
+
+\def\pt{$\,${\rm pt}} % units of points,
+ % in math formulas
+\def\em{$\,${\rm em}} % units of ems,
+ % in math formulas
+\def\<#1>{\leavevmode\hbox{$\langle$#1%
+ \/$\rangle$}} % syntactic quantity
+\def\oct#1{\hbox{\rm\'{}\kern-.2em\it
+ #1\/\kern.05em}} % octal constant
+\def\hex#1{\hbox{\rm\H{}\tt#1}}
+ % hexadecimal constant
+\def\cstok#1{\leavevmode\thinspace\hbox{%
+ \vrule\vtop{\vbox{\hrule\kern1pt\hbox{%
+ \vphantom{\tt/}\thinspace{\tt#1}%
+ \thinspace}}\kern1pt\hrule}\vrule}%
+ \thinspace} % control sequence token
+
+{\obeyspaces\gdef {\ }}
+\def\parbreak{\hfil\break\indent\strut}
+\def\stretch{\nobreak\hskip0pt plus2pt\relax}
+
+% macros for non-centered displays
+\outer\def\begindisplay{\obeylines
+ \startdisplay}
+{\obeylines\gdef\startdisplay#1
+ {\catcode`\^^M=5$$#1\halign\bgroup\indent
+ ##\hfil&&\qquad##\hfil\cr}}
+%
+\outer\def\enddisplay{\crcr\egroup$$}
+% (the following \begin...\end-type
+% macros do not appear in Appendix E)
+% macros for demonstrating math constructions
+\outer\def\beginmathdemo{
+ $$\advance\baselineskip by2pt
+ \halign\bgroup\indent\hbox to 160pt{##\hfil}&
+ $##$\hfil\cr\noalign{\vskip-2pt}
+}
+\outer\def\begindisplaymathdemo{
+ $$\advance\baselineskip by15pt
+ \halign\bgroup\indent\hbox to 160pt{##\hfil}&
+ $\displaystyle{##}$\hfil\cr
+ \noalign{\vskip-15pt}
+}
+\outer\def\beginlongmathdemo{
+ $$\advance\baselineskip by2pt
+ \halign\bgroup\indent\hbox to 210pt{##\hfil}&
+ $##$\hfil\cr\noalign{\vskip-2pt}
+}
+\outer\def\beginlongdisplaymathdemo{
+ $$\advance\baselineskip by15pt
+ \halign\bgroup\indent\hbox to 210pt{##\hfil}&
+ $\displaystyle{##}$\hfil\cr
+ \noalign{\vskip-15pt}
+}
+\outer\def\endmathdemo{\crcr\egroup$$}
+
+% macros for font tables
+\def\oddline#1{\cr
+ \noalign{\nointerlineskip}
+ \multispan{19}\hrulefill&
+ \setbox0=\hbox{\lower 2.3pt\hbox{%
+ \hex{#1x}}}\smash{\box0}\cr
+ \noalign{\nointerlineskip}}
+\def\evenline{\cr\noalign{\hrule}}
+\def\chartstrut{\lower4.5pt\vbox to14pt{}}
+\def\beginchart#1{$$\postdisplaypenalty=-10000
+ \global\count@=0 #1
+ \halign to\hsize\bgroup
+ \chartstrut##\tabskip0pt plus10pt&
+ &\hfil##\hfil&\vrule##\cr
+ \lower6.5pt\null
+ &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&
+ \oct5&&\oct6&&\oct7&\evenline}
+\def\endchart{\raise11.5pt\null&&&\hex 8&&
+ \hex 9&&\hex A&&\hex B&&\hex C&&\hex D&&
+ \hex E&&\hex F&\cr\egroup$$}
+\def\:{\setbox0=\hbox{\char\count@}%
+ \ifdim\ht0>7.5pt\reposition
+ \else\ifdim\dp0>2.5pt\reposition\fi\fi
+ \box0\global\advance\count@ by1 }
+\def\reposition{\setbox0=\hbox{$\vcenter
+ {\kern2pt\box0\kern2pt}$}}
+\def\normalchart{%
+ &\oct{00x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline0
+ &\oct{01x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{02x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline1
+ &\oct{03x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{04x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline2
+ &\oct{05x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{06x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline3
+ &\oct{07x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{10x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline4
+ &\oct{11x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{12x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline5
+ &\oct{13x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{14x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline6
+ &\oct{15x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline
+ &\oct{16x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&&\oddline7
+ &\oct{17x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&
+ \:&\evenline}
+%
+% (now Appendix E resumes again)
+% macros for verbatim scanning
+\chardef\other=12
+\def\ttverbatim{\begingroup
+ \catcode`\\=\other
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\$=\other
+ \catcode`\&=\other
+ \catcode`\#=\other
+ \catcode`\%=\other
+ \catcode`\~=\other
+ \catcode`\_=\other
+ \catcode`\^=\other
+ \obeyspaces \obeylines \tt}
+
+\outer\def\begintt{$$\let\par=\endgraf
+ \ttverbatim \parskip=\z@
+ \catcode`\|=0 \rightskip-5pc \ttfinish}
+{\catcode`\|=0 |catcode`|\=\other
+ % | is temporary escape character
+ |obeylines % end of line is active
+ |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}%
+ |endgroup$$}}
+\catcode`\|=\active
+{\obeylines \gdef|{\ttverbatim
+ \spaceskip=\ttglue
+\let^^M=\ \let|=\endgroup}}
+
+% macros for syntax rules (again, not in
+% Appendix E)
+\def\[#1]{\silenttrue\xref|#1|\thinspace
+ {\tt#1}\thinspace} % keyword in syntax
+\def\beginsyntax{\endgraf\nobreak\medskip
+ \begingroup \catcode`<=13 \catcode`[=13
+ \let\par=\endsyntaxline \obeylines}
+\def\endsyntaxline{\futurelet\next
+ \syntaxswitch}
+\def\syntaxswitch{\ifx\next\<\let\next=
+ \syntaxrule\else
+ \ifx\next\endsyntax\let\next=\endgroup
+ \else\let\next=\continuerule
+ \fi\fi \next
+}
+\def\continuerule{\hfil\break\indent\qquad}
+\def\endsyntax{\medbreak\noindent}
+{\catcode`<=13 \catcode`[=13
+ \global\let<=\< \global\let[=\[
+ \gdef\syntaxrule<#1>{\endgraf\indent
+ \silentfalse%\xref%Mod cgl
+ \<#1>}} \def\alt{\ $\vert$ }
+\def\is{\ $\longrightarrow$ }
+
+% macros to demarcate lines quoted from
+% TeX source files
+\def\beginlines{\par\begingroup\nobreak
+ \medskip\parindent\z@ \obeylines
+ \hrule\kern1pt\nobreak \everypar{\strut}}
+\def\endlines{\kern1pt\hrule\endgroup
+ \medbreak\noindent}
+\def\weakendlines{\kern1pt\hrule\endgroup
+ \medskip\noindent}
+\def\finalendlines{\kern1pt\hrule\endgroup
+ \medbreak}
+
+\outer\def\manmacexercise{\medbreak
+ \global\advance\exno by 1
+ \noindent\llap{\manual\char'170
+ \rm\kern.15em}% triangle in margin
+ {\ninebf EXERCISE \bf\chapno.\the\exno}\par
+ \nobreak\noindent}
+\def\dexercise{\global\advance\exno by 1
+ \llap{\manual\char'170
+ \rm\kern.15em}% triangle in indented space
+ {\eightbf EXERCISE \bf\chapno.\the\exno}\hfil
+ \break}
+\outer\def\dangerexercise{\d@nger\dexercise}
+\outer\def\ddangerexercise{\dd@nger\dexercise}
+
+\newwrite\ans
+\immediate\openout\ans=answers
+ % file for answers to exercises
+\outer\def\manmacanswer{\par\medbreak
+ \immediate\write\ans{}
+ \immediate\write\ans{\string\ansno
+ \chapno.\the\exno:}\copytoblankline}
+\def\copytoblankline{\begingroup\setupcopy
+ \copyans}
+\def\setupcopy{\def\do##1{\catcode`##1=
+ \other}\dospecials
+ \catcode`\|=\other \obeylines}
+{\obeylines \gdef\copyans#1
+ {\def\next{#1}%
+ \ifx\next\empty\let\next=\endgroup
+ \else\immediate\write\ans{\next}%
+ \let\next=\copyans
+ \fi\next}}
+
+% Macros for drawing figures (not in
+% Appendix E)
+\def\hidehrule#1#2{\kern-#1\hrule
+ height#1 depth#2 \kern-#2 }
+\def\hidevrule#1#2{\kern-#1{\dimen0=#1
+ \advance\dimen0 by#2\vrule width\dimen0}%
+ \kern-#2 }
+% \makeblankbox puts rules at the edges of
+% a blank box whose dimensions are those
+% of \box0 (assuming nonnegative wd,ht,dp)
+% #1 is rule thickness outside,
+% #2 is rule thickness inside
+\def\makeblankbox#1#2{\hbox{\lower\dp0
+ \vbox{\hidehrule{#1}{#2}%
+ \kern-#1% overlap the rules at the corners
+ \hbox to\wd0{\hidevrule{#1}{#2}%
+ \raise\ht0\vbox to #1{}% set the vrule height
+ \lower\dp0\vtop to #1{}% set the vrule depth
+ \hfil\hidevrule{#2}{#1}}%
+ \kern-#1\hidehrule{#2}{#1}}}}
+\def\maketypebox{\makeblankbox{0pt}{1pt}}
+\def\makelightbox{\makeblankbox{.2pt}{.2pt}}
+
+% \box\bigdot is a null box with a bullet
+% at its reference point
+\newbox\bigdot \newbox\smalldot
+\setbox0=\hbox{$\vcenter{}$}
+% \ht0 is the axis height
+\setbox1=\hbox to\z@{$\hss\bullet\hss$}
+% bullet is centered on the axis
+\setbox\bigdot=\vbox to\z@{\kern-\ht1
+ \kern\ht0 \box1 \vss}
+\setbox1=\hbox to\z@{$\hss\cdot\hss$}
+% cdot is centered on the axis
+\setbox\smalldot=\vbox to\z@{\kern-\ht1
+ \kern\ht0 \box1 \vss}
+
+% \arrows makes things like <--- text --->
+\def\arrows#1#2{% #1=width, #2=text
+{\setbox0=\hbox{$\mkern-2mu\mathord
+ -\mkern-2mu$}
+ \hbox to #1{\kern-.055556em$\leftarrow
+ \mkern-6mu$\cleaders\copy0\hfil
+ \kern.4em #2\kern.4em\cleaders\copy0\hfil
+ $\mkern-6mu\rightarrow$\kern-.055556em}}}
+
+% \samplebox makes the outline of a box,
+% with big dot at reference point
+\def\samplebox#1#2#3#4{% #1=ht, #2=dp, #3=wd,
+% #4=text
+ {\setbox0=\vtop{\vbox to #1{\hbox to #3{}
+ \vss}\nointerlineskip\vbox to #2{}}
+ % now \box0 has the desired ht, dp, and wd
+ \hbox{\copy\bigdot
+ \vrule height.2pt depth.2pt width#3%
+ \kern-#3\makelightbox\kern-#3%
+ \raise#1\vbox{\hbox to #3{\hss#4\hss}
+ \kern 3pt}}}}
+
+% \sampleglue makes glue between sample boxes
+\newdimen\varunit
+\varunit=\hsize
+\advance\varunit by-2\parindent
+\divide\varunit by 58 % illustrations in
+ % Chapter 12
+\def\sampleglue#1#2{% #1=width, #2=text
+ \vtop{\hbox to #1{\xleaders\hbox to
+ .5\varunit{\hss\copy\smalldot\hss}\hfil}
+ \kern3pt
+ \tabskip \z@ plus 1fil
+ \halign to #1{\hfil##\cr#2\cr}}}
+
+% Indexing macros
+\newif\ifproofmode
+\proofmodetrue % this should be false when
+ % making camera-ready copy
+\newwrite\inx
+\immediate\openout\inx=index % file for
+ % index reminders
+\newif\ifsilent
+\def\specialhat{\ifmmode\def\next{^}\else
+ \let\next=\beginxref\fi\next}
+\def\beginxref{\futurelet\next
+ \beginxrefswitch}
+\def\beginxrefswitch{\ifx\next\specialhat
+ \let\next=\silentxref\else
+ \silentfalse\let\next=\xref\fi \next}
+\catcode`\^=\active \let ^=\specialhat
+\def\silentxref^{\silenttrue\xref}
+
+\def\marginstyle{\vrule height6pt depth2pt
+ width\z@ \sevenrm}
+
+\chardef\bslash=`\\
+\def\xref{\futurelet\next\xrefswitch}
+\def\xrefswitch{\begingroup
+ \ifx\next|\aftergroup\vxref
+ % case 1 or 2, |arg| or |\arg|
+ \else\ifx\next\<\aftergroup\anglexref
+ % case 3, "\<arg>" means angle brackets
+ \else\aftergroup\normalxref
+ \fi\fi\endgroup} % case 0, "{arg}"
+\def\vxref|{\catcode`\\=\active
+ \futurelet\next\vxrefswitch}
+\def\vxrefswitch#1|{\catcode`\\=0
+ \ifx\next\empty\def\xreftype{2}%
+ \def\next{{\tt\bslash\text}}%type2
+ \else\def\xreftype{1}\def\next{%
+ {\tt\text}}\fi %type1
+ \edef\text{#1}\makexref}
+{\catcode`\|=0 \catcode`\\=\active |gdef\{}}
+\def\anglexref\<#1>{\def\xreftype{3}%
+ \def\text{#1}\def\next{\<\text>}\makexref}
+\def\normalxref#1{\def\xreftype{0}%
+ \def\text{#1}\let\next=\text\makexref}
+\def\makexref{\ifproofmode\insert\margin
+ {\hbox{\marginstyle\text}}%
+% \ifindexfile %Mod cgl oct 94
+ \xdef\writeit{\write\inx{\text\space!%
+ \xreftype\space\noexpand\number\pageno.%
+ }}\writeit
+% \else\advance\inxcnt1
+% \ea\xdef\csname\the\inxcnt\endcsname
+% {\text\space!\xreftype\space}%
+% \mark{\the\inxcnt}\fi
+ \else\ifhmode\kern0pt\fi\fi
+ \ifsilent\ignorespaces\else\next\fi}
+% the \insert (which is done in proofmode
+% only) suppresses hyphenation, so the
+% \kern\z@ is put in to give the same effect
+% in non-proofmode.
+
+% Internal cross references that may change
+\def\sesame{61}
+ % page number for Sesame Street quote
+\def\bmiexno{20}
+ % exercise number for bold math italic
+\def\punishexno{1}
+ % exercise number for `punishment'
+\def\fracexno{6}
+ % exercise number for `\frac'
+\def\vshippage{31}
+ % error message from `\vship'
+\def\storypage{24}
+ % listing of story.tex
+\def\metaT{4}
+ % exercise number for T of METAFONT
+\def\xwhat{2}
+ % exercise number for x3:=whatever
+\def\Xwhat{2}
+ % exercise number for whatever itself
+
+\def\checkequals#1#2{\ifnum#1=#2\else
+ \errmessage{Redefine \string#1 to be
+ \the#2}\fi}
+
+%Things for The METAFONTbook only
+%(omitted) ;nonum
+%
+%Contents manmac.tex
+% cgl@rc.service.rug.nl
+%Font definition ................7-58
+%Size switching macros ........60-154
+%Page layout (and OTR) .......156-282
+%-parameters..................159-193
+%-\manmacfootnote.............167-176
+%-\margin (insert)............185-188
+%-\titlepage......................191
+%-\leftheadline...............195-201
+%-\rightheadline..............202-209
+%-\onepageout.................211-235
+%-\setcornerrules.............237-243
+%-\manmacoutput...................245
+%-\begindoublecolumns.........248-253
+%-\enddoublecolumns...........254-256
+%-\doublecolumnout............258-264
+%-\pagesofar..................265-267
+%-\balancecolumns.............268-281
+%Subset of pages..............283-304
+%-\Shipout........................286
+%-\getnextpage................289-295
+%-\shipout....................297-301
+%-\Tosspage.......................304
+%Chapter formatting ..........306-393
+%-\manmacbeginchapter.........315-344
+%-\manmacendchapter...........348-363
+%-\author....................365, 366
+%-\dbend......................368-385
+%-\subsection.................387-393
+%Composition macros...........395-431
+%-\AmSTeX....................399, 400
+%-\bull......................401, 402
+%-\SS.............................403
+%-\vrt............................404
+%-\dn........................406, 407
+%-\up........................408, 409
+%-\]..............................410
+%-\pt........................413, 414
+%-\em........................415, 416
+%-\<#1>......................417, 418
+%-\oct.......................419, 420
+%-\hex............................421
+%-\cstok......................423-427
+%-\parbreak..................429, 430
+%-\stretch........................431
+%Macros for non-centered
+% displays..................433-439
+%-\begindisplay..............434, 435
+%-\startdisplay...............436-438
+%-\enddisplay.....................440
+%Macros for showing math
+% constructions.............441-466
+%-\beginmathdemo..............444-448
+%-\begindisplaymathdemo.......449-454
+%-\beginlongmathdemo..........455-459
+%-\beginlongdisplaymathdemo...460-465
+%-\endmathdemo....................466
+%Macros for font tables.......468-526
+%-\oddline....................469-474
+%-\evenline.......................475
+%-\chartstrut.....................476
+%-\beginchart.................477-484
+%-\endchart...................485-487
+%-\:..........................488-491
+%-\reposition................492, 493
+%-\normalchart................494-526
+%Macros for verbatim scanning.529-555
+%-\ttverbatim.................531-542
+%-\begintt....................544-546
+%-\ttfinish...................547-551
+%Macros for syntax rules......557-579
+%-\[#1]......................559, 560
+%-\beginsyntax................561-563
+%-\endsyntaxline.............564, 565
+%-\syntaxswitch...............566-570
+%-\continuerule...................572
+%-\endsyntax......................573
+%-<, [............................575
+%-\syntaxrule................576, 577
+%-\alt............................578
+%-\is.............................579
+%Macros to demarcate lines quoted
+% from \TeX{} source files..581-591
+%-\beginlines................583, 585
+%-\endlines..................586, 587
+%-\weakendlines..............588, 589
+%-\finalendlines.............590, 591
+%Macros to mark up exercises
+% and answers...............593-624
+%-\manmacexercise............593, 598
+%-\dexercise..................599-603
+%-\dangerexercise.................604
+%-\ddangerexercise................605
+%-\manmacanswer...............610-613
+%-\copytoblankline...........614, 615
+%-\setupcopy..................616-618
+%-\copyans....................619-624
+%Macros for drawing figures...626-696
+%-\hidehrule.................628, 629
+%-\hidevrule..................630-632
+%-\makeblankbox...............638-645
+%-\maketypebbox...................646
+%-\makelightbox...................647
+%-\bigdot....................656, 657
+%-\smalldot..................660, 661
+%-\arrows.....................664-670
+%-\samplebox..................674-683
+%-\sampleglue.................691-696
+%Indexing macros..............698-752
+%-\ifproofmode, \ifsilent....698, 704
+%-\inx............................701
+%-\specialhat................706, 707
+%-\beginxref.................708, 709
+%-\beginxrefswitch............710-712
+%-^...............................713
+%-\silentxref.....................714
+%-\marginstyle...............716, 717
+%-\bslash.........................719
+%-\xref...........................720
+%-\xrefswitch.................721-727
+%-\vxref.....................728, 729
+%-\vxrefswitch................730-736
+%-\anglexref.................738, 739
+%-\normalxref................740, 741
+%-\makexref...................742-754
+%Internal cross-references that
+% may change................760-782
+%
+%Additions
+%
+%\Large font for amongst others
+%chapterhead of report
+\font\Largerm=cmr12
+ scaled\magstep4
+\let\subsubheadfont\Largerm
+\font\Largei=cmmi12
+ scaled\magstep4\relax
+\font\Largeit=cmti12
+ scaled\magstep4\relax
+\font\Largesl=cmsl12
+ scaled\magstep5\relax
+\font\Largesy=cmsy10
+ scaled\magstep5\relax
+\font\Largeex=cmex10
+ scaled\magstep5\relax
+\font\Largebf=cmbx12
+ scaled\magstep4\relax
+\font\Largett=cmtt12
+ scaled\magstep4\relax
+\font\twelverm=cmr12
+\font\twelvebf=cmbx12
+\font\twelveit=cmti12
+\font\twelvesl=cmsl12
+\font\twelvemus=cmmi12
+\font\twelvesy=cmsy10 scaled\magstep1
+\font\twelveex=cmex10 scaled\magstep1
+\font\nineex=cmex10 scaled\magstephalf
+\def\Large{\def\rm{\fam0\Largerm}%
+ \textfont0=\Largerm
+ \scriptfont0=\twelverm
+ \scriptscriptfont0=\ninerm
+ \textfont1=\Largei
+ \scriptfont1=\twelvemus
+ \scriptscriptfont1=\ninei
+ \textfont2=\Largesy
+ \scriptfont2=\twelvesy
+ \scriptscriptfont2=\ninesy
+ \textfont3=\Largeex
+ \scriptfont3=\twelveex
+ \scriptscriptfont3=\nineex
+ \def\it{\fam\itfam \Largeit}%
+ \textfont\itfam=\Largeit
+ \def\sl{\fam\slfam\Largesl}%
+ \def\oldstyle{\fam1 \Largei}
+ \textfont\slfam=\Largesl
+ \def\bf{\fam\bffam\Largebf}%
+ \textfont\bffam=\Largebf
+ \scriptfont\bffam=\tenbf
+ \scriptscriptfont\bffam=\sevenbf
+ \def\tt{\fam\ttfam\Largett}%
+ \textfont\ttfam=\Largett
+ \tt\ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=21pt
+ \def\MF{{\manual META}\-{\manual FONT}}%
+ \setbox\strutbox=\hbox{\vrule
+ height16pt depth5pt width\z@}%
+ \let\sc=\twelverm\let\big=\Largebig
+ \normalbaselines\rm}
+\def\Largebig#1{{\hbox{$\left#1\vbox
+ to12pt{}\right.\n@space}}}
+%
+%\large font for transparencies
+\font\largerm=cmr12
+ scaled\magstep2
+\let\subsubheadfont\largerm
+\font\largei=cmmi12
+ scaled\magstep2\relax
+\font\largeit=cmti12
+ scaled\magstep2\relax
+\font\largesl=cmsl12
+ scaled\magstep2\relax
+\font\largesy=cmsy10
+ scaled\magstep3\relax
+\font\largeex=cmex10
+ scaled\magstep3\relax
+\font\largebf=cmbx12
+ scaled\magstep2\relax
+\font\largett=cmtt12
+ scaled\magstep2\relax
+\def\large{\def\rm{\fam0\largerm}%
+ \textfont0=\largerm
+ \scriptfont0=\tenrm
+ \scriptscriptfont0=\sevenrm
+ \textfont1=\largei
+ \scriptfont1=\teni
+ \scriptscriptfont1=\seveni
+ \textfont2=\largesy
+ \scriptfont2=\tensy
+ \scriptscriptfont2=\sevensy
+ \textfont3=\largeex
+ \scriptfont3=\tenex
+ \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam \largeit}%
+ \textfont\itfam=\largeit
+ \def\sl{\fam\slfam\largesl}%
+ \def\oldstyle{\fam1 \largei}
+ \textfont\slfam=\largesl
+ \def\bf{\fam\bffam\largebf}%
+ \textfont\bffam=\largebf
+ \scriptfont\bffam=\tenbf
+ \scriptscriptfont\bffam=\sevenbf
+ \def\tt{\fam\ttfam\largett}%
+ \textfont\ttfam=\largett
+ \tt\ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=20pt
+ \def\MF{{\manual META}\-{\manual FONT}}%
+ \setbox\strutbox=\hbox{\vrule
+ height15.5pt depth4.5pt width\z@}%
+ \let\sc=\tenrm \let\big=\largebig
+ \normalbaselines\rm}
+\def\largebig#1{{\hbox{$\left#1\vbox
+ to10pt{}\right.\n@space}}}
+%
+%Customization of \beginchapter and
+%\endchapter from Manmac BLUes.
+\outer\def\beginchapter#1 #2#3. #4\par{%
+ \def\chapno{#2#3}\global\exno0 \subsecno0
+ \def\hl{\gdef\hl{\the\issue\hfil\it\rhead}}
+ \headline{\hl}
+ \def\\{ }\xdef\rhead{#4}
+ \centerline{\titlefont
+ #1 #2#3\quad #4}
+ \bigskip\tenpoint\noindent\ignorespaces}
+%
+\footline{\tiny\rlap{\the\year}\hfil
+ --\folio--\hfil\llap{\copyright cgl}}
+%
+\outer\def\endchapter{\vfill\eject\vfill}
+%
+%\output{\plainoutput}
+%
+\hsize18cm \pagewidth\hsize
+\vsize25cm \pageheight\vsize
+%\issue{MAPS 93.1}
+%History of changes
+%1994 Table of contents added and
+% names of footnote and output
+% provided with unique prefix manmac.
+% Customization \beginchapter added.
+%1993 Adapted for twocolumn layout.
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%manmac%;newpage
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%ppt.tex cgl@rc.service.rug.nl
+%;numvrb
+%Adapted TUGboat.sty, 2-column bias
+%\xcol is the column no within a page,
+%ranges from 1 to \maxcols (=1 or 2).
+\newcount\xcol
+\newcount\maxcols
+%
+\newdimen\pagewd\newdimen\colwd
+\newdimen\intercolwd
+\newtoks\headlinesep\newtoks\footlinesep
+\headlinesep{\kern2ex}\footlinesep{\kern1ex}
+%\catcode`\@=11
+% remove \outer
+\def\newbox{\alloc@4\box\chardef\insc@unt}
+\def\boxcs#1{\box\csname#1\endcsname}
+\def\setboxcs#1{\setbox\csname#1\endcsname}
+\def\newboxcs#1{\expandafter
+ \newbox\csname#1\endcsname}
+\newboxcs{column1}
+\newboxcs{column2}
+%
+\def\midpage#1{\vbox{\ifnum\xcol=\maxcols
+ \the\headline\else\null\vskip\baselineskip
+ \fi\the\headlinesep
+ \vbox to\vsize{%
+ \hbox to\pagewd{#1}\vss}
+ \the\footlinesep
+ \ifnum\xcol=\maxcols
+ \the\footline\else\vskip4ex\fi}}
+%
+\headline={\hbox to\pagewd{\sevenrm
+ \the\issue\hfill{\it\the\title}}}
+%
+\newtoks\pagenumber\pagenumber{\folio}
+\footline={\hbox to\pagewd{\tiny
+\rlap{Draft \today}\hfill--\the\pagenumber
+ --\hfill\llap{\copyright cgl}}}
+\def\today{\ifcase\month\or Jan\or Feb\or
+ March\or April\or May\or June\or July\or
+ Aug\or Sept\or Oct\or Nov\or Dec\fi
+ { }{\ea\oldstyle\number\day},
+ {\ea\oldstyle\number\year}}
+%
+\def\newcol{\endgraf\vfill\eject}
+%
+\def\newpage{\vfill\eject
+%\loop
+ \ifnum\xcol>1
+ {\leavevmode\endgraf\vfill\eject}
+ \fi
+}%\xcol is reset in the OTR %\repeat}
+% horizontal offset of column
+% from left edge of page
+\newdimen\coloffset \coloffset=\z@
+\def\incrcoloffset{%
+ \global\advance\coloffset\colwd
+ \global\advance\coloffset\intercolwd}
+%
+\output={\global\setboxcs{column\number\xcol}=
+ \midpage{\kern\coloffset\pagebody\hfil}
+ \incrcoloffset
+ \ifnum\xcol=\maxcols
+ \shipout\hbox{%
+ \rlap{\boxcs{column1}}%
+ \rlap{\boxcs{column2}}%
+ \hbox to\pagewd{\hss}}%
+ \advancepageno
+ \global\coloffset\z@
+ \global\xcol=\@ne
+ \else
+ \global\advance\xcol\@ne
+ \fi}
+%
+%Title, header and miscellaneous
+\newtoks\title\newtoks\subtitle
+\newtoks\author\newtoks\address
+\newtoks\businessaccount
+\newtoks\translator\newtoks\issue
+\newtoks\netaddress\newtoks\crowner
+\newtoks\telephone
+\newtoks\thisscript\newtoks\everyscript
+\newtoks\prehead\newtoks\posthead
+\newtoks\presubhead\newtoks\postsubhead
+\newtoks\presubsubhead\newtoks\postsubsubhead
+\newtoks\thishead
+\newtoks\thissubhead\newtoks\thissubsubhead
+\newtoks\everyhead
+\newtoks\everysubhead\newtoks\everysubsubhead
+\newtoks\tocvar
+\newdimen\subheadindent\subheadindent=0pc
+\newdimen\subsubheadindent\subsubheadindent=2pc
+\def\pasteupkeywords{\box\keywordsbox}
+\def\pasteupabstract{\box\abstractbox}
+\def\pasteupcontents{\unvbox\contentsbox}
+\def\pasteupacknowledgements{\ifvoid
+ \acknowledgementsbox
+ \else\the\preacknowledgements\unvbox
+ \acknowledgementsbox\fi
+ }%
+%pastupindex is much more complicated;vrblin100
+\def\beginscript{\lastscript
+ \the\everyscript\begingroup
+ \the\thisscript
+ \hrule\kern2ex\noindent
+ {\titlefont\the\title\unskip}%
+ \if!\the\subtitle!\else{\subtitlefont
+ \Dash\the\subtitle\unskip}\fi
+ \medskip\the\author
+ \medskip\pasteupkeywords
+ \medskip\pasteupabstract
+ \medbreak\pasteupcontents\smallbreak}
+\def\endscript{\makesignature
+ \xcol=\maxcols
+ \vfil\eject\endgroup\tracingstats1
+ \stop\thisscript{}}
+\def\notlastscript{\let\stop\relax}
+\def\lastscript{\let\stop\end}
+\prehead{\vskip0pt plus9ex
+ \penalty-250\vskip0pt plus-9ex
+ \bgroup\catcode`\^=7 \the\everyhead
+ \the\thishead\bigskip\noindent}
+\posthead{\medskip\nobreak\egroup
+ \noindent\ignorewhitespace}
+\def\beginhead{\the\prehead\bgroup
+ \headfont}
+\def\endhead{\egroup\the\posthead}
+\presubhead{\vskip0pt plus6ex
+ \penalty-100\vskip0pt plus-6ex
+ \medskip\vskip\parskip\noindent
+ \bgroup\catcode`\^7 \the\everysubhead
+ \the\thissubhead
+ \leavevmode\hbox to\subheadindent{}}
+\postsubhead{\egroup\quad\ignorewhitespace}
+\def\beginsubhead{\the\presubhead
+ \bgroup\subheadfont}
+\def\endsubhead{\egroup\the\postsubhead}
+\presubsubhead{\vskip0pt plus3ex
+ \penalty-50\vskip0pt plus-3ex\bgroup
+ \catcode`\^=7
+ \the\everysubsubhead\the\thissubsubhead
+ \smallskip\vskip\parskip\noindent
+ \leavevmode\hbox to\subsubheadindent{}}
+\postsubsubhead{\egroup\quad\ignorewhitespace}
+\def\beginsubsubhead{\the\presubsubhead
+ \bgroup\subsubheadfont}
+\def\endsubsubhead{\egroup
+ \the\postsubsubhead}
+%;vrblin150
+\def\head#{\beginhead\bgroup\ag\endhead
+ \afterassignment\ignorespaces
+ \let\dummy=}
+\def\subhead#{\beginsubhead\bgroup\ag
+ \endsubhead\afterassignment\ignorespaces
+ \let\dummy=}
+\def\subsubhead#{\beginsubsubhead\bgroup
+ \ag\endsubsubhead\let\dummy=}
+\def\script#{\beginscript\bgroup\ag\endscript
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\def\bluetitle#1\par{\title{#1}}
+\def\bluesubtitle#1\par{\subtitle{#1}}
+\def\bluekeywords#1\par{\keywords{#1}}
+\def\bluehead#1\par
+ {\beginhead#1\unskip\endhead}
+\def\bluesubhead#1\par
+ {\beginsubhead#1\endsubhead}
+\def\bluesubsubhead#1\par
+ {\beginsubsubhead#1\endsubsubhead}
+\def\bluemakelabels#1\par
+ {\makelabels{#1}}
+\def\blueabstract#1\par{\abstract{#1}}
+\def\blueissue#1\par{\issue{#1}}
+%
+\long\def\ignorepars#1{\ifx\par#1\let\next\relax
+ \else\let\next#1\sraperongi\fi\ignorepars}
+\long\def\sraperongi#1\ignorepars{\fi\next}
+{\catcode`\^=7 \gdef\ignorewhitespace{\begingroup
+%Due to Phil Taylor EuroTeX 94
+\catcode`\ =9 %space
+\catcode`\^^I=9 %tab
+\catcode`\^^L=9 %f-feed
+\catcode`\^^M=9 %e-o-l
+\futurelet\dummy\endgroup}}
+%;vrblin200
+\def\tubissue#1(#2){TUGboat~{\oldstyle#1},
+ {\oldstyle#2}} \def\\{\hfil\break}
+\def\makesignature{\medskip
+ \rightline{\hbox to.4\hsize{\strut
+ \llap{\copyright\quad}\the\author\hss}}
+ \rightline{\vbox{\noindent
+ \hsize=.4\hsize
+ \the\address\hfill\break
+ \the\netaddress\\
+ \the\telephone}}}
+%
+\def\on{\bgroup\afterassignment\doold\count0=}
+%
+\def\doold{\oldstyle\the\count0\egroup}
+\def\oa#1 {{\oldstyle\fifoolda#1\ofifolda} }
+\def\fifoolda#1#2{\ifcat#1a#1\else\aftergroup#1\fi
+ \ifx\ofifolda#2 \ofifolda\fi
+ \fifoolda#2}
+\def\ofifolda#1\ofifolda{\fi}
+%
+% Defaults
+% %;vrblin250
+\newif\ifonecol
+\def\A#1{\csname A#1\endcsname}
+\expandafter\def\csname A4\endcsname
+ {\ifonecol\hsize16cm\pagewd\hsize
+ \else\hsize9cm\intercolwd.5cm
+ \pagewd\hsize
+ \advance\pagewd\hsize
+ \advance\pagewd\intercolwd
+ \fi\colwd\hsize \vsize25cm}
+%
+\def\onecol{\maxcols=1 \xcol=1
+ \onecoltrue\A4
+ \hyphenchar\tentt='055 %`-
+ \hyphenchar\ninett='055
+ \hyphenchar\eighttt='055
+ \tolerance500
+ \hbadness=499
+ \hfuzz=4pt
+}
+%
+\def\twocol{\maxcols=2 \xcol=1
+ \onecolfalse\A4
+ \hyphenchar\tentt='055
+ \hyphenchar\ninett='055
+ \hyphenchar\eighttt='055
+ \tolerance500
+ \hbadness=499
+ \hfuzz=5pt
+}
+%Personalisation
+\author{Kees van der Laan}
+\address{Hunzeweg {\oldstyle57}\\
+ {\oldstyle9893} PB Garnwerd\\
+ The Netherlands}
+\netaddress{cgl@rc.service.rug.nl}
+\telephone{{\oldstyle31\thinspace{\rm(}0{\rm)}%
+ 594\thinspace62\thinspace1525}}
+\crowner{cgl}
+\businessaccount{Giro: C.G. van der Laan
+ no {\oldstyle1321224}}
+\def\logo{\copy\ntglogobox}%a \vbox
+%end Personalisation
+\def\bluetex{blue.tex}
+%\catcode`\@=12
+\hoffset-1cm \voffset-1cm
+\parindent1pc
+\let\titlefont\bf
+\let\headfont\bf
+\let\subheadfont\bf
+\let\subsubheadfont\bf
+\let\subtitlefont\rm
+\twocol
+%\endinput
+%;nonum
+%Contents ppt cgl@rc.service.rug.nl
+%- OTR
+% \boxcs........................14
+% \setboxcs.....................15
+% \newboxcs.....................16
+% \midpage...................21-28
+% \headline..................30-31
+% \footline..................34-36
+% \pagenumber...................33
+% \today.....................37-41
+% \newcol.......................42
+% \newpage...................44-49
+% \incrcoloffset.............53-55
+% \output....................57-72
+%- Markup structures
+% \title, \subtitle.............75
+% \author.......................76
+% \address, \netaddress.........77
+% \issue........................77
+% \thisscript, \everyscript.....78
+% \prehead, \posthead...........79
+% \presubhead...................80
+% \presubsubhead................81
+% \pasteupkeywords..............82
+% \pasteupabstract..............83
+% \pasteupcontents..............84
+% \beginscript.............101-110
+% \endscript...............111-114
+% \notlastscript...............115
+% \lastscript..................116
+% \prehead.................117-119
+% \posthead................120-121
+% \presubhead..............124-126
+% \beginhead...............122-123
+% \endhead.....................124
+% \beginsubhead............127-128
+% \endsubhead..................129
+% \beginsubsubhead.........133-134
+% \endsubsubhead...............135
+% \script..................159-161
+% \head....................151-153
+% \subhead.................154-156
+% \subsubhead..............157-158
+% \ignorepars..............159-160
+% \sraperongi..................161
+% \ignorewhitespace........162-169
+%- Miscellaneous
+% \tubissue....................201
+% \\...........................202
+% \makesignature...........203-209
+% \on......................
+% \ona.....................
+%- Defaults
+% \onecol..................251-263
+% \twocol..................265-277
+%- Initializations 278-289
+% \author......................278
+% \address.................279-280
+% \netaddress..............281-282
+% \headfont....................286
+% \subheadfont.................287
+% \subsubheadfont..............288
+% \parindent...................285
+% \hoffset, \voffset...........284
+%
+%Split-off---inner level---are
+% - tugboat.cmn abbreviations
+% - size switching macros
+% - \beginquote...\endquote
+% - \bitem (essentially plain's \item)
+% - verbatim mode macros
+% - (bibliography macros,
+% \beginbtable...\endbtable,
+% ...)
+%Author: C.G van der Laan
+% Hunzeweg 57, 9893P
+% Garnwerd The Netherlands
+% cgl@rc.service.rug.nl, 0594621525
+%
+%History of changes
+%March 1996 \on, \ona added
+%Dec 1994 \global\advance\count0\@ne
+% changed into plain's \advancepageno.
+% Phil Taylor's
+% \ignorewhitespace has been included.
+% Parameterization over
+% \headlinesep, \footlinesep.
+% \makesignature's \diamond
+% changed into \copyright.
+%July 1994 No parameter separators for
+% \head etc.
+% \beginscript, \endscript instead
+% of \article, \endarticle.
+% Token variables for \prehead
+% \posthead, \presubhead
+% \presubsubhead.
+%June 1994 Name changed into ppt.tex
+%May 94 \runhead and \runfoot changed
+% into \headline and \footline
+% compatible with plain.
+%March 94 Essential set up
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ppt.tex%;newcol
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%%Additions%
+%Additions to ppt
+%Shortcuts ;numvrb
+\let\ea=\expandafter\let\nx=\noexpand
+\let\ag=\aftergroup
+\def\dash{--}\def\Dash{---}
+\newtoks\contentsname
+\newtoks\abstractname
+\newtoks\keywordsname
+\newtoks\acknowledgementsname
+\newtoks\preacknowledgements
+\preacknowledgements{\bigbreak\leftline{\bf
+ \the\acknowledgementsname}\nobreak
+ \medskip\noindent}
+\newtoks\postacknowledgements
+\def\DeK{D\kern-.11em\lower.5ex\hbox
+ {E}\kern-.1em K} %;vrblin=50
+\def\tiny{\fiverm\baselineskip7pt minus1pt
+ \let\it\fivei\let\bf\fivebf\def\oldstyle
+ {\fam1 \fivei}} %;vrblin=200
+%\pagenumber{\folio}
+\newcount\fcnt
+\def\ftn{\global\advance\fcnt1
+ \footnote{${}^{\oldstyle\the\fcnt}$}}
+\def\vfootnote#1{\insert\footins
+ \bgroup\interlinepenalty
+ \interfootnotelinepenalty
+ \splittopskip\ht\strutbox
+ \splitmaxdepth\dp\strutbox
+ \floatingpenalty\@MM
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \spaceskip\z@skip
+ \xspaceskip\z@skip
+%mods cgl
+\small\noindent\llap{\oldstyle
+ #1\enspace}%
+%end mods cgl
+ \footstrut\futurelet\next\fo@t
+}
+%LaTeX things ;vrblin=250
+%\def\\{\hfil\break}
+\def\cite#1{(#1)}
+\def\verb{}
+\def\em{\it}
+\def\cs#1{{\tt\char92 #1}}
+%Some layout macros ;vrblin=300
+\newbox\keywordsbox
+\keywordsname{Keywords}
+%
+\def\beginkeywords{\setbox\keywordsbox
+ \vbox\bgroup\subhead{\sevenbf
+ \the\keywordsname: }\small}
+%
+\def\endkeywords{\egroup}
+%
+\def\keywords#{\beginkeywords\bgroup
+ \aftergroup\endkeywords
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\newbox\abstractbox
+%\abstractname{Abstract}
+%
+\def\beginabstract{\setbox\abstractbox
+ \vbox\bgroup\centerline{\sevenbf
+ \the\abstractname}\beginquote\small}
+%
+\def\endabstract{\endquote\egroup}
+%
+\def\abstract#{\beginabstract\bgroup
+ \aftergroup\endabstract
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\newbox\contentsbox
+%
+\let\se\quad\let\sse\qquad
+%
+\def\begincontents{\setbox\contentsbox
+ \vbox\bgroup\small\noindent
+ \the\contentsname\par\obeylines}
+%
+\def\endcontents{\egroup}
+%
+\def\contents#{\begincontents\bgroup
+ \aftergroup\endcontents
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\newbox\acknowledgementsbox
+%
+\def\beginacknowledgements{\setbox
+ \acknowledgementsbox=\vbox\bgroup}
+%
+\def\endacknowledgements{\egroup
+ \the\postacknowledgements}
+%
+\def\acknowledgements#{\beginacknowledgements
+ \bgroup\aftergroup\endacknowledgements
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\def\beginquote{\endgraf\bgroup\narrower
+ \smallbreak\noindent}
+%
+\def\endquote{\smallbreak\egroup\endgraf
+ \noindent}
+%
+\def\quote#{\beginquote\bgroup
+ \aftergroup\endquote
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\def\beginsummary{\beginquote
+ \narrower\sl}
+%
+\def\endsummary{\endquote\bigskip}
+%
+\def\summary#{\beginsummary\bgroup
+ \aftergroup\endsummary
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\def\begincenter{\bgroup\smallskip
+\leftskip0pt plus1fill
+\rightskip0pt plus 1fill
+\parfillskip0pt
+\obeylines}
+%
+\def\endcenter{\smallskip\egroup}
+\def\center#{\begincenter\bgroup
+ \aftergroup\endcenter
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\def\begincenterblock{\bgroup
+ \let\par\cr\obeylines\startcenterblock}
+{\obeylines\gdef\startcenterblock#1
+ {$$#1\vbox\bgroup\halign\bgroup%
+ &##\hfil\cr}}
+%
+\def\endcenterblock{\egroup\egroup$$
+ \egroup}
+%
+\def\begindisplaycenterline{%
+ $$\hbox\bgroup}
+%
+\def\enddisplaycenterline{\egroup$$}
+%
+\def\displaycenterline#{%
+ \begindisplaycenterline\bgroup
+ \aftergroup\enddisplaycenterline
+ \afterassignment\ignorespaces
+ \let\dummy=}
+%
+\def\begincenterdisplay{\csname
+ begindisplay\endcsname\vbox\bgroup}
+%
+\def\endcenterdisplay{\crcr\egroup\egroup$$}
+%
+% %;vrblin=350
+\def\bitem{\item{$\bullet$}}
+%
+\newcount\itemno
+%
+\def\nitem{\bgroup
+ \def\nitem{\advance\itemno1
+ \item{\the\prenum{\oldstyle\the\itemno
+ }\the\postnum}}
+ \def\smallbreak{\endgraf\egroup
+ \smallbreak}
+ \let\smallskip\smallbreak\nitem}
+%
+\def\aitem{\bgroup\itemno96
+ \def\aitem{\advance\itemno1
+ \item{\char\itemno.}}
+ \def\smallbreak{\endgraf\egroup
+ \smallbreak}
+ \let\smallskip\smallbreak
+ \aitem}
+%
+\def\Aitem{\bgroup\itemno64
+ \def\Aitem{\advance\itemno1
+ \item{\char\itemno.}}
+ \def\smallbreak{\endgraf\egroup
+ \smallbreak}
+ \let\smallskip\smallbreak
+ \Aitem}
+%
+\def\endlist{\endgraf\egroup}
+%On purpose no \smallskip or so.
+%
+\newtoks\thisexample
+\newtoks\everyexample
+\newtoks\preexample
+\newtoks\postexample
+\newtoks\examplename
+%
+\preexample{\vskip0pt plus5ex
+ \penalty-100\vskip0pt plus-5ex
+ \medbreak\noindent}
+%
+\postexample{\nobreak\par\noindent
+ \ignorewhitespace}
+%
+\def\beginexample{\the\preexample\bgroup
+ \the\examplename\kern1ex\sl
+ (\ignorewhitespace}
+%
+\def\endexample{)\egroup\the\postexample}
+%
+\def\example#{\beginexample\bgroup
+ \aftergroup\endexample
+ \afterassignment\ignorewhitespace
+ \let\dummy=}
+%and the limited variants
+\def\limexample#1{\the\preexample
+ \the\examplename\kern1ex{\sl(#1)}\nobreak
+ \par\noindent\ignorewhitespace}
+%with as tribute to manmac
+\def\blueexample#1\par
+ {\limexample{#1\unskip}}
+%
+\def\endintermezzo{\hfil\break\nobreak
+ {\bf End intermezzo.}\medbreak}
+%For in \onecol
+%;numvrb400
+\def\begindemo{\endgraf\line\bgroup
+ $\vcenter\bgroup\hsize.475\hsize
+ \beginverbatim}
+%
+\def\yields{\endverbatim
+ \global\thisverbatim{}\egroup$
+ \kern\gutter
+ $\vcenter\bgroup\hsize.55\hsize}
+%
+\def\enddemo{\egroup$\hss\egroup}
+%;numvrb500
+\def\pagenorepresentation#1{\quad\dotfill
+ {\oldstyle#1}}
+%
+\def\fbox#1{\setbox0\hbox{\strut
+ $\;$#1$\,$}\leavevmode\rlap{\copy0}%
+ \makelightbox}
+%Knuth's frac Ex 11.6
+\def\frac#1/#2{\leavevmode\kern.1em
+ \raise.5ex\hbox{\the\scriptfont0 #1}%
+ \kern-.1em/\kern-.15em\lower.25ex
+ \hbox{\the\scriptfont0 #2}}
+%Defaults
+\let\small\eightpoint
+\overfullrule=0pt
+%;nonum
+%Contents
+%Newcount
+% \itemcnt.................208
+%Newtoks
+% \itemtag.................209
+%Shortcuts
+% \ea, \nx....................1
+% \ag.........................2
+% \dash, \Dash................3
+% \DeK.....................6, 7
+%Font switching
+% \tiny......................51
+% \small....................414
+% \cs.......................255
+%Footnote, paragraph
+% \ftncnt...................202
+% \ftn..................203-204
+%LaTeX
+% \\........................251
+% \cite.....................252
+% \verb.....................253
+% \em.......................254
+%Lay-out
+% \keywordsbox..............301
+% \abstractbox..............311
+% \contentsbox..............321
+% \beginkeywords........303-305
+% \endkeywords..............306
+% \keywordsname.............302
+% \keywords.............307-310
+% \beginabstract........313-315
+% \endabstract..............316
+% \abstractname.............312
+% \abstract.............317-320
+% \begincontents........323-325
+% \endcontents..............326
+% \contentsname.............322
+% \contents.............327-330
+% \beginsummary.........
+% \endsummary...............
+% \summary..............
+% \beginquote...........331-332
+% \endquote.............333-334
+% \quote................335-338
+%Centering texts
+% \begindisplaycenterline
+% \enddisplaycenterline
+% \displaycenterline
+% \begincenter
+% \endcenter
+% \center
+% \begincenterblock
+% \endcenterblock
+% \begincenter..........339-342
+% \endcenter................343
+% \center...............344-347
+%
+% \bitem....................351
+% \itemno...................352
+% \nitem................353-359
+% \aitem................360-366
+% \Aitem................367-373
+% \endlist..................374
+% \example..............376-378
+% \endintermezzo........379-380
+% \begindemo............401-403
+% <escape char>yields...405-408
+% \enddemo..................410
+%Parameterization ToC setting
+% \pagenorepresentation.501-502
+%Built on manmac
+% \fbox.................504-505
+%Defaults
+% \overfullrule=0pt.........507
+%
+%History of changes
+%Jan 95 \xyz and \partlogo to tools.dat
+% \pagenorepresentation added
+%July 1994 Boxes for keywords, abstract,
+% and contents added.
+%March 1994 Set up
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%Additions%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%math extras%
+%From Math into BLUes the mods
+%-- \centering into \centeringp
+% in order not to
+% conflict with LaTeX
+%-- \eqalign has gotten a repetitive
+% template to allow for more
+% than one alignment point.
+%-- arrows for commutative diagrams
+%-- Knuth's typographer's half
+%-- prime for accenting summation symbols
+%-- Poor man's symbols
+% blackboard, grtlss, ext tensor prod.
+\newskip\centeringp%plain's
+\centeringp=0pt plus1000pt minus1000pt
+\def\eqalign#1{\null\,\vcenter{\openup
+ \jot\m@th\ialign{\strut\hfil
+ $\displaystyle {##}$&&%mod cgl
+ $\displaystyle {{}##}$\hfil\crcr
+ #1\crcr }}\,}
+\def\eqalignno#1{\displ@y
+ \tabskip\centeringp
+ \halign to\displaywidth{\hfil
+ $\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil
+ \tabskip\centeringp &\llap{$\@lign##$}%
+ \tabskip\z@skip\crcr
+ #1\crcr}}
+\def\leqalignno#1{\displ@y
+ \tabskip\centeringp
+ \halign to\displaywidth {\hfil
+ $\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil
+ \tabskip\centeringp&\kern-\displaywidth
+ \rlap{$\@lign ##$}\tabskip\displaywidth
+ \crcr #1\crcr}}
+%
+\def\fracdek#1/#2{\leavevmode\kern.1em
+ \raise.50ex\hbox{\the\scriptfont0 #1}
+ \kern-.1em/\kern-.15em\lower.25ex
+ \hbox{\the\scriptfont0 #2}}
+%
+\def\lllongrightarrow{\relbar\joinrel%
+ \relbar\joinrel\relbar\joinrel%
+ \relbar\joinrel\rightarrow}
+\def\llongrightarrow{\relbar\joinrel%
+ \relbar\joinrel\rightarrow}
+\def\adaptedbaselines{%
+ \baselineskip20pt
+ \lineskip3pt
+ \lineskiplimit3pt}
+\def\mapright#1{\smash{\mathop{
+ \llongrightarrow}\limits^{#1}}}
+\def\lmapright#1{\smash{\mathop{
+ \lllongrightarrow}\limits^{#1}}}
+\def\mapdown#1{\Big\downarrow
+ \rlap{$\vcenter{\hbox{$#1$}}$}}
+\def\mapup#1{\Big\uparrow
+ \rlap{$\vcenter{\hbox{$#1$}}$}}
+%
+\def\acclap#1{{}^{\rlap{$\scriptstyle
+ #1$}}}
+%
+\def\cfsymbol{\vbox{\hbox to \wd0{\hss
+ \vrule height1.5\ht0}
+ \hrule
+ \hbox to \wd0{\vrule depth1.5\ht0
+ \hss}}}
+%Space saving variant continued fraction
+\def\cf#1#2{\setbox0=\hbox{$#1\,\over
+ \,#2$}\vcenter{\cfsymbol}\kern-\wd0
+ {#1\atop#2}}
+%
+\def\IN{{\rm I\kern-.5ex N}}
+\def\Z{{\rm Z\kern-.9ex Z}}
+\def\Q{{\rm\kern.2ex\vrule
+ height1.5ex depth-.1ex
+ width.4pt\kern-.7ex Q}}
+\def\R{{\rm I\kern-.5ex R}}
+\def\C{{\rm\kern.3ex\vrule
+ height1.5ex depth-.05ex
+ width.4pt\kern-.7ex C}}
+\def\gtrless{\mathrel{\vcenter{
+ \offinterlineskip\hbox{${>}$}%
+ \kern-.2ex\hbox{${<}$} } }}
+\def\boxit#1{\vbox{\hrule\hbox{% <--!!
+ \vrule#1\vrule}\hrule}}
+\def\boxtimes{\mathbin{\boxit
+ {$\times$}}}
+%end%%%%%%%%%%%%%%%%%%%%%%%%%math extras%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%icons%
+%From icons via LaTeX's fonts.
+%Here use is made of gkpmac's picture
+%environment.
+\def\icmat#1#2{%ICon MATrix(rectangular)
+%#1 is ht of icon matrix, e.g. 4
+%#2 is wd of icon matrix, e.g. 2
+\vbox{\hrule
+ \hbox to#2\unitlength{\vrule
+ height#1\unitlength\hfil\vrule}%
+ \hrule}%
+}%end icmat
+%
+\def\icurt#1#2{%IConUpperRightTriangle
+%#1 is ht of icon matrix, with UT
+%the upper triangular part, e.g. 4
+%#2 is wd of icon (upper triangular)
+%matrix, e.g. 2
+\vbox to #1\unitlength{\hrule
+ \hbox{\gkpbeginpicture(#2,#2)(0,0)%
+ \put(0,#2){\line(1,-1){#2}}%
+ \gkpendpicture\vrule}%
+ \vss}%
+}%end icurt
+%
+\def\squineicurt#1#2{%IConUpperRightTriangle
+%#1 is ht of icon matrix, with UT
+%the upper triangular part, e.g. 4
+%#2 is wd of icon (upper triangular)
+%matrix, e.g. 2
+%For small diaglines
+\csname newcount\endcsname\half
+\half#2 \divide\half 2
+\vbox to #1\unitlength{\hrule
+ \hbox{\gkpbeginpicture(#2,#2)(0,0)%
+ \put(0,0){\squine(0,\the\half,#2,#2,%
+ \the\half,0)}%
+ \gkpendpicture\vrule}%
+ \vss}%
+}%end icurt
+\def\icllt#1#2{%IConLowerLeftTriangle
+%#1 is ht of icon matrix, with LT
+%the lower triangular part, e.g. 4
+%#2 is wd of icon (lower triangular)
+%matrix, e.g. 2
+\vbox to #1\unitlength{\vss
+ \hbox{\vrule
+ \gkpbeginpicture(#2,#1)(0,0)%
+ \put(0,#2){\line(1,-1){#2}}%
+ \gkpendpicture}%
+ \hrule}%
+}%end icllt
+%
+\def\icuh#1#2#3{%IConUpperHessenberg
+%#1 is size of icon matrix, with UH
+% the upper Hessenberg part, e.g. 4
+%#2 is wd of icon (upper Hesenberg)
+% matrix, e.g. 1
+%#3 is size Lower Left triangular part,
+% #1-#2 (for simplicity the latter is added,
+% could have been calculated, perhaps some
+% inconsistency test could be incorporated)
+\vbox{\offinterlineskip
+ \hrule
+ \hbox to#1\unitlength{\vrule height%
+ #2\unitlength depth0pt\relax
+ \hfil\vrule}%
+ \hbox to#1\unitlength
+ {\gkpbeginpicture(#3,#3)(0,0)%
+ \put(0,#3){\line(1,-1){#3}}%
+ \gkpendpicture\hfil\vrule}%
+ \hbox to#1\unitlength{\hfil\vrule
+ width#2\unitlength height.2pt\relax}%
+ }%
+}%end icuh
+%Example of use
+%\input blue.tex
+%\beginscript
+%\unitlength=1ex
+%$$\icmat44\kern\unitlength\icllt44=
+% \icllt44\icuh413\qquad AL=LH$$
+%$$\icmat63=\icmat63\kern\unitlength
+% \icurt63\qquad A=QR$$
+%\endscript
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%icons%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%btable%
+%Table Diversions cgl@rc.service.rug.nl
+%EuroTeX '92 proceedings, MAPS92.2.
+%The article discusses typsetting tables
+%via plain, surveys related work,
+%introduces the file btable.tex, and
+%provides a discipline for typesetting
+%cell-blocks.
+%;numvrb
+\newbox\btablebox
+\newtoks\thisbtable\newtoks\everybtable
+\newtoks\prebtable\newtoks\postbtable
+%Cell vertical size,
+%row height and depth (separation implicit),
+\newdimen\cvsize
+\newdimen\tsht \newdimen\tsdp
+\newdimen\tvsize\newdimen\thsize
+%Parameter setting macros: Rules
+\def\hruled{\def\lineglue{\hrulefill}
+ \def\colsep{}\def\rowsep{\hrule}
+ \let\rowstbsep=\colsep
+ \let\headersep=\rowsep}
+\def\vruled{\def\lineglue{\hfil}
+ \def\colsep{\vrule}\def\rowsep{}
+ \let\rowstbsep=\colsep
+ \let\headersep=\hrule}
+\def\ruled{\def\lineglue{\hrulefill}
+ \def\colsep{\vrule}\def\rowsep{\hrule}
+ \let\rowstbsep=\colsep
+ \let\headersep=\rowsep}
+\def\nonruled{\def\lineglue{\hfil}
+ \def\colsep{}\def\rowsep{}
+ \def\rowstbsep{\vrule}
+ \def\headersep{\hrule}}
+\def\dotruled{\def\lineglue{\dotfill}
+ \def\rowsep{\hbox to\thsize{\dotfill}}
+ \def\colsep{\lower1.5\tsdp\vbox to
+ \cvsize{\leaders\hbox to0pt{\vrule
+ height2pt depth2pt width0pt\hss.\hss}
+ \vfil}}
+ \let\rowstbsep=\colsep
+ \let\headersep=\rowsep}
+%Parameter setting macros:
+% Controling positioning
+\def\ctr{\def\lft{\hfil}\def\rgt{\hfil}}
+%Centered
+\def\fll{\def\lft{} \def\rgt{\hfil}}
+%Flushed left
+\def\flr{\def\lft{\hfil}\def\rgt{}}
+%Flushed right
+%Parameter setting macros: Framing
+\def\framed{\let\frameit=\boxit}
+\def\nonframed{\def\frameit##1{##1}}
+\def\dotframed{\let\frameit=\dotboxit}
+%;vrblin=100
+\def\beginbtable{\vbox\bgroup
+\ifx\empty\rowstblst \let\rsl=\rowstblst
+\else\ea\def\ea\rsl\ea{\rowstblst{}}%Append with sentinel
+\fi\ifx\empty\template\ifx\empty\rsl
+ \def\template{\colsepsurround
+ \lft####\rgt&&\lft####\rgt\cr}
+ \else\def\template{\colsepsurround
+ ####\hfil&&\lft####\rgt\cr}\fi
+\fi
+\def\tstrut{\vrule height\tsht
+ depth\tsdp width0pt}
+%Logical mark up of column and
+%row separators, via use of
+\def\cs{&\colsepsurround\colsep
+ \colsepsurround&}
+\def\prs{&\colsepsurround\lineglue&}
+\def\srp{&\lineglue\colsepsurround&}
+\def\rs{\colsepsurround\tstrut\cr
+ \ifx\empty\rowsep
+ \else\noalign{\rowsep}\fi
+ \ifx\empty\rsl
+ \else\ea\nxtrs\fi}
+\def\grs{\colsepsurround\tstrut\cr\ghostrow}
+\def\ghostrow{\rss\prs\logms2\lineglue\cr\nxtrs}
+\def\rss{&\colsepsurround\rowstbsep
+ \colsepsurround&}
+\def\hs{\colsepsurround\tstrut\cr
+ \ifx\empty\headersep
+ \else\noalign{\headersep}\fi
+ \ifx\empty\rsl\else\ea\nxtrs\fi}
+\the\everybtable\relax
+\the\thisbtable\relax
+\cellsize
+\tsht=.775\cvsize\tsdp=.225\cvsize
+\setbox\btablebox=\vbox\bgroup
+ \tabskip=0pt\relax\offinterlineskip
+ \halign\bgroup
+ \span\template\ifx\empty\first
+ \ifx\empty\rsl
+ \else\ifx\empty\header
+ \else\ea\rss\fi
+ \fi\else\first\ea\rss\fi
+ \ifx\empty\header
+ \ifx\empty\first
+ \ifx\empty\rsl\else
+ \ea\nxtrs\fi\else\ea\hs\fi
+ \else\header\tstrut\ea\hs\fi}%
+%end \beginbtable
+%;vrblin=200
+\def\endbtable{\colsepsurround
+ \tstrut\crcr\egroup\egroup
+ %end setbox
+ \global\thsize=\wd\btablebox
+ \global\tvsize=\ht\btablebox
+ \global\advance\tvsize by\dp\btablebox
+ \the\prebtable
+ \ifx\btablecaption\empty
+ \else\hbox to\thsize{\strut\hfil
+ \btablecaption\hss}\captionsep\fi
+ \frameit{\copy\btablebox}
+ \ifx\footer\empty
+ \else\footersep\hbox to\thsize{\strut
+ \footer\hss}\fi
+ \egroup\the\postbtable
+ \thisbtable={}}%
+%end \endbtable
+%
+\def\btable#1{\beginbtable#1\endbtable}
+%Defaults %;vrblin=300
+\def\cellsize{\cvsize=4ex
+ \tsht=.775\cvsize\tsdp=.225\cvsize}
+%\cellsize
+\def\colsepsurround{\kern.5em}
+\def\btablecaption{}
+\def\first{}
+\def\header{}
+\def\rowstblst{}
+\def\footer{}
+\def\captionsep{\medskip}
+\def\headersep{\hrule}
+\def\footersep{\smallskip}
+\def\rowstbsep{\vrule}
+\def\template{}
+\ctr
+\nonruled
+\nonframed
+%end Defaults
+%Auxiliaries %;vrblin=350
+\def\boxit#1{\vbox{\hrule\hbox{\vrule
+ \vbox{#1}\vrule}\hrule}}
+\def\dotboxit#1{\vbox{\offinterlineskip
+ \hbox to\thsize{\dotfill}%
+ \hbox{\lower\dp\btablebox\vbox to\tvsize{%
+ \xleaders\hbox to0pt{\hss\vrule
+ height1.5pt depth1.5pt width0pt.\hss
+ }\vfil}%
+ \vbox{#1}\lower\dp\btablebox\vbox to\tvsize{%
+ \xleaders\hbox to0pt{\hss\vrule
+ height1.5pt depth1.5pt width0pt.\hss
+ }\vfil}}%
+ \hbox to\thsize{\dotfill}}}
+%And to account for logical columns with
+%\logms% logical multispan
+\def\spicspan{\span\omit}
+\def\logms#1{\omit\mscount=#1\multiply
+ \mscount by2 \advance\mscount by-1
+ \loop\ifnum\mscount>1
+ \spicspan\advance\mscount by-1
+ \repeat}
+%To process FIFO
+\def\fifo#1{\ifx\ofif#1\ofif\fi
+ \process{#1}\fifo}
+\def\ofif#1\fifo{\fi}
+%To handle row stub list
+\def\nxtrs{\ifx\empty\rsl
+ \else\def\nxtel{\ea\nrs\rsl\srn}%
+ \ea\nxtel\fi}%next Row Stub
+\def\nrs#1#2\srn{\gdef\rsl{#2}#1\rss}
+%\endinput %btable
+%;nonum
+%Contents btable.tex
+%Newbox
+% \btablebox..................1
+%Newtoks
+% \thisbtable, \everybtable...2
+% \prebtable, \postbtable.....3
+%Parameter setting: rules
+% \hruled.................10-13
+% \vruled.................14-17
+% \ruled..................18-21
+% \nonruled...............22-25
+% \dotruled...............26-33
+%Parameter setting: positioning
+% \ctr.......................36
+% \fll.......................38
+% \flr.......................40
+%Parameter setting: framing
+% \framed....................43
+% \nonframed.................44
+% \dotframed.................45
+%User macro
+% \beginbtable..........101-148
+% \endbtable............201-217
+% \btable...................219
+%Defaults
+% \cellsize.............301-303
+% \colsepsurround...........304
+% \btablecaption............305
+% \first....................306
+% \header...................307
+% \rowstblst................308
+% \footer...................309
+% \captionsep...............310
+% \headersep................312
+% \footersep................312
+% \rowstbsep................314
+% \template.................314
+% \ctr......................320
+% \nonruled.................321
+% \nonframed................322
+%Auxiliaries
+% \boxit................351-352
+% \dotboxit.............353-363
+% \spicspan.................366
+% \logms................367-371
+% \fifo.................373-374
+% \ofif.....................375
+% \nxtrs................377-379
+% \nrs......................380
+%
+%History of changes
+%Version
+%December 1994
+%\rowstblst (and \rsl):
+% no longer does last element of list
+% need extra braces.
+%\postbtable is token variable
+%to guide user positioning.
+%\data omitted in the macro.
+%Formatting of footer made symmetrical
+%with caption.
+%\dotboxit corrected such that
+%vertical dotted lines are symmetrical
+%July 1994
+% \cellsize is invoked in
+% \beginbtable.
+% Token vars for \prebtable
+% \postbtable.
+%June 1994
+% \beginbtable...\endbtable
+% two-part macro
+% \btable minimal variant
+% \preinsert, \postinsert changed
+% into \prebtable, \postbtable
+% toks vars: \everybtable,
+% \thisbtable
+%Version 1.1 \btablecaption as caption
+% (to prevent name clashes)
+% \def\cellsize{\cvsize=
+% et cetera} to be used
+% as default
+% and after font change.
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%btable%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vrb%
+%vrb.tex
+%Author: C.G. van der Laan
+% Hunzeweg 57, 9893PB
+% Garnwerd The Netherlands
+% 0594621525, cgl@rc.service.rug.nl.
+%Purpose: Verbatim macros via plain,
+% to be used with AnyTeX.
+% ;numvrb
+%User toks variables
+\newtoks\thisverbatim
+\newtoks\everyverbatim
+\newtoks\preverbatim
+\newtoks\postverbatim
+%
+%User customization
+\preverbatim{\medskip}
+\postverbatim{\smallbreak}
+% ;vrblin100
+%User `options': \numvrb
+\newcount\vrblin
+\def\numvrb{\vrblin0
+ \everypar{\advance\vrblin1
+ \llap{\sevenrm\the\vrblin\quad}}}
+\def\nonum{\everypar={}}
+% : \emc, \unmc
+\def\makeescape#1{\catcode`#1=0 }
+\def\makeactive#1{\catcode`#1=13 }
+{\makeactive\<
+ \gdef\emc{\makeactive\<%
+ \def<##1>{$\langle##1\rangle$}}}
+\def\unmc{\catcode`\<=12 }%;vrblin200
+%User macro
+\def\beginverbatim{\begingroup
+ \the\preverbatim\tt\setupverbatim
+ \the\everyverbatim\relax
+ \the\thisverbatim\relax
+ \verbatimgobble}
+%
+\def\endverbatim{\the\postverbatim
+ \endgroup\global\thisverbatim={}}
+%
+\def\setupverbatim{%\makeactive\`%
+ \let\!=!\makeescape\!%Knuth&Levy
+ \def\par{\leavevmode\endgraf}%TB381
+ \parskip0pt
+ \obeylines\uncatcodespecials
+ \obeyspaces}
+%
+{\obeyspaces\global\let =\ \catcode`\^=7
+ \obeylines\gdef\verbatimgobble#1^^M{}%
+%\makeactive\` \gdef`{\relax\lq}%TB381
+}%
+\def\uncatcodespecials{\def\do##1{%
+ \catcode`##1=12 }\dospecials}
+%
+\def\math{\bgroup$\catcode`\_=8\relax
+ \catcode`\^=7\relax}
+\def\endmath{$\egroup}
+%
+\def\verbatim#{\beginverbatim\bgroup
+ \aftergroup\endverbatim
+ \afterassignment\ignorespaces
+ \let\dummy=}
+% ;vrblin250
+%Minimal | tag for inline verbatim
+\def\vrt{{\tt\char`\|}}\makeactive\|
+\def|{\bgroup\tt\setupverbatim
+ \the\everyverbatim\relax
+ \the\thisverbatim\relax
+ \def|{\egroup\thisverbatim{}}}
+%;\vrblin300
+%centering verbatims
+\def\boxlines{\obeyspaces\fifol}
+%\gdef\fifol#1^^M{\ifx\lofif#1\lofif\fi
+% \processl{#1}\fifol}
+\def\begincenterverbatim{$$%
+ \def\processl##1{\hbox{##1}}%
+ \def\lofif##1\fifol{\fi\egroup
+ \egroup$$\thisverbatim{}}
+ \let\endcenterverbatim\lofif
+ \bgroup\tt\setupcopy
+ \let\!=!\catcode`\!=0
+ \the\everyverbatim\the\thisverbatim
+ \vbox\bgroup\boxlines}
+%
+{\obeylines\gdef\fileverbatim#1{%
+ \thisverbatim{\input#1}\beginverbatim
+ \endverbatim
+}}
+\def\bluefileverbatim#1\par{\fileverbatim{#1}}
+%Default
+\everyverbatim{\baselineskip12pt
+ plus2ptminus1pt
+ \lineskip1ptplus1ptminus1pt}
+%\endinput
+% ;nonum
+%Contents vrb.tex cgl@rc.service.rug.nl
+%Newtoks
+% \thisverbatim.................2
+% \everyverbatim................3
+% \preverbatim..................4
+% \postverbatim.................5
+%Customization
+% \preverbatim..................8
+% \postverbatim.................9
+%Options
+% \numvrb.................103-105
+% \vrblin.....................104
+% \nonum......................106
+% \makeescape.................108
+% \makeactive.................109
+% \emc....................111-112
+% \unmc.......................113
+% <#1>........................112
+%User macro
+% \beginverbatim..........202-206
+% <esc char>endverbatim...208-209
+% \verbatim...............228-231
+% \setupverbatim..........211-215
+% \verbatimgobble.............218
+% `...........................219
+% \uncatcodespecials..........221
+% <escape char>math.......224-225
+% <escape char>endmath....... 226
+% \begincenterverbatim....305-313
+%Inline verbatim
+% \vrt........................252
+% vertical bar symbol...... ..253
+%Files
+% \bluefileverbatim...........
+%
+%History of changes
+%March 1996 \bluefileverbatim added
+%July 1994 Version 2
+% \pre- and \postverbatim
+% changed into token vars.
+% Added
+% \unmc, unable metacode
+% \verbatim minimal tag
+% <escape char>math
+% <escape char>endmath
+%Febr 1994 Release Version 1.0
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vrb%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%bibliography%
+%From BLUe's Bibliography%;numvrb
+%\ls<name> template
+\newcount\bcnt
+\def\lsstraight{\let\ls\nitem}
+%
+%\ls a la AMS
+%
+\newcount\suffixcnt
+\def\lsams{\frenchspacing
+ \let\lstnme\relax \let\lstyear\relax
+ %
+ \def\ls##1{\ea\bibitem##1}
+ %
+ \def\bibitem##1(##2){%
+ \def\authornme{##1}%
+ \def\authoryear{##2}%
+ \ifx\lstnme\authornme
+ \def\authornme{------}%
+ \ifx\lstyear\authoryear
+ \global\advance\suffixcnt1
+ \def\authoryear{--}%
+ \else\let\lstyear\authoryear\suffixcnt0
+ \fi
+ \else\let\lstnme\authornme
+ \let\lstyear\authoryear\suffixcnt0
+ \fi\nitem\authornme$\,$%
+ (\authoryear\suffix)}%end \bibitem
+%
+\def\suffix{\ifcase\suffixcnt\or a\or b\or
+ c\or d\or e\or f\or g\or h\or i\or j\or
+ k\or l\or m\or n\or o\or p\or q\or r\or
+ s\or t\or u\or v\or w\or x\or y\or z\fi}
+} %;vrblin100
+%Loading
+%Load selected entries
+\def\gobble#1{}
+\def\loadselectivefrom#1{%#1 lit etc.
+ \def\lst##1{\ifx##1\undefined\ea\gobble
+ \else \ea\gdef\ea##1\fi}
+ \input #1.dat \relax%e.g. lit.dat
+ } %;vrblin200
+\newif\ifstore \storetrue
+\newtoks\thisreferences
+\newtoks\referencesname
+\newtoks\prereferences
+\newtoks\postreferences
+\newtoks\referencesfile
+\newbox\referencesbox
+\referencesfile{lit}
+%\referencesname{References}
+\def\references#1{\beginreferences#1%
+ \endreferences}
+\def\bluereferences#1\par
+ {\beginreferences#1\endreferences}
+\def\loadreferences{\loadselectivefrom
+ {\the\referencesfile}}
+\def\beginreferences#1\endreferences{%
+ \bgroup\def\process##1{\ifx\undefined##1
+ \global\let##1\referenceserror\else
+ \message{***\tt\string##1
+ already loaded.***}
+ \fi\namelst\ea{\the\namelst\lst##1}}%
+ \fifo#1\ofif
+ \if]#1]\else\ea\loadreferences\fi
+ %formatting
+ \ifstore\global\setbox\referencesbox=
+ \vbox\bgroup\fi\prenum{}\postnum{}
+ \lsams%Default ls
+ \the\thisreferences
+ \def\lst##1{\ls{##1}
+ \xdef##1{\the\itemno}}
+ \the\namelst\endreferences}
+%
+\def\referenceserror{Reference not in
+ database (Sorry.)\loaderror{Reference}}
+%
+\def\endreferences{\smallbreak\egroup
+ \ifstore\egroup\fi
+ \thisreferences{}}
+%
+\def\pasteupreferences{%
+ \the\prereferences
+ \unvbox\referencesbox
+ \the\postreferences}
+%
+\prereferences{\head{\the
+ \referencesname}}
+%\postreferences{}
+%;vrblin250
+%Double loading is not prevented
+%instead a message is provided.
+\def\beginpictures#1\endpictures{%
+ \def\process##1{\ifx\undefined##1
+ \gdef##1{Picture {\tt\string##1} not
+ in database, Sorry.
+ \loaderror{Picture}}%
+ \else \message{***\string##1
+ already loaded.***}%
+ \fi}%
+ \fifo#1\ofif
+ \loadselectivefrom{\the\picturesfile}
+ \commonforpic}
+%
+%\def\endpictures{\egroup}
+%
+\def\pictures#1{\beginpictures#1%
+ \endpictures}
+\def\bluepictures#1\par
+ {\beginpictures#1\endpictures}
+\def\loadallpictures{\input\the
+ \picturesfile.dat\relax\commonforpic}
+%
+\def\loaderror#1{\write16{#1 not in
+ database}}
+%\endinput %;nonum
+%Contents bibliography
+% cgl@rc.service.rug.nl
+%Newcount
+% \bcnt.........................2
+% \suffixcnt....................8
+%Newif
+% \ifstore....................201
+%Newtoks
+% \thisreferences.............202
+% \referencesname........203, 206
+% \prereferences.........204, 234
+% \postreferences.............205
+%Newbox
+% \referencesbox..............206
+%Initializations
+% \prereferences..........231-232
+% \postreferences.............233
+%\ls customization
+% \lsstraight.................3-6
+% \lsams.....................9-34
+% \suffix...................30-33
+%loading
+% \gobble.....................102
+% \loadselectivefrom......104-109
+%User level
+% \references.............208-209
+% \beginreferences........210-225
+% \endreferences..........226-228
+% \pasteupreferences......230-233
+% \beginpictures..........251-259
+% \endpictures................260
+% \pictures...............261-262
+% \loadallpictures........263-265
+% \loaderror..............266-267
+%History of changes
+%July 1994 Information supplied before
+% \beginscript, past up later.
+% Separate loading of pictures.
+%June 1994 Simpler user interface
+% \beginreferences
+% \<name_1> ... \<name_n>
+% \endreferences
+%Created May 1994
+%end%%%%%%%%%%%%%%%%%%%%%%%%bibliography%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%Cross-Refs%
+%From BLUe's Cross-Referencing
+%cgl@rc.service.rug.nl %;numvrb
+\newif\ifadvance \advancetrue
+\newcount\frmcnt
+\newtoks\prenum\newtoks\postnum
+%Default prenum and postnum
+\prenum{(}\postnum{)}
+%Automatic numbering
+\def\frmnum{\ifadvance\global\advance
+ \frmcnt1 \fi
+ \the\prenum\the\frmcnt\the\postnum}
+%Automatic numbering and attaching a name
+\def\ref{\frmnum\create}
+%\def\create#1{\ifx#1$$\else
+% \xdef#1{\the\frmcnt}\fi}
+%The version, which handles also displaylines
+\def\create#1{\ifx#1$$\else
+ \ifx#1\hfil\hfil\else
+ \xdef#1{\the\prenum\the\frmcnt
+ \the\postnum}\fi\fi}
+%Citation
+\newif\ifproof \prooftrue
+\def\crsref#1{\ifx#1\undefined{\ifproof
+ \leavevmode\vadjust{\kern-1ex
+ \rightline{\vbox to0pt{\vss
+ \rlap{FR: \tt\string#1}}}}\fi}
+ \else#1\fi}
+%;nonum
+%Contents Cross-Referencing
+% cgl@rc.service.rug.nl
+%Newifs, newcounts
+% \ifadvance, \ifproof..........1, 18
+% \frmcnt...........................2
+%Newtoks
+% \prenum, \postnum.................3
+%Context
+% \prenum, \postnum.................4
+%Automatic numbering, referencing
+% \frmnum.........................7-9
+% \ref.............................11
+% \create.......................15-16
+%Cross referencing
+% \crsref.......................19-23
+%
+%History of changes
+%Jan 95 \prenum and postnum values are
+% stored together with the number
+% by \create
+%June 94 Designed.
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%cross-ref%;newpage
+%
+%
+%
+%begin%%%%%%%%%%%%%%%%%%%%%%%%%%%%gkppic%
+%From gkpmac (line diagrams)
+% `Pictures (a subset of \LaTeX's
+% conventions)'
+%These macros have been used for typesetting
+%`Concrete Mathematics,' among others.
+% cgl@rc.service.rug.nl ;numvrb
+%\catcode`@=11 % borrow the private macros
+% % of PLAIN (with care)
+\newskip\hsssglue
+\hsssglue=0pt plus 1fill minus 1fill
+\def\hsss{\hskip\hsssglue}
+
+\newdimen\unitlength
+\newdimen\linethickness
+\newdimen\@picheight \newdimen\@xdim
+\newdimen\@ydim \newdimen\@len \newdimen\@save
+\newcount\@multicount \newcount\@xarg
+\newcount\@yarg\newbox\@picbox \newbox\@mpbox
+
+\font\tenln=line10 \font\tenlnw=linew10
+\font\tencirc=lcircle10
+\font\tencircw=lcirclew10
+\font\smallln=linew10 scaled 483 % magstep-4
+
+\def\thinlines{\let\linefont=\tenln
+ \let\circlefont=\tencirc
+ \linethickness=\fontdimen8\linefont}
+\def\thicklines{\let\linefont=\tenlnw
+ \let\circlefont=\tencircw
+ \linethickness=\fontdimen8\linefont}
+\thinlines
+
+\def\gkpbeginpicture(#1,#2)(#3,#4){\begingroup
+\@picheight=#2\unitlength \let\line=\@line
+ \setbox\@picbox=\hbox to#1\unitlength
+ \bgroup\kern-#3\unitlength
+ \lower#4\unitlength\hbox\bgroup
+ \ignorespaces}
+\def\gkpendpicture{\egroup\hss\egroup
+ \ht\@picbox=\@picheight \dp\@picbox=\z@
+ \leavevmode\box\@picbox\endgroup}
+
+\def\put(#1,#2)#3{\raise#2\unitlength
+ \rlap{\kern#1\unitlength #3}\ignorespaces}
+
+\def\multiput(#1,#2)(#3,#4)#5#6{\@multicount
+ =#5\@xdim=#1\unitlength \@ydim=#2\unitlength
+\setbox\@mpbox=\hbox{#6}%
+ \loop\ifnum\@multicount>0
+ \raise\@ydim\rlap{\kern\@xdim
+ \unhcopy\@mpbox}%
+ \advance\@xdim#3\unitlength
+ \advance\@ydim#4\unitlength
+ \advance\@multicount\m@ne
+ \repeat\ignorespaces}
+
+%makebox is replaced because its reference
+%point does not coincide with LaTeX's
+%\def\makebox(#1,#2)#3{\setbox\@picbox=
+% \hbox to#1\unitlength{\hss#3\hss}%
+% \advance\@ydim-\dp\@picbox
+% \ht\@picbox=#2\unitlength
+% \dp\@picbox=\z@
+% \leavevmode\lower.5\@ydim\box\@picbox}
+\def\makebox(#1,#2)#3{%
+ \hbox to#1\unitlength{\hss
+ \vbox to#2\unitlength{\vss
+ \hbox{#3}\vss}\hss}}
+%LaTeX's framebox is added
+\def\framebox(#1,#2)#3{\setbox0=
+ \hbox to#1\unitlength{\hss
+ \vbox to#2\unitlength{\vss
+ \hbox{#3}\vss}\hss}%
+ \makelightbox\kern-\wd0\box0}
+
+\newif\ifneg
+\def\@line(#1,#2)#3{\@xarg=#1 \@yarg=#2
+ \@len=#3\unitlength \leavevmode
+ \ifnum\@xarg<0 \reverseline \else
+ \negfalse \@ydim=\z@\fi
+ \ifnum\@xarg=0 \@vline
+ \else\ifnum\@yarg=0 \@hline
+ \else\@sline\fi\fi
+\ifneg\kern-\@len\else\@save=\@ydim\fi}
+\def\reverseline{\negtrue \kern-\@len
+ \@xarg=-\@xarg
+ \@ydim=\@len \multiply\@ydim\@yarg
+ \divide\@ydim\@xarg \@yarg=-\@yarg}
+
+\def\@hline{\vrule height.5\linethickness
+ depth.5\linethickness width\@len}
+\def\@vline{\kern-.5\linethickness\vrule
+ width\linethickness
+ \ifnum\@yarg<0 height\z@ depth\else
+ depth\z@ height\fi\@len
+ \kern-.5\linethickness}
+
+\def\@sline{\setbox\@picbox=\hbox{\linefont
+ \count@=\@xarg \multiply\count@ 8
+ \ifnum\@yarg>0 \advance\count@\@yarg
+ \advance\count@-9
+ \else \advance\count@-\@yarg
+ \advance\count@ 55 \fi
+ %\immediate\write0{count@=\the\count@}%
+ \char\count@}%
+ \ifnum\@yarg<0 \@picheight=-\ht\@picbox
+ \advance\@ydim\@picheight
+ \else \@picheight=\ht\@picbox \fi
+ \@xdim=\wd\@picbox \@save=\@ydim
+%\hbox to0pt{\hss$\bullet$\hss}%
+ \loop\ifdim\@xdim<\@len
+ \raise\@ydim\copy\@picbox
+ \advance\@xdim\wd\@picbox
+ \advance\@ydim\@picheight%\immediate
+ %\write0{x, y: \the\@xdim, \the\@ydim}%
+ \repeat
+ \advance\@xdim-\@len \kern-\@xdim
+ \multiply\@xdim\@yarg
+ \divide\@xdim\@xarg
+ \advance\@ydim-\@xdim
+%Mod cgl June 94
+ \ifdim\@len<\ht\@picbox
+ \kern\wd\@picbox\else
+ \raise\@ydim\box\@picbox\fi}
+
+\def\vector(#1,#2)#3{\@line(#1,#2){#3}%
+ \ifnum\@xarg=0 \@vvector
+ \else\ifnum\@yarg=0 \@hvector
+ \else\@svector\fi\fi}
+\def\@hvector{\ifneg\rlap{\linefont\char
+ 27}\else\smash{\llap{\linefont\char45}}\fi
+ } % we have to smash because of font bug
+\def\@vvector{\ifnum\@yarg<0
+ \raise-\@len\rlap{\linefont\char63}%
+ \else\setbox\@picbox=\rlap{\linefont
+ \char54}\advance\@len-\ht\@picbox
+ \raise\@len\box\@picbox\fi}
+
+\def\@svector{\setbox\@picbox=\hbox
+ to\z@{\linefont
+ \ifnum\@yarg<0 \count@=55 \@yarg=-\@yarg
+ \else\count@=-9 \fi
+ \ifneg\multiply\@xarg16 \multiply\@yarg2
+ \else\hss % \llap
+ \ifnum\@xarg>2 \multiply\@xarg9
+ \multiply\@yarg2
+ \advance\count@29
+ \else\ifnum\@yarg>2 \multiply\@xarg16
+ \multiply\@yarg9
+ \advance\count@-20
+ \else\multiply\@xarg24 \multiply\@yarg3
+ \fi\fi\fi
+ \advance\count@\@xarg
+ \advance\count@\@yarg \char\count@
+ \ifneg\hss\fi}% \rlap
+ \raise\@save\box\@picbox}
+
+\def\disk#1{\@len=#1\unitlength
+ \count@='160 \@diskcirc}
+\def\circle#1{\@len=#1\unitlength
+ \count@='140 \@diskcirc}
+\def\@diskcirc{\setbox\@picbox=
+ \hbox{\circlefont\char\count@}%
+ \@xdim=\wd\@picbox \leavevmode
+ \ifdim\@len>15.499\@xdim \@bigdc
+ \else \@smalldc\fi}
+\def\@bigdc{\ifnum\count@<'160 \@bigcirc
+ \else \@len=15\@xdim \@diskcirc\fi}
+\def\@smalldc{{\advance\@len-.5\@xdim
+ \loop\ifdim\@xdim<\@len
+ \advance\count@\@ne
+ \advance\@xdim\wd\@picbox
+ \repeat
+ \hbox{\circlefont\char\count@}}}
+\def\@bigcirc{{\circlefont\count@=15
+ \setbox\@picbox=\hbox{\char\count@
+ }\@xdim=\wd\@picbox
+ \ifdim\@len>2.5\@xdim \@len=2.5\@xdim\fi
+ \advance\@len-.125\wd\@picbox
+ \loop\ifdim\@xdim<\@len
+ \advance\count@4
+ \advance\@xdim.25\wd\@picbox
+ \repeat
+ \@ydim=.5\@xdim
+ \advance\@ydim.5\linethickness
+ \setbox\@picbox=\vbox{\hbox{\char
+ \count@\advance\count@-3\char\count@}%
+ \nointerlineskip
+ \hbox{\advance\count@\m@ne\char
+ \count@\advance\count@\m@ne
+ \char\count@}}%
+ \kern-\@ydim\lower\@ydim\box\@picbox}}
+
+\newif\ifovaltl \newif\ifovaltr
+\newif\ifovalbl \newif\ifovalbr
+\ovaltltrue \ovaltrtrue
+\ovalbltrue \ovalbrtrue
+\def\oval(#1,#2){\@xdim=#1\unitlength
+ \@ydim=#2\unitlength
+ {\circlefont
+ \setbox\@picbox=\hbox{\char0}
+ \ifdim\@xdim<\wd\@picbox
+ \@xdim=\wd\@picbox\fi
+ \ifdim\@ydim<\wd\@picbox
+ \@ydim=\wd\@picbox\fi
+ \@save=\@xdim
+ \ifdim\@ydim<\@save \@save=\@ydim \fi
+ \count@=39
+ \loop \setbox\@picbox=\hbox{\char
+ \count@}\ifdim\@save<\wd\@picbox
+ \advance\count@-4
+ \repeat
+ \setbox\strutbox=\hbox{\vrule height\ht
+ \@picbox depth\dp\@picbox width\z@
+ \kern\wd\@picbox}%
+ \@save=.5\wd\@picbox
+ \advance\@save-.5\linethickness
+ \setbox0=\hbox to\@xdim{\ifovaltl
+ \char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height
+ \ifovaltl\linethickness\else\z@\fi
+ \hfil
+ \leaders\hrule height\ifovaltr
+ \linethickness\else\z@\fi
+ \hfil\kern\@save
+ \ifovaltr\advance\count@-3
+ \char\count@\else\strut\fi
+ \kern-\wd\@picbox}%
+ \advance\count@\m@ne
+ \setbox2=\hbox to\@xdim{\ifovalbl
+ \char\count@\else\strut\fi
+ \kern-\@save\leaders\hrule height
+ \ifovalbl\linethickness\else\z@\fi
+ \hfil
+ \leaders\hrule height
+ \ifovalbr\linethickness\else
+ \z@\fi\hfil\kern\@save
+ \ifovalbr\advance\count@\m@ne
+ \char\count@\else\strut\fi
+ \kern-\wd\@picbox}%
+ \@save=\@ydim
+ \advance\@save-\wd\@picbox
+ \divide\@save 2
+ \setbox\@picbox=\vbox{\box0
+ \nointerlineskip
+ \hbox to\@xdim{\vrule height\@save
+ width\ifovaltl\linethickness
+ \else\z@\fi
+ \hfil\ifovaltr\vrule
+ width\linethickness
+ \kern-\linethickness\fi}%
+ \nointerlineskip
+ \hbox to\@xdim{\vrule height\@save
+ width\ifovalbl\linethickness
+ \else\z@\fi
+ \hfil\ifovalbr\vrule
+ width\linethickness
+ \kern-\linethickness\fi}%
+ \nointerlineskip\box2}%
+ \@save=.5\@ydim
+ \advance\@save.5\linethickness
+ \leavevmode
+ \kern-.5\@xdim
+ \kern-.5\linethickness
+ \lower\@save\box\@picbox}}
+
+\def\begincpic#1\endcpic{\vcenter{\hbox
+ {\beginpicture#1\endpicture}}}
+
+% Squines (quadratic splines)
+% example of use: to plot f(x) between
+% x0 and x1, you can say
+% \put(0,0){\squine(x0,xm,x1,y0,ym,y1)},
+% where y0=f(x0), y1=f(x1)
+% xm=(y0-y1+s1x1-s0x0)/(s1-s0),
+% ym=(s0(s1x1-y1)-s1(s0x0-y0))/(s1-s0),
+% s0=f'(x0), and s1=f'(x1).
+
+\newdimen\@xi \newdimen\@xii
+\newdimen\@xiii \newdimen\@xiv
+\newdimen\@xpt \newdimen\@xoldpt
+\newdimen\@yi \newdimen\@yii
+\newdimen\@yiii \newdimen\@yiv
+\newdimen\@ypt \newdimen\@yoldpt
+\def\squineelem{.}
+%\def\squineelem{\tencirc q}
+\def\squine(#1,#2,#3,#4,#5,#6){\setbox
+ \@picbox\hbox{\squineelem}%
+ \global\@xoldpt=#1\unitlength
+ \global\@yoldpt=#4\unitlength
+ \kern\@xoldpt
+ \@xi=\@xoldpt
+ \@xii=#2\unitlength
+ \@xiii=#3\unitlength
+ \@yi=\@yoldpt
+ \@yii=#5\unitlength
+ \@yiii=#6\unitlength
+ \squinerec
+ \@xpt=#3\unitlength
+ \@ypt=#6\unitlength
+ \@addpoint
+ \raise\@ypt\copy\@picbox}
+\newif\iffar
+\def\squinerec{\farfalse
+ \testnear\@xi\@xiii \testnear\@yi\@yiii
+ \iffar \decast \fi}
+\def\testnear#1#2{\@save=#1\advance
+ \@save-#2%
+ \ifdim\@save<\z@ \@save=-\@save\fi
+ \ifdim\@save>\p@ \fartrue \fi}
+\def\decast{\@xpt=\@xi
+ \advance\@xpt\@xii \divide\@xpt2
+ \advance\@xii\@xiii \divide\@xii2
+ \@xiv=\@xpt
+ \advance\@xiv\@xii
+ \divide\@xiv2
+ \@ypt=\@yi
+ \advance\@ypt\@yii
+ \divide\@ypt2
+ \advance\@yii\@yiii
+ \divide\@yii2
+ \@yiv=\@ypt
+ \advance\@yiv\@yii
+ \divide\@yiv2
+ \begingroup\@xii=\@xpt \@xiii=\@xiv
+ \@yii=\@ypt \@yiii=\@yiv
+ \squinerec\endgroup
+ \@xpt=\@xiv \@ypt=\@yiv \@addpoint
+ \@xi=\@xiv \@yi=\@yiv \squinerec}
+\def\@addpoint{%
+ %\message{(\the\@xpt,\the\@ypt)}%
+ \global\advance\@xoldpt-\@xpt
+ \wd\@picbox=-\@xoldpt
+ \raise\@yoldpt\copy\@picbox
+ \global\@xoldpt=\@xpt
+ \global\@yoldpt=\@ypt}
+%Additions%;vrblin399
+\newtoks\xdim \newtoks\ydim
+\newtoks\xoffset \newtoks\yoffset
+\newtoks\everypicture
+\newtoks\thispicture
+\xoffset{0}\yoffset{0}%defaults
+\def\beginpicture{\bgroup
+ \the\everypicture\the\thispicture
+ \gkpbeginpicture(\the\xdim,\the\ydim)%
+ (\the\xoffset,\the\yoffset)}
+\def\endpicture{\gkpendpicture\egroup
+ \global\thispicture{}}
+\def\rhombus(#1,#2)#3#4{%
+%#1,#2 ratio of horizontal/vertical size, <=6
+%#3 the size in unitlengths (half of total width)
+%#4 text to be put in the middle.
+%The centre is the reference point,
+%like \oval.
+\setbox0=\hbox{\line(#1,#2){#3}}%
+\setbox1=\hbox{\line(#1,-#2){#3}}%
+\hbox to0pt{\hss
+ \vbox to0pt{\offinterlineskip\vss
+ \copy0\copy1\vss}%
+ \vbox to0pt{\vss\copy1\copy0\vss}\hss}%
+ \vbox to0pt{\vss
+ \hbox to 0pt{\hss#4\hss}\vss}}
+%lu is pointing left up,
+%rl is pointing roght down
+\def\rdarrowhead{\hbox to 0pt{\hss
+ \vrule height.1ptdepth.1ptwidth.5ex
+ \vrule height.5ex\relax}}
+\def\luarrowhead{\hbox to 0pt{\vrule
+ depth.5ex\relax
+ \vrule height.1ptdepth.1ptwidth.5ex}}
+%\endinput %;nonum
+%
+%Contents Picture environm. named
+%gkppic. cgl@rc.service.rug.nl
+%Dimensions
+% \unitlength......................7
+% \linethickness...................8
+% \@picheight......................9
+% \@xdim, \@ydim................9-10
+% \@xarg, \@yarg, \@len........10-12
+% \@save..........................10
+% \@picbox........................12
+% \@mpbox.........................12
+% \@xi, \@xii, \@xiii, \@xiv.270-271
+% \@xpt, \@xoldpt................272
+% \@yi, \@yii, \@yiii, \@yiv.273-274
+% \@ypt, \@yoldpt................275
+%Newifs
+% \ifneg..........................70
+% \ifovaltl, \ifovaltr...........185
+% \ifovalbl, \ifovalbr...........186
+% \iffar.........................297
+%Fonts
+% \tenln, \tenlnw.................14
+% \tencirc, \tencircw..........15-16
+% \smallln........................17
+%Size switching
+% \thinlines, \thicklines......19-25
+%Picture environment
+% \gkpbeginpicture
+% (and \line in there)......27-32
+% \gkpendpicture...............33-35
+% \begincpic, \endcpic.......258-259
+% \put.........................37-38
+% \multiput....................40-49
+%Picture elements
+% \makebox.....................59-62
+% \framebox....................64-68
+% \@line.......................71-78
+% \reverseline.................79-82
+% \@hline......................84-85
+% \@vline......................86-90
+% \@sline.....................92-115
+% \vector....................117-120
+% \@hvector..................121-123
+% \@vvector..................124-128
+% \@svector..................130-147
+% \disk......................149-150
+% \circle....................151-152
+% \@diskcirc.................153-157
+% \@bigdc....................158-159
+% \@smalldc..................160-165
+% \@bigcirc..................166-183
+% \oval......................189-256
+%Curves
+% \squineelem................276-277
+% \squine....................278-293
+% \squinerec.................295-297
+% \testnear..................298-301
+% \decast....................302-320
+% \@addpoint.................321-327
+%Additions, compatible blue.tex conventions
+%Newtoks
+% \xdim, \ydim,
+% \xoffset, \yoffset.........400-401
+%\everypicture, \thispicture..402-403
+%\beginpicture................406-409
+%\endpicture..................410-411
+%\rhombus.....................412-424
+%\luarrowhead.................430-432
+%\rlarrowhead.................427-429
+%History of changes
+%Dec 94 \rhombus picture element added.
+% \luarrowhead, \rlarrowhead added.
+%Jun 94 Extensions added for compati-
+% bility with blue.tex.
+% \makebox adapted to LaTeX.
+% \framebox added.
+% \@sline adapted for case
+% \@len less then \ht\@picbox
+% (suppress line
+% element but kern conditionally.)
+% The `dot' element in \squine has
+% been parameterized and initialized
+% differently.
+%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gkppic%;newcol
+%
+%
+%
+%%%%%%%%% Amy's Diagonal line %%%%%%%%%%
+\newif\ifminuswd
+\newif\ifminusht
+\newbox\dotwide
+\newbox\dotbox
+\newdimen\savehtofdiagline
+\newdimen\htofdiagline
+\newdimen\wdofdiagline
+\newdimen\dotmove
+\newdimen\newsaveht
+\newdimen\savewdofdiagline
+%
+\def\diagline #1 #2 wd #3 ht{%
+%#1 dot, e.g. .
+%#2 width in units, eg 2ex
+%#3 height in units, eg 3ex
+%Amy Hendrickson, TB6#2, 1985
+%Comment cgl: Line thickness varies over
+%the direction, nearly verticals go wrong.
+\global\setbox\dotwide=\hbox{#1}%
+\global\setbox\dotbox=
+ \hbox to0pt{\hss#1\hss}%
+\global\wdofdiagline=#2\relax%
+\ifdim\wdofdiagline<1sp
+ \global\minuswdtrue
+ \global\advance\wdofdiagline
+ by-2\wdofdiagline
+\else\global\minuswdfalse%Robustness
+\fi% turn neg dim to positive
+\global\htofdiagline=#3\relax%
+\ifdim\htofdiagline<1sp
+ \global\advance\htofdiagline
+ by-2\htofdiagline\global\minushttrue
+\else\global\minushtfalse%Robustness
+\fi
+\global\dotmove=1pt%%
+\setbox1=\hbox{%
+ \global\divide\htofdiagline
+ by\the\wdofdiagline\relax}%
+\ifminuswd\rlap\bgroup%
+\else\bgroup\fi%
+\loop\ifdim\htofdiagline>.4pt%CGL mod
+\global\divide\htofdiagline by2%
+\global\divide\dotmove by2\repeat%
+\global\savehtofdiagline=\htofdiagline%
+\loop\ifdim\wdofdiagline>0pt%
+\hskip\ifminuswd-\dotmove%
+ \else\dotmove\fi%
+\ifminusht\lower\else\raise\fi%
+ \htofdiagline\copy\dotbox%
+\global\advance\htofdiagline
+ by\savehtofdiagline%
+\global\advance\wdofdiagline
+ by-\dotmove\repeat%
+\egroup%
+}% end diagonal line
+\def\amyicurt#1#2{%IConUpperRightTriangle
+%#1 is ht of icon matrix,
+%with UT the upper triangular part, e.g. 4ex
+%#2 is wd of icon (upper triangular)
+%matrix, e.g. 2ex
+\vbox to #1{\hrule
+ \hbox{\diagline . #2 wd -#2 ht\vrule}%
+ \vfil}%
+}%end amyicurt
+%endamy's diagline%%%%%%%%%%%%%%%%%%;nonum;newcol
+%
+%
+%
+\newtoks\picturesfile
+\picturesfile{pic}
+%;numvrb
+%begin%%%%%%Generalized \samplebox
+\def\point#1 #2 #3{\kern#1\unitlength
+ \raise#2\unitlength\hbox to0pt{\the\prefil
+ \the\prepoint#3\the\postfil
+ }\kern-#1\unitlength}
+%
+\def\gbox#1#2#3#4{%#1=ht,#2=dp,#3=wd
+%#4=text. Assumed: the dimen vars
+%\xshift, \yshift have been initialized.
+%position of begin of text.
+{\setbox0=\vtop{\vbox to#1{%
+ \hbox to#3{}\vss}\nointerlineskip
+ \vbox to#2{}}%
+%now \box0 has the desired
+%ht, dp, and wd
+ \hbox{\makelightbox\kern-#3%
+ \raise\yshift\hbox to#3{\kern\xshift
+ #4\hss}%
+ }}}%;nonum;newpage
+%
+%
+%Turtle graphics macros added, July 1995
+%cgl@rc.service.rug.nl, July 1995
+%\newdimen\unitlength
+\unitlength3ex %deault
+\newdimen\unitlengthx
+\newdimen\unitlengthy
+\newdimen\x \newdimen\auxdim
+\newdimen\leftx \newdimen\rightx
+\newdimen\y \newdimen\yy
+\newdimen\lefty \newdimen\righty
+%\newcount\i
+\newcount\k \newcount\kaux
+\newcount\loccnt \newcount\modsum
+\newcount\level \newcount\order
+\newcount\kmax
+\newcount\kk \newcount\ekk
+\newcount\dir
+\newbox\nel \newbox\nwl
+\newbox\hlfwndelm
+%\newdimen\linethickness \linethickness.2pt
+\newdimen\linesize
+\setbox\hlfwndelm=\hbox{\vrule
+ height\linethickness
+ width\linethickness}
+\def\xy#1{%Function: place #1 at x, y
+ \vbox to0pt{\kern-\y
+ \hbox to0pt{\kern\x#1\hss}\vss}}
+%
+\def\xytxt#1{%Function: place text #1 at x, y
+ \xy{\vbox to0pt{\vss
+ \hbox to0pt{\strut#1\hss}\kern0pt}}}
+%
+\def\N#1{\xy{\kern-.5\linethickness
+ \vbox to0pt{\vss
+ \hrule height#1\unitlength
+ width\linethickness}}%
+\advance\y#1\unitlength}
+%
+\def\S#1{\advance\y-#1\unitlength
+ {\N{#1}}}
+%
+\def\E#1{\xy{\vbox to0pt{\vss
+ \hrule width#1\unitlength
+ height\linethickness
+ depth0pt\vss
+}}\advance\x#1\unitlength}
+%
+\def\W#1{\advance\x-#1\unitlength
+ {\E{#1}}}
+%
+\def\NE#1{\auxdim#1\unitlength\correction
+\loop\advance\auxdim-\wd\hlfwndelm
+\ifdim\auxdim>-.5\wd\hlfwndelm
+ \xy{\vbox to0pt{\vss\copy\hlfwndelm}}%
+ \advance\x\wd\hlfwndelm
+ \advance\y\ht\hlfwndelm
+\repeat}
+%
+\def\NW#1{\auxdim#1\unitlength\correction
+\loop\advance\auxdim-\wd\hlfwndelm
+\ifdim\auxdim>-.5\wd\hlfwndelm
+ \advance\x-\wd\hlfwndelm
+ \xy{\vbox to0pt{\vss\copy\hlfwndelm}}%
+ \advance\y\ht\hlfwndelm
+\repeat}
+%
+\def\SW#1{\auxdim#1\unitlength\correction
+\loop\advance\auxdim-\wd\hlfwndelm
+\ifdim\auxdim>-.5\wd\hlfwndelm
+ \advance\x-\wd\hlfwndelm
+ \advance\y-\ht\hlfwndelm
+ \xy{\vbox to0pt{\vss\copy\hlfwndelm}}%
+\repeat}
+%
+\def\SE#1{\auxdim#1\unitlength\correction
+\loop\advance\auxdim-\wd\hlfwndelm
+\ifdim\auxdim>-.5\wd\hlfwndelm
+ \advance\y-\ht\hlfwndelm
+ \xy{\vbox to0pt{\vss\copy\hlfwndelm}}%
+ \advance\x\wd\hlfwndelm
+\repeat}
+%
+%Convenient aliases are
+\let\0\N
+\let\1\E
+\let\2\S
+\let\3\W
+%to supply text to the east (by preceding
+%it with \hss it is centered)
+\def\trttxt#1{\hbox to0pt{%
+ \kern\x\vbox to0pt{\vss
+ \hbox to0pt{\strut#1\hss
+ }\kern\y}\hss}}
+%white writing i.e. just move, don't draw
+\def\whiteE#1{\advance\x#1\unitlength }
+\def\whiteN#1{\advance\y#1\unitlength }
+\def\whiteW#1{\advance\x-#1\unitlength }
+\def\whiteS#1{\advance\y-#1\unitlength }
+%sometimes the following variants with
+%global changes are needed
+\def\globalN#1{\xy{\kern-.5\linethickness
+ \vbox to0pt{\vss
+ \hrule height#1\unitlength
+ width\linethickness}}%
+\global\advance\y#1\unitlength}
+%
+\def\globalS#1{\global\advance
+ \y-#1\unitlength{\N{#1}}}
+%
+\def\globalE#1{\xy{\vbox to0pt{\vss
+ \hrule width#1\unitlength
+ height\linethickness
+ depth0pt\vss
+}}\global\advance\x#1\unitlength}
+%
+\def\globalW#1{\global\advance
+ \x-#1\unitlength{\E{#1}}}
+%
+\newbox\trielm
+\linethickness.2pt
+\setbox\trielm=\hbox{\vrule
+ width1.74\linethickness
+ height\linethickness\relax}
+%To account for element in 30 degrees direction
+\unitlengthy\ht\trielm %default.2pt
+\unitlengthx\wd\trielm %default.3482pt
+\unitlength\unitlengthy%default.2pt
+%
+\def\WSW#1{\auxdim#1\unitlength\divide\auxdim2
+ \loop\advance\auxdim-\unitlengthy
+ \ifdim\auxdim>-.5\unitlengthy
+ \advance\x-\unitlengthx
+ \advance\y-\unitlengthy
+ \xy{\vbox to0pt{\vss\copy\trielm}}%
+ \repeat}
+%
+\def\ESE#1{\auxdim#1\unitlength\divide\auxdim2
+ \loop\advance\auxdim-\unitlengthy
+ \ifdim\auxdim>-.5\unitlengthy
+ \advance\y-\unitlengthy
+ \xy{\vbox to0pt{\vss\copy\trielm}}%
+ \advance\x\unitlengthx
+ \repeat}
+%
+\def\correction{\multiply\auxdim23
+ \divide\auxdim32\relax}
+%
+%And the shortcut
+\def\draw{\csname\the\dir\endcsname
+ {\the\kk}}
+%The useful \bintree for trees
+\def\bintree{\S1\ifnum2=\kk\eertnib\fi
+ \divide\kk2
+ {\W{\the\kk}\bintree}%
+ \E{\the\kk}\bintree\relax}
+\def\eertnib#1\relax{\fi\global\advance\k1
+ \whiteS1\xytxt{ \csname\the\k\endcsname}}
+%
+%cgl@rc.service.rug.nl, July 1995
+%\newdimen\x \newdimen\y \newdimen\yy
+%\newcount\k \newcount\kmax
+\ea\newdimen\csname X1\endcsname
+\ea\newdimen\csname X2\endcsname
+\ea\newdimen\csname X3\endcsname
+\ea\newdimen\csname X4\endcsname
+\ea\newdimen\csname X12\endcsname
+\ea\newdimen\csname X23\endcsname
+\ea\newdimen\csname X34\endcsname
+\ea\newdimen\csname X123\endcsname
+\ea\newdimen\csname X234\endcsname
+\ea\newdimen\csname X1234\endcsname
+\def\X#1{\csname X#1\endcsname}
+%
+\ea\newdimen\csname Y1\endcsname
+\ea\newdimen\csname Y2\endcsname
+\ea\newdimen\csname Y3\endcsname
+\ea\newdimen\csname Y4\endcsname
+\ea\newdimen\csname Y12\endcsname
+\ea\newdimen\csname Y23\endcsname
+\ea\newdimen\csname Y34\endcsname
+\ea\newdimen\csname Y123\endcsname
+\ea\newdimen\csname Y234\endcsname
+\ea\newdimen\csname Y1234\endcsname
+\def\Y#1{\csname Y#1\endcsname}
+%
+\newbox\smileybox
+%Next the METAfont spline implementation
+\def\mfs{\ifnum\k=\kmax \sfm\fi
+\advance\k1
+\midpoints\x\X{1234}\y\Y{1234}\putatxy
+{\X2\X{12}\X3\X{123}\X4\X{1234}%
+ \Y2\Y{12}\Y3\Y{123}\Y4\Y{1234}\mfs}%
+{\X1\X{1234}\X2\X{234}\X3\X{34}%
+ \Y1\Y{1234}\Y2\Y{234}\Y3\Y{34}\mfs}\relax}%end \mfs
+%
+\def\sfm#1\relax{\fi}
+%
+%
+\def\midpoints{%z1,...,z4 -> z1, z12, z23,...,z1234
+\X{12}\X1\advance\X{12}by\X2\divide\X{12}by2
+\X{23}\X2\advance\X{23}by\X3\divide\X{23}by2
+\X{34}\X3\advance\X{34}by\X4\divide\X{34}by2
+\X{123}\X{12}\advance\X{123}by\X{23}\divide\X{123}by2
+\X{234}\X{23}\advance\X{234}by\X{34}\divide\X{234}by2
+\X{1234}\X{123}\advance\X{1234}by\X{234}\divide\X{1234}by2
+%
+\Y{12}\Y1\advance\Y{12}by\Y2\divide\Y{12}by2
+\Y{23}\Y2\advance\Y{23}by\Y3\divide\Y{23}by2
+\Y{34}\Y3\advance\Y{34}by\Y4\divide\Y{34}by2
+\Y{123}\Y{12}\advance\Y{123}by\Y{23}\divide\Y{123}by2
+\Y{234}\Y{23}\advance\Y{234}by\Y{34}\divide\Y{234}by2
+\Y{1234}\Y{123}\advance\Y{1234}by\Y{234}\divide\Y{1234}by2 }
+%\putatxy already in blue.tex
+\def\putatxy{\hbox to0pt{\kern\x\kern-.15pt
+ \vbox to0pt{\vss\hrule width.3pt
+ height.3pt\relax
+ \kern\y}\hss}}
+%
+%\def\S#1{...}%See earlier
+%
+\def\initialize#1#2#3#4#5#6#7#8{%points: (#1,#2),...(#7,#8)
+ \csname X1\endcsname#1\unitlength
+ \csname X2\endcsname#3\unitlength
+ \csname X3\endcsname#5\unitlength
+ \csname X4\endcsname#7\unitlength
+ \csname Y1\endcsname#2\unitlength
+ \csname Y2\endcsname#4\unitlength
+ \csname Y3\endcsname#6\unitlength
+ \csname Y4\endcsname#8\unitlength}
+%
+%
+%\def\smiley{\loadsmileys\hbox{\unitlength.01pt
+% \copy\smileybox\eyes\mouth\kern1000\unitlength} }
+%\def\winksmiley{\loadsmileys\hbox{\unitlength.01pt
+% \copy\smileybox\winkeye\mouth\kern1000\unitlength} }
+%\def\sadsmiley{\loadsmileys\hbox{\unitlength.01pt
+% \copy\smileybox\squinteyes\sadmouth\kern1000\unitlength} }
+%
+%Contents turtle tools
+%Storage allocations
+%\newcount
+% \k, \loccnt, \modsum,
+% \level, \order, \kmax,
+% \kk, \ekk, \dir
+%newdimen
+% \x, \leftx, \rightx,
+% \y, \yy, \lefty, \righty,
+%\newbox
+% \hlfwndelm, \trielm
+%Definitions
+% \N, \E, \S, \W
+% \NE, \SE, \SW, \NW
+% \WSW, \ESE
+% \whiteN, \whiteE, \whiteS, \whiteW
+% \globalN, \globalE, \globalS, \globalW
+% \correction
+% \draw
+% \bintree, \eertnib
+% \putarxy
+% \mfs, \sfm
+% \midpoints
+% \initialize
+%Aliases
+%\0, \1, \3, \4
+%History of changes
+%July 1995 Setup turtle graphics
+%\endinput
+%
+%
+%Undocumented features
+%\rnd from Reid, 1987
+%(Included in index macros of BLUe.)
+%\newcount\rndnum \newcount\rndtmp
+%\newcount\rndval
+\def\rnd{\multiply\rndnum371{}%
+ \advance\rndnum1{}%
+ \ifnum\rndnum>99999
+ \rndtmp\rndnum \divide\rndtmp100000
+ \multiply\rndtmp100000
+ \advance\rndnum-\rndtmp
+ \fi\rndval\rndnum
+ \divide\rndval1000 }
+%
+\def\dieiii{\rnd\throw=
+ \ifnum\rndval<34 0\else
+ \ifnum\rndval<67 1\else2
+ \fi\fi}
+\def\dieiv{\rnd\throw=
+ \ifnum\rndval<25 0\else
+ \ifnum\rndval<50 1\else
+ \ifnum\rndval<75 2\else3
+ \fi\fi\fi}
+\def\diev{\rnd\throw=
+ \ifnum\rndval<20 0\else
+ \ifnum\rndval<40 1\else
+ \ifnum\rndval<60 2\else
+ \ifnum\rndval<80 3\else4
+ \fi\fi\fi\fi}
+%
+%
+%;numvrb
+%Formats.
+\def\loadformat{\input fmt.dat\relax}
+%
+\def\concert{\ifx\undefined\concertfmt
+ \let\concertfmt=x\fi
+ \loadformat
+ \let\concertfmt\undefined
+}
+%;vrblin50
+\newtoks\addressesfile
+\addressesfile{address}
+%
+\def\letter{\ifx\undefined\letterfmt
+ \let\letterfmt=x\fi
+ \loadformat
+ \let\letterfmt\undefined
+}
+%;vrblin100
+\newcount\reportloadcnt
+%Prevent double loading.
+\def\report{\ifx\undefined\reportfmt
+ \let\reportfmt=x\fi
+ \ifnum\reportloadcnt=0 \ea\loadformat\fi
+ \advance\reportloadcnt1
+ \let\reportfmt\undefined
+}
+%;vrblin150
+\newcount\transparenciesloadcnt
+\def\transparencies{%
+ \ifx\undefined\transparenciesfmt
+ \let\transparenciesfmt=x\fi
+ \ifnum\transparenciesloadcnt=0
+ \ea\loadformat\fi
+ \advance\transparenciesloadcnt1
+ \let\transparenciesfmt\undefined
+}%
+\newcount\trsno
+\newbox\trsppt
+\newcount\transparenciespptloadcnt
+\def\transparenciesppt{%
+ \ifx\undefined\transparenciespptfmt
+ \let\transparenciespptfmt=x\fi
+ \ifnum\transparenciespptloadcnt=0
+ \ea\loadformat\fi
+ \advance\transparenciespptloadcnt1
+ \let\transparenciespptfmt\undefined
+}%;nonum;newpage
+%
+%
+%;numvrb
+%Tools
+%General macros.
+\def\fifo#1{\ifx\ofif#1\ofif\fi
+ \process{#1}\fifo}
+\def\ofif#1\fifo{\fi}
+%
+{\obeylines\gdef\fifol#1
+ {\ifx\lofif#1\lofif\fi%
+ \processl{#1}\fifol}}
+\def\lofif#1\fifol{\fi}
+%
+{\obeyspaces\gdef\fifow#1 {\ifx
+\wofif#1\wofif\fi\processw{#1}\ \fifow}}
+\def\wofif#1\fifow{\fi}
+%
+\long\def\gobbletool#1\endinput{\egroup}
+\long\def\tool#1{\ifx#1\undefined
+ \bgroup\unouterdefs
+ \ea\gobbletool\fi}
+%
+\def\toolverbatim{\thisverbatim{%
+ \baselineskip12ptplus2ptminus1pt
+ \lineskip1ptplus1ptminus1pt}%
+ \beginverbatim}
+%
+\let\cgl\relax
+%\def\cgl{\endverbatim\endinput}
+%
+\def\unouterdefs{%List of defs which
+ %have to be neglected
+ \ea\let\csname+\endcsname\relax
+ \catcode`\^12
+ %more to come
+}
+%
+\newif\iffound
+\def\loc#1#2{\def\locate##1#1##2\end
+ {\ifx\empty##2\empty\foundfalse
+ \else\foundtrue\fi}\ea\locate#2.#1\end}
+%
+\def\contentsdatabase#1{%#1 pic lit address
+\ea\let\ea\name\csname toc#1\endcsname
+\immediate\openout\name=contents#1
+%Define list element tag `\lst'
+\def\lst##1##2{\let##1\relax
+ \advance\k1
+ \immediate\write\name{##1}}
+\input #1.dat\relax
+\message{Database #1 contains
+ \the\k\space entries.
+ See the file contents#1 for
+ the list of the names of the entries.}}
+%
+\newwrite\tocfmt
+\newwrite\toctools
+%
+\def\contentstoolsorfmt#1{%#1 tools fmt
+\bgroup
+\ea\let\ea\name\csname toc#1\endcsname
+\immediate\openout\name=contents#1
+\long\def\tool##1##2\endinput{%
+ \immediate\write\name{\nx##1}}
+\unouterdefs
+\input #1.dat\relax
+\message{Database #1 contains
+ \the\k\space entries.}%
+\egroup}
+%
+%Tags for the address database
+\newif\ifregisteredblue
+%Searching the database
+\newtoks\searchfile
+\newtoks\foundfile
+\newtoks\namelst
+\def\search#1{\def\loc##1##2{%
+ \def\locate####1##1####2\end
+ {\ifx\empty####2\empty\foundfalse
+ \else\foundtrue\fi}\ea\locate##2.##1\end}
+ \def\lst##1##2{\loc{#1}{##2}\iffound
+ \immediate\write16{\nx##1}%log file
+ \namelst\ea{\the\namelst\lst##1}
+ \def##1{##2}%define found element
+ \fi}\input\the\searchfile.dat\relax}
+%;vrblin200
+\def\bluechapter#1\par
+ {\beginchapterhead#1\unskip\endchapterhead}
+%Because of \par not in fmt.dat
+\def\blueexample#1\par
+ {\example{#1\unskip}}
+%
+\def\bluedisplaycenterline#1\par
+ {\begindisplaycenterline
+ #1\enddisplaycenterline}%;nonum;newcol
+%
+%
+%;numvrb
+%Tools
+%Next sorted on <tag>tool
+%
+\def\loadtool{\input tools.dat\relax}
+%;vrblin20
+%Binarytreetool
+\newcount\ltree \newcount\m
+\newcount\lu \newcount\levelone
+\newdimen\tophns \newdimen\tophnshalf
+\newdimen\vnodesep
+\newdimen\treewidth %\treewidth=
+%\prod_{i=1}^k{1+1/2i} * \tophns, for level k tree.
+\newtoks\thisbintree
+\newtoks\everybintree
+\def\beginbintree{\begingroup
+ \let\bintreetool=x
+ \loadtool
+ \startbintree}
+\newtoks\thisbt
+\newtoks\everybt
+\newtoks\prebt
+\newtoks\postbt
+\def\beginbt{\begingroup
+ \let\bttool=x
+ \loadtool\bt}
+%;vrblin50
+%Bridgetool
+\def\beginbridge{\begingroup
+ \let\endbridge\endgroup
+ \let\bridgetool=x
+ \loadtool
+}
+%;vrblin100
+%Crosswordstool
+\def\begincrosswords{\begingroup
+ \let\endcrosswords\endgroup
+ \let\crosswordstool=x
+ \loadtool
+}
+%;vrblin150
+%Hanoitool
+\def\hanoi#1{\beginhanoi{#1}\endhanoi}
+\def\beginhanoi{\begingroup
+ \let\endhanoi\endgroup
+ \let\hanoitool=x
+ \loadtool
+\sethanoi}
+%;vrblin200
+%Indextool
+\newcount\indexloadcnt
+\def\loadindexmacros{%
+ \ifx\undefined\indextool
+ \let\indextool=x\fi
+ \ifnum\indexloadcnt=0
+ \ea\loadtool\fi
+ \advance\indexloadcnt1
+ \let\indextool\undefined}
+%(mini-)ToCtool
+\newwrite\toc
+\newcount\tocloadcnt
+\def\loadtocmacros{%
+ \ifx\undefined\toctool
+ \let\toctool=x\fi
+ \ifnum\tocloadcnt=0
+ \ea\loadtool\fi
+ \advance\tocloadcnt1
+ \let\toctool\undefined}
+%;vrblin250
+%Language tools
+\def\english{\let\englishtool=x
+ \loadtool
+ \let\englishtool\undefined
+}
+\def\russian{\let\russiantool=x
+ \loadtool
+ \let\russiantool\undefined
+}
+%;vrblin500
+%ntglogo
+\font\calx=cmsy10 scaled \magstep4
+\newbox\ntglogobox
+\def\loadntglogo{\let\ntglogotool=x
+ \loadtool
+ \let\ntglogotool\undefined
+}
+\def\loadntginfo{\let\ntginfotool=x
+ \loadtool
+ \let\ntginfotool\undefined
+}
+%
+%;vrblin525
+\newbox\smileybox
+\newcount\smileysloadcount
+\def\smiley{\loadsmileys\raise.5ex
+ \hbox{\unitlength.01pt
+ \copy\smileybox
+ \eyes\mouth
+ \kern1000\unitlength} }
+\def\winksmiley{\loadsmileys\raise.5ex
+ \hbox{\unitlength.01pt\copy\smileybox
+ \winkeye\mouth
+ \kern1000\unitlength} }
+\def\sadsmiley{\loadsmileys\raise.5ex
+ \hbox{\unitlength.01pt\copy\smileybox
+ \squinteyes\sadmouth
+ \kern1000\unitlength} }
+\def\loadsmileys{\ifx\undefined\smileystool
+ \let\smileystool=x\fi
+ \ifnum\smileysloadcount=0 \ea\loadtool
+ \else\message{--- smileys already loaded---}\fi
+ \advance\smileysloadcount1
+ \let\smileystool\undefined}
+%
+%;vrblin550
+\def\loadxyz{\let\xyztool=x
+ \loadtool
+ \let\xyztool\undefined
+}
+%;vrblin575
+\def\loadpartlogo{\let\partlogotool=x
+ \loadtool
+ \let\partlogotool\undefined
+}
+%;vrblin600
+%Pascaltool
+%Declarations
+\newtoks\prepascal
+\newtoks\postpascal
+\newtoks\reservedset
+\newcount\commentstatus
+%Initializations
+\let\reservedwordsfont\bf
+\let\pascalprogramfont\it
+\let\pascalcommentfont\rm
+\prepascal{\medskip\noindent}
+\postpascal\prepascal
+%Reserved words need right catcodes
+%
+\def\beginpascal{\begingroup
+ \let\pascaltool=x
+ \loadtool
+ \afterassignment\fifol\let\dummy=}%;nonum;newcol
+%
+%
+%
+%***Storage allocation*** ;numvrb
+%\new...-s needed in the various tools
+%Space is once reserved.
+%General
+\newtoks\storedheadline
+\newtoks\storedfootline
+\newtoks\appendixname
+\appendixname{Appendix}
+\newcount\storedpageno
+%;vrblin10
+%From \contentsdatabase
+\newwrite\tocpic
+\newwrite\toclit
+\newwrite\tocaddress
+%;vrblin20
+%From \letter
+\newtoks\letterfile
+%\newtoks\addressesfile
+\newtoks\addresseename\newtoks\fullname
+\newtoks\addresseelist
+\newtoks\subject
+\newtoks\ourreference
+\newtoks\yourreference
+\newtoks\enclosures
+\newdimen\longindentation
+\newdimen\storedvsize
+\newskip\vaoffset%vert address offset
+\newskip\haoffset%hor address offset
+\newbox\affiliationbox
+\letterfile{letter}
+%\addressesfile{address}
+%From \transparencies
+\newtoks\regularheadline
+\newtoks\regularfootline
+%;vrblin50
+%From \report
+\newtoks\chapternumbering
+\newtoks\thischapterhead
+\newtoks\everychapterhead
+\newtoks\prefacename
+\newtoks\bibliographydata
+\newtoks\chaptertitle
+\newtoks\prechapterhead
+\newtoks\postchapterhead
+\newtoks\headtitle
+\newtoks\subheadtitle
+\newtoks\subsubheadtitle
+\newtoks\prepoint
+\newtoks\prefil
+\newtoks\postfil
+\newtoks\thisexample
+\newtoks\everyexample
+\newtoks\exampletitle
+\newbox\prefacebox
+\newbox\contentsbox
+\newbox\forewordtranslatorbox
+\newdimen\generalindent
+\newdimen\gutter \gutter1em
+\newdimen\xshift
+\newdimen\yshift
+\newdimen\subsubheadindent
+\newcount\headcnt
+\newcount\chaptercnt
+\newcount\examplecnt
+\newcount\exercisecnt
+\newwrite\toc
+\newwrite\toe
+\newif\ifrunin
+%;vrblin100
+%From transparencies
+\newtoks\identification
+%\newtoks\crowner
+\newtoks\headtitle
+\newtoks\subheadtitle
+\newtoks\subsubheadtitle
+\newskip\leftskiptrs
+\newskip\rightskiptrs
+%;vrblin125
+%From crosswords
+\newif\ifpuzzle
+\newcount\cnt
+\newdimen\csize
+%;vrblin150
+%From index
+\newif\ifcontinue%controls loops
+\newif\iffound%locating accent cs
+\newif\ifproof\prooftrue
+\newtoks\indword
+\newcount\n
+\newcount\lc
+\newcount\r
+\newcount\ic
+\newcount\uone
+\newcount\jc
+\newcount\jj
+\newcount\jjone
+%Counters
+%\newcount\n
+%\newcount\m
+%\newcount\k
+%\newcount\kk
+\n=0
+\newcount\kzero\kzero0 %Bias value
+\newcount\pk
+\newcount\pkone%Used in sortcs
+\newcount\frst%First value of range
+\newcount\last %Last value of range
+\newcount\slast%Successor \last
+\newcount\dif %Difference \last-\frst
+\newcount\nw %Number of words
+\newcount\nc %Number of characters/comp
+\newcount\numex %Number of exchanges
+\newcount\rndval%Random number
+\newcount\rndnum%Seed random generator
+\newcount\rndtmp%Temporary value
+\newcount\throw
+\newcount\status%Status comparison
+\newcount\low
+\newcount\up
+\newif\ifgoon
+\newread\inxin
+\newtoks\indword
+\newtoks\indexfile
+ %To parameterize the resulting index
+\newtoks\irfile
+ %To parameterize the IRs
+\newtoks\indexname
+\newtoks\preindex
+\newtoks\postindex
+\newtoks\ignores
+\newtoks\conseqs
+\newtoks\consyms
+\newtoks\srtkeys
+\newtoks\srtkeypairs
+%;vrblin500
+%Contents Tools
+%- bridgetool
+%- crosswordstool
+%- hanoitool
+%- indextool
+%- langauages englishtool (default)
+%- ntglogotool
+%- ntginfotool
+%- russiantool
+%- smileys
+%- toctool
+%- xyztool
+%- pascaltool
+%;nonum
+%History of changes Tools
+% Jan 1995 Created
+% Summer 1995 Smileys added
+% March 1996 Toc tool added
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
+\def\\{\hfil\break}
+\let\annotation\relax
+\generalindent\parindent
+\subsubheadindent\generalindent
+\loadntglogo
+\english
+\catcode`\@=12
+\endinput
+%for Mac as pre format
+\global\advance\count0-1 \dump
+%%%end blue.tex, cgl%%% \ No newline at end of file