% THESIS DOCUMENT STYLE -- version 0.1 - not released % % adapted from: % REPORT DOCUMENT STYLE -- version 0.91 - released 27 January 1985 % for LaTeX version 2.08 % Copyright (C) 1985 by Leslie Lamport % % Feb 6 1986 - William K. Kalsow % % This document style is intended to produce output comforming % to the offical Univ. of Wisconsin requirements. % % NOTE: only 12pt type is supported. % only one sided output is supported. % \typeout{Document Style 'thesis'. Version 0.1 - preliminary Feb 6 1986} % draft option % % \overfullrule = 0pt % Default is don't mark overfull hboxes. \def\textspace{\openup 3\jot\relax} % Default is double spaced text \def\versiontag{} % Default is NO tag \def\ds@draft{ %%% -- DRAFT is double spaced -- \def\textspace{} % Single spaced text \overfullrule 5pt % Causes overfull hboxes to be marked. \def\versiontag{{\normalsize\rm - DRAFT \number\month/\number\day{} -}} } % 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. \def\@normalsize{\@setsize\normalsize{14.5pt}\xiipt\@xiipt \abovedisplayskip 12pt plus3pt minus7pt% \belowdisplayskip \abovedisplayskip \abovedisplayshortskip \z@ plus3pt% \belowdisplayshortskip 6.5pt plus3.5pt minus3pt} \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{\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{\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 \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 36pt % Left margin on odd-numbered pages. \evensidemargin 36pt % Note that \oddsidemargin = \evensidemargin \marginparwidth 68pt % Width of marginal notes. \marginparsep 10pt % Horizontal space between outer margin and marginal note % VERTICAL SPACING: % Top of page: \topmargin 20pt % 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: \footheight 12pt % Height of box containing running foot. \footskip 30pt % Distance from baseline of box containing foot % to baseline of last line of text. % DIMENSION OF TEXT: \textheight 605pt % Height of text (including footnotes and figures, % excluding running head and foot). \textwidth 430pt % 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 14pt % Height of strut placed at the beginning of every % footnote. \skip\footins 8pt plus 2pt minus 4pt % 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: % \floatsep 14pt plus 2pt minus 4pt % Space between adjacent floats moved % to top or bottom of text page. \textfloatsep 20pt plus 6pt minus 4pt % Space between main text and floats % at top or bottom of page. \intextsep 14pt plus 4pt minus 4pt % Space between in-text figures and % text. \@maxsep 20pt % The maximum of \floatsep, % \textfloatsep and \intextsep (minus % the stretch and shrink). % FOR FLOATS ON A SEPARATE FLOAT PAGE: \@fptop 0pt plus 1fil % Stretch at top of float page. (Must be 0pt plus ...) \@fpsep 10pt plus 2fil % Space between floats on float page. \@fpbot 0pt plus 1fil % Stretch at bottom of float page. (Must be 0pt plus ... ) % MARGINAL NOTES: % \marginparpush 7pt % Minimum vertical separation between two marginal % notes. % **************************************** % * PARAGRAPHING * % **************************************** % \parskip 2pt plus 1pt minus 1pt % Extra vertical space between paragraphs. \parindent 1.5em % Width of paragraph indentation. \topsep 10pt plus 4pt minus 6pt % Extra vertical space, in addition to % \parskip, added above and below list and % paragraphing environments. \partopsep 3pt plus 2pt minus 2pt % Extra vertical space, in addition to % \parskip and \topsep, added when user % leaves blank line before environment. \itemsep 5pt plus 2.5pt minus 1pt % 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 % Breaking at a line within a paragraph. % \brokenpenalty % Breaking after a hyphenated line. % **************************************** % * CHAPTERS AND SECTIONS * % **************************************** % % DEFINE COUNTERS: % % \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is % reset to zero when counter OLDCTR is stepped. % Counter OLDCTR must already be defined. \newcounter {chapter} \newcounter {section}[chapter] \newcounter {subsection}[section] \newcounter {subsubsection}[subsection] \newcounter {paragraph}[subsubsection] \newcounter {subparagraph}[paragraph] % For any counter CTR, \theCTR is a macro that defines the printed version % of counter CTR. It is defined in terms of the following macros: % % \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral. % \roman{COUNTER} : Its value printed as a lower-case roman numberal. % \Roman{COUNTER} : Its value printed as an upper-case roman numberal. % \alph{COUNTER} : Value of COUNTER printed as a lower-case letter: % 1 = a, 2 = b, etc. % \Alph{COUNTER} : Value of COUNTER printed as an upper-case letter: % 1 = A, 2 = B, etc. % \def\thechapter {\arabic{chapter}} \def\thesection {\thechapter.\arabic{section}} \def\thesubsection {\thesection.\arabic{subsection}} \def\thesubsubsection {\thesubsection .\arabic{subsubsection}} \def\theparagraph {\thesubsubsection.\arabic{paragraph}} \def\thesubparagraph {\theparagraph.\arabic{subparagraph}} % \@chapapp is initially defined to be 'Chapter'. The \appendix % command redefines it to be 'Appendix'. \def\@chapapp{Chapter} % \@makechapterhead {TEXT} : Makes the heading for the \chapter command. % \def\@makechapterhead#1{ % Heading for \chapter command \vspace*{50pt} % Space at top of text page. { \parindent 0pt \raggedright \ifnum \c@secnumdepth >\m@ne % IF secnumdepth > -1 THEN \LARGE\bf \@chapapp{} \thechapter % Print 'Chapter' and number. \par \vskip 20pt \fi % Space between number and title. \LARGE \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40pt % Space between title and text. } \advance\@colht-\footskip % tell LaTeX to build a shorter page! \pagegoal\@colht % let TeX in on what's happening } % \@makeschapterhead {TEXT} : Makes the heading for the \chapter* command. % \def\@makeschapterhead#1{ % Heading for \chapter* command \vspace*{50pt} % Space at top of page. { \parindent 0pt \raggedright \LARGE \bf % Title. #1\par \nobreak % TeX penalty to prevent page break. \vskip 40pt % Space between title and text. } } % \secdef{UNSTARCMDS}{STARCMDS} : % When defining a \chapter or \section command without using % \@startsection, you can use \secdef as follows: % \def\chapter { ... \secdef \CMDA \CMDB } % \def\CMDA [#1]#2{ ... % Command to define \chapter[...]{...} % \def\CMDB #1{ ... % Command to define \chapter*{...} \def\chapter{\clearpage % Starts new page. \thispagestyle{headings} % Page style of chapter page is 'headings' \global\@topnum\z@ % Prevents figures from going at top of page. \@afterindentfalse % Suppresses indent in first paragraph. Change \secdef\@chapter\@schapter} % to \@afterindenttrue to have indent. \def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{chapter} \typeout{\@chapapp\space\the\c@chapter.} \addcontentsline{toc}{chapter}{\protect \numberline{\thechapter}#1}\else \addcontentsline{toc}{chapter}{#1}\fi \chaptermark{#1} \addtocontents{lof}{\protect\addvspace{10pt}} % Adds between-chapter space \addtocontents{lot}{\protect\addvspace{10pt}} % to lists of figs & tables. \@makechapterhead{#2} \@afterheading % Routine called after chapter and } % section heading. \def\@schapter#1{\@makeschapterhead{#1} \@afterheading} \def\pchapter#1{%% A preliminary chapter \chapter*{#1} \addcontentsline{toc}{chapter}{#1} \thispagestyle{plain} \typeout{#1} } % \@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 -- e.g., chapter=1, % section = 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 minus .1ex}{\Large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex minus .1ex}{\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-3.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex minus .1ex}{\normalsize\bf}} \def\paragraph{\@startsection {paragraph}{4}{\z@}{3.25ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}} \def\subparagraph{\@startsection {subparagraph}{4}{\parindent}{3.25ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}} % Default initializations of \...mark commands. (See below for their % uses in defining page styles. % \def\chaptermark#1{} % \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}{2} % COPYRIGHT % % \def\Copyright{ \typeout{Copyright} \newpage\thispagestyle{empty}\null\vfil \vskip 0.75\textheight \begin{center} \def\thanks##1{} % temporarily kill any thanks lines {\large \copyright\ Copyright by \@author\ \number\year\par} {\large All rights reserved \par} \end{center} \par\vfil\null\newpage } % ABSTRACT % % - this produces pages suitable for a UW-Abstract % \def\abstract{\pchapter{Abstract}} % UNIV. Microfilms abstract % % \def\UMIabstract{ \titlepage\pagestyle{empty} \openup 2.75\jot % double spaced \begin{center} \def\thanks##1{} % temporarily kill any thanks lines {\large \uppercase\expandafter{\@title} \par} {\large\lineskip .75em\begin{tabular}[t]{c}{\@author}\end{tabular}\par} {\large Under the supervision of Professor \@advisor \par} \vskip 1.5em \end{center} } % ACKNOWLEDGEMENTS % % \def\acknowledgements{\pchapter{Acknowledgements}} % CHAPTERS % % \def\chapters{ \newpage \textspace \pagenumbering{arabic} } % APPENDIX % % The \appendix command must do the following: % -- reset the chapter counter to zero % -- set \@chapapp to Appendix (for messages) % -- redefine the chapter counter to produce appendix numbers % -- reset the section counter to zero % -- redefine the \chapter command if appendix titles and headings are % to look different from chapter titles and headings. \def\appendix{\par \setcounter{chapter}{0} \setcounter{section}{0} \def\@chapapp{Appendix} \def\thechapter{\Alph{chapter}}} % **************************************** % * 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 set only \leftmargin. \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 .5em \parsep 5pt plus 2.5pt minus 1pt \def\@listi{\leftmargin\leftmargini} \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii\advance\labelwidth-\labelsep \topsep 5pt plus 2.5pt minus 1pt \parsep 2.5pt plus 1pt minus 1pt \itemsep \parsep} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii\advance\labelwidth-\labelsep \topsep 2.5pt plus 1pt minus 1pt \parsep \z@ \partopsep 1pt plus 0pt minus 1pt \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} % **************************************** % * LISTS * % **************************************** % % 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 -1.5em\listparindent \itemindent \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]} \let\endverse\endlist % QUOTATION % Fills lines % Indents paragraph % \def\quotation{\list{}{\listparindent 1.5em \itemindent\listparindent \rightmargin\leftmargin\parsep 0pt plus 1pt}\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 \newdimen\descriptionmargin \descriptionmargin=3em % **************************************** % * OTHER ENVIRONMENTS * % **************************************** % % % THEOREM % \@begintheorem ... \@endtheorem are the commands executed at the % beginning and end of a (user-defined) theorem-like environment. % \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]} \def\@endtheorem{\endtrivlist} % EQUATION and EQNARRAY -- must follow \chapter definition % % \newcounter{equation} % \@addtoreset{equation}{chapter} % Makes \chapter reset 'equation' counter. \def\theequation{\thechapter.\arabic{equation}} % \jot = 3pt % Extra space added between lines of an eqnarray environment % The macro \@eqnnum defines how equation numbers are to appear in equations. % % \def\@eqnnum{(\theequation)} % % TITLEPAGE % In the normal environments, the titlepage environment does nothing but % start and end a page, and inhibit page numbers. It also resets the % page number to zero. \def\titlepage{\newpage\thispagestyle{empty}\c@page\z@} \def\endtitlepage{\newpage} % CODE % The code environment is essentially a 'quote'd verbatim environment. % \begin{code} ... \end{code} % ==> {\quote\verbatim ... \endverbatim\endquote} % Page breaks are discouraged by \interlinepenalty=150. % \begingroup \catcode `|=0 \catcode `[=1 \catcode`]=2 \catcode`\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|@xcode#1\end{code}[#1|end[code]] |endgroup \def\code{\par\list{}{\parskip 0pt plus 1pt\normalbaselines\interlinepenalty=150}\item[]\@verbatim\frenchspacing\@vobeyspaces\@xcode} \def\endcode{\endtrivlist\endlist} % PROC % The proc environment is a 'quoted' tabbing environment with tabs set % at fixed distances % Page breaks are discouraged by \interlinepenalty=150. % \def\proctabs{\qquad\=\qquad\=\qquad\=\qquad\=\qquad\=\qquad\=\qquad\=\kill} \newenvironment{proc}{\quote\interlinepenalty=150\relax\tt\tabbing\proctabs}{\endtabbing\endquote\leavevmode} % ARRAY AND TABULAR % \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. % **************************************** % * TABLE OF CONTENTS, ETC. * % **************************************** % % A \subsection command writes a % \contentsline{subsection}{TITLE}{PAGE} % command on the .toc file, where TITLE contains the contents of the % entry and PAGE is the page number. If subsections are being numbered, % then TITLE will be of the form % \numberline{NUM}{HEADING} % where NUM is the number produced by \thesubsection. Other sectioning % commands work similarly. % % A \caption command in a 'figure' environment writes % \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE} % on the .lof file, where NUM is the number produced by \thefigure and % CAPTION is the figure caption. It works similarly for a 'table' environment. % % The command \contentsline{NAME} expands to \l@NAME. So, to specify % the table of contents, we must define \l@chapter, \l@section, % \l@subsection, ... ; to specify the list of figures, we must define % \l@figure; and so on. Most of these can be defined with the % \@dottedtocline command, which works as follows. % % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} % LEVEL : An entry is produced only if LEVEL < or = value of % 'tocdepth' counter. Note, \chapter is level 0, \section % is level 1, etc. % INDENT : The indentation from the outer left margin of the start of % the contents line. % NUMWIDTH : The width of a box in which the section number is to go, % if TITLE includes a \numberline command. % % This command uses the following three parameters, which are set % with a \def (so em's can be used to make them depend upon the font). % \@pnumwidth : The width of a box in which the page number is put. % \@tocrmarg : The right margin for multiple line entries. One % wants \@tocrmarg > or = \@pnumwidth % \@dotsep : Separation between dots, in mu units. Should be \def'd to % a number like 2 or 1.7 \def\@pnumwidth{1.55em} \def\@tocrmarg {2.55em} \def\@dotsep{4.5} \setcounter{tocdepth}{2} % TABLEOFCONTENTS % \def\tableofcontents{ \normalbaselines \chapter*{Contents} \thispagestyle{plain} \typeout{Table of Contents} \markboth{CONTENTS}{CONTENTS} \@starttoc{toc}} \def\l@chapter#1#2{\pagebreak[3] \vskip 1.0em plus 1pt % space above chapter line \@tempdima 1.5em % width of box holding chapter number \begingroup \parindent \z@ \rightskip \@pnumwidth \parfillskip -\@pnumwidth \bf % Boldface. \leavevmode % TeX command to enter horizontal mode. #1\hfil \hbox to\@pnumwidth{\hss #2}\par \endgroup} \def\l@section{\@dottedtocline{1}{1.5em}{2.3em}} \def\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}} \def\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}} \def\l@paragraph{\@dottedtocline{4}{10em}{5em}} \def\l@subparagraph{\@dottedtocline{5}{12em}{6em}} % LIST OF FIGURES % \def\listoffigures{ \normalbaselines \pchapter{List of Figures} \markboth{LIST OF FIGURES}{LIST OF FIGURES} \@starttoc{lof} } \def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}} % LIST OF TABLES % \def\listoftables{ \normalbaselines \pchapter{List of Tables} \markboth{LIST OF TABLES}{LIST OF TABLES} \@starttoc{lot} } \let\l@table\l@figure % GREMLIN % % \Gremlin{includefile}{width}{height}{F/E} % Warning: ignoring the Flyback/End option % \def\Gremlin#1#2#3#4{ \leavevmode\hbox to #2{\vbox to #3{\special{#1}\vfil}\hfil} } % **************************************** % * BIBLIOGRAPHY * % **************************************** % % TEMPORARY DEFINITIONS: \def\thebibliography#1{\chapter*{Bibliography\markboth {BIBLIOGRAPHY}{BIBLIOGRAPHY}}\list {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth \advance\leftmargin\labelsep\usecounter{enumi}}} \let\endthebibliography=\endlist % \def\@biblabel#1{[#1]\hfill} % Produces the label for a \bibitem[...] % command. % \def\@cite#1{[#1]} % Produces the output of the \cite command. % **************************************** % * THE INDEX * % **************************************** % % THE INDEX ENVIRONMENT % Produces double column format, with each paragraph a separate entry. % The user commands \item, \subitem and \subsubitem are used to % produce the entries, and \indexspace adds an extra vertical space % that's the right size to put above the first entry with a new letter % of the alphabet. \def\theindex{ \columnseprule \z@ \columnsep 35pt\twocolumn[\@makeschapterhead{Index}] \markboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@ \parskip\z@ plus .3pt\relax\let\item\@idxitem} \def\@idxitem{\par\hangindent 40pt} \def\subitem{\par\hangindent 40pt \hspace*{20pt}} \def\subsubitem{\par\hangindent 40pt \hspace*{30pt}} \def\endtheindex{\onecolumn} \def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax} % **************************************** % * 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} \@addtoreset{footnote}{chapter} % Numbers footnotes within chapters % \@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 of width \columnwidth (i.e., with \hsize = % \columnwidth). The following macro indents % all lines of the footnote by 10pt, and indents the first line of % a new paragraph by 1em. To change these dimensions, just substitute % the desired value for '10pt' [in both places] or '1em'. % The mark is flushright against the footnote. % % It is much easier to write a macro in which the footnote text is % set like an ordinary text paragraph, with no indentation except % on the first line of a paragraph, and the first line of the % footnote. In that case, all the macro must do is set \parindent % to the appropriate value for succeeding paragraphs and put the % proper indentation before mark. \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par \parindent 1em\noindent \hbox to \z@{\hss$^{\@thefnmark}$}#1} % \@makefnmark : A macro to generate the footnote marker that goes % in the text. Default used. % % **************************************** % * FIGURES AND TABLES * % **************************************** % % Float placement parameters. See LaTeX manual for their definition. % \setcounter{topnumber}{2} \def\topfraction{.7} \setcounter{bottomnumber}{1} \def\bottomfraction{.3} \setcounter{totalnumber}{3} \def\textfraction{.2} \def\floatpagefraction{.5} \setcounter{dbltopnumber}{2} \def\dbltopfraction{.7} \def\dblfloatpagefraction{.5} % % fix a BUG? in latex.tex % \let\@@addtocurcol\@addtocurcol \def\@addtocurcol{{\@floatplacement\@@addtocurcol}} % \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption. % NUMBER : Figure or table number--e.g., 'Figure 3.2' % TEXT : The caption text. % Macro should be called inside a \parbox of right width, with \normalsize. \long\def\@makecaption#1#2{ \vskip 10pt \setbox\@tempboxa\hbox{#1: #2} \ifdim \wd\@tempboxa >\hsize % IF longer than one line: \unhbox\@tempboxa\par % THEN set as ordinary paragraph. \else % ELSE center. \hbox to\hsize{\hfil\box\@tempboxa\hfil} \fi} % To define a float of type TYPE (e.g., TYPE = figure), the document style % must define the following. % % \fps@TYPE : The default placement specifier for floats of type TYPE. % % \ftype@TYPE : The type number for floats of type TYPE. Each TYPE has % associated a unique positive TYPE NUMBER, which is a power % of two. E.g., figures might have type number 1, tables type % number 2, programs type number 4, etc. % % \ext@TYPE : The file extension indicating the file on which the % contents list for float type TYPE is stored. For example, % \ext@figure = 'lof'. % % \fnum@TYPE : A macro to generate the figure number for a caption. % For example, \fnum@TYPE == Figure \thefigure. % % The actual float-making environment commands--e.g., the commands % \figure and \endfigure--are defined in terms of the macros \@float % and \end@float, which are described below. % % \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a % single-column float of type TYPE with PLACEMENT as the placement % specifier. The default value of PLACEMENT is defined by \fps@TYPE. % The environment is ended by \end@float. % E.g., \figure == \@float{figure}, \endfigure == \end@float. % FIGURE \newcounter{figure}[chapter] \def\thefigure{\thechapter.\@arabic\c@figure} \def\fps@figure{tbp} \def\ftype@figure{1} \def\ext@figure{lof} \def\fnum@figure{Figure \thefigure} \def\figure{\@float{figure}} \let\endfigure\end@float \@namedef{figure*}{\@dblfloat{figure}} \@namedef{endfigure*}{\end@dblfloat} % TABLE % \newcounter{table}[chapter] \def\thetable{\thechapter.\@arabic\c@table} \def\fps@table{tbp} \def\ftype@table{2} \def\ext@table{lot} \def\fnum@table{Table \thetable} \def\table{\@float{table}} \let\endtable\end@float \@namedef{table*}{\@dblfloat{table}} \@namedef{endtable*}{\end@dblfloat} % **************************************** % * TITLE AND ABSTRACT * % **************************************** % % \def\maketitle{ \typeout{Title page} \begin{titlepage} \let\footnotesize\small % Local definitions to make \thanks produce \let\footnoterule\relax % \normalsize footnotes with no separating rule. \setcounter{page}{0} \null \vskip 20pt plus 1fil \begin{center} {\LARGE \uppercase\expandafter{\@title} \par} \vglue 2em plus 1fil {\large by \par} \vglue 2em plus 1fil {\large \lineskip .75em \begin{tabular}[t]{c}\uppercase\expandafter{\@author}\end{tabular} \par } \vglue 4em plus 1fil {\large A thesis submitted in partial fulfillment of the \par} {\large requirements for the degree of \par} \vglue 1.5em plus 1fil {\large Doctor of Philosophy \par} {\large (\@department)\par} \vglue 3em plus 1fil {\large at the \par} \vglue 0.75em plus 1fil {\large UNIVERSITY OF WISCONSIN --- MADISON \par} \vglue 0.75em plus 1fil {\large \@date \par} \end{center} \par\vglue 2em plus 1fil\@thanks\null \end{titlepage} \setcounter{footnote}{0} % Footnotes start at zero again. \let\thanks\relax %%% SAVE THESE \gdef\@thanks{}\gdef\@department{}\gdef\@author{}\gdef\@title{} \let\maketitle\relax % only ONCE!? } \def\department#1{\gdef\@department{#1}} \def\advisor#1{\gdef\@advisor{#1}} \department{??DEPARTMENT??} \advisor{??ADVISOR??} \date{\number\year} % **************************************** % * PAGE STYLES * % **************************************** % % The page style 'foo' is defined by defining the command \ps@foo. This % command should make only local definitions. There should be no stray % spaces in the definition, since they could lead to mysterious extra % spaces in the output. % % The \ps@... command defines the macros \@oddhead, \@oddfoot, % \@evenhead, and \@evenfoot to define the running heads and % feet---e.g., \@oddhead is the macro to produce the contents of the % heading box for odd-numbered pages. It is called inside an \hbox of % width \textwidth. % % To make headings determined by the sectioning commands, the page style % defines the commands \chaptermark, \sectionmark, ... , where % \chaptermark{TEXT} is called by \chapter to set a mark, and so on. % The \...mark commands and the \...head macros are defined with the % help of the following macros. (All the \...mark commands should be % initialized to no-ops.) % % MARKING CONVENTIONS: % LaTeX extends TeX's \mark facility by producing two kinds of marks % a 'left' and a 'right' mark, using the following commands: % \markboth{LEFT}{RIGHT} : Adds both marks. % \markright{RIGHT} : Adds a 'right' mark. % \leftmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot % macro, gets the current 'left' mark. Works like TeX's % \botmark command. % \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot % macro, gets the current 'right' mark. Works like TeX's % \firstmark command. % The marking commands work reasonably well for right marks 'numbered % within' left marks--e.g., the left mark is changed by a \chapter command and % the right mark is changed by a \section command. However, it does % produce somewhat anomalous results if two \bothmark's occur on the same page. % \mark{{}{}} % Initializes TeX's marks \def\ps@empty{\def\@oddhead{\versiontag\hfil} \def\@oddfoot{} \def\@evenhead{\versiontag\hfil}\def\@evenfoot{}} % % Definiton of 'plain' page style. % This page style is used on 2nd and subsequent pages of a chapter \def\ps@plain{% \def\@oddhead{\versiontag\hfil\rm\thepage} \def\@oddfoot{} \let\@evenhead\@oddhead \let\@evenfoot\@oddfoot} % Definition of 'headings' page style % Note the use of ##1 for parameter of \def\chaptermark inside the % \def\ps@headings. % %%% \newdimen\shortpage % text height of a chapter page %%% \newbox\mybox %%% \shortpage\textheight \advance\shortpage -\footskip% find page length %%% \advance\textheight-\footskip% %%% \setbox\@tempboxa=\vsplit255 to \shortpage% chop off any extra lines %%% \setbox\mybox=\box255 \setbox255=\box\@tempboxa% %%% \newpage \unvbox\mybox% %%% \unvbox255 \setbox255=\box\@tempboxa% and return them to the input %%% \advance\textheight by -\footskip% leave room for the footer \def\ps@headings{% \def\@oddfoot{\hfil\rm\thepage\hfil}% centered page number \let\@evenfoot\@oddfoot \def\@oddhead{\versiontag\hfil} \let\@evenhead\@oddhead \def\chaptermark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\m@ne \@chapapp\ \thechapter. \ \fi ##1}}}} % Definition of 'myheadings' page style. The user's \head command % changes the definition of \@lhead and/or \@rhead. % \def\ps@myheadings{\def\@oddhead{\hbox{}\sl\@rhead \hfil \rm\thepage}% \def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\@lhead\hbox {}}% \def\@evenfoot{}\def\chaptermark##1{}\def\sectionmark##1{}} % FOR VERSION 2.08 %\def\ps@myheadings{\ps@headings\def\chaptermark##1{}\def\sectionmark##1{}} % **************************************** % * 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} % **************************************** % * INITIALIZATION * % **************************************** % % Default initializations \ps@plain % 'plain' page style \pagenumbering{roman} % roman page numbers \onecolumn % Single-column. \raggedbottom % Ragged bottom