%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, "\" 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 % 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 % endverbatim...208-209 % \verbatim...............228-231 % \setupverbatim..........211-215 % \verbatimgobble.............218 % `...........................219 % \uncatcodespecials..........221 % math.......224-225 % 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 % math % endmath %Febr 1994 Release Version 1.0 %end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%vrb%;newpage % % % %begin%%%%%%%%%%%%%%%%%%%%%%bibliography% %From BLUe's Bibliography%;numvrb %\ls 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 % \ ... \ % \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 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%%%