-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPUTHEDS.sty
executable file
·395 lines (357 loc) · 13.7 KB
/
PUTHEDS.sty
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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
% Princeton University PhD thesis style -- modifications to the report style
%\typeout{Princeton University PhD thesis style. Released 1 June 1990}
%
\long\def\comment#1{}
\newcommand{\outline}{\comment}
\newcommand{\aside}[1]{{\narrower{\noindent\sf#1}\hfil\par}}
% redefine appendix to give appendices for each chapter
% instead of entire document -- jbe
%\def\cappendix{\par
% \clearpage
% \setcounter{section}{0}
% \setcounter{subsection}{0}
% \def\appendixsection##1{\section{Appendix: ##1}
% \setcounter{equation}{0}}
% \def\thesection{\thechapter.\Alph{section}}
% \def\theequation{{\rm \thechapter.\Alph{section}.\arabic{equation}}}
% % start of first derivation section of appendix
% \def\apxfsec##1{{\it Equation (\ref{##1}):}}
% % start of other derivation sections of appendix
% \def\apxsec##1{\bigskip \par \noindent {\it Equation (\ref{##1}):}}}
%\def\unappendix{\par
% \setcounter{section}{0}
% \setcounter{subsection}{0}
% \def\thesection{\thechapter.\arabic{section}}
% \def\theequation{{\rm \thechapter.\arabic{equation}}}}
%
%
\comment{
Example of use:
\documentstyle[12pt,puthesis]{report}
\begin{document}
\title{How to Write Theses\\
With Two Line Titles}
\author{John Henry Candidate}
\principaladviser{John Parker}
\firstreader{John Smallberries}
\secondreader{John BigBooty\\(Yoyodyne Corporation)}
\beforepreface
\prefacesection{Preface}
This thesis tells you all you need to know about...
\prefacesection{Acknowledgements}
I would like to thank...
\afterpreface
\chapter{Introduction}
...
\chapter{Conclusions}
...
\appendix
\chapter{A Long Proof}
...
\bibliographystyle{cacm}
\bibliography{mybib}
\addcontentsline{toc}{chapter}{Bibliography}
End of example
Documentation:
This style file modifies the standard report style to follow the
Graduate School's recommendations. It sets the margins, interline
spacing, the figure and table numbering style, and disallows page
breaks at hyphens.
The \beforepreface command creates the title page, a copyright page
(optionally), and a signature page. Then the user should put
preface section(s), using the \prefacesection{section title}
command. The \afterpreface command then produces the tables of
contents, tables and figures, and sets things up to start
the main body (on arabic page 1).
The following commands can control what goes in the front matter
material:
\title{thesis title}
\author{author's name}
\dept{author's department}
- Electrical Engineering by default
\principaladviser{the principal advisor's name}
(or \principaladvisor, if you prefer advisor spelled with o)
\firstreader{the first reader's name}
\secondreader{the second reader's name}
\submitdate{month year in which submitted to GS}
- default is date LaTeX'd
\copyrightyear{year degree conferred (next year if submitted in Dec.)}
- year LaTeX'd (or next year, in December) by default
\copyrighttrue or \copyrightfalse
- produce or don't produce a copyright page (true by default)
\signaturetrue or \signaturefalse
- produce or don't produce a signature page (true by default)
\figurespagetrue or \figurespagefalse
- produce or don't produce a List of Figures page
(true by default)
\tablespagetrue or \tablespagefalse
- produce or don't produce a List of Tables page
(true by default)
This style uses interline spacing that is 1.3 times normal, except
in the figure and table environments where normal spacing is used.
That can be changed by doing:
\renewcommand{\baselinestretch}{1.6}
(or whatever you want instead of 1.6)
Unfortunately, that command probably won't take effect unless it comes
before the \begin{document} or after something like \small \normalsize.
The example above shows the 12pt substyle being used. This seems to give
acceptable looking results, but it may be changed to get smaller print.
}
%
%no widows/orphans
\clubpenalty = 10000
\widowpenalty = 10000
%
\raggedbottom
\makeatletter
% We need 1" margins except on the binding edge, where it is 1 1/2"
% OLD MARGIN DEF
\oddsidemargin 0.5in \evensidemargin 0in
\marginparsep 10pt \topmargin 0pt \headsep .35in \textheight 8.0in
\marginparwidth 40pt
\textwidth 6in
% KJF MARGIN DEF
%\oddsidemargin 0.5in \evensidemargin 0in
%\marginparsep 10pt
%\marginparwidth 40pt
%\textwidth 6in
%\topmargin 0pt \headheight 12pt \headsep .3in
%\textheight 8.2in
%\footskip 0.3in
% Disallow page breaks at hyphens (this will give some underfull vbox's,
% so an alternative is to use \brokenpenalty=100 and manually search
% for and fix such page breaks)
\brokenpenalty=10000
% Use XXX times the normal baseline-to-baseline skip
% Figures and tables are to be numbered sequentially throughout the
% thesis, rather than within chapters; for style consistency, do
% equations the same. The following \def of \cl@chapter is a kludge:
% really there should be a \removefromreset, to stop figure numbers, etc.,
% from being reset at chapter beginnings
% CURRENTLY DISABLED
%\def\cl@chapter{\@elt{section}\@elt{footnote}}
%\def\thefigure{\@arabic\c@figure}
%\def\thetable{\@arabic\c@table}
%\def\theequation{\arabic{equation}}
% Redefine the macro used for chapter headings; the report style headings
% are too large and look queer. -- jbe
%\def\@makechapterhead#1{ \vspace*{50pt} { \parindent 0pt \raggedright
% \ifnum \c@secnumdepth >\m@ne \LARGE \bf \@chapapp{} \thechapter \par
% \vskip 20pt \fi \LARGE \bf #1\par
% \nobreak \vskip 40pt } }
%\def\@makeschapterhead#1{ \vspace*{50pt} { \parindent 0pt \raggedright
% \LARGE \bf #1\par
% \nobreak \vskip 40pt } }
% Redefined by me---echong
\def\@makechapterhead#1{ \vspace*{20pt} {\parindent 0pt \raggedright
\ifnum \c@secnumdepth >\m@ne \LARGE \bf \hfill \@chapapp{} \thechapter
\vskip 10 pt\hrule \par
\vskip 22pt \fi \Huge \bf \singlespacing \begin{center}#1\end{center}\par
\nobreak \vskip 32pt } }
\def\@makeschapterhead#1{ \vspace*{20pt} {\parindent 0pt \raggedright
\LARGE \bf \hfill #1\par
\vskip 10 pt\hrule \par
\nobreak \vskip 40pt } }
% Whatever this is screws up \usepackage{color} and \usepackage{hyperref}
%% Redefine the macro used for floats (including figures and tables)
%% so that single spacing is used.
%% (Note \def\figure{\@float{figure}set single spacing} doesn't work
%% because figure has an optional argument)
%\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}\@normalsize
% \boxmaxdepth\z@
% \hsize\columnwidth \@parboxrestore}
% Redefine the macro used for footnotes to use single spacing
\long\def\@footnotetext#1{\insert\footins{\def\baselinestretch{1}\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth \dp\strutbox \floatingpenalty \@MM
\hsize\columnwidth \@parboxrestore
\edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext
{\rule{\z@}{\footnotesep}\ignorespaces
#1\strut}}}
% \author, \title are defined in report; here are the rest of the
% front matter defining macros
\def\dept#1{\gdef\@dept{#1}}
\def\principaladviser#1{\gdef\@principaladviser{#1}}
\def\advis@r{Adviser} % default spelling
\def\principaladvisor#1{\gdef\@principaladviser{#1}\gdef\advis@r{Advisor}}
\def\firstreader#1{\gdef\@firstreader{#1}}
\def\secondreader#1{\gdef\@secondreader{#1}}
% Princeton says that theses should have the date set to the date the
% Trustee's grant the degree
\def\submitdate#1{\gdef\@submitdate{#1}}
\def\copyrightyear#1{\gdef\@copyrightyear{#1}} % \author, \title in report
\def\@title{}\def\@author{}\def\@dept{electrical engineering}
\def\@principaladviser{}\def\@firstreader{}\def\@secondreader{}
\def\@submitdate{\ifcase\the\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\the\year}
% Stanford says that December theses should have the next year as the
% copyright year (I don't know about Princeton)
\ifnum\month=12
\@tempcnta=\year \advance\@tempcnta by 1
\edef\@copyrightyear{\number\the\@tempcnta}
\else
\def\@copyrightyear{\number\the\year}
\fi
% conditional page checks
\newif\ifcopyright \newif\ifsignature
\newif\iftablespage \newif\iffigurespage
% default page additions
\copyrighttrue \signaturetrue
\def\titlep{
\thispagestyle{empty}
\null
\begin{center}
\baselineskip 40pt
\vskip-0.75in
{\protect\huge\bf\expandafter{\@title}}
\null\vskip1in
\large\expandafter{\@author}
\null
\end{center}
\vfill
\begin{center}
A dissertation\\
% A second proposition\\
presented to the faculty \\
of Princeton University\\
in candidacy for the degree\\
% in partial fulfillment of the requirements\\
of Doctor of Philosophy\\
\vskip0.5in
Recommended for acceptance\\
by the Department of Electrical Engineering\\
%\lowercase\expandafter{\@dept}\\
\vskip0.4in
\@submitdate\\
\end{center}
\newpage}
\def\copyrightpage{
\thispagestyle{empty}
\vspace*{0.5in}
% \null\vfill
\begin{center}
\copyright\ Copyright
by
\@author,
\@copyrightyear.
All rights reserved.
\end{center}
\vfill\newpage}
\long\def\signature#1{
\begin{center}
\begin{minipage}{4in}
\parindent=0pt
I certify that I have read this thesis and that in my \linebreak opinion
it is fully adequate, in scope and in quality, as a dissertation
for the degree of Doctor of Philosophy.
\par
\vspace{.5in}
\hbox to 4in{\hfil\shortstack{\vrule width 3in height 0.4pt\\#1}}
\end{minipage}
\end{center}}
\def\signaturepage{
\vspace*{-1in}
\signature{\@principaladviser\\(Principal \advis@r)}
\vfill
\signature\@firstreader
\vfill
\signature\@secondreader
\vfill
\begin{center}
\begin{minipage}{4in}
Approved for the Princeton University Graduate School.\par
\vspace{.5in}
\hbox to 4in{\hfil\shortstack{\vrule width 3in height 0.4pt\\
Dean of the Graduate School}}
\end{minipage}
\vspace*{0.4in}
\end{center}}
\def\beforepreface{
\pagenumbering{roman}
\pagestyle{plain}
\titlep
\ifcopyright\copyrightpage\fi
\ifsignature\signaturepage\fi
}
\def\prefacesection#1{
%\chapter*{#1}
\clearpage \thispagestyle{plain} \global\@topnum\z@
\@afterindentfalse
%\vspace*{20pt}
{ \parindent 0pt \raggedright
\centering \huge \bf #1\par
\nobreak \vskip 40pt }
\@afterheading
\addcontentsline{toc}{chapter}{#1}}
% Redefine "headings" so that not uppercased.---echong
%\def\ps@headings{\let\@mkboth\markboth
%\def\@oddfoot{}\def\@evenfoot{}\def\@oddhead{\hbox {}\sl \rightmark
%\hfil \rm\thepage}\def\chaptermark##1{\markright {\ifnum
%\c@secnumdepth
%>\m@ne
% \@chapapp\ \thechapter: \ \fi ##1}}}
\def\ps@headings{%
\let\@oddfoot\@empty\let\@evenfoot\@empty
\def\@evenhead{\thepage\hfil\leftmark}%\def\@evenhead{\thepage\hfil\slshape\leftmark}
\def\@oddhead{{\rightmark}\hfil\thepage}%\def\@oddhead{{\slshape\rightmark}\hfil\thepage}
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth {{%
\ifnum \c@secnumdepth >\m@ne
\@chapapp\ \thechapter: \ %
\fi
##1}}{}}%
\def\sectionmark##1{%
\markright {{%
\ifnum \c@secnumdepth >\z@
\thesection: \ %
\fi
##1}}}}
% Redefine "newtheorem" to put a colon after the number. E.Chong
\def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2:}]}
\def\@opargbegintheorem#1#2#3{\it \trivlist
\item[\hskip \labelsep{\bf #1\ #2\ (#3):}]}
% Set counter for theorems to be Chapter.Number
\def\@thmcounter#1{\noexpand\arabic{#1}}
% The \addvspace business below is to avoid the extra space that gets put
% in the tables of figures and tables between chapters (it makes no sense
% now that the numbering is continuous)
\def\afterpreface{\newpage
\tableofcontents
\cleardoublepage
\iftablespage
{\addvspace{10pt}
\let\saveaddvspace=\addvspace
\def\addvspace##1{}
\addcontentsline{toc}{chapter}{List of Tables}
\listoftables
\let\addvspace=\saveaddvspace}
\cleardoublepage
\fi
\iffigurespage
{\addvspace{10pt}
\let\saveaddvspace=\addvspace
\def\addvspace##1{}
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures
\let\addvspace=\saveaddvspace}
\cleardoublepage
\fi
\pagenumbering{arabic}
\pagestyle{headings}}
\pagestyle{headings}