% \section{A \LaTeX\ Style File for Thesis Formatting at UIC}
%
% This is the thesis style file to be used with \LaTeX .
% To use it please enter the line \documentstyle{uicthesis}.
% This file an adoptation of the Report Document style for
% \LaTeX\ version 2.09 Copyright (C) 1988 by Leslie Lamport and
% for use with the new Font Selection Scheme that accompanied \TeX\
% version 3.1 at UIC.
%
% First Edition:
% Paul Davis, UIC Computer Center, 31 December 1991.
%
% Changes to this file:
%  (should be described here)
%  (remember to update the filedate and fileversion as needed.)
%
% Changed Acknowledgment to allow plurals and changed Cited Literature
%   to avoid Appendix continued page headers.
% Paul Davis, UIC Computer Center, 27 February 1992.
%
% Changed xnumberline to allow section,subsection,etc. headings to
%   line up.
% Paul Davis, UIC Computer Center, 3 March 1992.
%
% First, let us announce ourselves.
%    \begin{macrocode}
\def\filedate{27 Feb 92}
\def\fileversion{v1.0b}
\typeout{Document Style `UICTHESI' for Thesis Formatting at UIC
\fileversion  <\filedate > (phd)}
%    \end{macrocode}
%
% \section{Definitions}
% The next line defines a flag to detect
% when we started the body, the chapter macro (numbered) checks this flag.
% If it was false it changes to arabic pagenumbering and sets it to one.
% If it is already true it does not do anything.
%    \begin{macrocode}
\newif\if@startedbodyyet\@startedbodyyetfalse
\newif\if@startedappendices\@startedappendicesfalse
\newif\if@multappendices\@multappendicesfalse
\newif\if@isatable\@isatablefalse
\newif\if@nowarning       % New if to test if we need to issue a
\@nowarningtrue           % warning during footnote placement.
\newif\if@bibforma\@bibformafalse
\newcount\c@fnref
 
\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}
%
% \section{Page Layout}
% \subsection{Page Definition}
% Now, lets do the page settings.
% Margins are 1.25 inch on the left side and 1 inch on the right.
%    \begin{macrocode}
\oddsidemargin=0.25in
\evensidemargin=0.25in
\textwidth=6.25in
\def\innerheadskip{12pt}
\headheight=32pt
\headsep=30pt                  % area between the heading and the text
\footskip=20pt
\textheight=9in                % height of the physical page
\advance \textheight by -\headheight
\advance \textheight by -\headsep
\advance \textheight by -\footskip
\mark{{}{}}                    % Initializes TeX's marks
\@twosidefalse                 % Default is one-sided printing.
\pagestyle{pageonbottom}
\pagenumbering{roman}
%    \end{macrocode}
%
% The pagenumbering is set to roman because that is what the preliminary
% pages should be numbered with.
%    \begin{macrocode}
\@afterindenttrue
\looseness=1
\clubpenalty=10000
\widowpenalty=10000
\displaywidowpenalty=10000
\raggedbottom
%    \end{macrocode}
%
% \subsection{Line Spacing}
% Set up double spacing
%    \begin{macrocode}
\def\baselinestretch{2}
%    \end{macrocode}
%
% New command \verb+\setstretch+ (slightly more mnemonic...
% and easier to type)
%    \begin{macrocode}
\def\setstretch#1{\renewcommand{\baselinestretch}{#1}}
%    \end{macrocode}
%
% A single spaced quote (say) is done by surrounding singlespace with quote.
%    \begin{macrocode}
\def\singlespace{
   \vskip\parskip\vskip\baselineskip
   \def\baselinestretch{1}
   \setnew@baselineskip
   \baselineskip\baselinestretch\baselineskip
   \setbox\strutbox\hbox{
      \vrule\@height.7\baselineskip\@depth.3\baselineskip \@width\z@}
   \normalbaselineskip\baselineskip
   \glb@settings \the\every@size
   \aftergroup\glb@settings
   \vskip-\parskip
   \vskip-\baselineskip}
 
\def\endsinglespace{\par}
%    \end{macrocode}
%
%  Spacing, doublespace and onehalfspace all are meant to INCREASE the
%  spacing (i.e. calling onehalfspace from within doublespace will not
%  produce a graceful transition between spacings)
%    \begin{macrocode}
\def\spacing#1{
   \par
   \def\baselinestretch{#1}
   \setnew@baselineskip
   \baselineskip\baselinestretch\baselineskip
   \setbox\strutbox\hbox{
      \vrule\@height.7\baselineskip\@depth.3\baselineskip \@width\z@}
   \normalbaselineskip\baselineskip
   \glb@settings \the\every@size
   \aftergroup\glb@settings
   \vskip-\parskip
   \vskip-\baselineskip}
 
\def\endspacing{
   \par
   \vskip \parskip
   \vskip \baselineskip
   \endgroup
   \vskip -\parskip
   \vskip -\baselineskip
   \begingroup}
 
\def\onehalfspace{\spacing{1.5}}
\let\endonehalfspace=\endspacing
 
\def\doublespace{\spacing{2}}
\let\doublespace=\endspacing
%    \end{macrocode}
%
% Fix up spacing before and after displayed math
% (arraystretch seems to do a fine job for inside LaTeX displayed math,
% since array and eqnarray seem to be affected as expected)
% Changing \baselinestretch and doing a font change also works if done here,
% but then you have to change @setsize to remove the call to @nomath)
%    \begin{macrocode}
\everydisplay{
   \abovedisplayskip \baselinestretch\abovedisplayskip
   \belowdisplayskip \abovedisplayskip
   \abovedisplayshortskip \baselinestretch\abovedisplayshortskip
   \belowdisplayshortskip \baselinestretch\belowdisplayshortskip}
%    \end{macrocode}
%
% \subsection{Running Titles}
% \subsubsection{Page Numbering at Top}
% In this section we will redefine the running title, so that only the
% page number is printed. This can be achieved with a pagestyle which
% only prints the page at the top (like plain prints at the bottom).
%    \begin{macrocode}
\def\ps@pageontop{
   \def\@oddhead{\rm\hfil\thepage}
   \let\@evenhead\@oddhead
   \def\@oddfoot{}
   \let\@evenfoot\@oddfoot}
%    \end{macrocode}
%
% \subsubsection{Page Numbering at Bottom}
%    \begin{macrocode}
\def\ps@pageonbottom{
   \def\@oddhead{}
   \def\@evenhead{}
   \def\@oddfoot{\rm\hfil\thepage\hfil}
   \let\@evenfoot\@oddfoot}
%    \end{macrocode}
%
% \subsubsection{Front Matter Continuation Headings}
% This is the page style needed to print the headers in subsequent pages
% of the front matter pages other than the table of contents and the
% lists of figures and tables.
% The line that has a \verb+\vbox to 24pt{}+
% was set to use the \verb+\baselineskip+ but the baselineskip is set
% to zero and therefore cannot be used.
%    \begin{macrocode}
\def\ps@continued{
   \def\@oddhead{\headmark}
   \let\@evenhead\@oddhead
   \def\@oddfoot{\rm\normalsize\hfil\thepage\hfil}
   \let\@evenfoot\oddfoot}
%    \end{macrocode}
%
% \subsubsection{Appendix Continuation Headings}
% This is the page style needed to print the headers in subsequent pages
% of the appendix.
%    \begin{macrocode}
\def\ps@appendixcontinued{
   \def\@oddhead{\headmark}
   \let\@evenhead\@oddhead
   \def\@oddfoot{}
   \let\@evenfoot\oddfoot}
%    \end{macrocode}
%
% \subsection{Fonts}
% \subsubsection{Default Font Size}
% The type size option is handled by reading uicth11.sty.
% There is no alternates to the default 11 point style.
%    \begin{macrocode}
\@options
\input uicth11.sty\relax
%    \end{macrocode}
%
% \subsubsection{Generic Bold Definition}
% This defines a generic bold default series to be used in the definition for
% chapter for example. This definition will cause an emphasized word
% in the title section to be printed in slanted bold instead of roman bold.
% Only works with the new font definition scheme!
%    \begin{macrocode}
\def\transparentbold{\def\default@series{bx}\bf}
%    \end{macrocode}
%
% \subsubsection{Underlining}
% Hey, it works!
%    \begin{macrocode}
\newbox\ustrutbox
 
\setbox\ustrutbox=\hbox{\vrule height8.5pt depth3.2pt width0pt}
 
\def\ustrut{\relax\ifmmode\copy\ustrutbox\else\unhcopy\ustrutbox\fi}
 
\def\underl#1 {\leavevmode\let\first=\relax\underli #1 }
\def\underli#1 {\ifx&#1\let\next=\relax\unskip
  \else\let\next=\underli\first\ulinebox{#1}\fi\let\first=\undersp\next}
\def\undersp{\penalty50\ulinebox{\space}\penalty50}
\def\ulinebox#1{\vtop{\hbox{\ustrut#1}\hrule}}
%    \end{macrocode}
%
% \section{Title Page}
%
% In this section we will define the  title page. The only macros that
% were added are the \verb+\degree+ macro that will be used to print the
% degree that the student is pursuing and the\verb+\pdegrees+ macro that
% will be used to print the prior degrees earned by the author.
% \verb+\date+ is redefined so that it only prints the year.
% The title is forced to uppercase.
%    \begin{macrocode}
\def\title#1{\gdef\@title{\expandafter\uppercase{#1}}}
\def\author#1{
   \gdef\@author{#1}
   \gdef\@upauthor{\expandafter\uppercase{#1}}}
 
\def\@date{\the\year}
\def\degree#1{\def\@degree{#1}}
\def\pdegrees#1{\def\@pdegrees{#1}}
 
\def\titlepage{
   \newpage
   \c@page\z@}
 
\def\endtitlepage{\newpage}
 
\def\maketitle{%
   \begin{titlepage}
      \centering
      \thispagestyle{empty}
      \c@page=2
      \vbox to 0pt{%
         \begin{center}
            \large\transparentbold\@title
         \end{center}\vss}
      \vfill
      \begin{singlespace}
         BY
         \vskip\baselineskip
         \begin{tabular}{c}
            \@upauthor\\\@pdegrees
         \end{tabular}
         \vfill
         \vbox to 0pt{\vss
            \begin{center}
               THESIS
               \vskip \baselineskip
               Submitted in partial fulfillment of the requirements\\
               for the degree of \@degree\\
               in the Graduate College of the\\
               University of Illinois at Chicago, \@date
               \vskip 3\baselineskip
               Chicago, Illinois
            \end{center}}
      \end{singlespace}
   \end{titlepage}}
%    \end{macrocode}
%
% \section{Chapters and Sections}
% By default, \LaTeX\ will only number thru the Subsections.
% Paragraphs and subparagraphs are not numbered so we will change
% the value of secnumdepth to a high number like 10 (5 will do).
%    \begin{macrocode}
\c@secnumdepth=10  % or  \setcounter{secnumdepth}{10}
 
\def\@sect#1#2#3#4#5#6[#7]#8{
   \ifnum #2>\c@secnumdepth
      \def\@svsec{}
   \else
      \refstepcounter{#1}
      \edef\@svsec{\csname the#1\endcsname\hskip 1em }
   \fi
   \@tempskipa #5\relax
   \ifdim \@tempskipa>\z@
      \begingroup
         #6\relax
         \@hangfrom{\hskip #3\relax\@svsec}
         {\interlinepenalty \@M \underl #8 & }%
      \endgroup
      \csname #1mark\endcsname{#7}
      \if@startedappendices
      \else
         \addcontentsline
            {toc}
            {#1}
            {\ifnum #2>\c@secnumdepth
            \else
               \protect\numberline{\csname the#1\endcsname}
            \fi
         #7}
      \fi
   \else
      \def\@svsechd{#6\hskip #3\@svsec #8\csname #1mark\endcsname
          {#7}
      \if@startedappendices
      \else
         \addcontentsline
            {toc}
            {#1}
            {\ifnum #2>\c@secnumdepth
            \else
               \protect\numberline{\csname the#1\endcsname}
            \fi
            #7}}
         \fi
      \fi
   \@xsect{#5}}
%    \end{macrocode}
%
% \subsection{Chapter}
% This changes the way chapter headings are printed. The size was reduced
% and it is centered instead of left justified.
% \verb+\@makechapterhead+ is used by \verb+\chapter+ and
% \verb+\@makeschapterhead+ is used by \verb+\chapter*+.
% The \verb+\chapter+ macro calls the \verb+\@chapter+ if \verb+\chapter+
% was used and calls the \verb+\@schapter+ if \verb+\chapter*+ was used.
%    \begin{macrocode}
\newcounter{chapter}                % The counter
\def\thechapter{\arabic{chapter}}   % Printed representation of counter.
 
\def\chapter{
   \clearpage              % Starts new page.
   \if@startedappendices
       \pagestyle{appendixcontinued}
       \if@multappendices
          \def\headmark{\vbox{
                {\hbox to \textwidth{\rm\normalsize\hfil\thepage}}
                \vspace{\innerheadskip}
                {\hbox to \textwidth
                   {\hfil{\bf\large Appendix
                       \thechapter{} (Continued)}\hfil}}}}
       \else
          \def\headmark{\vbox{
                {\hbox to \textwidth{\rm\normalsize\hfil\thepage}}
                \vspace{\innerheadskip}
                {\hbox to \textwidth
                   {\hfil{\bf\large APPENDIX (Continued)}\hfil}}}}
       \fi
       \thispagestyle{pageontop}
   \else
       \thispagestyle{pageonbottom}
                           % Page number of chapter page is on bottom
                           % except for appendix chapters, where it
                           % appears on top.
   \fi
   \global\@topnum\z@      % Prevents figures from going at top of page.
   \setcounter{equation}{0}
   \secdef\@chapter\@schapter}
 
\def\@schapter#1{
   \typeout{Unnumbered Chapter.}
   \@makeschapterhead{#1}
   \@afterheading}
 
\def\@chapter[#1]#2{
   \ifnum \c@secnumdepth > \m@ne
       \refstepcounter{chapter}
       \typeout{\@chapapp\space\thechapter.} % Msg to term
   \fi
   \if@startedappendices
      \if@multappendices
\addcontentsline{toc}{chapter}%
{\protect\xnumberline{\ }\ \ \ \ \ Appendix \thechapter}
      \else
\addtocontents{toc}{\protect\addvspace{\baselineskip}}
\addcontentsline{toc}{chapter}%
{\protect\xnumberline{\ }APPENDIX }
      \fi
   \else
\addtocontents{toc}{\protect\addvspace{\baselineskip}}
\addcontentsline{toc}{chapter}%
{\protect\xnumberline{\thechapter\hskip 2em}\uppercase{#1}}
   \fi
   \if@startedbodyyet         % Then do nothing
   \else
       \pagestyle{pageontop}
       \pagenumbering{arabic}
       \@startedbodyyettrue
   \fi
   \@makechapterhead{#2}
   \@afterheading}
%    \end{macrocode}
%
% The section of the code for \verb+\@chapter+ between
% \verb+\if@startedbodyyet+ and \verb+\fi+ was added so that when we call
% \verb+\chapter+ for the first time in the body of the macro, the
% page number will be reset to one and to roman.
% The \verb+\numberline+ command takes as an argument the section number
% and we need to change it. As defined in the
% \verb+report.sty+ is set so that the section numbers align to the left
% instead of the right.
%    \begin{macrocode}
\def\chaptermark#1{}
 
%    \end{macrocode}
%
% \subsubsection{Make Chapter Heading}
% \paragraph{Numbered Chapter Heading}
%    \begin{macrocode}
\def\@makechapterhead#1{
    {\parindent 0pt \centering
     \ifnum \c@secnumdepth > \m@ne     % If > -1 then write it
       \if@startedappendices
          \if@multappendices
             \large\transparentbold \@chapapp{} \thechapter\par
          \else
             \large\transparentbold APPENDIX\par
          \fi
       \else
          \large\transparentbold \@chapapp{} \thechapter\par
       \fi
       \vspace{20pt}
     \fi
       \large\transparentbold\uppercase{#1}\par
       \nobreak
       \vspace{20pt}}}
%    \end{macrocode}
%
% \paragraph{Unnumbered Chapter Heading}
%    \begin{macrocode}
\def\@makeschapterhead#1{
    {\parindent 0pt \centering
      \large\transparentbold\uppercase{#1}\par
      \nobreak
      \vspace{20pt}}}
%    \end{macrocode}
%
% \subsubsection{Appendix Chapters}
% \verb+\@chapapp+ is initially defined to be ``CHAPTER''.
% The \verb+\appendix+ command redefines it to be ``Appendix''.
%    \begin{macrocode}
\def\@chapapp{CHAPTER}
 
\def\appendix{\par
  \@startedappendicestrue
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \def\@chapapp{Appendix}
  \def\thechapter{\Alph{chapter}}}
%    \end{macrocode}
%
% If there are multiple appendix chapters, they are to be preceeded by
% a page with the word ``APPENDICES'' centered horizontally
% and vertically.
%    \begin{macrocode}
\def\appendices{
   \clearpage
   \thispagestyle{pageonbottom}
   \vspace*{3in}
   \begin{center}
   {\bf APPENDICES}
   \end{center}
   \@multappendicestrue
   \addtocontents{toc}{\protect\addvspace{\baselineskip}}
   \addcontentsline{toc}{chapter}
      {\protect\xnumberline{\ }APPENDICES}
   \vfill\eject}
%    \end{macrocode}
%
% \subsubsection{Table of Contents entry for Chapter}
% The entry in the table of contents does not include a dotted line.
% This is a change to remedy that.
%    \begin{macrocode}
%\def\numberline#1{\hbox{#1\ }}
\def\numberline#1{\hbox to 0.75in{#1\hss\ }}
\def\xnumberline#1{\hbox to\@tempdima{\hss #1\ }}
 
\def\l@chapter#1#2{
   \if@startedappendices
      \if@multappendices
         \@dottedtocline
            {0}            % appendix chapter like a section
            {8.0em}        % indentation of the entry in toc
            {3.2em}
            {Appendix \thechapter}
            {#2}
      \else
         \@dottedtocline
            {0}            % appendix chapter like a section
            {6.0em}        % indentation of the entry in toc
            {3.2em}
            {APPENDIX}
            {#2}
      \fi
   \else
      \@dottedtocline
         {0}            % chapter is level zero used by tocdepth
         {3.5em}        % indentation of the entry in toc
         {2.5em}        % width of the chapter number
         {\transparentbold #1} % title
         {#2}           % Page number
   \fi}
%    \end{macrocode}
%
% \subsection{Section}
% \subsubsection{Section Headings}
%    \begin{macrocode}
\newcounter{section}[chapter]                  % The counter
\def\thesection {\thechapter.\arabic{section}} %Printed representation.
 
\def\section{
     \@startsection{section}      % name of section and also name of
                                  % the counter.
                   {1}            % level, level 0 is chapter
                                  % (for report.sty)
                   {0 pt}         % Indentation from left margin.
                                  % It can be negative -$>$ moved into
                                  % the left margin.
                   {12 pt plus 3 pt minus 4 pt}
                                  % Skip before heading is printed.
                                  % see expl. above for neg. val.
                   {5 pt plus 1 pt minus 2 pt}
                                  % After heading skip. If negative
                                  % The text will be printed next
                                  % to the heading text leaving
                                  % the space (absolute value)
                                  % indicated. Don't use
                                  % zero as it will be printed on
                                  % the same line without any space
                                  % If negative remove stretch.
                    {\normalsize\bf}}
%    \end{macrocode}
%
% \subsubsection{Table of Contents entry for Section}
%    \begin{macrocode}
\def\l@section{
   \@dottedtocline
      {1}               % chapter is level zero used by tocdepth
      {6.0em}           % indentation of the entry in toc=
      {2.3em}}          % Indent + Space of l@chapter
%    \end{macrocode}
%
% \subsection{Subsection}
% \subsubsection{Subsection Headings}
%    \begin{macrocode}
\newcounter{subsection}[section]                    % The counter
\def\thesubsection{\thesection.\arabic{subsection}} % printed form
 
\def\subsection{%
     \@startsection{subsection}   % name of section and also name of
                                  % the counter.
                   {2}            % level, level 0 is chapter
                                  % (for report.sty)
                   {0 pt}         % Indentation from left margin.
                                  % It can be negative -$>$ moved into
                                  % the left margin.
                   {12 pt plus 3 pt minus 4 pt}
                                  % Skip before heading is printed.
                                  % see expl. above for neg. val.
                   {5 pt plus 1 pt minus 2 pt}
                                  % After heading skip. If negative
                                  % The text will be printed next
                                  % to the heading text leaving
                                  % the space (absolute value)
                                  % indicated. Don't use
                                  % zero as it will be printed on
                                  % the same line without any space
                                  % If negative remove stretch.
                    {\normalsize\bf}}
%    \end{macrocode}
%
% \subsubsection{Table of Contents entry for Subsection}
%    \begin{macrocode}
\def\l@subsection{
   \@dottedtocline
      {2}               % chapter is level zero used by tocdepth
      {6.0em}           % indentation of the entry in toc=
      {3.2em}}          % Indent + Space of l@section
%    \end{macrocode}
%
% \subsection{Subsubection}
% \subsubsection{Subsubsection Headings}
%    \begin{macrocode}
\newcounter{subsubsection}[subsection]        % The counter
\def\thesubsubsection{\thesubsection .\arabic{subsubsection}}
 
\def\subsubsection{%
     \@startsection{subsubsection} % name of section and also name of
                                  % the counter.
                   {3}            % level, level 0 is chapter
                                  % (for report.sty)
                   {0 pt}         % Indentation from left margin.
                                  % It can be negative -$>$ moved into
                                  % the left margin.
                   {12 pt plus 3 pt minus 4 pt}
                                  % Skip before heading is printed.
                                  % see expl. above for neg. val.
                   {5 pt plus 1 pt minus 2 pt}
                                  % After heading skip. If negative
                                  % The text will be printed next
                                  % to the heading text leaving
                                  % the space (absolute value)
                                  % indicated. Don't use
                                  % zero as it will be printed on
                                  % the same line without any space
                                  % If negative remove stretch.
                    {\normalsize\bf}}
%    \end{macrocode}
%
% \subsubsection{Table of Contents entry for Subsubsection}
%    \begin{macrocode}
\def\l@subsubsection{
   \@dottedtocline
      {3}               % chapter is level zero used by tocdepth
      {6.0em}           % indentation of the entry in toc=
      {4.1em}}          % Indent + Space of l@subsection
%    \end{macrocode}
% \subsection{Paragraph}
% \subsubsection{Paragraph Headings}
%    \begin{macrocode}
\newcounter{paragraph}[subsubsection]       % The counter.
\def\theparagraph{\thesubsubsection.\arabic{paragraph}}
 
\def\paragraph{%
     \@startsection{paragraph}    % name of section and also name of
                                  % the counter.
                   {4}            % level, level 0 is chapter
                                  % (for report.sty)
                   {0 pt}         % Indentation from left margin.
                                  % It can be negative -$>$ moved into
                                  % the left margin.
                   {12 pt plus 3 pt minus 4 pt}
                                  % Skip before heading is printed.
                                  % see expl. above for neg. val.
                   {5 pt plus 1 pt minus 2 pt}
                                  % After heading skip. If negative
                                  % The text will be printed next
                                  % to the heading text leaving
                                  % the space (absolute value)
                                  % indicated. Don't use
                                  % zero as it will be printed on
                                  % the same line without any space
                                  % If negative remove stretch.
                    {\normalsize\bf}}
%    \end{macrocode}
%
% \subsubsection{Table of Contents entry for Paragraph}
%    \begin{macrocode}
\def\l@paragraph{
   \@dottedtocline
      {4}               % chapter is level zero used by tocdepth
      {6.0em}           % indentation of the entry in toc=
      {5em}}            % Indent + Space of l@subsubsection
%    \end{macrocode}
%
% \subsection{Subparagraph}
% \subsubsection{Subparagraph Headings}
%    \begin{macrocode}
\newcounter{subparagraph}[paragraph]        % The counter
\def\thesubparagraph{\theparagraph.\arabic{subparagraph}}
 
\def\subparagraph{%
     \@startsection{subparagraph} % name of section and also name of
                                  % the counter.
                   {5}            % level, level 0 is chapter
                                  % (for report.sty)
                   {0 pt}         % Indentation from left margin.
                                  % It can be negative -$>$ moved into
                                  % the left margin.
                   {12 pt plus 3 pt minus 4 pt}
                                  % Skip before heading is printed.
                                  % see expl. above for neg. val.
                   {5 pt plus 1 pt minus 2 pt}
                                  % After heading skip. If negative
                                  % The text will be printed next
                                  % to the heading text leaving
                                  % the space (absolute value)
                                  % indicated. Don't use
                                  % zero as it will be printed on
                                  % the same line without any space
                                  % If negative remove stretch.
                    {\normalsize\bf}}
%    \end{macrocode}
%
% \subsubsection{Table of Contents entry for Subparagraph}
%    \begin{macrocode}
\def\l@subparagraph{
   \@dottedtocline
      {5}               % chapter is level zero used by tocdepth
      {6.0em}           % indentation of the entry in toc=
      {6.0em}}          % Indent + Space of l@paragraph
%    \end{macrocode}
%
% \section{Preliminary Sections}
% If this is to be a preliminary section, this macro causes the
% name designated by \verb+\section@mark+ to be used as the section
% title and to use that title in the heading of the continued pages
% of this section.
%    \begin{macrocode}
\def\@makeprelimhead{
   \def\headmark{\vbox{
        \hbox to \textwidth{\bf\large\hfil\section@mark{}
         (Continued) \hfil}}}
   \pagestyle{continued}
   \thispagestyle{pageonbottom}
   \@makeschapterhead{\section@mark}
   \par}
%    \end{macrocode}
%
% \subsection{Copyright Page}
%    \begin{macrocode}
\def\copyrightpage{
   \newpage\thispagestyle{empty}
   \c@page=2
   \vspace*{2.5in}
   \begin{center}
      Copyright by\\\@author\\\@date
   \end{center}
   \vfill\eject}
%    \end{macrocode}
%
% \subsection{Dedication}
%    \begin{macrocode}
\def\dedication{
   \clearpage
   \typeout{DEDICATION}
   \chapter*{}}
%    \end{macrocode}
%
% \subsection{Acknowledgment(s)}
%    \begin{macrocode}
\def\acknowledgment{
   \clearpage
   \typeout{ACKNOWLEDGMENT.}
   \def\section@mark{ACKNOWLEDGMENT}
   \@makeprelimhead}
\let\acknowledgement\acknowledgment
 
\def\acknowledgments{
   \clearpage
   \typeout{ACKNOWLEDGMENTS.}
   \def\section@mark{ACKNOWLEDGMENTS}
   \@makeprelimhead}
\let\acknowledgements\acknowledgments
 
\def\initials#1{
   \par\vspace{50pt}
   \leftline{\hskip 5.5in #1 \hfil}}
%    \end{macrocode}
%
% \subsection{Preface}
%    \begin{macrocode}
\def\preface{
   \clearpage
   \typeout{PREFACE.}
   \def\section@mark{PREFACE}
   \@makeprelimhead}
%    \end{macrocode}
%
% \subsection{Summary}
%    \begin{macrocode}
\def\summary{
   \clearpage
   \typeout{SUMMARY.}
   \def\section@mark{SUMMARY}
   \@makeprelimhead}
%    \end{macrocode}
%
% \subsection{List of Abbreviations}
%    \begin{macrocode}
\def\listofabbreviations{
   \clearpage
   \typeout{LIST OF ABBREVIATIONS.}
   \def\section@mark{LIST OF ABBREVIATIONS}
   \@makeprelimhead}
%    \end{macrocode}
%
% \subsection{Vita}
%    \begin{macrocode}
\def\vita{
   \clearpage
   \typeout{VITA.}
   \addtocontents{toc}{\protect\addvspace{\baselineskip}}
   \addcontentsline{toc}{chapter}
      {\protect\xnumberline{\ }VITA}
   \def\section@mark{VITA}
   \pagestyle{pageontop}
   \thispagestyle{pageontop}
   \@makeschapterhead{\section@mark}\par}
%    \end{macrocode}
%
% \section{Table of Contents}
% Here we define \verb+\tableofcontents+, we create a page style for
% the table of contents called \verb+\toc+. First let's define the name
% for the table of contents.
%    \begin{macrocode}
\def\tocname{TABLE OF CONTENTS}
%    \end{macrocode}
%
% Increase the heading level that will be included in the table of contents.
% The default is 2. We will set it equal to \verb+\c@secnumdepth+
%    \begin{macrocode}
\c@tocdepth=\c@secnumdepth
%    \end{macrocode}
%
% We change the \verb+\tableofcontents macro+
%    \begin{macrocode}
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.0}
 
\def\tableofcontents{
   \clearpage
   \typeout{TABLE OF CONTENTS.}
   \def\headmark{\vbox{
        \hbox to \textwidth{\bf\large\hfil TABLE OF CONTENTS
           (Continued) \hfil}
        \vspace{\innerheadskip}
        \hbox to \textwidth{\bf\normalsize
           \underbar{CHAPTER}\hfil\underbar{PAGE}}}}
   \pagestyle{continued}
   \table@of@cont
   \newpage
   }
 
\def\table@of@cont{%
   \begin{singlespace}
   \thispagestyle{pageonbottom}
   \@makeschapterhead{TABLE OF CONTENTS}
   \par
   \hbox to \textwidth{\bf\underbar{CHAPTER}
       \hfil\underbar{PAGE}}
   \@starttoc{toc}
   \end{singlespace}}
%    \end{macrocode}
%
% \section{Figures and Tables}
% \subsection{Float placement parameters}
% See LaTeX manual for their definition.
%    \begin{macrocode}
\setcounter{topnumber}{2}
\def\topfraction{.7}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.3}
\setcounter{totalnumber}{3}
\def\textfraction{.2}
\def\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{.7}
\def\dblfloatpagefraction{.5}
%    \end{macrocode}
% The caption for a table is forced to uppercase, but that for a figure
% is left in mixed case.
%    \begin{macrocode}
\long\def\@caption#1[#2]#3{
   \par
   \addtocontents
      {\csname ext@#1\endcsname}
      {\protect\addvspace{\baselineskip}}
   \if@isatable
\addcontentsline%
{\csname ext@#1\endcsname}{#1}{\protect\xnumberline%
{\csname the#1\endcsname\hskip 2em}%
{\expandafter{\uppercase{\ignorespaces #2}}}}
   \else
      \addcontentsline
{\csname ext@#1\endcsname}{#1}{\protect\xnumberline%
{\csname the#1\endcsname\hskip 2em}%
{\ignorespaces #2}}
   \fi
   \begingroup
      \@parboxrestore
      \normalsize
   \if@isatable
      \@makecaption{\csname fnum@#1\endcsname}
      {\expandafter{\uppercase{\ignorespaces #3}}}\par
   \else
      \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
   \fi
   \endgroup}
 
\long\def\@makecaption#1#2{
   {\vspace{10pt}\centering
   \if@isatable
      \hbox to \hsize{\hfil #1 \hfil}
      \vspace{\baselineskip}
      \setbox\@tempboxa\hbox{#2}
      \ifdim \wd\@tempboxa >\hsize
          #2\par
      \else
          \hbox to \hsize{\hfil\box\@tempboxa\hfil}
      \fi
   \else
      \setbox\@tempboxa\hbox{#1. #2}
      \ifdim \wd\@tempboxa >\hsize   % IF longer than one line:
          #1. #2\par                 %   THEN set as ordinary paragraph.
      \else                          %   ELSE  center.
          \hbox to\hsize{\hfil\box\@tempboxa\hfil}
      \fi
   \fi}}
 
\def\tablerule{
   \kern-3\p@
   \hrule width \columnwidth
   \kern 2.6\p@}
%    \end{macrocode}
%
% \subsection{Figure}
%    \begin{macrocode}
\newcounter{figure}
\def\thefigure{\arabic{figure}}
\def\p@figure{Figure~}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{Figure~\thefigure}
\def\figure{\@isatablefalse\@float{figure}}
\let\endfigure\end@float
\@namedef{figure*}{\@dblfloat{figure}}
\@namedef{endfigure*}{\end@dblfloat}
%    \end{macrocode}
%
% \subsection{Table}
%    \begin{macrocode}
\newcounter{table}
\def\thetable{\Roman{table}}
\def\p@table{Table~}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{TABLE~\thetable}
\def\table{\@isatabletrue\@float{table}}
\let\endtable\end@float
\@namedef{table*}{\@dblfloat{table}}
\@namedef{endtable*}{\end@dblfloat}
%    \end{macrocode}
%
% \section{Lists of Figures and Tables}
% \subsection{List of Figures}
%    \begin{macrocode}
\def\listoffigures{
   \clearpage
   \typeout{LIST OF FIGURES.}
   \def\headmark{\vbox{
        \hbox to \textwidth{\large\bf\hfil LIST OF FIGURES
           (Continued) \hfil}
        \vspace{\innerheadskip}
        \hbox to \textwidth{\normalsize\bf
           \underbar{FIGURE}\hfil\underbar{PAGE}}}}
   \pagestyle{continued}
   \list@of@figs
   \newpage
   }
 
\def\list@of@figs{
   \begin{singlespace}
   \thispagestyle{pageonbottom}
   \@makeschapterhead{LIST OF FIGURES}
   \par
   \hbox to \textwidth{\normalsize\bf
      \underbar{FIGURE}\hfil\underbar{PAGE}}
   \@starttoc{lof}
   \end{singlespace}}
 
\def\l@figure{
   \@dottedtocline{1}{2.5em}{3.5em}}
%    \end{macrocode}
%
% \subsection{List of Tables}
%    \begin{macrocode}
\def\listoftables{
   \clearpage
   \typeout{LIST OF TABLES.}
   \def\headmark{\vbox{
        \hbox to \textwidth{\large\bf \hfil LIST OF TABLES
           (Continued) \hfil}
        \vspace{\innerheadskip}
        \hbox to \textwidth{\normalsize\bf
           \underbar{TABLE}\hfil\underbar{PAGE}}}}
   \pagestyle{continued}
   \list@of@tabs
   \newpage
   }
 
\def\list@of@tabs{
   \begin{singlespace}
   \thispagestyle{pageonbottom}
   \@makeschapterhead{LIST OF TABLES}
   \par
   \hbox to \textwidth{\normalsize\bf
       \underbar{TABLE}\hfil\underbar{PAGE}}
   \@starttoc{lot}
   \end{singlespace}}
 
\def\l@table{
   \@dottedtocline{1}{3.0em}{3.5em}}
%    \end{macrocode}
%
% \section{Lists}
% \subsection{Enumerate}
%  Enumeration is done with four counters: enumi, enumii, enumiii
%  and enumiv, where enumN controls the numbering of the Nth level
%  enumeration.  The label is generated by the commands
%  \verb+\labelenumi+ ... \verb+\labelenumiv+.
% The expansion of \verb+\p@enumN\theenumN+ defines the
%  output of a \verb+\ref+ command.
%    \begin{macrocode}
 
\def\labelenumi{\theenumi.}
\def\theenumi{\arabic{enumi}}
 
\def\labelenumii{(\theenumii)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}
 
\def\labelenumiii{\theenumiii.}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}
 
\def\labelenumiv{\theenumiv.}
\def\theenumiv{\Alph{enumiv}}
\def\p@enumiv{\p@enumiii\theenumiii}
%    \end{macrocode}
%
% \subsection{Itemize}
% Itemization is controlled by four commands:
% \verb+\labelitemi+,
% \verb+\labelitemii+,
% \verb+\labelitemiii+, and
% \verb+\labelitemiv+,
% which define the labels of the various
% itemization levels.
%    \begin{macrocode}
\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\ast$}
\def\labelitemiv{$\cdot$}
%    \end{macrocode}
%
% \subsection{Verse}
%   The verse environment is defined by making clever use of the
%   list environment's parameters.  The user types \verb+\\+
%   to end a line.
%   This is implemented by \verb+\let'in \\ equal \@centercr+.
%    \begin{macrocode}
\def\verse{\let\\=\@centercr
  \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent
          \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
\let\endverse\endlist
%    \end{macrocode}
%
% \subsection{Quotation}
%   Fills lines and indents paragraph.
%    \begin{macrocode}
\def\quotation{\list{}{\listparindent 1.5em
    \itemindent\listparindent
    \rightmargin\leftmargin\parsep 0pt plus 1pt}\item[]}
\let\endquotation=\endlist
%    \end{macrocode}
%
% \subsection{Quote}
% Same as quotation except no paragraph indentation,
%    \begin{macrocode}
\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
\let\endquote=\endlist
%    \end{macrocode}
%
% \subsection{Description}
%  To change the formatting of the label, you must redefine
%  \verb+\descriptionlabel+.
%    \begin{macrocode}
\def\descriptionlabel#1{\hspace\labelsep \bf #1}
 
\def\description{\list{}{\labelwidth\z@ \itemindent-\leftmargin
    \let\makelabel\descriptionlabel}}
 
\let\enddescription\endlist
 
\newdimen\descriptionmargin
\descriptionmargin=3em
%    \end{macrocode}
%
% \section{Other Environments}
% \subsection{Equation numbering}
% Equations are numbered as two arabic numbers, separated by a period.
% The first number, to the left of the period, is the chapter number.
% The second number is a counter that is initialized to start at 1
% at the beginning of each chapter and is incremented for each new
% equation.
%    \begin{macrocode}
\def\p@equation{Equation~}
\def\theequation{\thechapter.\arabic{equation}}
%    \end{macrocode}
%
% \subsection{Array and Tabular}
%    \begin{macrocode}
\arraycolsep 5pt     % Half the space between columns in an array environment.
\tabcolsep 6pt       % Half the space between columns in a tabular environment.
\arrayrulewidth .4pt % Width of rules in array and tabular environment.
\doublerulesep 2pt   % Space between adjacent rules in array or tabular env.
%    \end{macrocode}
%
% \subsection{Tabbing}
%    \begin{macrocode}
\tabbingsep \labelsep   % Space used by the \' command.  (See LaTeX manual.)
%    \end{macrocode}
%
% \subsection{Minipage}
%  \verb+\@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.
%
% \verb+\skip\@mpfootins+  plays same role for footnotes in a minipage as
% \verb+\skip\footins+ does for ordinary footnotes
%    \begin{macrocode}
\skip\@mpfootins = \skip\footins
%    \end{macrocode}
%
% \subsection{Framebox}
%    \begin{macrocode}
\fboxsep = 3pt % Space left between box and text by \fbox and \framebox.
\fboxrule = .4pt % Width of rules in box made by \fbox and \framebox.
%    \end{macrocode}
%
% \subsection{Bibliography}
%    \begin{macrocode}
\def\bibforma{\@bibformatrue\bibliographystyle{forma}}
\def\bibformb{\@bibformafalse\bibliographystyle{formb}}
\def\bibformc{\@bibformafalse\bibliographystyle{formc}}
 
\def\bibob{(}\def\bibcb{)}
\def\roundbrackets{\def\bibob{(}\def\bibcb{)}}
\def\squarebrackets{\def\bibob{[}\def\bibcb{]}}
\def\nobrackets{\def\bibob{}\def\bibcb{}}
\def\bibdatesep{,\ }
\def\bibmultisep{;}
\def\egrp/{\egroup}
 
 \def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
  \def\@citea{}\@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{\bibmultisep\penalty\@m\ }\@ifundefined
       {b@\@citeb}{{\bf ?}\@warning
       {Citation `\@citeb' on page \thepage \space undefined}}%
{\csname b@\@citeb\endcsname}}}{#1}}
 
\def\@cite#1#2{{#1\if@tempswa \bibdatesep #2\fi}}
 
\let\@internalcite\@citex
 
\def\cite{\@ifnextchar[{\@tempswatrue\@namecite}%
    {\@tempswafalse\@namecite[]}}
 
\def\@namecite[#1]#2{\bibob\def\citename##1{##1\bibdatesep}%
    \@internalcite[#1]{#2}\bibcb}
 
\def\@lbibitem[#1]#2{\item[]\if@filesw
      { \def\protect##1{\string ##1\space}\immediate
        \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
 
\def\bibliography#1{
   \clearpage
   \typeout{CITED LITERATURE.}
   \addtocontents{toc}{\protect\addvspace{\baselineskip}}
   \addcontentsline{toc}{chapter}
      {\protect\xnumberline{\ }CITED LITERATURE}
   \def\section@mark{CITED LITERATURE}
   \pagestyle{pageontop}
   \thispagestyle{pageontop}
   \@makeschapterhead{\section@mark}\par
   \begin{singlespace}
   \if@filesw\immediate\write\@auxout{\string\bibdata{#1}}\fi
   \@input{\jobname.bbl}
   \end{singlespace}}
 
\def\thebibliography#1{
   \if@bibforma
      \list{\relax}
         {\setlength{\labelsep}{0em}
          \setlength{\itemindent}{-2em}
          \setlength{\leftmargin}{2em}}
   \else
      \list{\arabic{enumi}.}
         {\settowidth\labelwidth{#1.}\leftmargin\labelwidth
          \advance\leftmargin\labelsep
          \advance\leftmargin 0.5in
          \itemindent -0.5in
          \usecounter{enumi}}
   \fi
   \def\newblock{\hskip .11em plus .33em minus .07em}
   \sloppy\clubpenalty4000\widowpenalty4000
   \sfcode`\.=1000\relax
   }
 
\def\endthebibliography{\endlist\pagestyle{pageontop}}
%    \end{macrocode}
%
% \subsection{Indexing}
%    \begin{macrocode}
\newif\if@restonecol
\def\theindex{
   \@restonecoltrue
   \if@twocolumn\@restonecolfalse\fi
   \columnseprule \z@
   \columnsep 35pt
   \clearpage
   \begin{singlespace}
   \def\section@mark{Index}
   \twocolumn[\@makeprelimhead]
   \parindent\z@
   \parskip\z@ plus .3pt\relax
   \let\item\@idxitem}
 
\def\@idxitem{\par\hangindent 40pt}
\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
%    \end{macrocode}
%
% \subsection{Footnotes}
%    \begin{macrocode}
\def\footnoterule{
   \kern-3\p@
   \hrule width \columnwidth
   \kern 2.6\p@}
 
\@addtoreset{footnote}{chapter}
 
\long\def\@makefntext#1{\parindent 1em\noindent%
\hbox to 1.8em{\hss$^{\@thefnmark}$}#1}
 
\def\footnotesep{\baselineskip}
 
\def\footnote{\@ifnextchar[{\@xfootnote}%
{\@pagefn\xdef\@thefnmark{\thefootnote}\@footnotemark\@footnotetext}}
 
\def\footnotemark{%
\@ifnextchar[{\@xfootnotemark}%
{\@pagefn\xdef\@thefnmark{\thefootnote}\@footnotemark}}
 
\long\def\@footnotetext#1{%
\insert\footins{\singlespace\small%
\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}%
\endsinglespace}}
 
\def\@pagefn{%
\stepcounter{fnref}%
\@ifnewpage{\setcounter{footnote}{1}}%
{\stepcounter{footnote}}}
 
\def\@ifnewpage#1#2{%
\if@filesw\let\thec@page=\relax%
\def\thec@page{\the\c@page}%
\edef\@tempa{\write\@auxout{\string\fnref{\the\c@fnref}{\thec@page}}}%
\def\thec@page{\the\c@page}%
\@tempa\@iflastfnsamepage{#2}{#1}%
\else%
#2%
\fi}
%    \end{macrocode}
%
% make sure that we are writing to an aux file
% thec@page is a macro not a counter it is not missing a '\'
% If they are not writing to an aux file simply
% increase the counter throughout the documents
%    \begin{macrocode}
\def\fnref#1#2{\expandafter\gdef\csname fn@#1\endcsname{#2}}
 
\def\@iflastfnsamepage#1#2{%
\edef\@tempa{fn@\the\c@fnref}%
\edef\this@fnpage{\expandafter\csname\@tempa\endcsname}%
\@tempcnta=\c@fnref%
\advance\@tempcnta by -1%
\edef\@tempa{fn@\the\@tempcnta}%
\edef\last@fnpage{\expandafter\csname\@tempa\endcsname}%
\if\last@fnpage\this@fnpage #1%
\else #2%
\fi}
 
\fnref{0}{-1}
 
\def\@fnfinish{%
\def\fnref##1##2{%
\def\@tempa{##2}%
\edef\@tempb{\csname fn@##1\endcsname}
\if\@tempa\@tempb
\else
\if@nowarning\@warning{Some of the footnotes might have moved.
                                  Rerun to fix the output}
\@nowarningfalse\fi\fi}}
%    \end{macrocode}
%
% In order to be able to check if the footnotes have moved, and to print
% the warning, we need to redefine the \verb+\enddocument+ environment.
%    \begin{macrocode}
\let\fn@save@enddocument=\enddocument      % save a copy of enddocument
\def\enddocument{\@fnfinish\fn@save@enddocument}
%    \end{macrocode}
%
% Increase the space between last line of text and footnote rule.
%   This is a very untidy way to do it!
%    \begin{macrocode}
\skip\footins 20pt plus4pt minus4pt
%    \end{macrocode}
%
% Reset baselinestretch within footnotes and floats.
%    \begin{macrocode}
\def\@xfloat#1[#2]{
   \ifhmode \@bsphack\@floatpenalty -\@Mii
   \else \@floatpenalty-\@Miii\fi
   \def\@captype{#1}
   \ifinner
      \@parmoderr\@floatpenalty\z@
   \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
      \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
         \@tfor \@tempa :=#2\do
                     {\if\@tempa h\advance\@tempcnta \@ne\fi
                      \if\@tempa t\advance\@tempcnta \tw@\fi
                      \if\@tempa b\advance\@tempcnta 4\relax\fi
                      \if\@tempa p\advance\@tempcnta 8\relax\fi}
         \global\count\@currbox\@tempcnta}\@fltovf\fi
   \global\setbox\@currbox\vbox\bgroup
   \def\baselinestretch{1}\small\normalsize
   \hsize\columnwidth \@parboxrestore}
%    \end{macrocode}
%
