% \iffalse meta-comment
%
% ucdavisthesis.dtx
%
% Copyright (C) Copyright 2007, 2008, 2009, 2010, 2013, 2016 by Ryan Scott
%
% Adapted from UCLA THESIS/DISSERTATION CLASS -- for LaTeX version 2e
%   (C) Copyright 1995 by John Heidemann.
% Taken from UCLA THESIS/DISSERTATION CLASS (version 0.94 BETA, 5/23/91)
%   (C) Copyright 1988 Richard B. Wales.  All Rights Reserved.
%   by Richard B. Wales.
% Taken from DISSERTATION style (1/10/86)
%   by Dorab Patel and Eduardo Krell
%
% Additional features/ideas taken from ucd_dissertation_template.tex
%   A file from the UC Davis Mathematics Department
% ------------------------------------------------------------
%
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.2 of this license or (at your option) any later
% version. The latest version of this license is in:
%
% http://www.latex-project.org/lppl.txt
%
% and version 1.2 or later is part of all distributions of
% LaTeX version 1999/12/01 or later.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{ucdavisthesis.dtx}
%</driver>
%
%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<class>\ProvidesClass{ucdavisthesis}
%<*class>
    [2016/04/23 v1.3 UCDavis thesis class]
%</class>
%<ucd10pt>\ProvidesFile{ucdthesis10.clo}%
%<ucd10pt>             [2009/02/22 v1.0 ucdavisthesis class 10pt size option]
%<ucd11pt>\ProvidesFile{ucdthesis11.clo}%
%<ucd11pt>             [2009/02/22 v1.0 ucdavisthesis class 11pt size option]
%<ucd12pt>\ProvidesFile{ucdthesis12.clo}%
%<ucd12pt>             [2009/02/22 v1.0 ucdavisthesis class 12pt size option]
%<ucd13pt>\ProvidesFile{ucdthesis13.clo}%
%<ucd13pt>             [2009/02/22 v1.0 ucdavisthesis class 13pt size option]
%
%<*driver>
\documentclass{ltxdoc}
% \EnableCrossrefs
% \DisableCrossrefs
% \CodelineIndex %codelineindex or pageindex, not both
% \PageIndex
\RecordChanges
\begin{document}
  \DocInput{ucdavisthesis.dtx}
  \PrintChanges
  \PrintIndex
