Artifact b71ce9381233fe8b021343613b42f55b6ebe0cfc0a6819aeb6365d91a40536af:
- File
r36/doc/REDUCE.STY
— part of check-in
[152fb3bdbb]
at
2011-10-17 17:58:33
on branch master
— svn:eol-style, svn:executable and line endings for files
in historical/r36 treegit-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1480 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: schoepf@users.sourceforge.net, size: 18439) [annotate] [blame] [check-ins using] [more...]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 5 Nov 1991.} % **************************************** % * 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. \@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. \@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. \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