123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472 |
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % The REDUCE Style option File --- LaTeX version. %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % The document should start with:
- % \documentstyle[11pt,reduce,makeidx]{...}
- %
- % This style adds the following commands:
- % \COMPATNOTE{...} For compatibility notes.
- % \f{...} Sets function name is \tt.
- % \k{...} Sets BNF keyword bold.
- % \REDUCE REDUCE when needed as a word.
- % \RLISP RLISP when needed as a word.
- % \s{...} Sets BNF sentential form \em in <...>
- % \meta An alternative for BNF italics in <...>
- % \ttindex{...} Puts index entry in \tt font.
- %
- %
- %
- % Basic religion about REDUCE documentation. No paragraph indentation,
- % bigger skip between lines, ragged bottom, and not as much vertical
- % space.
- %% RmS: setup of size dependent parameters. 11pt is assumed, so let's force it.
- \typeout{Document style option `reduce' -- released 28 Jul 1998.}
- % ****************************************
- % * FONTS *
- % ****************************************
- %
- \lineskip 1pt % \lineskip is 1pt for all font sizes.
- \normallineskip 1pt
- \def\baselinestretch{1}
- % Each size-changing command \SIZE executes the command
- % \@setsize\SIZE{BASELINESKIP}\FONTSIZE\@FONTSIZE
- % where:
- % BASELINESKIP = Normal value of \baselineskip for that size. (Actual
- % value will be \baselinestretch * BASELINESKIP.)
- %
- % \FONTSIZE = Name of font-size command. The currently available
- % (preloaded) font sizes are: \vpt (5pt), \vipt (6pt),
- % \viipt (etc.), \viiipt, \ixpt, \xpt, \xipt, \xiipt,
- % \xivpt, \xviipt, \xxpt, \xxvpt.
- % \@FONTSIZE = The same as the font-size command except with an
- % '@' in front---e.g., if \FONTSIZE = \xivpt then
- % \@FONTSIZE = \@xivpt.
- %
- % For reasons of efficiency that needn't concern the designer,
- % the document style defines \@normalsize instead of \normalsize. This
- % is done only for \normalsize, not for any other size-changing
- % commands.
- \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
- \abovedisplayskip .5\baselineskip
- \belowdisplayskip \abovedisplayskip
- \abovedisplayshortskip \z@ plus3\p@
- \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
- \let\@listi\@listI} % Setting of \@listi added 9 Jun 87
- \def\small{\@setsize\small{12pt}\xpt\@xpt
- \abovedisplayskip .5\baselineskip
- \belowdisplayskip \abovedisplayskip
- \abovedisplayshortskip \z@ plus3\p@
- \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
- \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
- \topsep \z@\parsep 3\p@ plus2\p@ minus\p@
- \itemsep .5\baselineskip}}
- \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
- \abovedisplayskip .5\baselineskip
- \belowdisplayskip \abovedisplayskip
- \abovedisplayshortskip \z@ plus\p@
- \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
- \def\@listi{\leftmargin\leftmargini %% Added 22 Dec 87
- \topsep \z@ \parsep 2\p@ plus\p@ minus\p@
- \itemsep .5\baselineskip}}
- \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
- \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
- \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
- \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
- \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
- \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
- \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
- \normalsize % Choose the normalsize font.
- % ****************************************
- % * PAGE LAYOUT *
- % ****************************************
- %
- % All margin dimensions measured from a point one inch from top and side
- % of page.
- % SIDE MARGINS:
- \if@twoside % Values for two-sided printing:
- \oddsidemargin 36pt % Left margin on odd-numbered pages.
- \evensidemargin 74pt % Left margin on even-numbered pages.
- \marginparwidth 100pt % Width of marginal notes.
- \else % Values for one-sided printing:
- \oddsidemargin 54pt % Note that \oddsidemargin = \evensidemargin
- \evensidemargin 54pt
- \marginparwidth 83pt
- \fi
- \marginparsep 10pt % Horizontal space between outer margin and
- % marginal note
- % VERTICAL SPACING:
- % Top of page:
- \topmargin 27pt % Nominal distance from top of page to top
- % of box containing running head.
- \headheight 12pt % Height of box containing running head.
- \headsep 25pt % Space between running head and text.
- % \topskip = 10pt % '\baselineskip' for first line of page.
- % Bottom of page:
- \footskip 30pt % Distance from baseline of box containing
- % foot to baseline of last line of text.
- % DIMENSION OF TEXT:
- % 24 Jun 86: changed to explicitly compute \textheight to avoid
- % roundoff. The value of the multiplier was calculated as the floor of
- % the old \textheight minus \topskip, divided by \baselineskip for
- % \normalsize. The old value of \textheight was 530.4pt.
- % \textheight is the height of text (including footnotes and figures,
- % excluding running head and foot).
- \textheight = 38\baselineskip
- \advance\textheight by \topskip
- \textwidth 360pt % Width of text line.
- % For two-column mode:
- \columnsep 10pt % Space between columns
- \columnseprule 0pt % Width of rule between columns.
- % A \raggedbottom command causes 'ragged bottom' pages: pages set to
- % natural height instead of being stretched to exactly \textheight.
- % FOOTNOTES:
- \footnotesep 7.7pt % Height of strut placed at the beginning of every
- % footnote = height of normal \footnotesize strut,
- % so no extra space between footnotes.
- \skip\footins 10pt plus 4pt minus 2pt % Space between last line of text
- % and top of first footnote.
- % FLOATS: (a float is something like a figure or table)
- %
- % FOR FLOATS ON A TEXT PAGE:
- %
- % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
- \floatsep 12pt plus 2pt minus 2pt % Space between adjacent floats
- % moved to top or bottom of
- % text page.
- \textfloatsep 20pt plus 2pt minus 4pt % Space between main text and
- % floats at top or bottom of
- % page.
- \intextsep 12pt plus 2pt minus 2pt % Space between in-text figures
- % and text.
- % In LaTeX2e, \@maxsep no longer exists
- \@ifundefined{@maxsep}{}%
- {\setlength{\@maxsep}{20pt}} % The maximum of \floatsep,
- % \textfloatsep and \intextsep
- % (minus the stretch and
- % shrink).
- % TWO-COLUMN FLOATS IN TWO-COLUMN MODE:
- \dblfloatsep 12pt plus 2pt minus 2pt % Same as \floatsep for
- % double-column figures in
- % two-column mode.
- \dbltextfloatsep 20pt plus 2pt minus 4pt % \textfloatsep for
- % double-column floats.
- % In LaTeX2e, \@dblmaxsep no longer exists
- \@ifundefined{@dblmaxsep}{}%
- {\setlength{\@dblmaxsep}{20pt}} % The maximum of \dblfloatsep
- % and \dbltexfloatsep.
- % FOR FLOATS ON A SEPARATE FLOAT PAGE OR COLUMN:
- % ONE-COLUMN MODE OR SINGLE-COLUMN FLOATS IN TWO-COLUMN MODE:
- \@fptop 0pt plus 1fil % Stretch at top of float page/column. (Must
- % be 0pt plus ...)
- \@fpsep 8pt plus 2fil % Space between floats on float page/column.
- \@fpbot 0pt plus 1fil % Stretch at bottom of float page/column. (Must
- % be 0pt plus ... )
- % DOUBLE-COLUMN FLOATS IN TWO-COLUMN MODE.
- \@dblfptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt
- % plus ...)
- \@dblfpsep 8pt plus 2fil % Space between floats on float page.
- \@dblfpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be
- % 0pt plus ... )
- % MARGINAL NOTES:
- %
- \marginparpush 5pt % Minimum vertical separation between two
- % marginal notes.
- % ****************************************
- % * PARAGRAPHING *
- % ****************************************
- %
- \parskip 6pt plus 1pt %% RmS % Extra vertical space between
- % paragraphs.
- \parindent 0pt %% RmS % Width of paragraph indentation.
- \topsep 0pt %% RmS % Extra vertical space, in addition
- % to \parskip, added above and below
- % list and paragraphing environments.
- \partopsep 0pt %% RmS % Extra vertical space, in addition
- % to \parskip and \topsep, added when
- % user leaves blank line before
- % environment.
- \itemsep \topsep %% RmS % Extra vertical space, in addition
- % to \parskip, added between list
- % items.
- % See \@listI for values of \topsep and \itemsep
- % The following page-breaking penalties are defined
- \@lowpenalty 51 % Produced by \nopagebreak[1] or \nolinebreak[1]
- \@medpenalty 151 % Produced by \nopagebreak[2] or \nolinebreak[2]
- \@highpenalty 301 % Produced by \nopagebreak[3] or \nolinebreak[3]
- \@beginparpenalty -\@lowpenalty % Before a list or paragraph
- % environment.
- \@endparpenalty -\@lowpenalty % After a list or paragraph
- % environment.
- \@itempenalty -\@lowpenalty % Between list items.
- % \clubpenalty % 'Club line' at bottom of page.
- % \widowpenalty % 'Widow line' at top of page.
- % \displaywidowpenalty % Math display widow line.
- % \predisplaypenalty % Breaking before a math display.
- % \postdisplaypenalty % Breaking after a math display.
- % \interlinepenalty % Breaking at a line within a paragraph.
- % \brokenpenalty % Breaking after a hyphenated line.
- % ****************************************
- % * SECTIONS *
- % ****************************************
- %
- % \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
- % optional * [ALTHEADING]{HEADING}
- % Generic command to start a section.
- % NAME : e.g., 'subsection'
- % LEVEL : a number, denoting depth of section -- i.e.,
- % section=1, subsection = 2, etc. A section number will
- % be printed if and only if LEVEL < or = the value of
- % the secnumdepth counter.
- % INDENT : Indentation of heading from left margin
- % BEFORESKIP : Absolute value = skip to leave above the heading.
- % If negative, then paragraph indent of text following
- % heading is suppressed.
- % AFTERSKIP : if positive, then skip to leave below heading,
- % else - skip to leave to right of run-in heading.
- % STYLE : commands to set style
- % If '*' missing, then increments the counter. If it is present, then
- % there should be no [ALTHEADING] argument. A sectioning command
- % is normally defined to \@startsection + its first six arguments.
- \def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus
- -.2ex}{2.3ex plus.2ex}{\reset@font\Large\bf}}
- \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus-1ex
- minus-.2ex}{1.5ex plus.2ex}{\reset@font\large\bf}}
- \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus
- -1ex minus-.2ex}{1.5ex plus.2ex}{\reset@font\normalsize\bf}}
- \def\paragraph{\@startsection
- {paragraph}{4}{\z@}{3.25ex plus1ex minus.2ex}{-1em}{\reset@font
- \normalsize\bf}}
- \def\subparagraph{\@startsection
- {subparagraph}{4}{\parindent}{3.25ex plus1ex minus
- .2ex}{-1em}{\reset@font\normalsize\bf}}
- % Default initializations of \...mark commands. (See below for their
- % use in defining page styles.
- %
- % \def\sectionmark#1{} % Preloaded definitions
- % \def\subsectionmark#1{}
- % \def\subsubsectionmark#1{}
- % \def\paragraphmark#1{}
- % \def\subparagraphmark#1{}
- % The value of the counter secnumdepth gives the depth of the
- % highest-level sectioning command that is to produce section numbers.
- %
- \setcounter{secnumdepth}{3}
- % APPENDIX
- %
- % The \appendix command must do the following:
- % -- reset the section and subsection counters to zero
- % -- redefine the section counter to produce appendix numbers
- % -- redefine the \section command if appendix titles and headings
- % are to look different from section titles and headings.
- \def\appendix{\par
- \setcounter{section}{0}
- \setcounter{subsection}{0}
- \def\thesection{\Alph{section}}}
- % ****************************************
- % * LISTS *
- % ****************************************
- %
- % The following commands are used to set the default values for the list
- % environment's parameters. See the LaTeX manual for an explanation of
- % the meanings of the parameters. Defaults for the list environment are
- % set as follows. First, \rightmargin, \listparindent and \itemindent
- % are set to 0pt. Then, for a Kth level list, the command \@listK is
- % called, where 'K' denotes 'i', 'ii', ... , 'vi'. (I.e., \@listiii is
- % called for a third-level list.) By convention, \@listK should set
- % \leftmargin to \leftmarginK.
- %
- \leftmargini 2.5em
- \leftmarginii 2.2em % > \labelsep + width of '(m)'
- \leftmarginiii 1.87em % > \labelsep + width of 'vii.'
- \leftmarginiv 1.7em % > \labelsep + width of 'M.'
- \leftmarginv 1em
- \leftmarginvi 1em
- \leftmargin\leftmargini
- \labelsep .5em
- \labelwidth\leftmargini\advance\labelwidth-\labelsep
- %\parsep 4.5pt plus 2pt minus 1pt %(Removed 9 Jun 87)
- % \@listI defines top level and \@listi values of
- % \leftmargin, \topsep, \parsep, and \itemsep
- % (Added 9 Jun 87)
- \def\@listI{\leftmargin\leftmargini \parsep 4.5\p@ plus2\p@ minus\p@
- \topsep \z@ \itemsep \topsep}
- \let\@listi\@listI
- \@listi
- \def\@listii{\leftmargin\leftmarginii
- \labelwidth\leftmarginii\advance\labelwidth-\labelsep
- \topsep \z@ \itemsep \topsep
- \parsep 2\p@ plus\p@ minus\p@}
- \def\@listiii{\leftmargin\leftmarginiii
- \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
- \topsep \z@ \itemsep \topsep
- \parsep \z@ \partopsep\z@}
- \def\@listiv{\leftmargin\leftmarginiv
- \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}
- %% RmS: which at the same time makes the vertical space in lists (verbatim...)
- %% too large if not other precautions are taken.
- \setlength{\parindent}{0pt}
- \setlength{\parskip}{6pt}
- \raggedbottom
- % Various boxes.
- \newlength{\reduceboxwidth}
- \setlength{\reduceboxwidth}{4in}
- \newlength{\redboxwidth}
- \setlength{\redboxwidth}{3.5in}
- \newlength{\rboxwidth}
- \setlength{\rboxwidth}{2.6in}
- % These are here in case the name changes or we someday want a special
- % font.
- \newcommand{\REDUCE}{REDUCE}
- \newcommand{\RLISP}{RLISP}
- % This is useful for putting function names in \tt format in the index.
- \newcommand{\ttindex}[1]{\index{#1@{\tt #1}}}
- % Use this when you are speaking about problems across systems.
- \newcommand{\COMPATNOTE}{{\em Compatibility Note:\ }}
- \pagestyle{headings}
- %% For BNF notation.
- % \s{...} is a sentential form in descriptions. Enclosed \em text in <...>
- \newcommand{\s}[1] {$<${\em #1}$>$}
- % \meta{...} is an alternative sentential form in descriptions using \it.
- \newcommand{\meta}[1]{\mbox{$\langle$\it#1\/$\rangle$}}
- % \k{...} is a keyword. Just do in bold for the moment.
- \@ifundefined{k}{}{\let\k\relax} % undefine \k (LaTeX2e)
- \newcommand{\k}[1] {{\bf #1}}
- % \f is a function name. Just do this as tt.
- \newcommand{\f}[1] {{\tt #1}}
- % An example macro for numbering and indenting examples.
- \newcounter{examplectr}
- \newcommand{\example}{\refstepcounter{examplectr}
- \noindent{\bf Example \theexamplectr}}
- % The following are currently only used in the GENTRAN document. However,
- % there's no objection to using them elsewhere.
- \begingroup
- \catcode `|=0
- \catcode `[= 1
- \catcode`]=2
- \catcode `\{=12
- \catcode `\}=12
- \catcode`\\=12
- |gdef|@xframedverbatim#1\end{framedverbatim}[#1|end[framedverbatim]]
- |gdef|@sxframedverbatim#1\end{framedverbatim*}[#1|end[framedverbatim*]]
- |endgroup
- \newdimen\@mcdheight
- \def\@sframedverbatim{\obeyspaces\@framedverbatim}
- \def\@mcdrule{\@mcdheight=\baselineskip\advance\@mcdheight by-2pt
- \setbox0=\hbox{\vrule height\@mcdheight depth 2pt width 1pt}%
- \ht0=\@mcdheight\dp0=0pt\wd0=1pt\box0}
- \def\@mcdendrule{\@mcdheight=\baselineskip%
- \setbox0=\hbox{\vrule height\@mcdheight depth 2pt width 1pt}%
- \ht0=\@mcdheight\dp0=0pt\wd0=1pt\box0}
- \def\@framedverbatim{\trivlist \item[]
- \parskip \z@
- \hrule \@height \p@ \@depth \z@ \@width\textwidth
- \everypar{\global \@minipagefalse \global \@newlistfalse \if@inlabel
- \global \@inlabelfalse \hskip -\parindent \box \@labels \penalty \z@ \fi
- \hbox to6\p@{\rlap{\@mcdrule}\hskip\textwidth\llap{\@mcdrule}\hss}}%
- \if@minipage\else\vskip\parskip\fi
- \leftskip\@totalleftmargin\rightskip\z@
- \parindent\z@\parfillskip\@flushglue\parskip\z@
- \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
- \penalty\interlinepenalty}% % fix \samepage bug
- \obeylines \tt \catcode``=13 \@noligs \let\do\@makeother \dospecials}
- \def\framedverbatim{\@framedverbatim \frenchspacing\@vobeyspaces
- \@xframedverbatim}
- \def\endframedverbatim{\nointerlineskip
- {\everypar{}\baselineskip 4\p@\vbox to4\p@{\par\noindent\hbox
- to6pt{\rlap{\@mcdendrule}\hskip\textwidth\llap{\@mcdendrule}\hss}}%
- \vskip\p@\hrule \@height \p@ \@depth \z@ \@width\textwidth}\endtrivlist}
- \@namedef{framedverbatim*}{\@framedverbatim\@sxframedverbatim}
- \expandafter\let\csname endframedverbatim*\endcsname =\endtrivlist
- % Will print out a heading in bold, and then indent the following text.
- \def\indented{\list{}{
- \itemindent\listparindent
- \rightmargin\leftmargin}\item[]}
- \let\endindented=\endlist
- \newenvironment{describe}[1]{\par{\bf #1}\begin{indented}}{\end{indented}}
- \@ifundefined{reset@font}{\let\reset@font\@empty}{}
- \endinput
|