123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453 |
- % -*- Mode: TeX -*-
- %%%% ===== Fonts, etc. =====
- % Concrete
- \def\b#1{{\bf #1}} % b = bold
- \def\i#1{{\it #1}} % i = italic
- \def\j#1{{\it #1\/}} % j = italic + kerning
- \def\f#1{{\dummy}\hbox{{\tt #1}}} % f = fixed
- \def\ff#1{\hbox{{\tt #1} }} % ff = fixed box w/ trailing space (for use in math mode)
- \def\ital#1{{\it #1\/}}
- \def\bold#1{{\bf #1}}
- \def\ang#1{{$\langle$}{\it #1\/}{$\rangle$\/}}
- \def\flr#1{{$\lfloor$}{\it #1\/}{$\rfloor$\/}}
- \def\underlined#1{{$\underline{\hbox{#1}}$}}
- \def\metavar#1{{$\langle\!\langle$}{\it #1\/}{$\rangle\!\rangle$\/}}
- \def\metaparam#1{{$\langle\!\langle$}\param{#1}{$\rangle\!\rangle$\/}}
- % Abstract
- %!!! Barmar: Code font needs a bigger consing dot.
- \def\dummy{{$ $}}
- %% Couldn't figure out what's keeping this from working.
- %% For now I guess we'll just do without. -kmp 9-Sep-91
- %
- % \def\TTamp{{\tt\char'046}} % &
- % \def\TTpls{{\tt\char'053}} % +
- % \def\TTmin{{\tt\char'055}} % -
- % \def\TTstr{{\tt\char'052}} % *
- % \def\TTsls{{\tt\char`057}} % /
- % \def\TTeql{{\tt\char`075}} % =
- %
- % {\catcode'046=\active%
- % \catcode'053=\active\catcode'055=\active%
- % \catcode'052=\active\catcode'057=\active%
- % %\catcode'075=\active%
- % \gdef\clref{\bgroup%
- % \catcode'046=\active%
- % \catcode'053=\active\catcode'055=\active%
- % \catcode'052=\active\catcode'057=\active%
- % \catcode'075=\active%
- % \let&\TTamp%
- % \let+\TTpls%
- % \let-\TTmin%
- % \let*\TTstr%
- % \let/\TTsls%
- % \let\=\TTeql%
- % \xclref}}
- %
- % \def\xclref#1{\function #1\egroup}
- \def\clref#1{{\dummy}\hbox{{\function #1\/}}}
- \def\ttref#1{{\dummy}\hbox{{\tt #1\/}}}
- \def\kwd#1{\ttref{:#1}}
- \def\kwdref#1{\ttref{:#1}}
- \def\packref#1{\ttref{\uppercase{#1}}}
- \def\loopref{\ttref}
- \def\keyref#1{\clref{\}}
- \def\typeref {\clref}
- \def\misc {\clref}
- \def\miscref {\clref}
- \def\declref {\clref}
- \def\funref {\clref}
- \def\macref {\clref}
- \def\specref {\clref}
- \def\conref {\clref}
- \def\varref {\clref}
- %\def\bogusterm#1{{\word $\underline{\hbox{#1\/}}$}}
- \def\bogusterm#1{#1}
- \def\newterm #1{{\bit #1\/}\idxterm{#1}}
- \def\newtermidx #1#2{{\bit #1\/}\idxterm{#2}}
- \def\term #1{{\word #1\/}}
- \def\param #1{{\arg #1\/}}
- %%%% ===== Sections =====
- \let\vv=\vtop
- \def\NoReturn{\EV\vrule height 8pt depth 2pt width 1pt}
- \def\Vtop #1{\setbox0=\vbox{#1}\dimen2=\ht0\setbox2=\null\dp2=\dp0\setbox0=\vv
- {\unvbox0}\advance\dimen1 by -\ht0\ht2=\dimen2\vadjust
- {\penalty 10000\box2}\dp0=0pt\box0}
- \def\Defmac #1 #2{{\let\vtop\Vtop\function #1 {\arg #2} \hfill}
- \Vskip\normalparskip!}
- \def\DefmacNoReturn #1 #2{{\let\vtop=\Vtop\function #1 {\arg #2}\quad\NoReturn\hfill}
- \Vskip\normalparskip!}
- \def\DefmacWithValuesNewline
- #1 #2 #3{{\let\vtop\Vtop\function #1 {\arg #2}\hfill\break
- \indent\quad\EV\ {\arg #3}}
- \Vskip\normalparskip!}
- \def\DefmacWithValues
- #1 #2 #3{{\let\vtop\Vtop\function #1 {\arg #2}\quad\EV\ {\arg #3}\hfill}
- \Vskip\normalparskip!}
- \def\Defun #1 #2{{\let\vtop=\Vtop\function #1 {\arg #2}\hfill}
- \Vskip\normalparskip!}
- \def\DefunWithValues
- #1 #2 #3{{\let\vtop=\Vtop\function #1 {\arg #2}\quad\EV\ {\arg #3}\hfill}
- \Vskip\normalparskip!}
- \def\DefunWithValuesNewline
- #1 #2 #3{{\let\vtop=\Vtop\function #1 {\arg #2}\hfill\break
- \indent\quad\EV\ {\arg #3}}
- \Vskip\normalparskip!}
- \def\DefunNoReturn
- #1 #2{{\let\vtop=\Vtop\function #1 {\arg #2}\quad
- \NoReturn\hfill}
- \Vskip\normalparskip!}
- \def\DefunMultiWithValues
- #1 #2 #3{{\let\vtop=\Vtop
- \def\entry##1{##1&\cr}
- \def\blankline{\vksip 5pt}
- \halign{\hskip\leftskip\function ## {\arg #1}\hfil&\quad\EV\ {\arg #2}##\cr#3}}
- \Vskip\normalparskip!}
- \def\DefunMultiAccessorWithValues
- #1 #2 #3 #4{{\let\vtop=\Vtop
- \def\blankline{\noalign{\vskip 5pt}}
- \hskip\leftskip\hbox{{\def\entry##1{##1&\cr}%
- \vbox{\halign{\function ## {\arg #1}\hfil&\quad\EV\ {\arg #2}##\cr#4}}}\qquad\vrule\qquad
- {\def\entry##1{##1\cr}%
- \vbox{\halign{\function (setf (## {\arg #1}) {\arg #3})\cr#4}}}}\hfill}
- \Vskip\normalparskip!}
- \def\Defsetf
- #1 #2 #3{{\let\vtop=\Vtop\function (setf (#1 {\arg #2}) {\arg #3})\hfill\break}
- \Vskip\normalparskip!}
- \def\DefsetfMulti
- #1 #2 #3{{\let\vtop=\Vtop
- \def\entry##1{##1\cr}
- \def\blankline{\vksip 5pt}
- \halign{\hskip\leftskip\function (setf (## {\arg #1}) {\arg #2})\hfil\cr#3}}
- \Vskip\normalparskip!}
- \def\Defgen
- #1 #2{{\let\vtop=\Vtop\function #1 {\arg #2}}
- \Vskip\normalparskip!}
- \def\DefgenWithValues
- #1 #2 #3{{\let\vtop=\Vtop\function #1 {\arg #2}\quad\EV\ {\arg #3}\hfill}
- \Vskip\normalparskip!}
- \def\DefgenWithValuesNewline
- #1 #2 #3{{\let\vtop=\Vtop\function #1 {\arg #2}}\hfill\break
- \indent\quad\EV\ {\arg #3}
- \Vskip\normalparskip!}
- \def\specparam#1#2{\paren{\param{#1} \typeref{#2}}}
- \def\Defmeth
- #1 #2{{\let\vtop=\Vtop\function #1 {\arg #2}}
- \Vskip\normalparskip!}
- \def\Defvar
- #1 {{\let\vtop=\Vtop\tt \ST#1\ST}
- \Vskip\normalparskip!}
- \def\Defvarnoast
- #1 {{\let\vtop=\Vtop\function #1}
- \Vskip\normalparskip!}
- \def\Defcon
- #1 {{\let\vtop=\Vtop\function #1}
- \Vskip\normalparskip!}
- \def\Defspec
- #1 #2 {{\let\vtop=\Vtop\function #1 {\arg #2} \hfill}
- \Vskip\normalparskip!}
- \def\DefspecNoReturn
- #1 #2 {{\let\vtop=\Vtop\function #1 {\arg #2}\quad
- \NoReturn\hfill}
- \Vskip\normalparskip!}
- \def\DefspecWithValues
- #1 #2 #3{{\let\vtop\Vtop\function #1 {\arg #2}\quad\EV\ {\arg #3}\hfill}
- \Vskip\normalparskip!}
- \def\DefspecWithValuesNewline
- #1 #2 #3{{\let\vtop\Vtop\function #1 {\arg #2}\hfill\break
- \indent\quad\EV\ {\arg #3}}
- \Vskip\normalparskip!}
- % \def\Deftype
- % #1 #2 {{\let\vtop=\Vtop\vbox{\halign{\hskip\leftskip{\tt ##}\hfil\cr#1}
- % \ifx{##}\empty\else\halign{\hskip\leftskip\hfil\i{##} ::$=$ &##\hfil\cr#2}}\fi}%\hfill\fi
- % \Vskip\normalparskip!}
- \def\Deftype#1#2{{\let\vtop=\Vtop%
- \halign{\hskip\leftskip{\tt (#1} {\arg ##\/}{\tt)}\hfil\cr#2\cr}\hfill}
- \Vskip\normalparskip!}
- \def\defFormat{\begingroup\catothers\catcode`\$=12\relax\doformat}
- \def\doformat
- #1 (#2) #3{\Vskip2pc!{#1}\hskip 2pc{\rm ({#2})}\hfill{#3}\par
- \endgroup
- \Vskip\normalparskip!}
- %%%% ===== Special Symbols =====
- % Subscripts
- \def\ssso{{${}\sub 1$}} % Sub 1
- \def\ssst{{${}\sub 2$}} % Sub 2
- \def\ssse{{${}\sub 8$}} % Sub 8
- \def\ssss{{${}\sub{16}$}} % Sub 16
- \def\sssi{{${}\sub i$}} % Sub i
- \def\sssk{{${}\sub k$}} % Sub k
- \def\sssn{{${}\sub n$}} % Sub n
- \def\sssx{{${}\sub x$}} % Sub x
- \def\sssy{{${}\sub y$}} % Sub y
- \def\sssz{{${}\sub z$}} % Sub z
- % Relations
- \def\EV{{\penalty20000}{$\rightarrow$}{\penalty20000}}
- \def\OV{{\penalty20000}{$\buildrel{or}\over\rightarrow$}{\penalty20000}}
- \def\NV{{\penalty20000}{$\buildrel{not}\over\rightarrow$}{\penalty20000}}
- \def\EQ{{\penalty20000}{$\equiv$}{\penalty20000}}
- % Contexts
- \def\OUT{{$\triangleright$}}
- \def\IN#1{{$\underline{\hbox{#1}}$}}
- % Characters
- \def\CRLF{{$\hookleftarrow$}}
- \def\NewlineChar{\ang{Newline}}
- \def\SpaceChar{\ang{Space}}
- \def\TabChar{\ang{Tab}}
- \def\ReturnChar{\ang{Return}}
- \def\LinefeedChar{\ang{Linefeed}}
- \def\BackspaceChar{\ang{Backspace}}
- \def\PageChar{\ang{Page}}
- \def\RuboutChar{\ang{Rubout}}
- \def\WhitespaceChar{\ang{Whitespace}}
- \def\bq{`}
- \def\ampersand{{\&}}
- \def\tilde{{$\sim$}}
- \def\bsl{{\tt {\char '134}}}
- \def\hat{{\setbox0\hbox{{\tt {\char '136}}}\hbox to \wd0{\lower 4pt\hbox{$^{^\wedge}$}}}}
- \def\lbr{{\tt {\char '173}}}
- \def\rbr{{\tt {\char '175}}}
- \def\dot{{\tt {\char '056}}}
- \def\surd{{\tt $\surd$}}
- \def\vert{{\tt {\char '174}}}
- \def\centerdot{{$\cdot$}}
- \def\underscore{{\\_}}
- \def\lbracket{{$\lbrack$}}
- \def\rbracket{{$\rbrack$}}
- \def\minussign{$-$}
- %%%% ===== BNF Notation =====
- \def\more#1{{\setbox0=\hbox{#1}\hbox to \wd0{\hfil}}}
- \def\star #1{#1{\rm *}}
- %\def\form {\curly{form}} % No longer used. -kmp 7-Feb-92
- %\def\place{\curly{place}} % No longer used. -kmp 7-Feb-92
- \def\paren #1{{\rm(}#1\/{\rm)}}
- \def\lparen{{\rm (}}
- \def\xparen{\more\lparen}
- \def\rparen{\/{\rm )}}
- \def\brac #1{{\rm[}#1\/{\rm]}}
- \def\lbrac{{\rm [}}
- \def\xbrac{\more\lbrac}
- \def\rbrac{\/{\rm ]}}
- \def\bbrac #1{\lower1pt\hbox{{\brfl[}\raise1pt\hbox{#1\/}{\brfl]}}}
- \def\ttbrac #1{{\tt[}#1\/{\tt]}}
- \def\lttbrac{{\tt [}}
- \def\xttbrac{\more\lttbrac}
- \def\rttbrac{\/{\tt ]}}
- \def\curly #1{{$\{$}#1\/{$\}$}}
- \def\lcurly{{$\{$}}
- \def\xcurly{\more\lcurly}
- \def\rcurly{\/{$\}$}}
- \def\plus #1{$\hbox{#1}^+$}
- \def\prevplus{$^+$}
- \def\upstar #1{$\hbox{#1}^*$}
- \def\one #1{$\hbox{#1}^1$}
- \def\placeplus{\plus{\curly{\param{place}}}}
- \def\begininterleave{{$\lbrack\!\lbrack\,$}}
- \def\extrainterleave{\more\begininterleave}
- \def\endinterleave{\/{$\,\rbrack\!\rbrack$}}
- \def\interleave#1{\begininterleave #1\/\endinterleave}
- %\def\DeclsAndDoc{\star{\curly{declaration $\vert$ documentation}}}
- \def\DeclsAndDoc{\interleave{\starparam{declaration} $\vert$ \param{documentation}}}
- \def\LocalDeclsAndDoc{\interleave{\starparam{local-declaration}
- $\vert$ \param{local-documentation}}}
- \def\down#1{$\downarrow$\param{#1}}
- \def\plusdown#1{\plus{\curly{\down{#1}}}}
- \def\plusparam#1{\plus{\curly{\param{#1}}}}
- \def\plusparen#1{\plus{\curly{\paren{#1}}}}
- \def\stardown#1{\star{\curly{\down{#1}}}}
- \def\starparam#1{\star{\curly{\param{#1}}}}
- \def\starparen#1{\star{\curly{\paren{#1}}}}
- \def\auxbnf#1#2{{\medbreak\vskip 4pt\def\CR{\cr\noalign{\penalty1000\vskip 4pt\penalty1000}&&}\arg
- \halign to \hsize{\hskip\leftskip\quad##&\hfil##& ##\hfil\cr
- &\param{#1}::$=$& #2\cr}}}
- %%%% ===== BNF Shorthand =====
- % var
- %
- % This exists so that some local contexts can override its definition.
- % TVar is mnemonic for Terminal Variable, and occurs only a place where
- % a list cannot be substituted.
- \def\GTVar{\param{var}}
- \def\GstarTVar{\starparam{var}}
- \let\TVar=\GTVar
- \let\starTVar=\GstarTVar
- % var | (var [specializer])
- \def\SpecializedVar{\curly{\param{var} | \paren{{\TVar} \brac{\param{specializer}}}}}
- % var | (var)
- \def\JustVar{\curly{\param{var} | \paren{\TVar}}}
- % var | (var [value])
- \def\VarValue{\curly{\param{var} | \paren{{\TVar} \brac{\param{init-form}}}}}
- % var | (var [init [supplied-p]])
- \def\VarValueSuppliedP{\curly{\param{var} |
- \paren{{\TVar} \brac{init-form \brac{supplied-p-parameter}}}}}
- % var | ({var | (keyword-name var)} [init [supplied-p]])
- \def\KeyVarValueSuppliedP{\curly{\param{var} |
- \paren{\curly{\param{var} |
- \paren{\param{keyword-name} {\TVar}}}
- \brac{init-form \brac{supplied-p-parameter}}}}}
- % var | ({var | (keyword-name var)} [init [supplied-p]])
- \def\JustKey{\curly{\param{var} | \paren{\curly{\param{var} |
- \paren{\param{keyword-name} {\TVar}}}}}}
- % var | (var [init [step]])
- \def\VarInitStep{\curly{\param{var} | \paren{{\TVar} \brac{init-form \brac{step-form}}}}}
- %%%% ==== Document-related Shorthand =====
- \def\Seefun #1{See the \term{function} \funref{#1}}
- \def\seefun #1{see the \term{function} \funref{#1}}
- \def\Seefuns #1{See the \term{functions} \funref{#1}}
- \def\seefuns #1{see the \term{functions} \funref{#1}}
- \def\Seespec #1{See the \term{special operator} \specref{#1}}
- \def\seespec #1{see the \term{special operator} \specref{#1}}
- \def\Seemac #1{See the \term{macro} \macref{#1}}
- \def\seemac #1{see the \term{macro} \macref{#1}}
- \def\Seevar #1{See the \term{variable} \varref{#1}}
- \def\seevar #1{see the \term{variable} \varref{#1}}
- \def\Seetype #1{See the \term{type} \typeref{#1}}
- \def\seetype #1{see the \term{type} \typeref{#1}}
- \def\Seemisc #1{See \miscref{#1}}
- \def\seemisc #1{see \miscref{#1}}
- \def\Seesection#1{See \secref#1}
- \def\seesection#1{see \secref#1}
- \def\Seechapter#1{See \chapref#1}
- \def\seechapter#1{see \chapref#1}
- \def\Seefigure#1{See \figref#1}
- \def\seefigure#1{see \figref#1}
- \def\Seeterm#1{See \term{#1}}
- \def\seeterm#1{see \term{#1}}
- \def\SeetermAlso#1{See also \term{#1}}
- \def\seetermAlso#1{see also \term{#1}}
- \def\noargs{\ang{no \term{arguments}}}
- \def\novalues{\ang{no \term{values}}}
- \def\eval{evaluated}
- \def\noeval{not evaluated}
- \def\evalspecial{evaluated as described below}
- \def\Thenextfigure{Figure {\chapno--\the\capno}}
- \def\thenextfigure{Figure {\chapno--\the\capno}}
- %% Apparently not used. -kmp 25-Apr-93
- %\def\index #1{{\tt #1}}
- \def\code{\screen!}
- \def\endcode{\endscreen!}
- \newif \ifeditornotes \editornotestrue % might be overridden in setup-options
- \def\editornote#1{\ifeditornotes{\bf\lbr{#1}\rbr}\fi\ignorespaces}
- \def\reviewer#1{\ifeditornotes{\bf\lbr{#1}\rbr}\fi\ignorespaces}
- %%%%% ===== Glossary =====
- % Webster's pronunciation support
- \def\miscaccent{{\vrule width 1pt height 2pt depth 2pt}}
- \def\loaccent{{$\,$\miscaccent$\,$}}
- \def\hiaccent{{$\,$\raise 6pt\hbox{\loaccent}$\,$}}
- \def\medaccent{{$\,$\miscaccent\kern -1pt\raise 6pt\hbox{\miscaccent}$\,$}}
- \def\maybeStress#1{{\medaccent}#1}
- \def\Stress#1{{\hiaccent}#1}
- \def\stress#1{{\loaccent}#1}
- \def\harda{\=a}
- \def\nasala{\^a}
- \def\softa{\"a}
- \def\harde{\=e}
- \def\hardi{\=\dotlessi}
- \def\hardo{\=o}
- \def\hardp{\=p}
- \def\nasalo{\^o}
- \def\th{$\rlap{th}/$}
- \def\softoo{{\edef\next{\the\font}\setbox0=\hbox{\the\mifive\accent"5E}\setbox1=\hbox{\next oo}\dimen255=.5\wd1\advance\dimen255 by -.5\wd0\vbox{\moveright\dimen255\hbox{\lower 30pt\copy0}\copy1}}}
- \def\hardoo{{\edef\next{\the\font}\setbox0=\hbox{\the\textfont0\accent"7B}\setbox1=\hbox{\next oo}\dimen255=.5\wd1\advance\dimen255 by -.65\wd0\vbox{\moveright\dimen255\hbox{\lower 20pt\copy0}\copy1}}}
- \def\reducede{{$\epsilon$}}
- \def\lightaccent{{\rm '}}
- \def\schwa{{$\epsilon$}}
- \def\TypographyCaveats{,
- except that ``{\schwa}'' is used to notate the schwa (upside-down ``e'') character}
- \def\pronounced#1{$\lbrack\thinspace\hbox{\b{#1}}\thinspace\rbrack$}
- \def\meaning#1{$\sub{#1}$}
|