summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/utthesis/utthesis.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/utthesis/utthesis.sty
Initial commit
Diffstat (limited to 'macros/latex/contrib/utthesis/utthesis.sty')
-rw-r--r--macros/latex/contrib/utthesis/utthesis.sty716
1 files changed, 716 insertions, 0 deletions
diff --git a/macros/latex/contrib/utthesis/utthesis.sty b/macros/latex/contrib/utthesis/utthesis.sty
new file mode 100644
index 0000000000..9b04f9a19b
--- /dev/null
+++ b/macros/latex/contrib/utthesis/utthesis.sty
@@ -0,0 +1,716 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% File: utthesis.sty, version 2.0, January 1995
+%%% =============================================
+%%% Copyright (c) 1995 by Dinesh Das. All rights reserved.
+%%% This file is free and can be modified or distributed as long as
+%%% you meet the following conditions:
+%%%
+%%% (1) This copyright notice is kept intact on all modified copies.
+%%% (2) If you modify this file, you MUST NOT use the original file name.
+%%%
+%%% This file defines macros used for preparing theses for
+%%% The University of Texas at Austin. It has been tested with LaTeX2e.
+%%% I do NOT guarantee that it will meet all requirements of the
+%%% Graduate School; however, if you find that something violates the
+%%% specifications, please send me email at <ddas@cs.utexas.edu> and
+%%% I will try to fix it.
+%%%
+%%% Usage:
+%%% ======
+%%%
+%%% To use this file with LaTeX2e, make sure your TEXINPUTS environment
+%%% variable contains the directory in which this file is located.
+%%% Include this file as a package in the preamble:
+%%%
+%%% \documentclass[...]{report}
+%%% \usepackage{utthesis}
+%%%
+%%% On non-UNIX systems, there might be different environment variables
+%%% that might need to be set. I know nothing about such machines,
+%%% however; consult your local guru for details.
+%%%
+%%% A template for a thesis is provided in the file "utthesis.doc", available
+%%% from the same place where you obtained this file.
+%%%
+%%% Command Names:
+%%% ==============
+%%%
+%%% ALL command names used in this file that are used to format the
+%%% thesis begin with "thesis" (e.g., \thesisauthor). All of these
+%%% commands can be changed by the user using \renewcommand, e.g.,
+%%%
+%%% \renewcommand{\thesisauthor}{First M. Last}
+%%%
+%%% after loading the package in LaTeX2e.
+%%%
+%%% The following is a list of all thesis-related variables used together
+%%% with their default values:
+%%%
+%%% \thesisauthor %% Name of the author; defaults to "Ima Student".
+%%% \thesismonth %% Month of graduation; defaults to "May".
+%%% \thesisyear %% Year of graduation; defaults to "1994".
+%%% \thesistitle %% Full title of dissertation; defaults to "Title".
+%%% \thesistitletypesize
+%%% %% Typesize used to typeset \thesistitle; defaults
+%%% %% to \Large.
+%%% \thesisauthorpreviousdegrees
+%%% %% Previous degrees of author; defaults to "Degree"
+%%% \thesissupervisor%% Name of thesis supervisor; defaults to "Supervisor"
+%%% \thesisauthoraddress
+%%% %% Permanent address of author; defaults to "USA"
+%%% \thesisapprovedby%% Approval of dissertation committee; defaults to
+%%% %% "Approved by".
+%%% \thesisapprovedbytypesize
+%%% %% Typesize used to typeset \thesisapprovedby; defaults
+%%% %% to \large.
+%%% \thesiscopyrightholder
+%%% %% Name of copyright holder; defaults to \thesisauthor.
+%%% \thesistypist %% Name of thesis typist; defaults to "the author".
+%%% \thesistype %% Type of thesis; defaults to "Dissertation".
+%%% \thesistypetypesize
+%%% %% Typesize used to typeset \thesistype; defaults to
+%%% %% \large.
+%%% \thesisdegree %% Degree for which thesis is submitted; defaults to
+%%% %% "Doctor of Philosophy".
+%%% \thesisdegreetypesize
+%%% %% Typesize used to typeset \thesisdegree; defaults to
+%%% %% \large.
+%%% \thesisdegreeabbreviation
+%%% %% Abbreviation of \thesisdegree; defaults to "Ph.D.".
+%%% \thesiscommitteesize
+%%% %% Number of members in thesis committee; defaults to 5.
+%%% \thesiscommittee %% Name of thesis committee; defaults to
+%%% %% "Dissertation Committee:".
+%%% \thesiscommitteetypesize
+%%% %% Typesize used to typeset \thesiscommittee; defaults
+%%% %% to \large.
+%%% \thesisvitahead %% Title of the vita page; defaults to "Vita".
+%%% \thesisvitaheadtypesize
+%%% %% Typesize used to typeset \thesisvitahead; unused.
+%%% \thesisacknowledgmenthead
+%%% %% Title of the acknowledgments page; defaults to
+%%% %% "Acknowledgments".
+%%% \thesisacknowledgmentheadtypesize
+%%% %% Typesize used to typeset \thesisacknowledgmenthead;
+%%% %% unused.
+%%% \thesisacknowledgmentsigname
+%%% %% Signature on the acknowledgments page; defaults to
+%%% %% \thesisauthor.
+%%% \thesisacknowledgmentsignametypesize
+%%% %% Typesize used to typeset \thesisacknowledgmentsigname;
+%%% %% defaults to \large.
+%%% \thesisacknowledgmentsigplace
+%%% %% Address used on the acknowledgments page; defaults
+%%% %% to "The University of Texas at Austin \\ \thesismonth
+%%% %% \thesisyear".
+%%% \thesisstudent %% Name of author with previous degrees; defaults to
+%%% %% "\thesisauthor, \thesisauthorpreviousdegrees".
+%%% \thesisstudenttypesize
+%%% %% Typesize used to typeset \thesisstudent; defaults
+%%% %% to \large.
+%%% \thesisdedication%% Person or thing dedicated to; defaults to
+%%% %% "To myself". :-)
+%%%
+%%% Most of the default values will satisfy the Graduate School's
+%%% requirements; however, at a minimum, the user SHOULD redefine the
+%%% following commands:
+%%%
+%%% \thesisauthor
+%%% \thesismonth
+%%% \thesisyear
+%%% \thesistitle
+%%% \thesisauthorpreviousdegrees
+%%% \thesissupervisor
+%%% \thesisauthoraddress
+%%%
+%%% In addition to the above variables, the following commands are
+%%% provided to generate the optional sections of the thesis:
+%%%
+%%% \thesiscopyrightpage
+%%% %% Generates the copyright page.
+%%% \thesistitlepage %% Generates the title page.
+%%% \thesissignaturepage
+%%% %% Generates the signature page.
+%%% \thesisdedicationpage
+%%% %% Generates the dedication page.
+%%%
+%%% There are also a few environments to generate paragraph-like text:
+%%%
+%%% thesisacknowledgments
+%%% %% Text of acknowledgments.
+%%% thesisabstract %% Text of abstract.
+%%% thesisauthorvita %% Text of author's vita.
+%%%
+%%% Bells and Whistles:
+%%% ===================
+%%%
+%%% The following commands are provided purely for playing around with.
+%%% They should be used in the document preamble (before \begin{document}).
+%%%
+%%% \thesisdraft %% Prints a timestamp at the top of each page. This
+%%% %% must be invoked in the document preamble (before
+%%% %% \begin{document}).
+%%% \leftchapter, \centerchapter, \rightchapter
+%%% %% These commands generate left-justified, centered,
+%%% %% and right-justified chapter headings, respectively.
+%%% \singlespace, \oneandhalfspace, \doublespace
+%%% %% These define the line spacing to single-space,
+%%% %% one-and-one-half space, and double-space
+%%% %% respectively. Note that the minimum spacing
+%%% %% required by the Graduate School is \oneandhalfspace,
+%%% %% but \singlespace is useful, e.g., when using
+%%% %% \thesisdraft.
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\typeout{*************************************************************}
+\typeout{** UT Austin Thesis Style File, version 2.0, January 1995 }
+\typeout{** Written by Dinesh Das }
+\typeout{** Dept. of Computer Sciences }
+\typeout{** The University of Texas at Austin }
+\typeout{*************************************************************}
+
+%%%
+%%% Set up page layout parameters.
+%%%
+\setlength{\textheight}{8in}
+\setlength{\oddsidemargin}{0.5in}
+\setlength{\evensidemargin}{0.5in}
+\setlength{\textwidth}{5.50in}
+\setlength{\topmargin}{0.5in}
+\setlength{\headheight}{0in}
+\setlength{\headsep}{0in}
+\setlength{\parindent}{12mm}
+
+%%%
+%%% Set up default values.
+%%%
+\newcommand{\@universityname}{The University of Texas at Austin}
+\newcommand{\@publicationno}{Publication No.\ \line(1,0){40} \\[10mm]}
+\newcommand{\thesisauthor}{Ima Student}
+\newcommand{\thesismonth}{May}
+\newcommand{\thesisyear}{1994}
+\newcommand{\thesistitle}{Title}
+\newcommand{\thesistitletypesize}{\Large}
+\newcommand{\thesisauthorpreviousdegrees}{Degree}
+\newcommand{\thesissupervisor}{Supervisor}
+\newcommand{\thesisauthoraddress}{USA}
+\newcommand{\thesisapprovedby}{Approved by}
+\newcommand{\thesisapprovedbytypesize}{\large}
+\newcommand{\thesiscopyrightholder}{\thesisauthor}
+\newcommand{\thesistypist}{the author}
+\newcommand{\thesistype}{Dissertation}
+\newcommand{\thesistypetypesize}{\large}
+\newcommand{\thesistypesize}{\large}
+\newcommand{\thesisdegree}{Doctor of Philosophy}
+\newcommand{\thesisdegreetypesize}{\large}
+\newcommand{\thesisdegreeabbreviation}{Ph.D.}
+\newcommand{\thesiscommitteesize}{5}
+\newcommand{\thesiscommittee}{Dissertation Committee:}
+\newcommand{\thesiscommitteetypesize}{\large}
+\newcommand{\thesisvitahead}{Vita}
+\newcommand{\thesisvitaheadtypesize}{\Large}
+\newcommand{\thesisacknowledgmenthead}{Acknowledgments}
+\newcommand{\thesisacknowledgmentheadtypesize}{\Large}
+\newcommand{\thesisacknowledgmentsigname}{\thesisauthor}
+\newcommand{\thesisacknowledgmentsignametypesize}{\large}
+\newcommand{\thesisacknowledgmentsigplace}%
+ {{\slshape
+ \renewcommand{\arraystretch}{1.0}
+ \begin{tabular}{l}
+ \@universityname \\
+ \thesismonth\ \thesisyear
+ \end{tabular}}}
+\newcommand{\thesisstudent}{\thesisauthor, \thesisauthorpreviousdegrees}
+\newcommand{\thesisstudenttypesize}{\large}
+\newcommand{\thesisdedication}{To myself}
+
+%%%
+%%% Command for masters theses. \phdthesis is provided for symmetry.
+%%%
+\newcommand{\mastersthesis}{
+ \renewcommand{\thesistype}{Thesis}
+ \renewcommand{\@publicationno}{}
+ \renewcommand{\thesisdegree}{Master of Arts}
+ \renewcommand{\thesisdegreeabbreviation}{M.A.}
+ \renewcommand{\thesiscommitteesize}{2}
+ \renewcommand{\thesiscommittee}{Supervising Committee:}}
+\newcommand{\phdthesis}{}
+
+%%%
+%%% Set up other commands.
+%%%
+\newcommand{\@defaultbaselinestretch}{1.5}
+\newcommand{\@base}[1]{\renewcommand{\baselinestretch}{#1}}
+\newcommand{\singlespace}{\renewcommand{\@defaultbaselinestretch}{1.1}}
+\newcommand{\oneandhalfspace}{\renewcommand{\@defaultbaselinestretch}{1.5}}
+\newcommand{\doublespace}{\renewcommand{\@defaultbaselinestretch}{1.7}}
+\newcommand{\@thesistitle}{\textbf{\thesistitletypesize \thesistitle}}
+\newcommand{\@thesisapprovedby}%
+ {\textbf{\thesisapprovedbytypesize \thesisapprovedby}}
+\newcommand{\@thesistype}{\textbf{\thesistypetypesize \thesistype}}
+\newcommand{\@thesisdegree}{\textbf{\thesisdegreetypesize \thesisdegree}}
+\newcommand{\@thesisdegreeabbreviation}{\thesisdegreeabbreviation}
+\newcommand{\@thesiscommittee}%
+ {\textbf{\thesiscommitteetypesize \thesiscommittee}}
+\newcommand{\@thesisvitahead}{\thesisvitahead}
+\newcommand{\@thesisacknowledgmenthead}%
+ {\thesisacknowledgmenthead}
+\newcommand{\@thesisacknowledgmentsigname}%
+ {\textsc{\thesisacknowledgmentsignametypesize \thesisacknowledgmentsigname}}
+\newcommand{\@thesisacknowledgmentsigplace}{\thesisacknowledgmentsigplace}
+\newcommand{\@thesisstudent}{\textbf{\thesisstudenttypesize \thesisstudent}}
+
+%%%
+%%% Indent the first paragraph after a sectioning command.
+%%%
+%%% \let\@afterindentfalse\@afterindenttrue
+%%% \@afterindenttrue
+
+%%%
+%%% Set up default page numbering and line spacing.
+%%%
+\newcommand{\@textpagenumbering}{arabic}
+\newcommand{\@preamblepagenumbering}{roman}
+\newcommand{\@textpagestyle}{plain}
+\newcommand{\@preamblepagestyle}{plain}
+\pagenumbering{\@preamblepagenumbering}
+\@base{\@defaultbaselinestretch}
+
+\newcommand{\@chaptertype}{\chaptername}
+\newcommand{\@appendix}{0}
+
+%%%
+%%% Command to generate copyright page.
+%%%
+\newcommand{\thesiscopyrightpage}{
+ \thispagestyle{empty}
+ \strut \vfill
+ \begin{center}
+ \begin{spacing}{2}
+ Copyright \\ by \\ \thesiscopyrightholder \\ \thesisyear
+ \end{spacing}
+ \end{center}
+ \vfill \strut
+ \newpage}
+
+%%%
+%%% Command to generate title page.
+%%%
+\newcommand{\thesistitlepage}{
+ \thispagestyle{empty}
+ \begin{spacing}{2}
+ \begin{center}
+ \@thesistitle \\[8mm]
+ by \\[4mm]
+ \@thesisstudent \\
+ \vspace{26mm}
+ \textbf{\thesistypetypesize \thesistype} \\
+ Presented to the Faculty of the Graduate School of \\
+ \@universityname \\
+ in Partial Fulfillment \\
+ of the Requirements \\
+ for the Degree of \\[4mm]
+ \textbf{\thesisdegreetypesize \thesisdegree} \\
+ \vspace{26mm}
+ \textbf{\Large \@universityname} \\[4mm]
+ \thesismonth \ \thesisyear
+ \end{center}
+ \end{spacing}
+ \newpage}
+
+%%%
+%%% Command to generate signature page.
+%%%
+\newcommand{\thesissignaturepage}{
+ \thispagestyle{empty}
+ \begin{spacing}{2}
+ \strut \vfill
+ \begin{center}
+ \@thesistitle
+ \end{center}
+ \vspace{50mm}
+ \mbox{} \hfill \begin{minipage}{67mm}
+ \begin{spacing}{1}
+ \@thesisapprovedby\hfill\mbox{} \\
+ \@thesiscommittee \\[15mm]
+ \end{spacing}
+ \setlength{\unitlength}{1mm}
+ \begin{picture}(67,70)(0,0)
+ \multiput(0,70)(0,-10)
+ {\thesiscommitteesize}{\line(1,0){67}}
+ \end{picture}
+ \end{minipage}
+ \vfill \strut
+ \end{spacing}
+ \newpage}
+
+%%%
+%%% Environment to generate abstract page.
+%%%
+\newenvironment{thesisabstract}
+ {\addcontentsline{toc}{chapter}{Abstract}
+ \vspace*{0mm}
+ \begin{center}
+ \setlength{\unitlength}{1mm}
+ \begin{spacing}{2}
+ \@thesistitle \\[10mm]
+ \end{spacing}
+ \begin{spacing}{\@defaultbaselinestretch}
+ \@publicationno
+ \thesisauthor, \thesisdegreeabbreviation \\
+ \@universityname, \thesisyear \\[10mm]
+ \end{spacing}
+ Supervisor: \thesissupervisor \\
+ \end{center}
+ \vspace{5mm}
+ \begin{spacing}{\@defaultbaselinestretch} \noindent}
+ {\end{spacing} \newpage}
+
+%%%
+%%% Command to generate dedication page.
+%%%
+\newcommand{\thesisdedicationpage}{
+ \thispagestyle{empty}
+ \strut \vfill
+ \begin{spacing}{\@defaultbaselinestretch}
+ \begin{center}
+ \thesisdedication
+ \end{center}
+ \end{spacing}
+ \vfill \strut
+ \newpage}
+
+%%%
+%%% Environment to generate acknowledgments page.
+%%%
+\newenvironment{thesisacknowledgments}
+ {%\doublespace\small\normalsize
+ \chapter*{\@thesisacknowledgmenthead
+ \@mkboth{\uppercase{\@thesisacknowledgmenthead}}
+ {\uppercase{\@thesisacknowledgmenthead}}}
+ \addcontentsline{toc}{chapter}{\@thesisacknowledgmenthead}
+ \begin{spacing}{\@defaultbaselinestretch}}
+ {\end{spacing} \par \vspace{20mm}
+ \raggedleft \@thesisacknowledgmentsigname \\[10mm]
+ \raggedright \@thesisacknowledgmentsigplace \newpage}
+
+%%%
+%%% Environment to generate vita page.
+%%%
+\newenvironment{thesisauthorvita}
+ {\clearpage
+ \chapter*{\@thesisvitahead
+ \@mkboth{\uppercase{\@thesisvitahead}}
+ {\uppercase{\@thesisvitahead}}}
+ \addcontentsline{toc}{chapter}{\@thesisvitahead}
+ \begin{spacing}{\@defaultbaselinestretch}}
+ {\end{spacing} \par \vspace{20mm}
+ \noindent Permanent Address:
+ \begin{minipage}[t]{90mm}
+ \thesisauthoraddress
+ \end{minipage}
+ \par \vspace{15mm}
+ \noindent This \lowercase\expandafter{\thesistype} was
+ typeset with \LaTeXe\footnote{\LaTeXe{} is an extension of \LaTeX.
+ \LaTeX{} is a collection of macros for \TeX. \TeX{} is a
+ trademark of the American Mathematical Society. The macros used in
+ formatting this \lowercase\expandafter{\thesistype} were written
+ by Dinesh Das, Department of Computer Sciences, The University
+ of Texas at Austin.
+ } by \thesistypist.}
+
+\newcommand{\@chapteralignment}{\centering}
+\renewcommand{\chapter}{\clearpage
+ \ifnum\@appendix=1
+ \renewcommand{\@chaptertype}{\appendixname}
+ \else
+ \renewcommand{\@chaptertype}{\chaptername}
+ \fi
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter
+ }
+\renewcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \renewcommand{\@chapapp}{\appendixname}%
+ \renewcommand{\thechapter}{\Alph{chapter}}
+ \renewcommand{\@appendix}{1}}
+
+%%%
+%%% Define chapter heading placement commands.
+%%%
+\newcommand{\leftchapter}{
+ \renewcommand{\@chapteralignment}{\raggedright}}
+\newcommand{\centerchapter}{
+ \renewcommand{\@chapteralignment}{\centering}}
+\newcommand{\rightchapter}{
+ \renewcommand{\@chapteralignment}{\raggedleft}}
+
+%%%
+%%% Command from report.cls, (c) LaTeX3 Project.
+%%%
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\@chaptertype{} \protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}{\@chaptertype{} #1}
+ \fi
+ \ifnum\value{chapter}=1
+ \ifnum\@appendix=0
+ \pagestyle{\@textpagestyle}
+ \pagenumbering{\@textpagenumbering}
+ \fi
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi
+ }
+
+%%%
+%%% Command from report.cls, (c) LaTeX3 Project.
+%%%
+\def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \@chapteralignment \reset@font
+ \ifnum \c@secnumdepth >\m@ne
+ \huge\bfseries \@chapapp{} \thechapter
+ \par
+ \vskip 20\p@
+ \fi
+ \Huge \bfseries #1\par
+ \nobreak
+ \vskip 40\p@
+ }}
+\def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \@chapteralignment
+ \reset@font
+ \Huge \bfseries #1\par
+ \nobreak
+ \vskip 40\p@
+ }}
+
+%%%
+%%% Command from report.cls, (c) LaTeX3 Project.
+%%%
+\renewenvironment{thebibliography}[1]
+ {\chapter*{\bibname
+ \@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}}%
+ \addcontentsline{toc}{chapter}{\bibname}
+ \list{\@biblabel{\arabic{enumiv}}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \if@openbib
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ \fi
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\arabic{enumiv}}}%
+ \if@openbib
+ \renewcommand\newblock{\par}
+ \else
+ \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
+ \fi
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.=\@m}
+ {\def\@noitemerr{\@warning{Empty `thebibliography' environment}}%
+ \endlist}
+
+%%%
+%%% Command from report.cls, (c) LaTeX3 Project.
+%%%
+\renewcommand\listoftables{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listtablename
+ \@mkboth{\uppercase{\listtablename}}{\uppercase{\listtablename}}}%
+ \addcontentsline{toc}{chapter}{\listtablename}
+ \@starttoc{lot}%
+ \if@restonecol\twocolumn\fi
+ }
+\renewcommand\listoffigures{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\listfigurename
+ \@mkboth{\uppercase{\listfigurename}}%
+ {\uppercase{\listfigurename}}}%
+ \addcontentsline{toc}{chapter}{\listfigurename}
+ \@starttoc{lof}%
+ \if@restonecol\twocolumn\fi
+ }
+\renewcommand\tableofcontents{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\contentsname
+ \@mkboth{\uppercase{\contentsname}}{\uppercase{\contentsname}}}%
+ \@starttoc{toc}%
+ \if@restonecol\twocolumn\fi
+ }
+
+%%%
+%%% Command to print draft version of the thesis.
+%%%
+\newcommand{\thesisdraft}{
+ \setlength{\topmargin}{0in}
+ \setlength{\headheight}{0.2in}
+ \setlength{\headsep}{0.25in}
+ \renewcommand{\@textpagestyle}{myheadings}
+ \def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@oddhead{\textsl{Draft of \timestamp}\hfil\thepage}%
+ \let\@mkboth\@gobbletwo
+ \let\chaptermark\@gobble
+ \let\sectionmark\@gobble}
+ }
+
+%%%
+%%% Code to compute current timestamp. Some parts by Martin Minow.
+%%%
+\newcount\hour \newcount\minute
+\hour=\time \divide \hour by 60
+\minute=\time
+\loop \ifnum \minute > 59 \advance \minute by -60 \repeat
+\def\thesistime{\ifnum \hour<13 \number\hour:%
+ \ifnum \minute<10 0\fi
+ \number\minute
+ \ifnum \hour<12 \ am\else \ pm\fi
+ \else \advance \hour by -12 \number\hour:%
+ \ifnum \minute<10 0\fi
+ \number\minute \ pm\fi}
+
+\def\thesisdate{\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}
+
+\newcount\dow
+\newcount\leap
+\newcount\x
+\newcount\y
+
+%leap = year + (month - 14)/12
+\leap=\month \advance\leap by -14 \divide\leap by 12
+ \advance\leap by \year
+
+%dow = (13 * (month + 10 - (month + 10)/13*12) - 1)/5
+\dow=\month \advance\dow by 10
+ \y=\dow \divide\y by 13 \multiply\y by 12
+ \advance\dow by -\y \multiply\dow by 13 \advance\dow by -1 \divide\dow by 5
+
+%dow += day + 77 + 5 * (leap % 100)/4
+\advance\dow by \day \advance\dow by 77
+ \x=\leap \y=\x \divide\y by 100 \multiply\y by 100 \advance\x by -\y
+ \multiply\x by 5 \divide\x by 4 \advance\dow by \x
+
+%dow += leap / 400
+\x=\leap \divide\x by 400 \advance\dow by \x
+
+%dow -= leap / 100 * 2;
+%dow = (dow % 7)
+\x=\leap \divide\x by 100 \multiply\x by 2 \advance\dow by -\x
+ \x=\dow \divide\x by 7 \multiply\x by 7 \advance\dow by -\x
+
+\def\thesisdayofweek{\ifcase\dow
+Sunday\or Monday\or Tuesday\or
+Wednesday\or Thursday\or Friday\or Saturday\fi}
+
+\def\timestamp{\thesistime, \thesisdayofweek, \thesisdate}
+
+%%%
+%%% Commands for spacing. Some parts from spacing.sty by Stephen Page.
+%%%
+\ifx\undefined\selectfont
+\def\@setsize#1#2#3#4{\@nomath#1
+ \let\@currsize#1\baselineskip
+ #2\baselineskip\baselinestretch\baselineskip
+ \parskip\baselinestretch\parskip
+ \setbox\strutbox\hbox{\vrule height.7\baselineskip
+ depth.3\baselineskip width\z@}
+ \normalbaselineskip\baselineskip#3#4}
+\else
+\def\@newbaseline{%
+ \ifx\undefined\setnew@baselineskip
+ \baselineskip\f@baselineskip\relax
+ \else
+ \setnew@baselineskip
+ \fi
+ \baselineskip\baselinestretch\baselineskip
+ \setbox\strutbox\hbox{\vrule\@height.7\baselineskip
+ \@depth.3\baselineskip \@width\z@}%
+ \normalbaselineskip\baselineskip}
+\fi
+%%%
+%%% Reset baselinestretch within footnotes and floats. Originally stolen
+%%% from Stanford thesis style.
+%%%
+\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
+ \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
+ \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
+ \@tfor \@tempa :=#2\do
+ {\if\@tempa h\advance\@tempcnta \@ne\fi
+ \if\@tempa t\advance\@tempcnta \tw@\fi
+ \if\@tempa b\advance\@tempcnta 4\relax\fi
+ \if\@tempa p\advance\@tempcnta 8\relax\fi
+ }\global\count\@currbox\@tempcnta}\@fltovf\fi
+ \global\setbox\@currbox\vbox\bgroup
+ \def\baselinestretch{1}
+ \ifx\undefined\selectfont
+ \small\normalsize
+ \else
+ \@newbaseline
+ \fi
+ \boxmaxdepth\z@
+ \hsize\columnwidth \@parboxrestore}
+\long\def\@footnotetext#1{\insert\footins{\def\baselinestretch{1}\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
+ {\rule{\z@}{\footnotesep}\ignorespaces
+ #1\strut}}}
+%%%
+%%% Stolen from MIT.
+%%%
+\def\spacing#1{\par%
+ \begingroup
+ \def\baselinestretch{#1}
+ \ifx\undefined\selectfont
+ \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi
+ \else
+ \@newbaseline
+ \fi}
+\def\endspacing{\par
+ \vskip \parskip
+ \vskip \baselineskip
+ \endgroup
+ \vskip -\parskip
+ \vskip -\baselineskip}
+