% This is mcgillet.sty (DOS name) % This is mcgillletter.sty (UNIX name) % This is a modification of Leslie Lamport's letter document style % made by: % John W. Eaton % and further modified for McGill Maths Dept use by % RAG Seely % % LETTER DOCUMENT STYLE -- Released 20 Jan 88 for LaTeX version 2.09 % Copyright (C) 1987 by Leslie Lamport \typeout{Document Style `mcgillletter'. Released 21 October 1992} % Give the definition of the letterhead. % Special fonts for the letterhead \font\@univfont=mcgill30 \font\@deptfont=cmbx9 at 9truept \font\@addressfont=cmss9 at 9truept \font\@armsfont=mcgill36 \def\@letterheadwidth{6in} \def\@armshead{\hsize 6.0in \hskip -1.5cm\raisebox{.73in}{\parbox{1.4cm}{\@armsfont A}} \@letterhead} \def\@plainhead{\hsize \@letterheadwidth \hskip 0.0in\@letterhead} \def\@letterhead{\parbox{\@letterheadwidth}{ \@univfont M\phantom{\rm .}Gill \\[.75ex] \@deptfont Department of Mathematics and Statistics \\[1.5ex] \@addressfont McGill University\\[-1ex] Burnside Hall\\[-1ex] 805 Sherbrooke Street West\\[-1ex] Montreal, QC, Canada~~H3A\thinspace 2K6 %\\[-1ex] (514)398-3800 $\cdot$ FAX(514)398-3899 %(Add this if you want it) \vspace*{25pt}}\vskip \z@ plus .00002fil \relax \hsize \textwidth} % The type size option is handled by \def'ing \@ptsize to the following % values: % % 10pt : 0, 11pt : 1, 12pt : 2 % % Then loading the different fonts accordingly. \def\@ptsize{0} % Default is 10pt. \@namedef{ds@11pt}{\def\@ptsize{1}} % 11pt option. \@namedef{ds@12pt}{\def\@ptsize{2}} % 12pt option. % no twoside option % \@twosidefalse % draft option % % \overfullrule = 0pt % Default is don't mark overfull hboxes. \def\ds@draft{\overfullrule 5pt} % Causes overfull hboxes to be marked. % The \@options command causes the execution of every command \ds@FOO % which is defined and for which the user typed the FOO option in his % \documentstyle command. For every option BAR he typed for which % \ds@BAR is not defined, the file BAR.sty will be read after the % present (main) .STY file is executed. \@options % **************************************** % * 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. % Special fonts for the letterhead % \font\univfont=cmr8 \@magscale 3 \font\deptfont=cmr6 \@magscale3 \font\addressfont=cmsl8 \@magscale1 \font\armsfont=mcgill36 \ifcase \@ptsize\relax % 10pt option \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt \abovedisplayskip 10pt plus2pt minus5pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6pt plus3pt minus3pt% \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{11pt}\ixpt\@ixpt \abovedisplayskip 8.5pt plus 3pt minus 4pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus2pt% \belowdisplayshortskip 4pt plus2pt minus 2pt% \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt \abovedisplayskip 6pt plus 2pt minus 4pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus 1pt% \belowdisplayshortskip 3pt plus 1pt minus 2pt% \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \topsep 3pt plus 1pt minus 1pt\parsep 2pt plus 1pt minus 1pt \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt} \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt} \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} \or % 11pt option \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt \abovedisplayskip 11pt plus3pt minus6pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6.5pt plus3.5pt minus3pt% \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{12pt}\xpt\@xpt \abovedisplayskip 10pt plus2pt minus5pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6pt plus3pt minus3pt% \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87 \topsep 6pt plus 2pt minus 2pt\parsep 3pt plus 2pt minus 1pt \itemsep \parsep}} \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt \abovedisplayskip 8pt plus 2pt minus 4pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus 1pt% \belowdisplayshortskip 4pt plus 2pt minus 2pt% \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87 \topsep 4pt plus 2pt minus 2pt\parsep 2pt plus 1pt minus 1pt \itemsep \parsep}} \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} \or % 12pt option \def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt \abovedisplayskip 12pt plus3pt minus7pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6.5pt plus3.5pt minus3pt% \let\@listi\@listI} % Setting of \@listi added 22 Dec 87 \def\small{\@setsize\small{13.6pt}\xipt\@xipt \abovedisplayskip 11pt plus3pt minus6pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6.5pt plus3.5pt minus3pt% \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \parsep 4.5pt plus 2pt minus 1pt \itemsep \parsep \topsep 9pt plus 3pt minus 5pt}} \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt \abovedisplayskip 10pt plus2pt minus5pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6pt plus3pt minus3pt% \def\@listi{\leftmargin\leftmargini %% Def of \@list i added 22 Dec 87 \topsep 6pt plus 2pt minus 2pt\parsep 3pt plus 2pt minus 1pt \itemsep \parsep}} \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt} \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt} \def\large{\@setsize\large{18pt}\xivpt\@xivpt} \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt} \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt} \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt} \let\Huge=\huge \fi \normalsize % Choose the normalsize font. % **************************************** % * PAGE LAYOUT * % **************************************** % % All margin dimensions measured from a point one inch from top and % side of page. Dimensions shrink by about 2 percent % SIDE MARGINS: \oddsidemargin 30pt % Left margin on odd-numbered pages. \evensidemargin 30pt % Left margin on even-numbered pages. \marginparwidth 70pt % Width of marginal notes. \marginparsep 11pt % Horizontal space between outer margin and % marginal note \marginparpush 5pt % Minimum vertical space between marginal notes. % VERTICAL SPACING: % Top of page: \topmargin 0pt % Nominal distance from top of page to top of % box containing running head. % \topskip = 10pt % '\baselineskip' for first line of page. % Bottom of page: \footheight 12pt % Height of box containing running foot. \footskip 25pt % Distance from baseline of box containing foot % to baseline of last line of text. \headheight 12pt % Height of box containing running head. \headsep 40pt % Space between running head and text. \newdimen\wholehead \wholehead=\headheight \advance\wholehead \headsep \ifcase \@ptsize \advance\wholehead by 13pt \or \advance\wholehead 14pt \or \advance\wholehead 15pt \fi % DIMENSION OF TEXT: \textheight 8in % Height of text (including footnotes and figures, % excluding running head and foot). \textwidth 5.5in % Width of text line. % For two-column mode: \columnsep 10pt % Space between columns \columnseprule 0pt % Width of rule between columns. \raggedbottom % 'ragged bottom' (all pages set to natural % height, with no stretch or shrinkage) % FOOTNOTES: \footnotesep 12pt % Height of strut placed at the beginning of % every footnote. \skip\footins 10pt plus .001fil minus 4pt % Space between last line % of text and top of first % footnote. % FLOATS: % % The following items must be defined, even though there are no % floats in this style. % \floatsep 12pt plus 2pt minus 2pt \textfloatsep 20pt plus 2pt minus 4pt \intextsep 12pt plus 2pt minus 2pt \dblfloatsep 12pt plus 2pt minus 2pt \dbltextfloatsep 20pt plus 2pt minus 4pt \@maxsep 20pt \@dblmaxsep 20pt \@fptop 0pt plus 1fil \@fpsep 8pt plus 2fil \@fpbot 0pt plus 1fil \@dblfptop 0pt plus 1fil \@dblfpsep 8pt plus 2fil \@dblfpbot 0pt plus 1fil % **************************************** % * LETTER COMMANDS * % **************************************** % % The following declarations, shown with examples, give information % about the sender: % % \name{Dr. L. User} : If not empty, placed between the % letterhead and the name and % address of the addressee. Must % be a single line. % % \location{Room 374} : If not empty, placed on a line by % itself after \name. Must be a % single line. % % \telephone{(514)123-4567} : If not empty, placed on a line by % itself after \location. Must be a % single line. % % \email{foo@bar.mcgill.edu} : If not empty, placed on a line by % itself after \telephone. Must be a % single line. % % \date{12 December 1643} : If not empty, placed first after % the letterhead. If missing, % today's date is generated % automatically. % % \signature{Larry User} : Placed after the closing. % % \address{3245 Foo St.\\Gnu York} : Not used in this letter style, % but may be used by others. % % The \makelabels declaration causes mailing labels to be made. It must % go before the \begin{document} command. % % The letter environment: creates a new letter, starting from page 1. % (The first page is unnumbered.) It has a single argument, which % is the adressee and his address, as in % % \begin{letter}{Sam Jones \\ % Institute for Retarded Study\\ Princeton, N.J.} % % The argument of \begin{letter} may be empty. Note that if it is not % empty, \toname is defined to be everything up to the first `\\', and % \toaddress is defined to be the rest of the argument. % % Local declarations, such as \date, \address, \name, \location, % \telephone, and \email can follow the \begin{letter}. They are % processed by the \opening command. % % Text is begun with the \opening command, whose argument generates the % salutation, as in % % \opening{Dear Henry,} % % The local delcarations \date, \address, \name, \location, % \telephone, and \email are processed by the \opening command and % must precede it. % % The body of the letter follows, ended by a \closing command, as in % % \closing{Yours truly,} % % The 'signature' is provided automatically. % % After the \closing you can put arbitrary stuff, which is typeset % with \parindent = 0 and no page breaking. Commands designed for use % after the closing are: % % \cc{Tinker\\Evers\\Chance} -- which produces: % % cc: Tinker % Evers % Chance % % \encl{Foo(2)\\Bar} -- which produces: % % encl: Foo(2) % Bar % % \ps -- produces no text. Page breaking, which is inhibited after % the \closing command is allowed after the first line of % output following the \ps command. % % DOCUMENT STYLE PARAMETERS AND COMMANDS. CHANGE THESE TO CUSTOMIZE % LETTER STYLE. % % \opening{Dear Mr. Foo:} -- % % Command to produce everything up to and including the 'Dear Mr. % Foo:' and a \par command that follows. Since there's a \vfil at % the bottom of every page, it can add vertical fil to position a % short letter. % % Note that \ifx\foo\@empty tests for a null value of \foo. % % \closing{TXT} -- % % Generates the closing matter, and the signature. % % \cc{ARG} and \encl{ARG} -- % % Generates the cc: and encl: text, placing the arguments in % parboxes. % % \ps -- % % Generates no text. Calls \startbreaks, which allows page % breaking again. % % \stopletter -- % % Command called by \endletter to do the following: % % * Add any desired fil or other material at the end of the % letter. % * Define \returnaddress to be the return address for the mailing % label. More precisely, it is the first argument of the % \mlabel command described below. It should be \def'd to null % if the return address doesn't appear on the labels. Any % command, other than \\, that should not be expanded until the % \mlabel command is actually executed must be preceded by % \protect. Whenever possible, \protect commands in the % definition of \returnaddress -- it's much more efficient that % way. In particular, when the standard return address is used, % you should \def \returnaddress to something like % \protect\standardreturnaddress. % % CUSTOMIZING THE LABELS % % Commands for generating the labels are put on the .AUX file, which % is read in and processed by the \end{document} command. You have to % define the following two commands: % % \startlabels : Should reset the page layout parameters if necessary. % % \mlabel{RETURN ADDRESS}{TO ADRESS} : Command to generate a single % label. % **************************************************************** % * THE DEPTARTMENT OF MATHEMATICS & STATS LETTER FORMAT * % **************************************************************** % % This is an adaptation of Leslie Lamport's letter document style % distributed with the LaTeX macros. Much of the following is copied % from the letter format in the TeXbook. % Allow full block style letters. \newif\if@fullblock \def\fullblock{\@fullblocktrue} \def\semiblock{\@fullblockfalse} \@fullblockfalse % Allow user to omit letterhead. \newif\if@head \def\letterhead{\@headheadtrue} \def\noletterhead{\@headfalse} \@headtrue % Allow user to omit the university arms from the letterhead. \newif\if@armshead \def\armshead{\@armsheadtrue} \def\noarmshead{\@armsheadfalse} \@armsheadtrue \newdimen\longindentation \newdimen\indentedwidth \newif\if@extras \long\def\opening#1{\thispagestyle{firstpage} {\if@fullblock \raggedright \else \raggedleft \fi \ifx\@empty\fromname\else\@extrastrue\fromname\\ \fi \ifx\@empty\fromlocation\else\@extrastrue\fromlocation\\ \fi \ifx\@empty\telephonenum\else\@extrastrue\telephonenum\\ \fi \ifx\@empty\emailaddress\else\@extrastrue\emailaddress\\ \fi \if@extras \vskip 20pt \fi \@date\par} \vspace{2\parskip} {\raggedright \ifx\toname\@empty\else\toname\\\fi \ifx\toaddress\@empty\else\toaddress\\\fi\par}\vspace{2\parskip} \def\@openingtext{#1} \ifx\@openingtext\@empty \@letterwarn{empty argument to \string\opening{}} \else #1\fi\par\nobreak} \long\def\closing#1{\par\nobreak\vspace{\parskip} \stopbreaks \noindent \if@fullblock\else \hspace*{\longindentation}\fi \parbox{\indentedwidth}{\def\@closingtext{#1}\raggedright \ifx\@closingtext\@empty \@letterwarn{empty argument to \string\closing{}} \vskip 6\medskipamount \else \ignorespaces #1\\[6\medskipamount]%% changed 20 Jan 88 \fi \ifx\@empty\fromsig \fromname \else \fromsig \fi\strut} \par} \def\@letterhangfrom#1{\setbox\@tempboxa=\hbox{#1} \hangindent=1\wd\@tempboxa\noindent\box\@tempboxa\ignorespaces} \def\ps{\par\startbreaks} \def\cc#1{\par\noindent \parbox[t]{\textwidth}{\@letterhangfrom{\rm cc:\hspace*{1em}} \ignorespaces #1\strut}\par} \def\encl#1{\par\noindent \parbox[t]{\textwidth}{\@letterhangfrom{\rm encl:\hspace*{1em}} \ignorespaces #1\strut}\par} \def\stopletter{} % Labels \def\returnaddress{} \newcount\labelcount % The following \startlabels command sets things up for producing % labels in two columns of five 2" X 4-1/4" labels each, suitable for % reproducing onto Avery brand number 5352 address labels. \def\startlabels{\labelcount=0 \baselineskip=0pt \lineskip=0pt \pagestyle{empty} \let\@texttop=\relax \topmargin -50pt \headsep 0pt \oddsidemargin -35pt \evensidemargin -35pt \textheight 10in \@colht\textheight \@colroom\textheight \vsize\textheight \textwidth 550pt \columnsep 25pt \xpt \baselineskip=0pt \lineskip=0pt \boxmaxdepth=0pt \parindent=0pt %% corrected 3/5/86 \twocolumn\relax} \def\mlabel#1#2{\setbox0\vbox{\parbox[b]{3.6in}{\strut\ignorespaces #2}} \vbox to 2in{\vss \box0 \vss}} % **************************************** % * THE GENERIC LETTER COMMANDS * % **************************************** \long\def\letter#1{% \if@fullblock \longindentation=0in \else \longindentation=.5\textwidth \fi \indentedwidth=\textwidth \advance\indentedwidth -\longindentation \newpage \if@head \vspace*{-\wholehead} \if@armshead \@armshead \else \@plainhead \fi \fi \c@page\@ne \@processto{#1}} \def\endletter{\stopletter\@@par\pagebreak\@@par \if@filesw \begingroup \def\protect{\string} \let\\=\relax \def\protect##1{\string##1\space} \immediate\write\@auxout{\string\mlabel{\returnaddress}{ \ifx\toname\@empty\else\toname\\\fi \ifx\toaddress\@empty\else\toaddress\fi}} \endgroup \fi} % \@processto gets the \toname and \toaddress from the argument to % \begin{letter}. % \long\def\@processto#1{\@xproc #1\\@@@\ifx\toaddress\@empty \else \@yproc #1@@@\fi} \long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}} \long\def\@yproc #1\\#2@@@{\def\toaddress{#2}} \def\stopbreaks{\interlinepenalty \@M \def\par{\@@par\nobreak}\let\\=\@nobreakcr \let\vspace\@nobreakvspace} \def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}} \def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi} \def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}} \def\startbreaks{\let\\=\@normalcr \interlinepenalty 200\def\par{\@@par\penalty 200}} \def\signature#1{\def\fromsig{#1}} \def\fromsig{} \def\name#1{\def\fromname{#1}} \def\fromname{} \def\location#1{\def\fromlocation{#1}} \def\fromlocation{} \def\telephone#1{\def\telephonenum{#1}} \def\telephonenum{} \def\email#1{\def\emailaddress{#1}} \def\emailaddress{} \long\def\address#1{\def\fromaddress{#1}} % Not used by utcheletter.sty \def\fromaddress{} % \document redefined so it writes '\startlabels\@startlabels' on the % AUX file if it's making one. % \def\document{\endgroup \@colht\textheight \@colroom\textheight \vsize\textheight \columnwidth\textwidth \@clubpenalty\clubpenalty \if@twocolumn \advance\columnwidth -\columnsep \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue \fi \hsize\columnwidth \linewidth\hsize \begingroup\@floatplacement\@dblfloatplacement\endgroup \if@filesw \immediate\openout\@mainaux=\jobname.aux \immediate\write\@mainaux{\string\startlabels\string\@startlabels}\fi \def\do##1{\let ##1\@notprerr} \@preamblecmds \let\do\noexpand \@normalsize\everypar{}} % Redefine \enddocument so it outputs the last page of labels, if % necessary. % \def\enddocument{\@checkend{document}\newpage\begingroup \if@filesw \immediate\closeout\@mainaux \makeatletter\input \jobname.aux\clearpage \fi\endgroup\deadcycles\z@\@@end} \def\makelabels{\@fileswtrue} \def\@startlabels{} % **************************************** % * PAGE STYLES * % **************************************** \def\@texttop{} \def\ps@headings{\def\@oddhead{% \sf \ifx\toname\@empty\else To \ignorespaces\toname \hfil\fi \@date \hfil Page \thepage}\def\@oddfoot{}} \def\ps@empty{\def\@oddhead{}\def\@oddfoot{} \def\@evenhead{}\def\@evenfoot{}} % The firstpage heading style is empty by default. Create your own % optional style if you don't like this. \def\ps@firstpage{\def\@oddhead{}\def\@oddfoot{} \def\@evenhead{}\def\@evenfoot{}} \def\ps@plain{\def\@oddhead{}\def\@oddfoot{\rm\hfil\thepage \hfil}\def\@evenhead{}\let\@evenfoot\@oddfoot} % **************************************** % * PARAGRAPHING * % **************************************** \parskip .7em % Extra vertical space between paragraphs. \parindent 0pt % Width of paragraph indentation. \topsep .4em % Extra vertical space, in addition to % \parskip, added above and below list and % paragraphing environments. \partopsep 0pt % Extra vertical space, in addition to % \parskip and \topsep, added when user % leaves blank line before environment. \itemsep .4em % Extra vertical space, in addition to % \parskip, added between list items. % 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 % SET BY THE LETTER COMMANDS \brokenpenalty % % Breaking after a hyphenated line. % **************************************** % * 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. % % For efficiency, level-one list's values are defined at top level, % and \@listi is defined to be a no-op. \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 \labelwidth\leftmargini\advance\labelwidth-\labelsep \labelsep 5pt \parsep 0pt \let\@listi\relax \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep .2em \itemsep \topsep} \def\@listiv{\leftmargin\leftmarginiv \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} \def\@listv{\leftmargin\leftmarginv \labelwidth\leftmarginv\advance\labelwidth-\labelsep} \def\@listvi{\leftmargin\leftmarginvi \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} % ENUMERATE % % Enumeration is done with four counters: enumi, enumii, enumiii and % enumiv, where enumN controls the numbering of the Nth level % enumeration. The label is generated by the commands \labelenumi ... % \labelenumiv. The expansion of \p@enumN\theenumN defines the output % of a \ref command. \def\labelenumi{\arabic{enumi}.} \def\theenumi{\arabic{enumi}} \def\labelenumii{(\alph{enumii})} \def\theenumii{\alph{enumii}} \def\p@enumii{\theenumi} \def\labelenumiii{\roman{enumiii}.} \def\theenumiii{\roman{enumiii}} \def\p@enumiii{\theenumi(\theenumii)} \def\labelenumiv{\Alph{enumiv}.} \def\theenumiv{\Alph{enumiv}} \def\p@enumiv{\p@enumiii\theenumiii} % ITEMIZE % % Itemization is controlled by four commands: \labelitemi, % \labelitemii, \labelitemiii, and \labelitemiv, which define the % labels of the various itemization levels. \def\labelitemi{$\bullet$} \def\labelitemii{\bf --} \def\labelitemiii{$\ast$} \def\labelitemiv{$\cdot$} % VERSE % % The verse environment is defined by making clever use of the list % environment's parameters. The user types \\ to end a line. This is % implemented by \let'in \\ equal \@centercr. \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -15pt\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 15pt}\item[]} \let\endverse\endlist % QUOTATION -- fills lines and indents paragraph \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin}\item[]} \let\endquotation=\endlist % QUOTE -- same as quotation except no paragraph indentation, \def\quote{\list{}{\rightmargin\leftmargin}\item[]} \let\endquote=\endlist % DESCRIPTION % % To change the formatting of the label, you must redefine % \descriptionlabel. \def\descriptionlabel#1{\hspace\labelsep \bf #1} \def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin \let\makelabel\descriptionlabel}} \let\enddescription\endlist % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % THEOREM % % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % Except \@opargbegintheorem is executed when an optional argument is % given. Cf. LATEX.TEX. % % \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]} % \def\@opargbegintheorem#1#2#3{\it \trivlist % \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]} % \def\@endtheorem{\endtrivlist} % EQUATION and EQNARRAY % % \newcounter{equation} % Default is for left-hand side of equations to be flushleft. % To make them flushright, do: % \let\@eqnsel = \hfil \def\theequation{\arabic{equation}} % \jot = 3pt % Extra space added between lines of an eqnarray % environment. \arraycolsep 5pt % Half the space between columns in an array environment. \tabcolsep 6pt % Half the space between columns in a tabular environment. \arrayrulewidth .4pt % Width of rules in array and tabular environment. \doublerulesep 2pt % Space between adjacent rules in array or tabular env. % TABBING \tabbingsep \labelsep % Space used by the \' command. (See LaTeX manual.) % MINIPAGE % % \@minipagerestore is called upon entry to a minipage environment to % set up things that are to be handled differently inside a minipage % environment. In the current styles, it does nothing. % % \skip\@mpfootins : plays same role for footnotes in a minipage as % \skip\footins does for ordinary footnotes \skip\@mpfootins = \skip\footins % FRAMEBOX \fboxsep = 3pt % Space left between box and text by \fbox and \framebox. \fboxrule = .4pt % Width of rules in box made by \fbox and \framebox. % **************************************** % * FOOTNOTES * % **************************************** % % \footnoterule is a macro to draw the rule separating the footnotes % from the text. It should take zero vertical space, so it needs a % negative skip to compensate for any positive space taken by the % rule. (See PLAIN.TEX.) \def\footnoterule{\kern-1\p@ \hrule width .4\columnwidth \kern .6\p@} % The \hrule has default height of .4pt . % \newcounter{footnote} % The numbering style (arabic, alph, etc.) for ordinary footnotes is % defined by the macro \thefootnote. % % \@makefntext{NOTE} : % % Must produce the actual footnote, using \@thefnmark as the mark of % the footnote and NOTE as the text. It is called when effectively % inside a \parbox, with \hsize = \columnwidth. \long\def\@makefntext#1{\noindent % Macro to make the text of a footnote \hangindent 5pt\hbox to 5pt{\hss $^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default definition used. % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters set by some commands. Easier to define % them than change the commands. \c@topnumber=2 \def\topfraction{.7} \c@bottomnumber=1 \def\bottomfraction{.3} \c@totalnumber=3 \def\textfraction{.2} \def\floatpagefraction{.5} \c@dbltopnumber= 2 \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % **************************************** % * MISCELLANEOUS * % **************************************** % % DATE % \def\today{\ifcase\month\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December\fi \space\number\day, \number\year} \def\@letterwarn#1{\typeout{Warning: #1.}} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \smallskipamount=.5\parskip % These values are used by the letter macros. \medskipamount=\parskip \bigskipamount=2\parskip \ps@plain % 'plain' page style \pagenumbering{arabic} % Arabic page numbers \onecolumn % Single-column \@fileswfalse % Inhibits writing of .AUX file.