-
Notifications
You must be signed in to change notification settings - Fork 1
/
puthesis.cls
220 lines (209 loc) · 6.28 KB
/
puthesis.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{puthesis}
[2008/05/02 v1.4 Princeton University Thesis class]
\RequirePackage{setspace}
\newcounter{subyear}
\setcounter{subyear}{\number\year}
\def\submitted#1{\gdef\@submitted{#1}}
\def\@submittedyear{\ifnum\month>10 \stepcounter{subyear}\thesubyear
\else\thesubyear\fi}
\def\@submittedmonth{\ifnum\month>10 January\else\ifnum\month>5 November
\else June\fi\fi}
\def\copyrightyear#1{\gdef\@copyrightyear{#1}}
\def\@copyrightyear{\number\year}
\def\adviser#1{\gdef\@adviser{#1}}
\long\def\@abstract{\@latex@error{No \noexpand\abstract given}\@ehc}
\newcommand*{\frontmatter}{
\pagenumbering{roman}
}
\newcommand*{\mainmatter}{\pagenumbering{arabic}}
\newcommand*{\makelot}{}
\newcommand*{\makelof}{}
\newcommand*{\makelos}{}
\newcommand*{\maketoc}{
% Add ToC to the pdfbookmarks as a section, but not to the ToC itself.
% only if we have the hyperref command that is necessary
\ifdefined\pdfbookmark
\phantomsection
\pdfbookmark[1]{\contentsname}{Contents}
\else
\fi
\tableofcontents
\clearpage
}
%% Setup a command to add extra space only if in singlespacing mode
\newcommand*{\extravspace}[1]{\vspace{0in}}
%% Setup a command to set spacing for body text; also used to restore spacing after long tables in document
\newcommand*{\bodyspacing}{
\doublespacing
}
%% Setup a command to set spacing for long tables, to be used manually in document
\newcommand*{\tablespacing}{
\singlespacing
}
%% Command inserted into the document immediately after \begin{document} to place all frontmatter
%% This was formerly named 'begincmd' and called below in \AtBeginDocument{}
%% However, that is not compatible with package 'hyperref'. \tableofcontents needs
%% to be declared from within the document itself.
\newcommand*{\makefrontmatter}{
\bodyspacing
\frontmatter\maketitlepage\makecopyrightpage\makeabstract
\makeacknowledgements\makededication\maketoc
\makelot\clearpage\makelof\clearpage\makelos
\clearpage\mainmatter
}
\def\@submitted{\@submittedmonth~\@submittedyear}
\def\@dept{Mathematics}
\def\@deptpref{Department of}
\def\departmentprefix#1{\gdef\@deptpref{#1}}
\def\department#1{\gdef\@dept{#1}}
\long\def\acknowledgements#1{\gdef\@acknowledgements{#1}}
\def\dedication#1{\gdef\@dedication{#1}}
\newcommand{\maketitlepage}{{
\thispagestyle{empty}
\sc
\vspace*{-0.5in}
\begin{center}
\LARGE \@title
\end{center}
\vspace{.6in}
\extravspace{.6in}
\begin{center}
\@author
\end{center}
\vspace{.6in}
\extravspace{.6in}
\sectionline
\begin{center}
A Dissertation \\
Presented to the Faculty \\
of Princeton University \\
in Candidacy for the Degree \\
of Doctor of Philosophy
\end{center}
\sectionline
\vspace{.3in}
\extravspace{.3in}
\begin{center}
Recommended for Acceptance \\
by the \@deptpref~\@dept \\
Adviser: \@adviser
\end{center}
\vspace{.3in}
\extravspace{.3in}
\begin{center}
\@submitted
\end{center}
\clearpage
}}
\newcommand*{\makecopyrightpage}{
\thispagestyle{empty}
\vspace*{0in}
\begin{center}
% \copyright\ Copyright by \@author, \@copyrightyear. Some rights reserved.
% \newline
%
% \vspace{1in}
%
\href{http://creativecommons.org/licenses/by-nc-sa/4.0/}{\includegraphics[width=10em]{{by-nc-sa}.eps}}
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}).
\end{center}
\clearpage}
\newcommand*{\makeabstract}{
\newpage
\addcontentsline{toc}{section}{Abstract}
\begin{center}
\Large \textbf{Abstract}
\end{center}
\@abstract
\clearpage
}
\def\makeacknowledgements{
\ifx\@acknowledgements\undefined
\else
\ifdefined\phantomsection
% makes hyperref recognize this section properly for pdf links
\phantomsection
\else
\fi
\addcontentsline{toc}{section}{Acknowledgements}
\begin{center}
\Large \textbf{Acknowledgements}
\end{center}
\@acknowledgements
\clearpage
\fi
}
\def\makededication{
\ifx\@dedication\undefined
\else
\vspace*{1.5in}
\begin{flushright}
\@dedication
\end{flushright}
\clearpage
\fi
}
\DeclareOption{lot}{\renewcommand*{\makelot}{
\ifdefined\phantomsection
% makes hyperref recognize this section properly for pdf links
\phantomsection
\else
\fi
\addcontentsline{toc}{section}{List of Tables}\listoftables}}
\DeclareOption{lof}{\renewcommand*{\makelof}{
\ifdefined\phantomsection
% makes hyperref recognize this section properly for pdf links
\phantomsection
\else
\fi
\addcontentsline{toc}{section}{List of Figures}\listoffigures}}
\DeclareOption{los}{
\renewcommand*{\makelos}{
\RequirePackage{losymbol}
\section*{List of Symbols\@mkboth {LIST OF SYMBOLS}{LIST OF SYMBOLS}}
\@starttoc{los}
\ifdefined\phantomsection
% makes hyperref recognize this section properly for pdf links
\phantomsection
\else
\fi
\addcontentsline{toc}{section}{List of Symbols}
}
}
\DeclareOption{singlespace}{
\renewcommand*{\bodyspacing}{
\singlespacing
}
%% Add extra space only if in singlespacing mode
\renewcommand*{\extravspace}[1]{\vspace{#1}}
}
%% Doublespacing is the default for the thesis -- need not be declared.
\DeclareOption{doublespacing}{
\renewcommand*{\bodyspacing}{
\doublespacing
}
}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions
%% Not necessary to specify the point size - we inherit it from above
%% \LoadClass[12pt]{report}
\LoadClass{report}
\setlength{\oddsidemargin}{.5in} %{.4375in}
\setlength{\evensidemargin}{.5in} %{.4375in}
\setlength{\topmargin}{-.5in} %{-.5625in}
\setlength{\footskip}{.5in} % to put page number 3/4" from the bottom of the page (1/4" from bottom of body text)
\setlength{\textheight}{8.7in}
\setlength{\textwidth}{6in}
%%% Alter LaTeX defaults to try to eliminate all widows and orphans
\clubpenalty=10000
\widowpenalty=10000
%%% try to avoid overfull lines by limiting how far it is okay to exceed the margins
%%% http://www.tex.ac.uk/cgi-bin/texfaq2html?label=overfull
\setlength{\emergencystretch}{2em}
\long\def\abstract#1{\gdef\@abstract{#1}}
%% 'begincmd' no longer used -- insert \makefrontmatter in the document instead. See above.
%\AtBeginDocument{\begincmd}
\endinput
%%
%% End of file `puthesis.cls'.