summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:58:42 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:58:42 +0000
commit9b5e238e48d9e40072ba8348fe272786a7cc13f6 (patch)
tree256022c4e9d46f47c4b6bf8970cd5eab015210fe
parent61f0745791ae9c7baef406e9fd3c94b8a2615792 (diff)
trunk/Master/texmf-dist/source/latex/uiucthesis
git-svn-id: svn://tug.org/texlive/trunk@569 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx1556
-rw-r--r--Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins14
2 files changed, 1570 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx
new file mode 100644
index 00000000000..70cc249ab42
--- /dev/null
+++ b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.dtx
@@ -0,0 +1,1556 @@
+\def\fileversion{v2.0} \def\filedate{2005/02/01}
+% \iffalse % this is a METACOMMENT !
+%% Package and Class "uiucthesis" for use with LaTeX2e.
+%
+%<class|package>\NeedsTeXFormat{LaTeX2e}
+%<class>\ProvidesClass{uiucthesis}
+%<package>\ProvidesPackage{uiucthesis}
+%<class|package> [\filedate\ \fileversion\ UIUC Thesis (PJC)]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\begin{document}
+\title{The \textsf{uiucthesis} class
+ \thanks{This file has version number \fileversion,
+ last revised \filedate.}}
+\author{Peter Czoschke\\czoschke@mrl.uiuc.edu\\ (Adapted from version by David Hull)}
+\date{\filedate}
+\maketitle
+\DocInput{uiucthesis.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{1103}
+%
+% \MakeShortVerb{\|}
+%
+% \def\pkg#1{\textsf{#1}}
+% \def\env#1{\textsf{#1}}
+%
+% \iffalse
+%<*example>
+% \fi
+% \begin{abstract}
+% Load the \pkg{uiucthesis} class for use with \LaTeX2e
+% to produce a document that conforms
+% to the format described in
+% \emph{Handbook for Graduate Students Preparing to Deposit}\cite{Handbook}.
+% \end{abstract}
+%
+% \section{The User Interface}
+%
+% This section describes how to use the \pkg{uiucthesis} class to
+% produce a thesis satisfying the format requirements of the
+% Grad College at UIUC.
+% I assume that you are familiar with \LaTeX, and highly
+% recommend that anyone attempting to use \LaTeX\ to produce a
+% thesis have access to a copy of the \LaTeX\ book\cite{Lamport}.
+%
+% \subsection{Using \pkg{uiucthesis}}
+%
+% To write a thesis, you load the UIUC thesis definitions
+% by loading the \pkg{uiucthesis} class at the beginning of
+% your \LaTeX\ document with the |\documentclass| command.
+% For example,
+% \begin{quote} \hrule \begin{verbatim}
+\documentclass[draftthesis,fullpage]{uiucthesis}
+% \end{verbatim} \hrule \end{quote}
+% \iffalse
+%<example>
+% \fi
+%
+% \DescribeMacro{[draftthesis]}
+% \DescribeMacro{[fancy]}
+% \DescribeMacro{[fullpage]}
+% The \pkg{uiucthesis} class provides a number of options.
+% The |[draftthesis]| option causes each page to have a header
+% proclaiming the document to be a draft copy, along with the
+% current time and date.
+% It also omits the preliminary part of the
+% thesis---currently only the copyright page.
+% This is marginally useful for saving paper before you
+% produce the final version of the thesis.
+% The |[fancy]| style option produces slightly fancier chapter headings.
+% The |[fullpage]| style option makes the margins as small as the
+% format requirements allow. Because wide text columns are generally
+% considered harder on the reader
+% this is not the default, but is provided as an option because people
+% seem to want it.
+% The |[fancy]| and |[fullpage]| options are incompatible---choose
+% one or the other.
+%
+% \DescribeMacro{[proquest]}
+% This option is meant to be used when you are ready to deposit your thesis.
+% For doctorates, the Grad College requires the submission of a specially
+% formatted abstract for the ProQuest publication service. To produce this
+% abstract, include the |[proquest]| option are reprocess your file. Everything
+% in your \LaTeX\ document will be ignored except the contents of the \env{abstract}
+% environment, which are printed out in the format required. Once the option is
+% removed from the |\documentclass| command, you can reprocess your thesis as
+% normal (the auxiliary files should be intact). To use this option, the name
+% of your thesis advisor needs to be specified with the |\advisor| command (see
+% below).
+%
+% \DescribeMacro{[edeposit]}
+% Use this option if you are depositing your thesis electronically. The title page
+% is different and the page numbering is slightly different since the committee
+% approval form is not included with your thesis. If this option is used, you
+% must specify your committee members with the |\committee| command (see below).
+%
+% \DescribeMacro{[toclabels]}
+% This option includes the ``Page'' label on the right-hand side of the first page
+% in the Table of Contents, List of Figures, and List of Tables. This is required by
+% some departments (or you may just like the way it looks).
+%
+% \DescribeMacro{[offcenter]}
+% In the last version of \pkg{uiucthesis}, the |[fancy]| option produced text with
+% asymmetric margins so that enough room for the chapter numbers was available
+% in the left margin. This version by default uses symmetric margins, even with the
+% |[fancy]| option. If you have a lot of chapters, your chapter numbers may spill into
+% the 1 inch margin required by the Grad College. In this case, the previous behavior
+% can be reproduced with the |[offcenter]| option, which shifts the margins approximately
+% 1/2 inch to the right.
+%
+% \subsection{The Title Page}
+%
+% The |\maketitle| command is redefined so that it creates a
+% title page with the correct format for a thesis at UIUC.
+%
+% \DescribeMacro{\phdthesis}
+% \DescribeMacro{\otherdoctorate}
+% \DescribeMacro{\msthesis}
+% \DescribeMacro{\othermasters}
+% \DescribeMacro{\department}
+% \DescribeMacro{\college}
+% Use the |\phdthesis| or |\msthesis| to set the correct thesis type.
+% If your thesis isn't for a ``Ph.D.'' or ``M.S.'', you can specify
+% your degree with either\linebreak
+% |\otherdoctorate{|\meta{degree name}|}{|\meta{abbreviation}|}| or\\
+% |\othermasters{|\meta{degree name}|}{|\meta{abbreviation}|}|.\\
+% For example, specifying |\phdthesis| is equivalent to giving the command\\
+% |\otherdoctorate{Doctor of Philosophy}{Ph.D.}|.\\
+% The default thesis type is |\phdthesis|. Set your department with\linebreak
+% |\department{|\meta{department}|}|. This defines the field your degree will be in, so leave out
+% ``Department of.''
+% The default department is ``Physics''.
+% Define your college with |\college{|\meta{college}|}|.
+% The default is college is ``Graduate College'';
+% you shouldn't need to change it.
+%
+% \DescribeMacro{\schools}
+% Use |\schools{|\meta{school list}|}| to list the previous degrees
+% you have received and the schools that you received them from.
+% Separate multiple degrees with |\\|.
+%
+% \DescribeMacro{\degreeyear}
+% Use |\degreeyear{|\meta{year}|}| to define the year in which
+% you will receive your degree. The default is the current year.
+%
+% \DescribeMacro{\advisor}
+% \DescribeMacro{\adviser}
+% Use |\advisor{|\meta{advisor name}|}| or |\adviser{|\meta{advisor name}|}| to specify the name of your
+% advisor. This is needed to produce the ProQuest abstract
+% (see the |[proquest]| option above). You only need to submit a
+% ProQuest abstract if you are a doctoral candidate.
+%
+% \DescribeMacro{\committee}
+% Use |\committee{|\meta{committee members}|}| to specify the members
+% of your committee and their titles as you want them to appear on the
+% title page. Separate members with |\\|. This is only needed for
+% electronically deposited theses.
+%
+% \DescribeMacro{\volume}
+% This macro provides nominal support for very long theses that must
+% be broken up into multiple volumes. Use |\volume{|\meta{number}|}|
+% to specify the volume number (a single arabic numeral). All this macro
+% does is place the word VOLUME with the number you specify on the title
+% page. You have to take care of what appears in each volume. The easiest
+% way to do this is to create two separate source files, one for each
+% volume.
+%
+% Here's how to produce an example similar to that in \cite{Handbook}.
+% \begin{quote} \hrule \begin{verbatim}
+\begin{document}
+
+\title{Coffee Consumption of Graduate Students \\
+ Trying to Finish Dissertations}
+\author{Juan Valdez}
+\department{Food Science}
+\schools{B.A., University of Columbia, 1981\\
+ A.M., University of Illinois at Urbana-Champaign, 1986}
+\phdthesis
+\advisor{Java Jack}
+\degreeyear{1994}
+\maketitle
+% \end{verbatim} \hrule \end{quote}
+% \iffalse
+%<example>
+% \fi
+%
+% \subsection{Front Matter}
+%
+% \DescribeMacro{\frontmatter}
+% Typically, a thesis might have an Abstract, a Dedication, some
+% Acknowledgments, and a Preface before the Table of Contents.
+% Use the |\frontmatter| command to start this preliminary section
+% of the thesis.
+% The |\frontmatter| command sets the page number of the next page
+% to roman numeral iii (or ii if the |[edeposit]| option is used).
+% (The title page is page i, and the certificate
+% of committee approval, the ``red-bordered form,'' is page ii.)
+%
+% \DescribeMacro{abstract}
+% The abstract should appear in the \env{abstract} environment. Normally,
+% this just produces another chapter with |\chapter*{Abstract}|,
+% but if the |[proquest]| option
+% is specified, then the contents of this environment are used
+% for the ProQuest abstract.
+%
+% \DescribeMacro{dedication}
+% A dedication page can be printed with the \env{dedication} environment.
+% This produces a separate page with the dedication centered horizontally
+% and vertically, with the text in italics.
+%
+% After this front matter comes the Table of Contents,
+% List of Tables, List of Figures, etc. Use the standard \LaTeX\
+% commands |\tableofcontents|, |\listoftables|, |\listoffigures|, etc.,
+% to generate them.
+% In the \pkg{uiucthesis} format these lists are all single spaced.
+%
+% \DescribeMacro{symbollist}
+% \DescribeMacro{symbollist*}
+% Optionally, these tables can be followed by a List of Abbreviations and/or
+% List of Symbols. Introduce these with the |\chapter*| command. To aid in
+% making these lists, the \env{symbollist} and \env{symbollist*} environments are
+% defined in \pkg{uiucthesis}. These environments produce a two-column list
+% as illustrated below. By default the left column is 1 inch wide but can
+% be specified with an optional argument. In the starred environment, the left
+% column is left-justified, otherwise it is centered. See the example below.
+%
+% Here's an example of what the front matter of a typical
+% thesis looks like. First comes the Abstract and the Dedication, both of
+% which are optional.
+% \begin{quote} \hrule \begin{verbatim}
+\frontmatter
+
+%% Create an abstract that can also be used for the ProQuest abstract.
+%% Note that ProQuest truncates their abstracts at 350 words.
+\begin{abstract}
+This is a comprehensive study of caffeine consumption by graduate
+students at the University of Illinois who are in the very final
+stages of completing their doctoral degrees. A study group of six
+hundred doctoral students\ldots.
+\end{abstract}
+
+%% Create a dedication in italics with no heading, centered vertically
+%% on the page.
+\begin{dedication}
+To Father and Mother.
+\end{dedication}
+
+%% Create an Acknowledgements page, many departments require you to
+%% include funding support in this.
+\chapter*{Acknowledgements}
+
+This project would not have been possible without the support of
+many people. Many thanks to my adviser, Lawrence T. Strongarm, who
+read my numerous revisions and helped make some sense of the
+confusion. Also thanks to my committee members, Reginald Bottoms,
+Karin Vegas, and Cindy Willy, who offered guidance and support.
+Thanks to the University of Illinois Graduate College for awarding
+me a Dissertation Completion Fellowship, providing me with the
+financial means to complete this project. And finally, thanks to
+my husband, parents, and numerous friends who endured this long
+process with me, always offering support and love.
+
+%% The thesis format requires these lists to come in the following
+%% order, all major sections after the Table of Contents must be listed
+%% therein, which is automatically taken care of in uiucthesis:
+%%
+%% Table of Contents
+%% List of Tables
+%% List of Figures or List of Illustrations
+%% List of Symbols and/or Abbreviations
+
+\tableofcontents
+\listoftables
+\listoffigures
+% \end{verbatim} \hrule \end{quote}
+% \iffalse
+%<example>
+% \fi
+%
+% If you want a List of Symbols or Abbreviations, you can do so as follows:
+% \begin{quote} \hrule \begin{verbatim}
+%% Create a List of Abbreviations. The left column
+%% is 1 inch wide and left-justified
+\chapter*{List of Abbreviations}
+
+\begin{symbollist*}
+\item[CA] Caffeine Addict.
+\item[CD] Coffee Drinker.
+\end{symbollist*}
+
+%% Create a List of Symbols. The left column
+%% is 0.7 inch wide and centered
+\chapter*{List of Symbols}
+
+\begin{symbollist}[0.7in]
+\item[$\tau$] Time taken to drink one cup of coffee.
+\item[$\mu$g] Micrograms (of caffeine, generally).
+\end{symbollist}
+% \end{verbatim} \hrule \end{quote}
+% \iffalse
+%<example>
+% \fi
+%
+% \subsection{Main Matter}
+%
+% \DescribeMacro{\mainmatter}
+% Begin the main body of your thesis with the |\mainmatter| command.
+% It resets the page number to arabic numeral 1.
+% You can now use any of the commands defined by the
+% the book document class to write your thesis.
+%
+% In the following example, each of the chapters
+% has been broken out into separate files that are inserted into
+% this main file with the |\include| command. This allows the
+% thesis to be proofed quickly while it is being revised with
+% the |\includeonly| command. To provide an example of what the
+% chapter headings look like, one chapter has been explicitly
+% coded. (Try recompiling the example file with the |[fancy]|
+% option instead of |[fullpage]| to see the effect.)
+%
+% \begin{quote} \hrule \begin{verbatim}
+\mainmatter
+
+\include{1-introduction}
+\include{2-related}
+\include{3-model}
+\include{4-predictions}
+
+\chapter{Conclusions}
+
+We conclude that graduate students like coffee.
+
+% \end{verbatim} \hrule \end{quote}
+% \iffalse
+%<example>
+% \fi
+%
+% \subsection{Reference Matter}
+%
+% \DescribeMacro{\appendix}
+% To switch from the body of your thesis to the reference material
+% at the end, you should use the standard \LaTeX\ |\appendix| command.
+%
+% \begin{quote} \hrule \begin{verbatim}
+\appendix
+
+\include{A-data.tex}
+% \end{verbatim} \hrule \end{quote}
+% \iffalse
+%<example>
+% \fi
+%
+% \subsection{Back Matter}
+%
+% \DescribeMacro{\backmatter}
+% The last few chapters in your thesis should not have chapter
+% numbers, but should be listed in the Table of Contents.
+% These chapters include the Bibliography, the Index,
+% and the Vita. \LaTeX's |\backmatter| command provides the correct
+% formatting for these chapters.
+%
+% \DescribeMacro{\bibliography}
+% Use the standard \LaTeX\ bibliography commands to
+% create your bibliography. Most people will use Bib\TeX to do this.
+% (See \cite{Lamport}). For those in the sciences, you may want to
+% check out the \pkg{cite} package (it's pretty standard), which
+% will produce numerical citations that are sorted and compressed.
+% You can also use the \pkg{natbib} package, although it creates a
+% problem if the |headings| pagestyle is used.
+%
+% \DescribeMacro{\vita}
+% The |\vita| command begins a new chapter for your vita.
+% In fact, it does exactly the same thing as |\chapter{\vitaname}|,
+% where |\vitaname| is ``Vita.''
+%
+% \begin{quote} \hrule \begin{verbatim}
+\backmatter
+
+\bibliography{thesisbib}
+
+\chapter{Vita}
+
+Juan Valdez was born\ldots.
+
+\end{document}
+% \end{verbatim} \hrule \end{quote}
+%
+% \iffalse
+%</example>
+% \fi
+%
+% \section{User Customization}
+%
+% \DescribeMacro{\draftheader}
+% If you don't like the header that the the |[draftthesis]| option
+% creates, you can redefine the |\draftheader| command so that it
+% produces whatever text you want.
+%
+% \DescribeMacro{\thesisspacing}
+% The \pkg{uiucthesis} class loads \pkg{setspace} for the
+% line spacing commands. See the documentation in that package
+% for more information on the commands it provides.
+% By default, \pkg{uiucthesis} uses one and a half line spacing,
+% or double spacing if the |[fullpage]| option is specified.
+% If you're unhappy with that, you can override it by redefining the
+% |\thesisspacing| command.
+%
+% \DescribeMacro{\chaptertitlefont}
+% \DescribeMacro{\sectiontitlefont}
+% \DescribeMacro{\subsectiontitlefont}
+% \DescribeMacro{\subsubsectiontitlefont}
+% These macros contain the font declarations for the corresponding sectioning
+% levels and can be redefined to suit your aesthetic desires. Use
+% |\renewcommand| to do this in the preamble.
+%
+% \DescribeMacro{\chapternumberfont}
+% The |\chapternumberfont| macro is really most applicable when the |[fancy]| option is used. It
+% specifies the font declaration used for the chapter number set in the left
+% margin next to the title. Otherwise it specifies the font used to print
+% the words ``Chapter \#'' at the top of each chapter's opening page. Use
+% |\renewcommand| to redefine this macro in the preamble.
+%
+% \DescribeMacro{\chaptertitleheight}
+% This is the amount of space allotted for the chapter title at the top
+% of the page. You can redefine it using |\setlength| in the preamble.
+%
+% \DescribeMacro{\bibname}
+% This is a standard \LaTeX\ macro that contains the title of the reference
+% section at the end of your thesis; ``References'' by default. Use
+% |\renewcommand| to redefine it in the preamble.
+%
+% \DescribeMacro{\vitaname}
+% Like |\bibname| but it contains the name used for your vita at the very end.
+% The Grad College allows ``Vita'', ``Author's Biography'', or ``Curriculum Vitae'',
+% each of which is slightly different in format. See \cite{Handbook}.
+%
+% \DescribeMacro{\note}
+% This command inserts a marginal note just like |\marginpar| with two distinctions:
+% First, the note is single-spaced for compactness. Second, it is only printed when
+% the |[draftthesis]| option is used. Since marginal notes are not allowed in the final
+% draft, the |\note| command is recommended over the |\marginpar| command.
+%
+% \section{Compatibility}
+%
+% Compatibility with previous versions of \pkg{uiucthesis} are supported. Previously it
+% was implemented as a package rather than a class, in which case you opened the document
+% with:
+% \begin{quote} \hrule \begin{verbatim}
+% \documentclass[oneside,...]{book}
+% \usepackage[...]{uiucthesis}
+% \end{verbatim} \hrule \end{quote}
+% To provide backwards-compatibility, a style file is provided that has the same functionality
+% of the class file described herein. Similarly, (really) old versions of \pkg{uiucthesis}
+% used the \env{preliminary} and \env{thesis} environments, which are now deprecated
+% but backwards-compatibility support is still provided.
+%
+% \StopEventually{%
+% \begin{thebibliography}{9}
+% \bibitem{Handbook}
+% \emph{Handbook for Graduate Students Preparing to Deposit}.
+% \newblock Graduate College, University of Illinois at
+% Urbana-Champaign, 2004
+%
+% \bibitem{Lamport}
+% Leslie Lamport.
+% \newblock \emph{\LaTeX: A Document Preparation System}.
+% \newblock Addison-Wesley, 1994.
+% \end{thebibliography}
+% }
+%
+% \section{Implementation}
+%
+% This section shows the implementation of the \pkg{uiucthesis} class.
+% Unless you are interested in the details of how \pkg{uiucthesis} works,
+% you probably don't need to read it.
+%
+% \iffalse
+%<*class|package>
+\RequirePackage{setspace}
+% \fi
+%
+% \subsection{Compatibility}
+%
+% Provide compatibililty with older versions of \LaTeX.
+% \begin{macro}{\@ifundefined}
+% \begin{macrocode}
+\expandafter\ifx\csname @ifundefined\endcsname\relax
+ \def\@ifundefined#1{%
+ \expandafter\ifx\csname#1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MakeUppercase}
+% \begin{macrocode}
+\@ifundefined{MakeUppercase}{\let\MakeUppercase=\uppercase}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Option Processing}
+%
+% \begin{macrocode}
+\newif\if@thesisdraft \@thesisdraftfalse
+\newif\if@thesisfancy \@thesisfancyfalse
+\newif\if@fullpage \@fullpagefalse
+\newif\if@largecaps \@largecapsfalse
+\newif\if@proquest \@proquestfalse
+\newif\if@edeposit \@edepositfalse
+\newif\if@thesisoffcenter \@thesisoffcenterfalse
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{draftthesis}{\@thesisdrafttrue}
+\DeclareOption{fancy}{\@thesisfancytrue}
+\DeclareOption{fullpage}{\@fullpagetrue}
+\DeclareOption{proquest}{\@proquesttrue}
+\DeclareOption{toclabels}{\AtBeginDocument{\fancytoc}}
+\DeclareOption{edeposit}{\@edeposittrue}
+\DeclareOption{offcenter}{\@thesisoffcentertrue}
+% \end{macrocode}
+%
+% The |[largecaps]| option causes the title and author's name to
+% be use a ``large caps'' font on the title page. Otherwise,
+% \pkg{uiucthesis} just converts them to uppercase and uses the
+% normal fonts. The difference is that the spacing between the
+% characters in the large caps font is tuned for setting type in all caps.
+%
+% The large caps font is \emph{not a standard font}, and so it will not exist
+% unless you have installed it.
+%
+% \begin{macrocode}
+\DeclareOption{largecaps}{\@largecapstrue}
+% \end{macrocode}
+%
+% Load the \pkg{book} class with the |[oneside]| and |[letterpaper]| options
+%
+% \begin{macrocode}
+%<class>\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
+%<class>\PassOptionsToClass{letterpaper,oneside}{book}
+\ProcessOptions
+%<class>\LoadClass{book}
+% \end{macrocode}
+%
+% If the |[proquest]| option is used, turn off output to auxiliary files so
+% that the thesis doesn't have to be recompiled again to get all the references
+% correct. Also double-space the ProQuest abstract and use the full page.
+%
+% \begin{macrocode}
+\if@proquest
+ \nofiles % don't overwrite the .aux files
+ \def\makeindex{}
+ \@thesisfancyfalse
+ \@fullpagetrue
+\fi
+% \end{macrocode}
+%
+% If the |[draftthesis]| option was specified, define the |\draftheader| macro.
+%
+% \begin{macrocode}
+\if@thesisdraft
+ \newcount\timehh\newcount\timemm
+ \timehh=\time \divide\timehh by 60
+ \timemm=\time \count255=\timehh \multiply\count255 by -60
+ \advance\timemm by \count255
+ \def\draftheader{\slshape Draft of \today\ at
+ \ifnum\timehh<10 0\fi\number\timehh\,:\,\ifnum\timemm<10 0\fi\number\timemm}%
+\fi
+% \end{macrocode}
+%
+% Define the |\fancytoc| command which prints the headings in the Table of Contents,
+% List of Figures and List of Tables if the |[toclabels]| option is used.
+%
+% \begin{macrocode}
+\newcommand{\fancytoc}{%
+ \addtocontents{toc}{\vspace*{-\baselineskip}\hfill Page\endgraf}%
+ \addtocontents{lof}{\vspace*{-\baselineskip}~Figure\hfill Page\endgraf}%
+ \addtocontents{lot}{\vspace*{-\baselineskip}~Table\hfill Page\endgraf}}
+% \end{macrocode}
+%
+% \subsection{Title Page}
+%
+% \begin{macro}{\title}
+% \begin{macro}{\author}
+% Override the standard definitions of |\title| and |\author| to also
+% define uppercased versions.
+% \begin{macrocode}
+\def\@mkuptitle#1{\gdef\@Utitle{#1}}
+\def\title#1{\gdef\@title{#1}\MakeUppercase{\protect\@mkuptitle{#1}}}
+\def\@mkupauthor#1{\gdef\@Uauthor{#1}}
+\def\author#1{\gdef\@author{#1}\MakeUppercase{\protect\@mkupauthor{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\phdthesis}
+% \begin{macro}{\msthesis}
+% \begin{macro}{\otherdoctorate}
+% \begin{macro}{\othermasters}
+% \begin{macro}{\department}
+% \begin{macro}{\college}
+% \begin{macro}{\schools}
+% \begin{macro}{\degreeyear}
+% \begin{macro}{\committee}
+% \begin{macro}{\volume}
+% Macros to set title page elements.
+% \begin{macrocode}
+\def\phdthesis{\def\@degree{Doctor of Philosophy}
+ \def\degree{Ph.D.}
+ \def\@thesisname{DISSERTATION}
+ }
+\def\msthesis{\def\@degree{Master of Science}
+ \def\degree{M.S.}
+ \def\@thesisname{THESIS}
+ }
+\newcommand{\otherdoctorate}[2]{\def\@degree{#1}
+ \def\degree{#2}
+ \def\@thesisname{DISSERTATION}
+ }
+\newcommand{\othermasters}[2]{\def\@degree{#1}
+ \def\degree{#2}
+ \def\@thesisname{THESIS}
+ }
+\def\department#1{\def\@dept{#1}}
+\def\college#1{\def\@college{#1}}
+\def\schools#1{\def\@schools{#1}}
+\def\degreeyear#1{\def\@degreeyear{#1}}
+\newcommand{\committee}[1]{\gdef\@committee{#1}}
+\newcommand*{\volume}[1]{\gdef\thesis@volume{VOLUME~#1}}
+\newcommand*{\thesis@volume}{}
+\if@edeposit
+ \gdef\@committee{%
+%<class> \ClassError{uiucthesis}{A committee must be specified for e-deposit dissertations.}%
+%<package> \PackageError{uiucthesis}{A committee must be specified for e-deposit dissertations.}%
+ {Use \protect\committee\space with members separated by \protect\\'s.}}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\copyrightnotice}
+% Define the copyright notice as a macro so that the user
+% can change it if desired.
+% \begin{macrocode}
+\def\copyrightnotice{\copyright~\@degreeyear~by \@author. All rights reserved.}
+% \end{macrocode}
+% \end{macro}
+%
+% Set the default title page elements.
+% \begin{macrocode}
+\phdthesis
+\department{Physics}
+\college{Graduate College}
+\def\@schools{}
+\def\@degreeyear{\number\year}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\maketitle}
+% Redefine \pkg{book}'s |\maketitle| command to produce
+% the titlepage in the correct format.
+%
+% \begin{macrocode}
+\renewcommand\maketitle{
+% \end{macrocode}
+% If this is not a draft version, print the copyright page.
+% \begin{macrocode}
+ \if@thesisdraft\else
+ \newpage
+ \thispagestyle{empty}
+ \null\vfill
+ \centerline{\copyrightnotice}%
+ \vskip 3ex % skip to visually center copyright notice
+ \vfill
+ \fi
+% \end{macrocode}
+% Now start a new page for the title page. It is single-spaced.
+% \begin{macrocode}
+ \newpage
+ \thispagestyle{empty}%
+ \enlargethispage{1in}%
+ \begingroup
+ \def\baselinestretch{1}
+% \end{macrocode}
+% Check what size font we are using for the text and select a
+% smaller size appropriately.
+% \begin{macrocode}
+ \ifnum \@ptsize=2
+ \@normalsize
+ \newcommand{\thesis@small}{\small}
+ \else
+ \large
+ \newcommand{\thesis@small}{\@normalsize}
+ \fi
+% \end{macrocode}
+% We have to be careful to get the vertical position right. The
+% easiest way to do this seems to be to just set |\topmargin|,
+% |\headheight|, and |\headsep| for this page.
+% \begin{macrocode}
+ \headheight=0pt \headsep=0pt
+ \topmargin=0in
+% \end{macrocode}
+% Adjust the horizontal spacing so that the title page
+% is centered on the page even if the rest of the document isn't.
+% I'm not sure when |\textwidth| changes take place, so instead
+% we calculate the correct |\oddsidemargin| to center the text column.
+% \begin{macrocode}
+ \@tempdima=\paperwidth
+ \advance\@tempdima by -\textwidth
+ \divide\@tempdima by 2
+ \advance\@tempdima by -1in
+ \oddsidemargin=\@tempdima
+ \let\evensidemargin=\oddsidemargin
+% \end{macrocode}
+% Create the title page. Different spacing is used depending on whether the
+% |[edeposit]| option is specified. Include the committee and the paragraph
+% at the bottom of the page for e-deposit theses, as required by the Grad College.
+% \begin{macrocode}
+ \newdimen\thesis@dim
+ \if@edeposit
+ \thesis@dim=1.25in
+ \else
+ \thesis@dim=1.75in
+ \fi
+ \if@largecaps
+ \def\lc@selectfont{\fontshape{lc}\selectfont}%
+ \else
+ \def\lc@selectfont{}%
+ \fi
+ \begin{center}
+ \if@edeposit\else
+ \vbox to 1.25in{}
+ \fi
+ \vbox to \thesis@dim{%
+ {\lc@selectfont\@Utitle}
+ \if@thesisdraft
+ \\[12pt]
+ \draftheader
+ \fi
+ \vfil}%
+ \vbox to 2in{%
+ {\lc@selectfont BY}\\[12pt]
+ {\lc@selectfont\@Uauthor}\\[12pt]
+ \begin{tabular}{c}\@schools\end{tabular}\vfil}%
+ \vbox to 0.5in{\thesis@volume\vfil}
+ \vbox to 2.5in{%
+ {\lc@selectfont \@thesisname}\\[12pt]
+ Submitted in partial fulfillment of the requirements\\
+ for the degree of \@degree\ in \@dept\\
+ in the \@college\ of the\\
+ University of Illinois at Urbana-Champaign, \@degreeyear\vfil}
+ \if@edeposit
+ \vbox to 2.1in{
+ COMMITTEE ON FINAL EXAMINATION*\\[12pt]
+ \begin{tabular}{c}\@committee\end{tabular}\vfil}
+ \hspace*{-\oddsidemargin}\parbox[t]{6.5in}{\thesis@small%
+ * The Certificate of Committee Approval is not part of dissertations
+ deposited electronically through the Graduate College of the University
+ of Illinois at Urbana-Champaign. A copy of the original Certificate of
+ Committee Approval is permanently archived with the student's record.}%
+ \else
+ \vskip -2ex
+ Urbana, Illinois
+ \fi
+ \end{center}
+ \newpage
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Front Matter}
+%
+% \begin{macro}{\frontmatter}
+% Redefine |\frontmatter| so that it sets the page number to 2 or 3, depending on whether or
+% not the |[edeposit]| option is given.
+% \begin{macrocode}
+\let\thesis@frontmatter=\frontmatter
+\def\frontmatter{%
+ \thesis@frontmatter
+ \if@edeposit
+ \setcounter{page}{2}
+ \else
+ \setcounter{page}{3}
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Table of Contents}
+%
+% \begin{macro}{\contentsname}
+% Use ``Table of Contents'' instead of ``Contents''.
+% \begin{macrocode}
+\renewcommand\contentsname{Table of Contents}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@chapter}
+% This code is a modified version of the code in the 1996/05/26 release
+% of classes.dtx that produces leader dots between the chapter
+% name and the page number.
+%
+% This macro formats the entries in the table of contents for
+% chapters. It is very similar to |\l@part|
+%
+% First we make sure that if a pagebreak should occur, it occurs
+% \emph{before} this entry. Also a little whitespace is added and a
+% group begun to keep changes local.
+% \changes{v1.2i}{1994/04/28}{Don't print a toc line when the tocdepth
+% counter is less then 0}
+% \changes{v1.3b}{1955/05/23}{Added missing braces around argument
+% to \cs{addpenalty}.}
+% \begin{macrocode}
+\renewcommand*\l@chapter[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+% \end{macrocode}
+%
+% The macro |\numberline| requires that the width of the box that
+% holds the part number is stored in \LaTeX's scratch register
+% |\@tempdima|. Therefore we put it there. We begin a group, and
+% change some of the paragraph parameters. These are different
+% from the defaults for the standard report or book class.
+% \begin{macrocode}
+ \setlength\@tempdima{1.5em}
+ \begingroup
+ \leftskip \z@ \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent \z@
+% \end{macrocode}
+% Then we leave vertical mode and switch to a bold font.
+% \begin{macrocode}
+ \leavevmode \bfseries
+% \end{macrocode}
+% Because we do not use |\numberline| here, we have do some fine
+% tuning `by hand', before we can set the entry. We discourage but
+% not disallow a pagebreak immediately after a chapter entry.
+% We use leaders between the chapter title and the page number,
+% unlike the standard report or book class.
+% \begin{macrocode}
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak
+ \leaders\hbox{$\m@th\mkern\@dotsep mu\hbox{.}\mkern\@dotsep mu$}
+ \hfil \nobreak\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% Create a flag that is set after the Table of Contents where every chapter (even
+% the starred chapters) are put in the TOC.
+% \begin{macrocode}
+\newif\ifthesis@addtoc \thesis@addtocfalse
+% \end{macrocode}
+% \begin{macro}{\tableofcontents}
+% We want the Table of Contents to be single-spaced, so
+% we save the original definition, and then arrange it so
+% that the new |\tableofcontents| calls |\singlespacing| before calling
+% the original definition. Then set the flag mentioned above.
+% \begin{macrocode}
+\let\thesis@tableofcontents=\tableofcontents
+\def\tableofcontents{%
+ \@mkboth{\MakeUppercase{\contentsname}}{\MakeUppercase{\contentsname}}%
+ {\singlespacing\thesis@tableofcontents}%
+ \thesis@addtoctrue%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\listoftables}
+% \begin{macro}{\listoffigures}
+% Similarly, redefine |\listoftables| and |\listoffigures| so
+% that they use single spacing. Why bother, you ask?
+% Well, it {\em is} possible that some user might
+% call |\listoffigures| without calling |\tableofcontents|. Right?
+% \begin{macrocode}
+\let\thesis@listoftables=\listoftables
+\def\listoftables{{\singlespacing\thesis@listoftables}}
+\let\thesis@listoffigures=\listoffigures
+\def\listoffigures{{\singlespacing\thesis@listoffigures}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Other Frontmatter}
+%
+% \begin{environment}{abstract}
+% The \env{abstract} environment is special because its contents are also
+% used for the ProQuest abstract, which we need the advisor's name for:
+% \begin{macro}{\adviser}
+% \begin{macro}{\advisor}
+% Two versions of this macro are provided due to the ambiguity of the spelling
+% of the word ``adviser''.
+% \begin{macrocode}
+\newcommand*{\advisor}[1]{\gdef\@advisor{#1}}
+\newcommand*{\adviser}[1]{\gdef\@advisor{#1}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% If the |[proquest]| option was specified, erase the definition for |\maketitle|
+% since we don't want a title page, and print an error if the advisor's name is
+% not specified. Then define the abstract environment to create the ProQuest abstract
+% and then end the document.
+% \begin{macrocode}
+\if@proquest
+ \def\maketitle{}
+ \def\@advisor{%
+%<class> \ClassError{uiucthesis}{An advisor must be specified for the ProQuest abstract}%
+%<package> \PackageError{uiucthesis}{An advisor must be specified for the ProQuest abstract}%
+ {Use \protect\advisor\space to specify a name}}
+ \newenvironment{abstract}{%
+ \newpage
+ \pagestyle{empty}
+ \setcounter{page}{1}
+ \begin{singlespace}\begin{center}
+ \@Utitle\\[\baselineskip]
+ \@author, \degree\\
+ Department of \@dept\\
+ University of Illinois at Urbana-Champaign, \@degreeyear\\
+ \@advisor, Adviser\\[\baselineskip]
+ \end{center}\end{singlespace}\par\noindent\ignorespaces
+ }{
+ \newpage
+ \aftergroup\enddocument
+ \aftergroup\endinput
+ }
+% \end{macrocode}
+% If we are doing normal processing (no |[proquest]| option), simply define
+% the \env{abstract} environment to start a regular chapter.
+% \begin{macrocode}
+\else
+ \newenvironment{abstract}{\chapter*{Abstract}}{}
+\fi
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{dedication}
+% The dedication environment just starts a new page and prints the dedication
+% in the center in italics.
+% \begin{macrocode}
+\newenvironment{dedication}{
+ \newpage
+ \leavevmode\vfill
+ \begin{center}
+ \itshape
+ }{
+ \end{center}
+ \vskip 3ex
+ \vfill
+ \newpage
+ }
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{symbollist}
+% \begin{environment}{symbollist*}
+% The \env{symbollist} environments can be used to create a list of symbols or
+% abbreviations. The starred version left-justifies the left column (good for
+% lists of abbreviations) whereas the unstarred version centers the contents of
+% the left column (good for lists of symbols).
+% \begin{macrocode}
+\newenvironment*{symbollist}[1][1in]{
+ \begin{list}{}{\singlespacing
+ \setlength{\leftmargin}{#1}
+ \setlength{\labelwidth}{#1}
+ \addtolength{\labelwidth}{-\labelsep}
+ \setlength{\topsep}{0in}}%
+ \def\makelabel##1{\hfil##1\hfil}%
+ }{
+ \end{list}}
+\newenvironment*{symbollist*}[1][1in]{
+ \begin{symbollist}[#1]
+ \def\makelabel##1{##1\hfil}}
+ {\end{symbollist}}
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+%
+%
+% \subsection{Chapter Headings}
+%
+% Text of chapter title must match exactly with text in Table of Contents.
+% We support both plain chapter headings and ``fancy'' chapter headings.
+%
+% \begin{macro}{\chapternumberfont}
+% Define the font used for chapter numbers in fancy chapter headings.
+% If you're using scalable PostScript fonts, you might want to
+% override it, for example:
+% \begin{verbatim}
+% \renewcommand\chapternumberfont{
+% \fontseries{bx}\fontsize{72}{72}\selectfont}
+% \end{verbatim}
+% \begin{macrocode}
+\if@thesisfancy
+ \font\cminch=cminch at 60pt
+ \newcommand\chapternumberfont{\cminch}
+\else
+ \newcommand\chapternumberfont{\huge\bfseries}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chaptertitlefont}
+% Define the font used for chapter titles.
+% \begin{macrocode}
+\newcommand\chaptertitlefont{\Huge\bfseries}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@chapter}
+% This macro is called when we have a numbered chapter. When
+% |secnumdepth| is larger than $-1$ and, in the book
+% class, |\@mainmatter| is true, we display the chapter
+% number. We also inform the user that a new chapter is about to be
+% typeset by writing a message to the terminal.
+% \begin{macrocode}
+\def\@chapter[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \if@thesisfancy
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{chapter}%
+ {\@chapapp\ \thechapter\quad #1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+% \end{macrocode}
+% After having written an entry to the table of contents we store
+% the (alternative) title of this chapter with |\chaptermark| and
+% add some white space to the lists of figures and tables.
+% \begin{macrocode}
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+% \end{macrocode}
+% Then we call upon |\@makechapterhead| to format the actual
+% chapter title. We have to do this in a special way when we are in
+% twocolumn mode in order to have the chapter title use the entire
+% |\textwidth|. In one column mode we call |\@afterheading|, which
+% takes care of suppressing the indentation.
+% \begin{macrocode}
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@schapter}
+% The macro |\@schapter| is called when |\chapter*{...}| is called. We need
+% to modify it so that if the |thesis@addtoc| flag is set, an entry to the
+% Table of Contents is made.
+% \begin{macrocode}
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi
+ \ifthesis@addtoc
+ \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}
+ \addcontentsline{toc}{chapter}{#1}
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% For fancy chapter headings, compute the correct height to use for the
+% chapter number. I want the chapter number to be centered on the first line
+% of the chapter title. If $a$ is the height of the chapter number and $b$ is
+% the height of the chapter title, then if we set the chapter number in a
+% box of height $b + (a-b)/2=(a+b)/2$ then it aligns correctly.
+%
+% We arrange for this value to be computed at the beginning of the document
+% in case the user loads a style file that changed the default fonts.
+%
+% In addition, we want the chapter titles to have the same vertical placement
+% on the page, regardless whether the chapter is numbered or not. We compute
+% the distance we have to skip for chapters without numbers to accomplish this
+% and store it in |\thesis@chapskip|.
+% \begin{macrocode}
+\newskip\thesis@chapskip
+\AtBeginDocument{%
+ \newdimen\chapternumberheight
+ \begingroup
+ \chapternumberfont
+ \setbox255=\hbox{A}
+ \if@thesisfancy
+ \global\thesis@chapskip=\ht255
+ \else
+ \global\thesis@chapskip=\baselineskip
+ \fi
+ \dimen255=\ht255
+ \chaptertitlefont
+ \setbox255=\hbox{A}
+ \advance\dimen255 by \ht255
+ \if@thesisfancy
+ \global\advance\thesis@chapskip by -\ht255
+ \global\divide\thesis@chapskip by 2
+ \global\advance\thesis@chapskip by 10\p@
+ \else
+ \global\advance\thesis@chapskip by 20\p@
+ \fi
+ \divide\dimen255 by 2
+ \global\chapternumberheight=\dimen255
+ \endgroup}
+% \end{macrocode}
+%
+% \begin{macro}{\chaptertitleheight}
+% The amount of space allotted for the chapter titles is stored in |\chaptertitleheight|.
+% In this manner, the chapter text always appears at the same vertical place for each
+% chapter, even if the title spills over into multiple lines.
+% \begin{macrocode}
+\newlength{\chaptertitleheight}
+\if@thesisfancy
+ \setlength{\chaptertitleheight}{1.5in}
+\else
+ \setlength{\chaptertitleheight}{1.85in}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makechapterhead}
+% The macro |\@chapter| uses |\@makechapterhead|\meta{text} to format the
+% heading of the chapter. This is a modified version of the standard
+% |\@makechapterhead|. It sets the chapter heading in single spacing,
+% and it handles the fancy heading style. The whole heading is placed
+% in a |\vbox| so that it is confined to the spacing allotted to it
+% as defined in |\chaptertitleheight|.
+% \begin{macrocode}
+\def\@makechapterhead#1{%
+ \vbox to \chaptertitleheight{
+ \def\baselinestretch{1}\@normalsize
+ \parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \thesis@chapskip=\z@
+ \if@thesisfancy
+ \vspace*{10\p@}
+ \leavevmode\llap{\vbox to \chapternumberheight{\hbox{%
+ \chapternumberfont\thechapter\,}\vss}}%
+ \else
+ {\chapternumberfont \@chapapp\space \thechapter}
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \fi
+ \interlinepenalty\@M
+ \vspace*{\thesis@chapskip}
+ \chaptertitlefont #1
+ \vfil
+ }%
+ \par\nobreak%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@makeschapterhead}
+% The macro |\@schapter| uses |\@makeschapterhead|\meta{text}to format
+% the heading of the chapter. It is similar to |\@makechapterhead|
+% except that it never has to print a chapter number.
+%
+% \begin{macrocode}
+\def\@makeschapterhead#1{%
+ \vbox to \chaptertitleheight{
+ \def\baselinestretch{1}\@normalsize
+ \parindent \z@ \raggedright \normalfont
+ \interlinepenalty\@M
+ \vspace*{\thesis@chapskip}
+ \chaptertitlefont #1
+ \vfil
+ }%
+ \par\nobreak%
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Lower Level Headings}
+%
+% \begin{macro}{\sectiontitlefont}
+% \begin{macro}{\subsectiontitlefont}
+% \begin{macro}{\subsubsectiontitlefont}
+% These macros contain the font declarations for the sectioning titles.
+% \begin{macrocode}
+\newcommand{\sectiontitlefont}{\Large\bfseries}
+\newcommand{\subsectiontitlefont}{\large\bfseries}
+\newcommand{\subsubsectiontitlefont}{\normalsize\bfseries}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\section}
+% \begin{macro}{\subsection}
+% \begin{macro}{\subsubsection}
+% We redefine the lower level headings to set their titles
+% ragged right.
+% We don't have to change sectioning commands below
+% \env{subsubsection} because they produce run-in headings.
+% \begin{macrocode}
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\raggedright\normalfont\sectiontitlefont}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\raggedright\normalfont\subsectiontitlefont}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-3.25ex\@plus -1ex \@minus -.2ex}%
+ {1.5ex \@plus .2ex}%
+ {\raggedright\normalfont\subsubsectiontitlefont}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{Bibliography}
+%
+% \begin{macro}{\bibname}
+% UIUC Thesis format says that if references are cited as ``[1]'' then
+% one of the terms ``References,'' ``List of References,'' or
+% ``Literature Cited'' should be used instead of ``Bibliography.''
+% \begin{macrocode}
+\renewcommand\bibname{References}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{thebibliography}
+% Note that due to the redefinition of the |\@schapter| command, the
+% bibliography is inserted into the Table of Contents as is and no modification
+% to the standard definition of \env{thebibliography} environment is really needed.
+% However, for aesthetics it is nice to have it single-spaced.
+% \begin{macrocode}
+\let\thesis@thebib\thebibliography
+\let\thesis@endbib\endthebibliography
+\def\thebibliography{\begingroup\singlespacing\thesis@thebib}
+\def\endthebibliography{\thesis@endbib\endgroup}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \subsection{Index}
+%
+% \begin{environment}{theindex}
+% The index is single spaced and a line is added to the Table of Contents.
+% \begin{macrocode}
+\let\thesis@theindex=\theindex
+\def\theindex{\addcontentsline{toc}{chapter}{\indexname}%
+ \begingroup\singlespacing\thesis@theindex}
+\let\thesis@endtheindex=\endtheindex
+\def\endtheindex{\thesis@endtheindex\endgroup}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \subsection{Page Layout}
+%
+% First we set the vertical layout.
+% Adjust the height of the text column so that it takes up the full
+% height of an 8.5 by 11 inch page.
+% \begin{macrocode}
+\topmargin=0pt
+\advance \topmargin by -\headheight
+\advance \topmargin by -\headsep
+\textheight 8.9in
+% \end{macrocode}
+% Next, set the horizontal layout.
+%
+% The standard for technical papers seems to be to use
+% extremely wide columns of text, and then to increase the spacing between
+% lines to compensate for the long lines.
+% Unfortunately, because so many papers are typeset this way,
+% the format has become self-propagating.
+%
+% The |[fullpage]| option sets one-inch margins.
+% \begin{macrocode}
+\if@fullpage
+ \oddsidemargin 0pt
+ \marginparwidth 0.5in
+ \textwidth\paperwidth
+ \advance\textwidth by -2in
+\fi
+% \end{macrocode}
+% In the old version of \pkg{uiucthesis}, the ``fancy'' thesis style used
+% an asymmetrical page layout,
+% shifting the text column slightly over to the right to leave
+% room for the chapter number to the left of the chapter title. This layout
+% is still used if the |[offcenter]| option is given, otherwise symmetrical
+% margins are used.
+% \begin{macrocode}
+\if@thesisfancy
+ \if@thesisoffcenter
+ \advance\oddsidemargin by 36pt
+ \fi
+% \end{macrocode}
+% Set |\marginparwidth|, leaving 36pt for the right margin.
+% Note that you're not allowed to actually use a marginal paragraph
+% this close to the edge in the final version of a thesis, but it is still
+% handy for leaving notes to yourself in the draft.
+% \begin{macrocode}
+ \marginparwidth=\oddsidemargin
+ \advance\marginparwidth by 1in
+ \advance\marginparwidth by -\marginparsep
+ \advance\marginparwidth by -36pt
+% \end{macrocode}
+% Put the marginal paragraphs on the left side, where there's more room.
+% \begin{macrocode}
+ \reversemarginpar
+\fi
+\let\evensidemargin=\oddsidemargin
+% \end{macrocode}
+%
+%
+% \subsection{Making Notes}
+%
+% \begin{macro}{\note}
+% You can leave yourself marginal notes using the |\note{|\meta{text}|}|
+% macro. If the final draft is being printed (i.e., no |[draftthesis]| option)
+% then these notes are not printed.
+% \begin{macrocode}
+\if@thesisdraft
+ \newcommand{\note}[1]{\marginpar{\singlespacing\small\raggedright #1}}
+\else
+ \newcommand{\note}[1]{}
+ \let\thesis@marginpar\marginpar
+ \def\marginpar{%
+%<class> \ClassWarning{uiucthesis}{Margin paragraphs fall outside the allowed margins\MessageBreak
+%<package> \PackageWarning{uiucthesis}{Margin paragraphs fall outside the allowed margins\MessageBreak
+ for UIUC Theses, use \protect\note\space instead of \protect\marginpar.}%
+ \thesis@marginpar}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Page Numbering}
+%
+% Page numbers must be in one of three places, and must appear in the
+% same place on \emph{every page}, including chapter openings.
+%
+% To accommodate the draft heading, we redefine the plain page style.
+% \begin{macro}{\ps@plain}
+% \begin{macrocode}
+\def\ps@plain{%
+ \let\@mkboth\@gobbletwo
+ \if@thesisdraft
+ \def\@oddhead{\draftheader\hfil}
+ \else
+ \let\@oddhead\@empty
+ \fi
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\reset@font\hfil\thepage\hfil}%
+ \let\@evenfoot\@oddfoot
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ps@headings}
+% The ``headings'' page style is also supported. The heading at the top
+% will be within the 1 inch margin that you are supposed to allow, however.
+% If the |[draftthesis]| option is given, there is probably not enough room
+% for both the chapter number and title, so just print the number in that case.
+% \begin{macrocode}
+\if@twoside
+ \def\ps@headings{%
+ \if@thesisdraft
+ \def\@oddhead{\draftheader\hfil\slshape\rightmark}
+ \def\@evenhead{\slshape\leftmark\hfil\draftheader}
+ \else
+ \def\@oddhead{\hfil\slshape\rightmark}
+ \def\@evenhead{\slshape\leftmark\hfil}
+ \fi
+ \def\@oddfoot{\reset@font\hfil\thepage\hfil}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\markboth
+ \if@thesisdraft
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \@chapapp\ \thechapter%
+ \fi
+ \fi}}}
+ \else
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \if@thesisfancy
+ \thechapter.~~%
+ \else
+ \@chapapp\ \thechapter.~~%
+ \fi
+ \fi
+ \fi
+ ##1}}}
+ \fi
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. \ %
+ \fi
+ ##1}}}}
+\else
+ \def\ps@headings{%
+ \if@thesisdraft
+ \def\@oddhead{\draftheader\hfil\slshape\rightmark}
+ \else
+ \def\@oddhead{\hfil\slshape\rightmark\hfil}
+ \fi
+ \let\@evenhead\@oddhead
+ \def\@oddfoot{\reset@font\hfil\thepage\hfil}%
+ \let\@evenfoot\@oddfoot
+ \let\@mkboth\markboth
+ \if@thesisdraft
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \@chapapp\ \thechapter%
+ \fi
+ \fi}}}
+ \else
+ \def\chaptermark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \if@thesisfancy
+ \thechapter.~~%
+ \else
+ \@chapapp\ \thechapter.~~%
+ \fi
+ \fi
+ \fi
+ ##1}}}
+ \fi
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% Set the default page style to (our new definition of) plain.
+% \begin{macrocode}
+\pagestyle{plain}
+% \end{macrocode}
+%
+% \begin{macro}{\chapter}
+% Redefine |\chapter| to not do |\thispagestyle{empty}| because
+% even chapter openings should have page numbers in UIUC theses.
+% \begin{macrocode}
+\renewcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
+ \thispagestyle{plain}
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Vita}
+%
+% The support for |\vita| is pretty minimal.
+%
+% \begin{macro}{\vitaname}
+% Define |\vitaname| so the user can change it if he wants.
+% \begin{macrocode}
+\newcommand\vitaname{Vita}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vita}
+% Vita should appear in Table of Contents, but should not be numbered.
+% \begin{macrocode}
+\newcommand\vita{
+ \chapter{\vitaname}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{Body Formatting}
+%
+% \begin{macro}{\thesisspacing}
+% The |\thesisspacing| command is called to switch to the default
+% line spacing for the thesis. The thesis format requirements
+% require at least line and a half spacing.
+% The \pkg{uiucthesis} class by default uses |\onehalfspacing|,
+% or |\doublespacing| if the |[fullpage]| option is in effect.
+% \begin{macrocode}
+\def\thesisspacing{\if@fullpage\doublespacing\else\onehalfspacing\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% At this point, we're ready to set up the actual formatting for the
+% front matter of the thesis. We use roman page numbers.
+% Also, arrange so that |\thesisspacing| gets called when the document
+% begins. We don't just call it here because that wouldn't give the
+% user a chance to override it.
+% \begin{macrocode}
+\pagenumbering{roman}
+\AtBeginDocument{\thesisspacing}
+% \end{macrocode}
+%
+% \subsection{Compatibility}
+%
+% \begin{macro}{preliminary}
+% The old \pkg{uiucthesis} style defined a \env{preliminary}
+% environment for the front matter. This isn't needed with this
+% style, so we redefine it to call |\frontmatter| for compatibility's sake.
+% \begin{macrocode}
+\def\preliminary{\frontmatter}
+\let\endpreliminary=\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{thesis}
+% Similarly, the old \pkg{uiucthesis} style defined a \env{thesis}
+% environment that has been superceded by the |\mainmatter| command.
+% We define it here for backward compatibility.
+% \begin{macrocode}
+\def\thesis{\mainmatter}
+\let\endthesis=\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</class|package>
+% \fi
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins
new file mode 100644
index 00000000000..747d3426766
--- /dev/null
+++ b/Master/texmf-dist/source/latex/uiucthesis/uiucthesis.ins
@@ -0,0 +1,14 @@
+\def\batchfile{uiucthesis.ins}
+\input docstrip.tex
+
+\keepsilent
+\askforoverwritefalse
+
+\declarepreamble\none
+\endpreamble
+
+\generate{\file{uiucthesis.sty}{\from{uiucthesis.dtx}{package}}
+ \file{uiucthesis.cls}{\from{uiucthesis.dtx}{class}}
+ \usepreamble\none
+ \file{thesis-ex.tex}{\from{uiucthesis.dtx}{example}}
+}