\end{document}
%</driver>
% \fi
%
% \CheckSum{0}
%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%
% \changes{v0.8}{2007/09/13}{Initial version. Still working out bugs.}
%
% \changes{v0.9}{2008/09/12}{First full implementation. Fixed UMI abstract and page number location.}
%
% \changes{v0.99}{2009/02/12}{Fixed prelim page numbering problem. Fixed typos in documentation.}
%
% \changes{v1.0}{2009/02/23}{Release version. UMI abstract left margin fixed. Added \texttt{singlespacing} and \texttt{committee} commands.}
%
% \changes{v1.1}{2010/03/11}{Updated Title page so that committee member names appear under signature lines. Fixed \texttt{singlespacing} usage in example file.}
%
% \changes{v1.2}{2013/08/18}{Updated page number location to bottom center. Set all margins to 1 inch. Simplified Abstract title.}
%
% \changes{v1.3}{2016/04/23}{Updated Title page for up to 5 committee members. Updated ucdavisthesis\_example. Deprecated UMIabstract.}
%
% \GetFileInfo{ucdavisthesis.dtx}
%
% \DoNotIndex{\{,\},\ ,\',\.,\@M,\@MM,\@@input,\@Alph,\@alph,\@addtoreset,\@arabic}
% \DoNotIndex{\@badmath,\@centercr,\@cite}
% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
% \DoNotIndex{\@listI,\@listi,\@listii,\@listiii,\@listiiv,\@listv,\@listvi}
% \DoNotIndex{\@latex@warning,\@input,\@ixpt,\@m,\@minus,\@mkboth}
% \DoNotIndex{\@ne,\@nil,\@nomath,\@openbib@code,\@plus,\@roman,\@Roman,\@set@topoint}
% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
% \DoNotIndex{\advance,\addcontentsline,\ast,\baselinestretch,\begin,\begingroup}
% \DoNotIndex{\bfseries,\bigskip,\bgroup,\box,\bullet}
% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
% \DoNotIndex{\fbox,\footnotesize}
% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
% \DoNotIndex{\input}
% \DoNotIndex{\jobname,\kern,\labelsep,\labelwidth,\leftmargin,\leavevmode,\let,\leftmark}
% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
% \DoNotIndex{\NeedsTeXFormat,\newdimen,\newif}
% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\normalsize,\normalfont,\null,\number}
% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
% \DoNotIndex{\parindent,s\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright,\quad}
% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\RequirePackage}
% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily}
% \DoNotIndex{\secnumdepth, \secdef,\selectfont,\setbox,\setcounter,\setlength}
% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
% \DoNotIndex{\symbol,\the,\textsc,\textwidth,\thechapter,\thepage}
% \DoNotIndex{\thispagestyle,\trivlist,\typeout,\tw@}
% \DoNotIndex{\undefined,\uppercase,\usecounter,\usefont,\usepackage}
% \DoNotIndex{\vfil,\vfill,\viiipt,\viipt,\vipt,\vskip,\vspace}
% \DoNotIndex{\wd,\xiipt,\year,\z@}
%
% \title{The \textsf{ucdavisthesis} class\thanks{This document
% corresponds to \textsf{ucdavisthesis}~\fileversion,
% dated~\filedate.}}
% \author{Ryan Scott \\ \texttt{rpscott@gmail.com}}
%
% \date{Printed \today}
%
% \maketitle
%
% \tableofcontents
%
% \section{Introduction} \label{sec.intro}
%
% The \textsf{ucdavisthesis} class is a \LaTeXe{} class that allows you to create a dissertation or thesis which conforms to UC Davis formatting requirements as of 2016. The output document has the necessary preliminary pages, margins, page number placement, etc. This class also provides most of the macros available in the |report| class, allowing for chapters, sections, etc. Please check the Graduate Studies web page (http://gradstudies.ucdavis.edu/students/filing.html) for any changes or updates.
%
% This manual is typeset according to the conventions of the \LaTeX{} \textsc{docstrip} utility which enables the automatic extraction of the \LaTeX{} macro source files.
%
%
% \section{Usage} \label{sec.usage}
% To create a dissertation or thesis which conforms to UC Davis requirements load the class with
% \begin{quote}
% |\documentclass|\oarg{class-options}|{ucdavisthesis}|
% \end{quote}
% at the beginning of your your \LaTeXe{} source file. The \meta{class-options}
% are entered as a comma separated list (no spaces). They are described in detail in
% Section~\ref{sec.options}. The other commands (macros) necessary to put
% together a complete document are explained in Section~\ref{sec.commands}.
%
% Please look through the |ucdavisthesis\_example\_main.tex| file and its subfiles for the proper macro order and helpful suggestions for formatting and organization of your thesis.
%
% \section{Class Options} \label{sec.options}
% The \textsf{ucdavisthesis} class is in itself an alteration of the standard \texttt{report} class, thus it keeps most of its class options except those options that would make the document non-conforming and aren't likely to be used for drafts (e.g., |twocolumn|, |notitlepage| and |a4paper|). If you find yourself wanting \texttt{report} features that are not available, please let me know.
%
% The possible options for the \textsf{ucdavisthesis} class are (default values are in angle brackets):
% \begin{description}
% \item[\texttt{MA\quad MS\quad ME\quad $\langle$PhD$\rangle$\quad DEngr}]\ \\  This option formats the title pages to conform to the requirements for a particular degree.
% \item[\texttt{single\quad $\langle$double$\rangle$}]\ \\ Sets the document line spacing. NOTE: single line spacing is non-conforming to the UCD format. However, even when using |double| spacing, environments like footnotes, captions and references are kept to single spacing. If there are problems with a particular environment becoming double spaced when using certain packages (e.g., \textsf{natbib} or \textsf{chapterbib}), see the |\singlespacing| command.
% \item[\texttt{twoside}] $\langle$\textit{false}$\rangle$\\ Two-sided printing (for a duplex printer). Adjusts margins and placement of page numbers and headers appropriately.  NOTE: two-sided printing is non-conforming to the UCD Format.
% \item[\texttt{openright\quad $\langle$openany$\rangle$}]\ \\ This option only makes sense when using the \texttt{twoside} option. \texttt{openright} forces chapters to begin on odd (right-hand) pages only. The default, \texttt{openany} will start a chapter on the next page, whether it is even or odd.
% \item[\texttt{draft\quad draftcls\quad $\langle$final$\rangle$}]\ \\ \textsf{ucdavisthesis} provides two draft modes as well as the normal final mode. The \texttt{draft} and \texttt{draftcls} options provide additional information in the running header, including the text ``DRAFT'', the time and date, etc. Additionally, \texttt{draft} puts every package used in the document into draft mode (disabling rendering of figures for most graphics packages), while  \texttt{draftcls} confines the draft mode behavior to just the class file.
% \item[\texttt{nofigureslist}] $\langle$\textit{false}$\rangle$\\ Suppress printing of the List of Figures.
% \item[\texttt{notableslist}] $\langle$\textit{false}$\rangle$\\ Suppress printing of the List of Tables.
% \item[\texttt{nohyphenatetitles\quad $\langle$hyphenatetitles$\rangle$}]\ \\ Choose whether to hyphenate section (and subsection...) titles.
% \item[\texttt{10pt\quad 11pt\quad $\langle$12pt$\rangle$\quad 13pt}]\ \\ Font size to use in the body of document (i.e., normalsize). Appropriate font sizes are chosen for the usual array of text size macros (e.g., |\small|, |\large|, |\Large|, etc.). Any of the four size options are acceptable according to the UCD Format.
% \end{description}
%
% \section{Class Commands} \label{sec.commands}
% This class file provides many commands that must be used to correctly format your dissertation or thesis. Some are self explanatory, others more obscure. I try to describe them all below.
%
% \subsection{Preliminary Page Commands}
% Use the following commands to produce all of the preliminary pages (e.g., title page, abstract, etc.). Theses should be used before the |\makeintropages{}| command is issued.
%
% \DescribeMacro{\title} This command sets the dissertation/thesis title. Formatting commands are allowed in the argument (e.g., |\textit{}|). The title must always be specified.
% \begin{quote}
% |\title|\marg{title}
% \end{quote}
%
%
% \DescribeMacro{\author} This command sets the dissertation/thesis author. Only one author is allowed. The author must always be specified.
% \begin{quote}
% |\author|\marg{author's name}
% \end{quote}
%
%
% \DescribeMacro{\authordegrees} Specify the author's previous degrees on the \textsc{Title Page}. Separate entries with the end line command |\\ |. The author's degrees must always be specified.
% \begin{quote}
% |\authordegrees|\marg{list of degrees}
% \end{quote}
% For example:
% \begin{quote}
% |\authordegrees||{B.S. (University of California, Davis) 1978||\\|
% |               M.S. (University of California, Berkeley) 1980}|
% \end{quote}
%
%
% \DescribeMacro{\officialmajor} Set the official major name (in the degree title).
% e.g., Electrical and Computer Engineering, Chemistry, Russian, or Entomology.
% The official name of your major must always be specified.
% \begin{quote}
% |\officialmajor|\marg{major's name}
% \end{quote}
%
%
% \DescribeMacro{\graduateprogram} Set the graduate program name.
% It is only used on the UMI abstract page. The graduate program name may be
% the same as the official major.
% \begin{quote}
% |\graduateprogram|\marg{program name}
% \end{quote}
%
%
% \DescribeMacro{\thesis} Set the document type to |Thesis|, and the degree name to the command's argument. This command is normally not needed, since an |MA| or |MS| option to |\documentclass| will do the same thing in all standard situations.
%
%
% \DescribeMacro{\dissertation} Set the document type to |Dissertation|, and the degree name to the command's argument. This command is normally not needed, since a |PhD| or |DEngr| option to |\documentclass| will do the same thing in all standard situations.
%
%
% \DescribeMacro{\degreemonth} Set the month in which the degree will be \textbf{conferred}, typically, March, June, September or December. Default is the current month
% (this may not be correct!).
% \begin{quote}
% |\degreemonth|\marg{month}
% \end{quote}
%
%
% \DescribeMacro{\degreeyear} Set the year in which the degree will be conferred.
% Default is the current year.
% \begin{quote}
% |\degreeyear|\marg{year}
% \end{quote}
%
%
% \DescribeMacro{\committee} This command will place the committee members' names under the approval lines and accepts up to five committee members. ``Chair'' appears after the first member's name. Leave any unused member positions blank between the braces. Your committee member names must be specified.
% \begin{quote}
% |\committee|\marg{member 1}\marg{member 2}\marg{member 3}\marg{member 4}\marg{member 5}
% \end{quote}%
%
%
% \DescribeMacro{\copyrightyear} Set the year which appears in the copyright
% notice. Default is the degree year (see above).
% \begin{quote}
% |\copyrightyear|\marg{year}
% \end{quote}
%
%
% \DescribeMacro{\nocopyright} Don't include a copyright notice at all. No page
% will be produced in its place. Default behavior is to include a copyright page.
% \begin{quote}
% |\nocopyright|
% \end{quote}
%
%
% \DescribeMacro{\titlesize} Print the document title (on the \textsc{Title} and
% \textsc{Abstract} pages) at a particular size.  Default is |\Large|
% (17-point when using 12pt option). Although any \LaTeX{} type size name will be
% accepted, the only other non-default value likely to give satisfactory
% results is |\LARGE| (20-point when using 12pt option).
% \begin{quote}
% |\titlesize|\marg{size name}
% \end{quote}
%
%
% \DescribeMacro{\dedication} The argument's text is used as the dedication (in a |\center| environment) on the \textsc{Dedication} page. Default is not to have a dedication.
% \begin{quote}
% |\dedication|\marg{text}
% \end{quote}
%
%
% \DescribeMacro{\acknowledgments} The argument's text is used for the
% \textsc{Acknowledgments} page. Default is not to have an \textsc{Acknowledgments} page.
% \begin{quote}
% |\acknowledgments|\marg{text}
% \end{quote}
%
%
% \DescribeMacro{\abstract} The argument's text is used as the dissertation/thesis
% abstract. You must include an abstract. There is no limit on length.
% \begin{quote}
% |\abstract|\marg{text}
% \end{quote}
%
%
% \DescribeMacro{\makeintropages} Generate the introductory pages in the proper
% sequence. This command is placed just before your first chapter or section.
%
%
% \subsection{UMI Abstract Formatting}
% This is only used in the final preparation of the dissertation.
% The UMI abstract is submitted online as plain text. It no longer has a word
% limit or specific formatting. Therefore, the |UMIabstract| command is now
% deprecated.
%
%
% \DescribeMacro{\UMIabstract} The text in the argument is used as the UMI abstract.
% Otherwise, it defaults to using the text from |\abstract| (hence the square brackets).
% However, the UMI abstract can't exceed 350 words in length. The UMI abstract is separate
% from the dissertation abstract and should NOT be included as part of the submitted
% dissertation. Normally this command is called at the end of the main file,
% just before |\end{document}|. The command is ignored if |twoside| is enabled.
% \begin{quote}
% |\UMIabstract|[$\langle$\textit{text}$\rangle$]  $\Leftarrow\,$\textbf{Note: square brackets}
% \end{quote}
%
%
% \subsection{Text Formatting Commands}
% These are commands you can use to customize the fonts and font sizes used in the headings. A command is also provided to produce single spacing in certain environments.
%
%
% \DescribeMacro{\singlespacing} Set the line spacing to single spacing. Usually |\singlespacing|
% is required with packages that modify or redefine particular environments (i.e., |thebibliography|).
% For example, if using the |natbib| package, use the command:
% \begin{quote}
% |\renewcommand{\bibfont}{\singlespacing}|
% \end{quote}
% The |\bibfont| command will make the text \emph{within} references single spaced while
% there will still be double spacing between each reference. This works even if the
% |chapterbib| package with the |sectionbib| option is used.
%
%
%
% \DescribeMacro{\chapternamesize} Set the size of the chapter name (i.e, `Chapter').
% Default size is |\Huge|.
%
%
% \DescribeMacro{\chapternamefont} Set the font of the chapter name (i.e, `Chapter').
% Default font is |\bfseries|.
%
%
% \DescribeMacro{\chaptertitlesize} Set the size of the chapter title.
% Default size is |\huge|.
%
%
% \DescribeMacro{\chaptertitlefont} Set the font of the chapter title.
% Default font is |\bfseries|.
%
%
% \DescribeMacro{\secfontsize} Set the font type and size of the section title.
% Default is |\bfseries\Large|.
%
%
% \DescribeMacro{\subsecfontsize} Set the font type and size of the subsection title.
% Default is |\bfseries\large|.
%
%
% \DescribeMacro{\ssubsecfontsize} Set the font type and size of the subsubsection title.
% Default is |\bfseries\normalsize|.
%
%
% \StopEventually{}
%
% \section{Implementation and Source Code Listing for the Class File}
% This section deals with the package source code. Please, do not read this unless you really need it or have some strange fascination with inspecting \LaTeX{} internals (like me). The comments are very short and they typically just tell you where you are. If you are experiencing any problems when testing this class, please send me an email and I will try to solve it.
%
% Also, please feel free to send me emails about feature requests, improvements to the code, or changes to the formatting requirements.
% \bigskip
%
% Require \texttt{ifthen} package to process options.
%    \begin{macrocode}
%<*class>
\RequirePackage{ifthen}
%    \end{macrocode}
%
% A command to keep track of the font size option chosen.
%    \begin{macrocode}
\newcommand\@ptsize{}
%    \end{macrocode}
%
% Define some booleans to control class options like draft mode, list of figures, etc.
%    \begin{macrocode}
\newif\if@openright    % Set to true if openright option set
\newif\if@draft        % Set to true if draft option set
\@draftfalse
\newif\if@draftcls     % Set to true if draft class option set
\@draftclsfalse
\newif\if@figures
\@figurestrue          % Make List of Figures
\newif\if@tables
\@tablestrue           % Make List of Tables
%    \end{macrocode}
%
% Some booleans to keep track of where we are in the document processing.
%    \begin{macrocode}
\newif\if@prelimpages   % Set to false after producing preliminary pages
\@prelimpagestrue
%    \end{macrocode}
% \subsection{Title Page Macros}
% Define the title page macros.
%    \begin{macrocode}
\def\@title{NO TITLE!?!}
\def\@author{NO AUTHOR!?!}
\def\@authordegrees{NO DEGREES!?!}
\def\@memberone{ }\def\@membertwo{ }\def\@memberthree{ }\def\@memberfour{ }\def\@memberfive{ }
\def\@titlesize{\large}
\renewcommand{\title}[1]{\def\@title{#1}}
\renewcommand{\author}[1]{\def\@author{#1}}
\newcommand{\titlesize}[1]{\def\@titlesize{#1}}
\newcommand{\authordegrees}[1]{\def\@authordegrees{#1}}
\newcommand{\committee}[5]{\def\@memberone{#1}\def\@membertwo{#2}\def\@memberthree{#3}\def\@memberfour{#4}\def\@memberfive{#5}}
%    \end{macrocode}
%
% The following commands set the official major and graduate program.
%    \begin{macrocode}
\def\@officialmajor{NO OFFICIAL MAJOR!?!}
\newcommand{\officialmajor}[1]{\def\@officialmajor{#1}}
\def\@graduateprogram{NO GRADUATE PROGRAM!?!}
\newcommand{\graduateprogram}[1]{\def\@graduateprogram{#1}}
%    \end{macrocode}
%
% The following commands will process the |MA|, |MS|, |ME|, |PhD|, or |DEngr|
% option.  (The default is |PhD|.)
%    \begin{macrocode}
\newcommand{\thesis}[1]
   {\def\@thesisname{thesis}
    \def\@Thesisname{Thesis}
    \def\@degreename{#1}
   }
\newcommand{\dissertation}[1]
   {\def\@thesisname{dissertation}
    \def\@Thesisname{Dissertation}
    \def\@degreename{#1}
   }
\dissertation{Doctor of Philosophy} % default
%    \end{macrocode}
%
% The following commands set the year in which the degree will be
% awarded, as well as the year of copyright.
%    \begin{macrocode}
\def\@degreeyear{\number\year} % default is current year
\def\@degreemonth{\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}
\def\@copyrightyear{\number\year} % default is current year
\newif\if@cyrset
\@cyrsetfalse
\newcommand{\degreeyear}[1]
   {\def\@degreeyear{#1}\if@cyrset\else\def\@copyrightyear{#1}\fi}
\newcommand{\degreemonth}[1]{\def\@degreemonth{#1}}
\newcommand{\copyrightyear}[1]{\def\@copyrightyear{#1}\@cyrsettrue}
%    \end{macrocode}
% \subsection{Option Declarations}
% Now, we declare the class options.
%    \begin{macrocode}
\DeclareOption{PhD}{}      % default -- nothing more to do
\DeclareOption{DEngr}{\dissertation{Doctor of Engineering}}
\DeclareOption{MA}{\thesis{Master of Arts}}
\DeclareOption{MS}{\thesis{Master of Science}}
\DeclareOption{ME}{\thesis{Master of Engineering}}
%
\DeclareOption{10pt}{\renewcommand\@ptsize{10}}
\DeclareOption{11pt}{\renewcommand\@ptsize{11}}
\DeclareOption{12pt}{\renewcommand\@ptsize{12}} % default size
\DeclareOption{13pt}{\renewcommand\@ptsize{13}}
%
\DeclareOption{nofigureslist}{\@figuresfalse}
\DeclareOption{notableslist}{\@tablesfalse}
\DeclareOption{openright}{\@openrighttrue}
\DeclareOption{openany}{\@openrightfalse}
%    \end{macrocode}
%
% \subsubsection{Line Spacing Definitions}
% The following commands will process the |single| or |double| option.
% (The default is |double|.)  This controls inter-line spacing.
%    \begin{macrocode}
\def\@singlespacing{1.0}
\def\@doublespacing{1.5} % see LaTeX manual for explanation of value
\let\@spacing=\@doublespacing
\newcommand{\@titlespacing}{1.2} % Spacing to use in chapter and section titles
\DeclareOption{single}{\let\@spacing=\@singlespacing%
                       \let\@titlespacing=\@singlespacing}
\DeclareOption{double}{\let\@spacing=\@doublespacing}
%    \end{macrocode}
%
% The following definitions provide a way to get single spacing in some types
% of environments like |thebibliography|. Just resetting |\baselinestretch|
% does not seem to work with some of the packages like |natbib|. The code is
% taken from |setspace.sty| version 6.7 by Geoffrey Tobin.
%
% Line spacing command
%    \begin{macrocode}
\newcommand{\setstretch}[1]{%
  \def\baselinestretch{#1}%
  \@currsize}%
%    \end{macrocode}
%
% Allow users to modify the |\SetSinglespace| value to something slightly
% more or less than 1 to help with unusual font heights (when compared to
% their point size).
%
%    \begin{macrocode}
\newcommand{\SetSinglespace}[1]{%
  \def\setspace@singlespace{#1}}
\SetSinglespace{1}
%    \end{macrocode}
%
% This is the command to call when you want single spacing in a particular
% environment.
%
%    \begin{macrocode}
\newcommand{\singlespacing}{%
  \setstretch {\setspace@singlespace}%  normally 1
  \vskip \baselineskip} % Correction for coming into |\singlespacing|
%    \end{macrocode}
%
% Modification of the \LaTeX{} command |\@setsize| The meanings of the
% arguments to |\@setsize| appear to be (whatever these may signify):
% current size; font baselineskip; ignored (!); and font size.
%
%    \begin{macrocode}
\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@}%
  \skip\footins \baselinestretch\skip\footins
  \normalbaselineskip\baselineskip#3#4}
%    \end{macrocode}
%
% \subsubsection{Mark Overfull hboxes}
% Overfull hboxes are marked.
%    \begin{macrocode}
\DeclareOption{draft}{\setlength{\overfullrule}{5pt}\@drafttrue\@draftclstrue}
\DeclareOption{draftcls}{\setlength{\overfullrule}{5pt}\@draftfalse\@draftclstrue}
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}
\DeclareOption{final}{\setlength{\overfullrule}{0pt}\@draftfalse\@draftclsfalse}
%    \end{macrocode}
%
% Provide Chapter and Section title font and size control
%    \begin{macrocode}
\def\@chapternamesize{\Huge}
\newcommand{\chapternamesize}[1]{\def\@chapternamesize{#1}}
\def\@chapternamefont{\bfseries}
\newcommand{\chapternamefont}[1]{\def\@chapternamefont{#1}}
\def\@chaptertitlesize{\huge}
\newcommand{\chaptertitlesize}[1]{\def\@chaptertitlesize{#1}}
\def\@chaptertitlefont{\bfseries}
\newcommand{\chaptertitlefont}[1]{\def\@chaptertitlefont{#1}}
\def\@secfontsize{\bfseries\Large}
\newcommand{\secfontsize}[1]{\def\@secfontsize{#1}}
\def\@subsecfontsize{\bfseries\large}
\newcommand{\subsecfontsize}[1]{\def\@subsecfontsize{#1}}
\def\@ssubsecfontsize{\bfseries\normalsize}
\newcommand{\ssubsecfontsize}[1]{\def\@ssubsecfontsize{#1}}
%    \end{macrocode}
%
% Provide way to make hyphenating titles optional.
%    \begin{macrocode}
\newboolean{hyphenatetitles}
\setboolean{hyphenatetitles}{true}
\DeclareOption{nohyphenatetitles}{\setboolean{hyphenatetitles}{false}}
\DeclareOption{hyphenatetitles}{\setboolean{hyphenatetitles}{true}}
%    \end{macrocode}
%
% Set default options and then execute the options.
%    \begin{macrocode}
\ExecuteOptions{double,12pt,oneside,final,openany}
\ProcessOptions\relax
%    \end{macrocode}
%
% Redefine how |\cleardoublepage| works so that it behaves differently when the |twoside|
% option is chosen.
%    \begin{macrocode}
\renewcommand{\cleardoublepage}{\clearpage%
  \if@twoside
    \ifodd\c@page
    \else
      \null\thispagestyle{empty}\newpage% make a blank page
    \fi
  \fi}
%    \end{macrocode}
%
% \subsection{Page Layout}
% UCD format requires only letter paper size be used.
%    \begin{macrocode}
\setlength{\paperheight}{11in}
\setlength{\paperwidth}{8.5in}
%    \end{macrocode}
%
% All margin dimensions measured from a point one inch from top and side
% of page (standard \TeX{}).  A little extra (0.1 in) is added on each side
% to ensure that the text will fall within the thesis margin limits
% even if photo-copying enlarges or misaligns it slightly.
%
% According to the UCD format, margins are to be 1 inch on the
% top, right, left, and bottom with the page numbers allowed
% to be outside these margins.
%
% \subsubsection{Side Margins}
%    \begin{macrocode}
\if@twoside % twoside is non-conforming to UC format
  \setlength{\oddsidemargin}{0.1in}  % these are added to
  \setlength{\evensidemargin}{0.1in} % LaTeX's 1 inch left margin
\else % Note that \oddsidemargin = \evensidemargin
  \setlength{\oddsidemargin}{0.1in}  % these are added to LaTeX's
  \setlength{\evensidemargin}{0.1in} % 1 inch left margin.
\fi
%    \end{macrocode}
%
% \subsubsection{Vertical Spacing}
% Top of page:
% |\topmargin| is the nominal distance from \LaTeX{}'s 1 inch top margin to the top of the box containing the running head. |\headheight| is the height of the box containing the running head. |\headsep| is the space between the running head and text.
%
%    \begin{macrocode}
\setlength{\topmargin}{-0.6in}
\setlength{\headheight}{0.2in}
\setlength{\headsep}{0.5in}
%    \end{macrocode}
%
% Bottom of page:
% |\footskip| is the distance from baseline of box containing foot to baseline of last line of text.
%    \begin{macrocode}
\setlength{\footskip}{0.6in}
%    \end{macrocode}
%
% \subsubsection{Dimensions of Text}
% |\textheight| is the height of the text (including footnotes and figures, excluding running header and footer). |\textwidth| is the width of text line.
%    \begin{macrocode}
\setlength{\textheight}{8.8in}
\setlength{\textwidth}{6.3in}
%    \end{macrocode}
%
% A |\raggedbottom| command causes `ragged bottom' pages: pages set to
% natural height instead of being stretched to exactly |\textheight|.
%
% \subsubsection{Input Font Size Info}
% The appropriate |ucdthesis1x.clo| file defines things that depend on the type size.
% In order to meet the UCD requirements, font size must be between 10
% and 13 points.
%
%    \begin{macrocode}
\input{ucdthesis\@ptsize.clo} % \@ptsize is determined by the class option
%    \end{macrocode}
%
% \subsection{Lists}
%
% \subsubsection{Enumerate}
%  Enumeration is done with four counters: |enumi|, |enumii|, |enumiii|
%  and |enumiv|, where |enumN| controls the numbering of the $N$th level
%  enumeration.  The label is generated by the commands |\labelenumi|
%  ... |\labelenumiv|.  The expansion of |\p@enumN\theenumN| defines the
%  output of a |\ref| command.
%
%    \begin{macrocode}
\renewcommand\theenumi{\@arabic\c@enumi}
\renewcommand\theenumii{\@alph\c@enumii}
\renewcommand\theenumiii{\@roman\c@enumiii}
\renewcommand\theenumiv{\@Alph\c@enumiv}
\newcommand\labelenumi{\theenumi.}
\newcommand\labelenumii{(\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}
%    \end{macrocode}
%
% \subsubsection{Itemize}
% Itemization is controlled by four commands: |\labelitemi|, |\labelitemii|,
% |\labelitemiii|, and |\labelitemiv|, which define the labels of the various
% itemization levels.
%
%    \begin{macrocode}
\newcommand\labelitemi{\textbullet}
\newcommand\labelitemii{\normalfont\bfseries \textendash}
\newcommand\labelitemiii{\textasteriskcentered}
\newcommand\labelitemiv{\textperiodcentered}
%    \end{macrocode}
%
% \subsubsection{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|.
%
%    \begin{macrocode}
\newenvironment{verse}
               {\let\\\@centercr
                \list{}{\itemsep      \z@
                        \itemindent   -1.5em%
                        \listparindent\itemindent
                        \rightmargin  \leftmargin
                        \advance\leftmargin 1.5em}%
                \item\relax}
               {\endlist}
%    \end{macrocode}
%
% \subsubsection{Quotation}
%   Fills lines and indents paragraph.
%
%    \begin{macrocode}
\newenvironment{quotation}
               {\list{}{\listparindent 1.5em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item\relax}
               {\endlist}
%    \end{macrocode}
%
% \subsubsection{Quote}
% Same as quotation except no paragraph indentation.
%
%    \begin{macrocode}
\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item\relax}
               {\endlist}
%    \end{macrocode}
%
% \subsubsection{Labels}
%  To change the formatting of the label, you must redefine
%  |\descriptionlabel|.
%    \begin{macrocode}
\newenvironment{description}
               {\list{}{\labelwidth\z@ \itemindent-\leftmargin
                        \let\makelabel\descriptionlabel}}
               {\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
                                \normalfont\bfseries #1}
%    \end{macrocode}
%
% \subsection{Other Environments}
% \subsubsection{Default Title Page}
%  In the normal environments, the |titlepage| environment does nothing but
%  start and end a page.
%    \begin{macrocode}
\newenvironment{titlepage}
    {%
      \newpage
      \thispagestyle{prelim}%
    }%
    {\newpage
     \if@twoside\else
     \fi
    }
%    \end{macrocode}
%
% \subsubsection{Array and Tabular}
% |\arraycolsep| is half the space between columns in an array environment. |\tabcolsep| is half the space between columns in a tabular environment. |\arrayrulewidth| is the width of rules in array and tabular environment. |\doublerulesep| is the space between adjacent rules in array or tabular environment.
%    \begin{macrocode}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
%    \end{macrocode}
%
% \subsubsection{Tabbing}
% |\tabbingsep| is the space used by the |\'| command (see \LaTeX{} manual).
%    \begin{macrocode}
\setlength\tabbingsep{\labelsep}
%    \end{macrocode}
%
% \subsubsection{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.
%    \begin{macrocode}
\skip\@mpfootins = \skip\footins
%    \end{macrocode}
%
% \subsubsection{Framebox}
% |\fboxsep| is the space left between box and text by |\fbox| and |\framebox|. |\fboxrule| is the width of rules in box made by |\fbox| and |\framebox|.
%    \begin{macrocode}
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
%    \end{macrocode}
%
% \subsection{Chapters and Sections}
% \subsubsection{Define Counters}
%
% |\newcounter|\marg{NEWCTR}[OLDCTR] Defines NEWCTR to be a counter, which is reset to zero when counter OLDCTR is stepped. Counter OLDCTR must already be defined.
%    \begin{macrocode}
\newcounter {part}
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
%    \end{macrocode}
%
% 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|\marg{COUNTER} : The value of COUNTER printed as an arabic numeral.
%  |\roman|\marg{COUNTER}  : Its value printed as a lower-case roman numeral.
%  |\Roman|\marg{COUNTER}  : Its value printed as an upper-case roman numeral.
%  |\alph|\marg{COUNTER}   : Value of COUNTER printed as a lower-case letter: 1 = a, 2 = b, etc.
%  |\Alph|\marg{COUNTER}   : Value of COUNTER printed as an upper-case letter: 1 = A, 2 = B, etc.
%
%    \begin{macrocode}
\renewcommand \thepart {\@Roman\c@part}
\renewcommand \thechapter {\@arabic\c@chapter}
\renewcommand \thesection {\thechapter.\@arabic\c@section}
\renewcommand\thesubsection   {\thesection.\@arabic\c@subsection}
\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
\renewcommand\theparagraph    {\thesubsubsection.\@arabic\c@paragraph}
\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
%    \end{macrocode}
%
% \subsubsection{Chapter Name}
% |\@chapapp| is initially defined to be `CHAPTER'.  The |\appendix| command
% redefines it to be `APPENDIX'.
%    \begin{macrocode}
\newcommand\@chapapp{\chaptername}
%    \end{macrocode}
%
% |\secdef|\marg{UNSTARCMDS}\marg{STARCMDS}
%
%    When defining a |\chapter| or |\section| command without using |\@startsection|, you can use |\secdef| as follows:
% \begin{quote}
%   |\def\chapter|{ ... |\secdef| |\CMDA| |\CMDB| }\\
%   |\def\CMDA|[\# 1]\# 2\marg{ ... }  Command to define |\chapter|[...]\marg{...}\\
%   |\def\CMDB|\# 1\marg{ ... }     Command to define |\chapter*|\marg{...}
% \end{quote}
% \subsubsection{Part Macro}
%    \begin{macrocode}
\newcommand\part{%
  \if@openright
    \cleardoublepage  % Starts new page.
  \else
    \clearpage
  \fi
  \thispagestyle{thshead}   % Page style of part page is 'thshead'
    \@tempswafalse          % @tempswa := false
  \null\vfil                % Add fil glue to center title
  \bgroup  \centering       % BEGIN centering
  \secdef\@part\@spart}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax  % IF secnumdepth > -2
     \refstepcounter{part}%                    %   THEN step part counter
     \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% add toc line
  \else                      %   ELSE add unnumbered line
     \addcontentsline{toc}{part}{#1}%
  \fi        % End if
  \markboth{}{}
  \ifnum \c@secnumdepth >-2\relax  % IF secnumdepth > -2
    \normalsize\bfseries Part\thepart   %  THEN Print 'Part' and number
    \par                                %  in \normalsize bold.
    \vskip 20\p@              % Add space before title.
  \fi
  \huge\bfseries #2\par\@endpart}   % Print Title in \huge bold.
%    \end{macrocode}
% Print title in |\normalsize| boldface
%    \begin{macrocode}
\def\@spart#1{\normalsize\bfseries #1\par\@endpart} %
%    \end{macrocode}
%
% |\@endpart| finishes the part page
%    \begin{macrocode}
\def\@endpart{\vfil\newpage              % End page with 1fil glue.
  \if@twoside
    \if@openright
      \null
      \thispagestyle{empty}%
      \newpage
    \fi
   \fi
   \if@tempswa                % IF @tempswa = true
     \twocolumn               % THEN \twocolumn
   \fi}
%    \end{macrocode}
%
% \subsubsection{Chapter Macro}
%    \begin{macrocode}
\newcommand\chapter{%
  \if@openright\cleardoublepage\else\clearpage\fi  % Starts new page.
   \if@prelimpages          % Are we on preliminary pages?
     \thispagestyle{prelim} % if yes, format for preliminary pages
   \else
     \thispagestyle{thshead} % Otherwise it is the main text
   \fi
   \global\@topnum\z@   % Prevents figures at top of first page in chapter.
   \@afterindentfalse            % Suppress indent in first paragraph,
   \secdef\@chapter\@schapter}   % change to \@afterindenttrue to indent.
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
        \refstepcounter{chapter}%
        \typeout{\@chapapp\space\thechapter.}%
        \addcontentsline{toc}{chapter}%
              {\protect\numberline{\thechapter}#1}%
      \else
        \addcontentsline{toc}{chapter}{#1}%
      \fi
   \chaptermark{#1}%
   \addtocontents{lof}{\protect\addvspace{10\p@}}% Adds between-chapter space
   \addtocontents{lot}{\protect\addvspace{10\p@}}% to lists of figs & tables.
    \@makechapterhead{#2}%
    \@afterheading}    % Routine called after chapter and section heading.
%    \end{macrocode}
%
% |\@makechapterhead|\marg{TEXT} Makes the heading for the |\chapter| command.
%    \begin{macrocode}
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\renewcommand\baselinestretch{\@titlespacing}% set spacing for chapter title
   \parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
        \@chapternamefont\@chapternamesize \@chapapp\space \thechapter
        \par\nobreak
        \vskip 20\p@
    \fi
    \interlinepenalty\@M
    \@chaptertitlefont\@chaptertitlesize #1\par\nobreak
    \vskip 40\p@
  }\renewcommand\baselinestretch{\@spacing}\@normalsize}% return to \@spacing
%    \end{macrocode}
%
% |\@makeschapterhead|\marg{TEXT} Makes the heading for the |\chapter*| command.
%    \begin{macrocode}
\def\@schapter#1{\@makeschapterhead{#1}\@afterheading}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\@makeschapterhead#1{%           % Heading for \chapter* command
   \vspace*{-30\p@}%                   % Space at top of page.
   {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \centering \large \scshape%  % Title font.
    #1\par\nobreak            % Title and TeX penalty to prevent page break.
    \vskip 20\p@              % Space between title and text.
  }}
%    \end{macrocode}
% \subsubsection{Sectioning Macros}
% |\@startsection|\marg{NAME}\marg{LEVEL}\marg{INDENT}\marg{BEFORESKIP}\\
%    \marg{AFTERSKIP}\marg{STYLE} optional * [ALTHEADING]\marg{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 $\leq$ 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 increment 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.
%  Note: for ?SKIP, negation applies to all components of a skip -- the
%  negative of (10pt plus 5pt minus 2.5pt) is (slightly surprisingly)
%  (-10pt plus -5pt minus -2.5pt)
%    \begin{macrocode}
\ifthenelse{\boolean{hyphenatetitles}}{%
    \newcommand{\TitleHyphenation}{}%
    }{%
    \newcommand{\TitleHyphenation}{%
        \pretolerance=10000%
        \hyphenpenalty=200%
        \raggedright}%
    }
\newcommand\section{\@startsection {section}{1}{\z@}%
                    {-2.0ex \@plus -.5ex \@minus -.2ex}%
                    {.75ex \@plus.1ex}%
                    {\normalfont\renewcommand\baselinestretch{\@titlespacing}%
                    \@secfontsize\TitleHyphenation}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
                       {-1.5ex\@plus -.5ex \@minus -.2ex}%
                       {.5ex \@plus .1ex}%
                       {\normalfont\renewcommand\baselinestretch{\@titlespacing}%
                       \@subsecfontsize\TitleHyphenation}}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
                          {-1.0ex\@plus -.3ex \@minus -.1ex}%
                          {.5ex \@plus .1ex}%
                          {\normalfont\renewcommand\baselinestretch{\@titlespacing}%
                          \@ssubsecfontsize\TitleHyphenation}}
%    \end{macrocode}
%
% Because |\{sub,}paragraph| are in-line, we allow hyphenation always.
%    \begin{macrocode}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
                                    {.75ex \@plus.2ex \@minus.1ex}%
                                    {-1em}%
                                    {\normalfont\normalsize\bfseries}}
\newcommand\subparagraph{\@startsection{subparagraph}{4}{\parindent}%
                                       {.75ex \@plus.2ex \@minus .1ex}%
                                       {-1em}%
                                       {\normalfont\normalsize\bfseries}}
%    \end{macrocode}
%
% Default initializations of |\...mark| commands. (See below for their
% use in defining page styles).
%    \begin{macrocode}
\newcommand*\chaptermark[1]{}
%    \end{macrocode}
%
% The value of the counter |secnumdepth| gives the depth of the
% highest-level sectioning command that is to produce section numbers.
%    \begin{macrocode}
\setcounter{secnumdepth}{3}
%    \end{macrocode}
%
% \subsubsection{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.
%    \begin{macrocode}
\newcommand\appendix{\par%
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@Alph\c@chapter}}
%    \end{macrocode}
%
% \subsection{Default List Parameters}
% 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 $K$th level list, the command |\@list|$K$ 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|.
%    \begin{macrocode}
\setlength\leftmargini  {2.5em}
\leftmargin  \leftmargini
\setlength\leftmarginii  {2.2em}  % > \labelsep + width of `(m)'
\setlength\leftmarginiii {1.87em} % > \labelsep + width of `vii.'
\setlength\leftmarginiv  {1.7em}  % > \labelsep + width of `M.'
\setlength\leftmarginv  {1em}
\setlength\leftmarginvi {1em}
\setlength  \labelsep  {.5em}
\setlength  \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\parsep 5pt plus 2.5pt minus 1pt
\def\@listI{\leftmargin\leftmargini}
\let\@listi\@listI
\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}
%    \end{macrocode}
%
% \subsection{Table of Contents, etc.}
% A |\subsection| command writes a
% \begin{quote}
%       |\contentsline|\marg{subsection}\marg{TITLE}\marg{PAGE}
% \end{quote}
% 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
% \begin{quote}
%       |\numberline|\marg{NUM}\marg{HEADING}
% \end{quote}
% where NUM is the number produced by |\thesubsection|.  Other sectioning
% commands work similarly.
%
% A |\caption| command in a |figure| environment writes
% \begin{quote}
%    |\contentsline|\marg{figure}\marg{|\numberline|\marg{NUM}\marg{CAPTION}}\marg{PAGE}
% \end{quote}
% 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.
%
% \begin{quote}
% |\@dottedtocline|\marg{LEVEL}\marg{INDENT}\marg{NUMWIDTH}\\
%  \marg{TITLE}\marg{PAGE}
% \end{quote}
%    LEVEL    : An entry is produced only if LEVEL $\leq$ 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| $\geq$ |\@pnumwidth|
%   |\@dotsep|    : Separation between dots, in mu units.  Should be |\def'd| to
%                 a number like 2 or 1.7
%    \begin{macrocode}
\newcommand\@pnumwidth{1.75em}
\newcommand\@tocrmarg{2.75em}
\newcommand\@dotsep{4.5}
\setcounter{tocdepth}{2}
%    \end{macrocode}
%
% \subsubsection{Table of Contents}
%    \begin{macrocode}
\newcommand\tableofcontents{%
    \chapter*{\contentsname
        \@mkboth{%
           \contentsname}{\contentsname}}%
    \renewcommand\baselinestretch{\@spacing}\@normalsize\@starttoc{toc}%
    }
\newcommand*\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \setlength\@tempdima{3em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      {\leavevmode
       \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}%
    \endgroup
  \fi}
%    \end{macrocode}
%
%    \begin{macrocode}
\newcommand*\l@chapter[2]{%
  \ifnum \c@tocdepth >\m@ne
    \addpenalty{-\@highpenalty}%
    \vskip 1.0em \@plus\p@
    \setlength\@tempdima{1.5em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \leavevmode \bfseries
      \advance\leftskip\@tempdima
      \hskip -\leftskip
      #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
      \penalty\@highpenalty
    \endgroup
  \fi}
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
%    \end{macrocode}
%
% \subsubsection{List of Figures}
%    \begin{macrocode}
\newcommand\listoffigures{%
  \if@figures\chapter*{\listfigurename}%
      \@mkboth{\listfigurename}%
              {\listfigurename}%
   \addcontentsline{toc}{section}{\listfigurename}%
    \@starttoc{lof}%
  \fi}
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
%    \end{macrocode}
%
% \subsubsection{List of Tables}
%    \begin{macrocode}
\newcommand\listoftables{%
  \if@tables\chapter*{\listtablename}%
      \@mkboth{%
          \listtablename}%
         {\listtablename}%
    \addcontentsline{toc}{section}{\listtablename}%
    \@starttoc{lot}%
  \fi}
\let\l@table\l@figure
%    \end{macrocode}
%
% \subsubsection{Bibliography}
% The |thebibliography| environment executes the following commands:
%
%  |\def\newblock{\hskip .11em plus .33em minus -.07em}| --
%      Defines the `closed' format, where the blocks (major units of
%      information) of an entry run together.
%
%  |\sloppy|  -- Used because it's rather hard to do line breaks in
%      bibliographies,
%
%
%%    \begin{macrocode}
\newdimen\bibindent
\setlength\bibindent{1.5em}
\newenvironment{thebibliography}[1]
     {\chapter*{\bibname}%
      \@mkboth{\bibname}{\bibname}%
      \renewcommand\baselinestretch{1}%
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}
            \renewcommand\baselinestretch{\@singlespacing}\@normalsize % enforce single spacing for each entry
      }%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \renewcommand\baselinestretch{\@spacing}\@normalsize % return to original line spacing
      \endlist}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
%    \end{macrocode}
%
% |\def\@biblabel#1{[#1]\hfill}|   Produces the label for a |\bibitem|[...] command.
% |\def\@cite#1{[#1]}|             Produces the output of the |\cite| command.
%
% \subsubsection{The Index}
% THE THEINDEX 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.
%    \begin{macrocode}
\newif\if@restonecol % used to restore one-column format after index
                     %(two column not used outside the index environment)
\newenvironment{theindex}
                {\@restonecoltrue
                \twocolumn[\@makeschapterhead{\indexname}]%
                \@mkboth{\indexname}%
                        {\indexname}%
                \thispagestyle{thshead}\parindent\z@
                \parskip\z@ \@plus .3\p@\relax
                \columnseprule \z@
                \columnsep 35\p@
                \let\item\@idxitem}
               {\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
%    \end{macrocode}
%
% \subsubsection{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|.)
%    \begin{macrocode}
\renewcommand\footnoterule{%
  \kern-3\p@
  \hrule\@width.4\columnwidth
  \kern2.6\p@}
\@addtoreset{footnote}{chapter}  % Numbers footnotes within chapters
%    \end{macrocode}
%
%   |\@makefntext|\marg{NOTE} :
%    \begin{macrocode}
\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
    \hb@xt@1.8em{\hss\@makefnmark}#1}
%    \end{macrocode}
%
% |\@makefnmark| : A macro to generate the footnote marker that goes
%    in the text.  Default used.
%
% \subsection{Figures and Tables}
% \subsubsection{Float Placement Parameters}
% See \LaTeX{} manual for their definition.
%    \begin{macrocode}
\setcounter{topnumber}{4}
\renewcommand\topfraction{.9}
\setcounter{bottomnumber}{4}
\renewcommand\bottomfraction{.7}
\setcounter{totalnumber}{10}
\renewcommand\textfraction{.1}
\renewcommand\floatpagefraction{.66}
\setcounter{dbltopnumber}{4}
\renewcommand\dbltopfraction{.66}
\renewcommand\dblfloatpagefraction{.66}
%    \end{macrocode}
%
% |\@makecaption|\marg{NUMBER}\marg{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|.
%    \begin{macrocode}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{6\p@}
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
  \renewcommand{\baselinestretch}{1.0}
  \small
  \vskip\abovecaptionskip
  \sbox\@tempboxa{#1. #2}%
  \ifdim \wd\@tempboxa >0.9\hsize%
          \hskip.05\hsize\parbox{0.9\hsize}{#1. #2}%\par
  \else
    \global \@minipagefalse
    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
  \fi
  \normalsize
  \vskip\belowcaptionskip
  }
%    \end{macrocode}
%
% 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|\marg{TYPE}\marg[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|.
%
% \subsubsection{Figure}
%    \begin{macrocode}
\newcounter{figure}[chapter]
\renewcommand \thefigure
     {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{%
\figurename\nobreakspace\thefigure}% Text with caption figure number
\newenvironment{figure}
               {\@float{figure}}
               {\end@float}
\newenvironment{figure*}
               {\@dblfloat{figure}}
               {\end@dblfloat}
%    \end{macrocode}
%
% \subsubsection{Table}
%    \begin{macrocode}
\newcounter{table}[chapter]
\renewcommand \thetable
     {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tablename\nobreakspace\thetable}
\newenvironment{table}
               {\@float{table}}
               {\end@float}
\newenvironment{table*}
               {\@dblfloat{table}}
               {\end@dblfloat}
%    \end{macrocode}
%
% \subsection{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|\marg{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|\marg{LEFT}\marg{RIGHT} : Adds both marks.
%     |\markright|\marg{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.
%    \begin{macrocode}
\mark{{}{}}   % Initializes TeX's marks
%    \end{macrocode}
%
% \subsubsection{Preliminary Page Style}
% Definition of 'prelim' page style that is used for preliminary
% pages of the thesis (i.e., those that are numbered using small
% roman numbers (i, ii, iii, etc.) centered at the page bottom.
%    \begin{macrocode}
\def\ps@prelim{%
  \if@draftcls % If 'draftcls' option
    \if@twoside % If 'twoside' option
      \def\@oddhead{\hfil\textsc{\footnotesize DRAFT \quad\rightmark}}
      \def\@evenhead{\textsc{\footnotesize DRAFT \quad\leftmark\hfil}}
    \else
      \def\@oddhead{\textsc{\footnotesize DRAFT \quad\rightmark\hfil}}
      \let\@evenhead\@oddhead
    \fi
    \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth {{%
         \@chapapp\ \thechapter. \ %
        ##1}}{}}%
    \def\@oddfoot{\hfil\textrm{-\thepage -}\hfil}
    \let\@evenfoot\@oddfoot
  \else
    \def\@oddhead{}
    \def\@evenhead{}
    \def\@oddfoot{\hfil\textrm{-\thepage -}\hfil}
    \let\@evenfoot\@oddfoot
  \fi}
%    \end{macrocode}
%
% \subsubsection{Thesis Body Page Style}
% Definition of |thshead| page style
%  Note the use of \#\# 1 for parameter of |\def\chaptermark| inside the
%  |\def\ps@thshead|.
%    \begin{macrocode}
\newlength{\UMIfoliosep}
% gap separating page number from edge of text
\setlength{\UMIfoliosep}{0.25in}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\ps@thshead{\def\@oddfoot{\hfil\thepage\hfil}%
\def\@evenfoot{\hfil\thepage\hfil}%
\if@twoside % If `twoside' option
  \if@draftcls % If `draftcls' option
    \def\@oddhead{\hbox to\textwidth{% Heading on odd (right) pages.
    {\hfil\textsc{\footnotesize DRAFT \quad\rightmark}\hfil}}}%
    \def\@evenhead{\hbox to\textwidth{% Heading on even (left) pages.
      {\footnotesize DRAFT \quad\leftmark}\hfil}}
      \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth {{%
        \ifnum \c@secnumdepth >\m@ne
            \@chapapp\ \thechapter. \ %
        \fi
        ##1}}{}}%
    \def\sectionmark##1{%
      \markright {{%
        \ifnum \c@secnumdepth >\z@
          \thesection. \ %
        \fi
        ##1}}}
  \else
    \def\@oddhead{\hbox to\textwidth{}}% Heading on odd (right) pages.
    \def\@evenhead{\hbox to\textwidth{}}% Heading on even (left) pages.
  \fi
\else
  \if@draftcls % If 'draft' option
    \def\@oddhead{\hbox to\textwidth{%
    {\textsc{\footnotesize DRAFT \quad\rightmark}\hfil}}}%
    \let\@evenhead\@oddhead
    \def\chaptermark##1{\markright {{\ifnum \c@secnumdepth >\m@ne
         \@chapapp\ \thechapter. \ \fi ##1}}}
  \else
    \def\@oddhead{\hbox to\textwidth{}}%
    \let\@evenhead\@oddhead
  \fi
\fi}
%    \end{macrocode}
%
% \subsubsection{UMI Abstract Page Style}
%    \begin{macrocode}
\def\ps@UMIheadings{% UMI Abstract Heading for page 2
\def\@oddfoot{\hfil -\thepage -\hfil}%
\def\@evenfoot{\hfil -\thepage -\hfil}%
\def\@oddhead{\hbox to\textwidth{}}% Header for odd pages
\let\@evenhead\@oddhead} % Even pages same as odd pages
%    \end{macrocode}
%
% \subsubsection{Standard Page Styles}
% Definition of headings from report.cls.
%    \begin{macrocode}
\if@twoside
  \def\ps@headings{%
      \let\@oddfoot\@empty\let\@evenfoot\@empty
      \def\@evenhead{\hfil\slshape\leftmark}%
      \def\@oddhead{{\slshape\rightmark}\hfil}%
      \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markboth {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
            \@chapapp\ \thechapter. \ %
        \fi
        ##1}}{}}%
    \def\sectionmark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\z@
          \thesection. \ %
        \fi
        ##1}}}}
\else
  \def\ps@headings{%
    \let\@oddfoot\@empty
    \def\@oddhead{{\slshape\rightmark}\hfil}%
    \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
            \@chapapp\ \thechapter. \ %
        \fi
        ##1}}}}
\fi
\def\ps@myheadings{%
    \let\@oddfoot\@empty\let\@evenfoot\@empty
    \def\@evenhead{\thepage\hfil\slshape\leftmark}%
    \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
    \let\@mkboth\@gobbletwo
    \let\chaptermark\@gobble
    \let\sectionmark\@gobble
    }
%    \end{macrocode}
%
% \subsection{Miscellaneous}
% \subsubsection{\texttt{$\backslash$today} Macro}
%    \begin{macrocode}
\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}
%    \end{macrocode}
%
% \subsubsection{Equation and Eqnarray}
% Put here because it must follow |\chapter| definition
% |\newcounter{equation}|
%    \begin{macrocode}
\@addtoreset {equation}{chapter}% Makes \chapter reset 'equation' counter.
\renewcommand\theequation
  {\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation}
%    \end{macrocode}
%
% \subsubsection{Element Names (e.g., Contents, Index, Chapter, etc.)}
% Define names of elements
%    \begin{macrocode}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
\newcommand\bibname{References}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
\newcommand\chaptername{Chapter}
\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\newcommand\acknowledgename{Acknowledgments}
\newcommand\dedicationname{Dedication}
%    \end{macrocode}
%
% \subsubsection{Redefine \TeX{} Text Macros}
% Make old \TeX{} commands behave as LaTeX commands
%    \begin{macrocode}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
%    \end{macrocode}
%
% \subsubsection{Code Environment}
% Same as verbatim except it is always in single spacing
% and double spacing is restored at the end
%    \begin{macrocode}
\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\renewcommand\baselinestretch{1}\@normalsize\@verbatim
\frenchspacing\@vobeyspaces \@xcode}
\def\endcode{\renewcommand\baselinestretch{\@spacing}\@normalsize\endtrivlist}
%    \end{macrocode}
%
% \subsubsection{Footnotes}
% Change it so that footnotes are printed in single spacing
%    \begin{macrocode}
\long\def\@footnotetext#1{\insert\footins{\renewcommand\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}\renewcommand\baselinestretch{\@spacing}}}
%    \end{macrocode}
%
% \subsection{Initialization}
% Default initializations
%    \begin{macrocode}
\ps@plain                   % 'plain' page style
\pagenumbering{arabic}      % Arabic page numbers
\onecolumn                  % Single-column.
\if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside option.
%    \end{macrocode}
%
% \subsection{Preliminary Pages}
% Generate thesis preliminary pages.
%
% NEEDSWORK:  This |singlespacing| test always fails, even when |ucdavisthesis.cls| is loaded.
%    \begin{macrocode}
\def\@stdsinglespacing{1.0}
\ifx\@singlespacing\@stdsinglespacing
  % Spacing has already been set (in ucdavisthesis.cls).
\else
  % Spacing was not set, set it here as if we were ucdavisthesis.cls.
  % \typeout{Spacing not set.}
  \def\@singlespacing{1.0}
  \def\@doublespacing{1.5}      % see above for explanation of value
  \let\@spacing=\@singlespacing
\fi
%    \end{macrocode}
%
% The following macro pair save and restore |twocolumn| status.
%    \begin{macrocode}
\newif\if@ColumnSaveValue
\newcommand{\ColumnSave}{
  \if@twocolumn
    \@ColumnSaveValuetrue
  \else
    \@ColumnSaveValuefalse
  \fi
  \pagebreak
  \onecolumn
}
\newcommand{\ColumnSaveHeading}[1]{
  \if@twocolumn
    \@ColumnSaveValuetrue
    \pagebreak
    \twocolumn[#1]
  \else
    \@ColumnSaveValuefalse
    \pagebreak
    #1
  \fi
}
\newcommand{\ColumnRestore}{\if@ColumnSaveValue\twocolumn\fi}
%    \end{macrocode}
%
% \subsubsection{Title Page}
%    \begin{macrocode}
\newcommand\@maketitlepage{
   \begin{titlepage}
      \renewcommand\baselinestretch{\@singlespacing}
      \ColumnSave
      \ifx\@memberfour\empty
        \def\@titleskip{\bigskip}
      \else
        \def\@titleskip{\medskip}
      \fi
      \begin {center}
         \vspace*{-40\p@}
         \leavevmode\vfil
         \@titlesize{\@title} \\ \@titleskip
         \normalsize By \\ \@titleskip
         \textsc{\@author} \\
         \@authordegrees \\ \@titleskip
         \textsc{\@Thesisname} \\ \@titleskip
         Submitted in partial satisfaction of the requirements
         for the degree of \\ \@titleskip
         \textsc{\@degreename} \\ \@titleskip
         in \\ \@titleskip
         \@officialmajor \\ \@titleskip
         in the \\ \@titleskip
         \textsc{Office of Graduate Studies} \\ \@titleskip
         of the \\ \@titleskip
         \textsc{University of California} \\ \@titleskip
         \textsc{Davis} \\ \@titleskip
         Approved: \\ \vspace{18pt}
         \rule{3in}{1pt} \\
         \textrm{\@memberone}, Chair\\ \vspace{18pt}
         \rule{3in}{1pt} \\
         \textrm{\@membertwo}\\ \vspace{18pt}
         \rule{3in}{1pt} \\
         \textrm{\@memberthree}\\
         \ifx\@memberfour\empty
            \bigskip
         \else
            \vspace{18pt}
            \rule{3in}{1pt} \\
            \textrm{\@memberfour}\\
            \ifx\@memberfive\empty
                \bigskip
            \else
                \vspace{18pt}
                \rule{3in}{1pt} \\
                \textrm{\@memberfive}\\ \bigskip
            \fi
         \fi
         Committee in Charge \\ \bigskip
         \@degreeyear \\
         \vfil
       \end {center}
      \ColumnRestore
   \end{titlepage}
}
%    \end{macrocode}
%
% \subsubsection{Copyright Page}
% The Copyright page does not get numbered or counted in numbering.
%    \begin{macrocode}
\newif\if@copyright
\@copyrighttrue
\newcommand\nocopyright{\@copyrightfalse}
\def\@copyrightinfo{All rights reserved.}
\newcommand\copyrightinfo[1]{\def\@copyrightinfo{#1}}
\newcommand\@makecopyrightpage{%
   \if@copyright
     \thispagestyle{empty}
     \ColumnSave
     \null
     \vfill
        \begin{center}
          \normalsize \normalfont Copyright \copyright\
          \ifx\@copyrightyear\@degreeyear \@degreeyear\else
          \@copyrightyear \fi\ by \\
          \@author \\
          \emph{\@copyrightinfo}
        \end{center}
     \ColumnRestore
     % Increment page number if oneside
     \if@twoside\else\addtocounter{page}{-1}\fi
   \else
     \relax % don't create copyright page
   \fi
}
%    \end{macrocode}
%
% \subsubsection{Dedication Page}
%    \begin{macrocode}
\newif\if@dedication
\def\@dedication{}
\newcommand\dedication[1]{\@dedicationtrue\def\@dedication{#1}}
\newcommand\@makededication{
   \if@dedication
      \@mkboth{\dedicationname}{\dedicationname}
      \ColumnSave
      \par
      \renewcommand\baselinestretch{\@spacing}\@normalsize\normalfont
      \vspace*{0pt}     % force spacing at top of page
      \vfill
      \begin{center}
       \@dedication
      \end{center}
      \vfill\vfill % put about 1:2 (above:below) dedication
      \ColumnRestore
   \fi
}
%    \end{macrocode}
%
% \subsubsection{Abstract Page}
%    \begin{macrocode}
\newif\if@abstract
\def\@abstract{}
\newcommand\abstract[1]{\@abstracttrue\def\@abstract{#1}}
%    \end{macrocode}
%
% This has one argument: the |baselinestretch| \\
% The UCD Format requires doublespacing
%    \begin{macrocode}
\newcommand{\@makeabstractpage}[1]{%
   \if@abstract
      \@mkboth{\abstractname}{\abstractname}
      \addcontentsline{toc}{section}{\abstractname}%
      \ColumnSave
      \par
      \begin{center}
        \textsc{\large \abstractname}\\ \bigskip
        \textbf{\@title} % \textsb?
      \end{center}
      \ifx\@spacing\@doublespacing\bigskip\smallskip\else\bigskip\fi
      \renewcommand\baselinestretch{#1}\@normalsize
%    \end{macrocode}
      %
      % Set up spacing.
      % If it's single spacing, indent the margins.
      % If double spacing is required than things are already
      % ugly enough (and we loose enough space) that we may
      % as well use the whole |\textwidth|.
%    \begin{macrocode}
      \ifthenelse{\equal{#1}{\@stdsinglespacing}}{%
        \begin{center}
          \begin{minipage}{4.75in}
             \setlength{\parindent}{1.5em}
             \@abstract
          \end{minipage}
        \end{center}
       }{%
      \@abstract
      }
      \vfill
      \renewcommand\baselinestretch{\@spacing}\@normalsize
      \ColumnRestore
  \else
      \typeout{No abstract.}
  \fi\newpage
}
%    \end{macrocode}
%
% \subsubsection{Acknowledgments Page}
%    \begin{macrocode}
\newif\if@acks
\def\@acknowledgments{}
\newcommand\acknowledgments[1]{\@ackstrue\def\@acknowledgments{#1}}
\newcommand\@makeackheading{%
  {
    \centering
    \textsc{\large \acknowledgename}
    \vskip 12pt
  }
}
\newcommand\@makeacknowledgments{%
   \if@acks
      \@mkboth{\acknowledgename}{\acknowledgename}
      \addcontentsline{toc}{section}{\acknowledgename}%
      \ColumnSaveHeading{\@makeackheading}
      \par
      \renewcommand\baselinestretch{\@spacing}\@normalsize
      \noindent \normalsize \normalfont \@acknowledgments
      \vfill
      \ColumnRestore
   \fi\newpage
}
%    \end{macrocode}
%
% \subsubsection{Print All Preliminary Pages}
%    \begin{macrocode}
\newcommand\makeintropages{%
  % Preliminary page style (lowercase roman numbers at bottom of page)
  \pagenumbering{roman}\pagestyle{prelim}
  \@maketitlepage
%    \end{macrocode}
%
  % If we're printing two sided and there is no copyright page,
  % insert a blank page for the back of the title page.
  % NOTE:  This extra page makes the output non-conforming
  % to the UCD Format, unless you throw it away.
%    \begin{macrocode}
  \if@twoside
     \if@copyright
     \else
        \typeout{Two-side detected, blank page added after title page.}
        \null\thispagestyle{empty}\newpage % the back side of the title page
     \fi
  \fi
  \@makecopyrightpage
  \@makededication
  \tableofcontents
  \listoffigures\newpage
  \listoftables\newpage
  \@makeabstractpage{\@doublespacing}
  \@makeacknowledgments
  \@prelimpagesfalse\newpage % end of preliminary pages, start a new page
  \if@twoside
     \ifthenelse{\isodd{\value{page}}}%
     {}
     % create a blank page if prelim pages has an odd number of pages
     {\thispagestyle{empty}\null\newpage}
  \fi
  % change pagestyle to thshead (arabic page number in upper right)
  \pagenumbering{arabic}\pagestyle{thshead}
}
%    \end{macrocode}
%
% \subsubsection{UMI Abstract}
% Create a UMI compliant abstract
%    \begin{macrocode}
% hold current page number when creating the UMI abstract
\newcounter{UMIpagetemp}
\newenvironment{UMImargins}{%
  \begin{list}{}{%
    \setlength{\topsep}{0pt}%
    \setlength{\leftmargin}{0in}%
    \setlength{\rightmargin}{0in}%
    \setlength{\listparindent}{\parindent}%
    \setlength{\itemindent}{\parindent}%
    \setlength{\parsep}{\parskip}%
  }%
  \item[]}{\end{list}}
\newcommand\UMIabstract[1][\@abstract]{%
\if@twoside
  \typeout{Two-side detected, UMI Abstract not printed in this mode.}
  \relax
\else
   \newpage % begin abstract on a new page
      \setcounter{UMIpagetemp}{\value{page}} % save the current page number
      \setcounter{page}{1} %  number pages in the abstract starting at 1
      \pagestyle{UMIheadings} % page numbers in upper right with surrounding dashes
      \thispagestyle{empty} % no page number on the first page
   \begin{UMImargins}
      \begin{flushright}
         \renewcommand\baselinestretch{\@singlespacing}
         \normalsize \normalfont \@author \\
         \@degreemonth\ \@degreeyear \\
         \@graduateprogram \\ \bigskip
      \end{flushright}
      \begin{center}
          \@title \\ \bigskip
          \textbf{\underline{Abstract}}
      \end{center}
      \renewcommand\baselinestretch{%
      \@doublespacing}\noindent#1 % Doublespaced abstract
   \end{UMImargins}
   \renewcommand\baselinestretch{%
   %return to previous spacing, clear rest of page
   \@spacing}\@normalsize\newpage
   \pagestyle{thshead} % return to standard page headings
   % return the page counter to previous value
   \setcounter{page}{\value{UMIpagetemp}}
\fi}
% end of |ucdavisthesis.cls|
%</class>
%    \end{macrocode}
%
% \section{Implementation and Source Code Listing for the Class Option Files}
% This section documents the code that is processed by \textsc{docstrip} into the class option files (|.clo|). After processing, there are four files; one for each of the font size options (10pt, 11pt, 12pt, and 13pt). The option files contain the font size information and any \LaTeX{} lengths that are font size dependent.
%
%    \begin{macrocode}
%<*ucdxxpt>
\lineskip 1pt            % \lineskip is 1pt for all font sizes.
\normallineskip 1pt
\renewcommand\baselinestretch{\@spacing}  % single or double spacing
%    \end{macrocode}
% \subsection{Font Sizes}
% Each size-changing command |\SIZE| executes the command\\
%        |\@setsize\SIZE|\marg{BASELINESKIP}|\FONTSIZE\@FONTSIZE|
% where:\\
% \begin{description}
%   \item{BASELINESKIP} Normal value of |\baselineskip| for that size.  (Actual
%                  value will be |\baselinestretch| $\times$ BASELINESKIP.)
%
%  \item{|\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|.
%  \item{|\@FONTSIZE|} The same as the font-size command except with an
%                  |@| in front---e.g., if |\FONTSIZE = \xivpt| then
%                  |\@FONTSIZE = \@xivpt|.
% \end{description}
%
% For reasons of efficiency that needn't concern the designer,
% the document class defines |\@normalsize| instead of |\normalsize|.  This is
% done only for |\normalsize|, not for any other size-changing commands.

% NOTE:  All line spacings have been set to the nominal value times 1.3
% (e.g., 15.6pt for 12-point type).  If you change this spacing, you
% must make a corresponding change to the |\@doublespacing| value in the
% ucdavisthesis.cls file.

% Font sizes are generally taken from \LaTeXe{}'s |sizexx.clo|.
%    \begin{macrocode}
\renewcommand\normalsize{%
%<*ucd10pt>
   \@setfontsize\normalsize\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
%</ucd10pt>
%<*ucd11pt>
   \@setfontsize\normalsize\@xipt{13.6}%
   \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
%</ucd11pt>
%<*ucd12pt>
   \@setfontsize\normalsize\@xiipt{14.5}%
   \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
%</ucd12pt>
%<*ucd13pt>
   \@setfontsize\normalsize{13}{15.6}%
   \abovedisplayskip 13\p@ \@plus3\p@ \@minus7\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
%</ucd13pt>
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
%
\newcommand\small{%
%<*ucd10pt>
   \@setfontsize\small\@ixpt{11}%
   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus2\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
%</ucd10pt>
%<*ucd11pt>
   \@setfontsize\small\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 6\p@ \@plus2\p@ \@minus2\p@
               \parsep 3\p@ \@plus2\p@ \@minus\p@
%</ucd11pt>
%<*ucd12pt>
   \@setfontsize\small\@xipt{13.6}%
   \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 9\p@ \@plus3\p@ \@minus5\p@
               \parsep 4.5\p@ \@plus2\p@ \@minus\p@
%</ucd12pt>
%<*ucd13pt>
   \@setfontsize\small\@xiipt{14.5}%
   \abovedisplayskip 11.5\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 9\p@ \@plus3\p@ \@minus5\p@
               \parsep 4.5\p@ \@plus2\p@ \@minus\p@
%</ucd13pt>
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
%
\newcommand\footnotesize{%
%<*ucd10pt>
   \@setfontsize\footnotesize\@viiipt{9.5}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
%</ucd10pt>
%<*ucd11pt>
   \@setfontsize\footnotesize\@ixpt{11}%
   \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
%</ucd11pt>
%<*ucd12pt>
   \@setfontsize\footnotesize\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 6\p@ \@plus2\p@ \@minus2\p@
               \parsep 3\p@ \@plus2\p@ \@minus\p@
%</ucd12pt>
%<*ucd13pt>
   \@setfontsize\footnotesize\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 6\p@ \@plus2\p@ \@minus2\p@
               \parsep 3\p@ \@plus2\p@ \@minus\p@
%</ucd13pt>
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
%
%<*ucd10pt>
\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
\newcommand\large{\@setfontsize\large\@xiipt{14}}
\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
%</ucd10pt>
%<*ucd11pt>
\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
\newcommand\large{\@setfontsize\large\@xiipt{14}}
\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
%</ucd11pt>
%<*ucd12pt>
\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
\newcommand\large{\@setfontsize\large\@xivpt{18}}
\newcommand\Large{\@setfontsize\Large\@xviipt{22}}
\newcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
\newcommand\huge{\@setfontsize\huge\@xxvpt{30}}
\newcommand\Huge{\@setfontsize\Huge{29.86}{35}}
%</ucd12pt>
%<*ucd13pt>
\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
\newcommand\large{\@setfontsize\large\@xviipt{22}}
\newcommand\Large{\@setfontsize\Large\@xxpt{25}}
\newcommand\LARGE{\@setfontsize\LARGE\@xxvpt{30}}
\newcommand\huge{\@setfontsize\huge{29.86}{35}}
\newcommand\Huge{\@setfontsize\Huge{35.83}{40}}
%</ucd13pt>
%
\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
%
\normalsize  % Choose the normalsize font.
%    \end{macrocode}
% \subsection{Footnotes}
%
% |\footnotesep| = Height of strut placed at the beginning of every
% footnote = height of normal |\footnotesize| strut,
% so no extra space between footnotes.
%
% |\skip\footins| = Space between last line of text and
% top of first footnote.
%    \begin{macrocode}
%<*ucd10pt>
\setlength\footnotesep{6.65\p@}%
\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}%
%</ucd10pt>
%<*ucd11pt>
\setlength\footnotesep{7.7\p@}%
\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@}%
%</ucd11pt>
%<*ucd12pt>
\setlength\footnotesep{8.4\p@}%
\setlength{\skip\footins}{10.8\p@ \@plus 9\p@ \@minus 2\p@}%
%</ucd12pt>
%<*ucd13pt>
\setlength\footnotesep{8.4\p@}%
\setlength{\skip\footins}{10.8\p@ \@plus 9\p@ \@minus 2\p@}%
%</ucd13pt>
%    \end{macrocode}
%
% \subsection{Floats}
% A float is something like a figure or table.
% For floats on a text page: both one-column mode or single-column
% floats in two-column mode.
%
% \noindent |\floatsep| = Space between adjacent floats moved to top or
% bottom of text page.\\
% |\textfloatsep| = Space between main text and floats
% at top or bottom of page.\\
% |\intextsep| = Space between in-text figures and text.
%
%    \begin{macrocode}
%<*ucd10pt>
\setlength\floatsep    {12\p@ \@plus 2\p@ \@minus 2\p@}%
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}%
\setlength\intextsep{12\p@ \@plus 2\p@ \@minus 2\p@}%
%</ucd10pt>
%<*ucd11pt>
\setlength\floatsep{13\p@ \@plus 2\p@ \@minus 3\p@}%
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}%
\setlength\intextsep{13\p@ \@plus 4\p@ \@minus 3\p@}%
%</ucd11pt>
%<*ucd12pt>
\setlength\floatsep{14\p@ \@plus 2\p@ \@minus 4\p@}%
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}%
\setlength\intextsep{14\p@ \@plus 4\p@ \@minus 4\p@}%
%</ucd12pt>
%<*ucd13pt>
\setlength\floatsep{14\p@ \@plus 2\p@ \@minus 4\p@}%
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}%
\setlength\intextsep{14\p@ \@plus 4\p@ \@minus 4\p@}%
%</ucd13pt>
%    \end{macrocode}
%
%  For floats on a separate float page or column:
%    one-column mode or single-column floats in two-column mode.
%
%    \begin{macrocode}
% Stretch at top of float page/column. (Must be 0pt plus ...)
\setlength\@fptop{0\p@ \@plus 1fil}%
%
% Space between floats on float page/column.
\setlength\@fpsep{8\p@ \@plus 2fil}%
%
% Stretch at bottom of float page/column. (Must be 0pt plus ... )
\setlength\@fpbot{0\p@ \@plus 1fil}%
%    \end{macrocode}
%
% \subsection{Paragraphing}
% |\parskip| = Extra vertical space between paragraphs (default is 0).\\
% |\parindent| = Width of paragraph indentation.\\
% |\topsep| = Extra vertical space, in addition to
% |\parskip|, added above and below list and
% paragraphing environments.\\
% |\partopsep| = Extra vertical space, in addition to
% |\parskip| and |\topsep|, added when user
% leaves blank line before environment.\\
% |\itemsep| = Extra vertical space, in addition to
% |\parskip|, added between list items.
%
%    \begin{macrocode}
%<*ucd10pt>
\setlength\parskip{0\p@ \@plus \p@}
\setlength\parindent{15\p@}
\setlength\topsep{10pt plus 4pt minus 6pt}
\setlength\partopsep{3pt plus 2pt minus 2pt}
\setlength\itemsep{5pt plus 2.5pt minus 1pt}
%</ucd10pt>
%<*ucd11pt>
\setlength\parskip{0\p@ \@plus \p@}
\setlength\parindent{17\p@}
\setlength\topsep{10pt plus 4pt minus 6pt}
\setlength\partopsep{3pt plus 2pt minus 2pt}
\setlength\itemsep{5pt plus 2.5pt minus 1pt}
%</ucd11pt>
%<*ucd12pt>
\setlength\parskip{0\p@ \@plus \p@}
\setlength\parindent{1.5em}
\setlength\topsep{10pt plus 4pt minus 6pt}
\setlength\partopsep{3pt plus 2pt minus 2pt}
\setlength\itemsep{5pt plus 2.5pt minus 1pt}
%</ucd12pt>
%<*ucd13pt>
\setlength\parskip{0\p@ \@plus \p@}
\setlength\parindent{1.5em}
\setlength\topsep{10pt plus 4pt minus 6pt}
\setlength\partopsep{3pt plus 2pt minus 2pt}
\setlength\itemsep{5pt plus 2.5pt minus 1pt}
%</ucd13pt>
%    \end{macrocode}
%
% \subsection{Page Breaking Penalties}
%
%    \begin{macrocode}
\@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.
%</ucdxxpt>
%    \end{macrocode}
%
% \PrintChanges
% \newpage
% \PrintIndex
% \Finale
\endinput
