Document Classes for Writing Theses and Dissertations

for Submission at the University of Arizona

Marcel Oliver

1996/05/09

Abstract

This package provides a L^{A}TEX 2ε document class named ua-thesis for typesetting theses and dissertations in the official format required by the University of Arizona. Moreover, there is a fully compatible alternative document class my-thesis for private copies of the dissertation, and the respective title pages are available as separate packages to work with “any” document class.

1 User Documentation

1.1 Introduction

The ua-thesis document class is designed to conform with the official requirements of the Graduate College of the University of Arizona. It is based on the report class which comes with the standard L^{A}TEX distribution, and all commands are upward compatible with report and to a large extend with the amsbook class. In other words, any document which works error free in those two classes should run with ua-thesis, too. To automatically typeset all the required information, a few new commands are defined, which are explained below.

1.2 Classes and Options

The following classes and packages are provided:

ua-thesis The official University of Arizona thesis document class. The draft option is a paper saver—the automatic generation of front matter pages other than the title page will be suppressed, and single spaced printing will be used throughout the document. The final option activates “double spaced” layout at the required places and creates the full set of front matter pages. The default is draft.

Note that the draft option is passed through to the underlying report class, i.e. thick black rules will indicate the location of overfull hboxes.

The ua-thesis class automatically loads the amsmath, amssymb and amsthm packages which considerably improve the mathematical typesetting capabilities of L^{A}TEX. The use of these macros is strongly recommended.

The default type-size in this document class is 12pt and should not be changed. Subsubsections produce unnumbered run-in headings which do not appear in the Table of Contents, therefore their use is discouraged.

my-thesis An alternative to ua-thesis to produce private copies of your dissertation which don’t look so reminiscent of the typewriter age. It is based on the pcms-l document class by the American Mathematical Society, which was designed to typeset monographs for the Park City/IAS Mathematics Series. It is similar to amsbook, but has a less crowded look.

ua-title The official University of Arizona title page as a separate package. Useful if you want to build your own private thesis class, but want to use the official title page. It redefines the \maketitle command and also provides (potentially useless) definitions for all the commands described in the next section.

The package is neither guaranteed nor tested to work with any specific document class. You have to try and see.

my-title The equivalent to ua-title, but with the title page of the my-thesis class.

So, the first line in your dissertation file should be

   \documentclass{ua-thesis}

or, for the final printout,

   \documentclass[final]{ua-thesis}

If you change the document class from ua-thesis to my-thesis or vice versa, the first L^{A}TEX run might produce error messages because the format of the auxiliary files (.aux, .toc etc.) is incompatible between the two. Type s or q to ignore all error messages and run L^{A}TEX a second time, or manually delete all auxiliary files before changing the document class.

1.3 Commands for Specifying the Front Matter

As in the standard document classes, the title of your thesis is specified by

   \title{This is the Title of my Dissertation \\
          and This is the Second Line}

where line breaks can be forced with \\ if the automatic line breaking does not give a satisfactory result. But remember, the Graduate College imposes a maximum of three lines in the title—L^{A}TEX does not check this for you. An optional argument can be given for reasons of compatibility with the AMS classes, but will be ignored.

Your name is specified with

   \author{Firstname Lastname}

again, an optional argument will be ignored. Use

   \date{1996}

set the year of your graduation. If you omit this command, the current day, month and year will be printed, which may be useful for keeping track of different draft versions. The only other command that is required for the final version of every dissertation is

   \director{Firstname Lastname}

to specify the name of your dissertation advisor. It will appear on the Special Abstract which is automatically generated.

Now the optional commands. The name of your department is set with

   \department{Department of Metaphysics}

The default is “Graduate Interdisciplinary Program in Applied Mathematics”. If you are in the “Department of Metaphysics”, you have to use this command.

If you are writing a Masters thesis, you have to explicitly specify the name of your degree. Use

   \degree{Masters of Arts}

The default is “Doctor of Philosophy”. The abbreviation of the degree is needed for the Special Abstract and can be with

   \degreeabbrev{M.A.}

The default is “Ph.D.”. Moreover, for Masters theses, the Copyright Page will have an additional part for the approval signature of your advisor. It will be automatically generated whenever you specify your advisor’s title with

   \directortitle{Professor of Mathematics}

The default is empty and must not be changed for doctoral dissertations.

If you have to specify a major department different from the department above, use

   \major{Agriculture}

The default is empty.

You can copyright your dissertation or thesis by writing

   \copyrightholder{Firstname Lastname Year}

The default is empty. If you use this command, the Copyright Page will automatically change to the required legalese for copyrighted dissertations or theses.

1.4 Examples for the Root File

For long documents such as theses, it is useful to split the L^{A}TEX source code into several files. The root file is the file that you run L^{A}TEX on. Subordinate files are included with \include.

1.4.1 A Doctoral Dissertation

The example below also shows how to load the graphics package, which in particular supports the inclusion of postscript images. Note that you can specify the draft or final option for the graphics package separate from the global options of the document class.

The ua-thesis class is designed to create a .dvi file that strictly adheres to the required page margins. The printer hardware or the driver implementation, however, may have tolerances that cause the image to shift on the page. This can be corrected by using \hoffset and \voffset. The example below works well with the current printers in the Math Department.

