Bumped to verison 0.9
[drexel-thesis.git] / drexel-thesis.dtx
1 % \def\fileversion{0.9}
2 % \def\filedate{2010/05/21}
3 % \iffalse meta-comment
4 %<class>\def\fileversion{0.9}
5 %<class>\def\filedate{2010/05/21}
6 %
7 % Copyright (C) 2010  C.Y. Ip
8 %                     Christopher D. Cera
9 %                     Christopher S. Dahn
10 %                     Daniel J. Cross
11 %                     David T. McWherter
12 %                     Evan Sultanik
13 %                     Jeff Arahamson
14 %                     Mitchell Peabody
15 %                     R. Rojas, E
16 %                     Robert Bernecky
17 %                     T. Tsankov
18 %                     Vincent A. Cicirello
19 %                     W. Trevor King
20 % -------------------------------------------------------
21
22 % This file may be distributed and/or modified under the
23 % conditions of the LaTeX Project Public License, either version 1.3
24 % of this license or (at your option) any later version.
25 % The latest version of this license is in:
26 %
27 %    http://www.latex-project.org/lppl.txt
28 %
29 % and version 1.3 or later is part of all distributions of LaTeX 
30 % version 2003/12/01 or later.
31 %
32 % Docstrip formatting initially based on Scott Pakin's
33 % dtxtut/cskeleton.dtx
34 %   http://www.ctan.org/tex-archive/info/dtxtut/
35 %
36 % \fi
37 %
38 % \iffalse meta-comment
39 %<*driver>
40 \ProvidesFile{drexel-thesis.dtx}
41 %</driver>
42 %<class>\NeedsTeXFormat{LaTeX2e}
43 %<class>\ProvidesClass{drexel-thesis}
44 %<class> [\filedate\ \fileversion\ Drexel Thesis]
45 %
46 % Code for the .ini driver, see \S 2.1 ``The driver file'' of doc.dtx.
47 %<*driver>
48 \documentclass{ltxdoc}
49 \usepackage[colorlinks=true]{hyperref}
50 %</driver>
51 % Include some useful commands from |xkeyval|'s |<preamble>|.
52 %<*driver>
53 \usepackage{xcolor}
54 \usepackage{listings}
55 \lstnewenvironment{command}{%
56   \lstset{columns=flexible,frame=single,backgroundcolor=\color{blue!20},%
57     xleftmargin=\fboxsep,xrightmargin=\fboxsep,escapeinside=`',gobble=1}}{}
58 \lstnewenvironment{example}{%
59   \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single,%
60     backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,%
61     xrightmargin=\fboxsep,gobble=1}}{}
62 %</driver>
63 % Define a quick and dirty version of |xkeyval|'s |\DescribeOptions|.
64 %<*driver>
65 \newenvironment{option}[1]{\begin{macro}{#1}}
66                           {\end{macro}}
67 %</driver>
68 % Some commonly used abbreviations from |classes.dtx|.
69 %<*driver>
70 \newcommand*{\Lopt}[1]{\textsf {#1}}
71 \newcommand*{\file}[1]{\texttt {#1}}
72 \newcommand*{\Lcount}[1]{\textsl {\small#1}}
73 \newcommand*{\pstyle}[1]{\textsl {#1}}
74 %</driver>
75 % Provide easy access to the @ character.  Note that this, like the
76 % short-verbatim markers ||, does not work in |\changes| sections
77 % because of the way they are cached to the glossary file.  If you
78 % find a way to make them work there, let me know :).
79 %<*driver>
80 \newcommand*{\textat}{\makeatletter @ \makeatother}
81 %</driver>
82 %<*driver>
83 \makeatletter
84 \def\DescribeOption#1{\leavevmode\@bsphack
85               \marginpar{\raggedleft\PrintDescribeOption{#1}}%
86               \SpecialOptionIndex{#1}\@esphack\ignorespaces}
87 \def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ }
88 \def\SpecialOptionIndex#1{\@bsphack
89     \index{#1\actualchar{\protect\ttfamily#1}
90            (option)\encapchar usage}%
91     \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
92            usage}\@esphack}
93 \def\DescribeOptions#1{\leavevmode\@bsphack
94   \marginpar{\raggedleft\strut\emph{options}%
95   \@for\@tempa:=#1\do{%
96     \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa
97   }}\@esphack\ignorespaces}
98 \makeatother
99 %</driver>
100 %<*driver>
101 \EnableCrossrefs
102 \RecordChanges
103 \EnableCrossrefs         
104 \begin{document}
105   \DocInput{drexel-thesis.dtx}
106 \end{document}
107 %</driver>
108 % \fi
109 %
110 % \CheckSum{0}
111 %
112 % \CharacterTable
113 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
114 %   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
115 %   Digits        \0\1\2\3\4\5\6\7\8\9
116 %   Exclamation   \!     Double quote  \"     Hash (number) \#
117 %   Dollar        \$     Percent       \%     Ampersand     \&
118 %   Acute accent  \'     Left paren    \(     Right paren   \)
119 %   Asterisk      \*     Plus          \+     Comma         \,
120 %   Minus         \-     Point         \.     Solidus       \/
121 %   Colon         \:     Semicolon     \;     Less than     \<
122 %   Equals        \=     Greater than  \>     Question mark \?
123 %   Commercial at \@     Left bracket  \[     Backslash     \\
124 %   Right bracket \]     Circumflex    \^     Underscore    \_
125 %   Grave accent  \`     Left brace    \{     Vertical bar  \|
126 %   Right brace   \}     Tilde         \~}
127 %
128 %
129 % \changes{0.1}{2006/01/18}{Rewrite by Daniel J.~Cross}
130 % \changes{0.2}{2010/01/09}{W.~Trevor King transitioned from thesis.cls
131 %   to drexel-thesis.dtx and did a good deal of reorganizing.}
132 % \changes{0.3}{2010/01/13}{W.~Trevor King merged drexelthesis.cls
133 %   developed in the Comp.~Sci.~Department by Jeff Abrahamson,
134 %   Evan Sultanik, C.Y.~Ip, Christopher S.~Dahn, Christopher D.~Cera,
135 %   Mitchell Peabody, David T.~McWherter, and Vincent A.~Cicirello.
136 %   Based on the University of Toronto Thesis \LaTeXe\ Class.  Also
137 %   greatly improved the documentation by incorperating bits of
138 %   the base/*.dtx files.}
139 % \changes{0.4}{2010/02/23}{W.~Trevor King repositioned hyperref
140 %   inclusion for proper hyperref overriding.  The previous
141 %   implementation couldn't handle $\backslash$label for
142 %   $\backslash$paragraph and some other section levels.  The page
143 %   number for the reference was correct, but the link went to the
144 %   label's parent chapter.}
145 % \changes{0.5}{2010/03/03}{W.~Trevor King use hypcap for better
146 %   caption hyperlink anchor placement.}
147 % \changes{0.6}{2010/03/11}{W.~Trevor King fixed
148 %   $\backslash$if$@$final handling.  Previous versions used
149 %   it more like a hypothetical $\backslash$if$@$finalspace.
150 %   Also adjusted theindex to use a listed$@$schapter.}
151 %
152 % \MakeShortVerb{\|}
153 % \newcommand{\pkg}[1]{\textsf{#1}}
154 % \newcommand{\cls}[1]{\textsf{#1}}
155 % ^^A\newcommand{\BibTeX}{{\scshape Bib}\TeX}
156
157 % \title{The \textsf{drexel-thesis} class\thanks{This document
158 %   corresponds to \textsf{drexel-thesis}~\fileversion, dated \filedate.}}
159 % \author{W.~Trevor King \\\texttt{wking@drexel.edu}
160 %         \and Daniel J.~Cross \and T.~Tsankov \and R.~Rojas.}
161 % \date{\filedate}
162 %
163 % \maketitle
164 %
165 %
166 % \section{Introduction}
167 %
168 % This package defines a \LaTeX\ thesis class for Drexel University
169 % conforming to the
170 % \href{http://www.library.drexel.edu/files/services_documents/thesismanual.pdf}
171 %   {Drexel University Thesis Manual version 2009/06/01}.
172 %
173 % \section{Usage}
174 %
175 % To write a thesis, you load the Drexel thesis definitions by loading
176 % the \pkg{drexel-thesis} class at the beginning of your
177 % \LaTeX\ document with the |\documentclass| command.  For example,
178 % \begin{example}
179 %   \documentclass{drexel-thesis}
180 % \end{example}
181 %
182 % \subsection{Options}
183 %
184 % \DescribeOptions{final,draft}
185 % The default option (selected if not options are passed) is
186 % \Lopt{final} mode, which has all the proper formatting and spacing
187 % for your final product. The other main option is \Lopt{draft} mode,
188 % which reduces all the spacing in the document, so might be helpful
189 % when printing out drafts (saves paper).
190 %
191 % \Lopt{final} mode corresponds to (with Thesis Manual chapter and
192 % verse) \\
193 % \begin{tabular}{r p{0.8\textwidth}}
194 %   \Lopt{oneside} & 1.5 Library Submission Information, Print
195 %     Version: ``All copies must be: \ldots Typed/printed on only one
196 %     side of the page (not double-sided).'' \\
197 %   \Lopt{finalspace} & Assorted single, double, and triple spacing
198 %   directives. \\
199 %   \Lopt{dottedtoc} & From the example on p17.
200 % \end{tabular}
201 %
202 % \Lopt{draft} mode corresponds to \\
203 % \begin{tabular}{r p{0.8\textwidth}}
204 %   \Lopt{twoside} & Save space. \\
205 %   \Lopt{draftspace} & Save space. \\
206 %   \Lopt{dottedtoc} & Might as well be consistent with \Lopt{final}. \\
207 %   \Lopt{mydraftwatermark} & It's good to have a timestamp. \\
208 % \end{tabular}
209 %
210 % \DescribeOption{subfig}
211 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/}{\pkg{subfig}}
212 % makes it easy to include and caption multi-part figures.  However,
213 % getting \pkg{subfig} to cooperate with \pkg{floatrow} and
214 % \pkg{tocloft} can be tricky.  If you want to use \pkg{subfig}, just
215 % pass the \Lopt{subfig} option to \cls{drexel-thesis}, and all the
216 % pesky details will be taken care of.  See \S
217 % \ref{sec:better-example} for an example.
218 %
219 % \DescribeOption{finalspace}
220 % Loosen spacing.
221 %
222 % \DescribeOption{draftspace}
223 % Tighten spacing.
224 %
225 % \DescribeOptions{dottedtoc,boldtoc,
226 %                  dottedpart,boldpart,
227 %                  dottedchapter,boldchapter}
228 % These options change how the relevant table of contents lines are
229 % printed.  \LaTeX\ defaults to bold but not dots.  The \Lopt{*toc}
230 % options set all of the types.  For example, \Lopt{boldtoc} is
231 % equivalent to \Lopt{boldchapter,boldpart}.
232 %
233 % \DescribeOption{indenttoc}
234 % The example table of contents in the Manual p17 does not indent
235 % section entries, etc., so neither does \cls{drexel-thesis}.  If you
236 % \emph{do} want pretty, indented TOCs, like the \LaTeX\ defaults pass
237 % \Lopt{indenttoc} to \cls{drexel-thesis}.
238 %
239 % \DescribeOption{draftwatermark}
240 % \Lopt{draftwatermark} adds ``DRAFT \meta{date}'' watermarks to each
241 % page.  A useful way to remember that the version you're looking at
242 % is not final.  Also helps reviewers tell you what version they're
243 % correcting.  Requires the \pkg{draftmark} package.
244 %
245 % \DescribeOption{mydraftwatermark}
246 % \Lopt{mydraftwatermark} is similar to \Lopt{draftwatermark} but
247 % depends on the possibly more common \pkg{xcolor}, \pkg{eso-pic},
248 % and \pkg{graphicx}.
249 %
250 % \DescribeOption{indentfirst}
251 % \Lopt{indentfirst} indents the first paragraph after sections etc.
252 %
253 %
254 % \subsubsection{Interesting \cls{book} options}
255
256 % \DescribeOption{oneside}
257 % Setup output for one-sided printing.
258 %
259 % \DescribeOption{twoside}
260 % Setup output for two-sided printing.
261 %
262 % \DescribeOption{leqno}
263 % \Lopt{leqno} places the numbering of formulae on the left hand side
264 % instead of the right.
265 %
266 % \DescribeOption{fleqn}
267 % \Lopt{fleqn} typesets displayed formulae left-aligned instead of
268 % centered.
269 %
270 %
271 % \subsection{Macros}
272 %
273 % \begin{command}
274 %   `\cs{author}\marg{name}'
275 % \end{command}
276 % \DescribeMacro{\author}
277 % Use this macro to set your full name to \meta{name}, including
278 % your middle initial or name.  For example
279 % \begin{example}
280 %   \name{Richard P. Feynman}
281 % \end{example}
282 % See the Manual \S 3.1 p8.
283 %
284 % \begin{command}
285 %   `\cs{title}\marg{title}'
286 % \end{command}
287 % \DescribeMacro{\title}
288 % Use this macro to set your thesis title to \meta{name}.  For example
289 % \begin{example}
290 %   \title{A New Approach to Quantum Theory}
291 % \end{example}
292 % See the Manual p16.
293 %
294 % \begin{command}
295 %   `\cs{advisor}\marg{name}'
296 % \end{command}
297 % \DescribeMacro{\advisor}
298 % Use this macro to set your advisor's name to \meta{name}.  For
299 % example
300 % \begin{example}
301 %   \advisor{John A. Wheeler, Ph.D.}
302 % \end{example}
303 % You can set multiple advisors, if appropriate, by calling |\advisor|
304 % multiple times.
305 % \begin{example}
306 %   \advisor{John A. Wheeler, Ph.D.}
307 %   \advisor{Advisor 2}
308 % \end{example}
309 % See the Manual \S 3.1 p8.
310 %
311 % \begin{command}
312 %   `\cs{defmonth}\marg{month}'
313 %   `\cs{defyear}\marg{year}'
314 % \end{command}
315 % \DescribeMacro{\defmonth}
316 % \DescribeMacro{\defyear}
317 % Use these macros to set the month with \meta{month} (spelled out)
318 % and year with \meta{year} (four digits) of your thesis defense.  For
319 % example
320 % \begin{example}
321 %   \defmonth{June}
322 %   \defyear{1942}
323 % \end{example}
324 % See the Manual \S 3.1 p8.
325 % The |def| in |\def*| avoids collisions with the plain \TeX\ 
326 % |\month| and |\year| (see the
327 % \href{http://www.tug.org/utilities/plain/cseq.html#month-rp}{month}
328 % and
329 % \href{http://www.tug.org/utilities/plain/cseq.html#year-rp}{year}
330 % entries in the HTML version of David Bausum's \emph{TeX Reference
331 % Manual}).
332 %
333 % \begin{command}
334 %   `\cs{degree}\marg{degree}'
335 % \end{command}
336 % \DescribeMacro{\degree}
337 % Set your target degree with \meta{degree}.  From the Manual \S 3.1
338 % p8.
339 % \begin{quote}
340 %   Write out the name of the degree for which you are a candidate.
341 %   All Ph.D.\ candidates must use |Doctor of Philosophy|.  All
342 %   Master's degree candidates should use the precise degree name
343 %   (e.g., |Master of Science in Mechanical Engineering|).
344 % \end{quote}
345 % So, for a Ph.D candidate,
346 % \begin{example}
347 %   \degree{Doctor of Philosophy}
348 % \end{example}
349 %
350 % \begin{command}
351 %   `\cs{copyrighttext}\marg{text}'
352 % \end{command}
353 % \DescribeMacro{\copyrighttext}
354 % Use this macro to set the copyright text to \meta{text}.
355 % The default value is ``All Rights Reserved.''.
356 % \begin{example}
357 %   \copyrighttext{Released to the Public Domain.}
358 % \end{example}
359 % See the Manual \S 3.2 p9.
360 %
361 % \begin{command}
362 %   `\cs{copyrighttextCCBYSA}'
363 % \end{command}
364 % There are a number of predefined copyright messages for ease of use \\
365 % \begin{tabular}{l l}
366 %   |\copyrighttextCCBYSA| &
367 %     Creative Commons Attribution-ShareAlike License Version 3.0.\\
368 % \end{tabular}
369 %
370 % \begin{command}
371 %   `\cs{tableofcontents}'
372 % \end{command}
373 % \DescribeMacro{\tableofcontents}
374 % Write the table of contents (Manual \S 3.5 p9).  You can control the
375 % verbosity by setting |\tocdepth| according to the following table
376 % (\href{http://www.image.ufl.edu/help/latex/intext.shtml}{source}). \\
377 % \begin{tabular}{l l l}
378 %   Depth in document & Section Command & Depth for |\secnumdepth| Command \\
379 %   -1 & |\part| & 1 \\
380 %    0 & |\chapter| & 2 \\
381 %    1 & |\section| & 3 \\
382 %    2 & |\subsection| & 4 \\
383 %    3 & |\subsubsection| & 5 \\
384 %    4 & |\paragraph| & 6 \\
385 %    5 & |\subparagraph| & 7
386 % \end{tabular} \\
387 % For example, to expose everything down to and including the
388 % |\subsection| level, you would add
389 % \begin{example}
390 %   \setcounter{tocdepth}{2}
391 % \end{example}
392 % to your preamble (the section before |\begin{document}|, not the
393 % |preamble| environment discussed below).
394 %
395 % Note that the Manual \S 3.5 p9 requires ``List chapter titles and at
396 % least the first and second order subdivisions.'', which corresponds
397 % to a |\tocdepth| of at least 2.
398 %
399 % \begin{command}
400 %   `\cs{listoftables}'
401 % \end{command}
402 % \DescribeMacro{\listoftables}
403 % Write the List of Tables page (Manual \S 3.6 p10).
404 % Skip if you have no tables in your thesis.
405 %
406 % \begin{command}
407 %   `\cs{listoffigures}'
408 % \end{command}
409 % \DescribeMacro{\listoffigures}
410 % Write the List of Figures page (Manual \S 3.7 p10).
411 % Skip if you have no figures in your thesis.
412 %
413 % \begin{command}
414 %   `\cs{blanklines}\marg{num}'
415 % \end{command}
416 % \DescribeMacro{\blanklines}
417 % Insert \meta{num} blank lines.  For example
418 % \begin{example}
419 %   \blanklines{2}
420 % \end{example}
421 % The skipped lines are always \emph{single spaced} lines, regardless
422 % of the current line spacing in the environment calling this macro.
423 %
424 % \begin{command}
425 %   `\cs{iffinal}\marg{final-mode-action}\marg{draft-mode-action}'
426 % \end{command}
427 % \DescribeMacro{\iffinal}
428 % Include \Lopt{final}- or \Lopt{draft}-specific code.
429 % \begin{example}
430 %   We're in \iffinal{final}{draft} mode!
431 % \end{example}
432 %
433 %
434 % \subsection{Environments}
435 %
436 % \DescribeEnv{preamble}
437 % Generalize the |\frontmatter| for the thesis, setting up page
438 % numbering, including the title page, copyright page etc.  The
439 % |preamble| environment should contain the following elements
440 % (in order, see the Manual p8)
441 % \begin{itemize}
442 %   \item |dedication| environment (optional)
443 %   \item |acknowledgments| environment (optional)
444 %   \item |\tableofcontents|
445 %   \item |\listoftables|
446 %   \item |\listoffigures|
447 %   \item |abstract| environment
448 % \end{itemize}
449 % This will take care of everything from the title page (Manual \S 3.1),
450 % up through the blank page before the text (Manual \S 3.9).
451 %
452 % \DescribeEnv{dedications}
453 % Set the dedications text.
454 % Highlights from the Manual \S 3.3 p9:
455 % \begin{quote}
456 %   The |Dedications| page is optional.
457 % \end{quote}
458 %
459 % \DescribeEnv{acknowledgments}
460 % Set the acknowledgments text.
461 % Highlights from the Manual \S 3.4 p9:
462 % \begin{quote}
463 %   The |Acknowledgments| page is optional, but most theses do
464 %   include a brief statement of thanks or recognition of any special
465 %   assistance.
466 % \end{quote}
467 %
468 % \DescribeEnv{abstract}
469 % Set the thesis abstract text.  In the Thesis Manual, see \S 3.8
470 % Abstract (p10) for details, p20 for an example.
471 %
472 % Highlights from the Manual:
473 % \begin{quote}
474 %   The abstract is a summary that allows readers to determine the
475 %   value of reading the full thesis.  It should include a statement
476 %   of the problem, an outline of procedures or methods, and a summary
477 %   of results and conclusions.
478 % \end{quote}
479 % \begin{itemize}
480 %   \item Word limits: 600 for a Master's thesis, 350 for a Ph.D.\ thesis.
481 % \end{itemize}
482 %
483 % \DescribeEnv{thesis}
484 % Set the thesis text.  In the Thesis Manual, see \S 3.10 Thesis (p11)
485 % for details.
486 %
487 % Highlights from the Manual:
488 % \begin{quote}
489 %   Divide the text into its major parts/chapters/subsections.  No
490 %   fixed arrangement is necessary.  The major parts may contain such
491 %   subjects as introduction, general argument, description of
492 %   experimental procedures, research methods, discussion, summary,
493 %   conclusions, recommendations, and other pertinent topics that are
494 %   necessary for a complete understanding on the part of a
495 %   sophisticated or professional reader.
496 % \end{quote}
497 %
498 % \DescribeEnv{vita}
499 % Set the thesis vita text (Ph.D.\ only).  See the Manual \S 3.15 p12,
500 % ``Vita'', for details.
501 %
502 % Highlights from the Manual:
503 % \begin{quote}
504 %   The Vita is a biography of the student written in the third person
505 %   in either essay or outline form.  It should include the full name,
506 %   place and date of birth (optional), country of citizenship
507 %   (optional), institutions attended, degrees and honors received,
508 %   titles of publications, teaching and professional experience, and
509 %   other pertinent data.  The Vita must be one page or less.
510 % \end{quote}
511 %
512 %
513 % \subsection{Hints}
514 %
515 %
516 % \subsubsection{Package installation}
517 % \label{sec:dependencies}
518 %
519 % All the packages this class depends on must be installed somewhere
520 % in your texmf tree (they probably already are).  If not, you will
521 % recieve warning messages on compilation such as
522 % \begin{example}
523 %   ! LaTeX Error: File `missing-package.sty' not found.
524 % \end{example}
525 % You should then install the missing package(s) using your operating
526 % systems package manager, or grab the missing package from
527 % \href{http://www.ctan.org/}{CTAN}, and install them following TODO.
528 %
529 %
530 % \subsubsection{Tables and Figures}
531 %
532 % \pkg{drexel-thesis} loads
533 % \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}}
534 % to define the |\includegraphics| macro,
535 % \href{http://www.ctan.org/tex-archive/macros/latex/required/caption/}{\pkg{caption}}
536 % for pretty caption formatting,
537 % \href{http://www.ctan.org/tex-archive/macros/latex/required/floatrow/}{\pkg{floatrow}}
538 % for placing captions, and
539 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}}
540 % for placing caption anchors.
541 %
542 % Simple float definitions will look like
543 % \begin{example}
544 %   \begin{table}
545 %      \caption{Some caption text}
546 %      \begin{tabular}{...}
547 %        ...
548 %      \end{tabular}
549 %   \end{table}
550 % \end{example}
551 % or
552 % \begin{example}
553 %   \begin{float}
554 %      \includegraphics{...}
555 %      \caption{Some caption text}
556 %   \end{float}
557 % \end{example}
558 % For more useful float information, see the examples in \S
559 % \ref{sec:better-example-part} and the
560 % \href{http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions}
561 %   {\LaTeX\ wikibook page}.
562 %
563 %
564 % \subsubsection{Citations}
565 %
566 % I highly recommend using \BibTeX\ and
567 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/}{\pkg{natbib}}.
568 % See \S \ref{sec:better-example} for a simple example.
569 %
570 % Suggested options:\\
571 % \begin{tabular}{r p{0.8\textwidth}}
572 %   |super| & selects citations in superscript mode. \\
573 %   |sort&compress| & automatically sorts and compresses compound
574 %     citations (|\pcite{a,b,...}|).
575 % \end{tabular}
576 %
577 %
578 % \subsubsection{References}
579 %
580 % Easier cross referencing with
581 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/cleveref/}{\pkg{cleveref}}.
582 % Is a wonderful tool for easy, consistent crosslinking via |\cref|,
583 % |\Cref|, etc..  The manual is also very good.
584 % Note that if you use |\part|s in your document, you need to tell
585 % \pkg{cleveref} how to deal with them:
586 % \begin{example}
587 %   \usepackage{cleveref}
588 %   \crefname{part}{part}{parts}
589 % \end{example}
590 %
591 %
592 % \subsubsection{Hyperlinks}
593 %
594 % \cls{drexel-thesis} loads
595 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/}{\pkg{hyperref}}.
596 % with the options:\\
597 % \begin{tabular}{r p{0.8\textwidth}}
598 %   |colorlinks| & color the link letters instead of drawing colored boxes. \\
599 % \end{tabular}
600 %
601 % If running with a pdftex-based driver, |\author|, |\title|, and
602 % |\degree| automatically set |pdfauthor|, |pdftitle|, and
603 % |pdfsubject| respectively.  You can use the |\hypersetup| macro to
604 % set options overriding these defaults.
605 %
606 %
607 % \subsubsection{Developing large \LaTeX\ documents}
608 %
609 % A thesis may take a while to compile, especially if it contains
610 % lots of images, etc..  One way to save time, is to use |\includeonly|
611 % when including chapter \file{*.tex} files (see
612 % \href{http://en.wikibooks.org/wiki/TeX/includeonly}{the \TeX\ Wikibook}).
613 % Usage would be something like
614 % \begin{example}
615 % \documentclass{drexel-thesis}
616 % ...
617 % \includeonly{chapter2.tex,chapter3.tex}
618 % \begin{document}
619 % ...
620 % \begin{thesis}
621 % \include{chapter1.tex}
622 % \include{chapter2.tex}
623 % \include{chapter3.tex}
624 % \include{chapter4.tex}
625 % \end{thesis}
626 % ...
627 % \end{document}
628 % \end{example}
629 % which would only compile chapters two and three.  Don't confuse the
630 % similar commands |\include| and |\input|.  The more fundamental
631 % |\input| just inserts the file contents at that point, while
632 % |\include|
633 % \begin{itemize}
634 %   \item may only be used after |\begin{document}|
635 %   \item acts like |\clearpage \input{} \clearpage|
636 %   \item will not crash on nonexistent files
637 % \end{itemize}
638 %
639 %
640 % \StopEventually{\pagebreak\PrintChanges}
641 %
642 %
643 % \section{Implementation}
644 %    \begin{macrocode}
645 %<*class>
646 %    \end{macrocode}
647 %
648 % For simplicity, we'll derive everything from the standard \cls{book}
649 % class.
650 %
651 %
652 % \subsection{Option Processing}
653 %
654 % Include
655 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xkeyval/}{\pkg{xkeyval}}
656 % for easier option parsing.  If the package is not installed on your system,
657 % see \S \ref{sec:dependencies} for installation instructions.
658 %    \begin{macrocode}
659 \RequirePackage{xkeyval}
660 %    \end{macrocode}
661 %
662 % Define some booleans to store option states
663 %    \begin{macrocode}
664 \newif\if@mainmatter \@mainmattertrue
665 \newif\if@DUT@subfigopt
666 \newif\if@dottedchapter 
667 \newif\if@boldchapter
668 \newif\if@boldpart
669 \newif\if@dottedpart
670 \newif\if@indenttoc
671 \newif\if@draftwatermark
672 \newif\if@mydraftwatermark
673 \newif\if@indentfirst
674 \newif\if@final
675 %    \end{macrocode}
676 %
677 % \begin{macro}{\iffinal}
678 % Setup a user-friendly means for including \Lopt{final}- or
679 % \Lopt{draft}-specific code.
680 % \changes{0.7}{2010/03/14}{W.~Trevor King added macro.}
681 %    \begin{macrocode}
682 \newcommand\iffinal[2]{\if@final #1\else #2\fi}
683 %    \end{macrocode}
684 % \end{macro}
685 %
686 % \begin{option}{subfig}
687 % Set \Lopt{subfig} flag
688 %    \begin{macrocode}
689 \DeclareOptionX{subfig}{\@DUT@subfigopttrue}
690 %    \end{macrocode}
691 % \end{option}
692 %
693 % \begin{option}{finalspace}
694 %    \begin{macrocode}
695 \DeclareOptionX{finalspace}{
696   \setlength\overfullrule{0pt}
697   \def\@cont@sep{1} % content page separation (# blanklines between entries)
698   \def\@ssp{1} % single space
699   \def\@dsp{2} % double space
700   \def\@tsp{3} % triple space
701 }
702 %    \end{macrocode}
703 % \end{option}
704 % \begin{option}{draftspace}
705 %    \begin{macrocode}
706 \DeclareOptionX{draftspace}{
707   \setlength\overfullrule{5pt}
708   \def\@cont@sep{0} % content page separation (# blanklines between entries)
709   \def\@ssp{1} % single space
710   \def\@dsp{1} % double space
711   \def\@tsp{2} % triple space
712 %    \end{macrocode}
713 %  Don't force chapters onto right-hand pages.
714 %    \begin{macrocode}
715   \PassOptionsToClass{openany}{book}
716 }
717 %    \end{macrocode}
718 % \end{option}
719 %
720 % \begin{option}{dottedpart}
721 %    \begin{macrocode}
722 \DeclareOptionX{dottedpart}{\@dottedparttrue}
723 %    \end{macrocode}
724 % \end{option}
725 % \begin{option}{dottedchapter}
726 %    \begin{macrocode}
727 \DeclareOptionX{dottedchapter}{\@dottedchaptertrue}
728 %    \end{macrocode}1
729 % \end{option}
730 % \begin{option}{boldpart}
731 %    \begin{macrocode}
732 \DeclareOptionX{boldpart}{\@boldparttrue}
733 %    \end{macrocode}
734 % \end{option}
735 % \begin{option}{boldchapter}
736 %    \begin{macrocode}
737 \DeclareOptionX{boldchapter}{\@boldchaptertrue}
738 %    \end{macrocode}
739 % \end{option}
740 % \begin{option}{dottedtoc}
741 %    \begin{macrocode}
742 \DeclareOptionX{dottedtoc}{
743   \setkeys{drexel-thesis.cls}{dottedpart}
744   \setkeys{drexel-thesis.cls}{dottedchapter}
745 }
746 %    \end{macrocode}
747 % \end{option}
748 % \begin{option}{boldtoc}
749 %    \begin{macrocode}
750 \DeclareOptionX{boldtoc}{
751   \setkeys{drexel-thesis.cls}{boldpart}
752   \setkeys{drexel-thesis.cls}{boldchapter}
753 }
754 %    \end{macrocode}
755 % \end{option}
756 %
757 % \begin{option}{indenttoc}
758 % Set \Lopt{indenttoc} flag
759 %    \begin{macrocode}
760 \DeclareOptionX{indenttoc}{\@indenttoctrue}
761 %    \end{macrocode}
762 % \end{option}
763 %
764 % \begin{option}{draftwatermark}
765 % Set \Lopt{draftwatermark} flag
766 %    \begin{macrocode}
767 \DeclareOptionX{draftwatermark}{%
768   \@draftwatermarktrue
769   \@mydraftwatermarkfalse}
770 %    \end{macrocode}
771 % \end{option}
772 %
773 % \begin{option}{mydraftwatermark}
774 % Set \Lopt{mydraftwatermark} flag
775 %    \begin{macrocode}
776 \DeclareOptionX{mydraftwatermark}{%
777   \@mydraftwatermarktrue
778   \@draftwatermarkfalse}
779 %    \end{macrocode}
780 % \end{option}
781 %
782 % \begin{option}{indentfirst}
783 % Set \Lopt{indentfirst} flag
784 %    \begin{macrocode}
785 \DeclareOptionX{indentfirst}{\@indentfirsttrue}
786 %    \end{macrocode}
787 % \end{option}
788 %
789 % Define the book options that \Lopt{final} and \Lopt{draft} need to
790 % access.
791 % \begin{option}{oneside}
792 %    \begin{macrocode}
793 \DeclareOptionX{oneside}{\PassOptionsToClass{oneside}{book}}
794 %    \end{macrocode}
795 % \end{option}
796 %
797 % \begin{option}{twoside}
798 %    \begin{macrocode}
799 \DeclareOptionX{twoside}{\PassOptionsToClass{twoside}{book}}
800 %    \end{macrocode}
801 % \end{option}
802 %
803 % \begin{option}{final}
804 %    \begin{macrocode}
805 \DeclareOptionX{final}{
806   \@finaltrue
807   \setkeys{drexel-thesis.cls}{oneside}
808   \setkeys{drexel-thesis.cls}{finalspace}
809   \setkeys{drexel-thesis.cls}{dottedtoc}
810 }
811 %    \end{macrocode}
812 % \end{option}
813 %
814 % \begin{option}{draft}
815 %    \begin{macrocode}
816 \DeclareOptionX{draft}{
817   \@finalfalse
818   \setkeys{drexel-thesis.cls}{twoside}
819   \setkeys{drexel-thesis.cls}{draftspace}
820   \setkeys{drexel-thesis.cls}{dottedtoc}
821   \setkeys{drexel-thesis.cls}{mydraftwatermark}
822 }
823 %    \end{macrocode}
824 % \end{option}
825 %
826 % Use the default \cls{book} implementation for any remaining options
827 % including \Lopt{oneside}, \Lopt{twoside}, \Lopt{leqno}, \Lopt{fleqn},
828 % \ldots.
829 %    \begin{macrocode}
830 \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{book}}
831 %    \end{macrocode}
832 %
833 % Execute the default options
834 %    \begin{macrocode}
835 \ExecuteOptionsX{final}
836 %    \end{macrocode}
837 %
838 % Process options and load the book class
839 %    \begin{macrocode}
840 \ProcessOptionsX\relax
841 \LoadClass{book}
842 %    \end{macrocode}
843 %
844 %
845 % \subsection{Internal package includes}
846 %
847 %
848 % Include some other packages we'll need.  If the package is not
849 % installed on your system, see \S \ref{sec:dependencies} for
850 % installation instructions.
851 %
852 % For many packages, we want the same functionality for both
853 % \Lopt{final} and \Lopt{draft} modes.  We pass \Lopt{final} to most
854 % of those packages to override a possible \Lopt{draft} option passed
855 % to \pkg{drexel-thesis}.
856 %
857 %
858 % \subsubsection{\pkg{setspace}}
859 %
860 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/setspace/}{\pkg{setspace}}
861 % for double spacing.
862 %    \begin{macrocode}
863 \RequirePackage{setspace}
864 %    \end{macrocode}
865 %
866 %
867 % \subsubsection{\pkg{calc}}
868 %
869 % \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\pkg{calc}}
870 % for |\set@lines@length| macro (page
871 %   \pageref{sec:implement-line-spacing}).
872 %    \begin{macrocode}
873 \RequirePackage{calc}
874 %    \end{macrocode}
875 %
876 %
877 % \subsubsection{\pkg{graphicx}}
878 %
879 % \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}}
880 % for |\includegraphics|.  Not strictly necessary, but I can't imagine
881 % a thesis without figures.
882 %    \begin{macrocode}
883 \RequirePackage[final]{graphicx}
884 %    \end{macrocode}
885 %
886 % We include the graphicx package now so we can
887 % pass \Lopt{final}, because some later packages include it with no options,
888 % and a \Lopt{final} include after that produces errors like
889 % \begin{example}
890 %   l.104 \RequirePackage
891 %                        [final]{ifpdf}
892 %   The package graphicx has already been loaded with options:
893 %     []
894 %   There has now been an attempt to load it with options
895 %     [final]
896 % \end{example}
897 %
898 %
899 % \subsubsection{\pkg{draftmark}}
900 %
901 % The Comp.~Sci.\ class used
902 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/draftcopy/}{\pkg{draftcopy}}
903 % to add their watermarks, but as of the current 2002/02/25 v2.16, it
904 % uses postscript specials, and so doesn't work with pdf\LaTeX.
905 % Instead we use the recent (catalogued 2009/11/03)
906 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/draftmark/}{\pkg{draftmark}}
907 % which unfortunately has a number of apparently non-standard dependencies
908 % (\href{http://www.ctan.org/tex-archive/macros/latex/contrib/etextools/}{\pkg{etextools}},
909 %  \href{http://www.ctan.org/tex-archive/macros/latex/contrib/etoolbox/}{\pkg{etoolbox}},
910 %  \href{http://www.ctan.org/tex-archive/macros/latex/contrib/lastpage/}{\pkg{lastpage}},
911 %  \href{http://www.ctan.org/tex-archive/macros/latex/contrib/ltxnew/}{\pkg{ltxnew}},
912 %  \href{http://www.ctan.org/tex-archive/macros/latex/contrib/pagerange/}{\pkg{pagerange}},
913 %  \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xifthen/}{\pkg{xifthen}},
914 %  if only I had the space to install |texlive-latexextra| |:p|).
915 % The output is, however, very flexible, and it \emph{does} work with
916 % both \LaTeX\ and pdf\LaTeX.  If you don't like the default watermark,
917 % you can also adjust the particulars with |\draftmarksetup|.
918 %    \begin{macrocode}
919 \if@draftwatermark
920   \RequirePackage[draft,allpages,mark={DRAFT \today},
921                   fontsize=2cm,grayness=0.9]{draftmark}
922 \fi
923 %    \end{macrocode}
924 %
925 % Here is Evan's alternative implementation This will not look right
926 % as a DVI, but it'll look fine once rendered to either a PS or PDF.
927 %    \begin{macrocode}
928 \if@mydraftwatermark
929 %    \end{macrocode}
930 % Use \pkg{eso-pic} for |\AddToShipoutPicture|.
931 %    \begin{macrocode}
932   \RequirePackage{eso-pic}
933 %    \end{macrocode}
934 % Use \pkg{xcolor} for |\definecolor|.
935 %    \begin{macrocode}
936   \RequirePackage{xcolor}
937   \definecolor{watermark}{rgb}{0.9,0.9,0.9}
938 %    \end{macrocode}
939 % Set the font explicitly to avoid being effected by the last text on
940 % the page having some strange font.  |\sffamily| sets a sans serif
941 % font.
942 %    \begin{macrocode}
943   \newcommand{\watermarkfont}{%
944     \color{watermark}}%\fontfamily{phv}\selectfont\sffamily}
945   \newcommand{\watermark}{%
946     \rule{4.25in}{0pt}\raisebox{5.5in}{%
947       \makebox[0pt]{%
948 %    \end{macrocode}
949 % |\rotatebox| and |\resizebox| from \pkg{graphicx}.
950 %    \begin{macrocode}
951         \rotatebox[origin=c]{45}{%
952           \resizebox{!}{1.5in}{%
953             {\watermarkfont DRAFT}%
954     }}}}
955     \raisebox{4.2in}{%
956       \makebox[0pt]{%
957         \rotatebox[origin=c]{45}{%
958           \resizebox{!}{.6in}{%
959             {\watermarkfont \qquad\today}%
960     }}}}}
961   \AddToShipoutPicture{\watermark{}}
962 \fi
963 %    \end{macrocode}
964 %
965 %
966 % \subsubsection{\pkg{indentfirst}}
967 %
968 % Indent the first paragraph after sections etc.\ with
969 % \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\pkg{indentfirst}}.
970 %    \begin{macrocode}
971 \if@indentfirst
972   \RequirePackage{indentfirst}
973 \fi
974 %    \end{macrocode}
975 %
976 %
977 % \subsubsection{\pkg{geometry}}
978 %
979 % Setup page margins with
980 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/geometry/}{\pkg{geometry}}.
981 % From the Manual p5:
982 % \begin{itemize}
983 %   \item The left margin must be at least 1 1/2'' (1.5 inches)
984 %   throughout the document.
985 %   \item All other margins (top, bottom, and right) must be at least 1''.
986 % \end{itemize}
987 % And from the Manual \S 1.5 p4, Print Version:
988 % \begin{quote}
989 %   The paper size must be 8 1/2'' x 11''.
990 % \end{quote}
991 %    \begin{macrocode}
992 \RequirePackage[letterpaper,margin=1in,bindingoffset=0.5in]{geometry}
993 %    \end{macrocode}
994 % Note that we include the \pkg{geometry} package after loading \cls{book} to
995 % override the margin manipulation that takes place in \cls{book}.
996 %
997 %
998 % \subsubsection{\pkg{tocloft}}
999 %
1000 % Typeset the table of contents, etc., with
1001 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/}{\pkg{tocloft}}.
1002 %    \begin{macrocode}
1003 \if@DUT@subfigopt
1004   \RequirePackage[subfigure]{tocloft}
1005 \else
1006   \RequirePackage{tocloft}
1007 \fi
1008 %    \end{macrocode}
1009 % The \Lopt{subfigure} option sets up \pkg{tocloft} for
1010 % \pkg{subfig}/\pkg{subfigure} compatibility. See the
1011 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf}{%
1012 %   \pkg{tocloft} manual \S 2.1}
1013 % for details.
1014 %
1015 % The configuration of \pkg{tocloft} takes place in \S
1016 % \ref{sec:implement-toc}, \S \ref{sec:implement-lof}, and \S
1017 % \ref{sec:implement-lot}.
1018 %
1019 %
1020 % \subsubsection{\pkg{caption}}
1021 %
1022 % Get nice caption formatting with
1023 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/caption/}{\pkg{caption}}.
1024 % From the Manual p5:
1025 % \begin{itemize}
1026 %   \item The left margin must be at least 1 1/2'' (1.5 inches)
1027 %   throughout the document.
1028 %   \item All other margins (top, bottom, and right) must be at least 1''.
1029 % \end{itemize}
1030 %    \begin{macrocode}
1031 \RequirePackage[margin=10pt,labelfont=bf,labelsep=colon]{caption}
1032 %    \end{macrocode}
1033 % You can change these settings if you like using |\captionsetup|.
1034 %
1035 %
1036 % \subsubsection{\pkg{floatrow}}
1037 % \label{sec:floatrow}
1038 %
1039 % Enforce caption placement with
1040 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/floatrow/}{\pkg{floatrow}}.
1041 % From the Manual \S 2.3 p6, ``Tables and Figures'', 
1042 % \begin{quote}
1043 %   \begin{itemize}
1044 %     \item Place figure captions below figures.
1045 %     \item Place table captions above tables.
1046 %   \end{itemize}
1047 % \end{quote}
1048 %    \begin{macrocode}
1049 \RequirePackage{floatrow}
1050 \floatsetup[table]{style=plaintop}
1051 \floatsetup{captionskip=10pt}
1052 \floatsetup[table]{captionskip=10pt}
1053 %    \end{macrocode}
1054 % Use \pkg{fr-subfig} for \pkg{floatrow}/\pkg{subfig} compatibility.
1055 % See the \pkg{floatrow} documentation (Sec.~7.1, ``The \pkg{subfig}
1056 % package'') and \pkg{subfig} documentation (Sec.~4.3,
1057 % ``\pkg{FloatRow} Package'') for details.
1058 %    \begin{macrocode}
1059 \if@DUT@subfigopt
1060   \RequirePackage{fr-subfig}
1061 \fi
1062 %    \end{macrocode}
1063 % We set up the three-line surrounding spaces in \S
1064 % \ref{sec:implement-floats}.
1065 %
1066 % You can change these settings using |\floatsetup|, but you probably
1067 % won't need to.
1068 %
1069 %
1070 % \subsubsection{\pkg{subfig}}
1071 % \label{sec:subfig}
1072 %
1073 % Allow multi-part figures with
1074 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/}{\pkg{subfig}}.
1075 %    \begin{macrocode}
1076 \if@DUT@subfigopt
1077   \RequirePackage{subfig}
1078 \fi
1079 %    \end{macrocode}
1080 %
1081 %
1082 % \subsubsection{\pkg{fancyhdr}}
1083 % \label{sec:fancyhdr}
1084 %
1085 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fancyhdr/}{\pkg{fancyhdr}}
1086 % for correct page numbering and fancy headers.
1087 % From the Manual \S 2.3 p5, ``Pagination''
1088 % \begin{quote}
1089 %   Place page numbers in the upper right-hand corner of the page,
1090 %   3/4'' from the top.
1091 % \end{quote}
1092 %    \begin{macrocode}
1093 \RequirePackage{fancyhdr}
1094 %    \end{macrocode}
1095 % Setup the standard |fancy| format.
1096 %    \begin{macrocode}
1097 \pagestyle{fancy}
1098 \fancyhf{}
1099 %    \end{macrocode}
1100 % Turn off the header rule by setting its width to $0$.
1101 %    \begin{macrocode}
1102 \renewcommand{\headrulewidth}{0pt}
1103 %    \end{macrocode}
1104 % 0.4 pt is \pkg{fancyhdr}'s default |\headrulewidth|, so we'll
1105 % recycle the value.
1106 %    \begin{macrocode}
1107 \renewcommand{\footrulewidth}{0.4pt}
1108 %    \end{macrocode}
1109 % |\leftmark| is the higher level mark, see |\chaptermark| below.
1110 % |\rightmark| is the lower level mark, see |\sectionmark| below.
1111 % We put the lower level mark to the outside because it changes more
1112 % often.  Page numbers also go on the outside.
1113 %    \begin{macrocode}
1114 \fancyfoot[RE,LO]{\scshape\leftmark}
1115 \fancyfoot[LE,RO]{\scshape\rightmark}
1116 \fancyhead[LE,RO]{\thepage}
1117 %    \end{macrocode}
1118 % Override the |plain| format (for part pages, etc.).
1119 %    \begin{macrocode}
1120 \fancypagestyle{plain}{
1121   \fancyhf{}
1122   \renewcommand{\footrulewidth}{0pt}
1123   \fancyhead[LE,RO]{\thepage}
1124 }
1125 %    \end{macrocode}
1126 % Keep the |empty| format at its default.
1127 %    \begin{macrocode}
1128 \fancypagestyle{empty}{
1129   \fancyhf{}
1130   \renewcommand{\footrulewidth}{0pt}
1131 }
1132 %    \end{macrocode}
1133 %
1134 % Note that the chapter/section footer is not required.  You can
1135 % remove the footer text and rule entirely with.
1136 % \begin{example}
1137 %   \renewcommand{\footrulewidth}{0pt}
1138 %   \fancyfoot[RE,LO]{}
1139 %   \fancyfoot[LE,RO]{}
1140 % \end{example}
1141 %
1142 %
1143 % \subsubsection{\pkg{ifpdf}}
1144 %
1145 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{ifpdf}}
1146 % for detecting PDF drivers.  We use it to configure \pkg{hyperref} below.
1147 %    \begin{macrocode}
1148 \RequirePackage{ifpdf}
1149 %    \end{macrocode}
1150
1151 % \subsubsection{\pkg{hyperref}}
1152 % \label{sec:hyperref}
1153 %
1154 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/}{\pkg{hyperref}}
1155 % for hyperlinks.  Not strictly necessary, but I can't imagine a
1156 % thesis without it.  We actually include this later (\S
1157 % \ref{sec:hyperref-inclusion}), because \pkg{hyperref} sticks its
1158 % fingers into \emph{everything} and we want it to use our versions of
1159 % some macros (e.g. |\@sect|) but not others (e.g. |thebibliography|).
1160 %
1161 %
1162 % \subsubsection{\pkg{hypcap}}
1163 % \label{sec:hypcap}
1164 %
1165 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}}
1166 % for placing caption hyperlink anchors.  Must be included after
1167 % \pkg{hypercap}, so the actual inclusion is in \S
1168 % \ref{sec:hypcap-inclusion}).
1169 %
1170 %
1171 % \subsection{\LaTeX\ overrides and extensions}
1172 %
1173 % Here we change the behavior of a bunch of macros and environments
1174 % from \file{latex.ltx} (generated by \file{format.ins} in
1175 % \href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{base}}).
1176 % We'll copy in their original notes along with their code, following
1177 % the relevant documentation an order given in \file{format.ins} and
1178 % the associated \file{*.dtx} files.
1179 %
1180 %
1181 % \subsubsection{\file{ltsect.dtx}}
1182 %
1183 % \begin{macro}{\title}
1184 % |\title| for use in |\maketitle|. If not given |\maketitle| will
1185 % produce a warning message (\file{ltsect.dtx}, L117).
1186 %
1187 % We extend |\title| to set \pkg{hyperref}'s |pdftitle|.
1188 % (\file{ltsect.dtx}, L117).
1189 %    \begin{macrocode}
1190 \let\DUT@title\title
1191 \renewcommand{\title}[1]{
1192   \DUT@title{#1}
1193   \ifpdf \hypersetup{pdftitle={\@title}} \fi
1194 }
1195 %    \end{macrocode}
1196 % \end{macro}
1197 %
1198 % \begin{macro}{\author}
1199 % |\author| for use in |\maketitle|.  If not given |\maketitle| will
1200 % produce a warning message (\file{ltsect.dtx}, L129).
1201 %
1202 % We extend |\author| to set \pkg{hyperref}'s |pdfauthor| if we're
1203 % writing a PDF to avoid using |\AtBeginDocument| or some such.
1204 % (\file{ltsect.dtx}, L129).
1205 %    \begin{macrocode}
1206 \let\DUT@author\author
1207 \renewcommand{\author}[1]{
1208   \DUT@author{#1}
1209   \ifpdf \hypersetup{pdfauthor={\@author}} \fi
1210 }
1211 %    \end{macrocode}
1212 % \end{macro}
1213 %
1214 % In a similar vein, we some additional meta-info macros.
1215 %
1216 %  \begin{macro}{\defmonth}
1217 %  \begin{macro}{\@defmonth}
1218 % |\defmonth| (defense month) for use in |\maketitle|.  If not given
1219 % |\maketitle| will produce an error message.
1220 %    \begin{macrocode}
1221 \def\defmonth#1{\gdef\def@month{#1}}
1222 \def\def@month{\@latex@error{No \noexpand\defmonth given}\@ehc}
1223 %    \end{macrocode}
1224 %  \end{macro}
1225 %  \end{macro}
1226 %
1227 %  \begin{macro}{\defyear}
1228 %  \begin{macro}{\@defyear}
1229 % |\defyear| (defense year) for use in |\maketitle|.  If not given
1230 % |\maketitle| will produce an error message.
1231 %    \begin{macrocode}
1232 \def\defyear#1{\gdef\def@year{#1}}
1233 \def\def@year{\@latex@error{No \noexpand\defyear given}\@ehc}
1234 %    \end{macrocode}
1235 %  \end{macro}
1236 %  \end{macro}
1237 %
1238 %  \begin{macro}{\degree}
1239 %  \begin{macro}{\@degree}
1240 % |\degree| for use in |\maketitle|.  If not given |\maketitle| will
1241 % produce an error message.
1242 %    \begin{macrocode}
1243 \def\degree#1{\gdef\@degree{#1}
1244   \ifpdf \hypersetup{pdfsubject={\@degree}} \fi}
1245 \def\@degree{\@latex@error{No \noexpand\degree given}\@ehc}
1246 %    \end{macrocode}
1247 %  \end{macro}
1248 %  \end{macro}
1249 %
1250 %  \begin{macro}{\copyrighttext}
1251 %  \begin{macro}{\@copyrighttext}
1252 % |\copyrighttext| for use in |\makecopyright|.  There are a number of
1253 % blurbs predefined in \S \ref{sec:implement-copyright}.
1254 %    \begin{macrocode}
1255 \def\copyrighttext#1{\gdef\@copyrighttext{#1}}
1256 \def\@copyrighttext{All Rights Reserved.}
1257 %    \end{macrocode}
1258 %  \end{macro}
1259 %  \end{macro}
1260 %
1261 %  \begin{macro}{\advisor}
1262 %  \begin{macro}{\@advisor}
1263 % |\advisor| stores advisor names, and |\@advisor| prints them out
1264 % nicely for the |abstract| environment.  If no advisors are given
1265 % |\@advisor| will produce an error message.  We get a bit fancier
1266 % here to support multiple advisors.
1267 %    \begin{macrocode}
1268 \newcounter{advisors}
1269 \setcounter{advisors}{0}
1270 %    \end{macrocode}
1271 % Store a new advisor name.
1272 %    \begin{macrocode}
1273 \newcommand\advisor[1]{%
1274   \ifx
1275 %    \end{macrocode}
1276 % If |#1| is |\empty|, this call is a no-op.
1277 %    \begin{macrocode}
1278     \empty{#1}
1279   \else
1280 %    \end{macrocode}
1281 % Save the advisors to |\@advisor@a|, |\@advisor@b|, \ldots.
1282 % |\alph{|\Lcount{COUNTER}|}| (\file{ltcounts.dtx}, L319) prints the
1283 %   value of \Lcount{COUNTER} as a lowercase letter: $1 =$~a, $2 =$~
1284 %   b, etc.
1285 %    \begin{macrocode}
1286     \stepcounter{advisors}
1287     \expandafter\gdef\csname @advisor@\alph{advisors}\endcsname{#1}
1288   \fi}
1289 %    \end{macrocode}
1290 % Format and print a list of advisor names.
1291 %    \begin{macrocode}
1292 \newcommand\@advisor{%
1293   \ifnum\c@advisors=0%
1294     \@latex@error{No \noexpand\advisor given}\@ehc%
1295   \else%
1296 %    \end{macrocode}
1297 % Start a group so the scratch counter \Lcount{count\textat} is restored
1298 % afterwards\footnote{See the discussion in
1299 %   \href{http://www.ctan.org/tex-archive/macros/latex/contrib/localloc/}{%
1300 %     \pkg{localloc}}
1301 %   for some points on counter allocation.}.
1302 %    \begin{macrocode}
1303     \begingroup%
1304 %    \end{macrocode}
1305 % Because \Lcount{count\textat} is a \TeX\ counter register not
1306 % wrapped by \LaTeX's counter sugar, we don't use \LaTeX's
1307 % |\setcounter| to set \Lcount{count\textat} to one.
1308 %    \begin{macrocode}
1309       \count@\@ne
1310 %    \end{macrocode}
1311 % Print the first advisor, using \TeX's |\@alph| macro instead of
1312 % \LaTeX's |\alph|.
1313 %    \begin{macrocode}
1314 %    \begin{macrocode}
1315       \csname @advisor@\@alph\count@\endcsname\relax%
1316 %    \end{macrocode}
1317 % For any remaining advisors\ldots
1318 %    \begin{macrocode}
1319       \loop\ifnum\count@<\c@advisors%
1320 %    \end{macrocode}
1321 % Advance \Lcount{count\textat} using \TeX's |\advance| macro instead
1322 % of \LaTeX's |\stepcounter|.
1323 %    \begin{macrocode}
1324         \advance\count@\@ne
1325 %    \end{macrocode}
1326 % Print the connecting text.
1327 %    \begin{macrocode}
1328         \ifnum\count@=\c@advisors%
1329           \ifnum\c@advisors=2%
1330 %    \end{macrocode}
1331 % The next advisor if the last of two.
1332 %    \begin{macrocode}
1333             {\ and\ }%
1334           \else%
1335 %    \end{macrocode}
1336 % The next advisor if the last of many.
1337 %    \begin{macrocode}
1338             {, and\ }%
1339           \fi%
1340         \else%
1341 %    \end{macrocode}
1342 % The next advisor is not the last.
1343 %    \begin{macrocode}
1344           {,\ }%
1345         \fi%
1346 %    \end{macrocode}
1347 % Print the advisor's name.
1348 %    \begin{macrocode}
1349         \csname @advisor@\@alph\count@\endcsname\relax%
1350       \repeat%
1351     \endgroup%
1352   \fi}
1353 %    \end{macrocode}
1354 %  \end{macro}
1355 %  \end{macro}
1356 %
1357 % \paragraph{baselineskip}
1358 % \label{sec:implement-line-spacing}
1359 %
1360 % \begin{macro}{\DUT@baselineskip}
1361 % Since we'll be messing with the spacing, save the single-spaced
1362 % baseline.
1363 %   \changes{0.3}{2010/01/13}{Use $\backslash$setlength to store the
1364 %     value at the default font.  The previous version used
1365 %     $\backslash$let, which made $\backslash$DUT\@baselineskip a
1366 %     synonym for $\backslash$baselineskip that changed with font
1367 %     size.}
1368 %    \begin{macrocode}
1369 \newlength\DUT@baselineskip
1370 \setlength\DUT@baselineskip\baselineskip
1371 %    \end{macrocode}
1372 % \end{macro}
1373 %
1374 % \begin{command}
1375 %   `\cs{set@lines@length}\marg{length}\marg{N}'
1376 % \end{command}
1377 % \begin{macro}{\set@lines@length}
1378 % Many specifications in the Manual refer to ``\meta{N} blank lines''.
1379 % |\set@lines@length| allows you to set a length to a given number of
1380 % lines, protecting against external |spacing| environments.  It
1381 % requires \pkg{calc} for the multiplication.
1382 %    \begin{macrocode}
1383 \newcommand{\set@lines@length}[2]{%
1384   \setlength{#1}{\DUT@baselineskip * {#2}}}
1385 %    \end{macrocode}
1386 % \end{macro}
1387 %
1388 %
1389 % Fix |\@ssect| and |\@sect| from \file{latex.ltx} to give single
1390 % spaced headings.
1391 %
1392 % \begin{macro}{\@sect}
1393 % Pseudocode for the |\@sect| command
1394 % \begin{example}
1395 % \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[ARG1]{ARG2}
1396 %           ==
1397 %   BEGIN
1398 %    IF LEVEL > \c@secnumdepth
1399 %      THEN \@svsec :=L null
1400 %      ELSE \refstepcounter{NAME}
1401 %           \@svsec :=L BEGIN \@seccntformat{#1}\relax END
1402 %    FI
1403 %    IF AFTERSKIP > 0
1404 %      THEN \begingroup
1405 %              STYLE
1406 %              \@hangfrom{\hskip INDENT\@svsec}
1407 %              {\interlinepenalty 10000 ARG2\par}
1408 %           \endgroup
1409 %           \NAMEmark{ARG1}
1410 %           \addcontentsline{toc}{NAME}
1411 %              { IF  LEVEL > \c@secnumdepth
1412 %                  ELSE \protect\numberline{\theNAME}  FI
1413 %                ARG1 }
1414 %      ELSE \@svsechd == BEGIN  STYLE
1415 %                               \hskip INDENT\@svsec
1416 %                               ARG2
1417 %                               \NAMEmark{ARG1}
1418 %                               \addcontentsline{toc}{NAME}
1419 %                                  { IF  LEVEL > \c@secnumdepth
1420 %                                      ELSE 
1421 %                                        \protect\numberline{\theNAME}
1422 %                                      FI
1423 %                                    ARG1 }
1424 %                        END
1425 %    FI
1426 %    \@xsect{AFTERSKIP}
1427 % END
1428 % \end{example}
1429 % (\file{ltsect.dtx}, L295).
1430 %    \begin{macrocode}
1431 \def\@sect#1#2#3#4#5#6[#7]#8{%
1432   \ifnum #2>\c@secnumdepth
1433     \let\@svsec\@empty
1434   \else
1435     \refstepcounter{#1}%
1436     \protected@edef\@svsec{\@seccntformat{#1}\relax}%
1437   \fi
1438   \@tempskipa #5\relax
1439   \ifdim \@tempskipa>\z@
1440     \begingroup
1441 %    \end{macrocode}
1442 % Here we deviate from \file{ltsect.dtx} to ensure single spacing for
1443 % the section title.
1444 %    \begin{macrocode}
1445       \setstretch{\@ssp}%
1446       #6{%
1447         \@hangfrom{\hskip #3\relax\@svsec}%
1448           \interlinepenalty \@M #8\@@par}%
1449     \endgroup
1450     \csname #1mark\endcsname{#7}%
1451     \addcontentsline{toc}{#1}{%
1452       \ifnum #2>\c@secnumdepth \else
1453         \protect\numberline{\csname the#1\endcsname}%
1454       \fi
1455       #7}%
1456   \else
1457     \def\@svsechd{%
1458       #6{\hskip #3\relax
1459       \@svsec #8}%
1460       \csname #1mark\endcsname{#7}%
1461       \addcontentsline{toc}{#1}{%
1462         \ifnum #2>\c@secnumdepth \else
1463           \protect\numberline{\csname the#1\endcsname}%
1464         \fi
1465         #7}}%
1466   \fi
1467   \@xsect{#5}}
1468 %    \end{macrocode}
1469 % \end{macro}
1470 %
1471 % \begin{macro}{\@ssect}
1472 % Pseudocode for the |\@ssect| command
1473 % \begin{example}
1474 % \@ssect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{ARG} ==
1475 %   BEGIN
1476 %    IF AFTERSKIP > 0
1477 %      THEN \begingroup
1478 %             STYLE
1479 %             \@hangfrom{\hskip INDENT}{\interlinepenalty 10000 ARG\par}
1480 %           \endgroup
1481 %      ELSE \@svsechd == BEGIN STYLE
1482 %                              \hskip INDENT
1483 %                              ARG
1484 %                        END
1485 %    FI
1486 %    \@xsect{AFTERSKIP}
1487 %   END
1488 % \end{example}
1489 % (\file{ltsect.dtx}, L521).
1490 %    \begin{macrocode}
1491 \def\@ssect#1#2#3#4#5{%
1492   \@tempskipa #3\relax
1493   \ifdim \@tempskipa>\z@
1494     \begingroup
1495 %    \end{macrocode}
1496 % Here we deviate from \file{ltsect.dtx} to ensure single spacing for
1497 % the section title.
1498 %    \begin{macrocode}
1499       \setstretch{\@ssp}%
1500       #4{%
1501         \@hangfrom{\hskip #1}%
1502           \interlinepenalty \@M #5\@@par}%
1503     \endgroup
1504   \else
1505     \def\@svsechd{#4{\hskip #1\relax #5}}%
1506   \fi
1507   \@xsect{#3}}
1508 %    \end{macrocode}
1509 % \end{macro}
1510 %
1511 %
1512 % \subsubsection{\file{ltbibl.dtx}}
1513 %
1514 % \DescribeMacro{\bibliography}
1515 % \DescribeEnv{thebibliography}
1516 % A bibliography is created by the |thebibliography| environment, which
1517 % generates a title such as ``Bibliography'', and a list of entries.
1518 % The \BibTeX\ program will create a file containing such an
1519 % environment, which will be read in by the |\bibliography| command.
1520 % With \BibTeX, the following commands will be used.
1521 %
1522 % The document class must define the thebibliography environment.  This
1523 % environment has a single argument, which is the widest bibliography
1524 % label-- e.g., if the [Knuth67] is the widest entry, then this
1525 % argument will be Knuth67.  The |\thebibliography| command must begin
1526 % a list  environment, which the |\endthebibliography| command ends.
1527 %
1528 % \begin{macro}{\bibliography}
1529 % |\bibliography|\marg{file1,file2,\ldots,filen} : specifies
1530 %   the bibdata files.  Writes a |\bibdata| entry on the |.aux| file
1531 %   and tries to read in |mainfile.bbl|.
1532 %
1533 % We don't need to change it, but it explains why we need to override
1534 % |thebibliography| even when we don't use it directly.
1535 % (\file{ltbibl.dtx}, L284).
1536 %    \begin{macrocode}
1537 %\def\bibliography#1{%
1538 %  \if@filesw
1539 %    \immediate\write\@auxout{\string\bibdata{#1}}%
1540 %  \fi
1541 %  \@input@{\jobname.bbl}
1542 %}
1543 %    \end{macrocode}
1544 % \end{macro}
1545 %
1546 %
1547 % \subsubsection{\file{ltoutput.dtx}}
1548 %
1549 % \begin{macro}{\DUT@clearpage}
1550 % \begin{macro}{\DUT@cleardoublepage}
1551 % Versions of |\clear*page| that only work when |\if@final| is true
1552 % (\file{ltoutput.dtx}, L877 and L904).
1553 %    \begin{macrocode}
1554 \newcommand\DUT@clearpage{\if@final \clearpage \fi}
1555 \newcommand\DUT@cleardoublepage{\if@final \cleardoublepage \fi}
1556 %    \end{macrocode}
1557 % \end{macro}
1558 % \end{macro}
1559 %
1560 % \begin{macro}{\blankpage}
1561 % Add a useful extension to insert a blank page without numbering.
1562 % In draft mode, this macro is a no-op.
1563 %    \begin{macrocode}
1564 \newcommand\blankpage{%
1565   \if@final
1566     \DUT@clearpage
1567     \thispagestyle{empty}
1568     \hphantom{0}
1569     \DUT@clearpage
1570   \else\fi
1571 }
1572 %    \end{macrocode}
1573 % \end{macro}
1574 %
1575 %
1576 % \begin{command}
1577 %   `\cs{blanklines}\marg{N}'
1578 %   `\cs{blanklines*}\marg{N}'
1579 % \end{command}
1580 % \begin{macro}{\blanklines}
1581 % Insert \meta{N} blank lines.  The starred forms use |\vspace|, which
1582 % inserts space even at the start and end of pages.  The |p| forms
1583 % add a trailing |\par|.  \emph{I'm still trying to get this part working
1584 % cleanly\ldots}
1585 %    \begin{macrocode}
1586 \newlength\DUT@blanklines@length
1587 \newcommand{\@blanklines@setup}[1]{%
1588   \set@lines@length{\DUT@blanklines@length}{#1}%
1589   %\typeout{BLANKLINES -- #1}%
1590   %\showthe\DUT@blanklines@length
1591 }
1592 \newcommand{\blanklines}{\@ifstar\@sblanklines\@blanklines}
1593 \newcommand{\@blanklines}[1]{%
1594   \@blanklines@setup{#1}%
1595   \vspace{\DUT@blanklines@length}}
1596 \newcommand{\@sblanklines}[1]{%
1597   \@blanklines@setup{#1}%
1598   \vspace*{\DUT@blanklines@length}}
1599 \newcommand{\blanklinesp}{\@ifstar\@sblanklines\@blanklines}
1600 \newcommand{\@blanklinesp}[1]{%
1601   \@blanklines@setup{#1}%
1602   \vspace{\DUT@blanklines@length}\par}
1603 \newcommand{\@sblanklinesp}[1]{%
1604   \@blanklines@setup{#1}%
1605   \vspace*{\DUT@blanklines@length}\par}
1606 %    \end{macrocode}
1607 % \end{macro}
1608 %
1609 %
1610 % \subsection{\pkg{hyperref} inclusion}
1611 % \label{sec:hyperref-inclusion}
1612 %
1613 % This is the awkward \pkg{hyperref} inclusion.  See \S
1614 % \ref{sec:hyperref} for an explanation of why we stash it here.
1615 %    \begin{macrocode}
1616 \RequirePackage[final]{hyperref}
1617 %    \end{macrocode}
1618 % Nobody likes the default colored boxes.  Color the text itself.
1619 %    \begin{macrocode}
1620 \hypersetup{colorlinks}
1621 %    \end{macrocode}
1622 %
1623 % \subsubsection{\pkg{hypcap}}
1624 % \label{sec:hypcap-inclusion}
1625 %
1626 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}}
1627 % for placing caption hyperlink anchors.  Not strictly necessary, but
1628 % we're using \pkg{hyperref}, and the poor link targets are annoying.
1629 %    \begin{macrocode}
1630 \RequirePackage[all]{hypcap}
1631 %    \end{macrocode}
1632 % \Lopt{all} redefines the figure and table environments to
1633 % place the anchor at the start of the float.
1634 %
1635 %
1636 % \subsection{\cls{book} overrides and extensions}
1637 %
1638 % Here we change the behavior of a bunch of macros and environments from
1639 % \cls{book} (generated by \file{classes.ins} from \file{classes.dtx}) in
1640 % \href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{base}}).
1641 % We'll copy in their original notes along with their code, following
1642 % the relevant documentation an order given in \file{classes.dtx}.
1643 %
1644 %
1645 % \subsubsection{Floats on a text page}
1646 % \label{sec:implement-floats}
1647 %
1648 % \begin{macro}{\floatsep}
1649 % \begin{macro}{\textfloatsep}
1650 % When a floating object is placed on a page with text, these
1651 % parameters control the separation between the float and the other
1652 % objects on the page.
1653 %
1654 % |\floatsep| is the space between adjacent floats that are moved
1655 % to the top or bottom of the text page.
1656 %
1657 % |\textfloatsep| is the space between the main text and floats
1658 % at the top or bottom of the page.
1659 %
1660 % |\intextsep| is the space between in-text floats and the text.  We
1661 % don't bother overriding this one, because we've handled it with
1662 % \pkg{floatrow} in \S \ref{sec:floatrow}.
1663 %
1664 % From the Manual \S 2.3 p6, ``Tables and Figures''
1665 % \begin{quote}
1666 %   Insert at least 3 single-spaced lines of space above table
1667 %   captions and figures and below figure captions, tables, and other
1668 %   graphics.
1669 % \end{quote}
1670 % (\file{classes.dtx}, L1426)
1671 %    \begin{macrocode}
1672 \set@lines@length{\floatsep}{\@ssp}
1673 \set@lines@length{\textfloatsep}{\@tsp}
1674 %    \end{macrocode}
1675 % \end{macro}
1676 % \end{macro}
1677 %
1678 %
1679 % \subsubsection{The title}
1680 %
1681 % \begin{macro}{\maketitle}
1682 % Automate the creation of the title page.
1683 % From Manual \S 3.1 p8, ``Title Page'', and the example on p16.
1684 % \begin{itemize}
1685 %   \item This page is counted but not numbered (it counts as page i,
1686 %   but should not have a page number).  TODO: How is this implemented?
1687 % \end{itemize}
1688 % Our definition simplifies \cls{book}'s by ignoring footnotes.
1689 % (\file{classes.dtx}, L1796)
1690 %    \begin{macrocode}
1691 \renewcommand\maketitle{
1692   \begin{titlepage}%
1693 %    \end{macrocode}
1694 % Add some bookmarks if we're using pdf\LaTeX.  The |frontmatter|
1695 % bookmark is set at the \emph{part} level (-1) to hold all bookmarks
1696 % from the |preamble| environment, since those entries are all
1697 % chapters.
1698 % \changes{0.8}{2010/05/20}{W.~Trevor King replaced Titlepage with
1699 %   Title Page for consistency with \LaTeX's book class.}
1700 %    \begin{macrocode}
1701     \ifpdf
1702       \pdfbookmark[-1]{Front Matter}{Front Matter}
1703       \pdfbookmark[0]{Title Page}{Title Page}
1704     \fi
1705 %    \end{macrocode}
1706 % Add some stretchy space to center the title vertically if we're not
1707 % in draft mode.
1708 %    \begin{macrocode}
1709     \if@final \vspace*{\fill} \fi
1710 %    \end{macrocode}
1711 % Here is the title text itself.
1712 %    \begin{macrocode}
1713     \begin{center}%
1714       {\setstretch{\@tsp} \bfseries \@title \par}%
1715 %    \end{macrocode}
1716 % We want two blank lines (triple spacing) between the title and the
1717 % remaining material, so add three but don't end the paragraph.
1718 %    \begin{macrocode}
1719       \blanklines{\@tsp}%
1720       \setstretch{\@dsp}%
1721       A Thesis\\
1722       Submitted to the Faculty\\
1723       of\\
1724       Drexel University\\
1725       by\\
1726       \@author\\
1727       in partial fulfillment of the\\
1728       requirements for the degree\\
1729       of\\
1730       \@degree\\
1731       \def@month\ \def@year
1732     \end{center}\par
1733 %    \end{macrocode}
1734 % Some more stretchy space for the bottom if we're not in draft mode.
1735 %    \begin{macrocode}
1736 %    \end{macrocode}
1737 % Add some stretchy space to center the title vertically if we're not
1738 % in draft mode.
1739 %    \begin{macrocode}
1740     \if@final \vspace*{\fill} \fi
1741   \end{titlepage}%
1742 %    \end{macrocode}
1743 % And that's it.  We reset the footnote counter for the rest of the
1744 % document and save space by freeing the memory associated with the
1745 % |\maketitle| and |\and| macros (by setting them equal to |\relax|).
1746 %    \begin{macrocode}
1747   \setcounter{footnote}{0}%
1748   \global\let\maketitle\relax
1749   \global\let\and\relax
1750 }
1751 %    \end{macrocode}
1752 % \end{macro}
1753 %
1754 %
1755 % \subsubsection{Copyright pages}
1756 % \label{sec:implement-copyright}
1757 %
1758 % \begin{macro}{\makecopyright}
1759 % The Manual allows for the selection of different copyrights, so we
1760 % define a base macro that generates a proper copyright page
1761 % containing |\@copyrighttext|, which the user can set with
1762 % |\copyrighttext|.
1763 % From Manual \S 3.2 p9, ``Copyright Page''.
1764 % \begin{itemize}
1765 %   \item Include a copyright page with the following information: a
1766 %   copyright notice, full legal name of author, and date of
1767 %   publication on file.
1768 %   \item This page is neither counted nor numbered.
1769 % \end{itemize}
1770 % In final mode, we start off on a new page and center the blurb.
1771 % In draft mode, we dive right into the text.
1772 %    \begin{macrocode}
1773 \newcommand\makecopyright{%
1774   \DUT@clearpage
1775 %    \end{macrocode}
1776 % If we're using pdf\LaTeX, add a bookmark.
1777 %    \begin{macrocode}
1778   \ifpdf \pdfbookmark[0]{Copyright Page}{Copyright Page} \fi
1779   \if@final \vspace*{\fill} \fi
1780   \begin{center}
1781     \copyright~Copyright \def@year\\
1782     \@author.  \@copyrighttext
1783   \end{center}
1784   \if@final \vspace*{\fill} \else \blanklinesp{2} \fi
1785 %    \end{macrocode}
1786 % Turn off page numbering for this page.
1787 %    \begin{macrocode}
1788   \thispagestyle{empty}
1789 }
1790 %    \end{macrocode}
1791 % \end{macro}
1792 %
1793 % \begin{macro}{\copyrighttextCCBYSA}
1794 % The Creative Commons Attribution-ShareAlike License.
1795 % \changes{0.4}{2010/02/23}{W.~Trevor King renamed from
1796 % $\backslash$copyrighttextCC, and made specific to Creative Commons
1797 % Attribution-ShareAlike Version 3.0.}
1798 %    \begin{macrocode}
1799 \newcommand\copyrighttextCCBYSA{
1800   \begin{quote}
1801     This work is licensed under the terms of the Creative Commons
1802     Attribution-ShareAlike license Version 3.0.  The license is
1803     available at \\
1804     \url{http://creativecommons.org/licenses/by-sa/3.0/}.
1805   \end{quote}
1806 }
1807 %    \end{macrocode}
1808 % \end{macro}
1809 %
1810 %
1811 % \subsubsection{Mark commands}
1812 %
1813 % Default initializations of |\*mark| commands.  These commands
1814 % are used in the definition of the page styles.
1815 %
1816 % \begin{macro}{\chaptermark}
1817 % Setup colon rather than period separated chapter marks.
1818 % (\file{classes.dtx}, L2053)
1819 %    \begin{macrocode}
1820 \renewcommand\chaptermark[1]{%
1821   \markboth {%
1822     \ifnum \c@secnumdepth >\m@ne
1823       \if@mainmatter
1824         \@chapapp\ \thechapter: \ %
1825       \fi
1826     \fi
1827     #1}{}}
1828 %    \end{macrocode}
1829 % \end{macro}
1830 %
1831 % \begin{macro}{\schaptermark}
1832 % Setup unnumbered chapter marks for \pkg{fancyhdr}.
1833 %    \begin{macrocode}
1834 \newcommand\schaptermark[1]{\markboth{#1}{}}
1835 %    \end{macrocode}
1836 % \end{macro}
1837 %
1838 % \begin{macro}{\sectionmark}
1839 % Setup space rather than period separated section marks.
1840 % (\file{classes.dtx}, L2054)
1841 %    \begin{macrocode}
1842 \renewcommand{\sectionmark}[1]{%
1843   \markright {%
1844     \ifnum \c@secnumdepth >\z@
1845       \thesection \ %
1846     \fi
1847     #1}}
1848 %    \end{macrocode}
1849 % \end{macro}
1850 %
1851 %
1852 % \subsubsection{Front Matter, Main Matter, and Back Matter}
1853 %
1854 % A book contains these three (logical) sections. The switch
1855 % |\@mainmatter| is true if and only if we are processing main
1856 % matter\footnote{%
1857 %   \href{http://en.wikipedia.org/wiki/Book_design}{Wikipedia}
1858 %   suggests \emph{body matter} for the main content, but
1859 %   \href{http://mirror.ctan.org/macros/latex/base/classes.dtx}{\LaTeX's
1860 %   \cls{book}} uses \emph{Main Matter}.  We're a \LaTeX\ class, so
1861 %   we'll stick with ``main matter'' for consistency.
1862 % }.  When this switch is false, the
1863 % |\chapter| command does not print chapter numbers.
1864 %
1865 % \begin{macro}{\mainmatter}
1866 % This command clears the page (in final mode), starts arabic page
1867 % numbering and turns on chapter numbering.  Since this restarts the
1868 % page numbering from 1, it should also ensure that a recto page is
1869 % used.
1870 %
1871 % We replace \cls{book}'s |\clear*page| calls with |\DUT@clearpage| calls.
1872 % (\file{classes.dtx}, L2211)
1873 %    \begin{macrocode}
1874 \renewcommand\mainmatter{%
1875   \DUT@cleardoublepage
1876   \@mainmattertrue
1877   \pagenumbering{arabic}}
1878 %    \end{macrocode}
1879 % \end{macro}
1880 %
1881 %
1882 % \subsubsection{Parts}
1883 %
1884 % \begin{macro}{\part}
1885 % The command to start a new part of our document.
1886 %
1887 % We start a new (righthand) page and use the \pstyle{plain}
1888 % pagestyle, replacing \cls{book}'s |\clear*page| calls with
1889 % |\DUT@clearpage| calls and dropping twopage code.
1890 % (\file{classes.dtx}, L2249)
1891 %    \begin{macrocode}
1892 \renewcommand\part{%
1893   \if@openright
1894     \DUT@cleardoublepage
1895   \else
1896     \DUT@clearpage
1897   \fi
1898   \thispagestyle{plain}%
1899   \@tempswafalse
1900 %    \end{macrocode}
1901 % Add some stretchy space for vertical centering if we're in final mode.
1902 %    \begin{macrocode}
1903   \if@final \null\vfil \fi
1904 %    \end{macrocode}
1905 % Here we use |\secdef| to indicate which commands to use to make
1906 % the actual heading.
1907 %    \begin{macrocode}
1908   \secdef\@part\@spart}
1909 %    \end{macrocode}
1910 % \end{macro}
1911 %
1912 % \begin{macro}{\@part}
1913 % This macro does the actual formatting of the title of the part.  We
1914 % replace \cls{book}'s |\Huge| with |\large|, and make use of
1915 % |\numberline| for consistent spacing.
1916 %
1917 % When \Lcount{secnumdepth} is larger than $-2$, we have a numbered
1918 % part, otherwise it is unnumbered.
1919 % (\file{classes.dtx}, L2310)
1920 %    \begin{macrocode}
1921 \def\@part[#1]#2{%
1922     \ifnum \c@secnumdepth >-2\relax
1923       \refstepcounter{part}%
1924       \addcontentsline{toc}{part}%
1925         {\protect\numberline{\thepart}#1}%
1926     \else
1927       \addcontentsline{toc}{part}{#1}%
1928     \fi
1929 %    \end{macrocode}
1930 % We empty the mark registers and center the title on the page.
1931 % Also we prevent breaking between lines and reset the font.
1932 %    \begin{macrocode}
1933     \markboth{}{}%
1934     {\centering
1935      \interlinepenalty \@M
1936      \normalfont
1937 %    \end{macrocode}
1938 % When this is a numbered part we have to print the number.
1939 %    \begin{macrocode}
1940      \ifnum \c@secnumdepth >-2\relax
1941        \large\bfseries \partname\nobreakspace\thepart
1942        \par
1943 %    \end{macrocode}
1944 % We leave some space before we print the title and leave the
1945 % finishing up to |\@endpart|.
1946 %    \begin{macrocode}
1947        \vskip 20\p@
1948      \fi
1949      \large \bfseries #2\par}%
1950     \@endpart}
1951 %    \end{macrocode}
1952 % \end{macro}
1953 %
1954 % \begin{macro}{\@spart}
1955 % This macro does the actual formatting of the title of the part
1956 % when the star form of the user command was used. In this case we
1957 % \emph{never} print a number. Otherwise the formatting is the
1958 % same.
1959 % (\file{classes.dtx}, L2402)
1960 %    \begin{macrocode}
1961 \def\@spart#1{%
1962     {\centering
1963      \interlinepenalty \@M
1964      \normalfont
1965      \large \bfseries #1\par}%
1966     \@endpart}
1967 %    \end{macrocode}
1968 % \end{macro}
1969 %
1970 % \begin{macro}{\@endpart}
1971 % This macro finishes the part page, for both |\@part| and |\@spart|.
1972 % We drop \cls{book}'s twoside handling.
1973 % If |\if@final| is true, we fill the current page.
1974 % (\file{classes.dtx}, L2435)
1975 %    \begin{macrocode}
1976 \def\@endpart{
1977   \if@final \vfil\newpage \fi
1978 %    \end{macrocode}
1979 % Then, when we are in twosided mode and the chapters are supposed to
1980 % be on the right hand sides, we produce a completely blank page.  We
1981 % don't need to check |\if@final| here, because \Lopt{draftspace} set
1982 % |\@openrighttrue|.
1983 %    \begin{macrocode}
1984   \if@twoside
1985     \if@openright
1986       \null
1987       \thispagestyle{empty}%
1988       \newpage
1989     \fi
1990   \fi}
1991 %    \end{macrocode}
1992 % \end{macro}
1993 %
1994 %
1995 % \subsubsection{Chapters}
1996 % \label{sec:implement-chapters}
1997 %
1998 % \begin{macro}{\chapter}
1999 % \cls{book} always starts a chapter on a new page, but we don't want
2000 % to do that if we're in draft mode.
2001 % (\file{classes.dtx}, L2472).
2002 %    \begin{macrocode}
2003 \renewcommand\chapter{%
2004   \if@openright\DUT@cleardoublepage\else\DUT@clearpage\fi
2005   \thispagestyle{plain}%
2006 %    \end{macrocode}
2007 % Then we prevent floats from appearing at the top of this page
2008 % because it looks weird to see a floating object above a chapter
2009 % title.
2010 %    \begin{macrocode}
2011   \global\@topnum\z@
2012 %    \end{macrocode}
2013 % Then we suppress the indentation of the first paragraph by
2014 % setting the switch |\@afterindent| to false. We use |\secdef|
2015 % to specify the macros to use for actually setting the chapter
2016 % title.
2017 %    \begin{macrocode}
2018   \@afterindentfalse
2019   \secdef\@chapter\@schapter}
2020 %    \end{macrocode}
2021 % \end{macro}
2022 %
2023 % \begin{macro}{\listed@schapter}
2024 % |\chapter| declares numbered chapters, which are listed in the table
2025 % of contents.
2026 % |\chapter*| declares unnumbered chapters, which are \emph{not}
2027 % listed in the TOC.
2028 % |\listed@schapter| declares an unnumbered chapter that \emph{is}
2029 % listed in the TOC.
2030 %    \begin{macrocode}
2031 \newcommand\listed@schapter[1]{%
2032   \if@openright\DUT@cleardoublepage\else\DUT@clearpage\fi
2033   \thispagestyle{plain}%
2034   \global\@topnum\z@
2035   \phantomsection
2036   \addcontentsline{toc}{chapter}{#1}
2037   \@afterindentfalse
2038   \@schapter{#1}}
2039 %    \end{macrocode}
2040 % \end{macro}
2041 %
2042 % \begin{macro}{\@chapter}
2043 % This macro is called when we have a numbered chapter. When
2044 % \Lcount{secnumdepth} is larger than $-1$ and |\@mainmatter| is true,
2045 % we display the chapter number.
2046 % We drop \cls{book}'s \Lopt{twocolumn} code. 
2047 % (\file{classes.dtx}, L2496).
2048 %    \begin{macrocode}
2049 \def\@chapter[#1]#2{
2050 %    \end{macrocode}
2051 % Inform the user that a new chapter is about to be typeset by writing
2052 % a message to the terminal.
2053 % \changes{0.9}{2010/05/21}{W.~Trevor King disabled the label macro
2054 % for typeout.}
2055 % Some users place |\label| in their chapter argument:
2056 % \begin{example}
2057 %   \chapter{Bla bla\label{x}}
2058 % \end{example}
2059 % rather than after (as recommended by
2060 % \href{http://en.wikibooks.org/wiki/LaTeX/Labels_and_Cross-referencing#Sections}%
2061 %   {the \LaTeX\ Wikibook} and
2062 % \href{http://www.ctan.org/tex-archive/info/lshort/english/lshort.pdf}%
2063 %   {The Not So Short Introduction to \LaTeXe\ (\S 2.8, p36)}):
2064 % \begin{example}
2065 %   \chapter{Bla bla}
2066 %   \label{x}
2067 % \end{example}
2068 % The embedded |\label| chokes |\typeout| so we temporarily redefine
2069 % |\label| to just gobble its contents.  |\DUT@label| stores the
2070 % original definition.
2071 %    \begin{macrocode}
2072   \let\DUT@label=\label%
2073   \renewcommand{\label}[1]{}%
2074   \typeout{\@chapapp\space\thechapter. #1}%
2075 %    \end{macrocode}
2076 % Restore |\label| to its previous glory.
2077 %    \begin{macrocode}
2078   \let\label=\DUT@label%
2079 %    \end{macrocode}
2080 % Now we can get on with the real work.
2081 %    \begin{macrocode}
2082   \ifnum \c@secnumdepth >\m@ne
2083     \if@mainmatter
2084       \refstepcounter{chapter}%
2085       \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
2086     \else
2087       \addcontentsline{toc}{chapter}{#1}%
2088     \fi
2089   \else
2090     \addcontentsline{toc}{chapter}{#1}%
2091   \fi
2092 %    \end{macrocode}
2093 % After having written an entry to the table of contents we store
2094 % the (alternative) title of this chapter with |\chaptermark|.
2095 %    \begin{macrocode}
2096   \chaptermark{#1}%
2097 %    \end{macrocode}
2098 % For nicer lists of figures and tables, we could add some white space
2099 % to separate the chapters.  However, nice lists $\neq$~Manual
2100 % specifications.
2101 %    \begin{macrocode}
2102 %  \addtocontents{lof}{\protect\addvspace{10\p@}}%
2103 %  \addtocontents{lot}{\protect\addvspace{10\p@}}%
2104 %    \end{macrocode}
2105 % Then we call upon |\@makechapterhead| to format the actual chapter
2106 % title.  |\@afterheading| which takes care of suppressing the
2107 % indentation.
2108 %    \begin{macrocode}
2109   \@makechapterhead{#2}%
2110   \@afterheading}
2111 %    \end{macrocode}
2112 % \end{macro}
2113 %
2114 % \begin{macro}{\@makechapterhead}
2115 % The |\@chapter| macro uses |\@makechapterhead|\meta{text} to format
2116 % the heading of the chapter.
2117 % From the Manual \S 3.11 p11.
2118 % \begin{quote}
2119 %   Chapter headings must be bold and centered.
2120 %   The chapter number and title must be on the same line, separated
2121 %   by a colon or period, as shown in the example below:
2122 %   \begin{center}
2123 %     CHAPTER 1: INTRODUCTION
2124 %   \end{center}
2125 %   Headings must not be larger than 12 points.
2126 %   Headings must be single spaced.
2127 % \end{quote}
2128 % \cls{book} sets |\@chapapp| and |\thechapter| (e.g.\ ``Chapter 5'')
2129 % on a line above the chapter title, but that doesn't match the
2130 % Manual's specification.
2131 %
2132 % We begin by leaving some white space. The we open a group in which
2133 % we have a paragraph indent of 0pt, and in which we have the text set
2134 % ragged right. We also reset the font.
2135 % (\file{classes.dtx}, L2540).
2136 %    \begin{macrocode}
2137 \def\@makechapterhead#1{%
2138 %    \end{macro}
2139 % Adding even a \vspace*{0\p@} here seems to increase the vertical
2140 % space above the chapter heading by two lines.  I'm not sure why.
2141 % Workaround is to pass the ``value of blanklines you want minus two''
2142 % to |\blanklines*|.  HACK!
2143 %    \begin{macro}
2144   \blanklines*{-1}% HACK!
2145   {\parindent \z@ \raggedright \normalfont
2146 %    \end{macrocode}
2147 % Ensure single spacing.
2148 %    \begin{macrocode}
2149     \setstretch{\@ssp}%
2150 %    \end{macrocode}
2151 % Prevent a pagebreak from occuring in the middle of or after the title.
2152 %    \begin{macrocode}
2153     \interlinepenalty\@M
2154 %    \end{macrocode}
2155 % Check whether the number of the chapter has to be printed.
2156 %    \begin{macrocode}
2157     \ifnum \c@secnumdepth >\m@ne
2158 %    \end{macrocode}
2159 % Check whether there \emph{is} a number to be printed.
2160 %    \begin{macrocode}
2161       \if@mainmatter
2162 %    \end{macrocode}
2163 % Setup a ``Chapter \#: Title'' heading.
2164 %    \begin{macrocode}
2165         \center \large \bfseries \@chapapp{} \thechapter: #1\par\nobreak
2166       \else
2167 %    \end{macrocode}
2168 % Setup a ``Title'' heading.
2169 %    \begin{macrocode}
2170         \center \large \bfseries #1\par\nobreak
2171       \fi
2172     \else
2173       \center \large \bfseries #1\par\nobreak
2174     \fi
2175 %    \end{macrocode}
2176 % Put a little space before the chapter body.  We use four blank lines
2177 % to comply with the Manual \S 3.13 p12
2178 % \begin{quote}
2179 %   Begin the list of sources four spaces below the heading.
2180 % \end{quote}
2181 %    \begin{macrocode}
2182     \blanklines{4}
2183   }
2184 }
2185 %    \end{macrocode}
2186 % \end{macro}
2187 %
2188 % \begin{macro}{\@schapter}
2189 % This macro is called when we have an unnumbered chapter.  We drop
2190 % \file{classes.dtx}'s \Lopt{twocolumn} code and set marks for
2191 % \pkg{fancyhdr}.
2192 % (\file{classes.dtx}, L2582).
2193 %    \begin{macrocode}
2194 \def\@schapter#1{
2195 %    \end{macrocode}
2196 % Inform the user that a new chapter is about to be typeset by writing
2197 % a message to the terminal.
2198 %    \begin{macrocode}
2199   \typeout{\@chapapp\space #1}%
2200   \schaptermark{#1}%
2201   \@makeschapterhead{#1}%
2202   \@afterheading}
2203 %    \end{macrocode}
2204 % \end{macro}
2205 %
2206 % \begin{macro}{\@makeschapterhead}
2207 % The macro above uses |\@makeschapterhead|\meta{text} to format
2208 % the heading of the chapter. It is similar to |\@makechapterhead|
2209 % except that it never has to print a chapter number.
2210 % (\file{classes.dtx}, L2595).
2211 %    \begin{macrocode}
2212 \def\@makeschapterhead#1{%
2213   \blanklines*{-1}% HACK!
2214   {\parindent \z@ \raggedright \normalfont
2215     \setstretch{\@ssp}%
2216     \interlinepenalty\@M
2217     \center \large \bfseries  #1\par\nobreak
2218     \blanklines{4}%
2219   }
2220 }
2221 %    \end{macrocode}
2222 % \end{macro}
2223 %
2224 %
2225 % \subsubsection{Lower level headings}
2226 %
2227 % \begin{macro}{\section}
2228 % Setup section headings in |\large| rather than \cls{book}'s
2229 % |\Large|.
2230 % (\file{classes.dtx}, L2623).
2231 %    \begin{macrocode}
2232 \renewcommand\section{%
2233   \@startsection {section}{1}{\z@}%
2234     {-3.5ex \@plus -1ex \@minus -.2ex}%
2235     {2.3ex \@plus.2ex}%
2236     {\normalfont\large\bfseries}}
2237 %    \end{macrocode}
2238 % \end{macro}
2239 %
2240 %
2241 % \subsubsection{Defining new environments}
2242 %
2243 % We don't override any of \cls{book}'s environments, but this is
2244 % where \file{classes.dtx} defines its environments (L2996), so we'll put
2245 % ours here too.
2246 %
2247 % \begin{environment}{preamble}
2248 %    \begin{macrocode}
2249 \newenvironment{preamble}{%
2250   \cleardoublepage
2251   \@mainmatterfalse
2252   \pagenumbering{roman}
2253 %    \end{macrocode}
2254 % From Manual \S 3.1 p8, ``Title Page''.
2255 %    \begin{macrocode}
2256   \maketitle
2257 %    \end{macrocode}
2258 % From Manual \S 3.2 p9, ``Copyright Page''.
2259 %    \begin{macrocode}
2260   \makecopyright
2261 }{%
2262 %    \end{macrocode}
2263 % From the Manual \S 3.9, p11:
2264 % \begin{quote}
2265 %   Include a blank page (with no page number) before the first page
2266 %   of text.  The blank page is neither numbered nor counted.
2267 % \end{quote}
2268 %    \begin{macrocode}
2269   \blankpage
2270 }
2271 %    \end{macrocode}
2272 % \end{environment}
2273 %
2274 % \begin{environment}{dedications}
2275 % From the Manual \S 3.3 p9
2276 % \begin{itemize}
2277 %   \item The heading |Dedications| must appear at the top of the
2278 %   page.  The heading must be bold, centered, and without
2279 %   punctuation.
2280 %   \item This page is counted and numbered in lowercase Roman numerals.
2281 % \end{itemize}
2282 %    \begin{macrocode}
2283 \newenvironment{dedications}{%
2284   \DUT@clearpage
2285   \ifpdf
2286     \phantomsection
2287     \pdfbookmark[0]{\dedicationsname}{\dedicationsname}
2288   \fi
2289   \chapter*{\dedicationsname}
2290   \setstretch{\@dsp}%
2291 }{%
2292   \setstretch{\@ssp}%
2293 }
2294 %    \end{macrocode}
2295 % \end{environment}
2296 %
2297 % \begin{environment}{acknowledgments}
2298 % From the Manual \S 3.4 p9
2299 % \begin{itemize}
2300 %   \item The heading |Acknowledgments| must appear at the top of the
2301 %   page.  The heading must be bold, centered, and without
2302 %   punctuation.
2303 %   \item This page is counted and numbered in lowercase Roman numerals.
2304 % \end{itemize}
2305 %    \begin{macrocode}
2306 \newenvironment{acknowledgments}{%
2307   \DUT@clearpage
2308   \ifpdf
2309     \phantomsection
2310     \pdfbookmark[0]{\acknowledgmentsname}{\acknowledgmentsname}
2311   \fi
2312   \chapter*{\acknowledgmentsname}
2313   \setstretch{\@dsp}%
2314 }{%
2315   \setstretch{\@ssp}%
2316 }
2317 %    \end{macrocode}
2318 % \end{environment}
2319 %
2320 % \begin{environment}{abstract}
2321 %    \begin{macrocode}
2322 \newenvironment{abstract}{%
2323   \listed@schapter{\abstractname}%
2324 %    \end{macrocode}
2325 % Suck up some blank space to position the rest of the header right
2326 % under the chapter title.
2327 %    \begin{macrocode}
2328   \blanklines{-4}%
2329 %    \end{macrocode}
2330 % From the Manual \S 3.9 p10
2331 % \begin{quote}
2332 %   \begin{itemize}
2333 %     \item The following heading must be centered at the top of the page
2334 %       \begin{center}
2335 %         Abstract \\
2336 %         Full Title of Dissertation or Thesis \\
2337 %         Author's Name as it appears on the Dissertation or Thesis
2338 %       \end{center}
2339 %       In the example on p20, they list the advisor's name after the
2340 %       author, but that is not specified in the text on p10.
2341 %     \item The text begins four lines below this heading.
2342 %   \end{itemize}
2343 % \end{quote}
2344 % On p20
2345 % \begin{quote}
2346 %   \begin{itemize}
2347 %     \item These pages are numbered using lowercase Roman numerals.
2348 %     \item Note that the heading is single spaced, but the abstract
2349 %       is double spaced.
2350 %   \end{itemize}
2351 % \end{quote}
2352 %    \begin{macrocode}
2353     \begin{center}
2354       \setstretch{\@ssp}%
2355       \@title\\
2356       \@author\\
2357       \@advisor\\
2358     \end{center}
2359   \blanklines{4}%
2360   \setstretch{\@dsp}%
2361   \@nobreaktrue
2362   \@afterindentfalse
2363   \@afterheading
2364 }{%
2365   \setstretch{\@ssp}%
2366 }
2367 %    \end{macrocode}
2368 % \end{environment}
2369 %
2370 % \begin{environment}{thesis}
2371 % From the Manual \S 3.10 p11
2372 % \begin{itemize}
2373 %   \item The pages are counted and numbered in Arabic numerals.
2374 % \end{itemize}
2375 %    \begin{macrocode}
2376 \newenvironment{thesis}{%
2377   \mainmatter
2378   \setstretch{\@dsp}%
2379 }{%
2380   \setstretch{\@ssp}%
2381   \DUT@clearpage
2382 %    \end{macrocode}
2383 % \changes{0.8}{2010/05/20}{W.~Trevor King replaced Titlepage with
2384 %   Title Page for consistency with \LaTeX's book class.}
2385 %    \begin{macrocode}
2386   \ifpdf
2387     \phantomsection
2388     \pdfbookmark[-1]{Back Matter}{Back Matter}
2389   \fi
2390 }
2391 %    \end{macrocode}
2392 % \end{environment}
2393 %
2394 % \paragraph{Vita}
2395 % \label{sec:implement-vita}
2396
2397 % \begin{environment}{vita}
2398 % From the Manual \S 3.15 p13
2399 % \begin{itemize}
2400 %   \item The heading |Vita| must appear at the top of the page.  The
2401 %   heading must be bold, centered, and without punctuation.
2402 %   \item The Vita text should begin four spaces below the heading.
2403 %   \item List the Vita separately in the Table of Contents.
2404 %   \item The page is counted and numbered in Arabic numerals.
2405 % \end{itemize}
2406 %    \begin{macrocode}
2407 \newenvironment{vita}{%
2408   \listed@schapter{\vitaname}
2409   \setstretch{\@dsp}%
2410 }{%
2411   \setstretch{\@ssp}%
2412 }
2413 %    \end{macrocode}
2414 % \end{environment}
2415 %
2416 %
2417 % \subsubsection{Titlepage}
2418 %
2419 % \begin{environment}{titlepage}
2420 % In the normal environments, the titlepage environment does nothing
2421 % but start and end a page, and inhibit page numbers.  We inhibit the
2422 % paging in draft mode, since it seems silly to waste a whole page on
2423 % the title.  We also drop the \Lopt{twocolumn} code.
2424 % (\file{classes.dtx}, L3111)
2425 %    \begin{macrocode}
2426 \renewenvironment{titlepage}{\thispagestyle{empty}%
2427                              \setcounter{page}\z@}%
2428                             {\if@final \newpage \else \blanklinesp{2} \par \fi}
2429 %    \end{macrocode}
2430 % \end{environment}
2431 %
2432 %
2433 % \subsubsection{Appendix}
2434 % \label{sec:implement-appendix}
2435 %
2436 % \begin{macro}{\appendix}
2437 % The |\appendix| command is not really an environment, it is a
2438 % macro that makes some changes in the way things are done.
2439 %
2440 % In the article document class the |\appendix| command must do the
2441 % following:
2442 % \begin{itemize}
2443 %   \item reset the section and subsection counters to zero,
2444 %   \item redefine |\thesection| to produce alphabetic appendix
2445 %         numbers. This redefinition is done globally to ensure that it 
2446 %         survives even if |\appendix| is issued within an environment such
2447 %         as \texttt{multicols}.
2448 % \end{itemize}
2449 %
2450 % In addition to \cls{book}'s (or \pkg{hyperref}'s) activity, we
2451 % fiddle with the \pkg{tocloft} chapter settings add switch to global
2452 % double-spacing.
2453 % (\file{classes.dtx}, L3177)
2454 %    \begin{macrocode}
2455 \let\DUT@appendix\appendix
2456 \renewcommand\appendix{%
2457   \DUT@appendix%
2458 %    \end{macrocode}
2459 % Setup TOC entries like
2460 % \begin{center}
2461 %   Appendix A: Chapter Title
2462 % \end{center}
2463 % We don't need to worry about the |vita| environment (page
2464 % \pageref{sec:implement-vita}), because it is a |\listed@schapter|,
2465 % and therefore lacks a |\numberline| section in its \file{*.toc}
2466 % entry.
2467 %
2468 % We increase |numwidth| to 6.5em to make room for |Appendix~| before
2469 % the chapter number/letter, and add a colon after it.
2470 %
2471 % The |\protect| calls get the macros into \file{*.toc} unexpanded, so
2472 % they function correctly when \LaTeX\ parses \file{*.toc}.
2473 %    \begin{macrocode}
2474   \addtocontents{toc}{%
2475     \protect\cftsetindents{chapter}{0pt}{6.5em}
2476     \protect\renewcommand{\protect\cftchappresnum}{\protect\appendixname~}
2477     \protect\renewcommand{\protect\cftchapaftersnum}{:}}
2478 %    \end{macrocode}
2479 % We also turn on double spacing by default, since we're no longer
2480 % wrapped in the |thesis| environment.
2481 %    \begin{macrocode}
2482   \setstretch{\@dsp}%
2483 }
2484 %    \end{macrocode}
2485 % \end{macro}
2486 %
2487 %
2488 % \subsubsection{Table of Contents}
2489 % \label{sec:implement-toc}
2490 %
2491 % From Manual \S 3.5 p9, ``Table of Contents'', and the example on p17.
2492 % \begin{quote}
2493 %   \begin{itemize}
2494 %     \item Do not list any sections that precede the
2495 %     |Table of Contents| (e.g.\ |Dedications|, |Acknowledgments|).  Do
2496 %     not list the |Table of Contents| itself.
2497 %     \item These pages are counted and numbered in lowercase Roman numerals.
2498 %   \end{itemize}
2499 % \end{quote}
2500 %
2501 % \begin{macro}{\cfttoctitlefont}
2502 % Take advantange of \pkg{tocloft}'s TOC title code.
2503 % (\file{tocloft.dtx}, L1501)
2504 % \begin{example}
2505 %   \cfttoctitlefont\contentsname}{\cftaftertoctitle}
2506 % \end{example}
2507 % by setting it equal to something ending in |\chapter*|.  That way
2508 % \LaTeX parses the whole thing as
2509 % \begin{example}
2510 %   ...\chapter*\contentsname}{\cftaftertoctitle}
2511 % \end{example}
2512 % which will set up the TOC page correctly.
2513 %    \begin{macrocode}
2514 \renewcommand\cfttoctitlefont{%
2515 %    \end{macrocode}
2516 % Start a new page in \Lopt{final} mode
2517 %    \begin{macrocode}
2518   \DUT@clearpage
2519 %    \end{macrocode}
2520 % Add a bookmark if we're using pdf\LaTeX.
2521 %    \begin{macrocode}
2522   \ifpdf
2523     \phantomsection
2524     \pdfbookmark[0]{\contentsname}{\contentsname}
2525   \fi
2526 %    \end{macrocode}
2527 % |\chapter*| to gobble and format the next token (|\contentsname|).
2528 %    \begin{macrocode}
2529   \chapter*}
2530 %    \end{macrocode}
2531 % \end{macro}
2532 %
2533 % \begin{macro}{\aftertoctitleskip}
2534 % Don't add any extra space after the title (the chapter will take
2535 % care of that).
2536 %    \begin{macrocode}
2537 \setlength\cftaftertoctitleskip{0pt}
2538 %    \end{macrocode}
2539 % \end{macro}
2540 %
2541 % \begin{macro}{\l@cont@sep}
2542 % Define a length for TOC/LOF/LOT spacing.
2543 %    \begin{macrocode}
2544 \newlength\l@cont@sep
2545 \set@lines@length{\l@cont@sep}{\@cont@sep}
2546 %    \end{macrocode}
2547 % \end{macro}
2548 %
2549 % \begin{macro}{\@cont@font}
2550 % Define a font for high level (part, chapter) entries.
2551 %    \begin{macrocode}
2552 \newcommand{\@cont@font}{\normalsize\scshape}
2553 %    \end{macrocode}
2554 % \end{macro}
2555 %
2556 % \begin{macro}{\cftbeforepartskip}
2557 % \begin{macro}{\cftpartfont}
2558 % \begin{macro}{\cftpartleader}
2559 % \begin{macro}{\cftpartdotsep}
2560 % \begin{macro}{\cftpartpagefont}
2561 % Setup parts.  See the \pkg{tocloft} manual for a description of the
2562 % commands.
2563 %    \begin{macrocode}
2564 \setlength\cftbeforepartskip{\l@cont@sep}
2565 \cftsetindents{part}{0pt}{3em}
2566 \if@boldpart   \renewcommand{\cftpartfont}{\bfseries\@cont@font}
2567 \else          \renewcommand{\cftpartfont}{\@cont@font}
2568 \renewcommand{\cftpartleader}{\cftdotfill{\cftpartdotsep}}
2569 \if@dottedpart \renewcommand{\cftpartdotsep}{\cftdotsep}
2570 \else          \renewcommand{\cftpartdotsep}{\cftnodots} \fi
2571 \renewcommand{\cftpartpagefont}{\normalfont}
2572 %    \end{macrocode}
2573 % \end{macro}
2574 % \end{macro}
2575 % \end{macro}
2576 % \end{macro}
2577 % \end{macro}
2578 %
2579 % \begin{macro}{\cftbeforechapskip}
2580 % \begin{macro}{\cftchapaftersnum}
2581 % \begin{macro}{\cftchapfont}
2582 % \begin{macro}{\cftchapleader}
2583 % \begin{macro}{\cftchapdotsep}
2584 % \begin{macro}{\cftchappagefont}
2585 % Setup chapters and appendicies.  Some of these settings are adjusted
2586 % for appendicies in particular by |\appendix|
2587 % (Sec.~\ref{sec:implement-appendix}).
2588 %    \begin{macrocode}
2589 \setlength\cftbeforechapskip{\l@cont@sep}
2590 \cftsetindents{chapter}{0pt}{1.5em}
2591 \renewcommand{\cftchapaftersnum}{.}
2592 \if@boldchapter   \renewcommand{\cftchapfont}{\bfseries\@cont@font}
2593 \else             \renewcommand{\cftchapfont}{\@cont@font} \fi
2594 \renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}}
2595 \if@dottedchapter \renewcommand{\cftchapdotsep}{\cftdotsep}
2596 \else             \renewcommand{\cftchapdotsep}{\cftnodots} \fi
2597 \renewcommand{\cftchappagefont}{\normalfont}
2598 %    \end{macrocode}
2599 % \end{macro}
2600 % \end{macro}
2601 % \end{macro}
2602 % \end{macro}
2603 % \end{macro}
2604 % \end{macro}
2605 %
2606 % \begin{macro}{\cftbeforesecskip}
2607 % \begin{macro}{\cftsecfont}
2608 % \begin{macro}{\cftbeforesubsecskip}
2609 % \begin{macro}{\cftsubsecfont}
2610 % \begin{macro}{\cftbeforesubsubsecskip}
2611 % \begin{macro}{\cftsubsubsecfont}
2612 % Setup sections, subsections, etc.
2613 %    \begin{macrocode}
2614 %\cftsetindents{chap}{0pt}{1.5em}
2615 \setlength\cftbeforesecskip{\l@cont@sep}
2616 \cftsetindents{section}{0pt}{3em}
2617 \renewcommand{\cftsecfont}{\normalsize}
2618 \setlength\cftbeforesubsecskip{\l@cont@sep}
2619 \cftsetindents{subsection}{0pt}{4.5em}
2620 \renewcommand{\cftsubsecfont}{\cftsecfont}
2621 \setlength\cftbeforesubsubsecskip{\l@cont@sep}
2622 \cftsetindents{subsubsection}{0pt}{6em}
2623 \renewcommand{\cftsubsubsecfont}{\cftsecfont}
2624 %    \end{macrocode}
2625 % \end{macro}
2626 % \end{macro}
2627 % \end{macro}
2628 % \end{macro}
2629 % \end{macro}
2630 % \end{macro}
2631 %
2632 % The default indents above are all |0pt|.  If \Lopt{indenttoc} was
2633 % given, override this, restoring the \pkg{tocloft} defaults, see the
2634 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf}{%
2635 %   \pkg{tocloft} manual, Table 1}.
2636 %    \begin{macrocode}
2637 \if@indenttoc
2638   \cftsetindents{chapter}{0pt}{1.5em}
2639   \cftsetindents{section}{1.5em}{2.3em}
2640   \cftsetindents{subsection}{3.8em}{3.2em}
2641   \cftsetindents{subsubsection}{7.0em}{4.1em}
2642 \fi
2643 %    \end{macrocode}
2644 %
2645 %
2646 % \subsubsection{List of figures}
2647 % \label{sec:implement-lof}
2648 %
2649 % From the Manual \S 3.7 p10
2650 % \begin{quote}
2651 %   \begin{itemize}
2652 %     \item The heading |List of Figures| must appear at the top of
2653 %       the first page.
2654 %     \item The heading must be bold, centered, and without
2655 %       punctuation.  List figure captions exactly as they appear
2656 %       below the figures in the text.
2657 %     \item Single space each entry, but double-space between entries.
2658 %     \item Separate figure captions from page numbers with
2659 %       right-justified tabs and dot leaders.
2660 %     \item Do not use periods to separate captions and page numbers.
2661 %     \item These pages are counted and numbered in lowercase Roman
2662 %     numerals.
2663 %   \end{itemize}
2664 % \end{quote}
2665 %
2666 % \begin{macro}{\cftloftitlefont}
2667 % Much like our |\cfttoctitlefont|, but the list of figures gets
2668 % listed in the TOC.
2669 %    \begin{macrocode}
2670 \renewcommand\cftloftitlefont{\listed@schapter}
2671 %    \end{macrocode}
2672 % \end{macro}
2673 %
2674 % \begin{macro}{\afterloftitleskip}
2675 % Don't add any extra space after the title (the chapter will take
2676 % care of that).  Actually we make a one-line correction so the first
2677 % line matches the first line in the TOC.  HACK!
2678 %    \begin{macrocode}
2679 \setlength\cftafterloftitleskip{-12pt}
2680 %    \end{macrocode}
2681 % \end{macro}
2682 %
2683 % \begin{macro}{\cftbeforefigskip}
2684 % \begin{macro}{\cftfigindent}
2685 % \begin{macro}{\cftfigfont}
2686 % Setup figure entries.
2687 %    \begin{macrocode}
2688 \setlength{\cftbeforefigskip}{\l@cont@sep}
2689 \setlength{\cftfigindent}{0pt}
2690 \renewcommand{\cftfigfont}{\normalsize\singlespace}
2691 %    \end{macrocode}
2692 % \end{macro}
2693 % \end{macro}
2694 % \end{macro}
2695 %
2696 %
2697 % \subsubsection{List of tables}
2698 % \label{sec:implement-lot}
2699 %
2700 % From the Manual \S 3.6 p10
2701 % \begin{quote}
2702 %   \begin{itemize}
2703 %     \item The heading |List of Tables| must appear at the top of the
2704 %       first page.
2705 %     \item The heading must be bold, centered, and without
2706 %       punctuation.
2707 %     \item List table captions exactly as they appear above the
2708 %       tables in the text.
2709 %     \item Single space each entry, but double-space between entries.
2710 %     \item Separate table captions from page numbers with
2711 %       right-justified tabs and dot leaders.
2712 %     \item Do not use periods to separate captions and page numbers.
2713 %       These pages are counted and numbered in lowercase Roman
2714 %       numerals.
2715 %   \end{itemize}
2716 % \end{quote}
2717 %
2718 % \begin{macro}{\cftlottitlefont}
2719 % Much like our |\cfttoctitlefont|, but the list of tables gets
2720 % listed in the TOC.
2721 %    \begin{macrocode}
2722 \renewcommand\cftlottitlefont{\listed@schapter}
2723 %    \end{macrocode}
2724 % \end{macro}
2725 %
2726 % \begin{macro}{\afterlottitleskip}
2727 % Don't add any extra space after the title (the chapter will take
2728 % care of that).  Actually we make a one-line correction so the first
2729 % line matches the first line in the TOC.  HACK!
2730 %    \begin{macrocode}
2731 \setlength\cftafterlottitleskip{-12pt}
2732 %    \end{macrocode}
2733 % \end{macro}
2734 %
2735 % \begin{macro}{\cftbeforetabskip}
2736 % \begin{macro}{\cfttabindent}
2737 % \begin{macro}{\cfttabfont}
2738 % Setup table entries.
2739 %    \begin{macrocode}
2740 \setlength{\cfttabindent}{0pt}
2741 \setlength{\cftbeforetabskip}{\l@cont@sep}
2742 \renewcommand{\cfttabfont}{\normalsize\singlespace}
2743 %    \end{macrocode}
2744 % \end{macro}
2745 % \end{macro}
2746 % \end{macro}
2747 %
2748 %
2749 % \subsubsection{Bibliography}
2750 %
2751 % \begin{environment}{thebibliography}
2752 % The |thebibliography| environment is a list environment.  To save the
2753 % use of an extra counter, it should use |enumiv| as the item
2754 % counter. 
2755 % Instead of using |\item|, items in the bibliography are produced by
2756 % the following commands:\\
2757 %   |\bibitem|\marg{name} : Produces a numbered entry cited as
2758 %   \meta{name}.\\
2759 %   |\bibitem|\oarg{label}\marg{name} : Produces an entry labeled by
2760 %   \meta{Label} and cited by \meta{name}.
2761 %
2762 % Override \cls{book}'s version, adding a line to the table of
2763 % contents.  We split out the section-creation code into
2764 % |\bib@heading| for \pkg{natbib} compatibility.
2765 % (\file{classes.dtx}, L4063).
2766 %    \begin{macrocode}
2767 \renewenvironment{thebibliography}[1]
2768      {\bib@heading%
2769       \list{\@biblabel{\@arabic\c@enumiv}}%
2770            {\settowidth\labelwidth{\@biblabel{#1}}%
2771             \leftmargin\labelwidth
2772             \advance\leftmargin\labelsep
2773             \@openbib@code
2774             \usecounter{enumiv}%
2775             \let\p@enumiv\@empty
2776             \renewcommand\theenumiv{\@arabic\c@enumiv}}%
2777 %    \end{macrocode}
2778 % Because it's hard to do line breaks in bibliographies.
2779 %    \begin{macrocode}
2780       \sloppy
2781 %    \end{macrocode}
2782 %    This is setting the normal (non-infinite) value of
2783 %    |\clubpenalty| for the whole of this environment,
2784 %    so we must reset its stored value also.  (Why is there a |%| after
2785 %    the second 4000 below?)
2786 %    \begin{macrocode}
2787       \clubpenalty4000
2788       \@clubpenalty \clubpenalty
2789       \widowpenalty4000%
2790 %    \end{macrocode}
2791 % Cause a `.' (period) not to produce an end-of-sentence space.
2792 %    \begin{macrocode}
2793       \sfcode`\.\@m}
2794 %    \end{macrocode}
2795 % Warn if an empty `thebibliography' environment is found.
2796 %    \begin{macrocode}
2797      {\def\@noitemerr
2798        {\@latex@warning{Empty `thebibliography' environment}}%
2799       \endlist}
2800 %    \end{macrocode}
2801 % \end{environment}
2802 %
2803 % \begin{macro}{\bib@heading}
2804 % \pkg{natbib} messes with |thebibliography|.  We setup |\bib@heading|
2805 % so we will still get our table of contents entry.
2806 %    \begin{macrocode}
2807 \newcommand{\bib@heading}{%
2808   \listed@schapter{\bibname}%
2809 }
2810 %    \end{macrocode}
2811 % \end{macro}
2812 %
2813 %
2814 % \subsubsection{Index}
2815 %
2816 % \begin{environment}{theindex}
2817 % The environment |theindex| can be used for indices. It makes an
2818 % index with two columns, with each entry a separate paragraph. At
2819 % the user level the commands |\item|, |\subitem| and |\subsubitem|
2820 % are used to produce index entries of various levels. When a new
2821 % letter of the alphabet is encountered an amount of |\indexspace|
2822 % white space can be added.
2823 %
2824 % Override \cls{book}'s version, adding a line to the table of
2825 % contents.  We split out the section-creation code into
2826 % |\bib@heading| for \pkg{natbib} compatibility.
2827 % (\file{classes.dtx}, L4107).
2828 %    \begin{macrocode}
2829 \renewenvironment{theindex}
2830                {\if@twocolumn
2831                   \@restonecolfalse
2832                 \else
2833                   \@restonecoltrue
2834                 \fi
2835 %    \end{macrocode}
2836 % Here we add our TOC entry, and setup two-columness by hand
2837 % to avoid the |\clearpage| in \LaTeX's default |\twocolumn|.
2838 %    \begin{macrocode}
2839   \listed@schapter{\indexname}
2840   \global\columnwidth\textwidth
2841   \global\advance\columnwidth-\columnsep
2842   \global\divide\columnwidth\tw@
2843   \global\hsize\columnwidth
2844   \global\linewidth\columnwidth
2845   \global\@twocolumntrue
2846   \global\@firstcolumntrue
2847   \col@number \tw@
2848 %    \end{macrocode}
2849 %    Parameter changes to |\columnseprule| and |\columnsep| have to be
2850 %    done after |\twocolumn| has acted. Otherwise they can affect the
2851 %    last page before the index.
2852 %    \begin{macrocode}
2853                 \parindent\z@
2854                 \parskip\z@ \@plus .3\p@\relax
2855                 \columnseprule \z@
2856                 \columnsep 35\p@
2857                 \let\item\@idxitem}
2858 %    \end{macrocode}
2859 %    When the document continues after the index and it was a one
2860 %    column document we have to switch back to one column after the
2861 %    index.
2862 %    \begin{macrocode}
2863                {\if@restonecol\onecolumn\else\DUT@clearpage\fi}
2864 %    \end{macrocode}
2865 % \end{environment}
2866 %
2867 %
2868 % \subsubsection{Words}
2869 % \label{sec:words}
2870 %
2871 % Set the official names of the various sections encountered.  Some of
2872 % these are not defined in \file{classes.dtx} but are close analogs of
2873 % those that are.
2874 %
2875 % \begin{macro}{\dedicationsname}
2876 % From the Manual \S 3.3 p9, ``The heading |Dedications| must appear at
2877 % the top of the page.''
2878 %    \begin{macrocode}
2879 \newcommand\dedicationsname{Dedications}
2880 %    \end{macrocode}
2881 % \end{macro}
2882 %
2883 % \begin{macro}{\acknowledgmentsname}
2884 % From the Manual \S 3.4 p9, ``The heading |Acknowledgments| must appear
2885 % at the top of the page.''
2886 %    \begin{macrocode}
2887 \newcommand\acknowledgmentsname{Acknowledgments}
2888 %    \end{macrocode}
2889 % \end{macro}
2890 %
2891 % \begin{macro}{\contentsname}
2892 % From the Manual \S 3.5 p9, ``The heading |Table of Contents| must
2893 % appear at the top of the page.''  (\file{classes.dtx}, L4331)
2894 %    \begin{macrocode}
2895 \renewcommand\contentsname{Table of Contents}
2896 %    \end{macrocode}
2897 % \end{macro}
2898 %
2899 % \begin{macro}{\listtablename}
2900 % From the Manual \S 3.6 p10, ``The heading |List of Tables| must appear
2901 % at the top of the page.''  (\file{classes.dtx}, L4333)
2902 %    \begin{macrocode}
2903 \renewcommand\listtablename{List of Tables}
2904 %    \end{macrocode}
2905 % \end{macro}
2906 %
2907 % \begin{macro}{\listfigurename}
2908 % From the Manual \S 3.7 p10, ``The heading |List of Figures| must appear
2909 % at the top of the page.''  (\file{classes.dtx}, L4332)
2910 %    \begin{macrocode}
2911 \renewcommand\listfigurename{List of Figures}
2912 %    \end{macrocode}
2913 % \end{macro}
2914 %
2915 % \begin{macro}{\abstractname}
2916 % From the Manual \S 3.8 p10, ``The following heading must be centered at
2917 % the top of the first page: |Abstract|\ldots.''
2918 % (\file{classes.dtx}, L4367)
2919 %    \begin{macrocode}
2920 \newcommand\abstractname{Abstract}
2921 %    \end{macrocode}
2922 % \end{macro}
2923 %
2924 % \begin{macro}{\bibname}
2925 % From the Manual \S 3.13 p12, ``The heading |Bibliography| (or
2926 % |List of References|) must appear at the top of first page.''
2927 % (\file{classes.dtx}, L4344)
2928 %    \begin{macrocode}
2929 \renewcommand\bibname{Bibliography}
2930 %    \end{macrocode}
2931 % \end{macro}
2932 %
2933 % \begin{macro}{\appendixname}
2934 % From the Manual \S 3.14 p12, ``Number the appendicies consecutively
2935 % either alphabetically or numerically (|Appendix A|, |Appendix B|\ldots
2936 % or |Appendix 1|, |Appendix 2|\ldots).''
2937 % (\file{classes.dtx}, L4366)
2938 %    \begin{macrocode}
2939 \renewcommand\appendixname{Appendix}
2940 %    \end{macrocode}
2941 % \end{macro}
2942 %
2943 % \begin{macro}{\vitaname}
2944 % From the Manual \S 3.15 p13, ``The heading |Vita| must appear at the
2945 % top of the page.''
2946 %    \begin{macrocode}
2947 \newcommand\vitaname{Vita}
2948 %    \end{macrocode}
2949 % \end{macro}
2950 %
2951 %
2952 % \subsection{Remaining details}
2953 %
2954 %
2955 % \subsubsection{Terminal blank page}
2956 %
2957 % Add a terminal blank page (when |\if@final| is true)
2958 % From the Manual \S 3.16 p13
2959 % \begin{quote}
2960 %   Include a blank page (with no page number) at the end of the
2961 %   thesis or dissertation.  The blank page is neither counted nor
2962 %   numbered.
2963 % \end{quote}
2964 %    \begin{macrocode}
2965 \AtEndDocument{\blankpage}
2966 %    \end{macrocode}
2967 %
2968 %
2969 %    \begin{macrocode}
2970 %</class>
2971 %    \end{macrocode}
2972 %
2973 %
2974 % \section{Examples}
2975 %
2976 %
2977 % \subsubsection{Template}
2978 %
2979 %    \begin{macrocode}
2980 %<*template>
2981 % See drexel-thesis.pdf for details.
2982 \documentclass{drexel-thesis}
2983
2984 %% Enter the appropriate information here
2985 \author{}    % Fullname
2986 \title{}     % Title Of Thesis
2987 \defmonth{}  % Name of the month of you defense
2988 \defyear{}   % Year you are defending
2989 \degree{}    % Your target degree, spelled out
2990 \advisor{}   % Advisor's full name, degree
2991 \copyrighttext{} % If not "All Rights Reserved."
2992
2993 %% unsrt style give references in order of citation
2994 \bibliographystyle{unsrt}
2995
2996 \begin{document}
2997 \begin{preamble}
2998
2999 \begin{dedications} % OPTIONAL
3000 %% Type dedications here
3001 \end{dedications}
3002
3003 \begin{acknowledgments} % OPTIONAL
3004 %% Type acknowledgments here
3005 \end{acknowledgments}
3006
3007 \tableofcontents
3008 \listoftables  % If you have tables
3009 \listoffigures % If you have figures
3010
3011 \begin{abstract}
3012 %% Type abstract here
3013 \end{abstract}
3014 \end{preamble}
3015
3016 \begin{thesis}
3017 %% If your thesis does not use \part{}s, you may want to add a
3018 %% part-level PDF bookmark to set the main matter of from the front
3019 %% matter.
3020 %%\pdfbookmark[-1]{Main Matter}{Main Matter}
3021
3022 %% Use include statements to include your main thesis code
3023 %% from seperate files.
3024 %%\include{part1}
3025 %%...
3026 \end{thesis}
3027
3028 \bibliography{references} % Include references.bib BibTeX
3029
3030 \appendix % If you have appendices
3031 %% include files with your appendicies (if any) here
3032 %%\include{appendixA}
3033 %%...
3034
3035 \begin{vita} % Ph.D. only.
3036 %%Vita text.
3037 \end{vita}
3038
3039 \end{document}
3040 %</template>
3041 %    \end{macrocode}
3042 %
3043 %
3044 % \subsection{A better example}
3045 % \label{sec:better-example}
3046 %
3047 % \subsubsection{Main}
3048 %
3049 %    \begin{macrocode}
3050 %<*example|example-draft>
3051 %% See drexel-thesis.pdf for details.
3052 %<example>\documentclass[subfig]{drexel-thesis}
3053 %<example-draft>\documentclass[draft,subfig]{drexel-thesis}
3054
3055 %% Enter the appropriate information here
3056 \author{Johny Henry}
3057 \title{Inadequacies of Steam-Driven Boring Machines}
3058 \defmonth{July}
3059 \defyear{1872}
3060 \degree{Doctor of Philosophy}
3061 \advisor{Collis Potter Huntington, R.R.D.}
3062 \advisor{Advisor 2, Ph.D.}
3063 \advisor{Advisor 3, Ph.D.}
3064 \copyrighttext{\copyrighttextCCBYSA}
3065
3066 \usepackage[super,sort&compress]{natbib} % fancy citation extensions
3067 \bibliographystyle{unsrtnat}
3068
3069 \usepackage{fancyvrb} % nicer verbatim handling
3070 \DefineShortVerb{\|}  % \verb+TEXT+  ->  |TEXT|
3071
3072 %    \end{macrocode}
3073 % Use
3074 % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/blindtext/}%
3075 %   {\pkg{blindtext}}
3076 % for dummy text creation.  \pkg{blindtext} requires
3077 % \href{http://www.ctan.org/tex-archive/macros/latex/required/babel/}%
3078 %   {\pkg{babel}}.
3079 %    \begin{macrocode}
3080 \usepackage[english]{babel} % English blindtext
3081 \usepackage{blindtext} % macros for producing dummy output
3082 %    \end{macrocode}
3083 % \pkg{babel} messes with some of our words (\S \ref{sec:words}), so
3084 % we have to reset them.  See the
3085 % \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=latexwords}{\TeX\ FAQ}
3086 % for details.
3087 %    \begin{macrocode}
3088 \addto\captionsenglish{%
3089   \renewcommand\dedicationsname{Dedications}%
3090   \renewcommand\acknowledgmentsname{Acknowledgments}%
3091   \renewcommand\contentsname{Table of Contents}%
3092   \renewcommand\listtablename{List of Tables}%
3093   \renewcommand\listfigurename{List of Figures}%
3094   \renewcommand\abstractname{Abstract}%
3095   \renewcommand\bibname{Bibliography}%
3096   \renewcommand\appendixname{Appendix}%
3097   \renewcommand\vitaname{Vita}%
3098 }
3099
3100 \begin{document}
3101 \begin{preamble}
3102
3103 \begin{dedications}
3104 We're in \iffinal{final}{draft} mode!
3105
3106 \Blindtext[3]
3107 \end{dedications}
3108
3109 \begin{acknowledgments}
3110 \Blindtext[3]
3111 \end{acknowledgments}
3112
3113 \tableofcontents
3114 \listoftables
3115 \listoffigures
3116
3117 \begin{abstract}
3118 \Blindtext[3]
3119 \end{abstract}
3120 \end{preamble}
3121
3122 \begin{thesis}
3123 \include{example-1}
3124 \end{thesis}
3125
3126 \bibliography{example-ref}
3127
3128 \appendix
3129 \include{example-a}
3130
3131 \begin{vita}
3132 \Blindtext[3]
3133 \end{vita}
3134
3135 \end{document}
3136 %</example|example-draft>
3137 %    \end{macrocode}
3138 %
3139 %
3140 % \subsubsection{Part}
3141 % \label{section:better-example-part}
3142 %
3143 %    \begin{macrocode}
3144 %<*example-part>
3145 \part{A Part Heading}
3146 \chapter{A Chapter Heading}
3147 \section{A Section Heading}
3148 The following sectioning commands are available:
3149 \begin{quote}
3150  part \\
3151  chapter \\
3152  section \\
3153  subsection \\ 
3154  subsubsection \\ 
3155  paragraph \\ 
3156  subparagraph 
3157 \end{quote}
3158
3159 \subsection{natbib}
3160 You can cite your references with |natbib|'s |\citet| and |\citep|
3161 macros.  See
3162 \href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/}
3163 {the natbib manual} for details.
3164
3165 Here we have a text citation \citet{rief97} followed by a
3166 parenthetical citation\citep{rief97}.
3167
3168 \subsubsection{Tables and Figures}
3169 \Blindtext[2]
3170 \begin{table}
3171   \begin{center}
3172   \begin{tabular}{r@{.}l r@{.}l r@{.}l}
3173     \multicolumn{2}{c}{Time (s)} &
3174       \multicolumn{2}{c}{John Henry (m)} &
3175       \multicolumn{2}{c}{Steam drill (m)} \\
3176     0&0 & 0&0 & 0&0 \\
3177     10&0 & 4&3 & 3&75 \\
3178     30&0 & 11&9 & 10&1 \\
3179     \ldots
3180   \end{tabular}
3181   \caption{A table float.} % low caption allowed with floatrow
3182 %% Note the strange |r@{.}l| notation in the |\tabular| column
3183 %% definition.  This allows for numbers aligned at the decimal point
3184 %% (see \href{http://www.stat.unipg.it/tex-man/ltx-68.html}{here}).
3185 %%
3186 %% |\multicolumn{num_cols}{alignment}{contents}| allows the headings
3187 %% to span the pre- and post-decimal columns.
3188   \end{center}
3189 \end{table}
3190 \Blindtext[2]
3191 \begin{figure}
3192   \caption{A figure float. \blindtext} % high caption allowed with floatrow
3193   \begin{center}
3194     \includegraphics[width=0.4\textwidth]{drexel-logo}
3195   \end{center}
3196 \end{figure}
3197 \Blindtext[3]
3198 \begin{figure}
3199   \begin{center}
3200     \subfloat[][]{%
3201       \includegraphics[width=0.2\textwidth]{drexel-logo}%
3202       \label{fig:sub-a}}
3203     \subfloat[][]{%
3204       \includegraphics[width=0.2\textwidth]{drexel-logo}%
3205       \label{fig:sub-b}}
3206     \caption{(a) One subfig float. (b) Another subfig float.%
3207       \label{fig:both}}
3208   \end{center}
3209 \end{figure}
3210 You can reference the subfig floats individually (\ref{fig:sub-a}) or
3211 together (\ref{fig:both}).
3212
3213 \Blindtext[3]
3214
3215 \part{Another Part}
3216 \chapter{Another Chapter}
3217 \Blindtext[5]
3218 \chapter{A Long Title Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla
3219 Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla}
3220 \Blindtext[5]
3221 %</example-part>
3222 %    \end{macrocode}
3223 %
3224 %
3225 % \subsubsection{\BibTeX}
3226 %
3227 % What goes into the \BibTeX\ file |example-ref.bib|?
3228 % For more information, check out this 
3229 % \href{http://cmtw.harvard.edu/Documentation/TeX/Bibtex/Example.html}{basic tutorial}.
3230 % If you want to get deeper, take a look at
3231 % \href{http://www.ctan.org/tex-archive/info/bibtex/tamethebeast/}{Tame the BeaST}.
3232 % Other resources:
3233 % \href{http://www.andy-roberts.net/misc/latex/latextutorial3.html}{how the process works},
3234 %   \href{http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node6.html}{entry types},
3235 %   \href{http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node7.html}{fields},
3236 %   \href{http://en.wikipedia.org/wiki/BibTeX}{entries and fields},
3237 %   \href{http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html}{assorted style examples}, and
3238 %   \href{http://liinwww.ira.uka.de/bibliography/Bib.Format.html}{assorted \BibTeX tools}.
3239 %
3240 % Here is an example \BibTeX\ file to get you started.  We define
3241 % strings for the publishers, journals, and authors to avoid
3242 % duplication, minimize the risk of typos, etc.
3243 %
3244 %    \begin{macrocode}
3245 %<*example-bibtex-refs>
3246 %% Publishers
3247 @String{APS = "American Physical Society"}
3248
3249 %% Journals
3250 @String{SCI = "Science"}
3251
3252 %% Authors
3253 @String{MRief = "Rief, Matthias"}
3254 @String{MGautel = "Gautel, Mathias"}
3255 @String{FOesterhelt = "Oesterhelt, Filipp"}
3256 @String{JFernandez = "Fernandez, Julio M."}
3257 @String{HGaub = "Gaub, Hermann E."}
3258
3259 %% Articles
3260 @Article{rief97,
3261   author = MRief #" and "# MGautel #" and "# FOesterhelt #" and "#
3262            JFernandez #" and "# HGaub,
3263   title = "Reversible Unfolding of Individual Titin Immunoglobulin
3264            Domains by {AFM}",
3265   journal = SCI,
3266   volume =  276,
3267   number =  5315,
3268   pages =   "1109--1112",
3269   year =    1997,
3270   doi =     "10.1126/science.276.5315.1109",
3271   URL =     "http://www.sciencemag.org/cgi/content/abstract/276/5315/1109",
3272   eprint =  "http://www.sciencemag.org/cgi/reprint/276/5315/1109.pdf",
3273   mynote = "Seminal paper for force spectroscopy on Titin. Cited by
3274            Dietz '04 (ref 9) as an example of how unfolding large
3275            proteins is easily interpreted (vs.\ confusing unfolding in
3276            bulk), but Titin is a rather simple example of that, because
3277            of its globular-chain structure.",
3278 }
3279 %% ...
3280 %</example-bibtex-refs>
3281 %    \end{macrocode}
3282 %
3283 %
3284 % \subsubsection{Appendix}
3285 %
3286 %    \begin{macrocode}
3287 %<*example-appendix>
3288 \chapter{Some Appendix Heading}
3289 \Blindtext[5]
3290 \chapter{Another Appendix Heading}
3291 \Blindtext[5]
3292 %</example-appendix>
3293 %    \end{macrocode}
3294 %
3295 %
3296 % \section{Known bugs and issues}
3297 %
3298 %
3299 % \subsection{Hacks}
3300 %
3301 % \begin{itemize}
3302 %   \item |\vspace*{0\p@}| space between page top and chapter
3303 %     headings (|\@makechapterhead| and |\@makeschapterhead|,
3304 %     Sec.~\ref{sec:implement-chapters}).
3305 %   \item Extra space under LOT and LOF titles compared to TOC.
3306 %     (Secs.~\ref{sec:implement-lof} and \ref{sec:implement-lot}).
3307 % \end{itemize}
3308 %
3309 %
3310 % \subsection{Bugs}
3311 %
3312 % \begin{itemize}
3313 %   \item Different space between chapter heading and section heading,
3314 %     vs.\ chapter heading and text.  Compare \emph{A Chapter Heading}
3315 %     and \emph{Another Chapter} in \file{example.pdf}.  This is a
3316 %     problem (although with opposite order) in the \cls{book} class
3317 %     itself.  For example, compile
3318 %     \begin{example}
3319 %\documentclass{book}
3320 %\begin{document}
3321 %\chapter{Chapter with text}
3322 %Bla bla bla.
3323 %\chapter{Chapter with section}
3324 %\section{Section}
3325 %Bla bla bla.
3326 %\end{document}
3327 %     \end{example}
3328 %   \item Footer overlap if chapter/section names are particularly long.
3329 %     See \emph{Section in long-titled chapter} in \file{example.pdf}.
3330 %     Workaround: turn off sections in the footer:
3331 %     \begin{example}
3332 %       \fancyfoot[RE,LO]{\scshape\leftmark}
3333 %       \fancyfoot[LE,RO]{}
3334 %     \end{example}
3335 %     For more header or footer manipulation ideas, see \S \ref{sec:fancyhdr}.
3336 % \end{itemize}
3337 %
3338 %
3339 % \Finale
3340 \endinput