You don’t need to use \chapter*{Dedication} for the Dedication if you don’t like the heading. You can simply start a new page with \newpage, but then you are completely responsible for the formatting of that page, including the switch to double-spaced printing as is officially required (this can be done, for example,

by using \doublespaced).
 \documentclass[draft]{ua-thesis}
 \usepackage[final]{graphics}
 \hoffset -2.1mm
 \director{Advisor's Name}
 \date{1996}
 \title{This is a Doctoral Dissertation}
 \author{Your Name}
 \begin{document}
 \maketitle
 \chapter*{Acknowledgments}
 Acknowledgments go here.
 \chapter*{Dedication}
 Dedicated to the Fundamental Theorem of Calculus.
 \tableofcontents
 \listoffigures
 \listoftables
 \begin{abstract}
 This is the abstract.
 \end{abstract}
 \include{chapter1}

\include{chapter2}
\appendix
\include{appendix}
\begin{thebibliography}{99}
And the bibliography goes here.
\end{thebibliography}
\end{document}

1.4.2 A Masters Thesis

This thesis is copyrighted, but does not have Acknowledgments or a Dedication. It is written by a student in the Department of Mathematics.

\documentclass[final]{ua-thesis}
\hoffset -2.1mm
\director{Advisor's Name}
\directortitle{Professor of Mathematics}
\degree{Master of Science}
\degreeabbrev{M.S.}
\department{Department of Mathematics}
\date{1996}
\title{This is a Masters Thesis}
\author{Your Name}
\copyrightholder{Your Name 1996}
\begin{document}
\maketitle
\tableofcontents
\listoffigures
\listoftables
\begin{abstract}
This is the abstract.
\end{abstract}
\include{chapter1}
\include{chapter2}
\appendix
\include{appendix}
\begin{thebibliography}{99}
And the bibliography goes here.
\end{thebibliography}
\end{document}

1.5 The Files and Further Documentation

Currently, the sources and all documentation are contained in the following three files.

ua-classes.dtx User guide and documented source code. The document you are reading has been obtained by running latex ua-classes.dtx.

ua-classes.ins The installation file. Running latex ua-classes.ins will generate the class files ua-thesis.cls and my-thesis.cls as well as the title page packages ua-title.sty and my-title.sty from the universal source

     file ua-classes.dtx.

ua-example.tex An example dissertation generated from the official Manual for Theses and Dissertations by the Graduate College. The file has been obtained via the web and manually converted into L^{A}TEX. It both serves as an example and contains the official formating instructions as of May 1996. Be sure to check for changes before you submit your dissertation.

1.6 Bugs and Changes

All changes and bug fixes must be done in the file ua-classes.dtx, and not in the files generated by the docstrip utility. Moreover, they must be clearly annotated with a date, name and comments explaining each change.

2 The Code

This section contains a commented listing of the source code. It is intended for TEXperts to facilitate alterations and debugging (hopefully the latter will not become necessary).

2.1 The Identification Part

 1 \NeedsTeXFormat{LaTeX2e}

2 ⟨∗ua − thesis⟩

 3 \ProvidesClass{ua-thesis}
 4  [1997/03/08 UA Thesis Class]

5 ⟨/ua − thesis⟩ 6 ⟨∗my − thesis⟩

 7 \ProvidesClass{my-thesis}
 8  [1997/03/08 My Private Thesis Class]

9 ⟨/my − thesis⟩ 10 ⟨∗ua − title⟩

11 \ProvidesPackage{ua-title}[1997/03/08]

12 ⟨/ua − title⟩ 13 ⟨∗my − title⟩

14 \ProvidesPackage{my-title}[1997/03/08]

15 ⟨/my − title⟩

2.2 Package Options

We pass the global package options through to the underlying document class. In the ua-thesis class we also keep track of whether the draft or final option is switched on because we will link certain document features (see Section 1) to this option.

16 ⟨∗ua − thesis⟩

17 \newif\iffinal@
18 \DeclareOption{final}{%
19 \final@true
20 \PassOptionsToClass{final}{report}}
21 \DeclareOption{draft}{%
22 \final@false
23 \PassOptionsToClass{draft}{report}}
24 \ExecuteOptions{draft}
25 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
26 \ProcessOptions

27 ⟨/ua − thesis⟩

In the my-thesis class, nothing particular happens.

28 ⟨∗my − thesis⟩

29 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{amsbook}}
30 \ProcessOptions

31 ⟨/my − thesis⟩

2.3 The Underlying Document Classes

The official ua-thesis class is based on the standard report document class. We load it with the 12pt option as default, which is smallest size allowed. We have to load the packages of the AMS math bundle explicitly. Added 1997/3/8: In fact, even ua-thesis breaks with old versions of the AMS macros, so we add a release

date to \RequirePackage.

32 ⟨∗ua − thesis⟩

33 \LoadClass[12pt]{report}
34 \RequirePackage[reqno]{amsmath}[1996/10/24]
35 \RequirePackage{amsfonts}[1996/10/24]
36 \RequirePackage{amsthm}[1996/10/24]
37 \RequirePackage{ua-title}

38 ⟨/ua − thesis⟩

We want the equation numbers on the right, thus the reqno option.

The my-thesis class is based on the amsbook class with modifications adopted from the pcms-l package, also by the AMS. The packages of the AMS math bundle are loaded by default from within amsbook. Added 1996/12/05: The updated version works only with the new release of the AMS macros, dated 1996/10/24.

39 ⟨∗my − thesis⟩

40 \LoadClass[reqno]{amsbook}[1996/10/24]
41 \RequirePackage{my-title}

42 ⟨/my − thesis⟩

2.4 General Style Settings for ua-thesis

Redefine the name of the Table of Contents and the References according to the Graduate College regulations. We also have to redefine \listfigurename and \listtablename with \def (although the names are not changed), otherwise they have the wrong status with respect to the TEXinternals \outer and \long, and the \ifx statements in the \@chapterstar macro won’t work.

43 ⟨∗ua − thesis⟩

44 \def\contentsname{Table of Contents}
45 \def\bibname{References}
46 \def\dedicationname{Dedication}
47 \def\listfigurename{List of Figures}
48 \def\listtablename{List of Tables}

Set the page margins as required by the Graduate College: Top margin is 1.5in, bottom margin is 1in, left margin is 1.5in and the right margin is 1in. We grant an extra 0.2in to the bottom margin to allow for printer tolerances and to account for characters that extend below the base line (e.g. the character “y”).

49 \topmargin      0in
50 \headheight     \baselineskip
51 \headsep        0.6in
52 \addtolength{\headsep}{-\headheight}
53 \footskip       0in
54 \textheight     \paperheight
55 \addtolength{\textheight}{-2.7in}
56 \oddsidemargin  0.5in
57 \evensidemargin 0.5in
58 \marginparwidth 0in
59 \marginparsep   0in
60 \textwidth      \paperwidth
61 \addtolength{\textwidth}{-2.5in}

Macros to switch from single-spaced to double-spaced printing. The command \doublespaced takes only effect when it is used with the final option.

62 \def\singlespaced{\baselineskip=\normalbaselineskip}
63 \def\doublespaced{\iffinal@ \baselineskip=1.5\normalbaselineskip \fi}

Finally, we define the page styles as required. As we are modifying the \topskip when typesetting chapter headings and when selecting page style continued, we save the default value and restore it on “normal” pages.

64 \newlength{\@topskipsave}
65 \@topskipsave\topskip

The page style topright is used on normal pages. It puts the page number into the top header at the right margin of each page.

66 \def\ps@topright{%
67  \let\@mkboth\@gobbletwo
68  \topskip\@topskipsave
69  \def\@oddhead{\normalfont\hfil\thepage}
70  \let\@evenhead\@oddhead
71  \def\@evenfoot{}
72  \def\@oddfoot{}}

Page style continued is for the second and following pages of the Table of Contents, the List of Figures and the List of Tables. The macro \@continued contains the required heading for those pages, e.g. “Table of Contents—Continued”.

73 \def\ps@continued{%
74  \let\@mkboth\@gobbletwo
75  \topskip 0.5in
76  \def\@oddhead{\raisebox{-0.5in}{\@continued}%
77  \hfil\normalfont\thepage}
78  \let\@evenhead\@oddhead

79  \def\@evenfoot{}
80  \def\@oddfoot{}}

The TEX mechanism for starting pages is rather mysterious. There is some extra space associated with the variable \topskip. However, it is not sufficient to just set \topskip to zero. One moreover has to place a box of zero height onto the page, otherwise TEX inserts extra vertical space, and we lose precise control over the placements of the layout elements. The following macro is called whenever a title page (main title, chapter title, etc.) is started.

81 \def\@notopskip{\topskip\z@ \hrule height\z@}

82 ⟨/ua − thesis⟩

2.5 Some Style Defaults of the my-thesis Class

We mostly follow the defaults given by the amsbook class, but there are few things worth changing. First we add some space between the items of a list—we don’t have to be too stingy with vertical space. The next four lines are copied from amsbook.cls with changed definition for \itemsep.

83 ⟨∗my − thesis⟩

84 \def\@listI{\leftmargin\leftmargini \parsep\z@skip
85 \topsep\listisep \itemsep\topsep
86 \listparindent\normalparindent}
87 \let\@listi\@listI

Moreover, sections are to be numbered within chapters, and we give the Abstract the appearance of an unnumbered chapter.

88 \numberwithin{section}{chapter}
89 \renewenvironment{abstract}%
90 {\chapter*{Abstract}}{}

We must define a bibliography style to avoid an error message.

91 \bibliographystyle{amsplain}

92 ⟨/my − thesis⟩

2.6 The Title Page Packages

The title page macros are put into separate files, so that they can be used in conjunction with other document classes, if this is desirable.

First some common code that defines the macros for various layout elements in the title page(s). The my-thesis class will not use all of them, but their definition is required anyway to assure compatibility with ua-thesis. The defaults are set as follows:

93 ⟨∗ua − title | my − title⟩

94 \let\@title\@empty
95 \let\@author\@empty
96 \let\@copyright\@empty
97 \def\@thesis{Dissertation}
98 \def\@department{Graduate Interdisciplinary Program \\
99  in Applied Mathematics}
100 \def\@degree{Doctor of Philosophy}
101 \def\@degreeabbrev{Ph.D.}
102 \let\@major\@empty
103 \let\@director\@empty

104 \let\@directortitle\@empty

In the following, changed \newcommand to \renewcommand because the new release of the AMS classes seems to define \copyrightholder while the old release doesn’t (1996/12/05).

105 \def\copyrightholder#1{\gdef\@copyright{#1}}
106 \newcommand{\thesis}         [1]{\gdef\@thesis{#1}}
107 \newcommand{\department}     [1]{\gdef\@department{#1}}
108 \newcommand{\degree}         [1]{\gedf\@degree{#1}}
109 \newcommand{\degreeabbrev}   [1]{\gedf\@degreeabbrev{#1}}
110 \newcommand{\major}          [1]{\gdef\@major{#1}}
111 \newcommand{\director}       [1]{\gdef\@director{#1}}
112 \newcommand{\directortitle}  [1]{\gdef\@directortitle{#1}}

We redefine the \title and \author commands to follow the AMS syntax. The optional argument allowed in the AMS classes is simply ignored without an error message.

113 \renewcommand{\title} [2][]{\gdef\@title{#2}}
114 \renewcommand{\author}[2][]{\gdef\@author{#2}}

115 ⟨/ua − title | my − title⟩

2.6.1 The Official Title Page

This macro is largely self-explanatory …

116 ⟨∗ua − title⟩

117 \def\@SetTitlePage{%
118 \thispagestyle{empty}
119 \begingroup
120  \centering
121  \@notopskip
122  \vspace*{1in}
123  \begingroup
124  \Large\scshape
125  \addtolength{\baselineskip}{8pt}
126  \@title \\
127  \endgroup
128  \vspace*{\stretch{1}}
129  by \\[5pt]
130  \@author \\
131  \hrule height\z@
132  \vspace*{\stretch{2}}
133  \begingroup
134  \rule{2in}{0.7pt} \\
135  \ifx\@empty\@copyright
136  \else Copyright \copyright\ \@copyright \\
137  \fi
138  \endgroup
139  \vspace*{\stretch{2}}
140  \begingroup

The following line sets the inter-word space to twice its original value.

141  \spaceskip1.3\fontdimen2\font plus1.3\fontdimen3\font
142  A \@thesis\ Submitted to the Faculty of the \\[8pt]
143  \textsc{\large\@department} \\[8pt]

144  In Partial Fulfillment of the Requirements \\
145  For the Degree of \\[8pt]
146  \textsc{\large\@degree}
147  \ifx\@empty\@major
148  \else \\
149  \textsc{\large With a Major in \@major}
150  \fi \\[8pt]
151  In the Graduate College \\[8pt]
152  \textsc{\large The University of Arizona} \\
153  \endgroup
154  \vspace*{\stretch{1}}
155  \spaced{\@date}
156  \vspace*{0.5in}
157  \newpage
158 \endgroup}

To make \@SetTitlePage work with standard document classes, we redefine \maketitle to be \@SetTitlePage. This choice will later be overridden by the

 ua-thesis class.
159 \let\maketitle\@SetTitlePage

160 ⟨/ua − title⟩

2.6.2 My Title Page

Here we can simply redefine \maketitle directly without the help of an auxiliary macro.

161 ⟨∗my − title⟩

162 \def\maketitle{%
163 \cleardoublepage
164 \thispagestyle{empty}
165 \begingroup
166  \centering
167  \vspace*{\stretch{1}}
168  \hrule height 1pt
169  \begingroup
170  \Huge\bfseries
171  \addtolength{\baselineskip}{2pt}
172  \medskip
173  \@title \\
174  \medskip
175  \endgroup
176  \hrule height 1pt
177  \vspace*{\stretch{1}}
178  \begingroup
179  \huge \@author \\
180  \endgroup
181  \vspace*{\stretch{1.7}}
182  \begingroup
183  \Large
184  \spaceskip1.3\fontdimen2\font plus1.3\fontdimen3\font
185  A \@thesis\ Submitted to the Faculty of the \\[8pt]
186  \textsc{\LARGE\@department} \\[8pt]
187  In Partial Fulfillment of the Requirements \\
188  For the Degree of \\[8pt]

189  \textsc{\LARGE\@degree}
190  \ifx\@empty\@major
191  \else \\
192  \textsc{\LARGE With a Major in \@major}
193  \fi \\[8pt]
194  In the Graduate College \\[8pt]
195  \textsc{\LARGE The University of Arizona} \\
196  \endgroup
197  \vspace*{0.8cm}
198  {\Large\spaced{\@date}}
199  \newpage
200 \endgroup}

201 ⟨/my − title⟩

2.6.3 Setting the Date with Spaces Between Digits

In order to increase the inter-letter space in the date, we resort to a technique which is a simplified version of the letterspace package (by Philip Taylor, described in The L^{A}TEX Companion). The macro \spaced puts spaces between all the characters of its argument.

202 ⟨∗ua − title | my − title⟩

203 \def \spaced #1%
204  {\edef \3{#1}%
205  {\expandafter \insertsp@ces \3\@nd}%

206 }

207 \def \insertsp@ces #1#2\@nd
208  {\def \1{#1}%
209  \def \2{#2}%
210  \1%
211  \ifx \1\empty \else \ifx \2\empty \else \space \fi \fi
212  \ifx \2\empty
213  \let \n@xt = \relax
214  \else
215  \futurelet \2\m@kespaceexplicit #2\@nd
216  \def \n@xt {\expandafter \insertsp@ces \2\@nd}%
217  \fi
218  \n@xt

219 }

220 \def \m@kespaceexplicit #1#2\@nd %
221  {\if \2 \def \2{{ }#1#2}\else \def \2{#1#2}\fi}

222 ⟨/ua − title | my − title⟩

2.6.4 Official Approval and Copyright Pages

This code is specific to the ua-thesis class. Here \maketitle has to invoke the automatic generation of the Approval and the Copyright Page, provided that the final option is set.

223 ⟨∗ua − thesis⟩

224 \def\maketitle{%
225 \cleardoublepage
226 \begingroup
227  \@SetTitlePage
228  \iffinal@

229  \@SetApprovalForm
230  \@SetAuthorStatement
231  \fi
232 \endgroup
233 \let\maketitle\relax}

Make an empty approval page which is eventually to be substituted by the official approval page from the Graduate College. This macro is only called if the final option is set.

234 \def\@SetApprovalForm{%
235 \pagestyle{topright}
236 \@notopskip
237 \vspace*{\fill}
238 \begin{center}
239  \Large
240  Get the official approval page \\
241  from the Graduate College \\
242  \textsl{before} your final defense.
243 \end{center}
244 \vspace*{\fill}
245 \vspace*{0.5in}
246 \newpage}

Now the Copyright page. The copyright page is also printed only with the final option in place.

247 \def\@SetAuthorStatement{%
248 \begingroup
249  \pagestyle{topright}
250  \@notopskip
251  \vspace*{1in}
252  \begingroup
253  \centering\large\scshape
254  Statement by Author \\
255  \endgroup
256  \bigskip\bigskip
257  \par
258  This \MakeLowercase{\@thesis} has been submitted in partial
259  fulfillment of requirements for an advanced degree at The
260  University of Arizona and is deposited in the University
261  Library to be made available to borrowers under rules
262  of the Library.
263  \bigskip
264  \par
265  Brief quotations from this \MakeLowercase{\@thesis} are
266  allowable without special permission, provided that accurate
267  acknowledgment of source is made. Requests for permission for
268  extended quotation from or reproduction of this manuscript in
269  whole or in part may be granted by the
270  \ifx\@empty\@copyright
271  head of the major department or the Dean of the Graduate
272  College when in his or her judgment the proposed use of
273  the material is in the interests of scholarship.
274  In all other instances, however,
275  permission must be obtained from the author.
276  \else

277  copyright holder.
278  \fi
279  \par
280  \vspace*{3\baselineskip}
281  \begin{flushright}
282  \scshape
283  Signed: \underline{\makebox[2.5in][r]{}}
284  \end{flushright}
285  \vspace*{\fill}
286  \ifx\@empty\@directortitle
287  \else
288  \begingroup
289  \centering
290  \large\scshape
291  Approval by \@thesis\ Director
292  \endgroup
293  \bigskip\bigskip\par
294  This \MakeLowercase{\@thesis} has been approved
295  on the date shown below:
296  \vspace*{3\baselineskip}\par\noindent
297  \begin{minipage}[t]{0.45\textwidth}
298  \begin{center}
299  \underline{\makebox[\textwidth][r]{}} \\
300  \@director \\
301  \@directortitle
302  \end{center}
303  \end{minipage}%
304  \hfill%
305  \begin{minipage}[t]{0.45\textwidth}
306  \begin{center}
307  \underline{\makebox[\textwidth][r]{}} \\
308  Date
309  \end{center}
310  \end{minipage}
311  \fi
312  \vspace*{0.5in}
313  \newpage
314 \endgroup}

2.6.5 Abstract and Special Abstract

Setting the abstract in the official thesis class is tricky. Since we have to typeset it twice, for the regular and the special abstract, and we want to keep the regular L^{A}TEX syntax of having an abstract environment, we somehow have to save the body of the abstract environment for further processing. This is quite difficult to do in TEX, but fortunately the amsmath package has solved this problem for us. It defines the internal macro \collect@body which takes a single argument, namely the name of a macro which does the processing. This macro is then called by \collect@body, and given the contents of the environment body as its argument. We redefine these macros here, mainly for the reason that we want the auxiliary

macros \collect@@body and \Addto@envbody to be defined with \long\def, so

that the abstract can have more than one paragraph. We capitalize all macros not to interfere with the amsmath package (actually, our change would only change amsmaths response to errors, not its behavior with correct code).

315 \long\def\Addto@envbody#1{\@envbody\@xp{\the\@envbody#1}}
316 \def\Collect@body#1{%
317  \@envbody{}%
318  \def\process@envbody{%
319  \@xp#1\@xp{\the\@envbody}%

320 }%

321  \@xp\let\csname\@currenvir\endcsname\Collect@@body
322  \csname\@currenvir\endcsname

323 }

324 \long\def\Collect@@body#1\end#2{%
325  \def\@tempa{#2}%
326  \ifx\@tempa\@currenvir
327  \Addto@envbody{#1}%
328  \@xp\edef\csname\@currenvir\endcsname{%
329  \@nx\process@envbody\@nx\end{\@tempa}%

330 }%

331  \else
332  \Addto@envbody{#1\end{#2}}%
333  \fi
334  \csname\@currenvir\endcsname

335 }

The details of the above are explained in amsmath.dtx. For us it is mainly a convenience, and the remainder of the abstract macro can be coded in a very elegant way.

336 \renewenvironment{abstract}{%
337 \Collect@body\@SetAbstract}{}

Now the macro \@SetAbstract, which actually does the work. First we typeset the regular abstract.

338 \long\def\@SetAbstract#1{%
339 \chapter*{Abstract}

340 #1

341 \clearpage

Then the special abstract. We typeset it only in the final version. Note that we have to save the page counter at the beginning of the special abstract, so that it doesn’t interfere with the page numbering of the main document.

342 \iffinal@
343 \begingroup
344  \clearpage
345  \newcounter{s@avepageno}
346  \setcounter{s@avepageno}{\value{page}}
347  \setcounter{page}{1}
348  \thispagestyle{empty}
349  \@notopskip
350  \begingroup
351  \centering
352  \large\textsc
353  \@title \\
354  \bigskip
355  \normalfont\normalsize
356  \@author, \@degreeabbrev \\
357  The University of Arizona, \@date \\

358  \endgroup
359  \bigskip
360  \noindent Director: \@director \par
361  \bigskip\bigskip

362 #1

363 \endgroup
364 \clearpage
365 \setcounter{page}{\value{s@avepageno}}
366 \fi}

2.7 The Sectioning Commands

2.7.1 Chapter Headings in the Official Format

The \chapter macro is standard code. It calls \@chapter for numbered chapters, and \@chapterstar for unnumbered ones.

367 \def\chapter{%
368 \clearpage
369 \global\@topnum\z@
370 \@afterindentfalse
371 \secdef\@chapter\@chapterstar}

For numbered chapters we do all the usual things: Set the page style in case it has been modified previously, increment the chapter counter, create the Table of Contents entry and add extra space into the List of Figures and List of Tables.

372 \def\@chapter[#1]#2{%
373 \pagestyle{topright}
374 \refstepcounter{chapter}%
375 \typeout{\@chapapp \space \thechapter}
376 \addcontentsline{toc}{chapter}%
377  {\protect\chapterline{\@chapapp\ \thechapter}#1}
378 \addtocontents{lof}{\protect\addvspace{\medskipamount}}
379 \addtocontents{lot}{\protect\addvspace{\medskipamount}}

Then we typeset the chapter heading.

380 \begingroup
381  \@notopskip
382  \centering
383  \vspace*{0.25in}
384  \textbf{\@chapapp\ \thechapter} \\
385  \medskip
386  \Large\textsc{#2} \par
387 \endgroup
388 \vspace*{2\normalbaselineskip}
389 \@afterheading
390 \doublespaced}

Unnumbered chapters are more tricky. Several explicitly format decisions have to be made to typeset all the special “chapters” in the front matter of the dissertation according to the official requirements.

The following rules are implemented: The Dedication is typeset double-spaced. The Table of Contents, List of Figures and List of Tables must be get pagestyle continued and be single-spaced. In all other cases pagestyle topright is selected. Only those unnumbered chapters that come after the Table of Contents will get an entry in the Table of Contents. An arbitrary unnumbered chapter that comes after the Table of Contents will be double-spaced, the exception is the References, which are single-spaced. If an unnumbered chapter comes before the Table of Contents, no explicit decision between single and double-spaced is made. The effect is that the Acknowledgments will be single-spaced, provided they are placed in the officially required order.

391 \def\@chapterstar#1{%
392 \typeout{#1}
393 \edef\1{#1}
394 \ifx \dedicationname\1
395  \doublespaced
396 \else
397 \ifx \contentsname\1
398  \@specialhead\1
399  \singlespaced
400  \let\tableofcontents\relax
401 \else
402 \ifx \listfigurename\1
403  \@specialhead\1
404  \@tocentry\1
405  \singlespaced
406 \else
407 \ifx \listtablename\1
408  \@specialhead\1
409  \@tocentry\1
410  \singlespaced
411 \else
412 \pagestyle{topright}
413 \ifx \tableofcontents\relax
414  \@tocentry\1
415  \ifx \bibname\1 \singlespaced \else \doublespaced \fi
416 \fi\fi\fi\fi\fi

And this is the code to typeset the heading.

417 \begingroup
418  \@notopskip
419  \centering
420  \Large\textsc{#1} \par
421 \endgroup
422 \vspace*{2\normalbaselineskip}
423 \@afterheading}

The following macro creates the Table of Contents entry for unnumbered chapters.

424 \def\@tocentry#1{%
425 \addcontentsline{toc}{chapter}{#1}
426 \addtocontents{lof}{\protect\addvspace{\medskipamount}}
427 \addtocontents{lof}{\protect\addvspace{\medskipamount}}}

And this one switches to pagestyle continued and defines the extra part of the page heading.

428 \def\@specialhead#1{%
429 \gdef\@continued{\normalsize\scshape#1---\slshape Continued}
430 \pagestyle{continued}
431 \thispagestyle{topright}}

432 ⟨/ua − thesis⟩

2.7.2 Chapter Headings in the Un-Official Format

The following code for chapter headings is taken from the pcms-l class by the AMS. It is slightly simplified because we don’t have to deal with different “lectures” and multiple authors.

433 ⟨∗my − thesis⟩

434 \def\chapter{\cleardoublepage \pagestyle{headings}%
435 \setcounter{section}0\relax
436 \thispagestyle{plain}%
437 \global\@topnum\z@
438 \@afterindentfalse \secdef\@chapter\@schapter}

439 %

440 \def\@chapter[#1]#2{\refstepcounter{chapter}%
441 \ifnum \c@secnumdepth <\z@ \let\thechapter\@empty\fi
442 \let\@secnumber\thechapter
443 \typeout{\chaptername\space\thechapter}%
444 \addcontentsline{toc}{chapter}{%
445  \protect\numberline{%
446  \ifx\thechapter\@empty\else\chaptername\ \thechapter.\fi}#1}%
447 \chaptermark{#1}%
448 \addtocontents{lof}{\protect\addvspace{10\p@}}%
449 \addtocontents{lot}{\protect\addvspace{10\p@}}%
450 \@makechapterhead{#2}\@afterheading}

451 %

452 \def\@schapter#1{\typeout{#1}%
453 \@ifnotempty{#1}{\addcontentsline{toc}{chapter}{#1}}%
454 \let\@secnumber\empty
455 \chaptermark{#1}%
456 \addtocontents{lof}{\protect\addvspace{10\p@}}%
457 \addtocontents{lot}{\protect\addvspace{10\p@}}%
458 \@makeschapterhead{#1}\@afterheading}

For typesetting the chapter head we fixed one problem with pcms-l: The first \vspace was originally achieved through modifying \topskip. However, for mysterious reasons, the modification is reset to the default whenever floats are defined on the first page of a chapter.

459 \def\@makechapterhead#1{\begingroup
460 \vspace*{37pt}
461 \ifodd\c@page\raggedleft\else\raggedright\fi
462  \ifnum\c@secnumdepth>\m@ne
463  \leavevmode
464  {\Large\bfseries
465  \uppercase\@xp{\chaptername}\enspace
466  {\LARGE\bfseries\thechapter\par}}\skip@34\p@
467  \advance\skip@-\normalbaselineskip
468  \vskip\skip@ {\huge\bfseries #1\par}\fi
469 \endgroup
470 \skip@34\p@ \advance\skip@-\normalbaselineskip
471 \vskip\skip@ }

And the chapter head for unnumbered chapters:

472 %

473 \def\@makeschapterhead#1{%
474  \vtop to 8pc{\vfill
475 \ifodd\c@page\raggedleft\else\raggedright\fi

476 {\huge\bfseries #1\par}%
477 }%\endgroup
478 \skip@34\p@\advance\skip@-\normalbaselineskip
479 \vskip\skip@ }

480 ⟨/my − thesis⟩

2.7.3 Section, Subsections etc.

Here we follow literally the pcms-l settings, both for ua-thesis and my-thesis. The appearance is similar to the report class, but the type sizes are scaled down one step, which looks less excessive.

481 ⟨∗ua − thesis | my − thesis⟩

482 \def\section{\@startsection{section}{1}%
483 \z@{-1\baselineskip\@plus-.75\baselineskip}{.5\baselineskip}%
484 {\large\bfseries}}

485 %

486 \def\subsection{\@startsection{subsection}{2}%
487 \z@{-.75\baselineskip\@plus-.5\baselineskip}{.5\baselineskip}%
488 {\normalfont\bfseries}}

489 %

490 \def\subsubsection{\@startsection{subsubsection}{3}%
491 \z@{.5\baselineskip\@plus.5\baselineskip}{-5\p@}%
492 {\normalfont\itshape}}

The same for the appearance of theorems, remarks, definitions and proofs. Directly

 from pcms-l.

Changed on 1996/12/05: The following four macros are all taken from the October 1996 release from pcms-l, because the new release of amsthm breaks these macros. No attempt is made to be compatible with the old version.

493 \def\th@plain{%
494 \let\thm@indent\noindent
495 \thm@headfont{\bfseries}% heading font bold
496 \thm@notefont{\mdseries\upshape}
497 \thm@preskip.5\baselineskip\@plus.2\baselineskip
498  \@minus.2\baselineskip
499 \thm@postskip\thm@preskip
500 \itshape

501 }

502 \def\th@remark{%
503 \let\thm@indent\noindent
504 \thm@headfont{\bfseries}% heading font bold
505 \thm@notefont{\mdseries\upshape}%
506 \thm@preskip.5\baselineskip\@plus.2\baselineskip
507  \@minus.2\baselineskip
508 \thm@postskip\thm@preskip
509 \upshape

510 }

511 \def\th@definition{%
512 \let\thm@indent\noindent
513 \thm@headfont{\bfseries}% heading font bold
514 \thm@notefont{\mdseries\upshape}%
515 \thm@preskip.5\baselineskip\@plus.2\baselineskip
516  \@minus.2\baselineskip
517 \thm@postskip\thm@preskip

518 \upshape

519 }

520 \renewenvironment{proof}[1][\proofname]{\par \normalfont
521 \topsep6\p@\@plus6\p@ \trivlist \itemindent\z@
522 \item[\hskip\labelsep\bfseries
523  #1\@addpunct{.}]\ignorespaces
524 }{%
525 \qed\endtrivlist

526 } 527 ⟨/ua − thesis | my − thesis⟩

2.8 Captions, Headings etc.

In ua-thesis we redefine \@makecaption to change the font in captions for figures and tables.

528 ⟨∗ua − thesis⟩

529 \long\def\@makecaption#1#2{%
530 \vskip\abovecaptionskip
531 \sbox\@tempboxa{\textsc{#1}. #2}%
532 \ifdim \wd\@tempboxa >\hsize
533  \textsc{#1}. #2\par
534 \else
535  \global \@minipagefalse
536  \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
537 \fi
538 \vskip\belowcaptionskip}

539 ⟨/ua − thesis⟩

The corresponding changes for my-thesis, taken from pcms-l. The internals work differently than with the report class. Changed 1997/3/8: The internal font names in the amsthm package have changed with the October 1996 release. Fixed the following two lines.

540 ⟨∗my − thesis⟩

541 \def\@captionheadfont{\bfseries}
542 \def\@captionfont{\footnotesize\mdseries}

Added 1997/3/8: We assume that both table and figure captions are placed below the body of the figure/table. Thus we have to override amsbooks explicit assumption that table captions are placed above a table. The following code is copied from amsbook and modified accordingly.

543 \long\def\@makecaption#1#2{%
544 \setbox\@tempboxa\vbox{\color@setgroup
545  \advance\hsize-2\captionindent\noindent
546  \@captionfont\@captionheadfont#1\@xp\@ifnotempty\@xp
547  {\@cdr#2\@nil}{.\@captionfont\upshape\enspace#2}%
548  \unskip\kern-2\captionindent\par
549  \global\setbox\@ne\lastbox\color@endgroup}%
550 \ifhbox\@ne % the normal case
551  \setbox\@ne\hbox{\unhbox\@ne\unskip\unskip\unpenalty\unkern}%
552 \fi
553 \ifdim\wd\@tempboxa=\z@ % this means caption will fit on one line
554  \setbox\@ne\hbox to\columnwidth{\hss\kern-2\captionindent\box\@ne\hss}%
555 \else % tempboxa contained more than one line
556  \setbox\@ne\vbox{\unvbox\@tempboxa\parskip\z@skip

557  \noindent\unhbox\@ne\advance\hsize-2\captionindent\par}%
558 \fi
559  \addvspace\abovecaptionskip
560  \moveright\captionindent\box\@ne
561 \relax

562 }

In my-thesis we have page headers. Their format is again directly taken from the pcms-l class.

563 \def\ps@plain{\ps@empty
564 \def\@oddfoot{\normalfont\footnotesize\bfseries \hfil\thepage\hfil}%
565 \let\@evenfoot\@oddfoot}
566 \def\ps@headings{\ps@empty
567 \def\@evenhead{\normalfont\footnotesize\bfseries
568  \rlap{\thepage}\hfil \leftmark{}{}\hfil}%
569 \def\@oddhead{\normalfont\footnotesize\bfseries \hfil
570  \rightmark{}{}\hfil \llap{\thepage}}%
571 \let\@mkboth\markboth
572 \def\partmark{\@secmark\markboth\partrunhead\partname}%
573 \def\chaptermark{%
574  \@secmark\markboth\chapterrunhead{}}%
575 \def\sectionmark{%
576  \@secmark\markright\sectionrunhead\sectionname}%

577 }

Added following two lines on 1996/12/05 to have the page number on the second page, which is otherwise empty, appear in bold face.

578 \pagestyle{headings}
579 \chaptermark{}
580 \def\partrunhead#1#2#3{%
581 \@ifnotempty{#2}{{#1 #2}\@ifnotempty{#3}{. }}%
582 \def\@tempa{#3}%
583 \ifx\@empty\@tempa\else\@tempa\fi}
584 \let\chapterrunhead\partrunhead
585 \let\sectionrunhead\partrunhead

The Bibliography style from pcms-l, it is less crowded than the original amsbook format.

586 \def\thebibliography#1{
587 \chapter*\bibname
588 \markboth{\bibname}{\bibname}%
589 \normalsize\labelsep .5em\relax
590 \list{\@arabic\c@enumi.}{\settowidth\labelwidth{\@biblabel{#1}}%
591 \leftmargin\labelwidth
592 \advance\leftmargin\labelsep
593  \bibsetup\relax
594  \usecounter{enumi}}\sloppy
595 \clubpenalty9999 \widowpenalty\clubpenalty  \sfcode`\.\@m}

And, lastly, the index macro from pcms-l, which I haven’t tested yet. Let’s hope it works.

596 \def\theindex{\cleardoublepage
597 \@restonecoltrue\if@twocolumn\@restonecolfalse\fi
598 \columnseprule \z@ \columnsep 35pt
599 \def\indexchap{\@startsection

600  {chapter}{1}{\z@}{8pc}{34pt}%
601  {\raggedright
602  \huge\bfseries}}%
603 \twocolumn[\indexchap*{\indexname}]
604 \@mkboth{{\indexname}}{{\indexname}}%
605  \thispagestyle{plain}\let\item\@idxitem\parindent\z@
606  \footnotesize\parskip\z@ plus .3pt\relax\let\item\@idxitem}

607 ⟨/my − thesis⟩

2.9 The Table of Contents

Modifying the design of the Table of Contents is slightly tricky. An additional complication on our case is that the amsbook class which is the base for my-thesis considerably modifies the internals of the contents mechanism. Therefore the code for the two classes is quite different.

2.9.1 The Official Table of Contents

At the beginning of the Document we compute the width of the boldfaced number 999 which we take as the maximum width of a page number in the Table of Contents. Note that we have to use \AtBeginDocument to avoid typesetting anything in the preamble of the document as this will potentially interfere with packages that modify fonts.

608 ⟨∗ua − thesis⟩

609 \newlength{\@auxlength}
610 \AtBeginDocument{%
611 \settowidth{\@auxlength}{\textbf{999}}
612 \renewcommand{\@pnumwidth}{\@auxlength}}

We want all section numbers to end with a period, and modify the definition of \numberline accordingly.

613 \def\numberline#1{\hb@xt@\@tempdima{#1.\hfil}}

The same for chapter entries; in case the chapter heading takes more than one line, we set \hangindent to indent the second and following lines.

614 \def\chapterline#1{%
615 \advance\hangindent\@tempdima
616 \hbox{#1.\space\space\hfil}}

The macro \l@chapter is called to set the Table of Contents line for a chapter entry.

617 \renewcommand*\l@chapter[2]{%
618 \addpenalty{-\@highpenalty}%
619 \vskip 1.0em \@plus\p@
620 \begingroup
621  \advance\hangindent 1.5em
622  \@dottedtocline{0}{0pt}{0pt}{\scshape #1}{\bfseries #2}
623 \endgroup
624 \penalty\@highpenalty}

And the corresponding macros for figures and tables.

625 \renewcommand*\l@figure[2]{%
626 \@dottedtocline{1}{0pt}{30pt}{\textsc{Figure} #1}{#2}}
627 \renewcommand*\l@table[2]{%

628 \@dottedtocline{1}{0pt}{30pt}{\textsc{Table} #1}{#2}}

629 ⟨/ua − thesis⟩

2.9.2 My Table of Contents

The amsbook class automatically calculates the width of the section numbers which go into the Table of Contents. Therefore we must manually compute the amount of indentation for subsection entries and subsubsection headings. This is done at the beginning of the document, after amsbook has read the number widths found in the previous L^{A}TEX run from the .aux file.

630 ⟨∗my − thesis⟩

631 \newlength{\@subsectionindent}
632 \newlength{\@subsubsectionindent}
633 \AtBeginDocument{%
634 \setlength{\@subsectionindent}{1pc}
635 \addtolength{\@subsectionindent}{\csname r@tocindent1\endcsname}
636 \setlength{\@subsubsectionindent}{\@subsectionindent}
637 \addtolength{\@subsubsectionindent}{\csname r@tocindent2\endcsname}}

Now we modify some other style parameters. We want subsections, but not subsubsections to into the Table of Contents. If subsubsections should appear in the Table of Contents, the command \setcounter{tocdepth}{4} can be used in the preamble of the document. We also need to make some minor spacing modifications.

638 \setcounter{tocdepth}{3}
639 \renewcommand{\@pnumwidth}{2em}
640 \def\numberline#1{\hbox{#1\quad}}

Finally we change \l@chapter to get a boldface font for chapter entries, and redefine the subsection macros to use the indentation calculated above.

641 \renewcommand*{\l@chapter}[2]{%
642 \@tocline{0}{10pt plus4pt}{0pt}{1pc}{\bfseries}{#1}{\bfseries #2}}
643 \def\l@subsection{\@tocline{2}{0pt}{\@subsectionindent}{}{}}
644 \def\l@subsubsection{\@tocline{3}{0pt}{\@subsubsectionindent}{}{}}

We don’t want a List of Figures or a List of Tables.

645 \let\listoffigures\relax
646 \let\listoftables\relax

647 ⟨/my − thesis⟩