--- /dev/null
+% \def\fileversion{0.2}
+% \def\filedate{2010/01/09}
+% \iffalse meta-comment
+%<class>\def\fileversion{0.2}
+%<class>\def\filedate{2010/01/09}
+%
+% Copyright (C) 2010 W. Trevor King, Daniel J. Cross, T. Tsankov, and
+% R. Rojas.
+% -------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% Based on Scott Pakin's dtxtut/cskeleton.dtx
+% http://www.ctan.org/tex-archive/info/dtxtut/
+%
+% \fi
+%
+% \iffalse meta-comment
+%<*driver>
+\ProvidesFile{drexel-thesis.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}
+%<class>\ProvidesClass{drexel-thesis}
+%<class> [\filedate\ \fileversion\ Drexel Thesis]
+%
+% Code for the .ini driver, see section "2.1 The driver file" of doc.dtx.
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[colorlinks=true]{hyperref}
+%</driver>
+% Include some useful commands from |xkeyval|'s |<preamble>|.
+%<*driver>
+\usepackage{xcolor}
+\usepackage{listings}
+\lstnewenvironment{command}{%
+ \lstset{columns=flexible,frame=single,backgroundcolor=\color{blue!20},%
+ xleftmargin=\fboxsep,xrightmargin=\fboxsep,escapeinside=`',gobble=1}}{}
+\lstnewenvironment{example}{%
+ \lstset{basicstyle=\footnotesize\ttfamily,columns=flexible,frame=single,%
+ backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,%
+ xrightmargin=\fboxsep,gobble=1}}{}
+%</driver>
+% \TeX's arguments aren't optional/mandatory, but they do use brackets
+% and braces.
+%<*driver>
+\newcommand{\bracearg}[1]{\marg{#1}}
+\newcommand{\brackarg}[1]{\oarg{#1}}
+%</driver>
+% Define a quick and dirty version of |xkeyval|'s |\DescribeOptions|.
+%<*driver>
+\newenvironment{option}[1]{\begin{macro}{#1}}
+ {\end{macro}}
+%</driver>
+%<*driver>
+\makeatletter
+\def\DescribeOption#1{\leavevmode\@bsphack
+ \marginpar{\raggedleft\PrintDescribeOption{#1}}%
+ \SpecialOptionIndex{#1}\@esphack\ignorespaces}
+\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ }
+\def\SpecialOptionIndex#1{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (option)\encapchar usage}%
+ \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
+ usage}\@esphack}
+\def\DescribeOptions#1{\leavevmode\@bsphack
+ \marginpar{\raggedleft\strut\emph{options}%
+ \@for\@tempa:=#1\do{%
+ \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa
+ }}\@esphack\ignorespaces}
+\makeatother
+%</driver>
+%<*driver>
+\EnableCrossrefs
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{drexel-thesis.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {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
+% 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
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{0.1}{2006/01/18}{Rewrite by Daniel J.~Cross}
+% \changes{0.2}{2010/01/09}{W.~Trevor King transitioned from thesis.cls
+% to drexel-thesis.dtx and did a good deal of reorganizing.}
+%
+% \MakeShortVerb{\|}
+% \newcommand{\pkg}[1]{\textsf{#1}}
+% \newcommand{\cls}[1]{\textsf{#1}}
+% ^^A\newcommand{\BibTeX}{{\sc Bib}\TeX}
+%
+% \title{The \textsf{drexel-thesis} class\thanks{This document
+% corresponds to \textsf{drexel-thesis}~\fileversion, dated \filedate.}}
+% \author{W.~Trevor King \\\texttt{wking@drexel.edu}
+% \and Daniel J.~Cross \and T.~Tsankov \and R.~Rojas.}
+% \date{\filedate}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% This package defines a \LaTeX\ thesis class for Drexel University
+% conforming to the
+% \href{http://www.library.drexel.edu/files/services_documents/thesismanual.pdf}
+% {Drexel University Thesis Manual version 2009/06/01}.
+%
+% \section{Usage}
+%
+% To write a thesis, you load the Drexel thesis definitions by loading
+% the \pkg{drexel-thesis} class at the beginning of your
+% \LaTeX\ document with the |\documentclass| command. For example,
+% \begin{example}
+% \documentclass{drexel-thesis}
+% \end{example}
+%
+% \subsection{Options}
+%
+% \DescribeOptions{final,draft}
+% The default option (selected if not options are passed) is |final|
+% mode, which has all the proper formatting and spacing for your final
+% product. The other main option is |draft| mode, which reduces all
+% the spacing in the document, so might be helpful when printing out
+% drafts (saves paper).
+%
+% |final| mode corresponds to (with Thesis Manual chapter and verse)\\
+% \begin{tabular}{r p{0.8\textwidth}}
+% |oneside| & 1.5 Library Submission Information, Print
+% Version: ``All copies must be: \ldots Typed/printed on only one
+% side of the page (not double-sided).'' \\
+% |finalspace| & Assorted single, double, and triple spacing
+% directives. \\
+% |dottedtoc| & From the example on p17.
+% \end{tabular}
+%
+% |draft| mode corresponds to \\
+% \begin{tabular}{r p{0.8\textwidth}}
+% |twoside| & Save space. \\
+% |draftspace| & Save space. \\
+% |dottedtoc| & Might as well be consistent with |final|.
+% \end{tabular}
+%
+% \DescribeOption{finalspace}
+% Loosen spacing.
+%
+% \DescribeOption{draftspace}
+% Tighten spacing.
+%
+% \DescribeOptions{dottedtoc,boldtoc,
+% dottedpart,boldpart,
+% dottedchapter,boldchapter}
+% These options change how the relevant TOC lines are printed
+% \LaTeX\ defaults to bold but not dots. The |*toc| options set all
+% of the types. For example, |boldtoc| is equivalent to
+% |boldchapter,boldpart|.
+%
+% \subsubsection{Interesting \cls{book} options}
+%
+% \DescribeOption{oneside}
+% Setup output for one-sided printing.
+%
+% \DescribeOption{twoside}
+% Setup output for two-sided printing.
+%
+% \DescribeOption{leqno}
+% |leqno| places the numbering of formulae on the left hand side
+% instead of the right.
+%
+% \DescribeOption{fleqn}
+% |fleqn| typesets displayed formulae left-aligned instead of
+% centered.
+%
+%
+% \subsection{Macros}
+%
+% \begin{command}
+% `\cs{author}\marg{name}'
+% \end{command}
+% \DescribeMacro{\author}
+% Use this macro to set your full name to \meta{name}, including
+% your middle initial or name. For example
+% \begin{example}
+% \name{Richard P. Feynman}
+% \end{example}
+% See the Manual 3.1 p8.
+%
+% \begin{command}
+% `\cs{title}\marg{title}'
+% \end{command}
+% \DescribeMacro{\title}
+% Use this macro to set your thesis title to \meta{name}. For example
+% \begin{example}
+% \title{A New Approach to Quantum Theory}
+% \end{example}
+% See the Manual p16.
+%
+% \begin{command}
+% `\cs{advisor}\marg{name}'
+% \end{command}
+% \DescribeMacro{\advisor}
+% Use this macro to set your advisor's name to \meta{name}. For
+% example
+% \begin{example}
+% \advisor{John A. Wheeler, Ph.D.}
+% \end{example}
+% See the Manual 3.1 p8.
+%
+% \begin{command}
+% `\cs{month}\marg{month}'
+% `\cs{year}\marg{year}'
+% \end{command}
+% \DescribeMacro{\defmonth}
+% \DescribeMacro{\defyear}
+% Use these macros to set the month with \meta{month} (spelled out)
+% and year with \meta{year} (four digits) of your thesis defense. For
+% example
+% \begin{example}
+% \defmonth{June}
+% \defyear{1942}
+% \end{example}
+% See the Manual 3.1 p8.
+% The |def| in |\def*| avoids collisions with the plain \TeX\
+% |\month| and |\year| (see the
+% \href{http://www.tug.org/utilities/plain/cseq.html#month-rp}{month}
+% and
+% \href{http://www.tug.org/utilities/plain/cseq.html#year-rp}{year}
+% entries in the HTML version of David Bausum's \emph{TeX Reference
+% Manual}).
+%
+% \begin{command}
+% `\cs{degree}\marg{degree}'
+% \end{command}
+% \DescribeMacro{\degree}
+% Set your target degree with \meta{degree}. From the Manual 3.1 p8.
+% \begin{quote}
+% Write out the name of the degree for which you are a candidate.
+% All Ph.D.\ candidates must use |Doctor of Philosophy|. All
+% Master's degree candidates should use the precise degree name
+% (e.g., |Master of Science in Mechanical Engineering|).
+% \end{quote}
+% So, for a Ph.D candidate,
+% \begin{example}
+% \degree{Doctor of Philosophy}
+% \end{example}
+%
+% \begin{command}
+% `\cs{tableofcontents}'
+% \end{command}
+% \DescribeMacro{\tableofcontents}
+% Write the table of contents (Manual 3.5 p9). You can control the
+% verbosity by setting |\tocdepth| according to the following table
+% (\href{http://www.image.ufl.edu/help/latex/intext.shtml}{source}). \\
+% \begin{tabular}{l l l}
+% Depth in document & Section Command & Depth for |\secnumdepth| Command \\
+% -1 & |\part| & 1 \\
+% 0 & |\chapter| & 2 \\
+% 1 & |\section| & 3 \\
+% 2 & |\subsection| & 4 \\
+% 3 & |\subsubsection| & 5 \\
+% 4 & |\paragraph| & 6 \\
+% 5 & |\subparagraph| & 7
+% \end{tabular} \\
+% For example, to expose everything down to and including the
+% |\subsection| level, you would add
+% \begin{example}
+% \setcounter{tocdepth}{2}
+% \end{example}
+% to your preamble (the section before |\begin{document}|, not the
+% |preamble| environment discussed below).
+%
+% Note that the Manual 3.5 p9 requires ``List chapter titles and at
+% least the first and second order subdivisions.'', which corresponds
+% to a |\tocdepth| of at least 2.
+%
+% \begin{command}
+% `\cs{blanklines}\marg{num}'
+% \end{command}
+% \DescribeMacro{\blanklines}
+% Insert \meta{num} blank lines. For example
+% \begin{example}
+% \blanklines{2}
+% \end{example}
+% The skipped lines are always \emph{single spaced} lines, regardless
+% of the current line spacing in the environment calling this macro.
+%
+%
+% \subsection{Environments}
+%
+% \DescribeEnv{preamble}
+% Generalize the |\frontmatter| for the thesis, setting up page
+% numbering, including the title page, copyright page etc. The
+% |preamble| environment should contain the following elements
+% (in order, see the Manual p8)
+% \begin{itemize}
+% \item |dedication| environment (optional)
+% \item |acknowledgments| environment (optional)
+% \item |\tableofcontents|
+% \item |\listoftables|
+% \item |\listoffigures|
+% \item |abstract| environment
+% \end{itemize}
+% This will take care of everything from the title page (Manual 3.1),
+% up through the blank page before the text (Manual 3.9).
+%
+% \DescribeEnv{dedications}
+% Set the dedications text.
+% Highlights from the Manual 3.3 p9:
+% \begin{quote}
+% The |Dedications| page is optional.
+% \end{quote}
+%
+% \DescribeEnv{acknowledgments}
+% Set the acknowledgments text.
+% Highlights from the Manual 3.4 p9:
+% \begin{quote}
+% The |Acknowledgments| page is optional, but most theses do
+% include a brief statement of thanks or recognition of any special
+% assistance.
+% \end{quote}
+%
+% \DescribeEnv{abstract}
+% Set the thesis abstract text. In the Thesis Manual, see section 3.8
+% Abstract (p10) for details, p20 for an example.
+%
+% Highlights from the Manual:
+% \begin{quote}
+% The abstract is a summary that allows readers to determine the
+% value of reading the full thesis. It should include a statement
+% of the problem, an outline of procedures or methods, and a summary
+% of results and conclusions.
+% \end{quote}
+% \begin{itemize}
+% \item Word limits: 600 for a Master's thesis, 350 for a Ph.D.\ thesis.
+% \end{itemize}
+%
+% \DescribeEnv{thesis}
+% Set the thesis text. In the Thesis Manual, see section 3.10 Thesis
+% (p11) for details.
+%
+% Highlights from the Manual:
+% \begin{quote}
+% Divide the text into its major parts/chapters/subsections. No
+% fixed arrangement is necessary. The major parts may contain such
+% subjects as introduction, general argument, description of
+% experimental procedures, research methods, discussion, summary,
+% conclusions, recommendations, and other pertinent topics that are
+% necessary for a complete understanding on the part of a
+% sophisticated or professional reader.
+% \end{quote}
+%
+% \DescribeEnv{vita}
+% Set the thesis vita text (Ph.D.\ only). See the Manual 3.15 p12,
+% ``Vita'', for details.
+%
+% Highlights from the Manual:
+% \begin{quote}
+% The Vita is a biography of the student written in the third person
+% in either essay or outline form. It should include the full name,
+% place and date of birth (optional), country of citizenship
+% (optional), institutions attended, degrees and honors received,
+% titles of publications, teaching and professional experience, and
+% other pertinent data. The Vita must be one page or less.
+% \end{quote}
+%
+%
+% \subsection{Hints}
+%
+%
+% \subsubsection{Package installation}
+% \label{sec:dependencies}
+%
+% All the packages this class depends on must be installed somewhere
+% in your texmf tree (they probably already are). If not, you will
+% recieve warning messages on compilation such as
+% \begin{example}
+% ! LaTeX Error: File `missing-package.sty' not found.
+% \end{example}
+% You should then install the missing package(s) using your operating
+% systems package manager, or grab the missing package from
+% \href{http://www.ctan.org/}{CTAN}, and install them following TODO.
+%
+%
+% \subsubsection{Tables and Figures}
+%
+% From the Manual 2.3 p6, ``Tables and Figures'',
+% \begin{quote}
+% Place figure captions below figures.
+% Place table captions above tables.
+% \end{quote}
+% so make sure the |\caption| command is in the appropriate location.
+% For example
+% \begin{example}
+% \begin{table}
+% \caption{Some caption text}
+% \begin{tabular}{...}
+% ...
+% \end{tabular}
+% \end{table}
+% \end{example}
+% or
+% \begin{example}
+% \begin{float}
+% \includegraphics{...}
+% \caption{Some caption text}
+% \end{float}
+% \end{example}
+% Note that you'll want to use the
+% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}}
+% package to define the |\includegraphics| macro. For more useful
+% float information, see the
+% \href{http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions}{\LaTeX wikibook page}.
+%
+%
+% \subsubsection{Citations}
+%
+% I highly recommend using \BibTeX\ and
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/}{\pkg{natbib}}.
+% See Section \ref{sec:natbib-example} for a simple example.
+%
+% Suggested options:\\
+% \begin{tabular}{r p{0.8\textwidth}}
+% |super| & selects citations in superscript mode. \\
+% |sort&compress| & automatically sorts and compresses compound
+% citations (|\pcite{a,b,...}|).
+% \end{tabular}
+%
+%
+% \subsubsection{References}
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/cleveref/}{\pkg{cleveref}}.
+% Is a wonderful tool for easy, consistent crosslinking. The manual is also very good.
+%
+%
+% \subsubsection{Hyperlinks}
+%
+% \cls{drexel-thesis} loads
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/}{\pkg{hyperref}}.
+% with the options:\\
+% \begin{tabular}{r p{0.8\textwidth}}
+% |colorlinks| & color the link letters instead of drawing colored boxes. \\
+% \end{tabular}
+%
+% If running with a pdftex-based driver, |\author|, |\title|, and
+% |\degree| automatically set |pdfauthor|, |pdftitle|, and
+% |pdfsubject| respectively. You can use the |\hypersetup| macro to
+% set options overriding these defaults.
+%
+%
+% \StopEventually{\pagebreak\PrintChanges}
+%
+%
+% \section{Implementation}
+% \iffalse meta-comment
+%<*class>
+% \fi
+%
+% For simplicity, we'll derive everything from the standard \cls{book}
+% class.
+%
+%
+% \subsection{Option Processing}
+%
+% Include
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xkeyval/}{\pkg{xkeyval}}
+% for easier option parsing. If the package is not installed on your system,
+% see Section \ref{sec:dependencies} for installation instructions.
+% \begin{macrocode}
+\RequirePackage{xkeyval}
+% \end{macrocode}
+%
+% Define some booleans to store option states
+% \begin{macrocode}
+\newif\if@mainmatter \@mainmattertrue
+\newif\if@dottedchapter
+\newif\if@boldchapter
+\newif\if@boldpart
+\newif\if@dottedpart
+\newif\if@appendix
+\newif\if@final \@finalfalse
+% \end{macrocode}
+%
+% Define some strings to store option arguments
+% \begin{macrocode}
+\newcommand{\@advisor}{ }
+\newcommand{\def@month}{ }
+\newcommand{\def@year}{ }
+\newcommand{\@degree}{ }
+% \end{macrocode}
+% \begin{option}{finalspace}
+% \begin{macrocode}
+\DeclareOptionX{finalspace}{
+ \setlength\overfullrule{0pt}
+ \def\@csp{2} % content page spacing
+ \def\@ssp{1} % single space
+ \def\@dsp{2} % double space
+ \def\@tsp{3} % triple space
+ \@finaltrue
+}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{draftspace}
+% \begin{macrocode}
+\DeclareOptionX{draftspace}{
+ \setlength\overfullrule{5pt}
+ \def\@csp{1} % content page spacing
+ \def\@ssp{1} % single space
+ \def\@dsp{1} % double space
+ \def\@tsp{2} % triple space
+ \@finalfalse
+}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{dottedpart}
+% \begin{macrocode}
+\DeclareOptionX{dottedpart}{\@dottedparttrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{dottedchapter}
+% \begin{macrocode}
+\DeclareOptionX{dottedchapter}{\@dottedchaptertrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{boldpart}
+% \begin{macrocode}
+\DeclareOptionX{boldpart}{\@boldparttrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{boldchapter}
+% \begin{macrocode}
+\DeclareOptionX{boldchapter}{\@boldchaptertrue}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{dottedtoc}
+% \begin{macrocode}
+\DeclareOptionX{dottedtoc}{
+ \setkeys{drexel-thesis.cls}{dottedpart}
+ \setkeys{drexel-thesis.cls}{dottedchapter}
+}
+% \end{macrocode}
+% \end{option}
+% \begin{option}{boldtoc}
+% \begin{macrocode}
+\DeclareOptionX{boldtoc}{
+ \setkeys{drexel-thesis.cls}{boldpart}
+ \setkeys{drexel-thesis.cls}{boldchapter}
+}
+% \end{macrocode}
+% \end{option}
+%
+% Define the book options that |final| and |draft| need to access.
+% \begin{option}{oneside}
+% \begin{macrocode}
+\DeclareOptionX{oneside}{\PassOptionsToClass{oneside}{book}}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{twoside}
+% \begin{macrocode}
+\DeclareOptionX{twoside}{\PassOptionsToClass{twoside}{book}}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{final}
+% \begin{macrocode}
+\DeclareOptionX{final}{
+ \setkeys{drexel-thesis.cls}{oneside}
+ \setkeys{drexel-thesis.cls}{finalspace}
+ \setkeys{drexel-thesis.cls}{dottedtoc}
+}
+% \end{macrocode}
+% \end{option}
+%
+% \begin{option}{draft}
+% \begin{macrocode}
+\DeclareOptionX{draft}{
+ \setkeys{drexel-thesis.cls}{twoside}
+ \setkeys{drexel-thesis.cls}{draftspace}
+ \setkeys{drexel-thesis.cls}{dottedtoc}
+}
+% \end{macrocode}
+% \end{option}
+%
+% Use the default \cls{book} implementation for any remaining options
+% including |oneside|, |twoside|, |leqno|, |fleqn|,
+% \ldots.
+% \begin{macrocode}
+\DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{book}}
+% \end{macrocode}
+%
+% Execute the default options
+% \begin{macrocode}
+\ExecuteOptionsX{final}
+% \end{macrocode}
+%
+% Process options and load the book class
+% \begin{macrocode}
+\ProcessOptionsX\relax
+\LoadClass{book}
+% \end{macrocode}
+%
+%
+% \subsection{Internal package includes}
+%
+% Include some other packages we'll need. If the package is not
+% installed on your system, see Section \ref{sec:dependencies} for
+% installation instructions.
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/setspace/}{\pkg{setspace}}
+% for double spacing.
+% \begin{macrocode}
+\RequirePackage{setspace}
+% \end{macrocode}
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}}
+
+% \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\pkg{calc}}
+% for |\blanklines| macro.
+% \begin{macrocode}
+\RequirePackage{calc}
+% \end{macrocode}
+%
+% Setup page margins with the
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/geometry/}{\pkg{geometry}}
+% package. From the Manual p5:
+% \begin{itemize}
+% \item The left margin must be at least 1 1/2'' (1.5 inches)
+% throughout the document.
+% \item All other margins (top, bottom, and right) must be at least 1''.
+% \end{itemize}
+% And from the Manual 1.5 p4, Print Version:
+% ``The paper size must be 8 1/2'' x 11''{}''.
+% \begin{macrocode}
+\RequirePackage[letterpaper,margin=1in,bindingoffset=0.5in]{geometry}
+% [2008/12/21 v4.2 Page Geometry]
+% \end{macrocode}
+% Note that we include the \pkg{geometry} package after loading \cls{book} to
+% override the margin manipulation that takes place in \cls{book}.
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fancyhdr/}{\pkg{fancyhdr}}
+% for correct page numbering and fancy headers.
+% \begin{macrocode}
+\RequirePackage{fancyhdr}
+% \end{macrocode}
+% Setup the standard |fancy| format. |\leftmark| is the higher level
+% mark, see |\chaptermark| below. |\rightmark| is the lower level
+% mark, see |\sectionmark| below.
+% \begin{macrocode}
+\pagestyle{fancy}
+\fancyhf{}
+\fancyhead[LE,RO]{\slshape\rightmark}
+\fancyhead[LO,RE]{\slshape\leftmark}
+\fancyfoot[LE,RO]{\thepage}
+% \end{macrocode}
+% Override the |plain| format (for chapter pages, etc.).
+% \begin{macrocode}
+\fancypagestyle{plain}{
+ \fancyhf{}
+ \renewcommand{\headrulewidth}{0pt}
+ \fancyfoot[LE,RO]{\thepage}
+}
+% \end{macrocode}
+%
+% Setup colon rather than period separated chapter marks, overriding
+% \cls{book}'s |\chaptermark|.
+% \begin{macrocode}
+\renewcommand\chaptermark[1]{%
+ \markboth {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \@chapapp\ \thechapter: \ %
+ \fi
+ \fi
+ #1}}{}}
+% \begin{macrocode}
+%
+% Setup space rather than period separated section marks, overriding
+% \cls{book}'s |\sectionmark|.
+% \begin{macrocode}
+\renewcommand{\sectionmark}[1]{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection \ %
+ \fi
+ #1}}}
+% \end{macrocode}
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{ifpdf}}
+% for detecting PDF drivers. We use it to configure \pkg{hyperref} below.
+% \begin{macrocode}
+\RequirePackage{ifpdf}
+% \end{macrocode}
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/}{\pkg{hyperref}}
+% for hyperlinks. Not strictly necessary, but I can't imagine a
+% thesis without it.
+% \begin{macrocode}
+\RequirePackage{hyperref}
+% \end{macrocode}
+% Nobody likes the default colored boxes. Color the text itself.
+% \begin{macrocode}
+\hypersetup{colorlinks}
+% \end{macrocode}
+% If we're writing a PDF, we set the |pdfauthor|, etc.\ arguments in
+% |\author|, etc.\ to avoid using |\AtBeginDocument| or some such.
+%
+%
+% \subsection{Macros}
+%
+% \begin{macro}{\author}
+% Override |latex.ltx|'s |\author| to set \pkg{hyperref}'s |pdfauthor|.
+% \begin{macrocode}
+\renewcommand{\author}[1]{
+ \gdef\@author{#1}
+ \ifpdf \hypersetup{pdfauthor={\@author}} \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\title}
+% Override |latex.ltx|'s |\title| to set \pkg{hyperref}'s |pdftitle|.
+% \begin{macrocode}
+\renewcommand{\title}[1]{
+ \gdef\@title{#1}
+ \ifpdf \hypersetup{pdftitle={\@title}} \fi
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\advisor}
+% \begin{macrocode}
+\newcommand{\advisor}[1]{\renewcommand{\@advisor}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\defmonth}
+% \begin{macrocode}
+\newcommand{\defmonth}[1]{\renewcommand{\def@month}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\defyear}
+% \begin{macrocode}
+\newcommand{\defyear}[1]{\renewcommand{\def@year}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\degree}
+% \begin{macrocode}
+\newcommand{\degree}[1]{
+ \renewcommand{\@degree}{#1}
+ \ifpdf \hypersetup{pdfsubject={\@degree}} \fi
+}
+% \hypersetup{pdfauthor={\@author}}
+% \hypersetup{pdftitle={\@title}}
+% \hypersetup{pdfstartview=FitH}
+% }
+% \end{macrocode}
+% \end{macro}
+%
+% Set the official names of the various sections encountered
+% \begin{macro}{\dedicationsname}
+% From the Manual 3.3 p9, ``The heading |Dedications| must appear at
+% the top of the page.''
+% \begin{macrocode}
+\newcommand\dedicationsname{Dedications}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\acknowledgmentsname}
+% From the Manual 3.4 p9, ``The heading |Acknowledgments| must appear
+% at the top of the page.''
+% \begin{macrocode}
+\newcommand\acknowledgmentsname{Acknowledgments}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\contentsname}
+% From the Manual 3.5 p9, ``The heading |Table of Contents| must
+% appear at the top of the page.'' Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\contentsname{Table of Contents}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\listtablename}
+% From the Manual 3.6 p10, ``The heading |List of Tables| must appear
+% at the top of the page.''
+% Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\listtablename{List of Tables}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\listfigurename}
+% From the Manual 3.7 p10, ``The heading |List of Figures| must appear
+% at the top of the page.''
+% Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\listfigurename{List of Figures}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\abstractname}
+% From the Manual 3.8 p10, ``The following heading must be centered at
+% the top of the first page: |Abstract|\ldots''
+% \begin{macrocode}
+\newcommand\abstractname{Abstract}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bibname}
+% From the Manual 3.13 p12, ``The heading |Bibliography| (or
+% |List of References|) must appear at the top of first page.''
+% Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\bibname{Bibliography}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\appendixname}
+% From the Manual 3.14 p12, ``Number the appendicies consecutively
+% either alphabetically or numerically (|Appendix A|, |Appendix B|\ldots
+% or |Appendix 1|, |Appendix 2|\ldots).''
+% Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\appendixname{Appendix}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\vitaname}
+% From the Manual 3.15 p13, ``The heading |Vita| must appear at the
+% top of the page.''
+% \begin{macrocode}
+\newcommand\vitaname{Vita}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\blankpage}
+% Insert a blank page without numbering (except in draft mode).
+% \begin{macrocode}
+\newcommand\blankpage{%
+ \if@final
+ \newpage
+ \thispagestyle{empty}
+ \hphantom{0}
+ \newpage
+ \else\fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\blanklines}
+% Insert number of blank lines, protecting against external |spacing|
+% environments. Requires \pkg{calc} for the multiplication.
+% \begin{macrocode}
+\newlength\blanklines@length
+\newcommand{\blanklines}[1]{%
+ \begin{spacing}{1}
+ \setlength{\blanklines@length}{\baselineskip * {#1}}
+ \vspace{\blanklines@length}
+ \end{spacing}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\maketitle}
+% Automate the creation of the title page.
+% From Manual 3.1 p8, ``Title Page'', and the example on p16.
+% \begin{itemize}
+% \item This page is counted but not numbered (it counts as page i,
+% but should not have a page number). TODO: How is this implemented?
+% \end{itemize}
+% Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\maketitle{
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \begin{titlepage}%
+ \ifpdf
+ \pdfbookmark[-1]{Frontmatter}{frontmatter}
+ \pdfbookmark[0]{Title Page}{title}
+ \fi
+ \null\vfil
+ \begin{center}%
+ \begin{spacing}{\@tsp}
+ {\bf \@title \par}%
+ \end{spacing}
+ \begin{spacing}{\@dsp}
+ A Thesis\\
+ Submitted to the Faculty\\
+ of\\
+ Drexel University\\
+ by\\
+ \@author \\
+ in partial fulfillment of the\\
+ requirements for the degree\\
+ of\\
+ \@degree\\
+ \def@month\ \def@year
+ \end{spacing}
+ \end{center}\par
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \global\let\maketitle\relax
+ \global\let\and\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\makecopyright}
+% Automate the creation of the copyright page.
+% From Manual 3.2 p9, ``Copyright Page''.
+% \begin{itemize}
+% \item Include a copyright page with the following information: a
+% copyright notice, full legal name of author, and date of
+% publication on file.
+% \item This page is neither counted nor numbered.
+% \end{itemize}
+% \begin{macrocode}
+\newcommand\makecopyright{%
+ \newpage
+ \ifpdf \pdfbookmark[0]{Copyright Page}{copyright} \fi
+ \null\vfil
+ \begin{center}
+ \copyright \def@year\\
+ \@author. All Rights Reserved.
+ \end{center}
+\vfil\null
+% \end{macrocode}
+% |\thispagestyle{empty}| turns off page numbering for the current
+% page. See
+% \href{http://www.personal.ceu.hu/tex/pagestyl.htm#pgstyle}{here}.
+% \begin{macrocode}
+\thispagestyle{empty}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tableofcontents}
+% Automate the creation of the table of contents.
+% From Manual 3.5 p9, ``Table of Contents'', and the example on p17.
+% \begin{itemize}
+% \item Do not list any sections that precede the
+% |Table of Contents| (e.g.\ |Dedications|, |Acknowledgments|). Do
+% not list the |Table of Contents| itself.
+% \item These pages are counted and numbered in lowercase Roman numerals.
+% \end{itemize}
+% Override \cls{book}'s definition.
+% \begin{macrocode}
+\renewcommand\tableofcontents{%
+ \newpage
+ \ifpdf
+ \phantomsection
+ \pdfbookmark[0]{\contentsname}{tableofcontents}
+ \fi
+ \chapter*{\contentsname}
+ \@mkboth{\MakeUppercase\contentsname}%
+ {\MakeUppercase\contentsname}%
+ \@starttoc{toc}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Environments}
+%
+% \begin{environment}{preamble}
+% \begin{macrocode}
+\newenvironment{preamble}{%
+ \cleardoublepage
+ \@mainmatterfalse
+ \pagenumbering{roman}
+% \end{macrocode}
+% From Manual 3.1 p8, ``Title Page''.
+% \begin{macrocode}
+ \maketitle
+% \end{macrocode}
+% From Manual 3.2 p9, ``Copyright Page''.
+% \begin{macrocode}
+ \makecopyright
+}{%
+% \end{macrocode}
+% From the Manual 3.9, p11:
+% \begin{quote}
+% Include a blank page (with no page number) before the first page
+% of text. The blank page is neither numbered nor counted.
+% \end{quote}
+% \begin{macrocode}
+ \blankpage
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{dedications}
+% From the Manual 3.3 p9
+% \begin{itemize}
+% \item The heading |Dedications| must appear at the top of the
+% page. The heading must be bold, centered, and without
+% punctuation.
+% \item This page is counted and numbered in lowercase Roman numerals.
+% \end{itemize}
+% \begin{macrocode}
+\newenvironment{dedications}{%
+ \newpage
+ \ifpdf
+ \phantomsection
+ \pdfbookmark[0]{\dedicationsname}{dedications}
+ \fi
+ \chapter*{\dedicationsname}
+ \begin{spacing}{\@dsp}
+}{%
+ \end{spacing}
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{acknowledgments}
+% From the Manual 3.4 p9
+% \begin{itemize}
+% \item The heading |Acknowledgments| must appear at the top of the
+% page. The heading must be bold, centered, and without
+% punctuation.
+% \item This page is counted and numbered in lowercase Roman numerals.
+% \end{itemize}
+% \begin{macrocode}
+\newenvironment{acknowledgments}{%
+ \newpage
+ \ifpdf
+ \phantomsection
+ \pdfbookmark[0]{\acknowledgmentsname}{acknowledgments}
+ \fi
+ \chapter*{\acknowledgmentsname}
+ \begin{spacing}{\@dsp}
+}{%
+ \end{spacing}
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{abstract}
+% \begin{macrocode}
+\newenvironment{abstract}{%
+ \newpage
+ \thispagestyle{plain}%
+ \global\@topnum\z@
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\abstractname}
+ \vspace*{50\p@}%
+% \end{macrocode}
+% From the Manual 3.9 p10 ``The following heading must be centered at
+% the top of the page'':
+% \begin{center}
+% Abstract \\
+% Full Title of Dissertation or Thesis \\
+% Author's Name as it appears on the Dissertation or Thesis
+% \end{center}
+% In the example on p20, they list the advisor's name after the
+% author, but that is not specified in the text on p10.
+%
+% On p20, ``These pages are numbered using lowercase Roman numerals.
+% Note that the heading is single spaced, but the abstract is double
+% spaced.''
+% \begin{macrocode}
+ \begin{spacing}{\@ssp}
+ \begin{center}
+ {\large \bfseries \abstractname \par}
+%% \@endparpenalty\@M
+ \@title\\
+ \@author\\
+ \@advisor\\
+ \end{center}
+ \end{spacing}
+ \blanklines{2}
+ \begin{spacing}{\@dsp}
+ \@nobreaktrue
+ \@afterindentfalse
+ \@afterheading
+}{%
+ \end{spacing}\vfill\null
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{thesis}
+% From the Manual 3.10 p11
+% \begin{itemize}
+% \item The pages are counted and numbered in Arabic numerals.
+% \end{itemize}
+% \begin{macrocode}
+\newenvironment{thesis}{%
+ \mainmatter
+ \begin{spacing}{\@dsp}
+}{%
+ \end{spacing}
+ \newpage
+ \ifpdf
+ \phantomsection
+ \pdfbookmark[-1]{Backmatter}{backmatter}
+ \fi
+}
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{vita}
+% From the Manual 3.15 p13
+% \begin{itemize}
+% \item The heading |Vita| must appear at the top of the page. The
+% heading must be bold, centered, and without punctuation.
+% \item The Vita text should begin four spaces below the heading.
+% \item List the Vita separately in the Table of Contents.
+% \item The page is counted and numbered in Arabic numerals.
+% \end{itemize}
+% \begin{macrocode}
+\newenvironment{vita}{%
+ \newpage
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\vitaname}
+ \chapter*{\vitaname}
+ \blanklines{1}
+ \begin{spacing}{\@dsp}
+}{%
+ \end{spacing}
+}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \subsection{Adjust from the \LaTeX/\cls{book} defaults}
+%
+%
+% |\intextsep| sets the space left on top and bottom of an in-text
+% float (see
+% \href{http://www.eng.cam.ac.uk/help/tpl/textprocessing/squeeze.html}{here}).
+% \begin{macrocode}
+\setlength\intextsep{30pt}
+% \end{macrocode}
+%
+%
+% \subsubsection{Part and chapter headings}
+%
+% Override \cls{book}'s |\makechapterhead|.
+% From the Manual 3.11 p11.
+% \begin{quote}
+% Chapter headings must be bold and centered.
+% The chapter number and title must be on the same line, separated
+% by a colon or period, as shown in the example below:
+% \begin{center}
+% CHAPTER 1: INTRODUCTION
+% \end{center}
+% Headings must not be larger than 12 points.
+% Headings must be single spaced.
+% \end{quote}
+% \begin{macrocode}
+\def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+% \end{macrocode}
+% Replaced |\normalfont| with |\reset@font| (TODO: why?).
+% \begin{macrocode}
+ {\parindent \z@ \raggedright \reset@font
+ \ifnum \c@secnumdepth >\m@ne
+% \end{macrocode}
+% Removed |\if@mainmatter| conditional guarding this indented section
+% (TODO: why?).
+% \begin{macrocode}
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \interlinepenalty\@M
+% \end{macrocode}
+% Ensure single spacing, and ensure the chapter heading will have a
+% centered, |\large|, bold \emph{Chapter \#: Title} or \emph{Appendix
+% \#: Title} format (as opposed to \cls{book}'s unaligned, |\Huge|,
+% bold \emph{Title}).
+% \begin{macrocode}
+ \begin{spacing}{\@ssp}
+ \center \large \bfseries \@chapapp{} \thechapter: #1\par\nobreak
+ \blanklines{2}
+ \end{spacing}
+ }
+}
+% \end{macrocode}
+%
+% Override \cls{book}'s |\@makeschapterhead|. TODO: Why?
+% \begin{macrocode}
+\def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+% \end{macrocode}
+% Replaced |\normalfont| with |\reset@font| (TODO: why?).
+% \begin{macrocode}
+ \reset@font
+ \interlinepenalty\@M
+% \end{macrocode}
+% Ensure single spacing.
+% \begin{macrocode}
+ \begin{spacing}{\@ssp}
+% \end{macrocode}
+% Replaced |\Huge| with |\center \large|
+% \begin{macrocode}
+ \center \large \bfseries #1\par\nobreak
+% \end{macrocode}
+% Replaced |\vskip 40\p@| with |\blanklines{2}|
+% \begin{macrocode}
+ \blanklines{2}
+ \end{spacing}
+ }
+}
+% \end{macrocode}
+%
+% Override \cls{book}'s |\section|, replacing |\Large| with |\large|.
+% \begin{macrocode}
+\renewcommand\section{\@startsection {section}{1}{\z@}%
+ {-3.5ex \@plus -1ex \@minus -.2ex}%
+ {2.3ex \@plus.2ex}%
+ {\normalfont\large\bfseries}}
+% \end{macrocode}
+%
+% Fix |\@ssect| and |\@sect| from |latex.ltx| to give single spaced
+% headings. These macros are defined in |ltsect.dtx|
+% (\href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{\LaTeX\ base}})),
+% but the documentation there is not great.
+% \begin{command}
+% `\cs{@ssect}\bracearg{INDENT}\bracearg{BEFORESKIP}\bracearg{AFTERSKIP}'
+% `~~\bracearg{STYLE}\bracearg{ARG}'
+% `\cs{@sect}\bracearg{NAME}\bracearg{LEVEL}\bracearg{INDENT}\bracearg{BEFORESKIP}'
+% `~~\bracearg{AFTERSKIP}\bracearg{STYLE}\brackarg{ARG1}\bracearg{ARG2}'
+% \end{command}
+% By comparison to \cls{book}'s |\@part| and |\@spart| (see below), I
+% imagine they have something to do with formatting section names.
+% \begin{macrocode}
+\def\@ssect#1#2#3#4#5{%
+ \@tempskipa #3\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ \begin{spacing}{\@ssp}
+ #4{%
+ \@hangfrom{\hskip #1}%
+ \interlinepenalty \@M #5\@@par}%
+ \endgroup
+ \end{spacing}
+ \else
+ \def\@svsechd{#4{\hskip #1\relax #5}}%
+ \fi
+ \@xsect{#3}}
+% \end{macrocode}
+% Now for |\@sect|.
+% \begin{macrocode}
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ \begin{spacing}{\@ssp}
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \end{spacing}
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+ \csname #1mark\endcsname{#7}%
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}}%
+ \fi
+ \@xsect{#5}}
+% \end{macrocode}
+%
+% Override \cls{book}'s |\@part| and |\@spart|, replacing |\Huge| with
+% |\large|. From |classes.dtx|, |\@part| formats the title of the part,
+% and |\@spart| formats the title of a starred part.
+% \begin{macrocode}
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+ \large\bfseries \partname\nobreakspace\thepart
+ \par
+ \vskip 20\p@
+ \fi
+ \large \bfseries #2\par}%
+ \@endpart}
+\def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \large \bfseries #1\par}%
+ \@endpart}
+% \end{macrocode}
+%
+%
+% \subsubsection{Adding TOC entries and blank pages}
+%
+% Override \cls{book}'s |\listoffigures|, selecting the false branch
+% of the |\if@twocolumn| conditionals, adding a line to the table of
+% contents, and clearing the page.
+% \begin{macrocode}
+%the figure list command
+\renewcommand\listoffigures{%
+ \newpage
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\listfigurename}
+ \chapter*{\listfigurename}%
+ \@mkboth{\MakeUppercase\listfigurename}%
+ {\MakeUppercase\listfigurename}%
+ \@starttoc{lof}%
+}
+% \end{macrocode}
+%
+% Override \cls{book}'s |\listoftables|, selecting the false branch
+% of the |\if@twocolumn| conditionals, adding a line to the table of
+% contents, and clearing the page.
+% \begin{macrocode}
+\renewcommand\listoftables{%
+ \newpage
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\listtablename}
+ \chapter*{\listtablename}%
+ \@mkboth{\MakeUppercase\listtablename}%
+ {\MakeUppercase\listtablename}%
+ \@starttoc{lot}%
+}
+% \end{macrocode}
+%
+% Override |latex.ltx|'s |\bibliography|, adding a line to the table
+% of contents.
+% \begin{macrocode}
+\def\bibliography#1{%
+ \addcontentsline{toc}{chapter}{\bibname}
+ \if@filesw
+ \immediate\write\@auxout{\string\bibdata{#1}}%
+ \fi
+ \@input@{\jobname.bbl}
+}
+% \end{macrocode}
+%
+% Add a terminal blank page (when |\if@final| is true)
+% From the Manual 3.16 p13
+% \begin{quote}
+% Include a blank page (with no page number) at the end of the
+% thesis or dissertation. The blank page is neither counted nor
+% numbered.
+% \end{quote}
+% \begin{macrocode}
+\AtEndDocument{\blankpage}
+% \end{macrocode}
+%
+%
+% \subsubsection{Captioning}
+%
+% These are to get spacing right after table captions and make the
+% spacing around floats symmetrical. First, set |\if@table| in the
+% |table| environments.
+% \begin{macrocode}
+\newif\if@table \@tablefalse
+\renewenvironment{table}
+ {\@tabletrue\@float{table}}
+ {\end@float\@tablefalse}
+\renewenvironment{table*}
+ {\@tabletrue\@dblfloat{table}}
+ {\end@dblfloat\@tablefalse}
+% \end{macrocode}
+% Now override \cls{book}'s |\@makecaption|, adding two |\if@table|
+% conditionals, which swap |\abovecaptionskip| and |\belowcaptionskip|
+% for tables (where the caption is above the float body). With our
+% implementation, |\belowcaptionskip| \emph{always} gives the distance
+% between the caption and the text, and |\abovecaptionskip|
+% \emph{always} gives the distance between the caption and the float
+% body.
+%
+% We also replace the caption lead-in |#1: #2| with
+% |\small{\bfseries#1:} #2|.
+% \begin{macrocode}
+\newlength\@tempcapskip
+\long\def\@makecaption#1#2{%
+ \if@table
+ \@tempcapskip\abovecaptionskip
+ \abovecaptionskip\belowcaptionskip
+ \belowcaptionskip\@tempcapskip
+ \fi
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{\small{\bfseries#1:} #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ {\small{\bfseries#1:} #2\par}
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip
+ \if@table
+ \@tempcapskip\belowcaptionskip
+ \belowcaptionskip\abovecaptionskip
+ \abovecaptionskip\@tempcapskip
+ \fi
+}
+% \end{macrocode}
+%
+%
+% \subsubsection{Adjust table of contents}
+%
+% From the \LaTeX\ base class documentation (|classes.dtx| in
+% \href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{\LaTeX\ base}})
+% \begin{quote}
+% The command |\contentsline{|\meta{name}|}| expands to
+% |\l@|\meta{name}. So, to specify the table of contents, we must
+% define |\l@chapter|, \ldots
+% \end{quote}
+%
+% Override \cls{book}'s |\l@chapter| for printing TOC entries, adding
+% |spacing| environments to ensure single spacing, only using bold if
+% |\if@boldchapter| is true, handling |\if@dottedchapter|.
+% \begin{macrocode}
+\renewcommand*\l@chapter[2]{%
+ \begin{spacing}{\@ssp}
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+% \end{macrocode}
+% Don't handle spacing here; use the spacing environment at the end of
+% the macro.
+% \begin{macrocode}
+% \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \if@boldchapter
+ \bfseries
+ \fi
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+% \end{macrocode}
+% Insert |\if@dottedchapter| block into |#1\nobreak\hfil \nobreak...|.
+% \begin{macrocode}
+ #1\nobreak
+ \if@dottedchapter
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}
+ \else\fi
+% \end{macrocode}
+% Insert |\if@dottedchapter| block into |#1\nobreak\hfil \nobreak...|.
+% \begin{macrocode}
+ \hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+% \end{macrocode}
+% Add a content-page-spacing blank after this entry.
+% \begin{macrocode}
+ \begin{spacing}{\@csp}\par\end{spacing}
+ \endgroup
+ \fi
+ \end{spacing}
+}
+% \end{macrocode}
+%
+% Add |\l@appendix|, identical to our |\l@chapter|, except for
+% setting |\@tempdima| to 6.5em rather than 1.5em. TODO: Why?
+% TODO: Consolidate to \l@chapapp[3] calls.
+% \begin{macrocode}
+\newcommand*\l@appendix[2]{%
+ \begin{spacing}{\@ssp}
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+% \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{6.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \if@boldchapter
+ \bfseries
+ \fi
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak
+ \if@dottedchapter
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}
+ \else\fi
+ \hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \begin{spacing}{\@csp}\par\end{spacing}
+ \endgroup
+ \fi
+ \end{spacing}
+}
+% \end{macrocode}
+%
+% Add |\l@part|, identical to our |\l@chapter|, except for
+% setting |\@tempdima| to 6.5em rather than 1.5em. TODO: Why?
+% TODO: Consolidate to \l@chapapp[3] calls.
+% \begin{macrocode}
+\renewcommand*\l@part[2]{%
+ \begin{spacing}{\@ssp}
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty{-\@highpenalty}%
+% \end{macrocode}
+% Don't handle spacing here; use the spacing environment at the end of
+% the macro.
+% \begin{macrocode}
+% \addvspace{2.25em \@plus\p@}%
+ \setlength\@tempdima{3em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode
+% \end{macrocode}
+% Replace |\large \bfseries| with |\if@boldpart...|, so the parts are
+% the same size as the other entries, and bolding obeys |if@boldpart|.
+% \begin{macrocode}
+ \if@boldpart
+ \bfseries
+ \fi
+ #1
+% \end{macrocode}
+% Insert |\if@dottedpart| between |#1| and |\hfil|.
+% \begin{macrocode}
+ \if@dottedpart
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}
+ \fi
+ \hfil \hb@xt@\@pnumwidth{\hss #2}}\par
+ \nobreak
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+% \end{macrocode}
+% Add a content-page-spacing blank after this entry.
+% \begin{macrocode}
+ \begin{spacing}{\@csp}\par\end{spacing}
+ \endgroup
+ \fi
+ \end{spacing}
+}
+% \end{macrocode}
+%
+% Override |latex.ltx|'s |\dottedtocline|, adding some |spacing|
+% environments. TODO: reasoning.
+% \begin{macrocode}
+\def\@dottedtocline#1#2#3#4#5{%
+ \begin{spacing}{\@ssp}
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+ \par\begin{spacing}{\@csp}\par\end{spacing}}%
+ \fi
+ \end{spacing}
+}
+% \end{macrocode}
+%
+% Override \cls{book}'s (or \pkg{hyperref}'s) |\appendix|, adding
+% |\@appendixtrue|. This gets |\if@appendix| working in our
+% |\chapter| definition below.
+% \begin{macrocode}
+\let\DUT@appendix\appendix
+\renewcommand\appendix{%
+ \@appendixtrue%
+ \DUT@appendix
+}
+% \end{macrocode}
+%
+% Override \cls{book}'s |\chapter|, selecting the false branch of the
+% |\if@twocolumn| conditional and adding an |\if@appendix|
+% conditional. After |\appendix| (when |\if@mainmatter| and
+% |\if@appendix| are both true), we generate table of content entries
+% such as \emph{Appendix A: Chapter Title} rather than the standard
+% \emph{Chapter Title}. |\thechapter| (defined in \cls{book}) is the
+% appendix letter (e.g.\ |A|). |\@chapapp{}| (also defined in
+% \cls{book}) Was redefined in |\appendix| (above) as |\appendixname|.
+% Before |\appendix|, we reproduce the \cls{book} behavior.
+% \begin{macrocode}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \if@appendix
+ \addcontentsline{toc}{appendix}%
+ {\protect\numberline{\@chapapp{} \thechapter:}#1}%
+ \else
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\thechapter}#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \@makechapterhead{#2}%
+ \@afterheading}
+% \end{macrocode}
+%
+%
+% \iffalse meta-comment
+%</class>
+% \fi
+%
+%
+% \section{Templates}
+%
+% \subsection{Simple}
+%
+% \subsubsection{Main}
+%
+% \iffalse meta-comment
+%<*template-main>
+% \fi
+% \begin{quote} \hrule \begin{verbatim}
+%% See drexel-thesis.pdf for details.
+\documentclass{drexel-thesis}
+
+%% Enter the appropriate information here
+\author{Johny Henry} % Fullname
+\title{Inadequacies of Steam-Driven Boring Machines} % Title Of Thesis
+\defmonth{July} % Name of the month of you defense
+\defyear{1872} % Year you are defending
+\degree{Doctor of Philosophy} % Should be fine
+\advisor{C \& O Railroad, Ph.D.} % Put Advisor's full name, degree
+
+\usepackage{graphicx} % to include images
+
+\begin{document}
+\begin{preamble}
+
+\begin{dedications} % OPTIONAL
+Type dedications here
+\end{dedications}
+
+\begin{acknowledgments} % OPTIONAL
+Type acknowledgments here
+\end{acknowledgments}
+
+\tableofcontents
+%% Include these following commands only if you have tables or figures.
+%% Tables should come before figures.
+\listoftables
+\listoffigures
+
+\begin{abstract}
+Type abstract here
+\end{abstract}
+\end{preamble}
+
+\begin{thesis}
+%% Use include statements to include your main thesis code
+%% from seperate files.
+\include{part1}
+\end{thesis}
+
+%% unsrt style give references in order of citation
+\bibliographystyle{unsrt}
+\phantomsection
+\addcontentsline{toc}{chapter}{\bibname}
+\begin{thebibliography}{9}
+% widest label (above "9"), when printed, as wide as widest entry label.
+\bibitem{lamport94}
+ Leslie Lamport,
+ \emph{\LaTeX: A Document Preparation System}.
+ Addison Wesley, Massachusetts,
+ 2nd Edition,
+ 1994.
+%...
+\end{thebibliography}
+
+\appendix
+%% include files with your appendicies (if any) here
+\include{appendixA}
+
+\begin{vita} % Ph.D. only. See Thesis Manual for details.
+Vita text.
+\end{vita}
+
+\end{document}
+% \end{verbatim} \hrule \end{quote}
+% \iffalse meta-comment
+%</template-main>
+% \fi
+%
+% \subsubsection{Part}
+%
+% \iffalse meta-comment
+%<*template-part>
+% \fi
+% \begin{quote} \hrule \begin{verbatim}
+\part{A Part Heading}
+\chapter{A Chapter Heading}
+\section{A Section Heading}
+The following sectioning commands are available:
+\begin{quote}
+ part \\
+ chapter \\
+ section \\
+ subsection \\
+ subsubsection \\
+ paragraph \\
+ subparagraph
+\end{quote}
+\begin{table}
+ \caption{A table float}
+ \begin{center}
+ \begin{tabular}{r@{.}l r@{.}l r@{.}l}
+ \multicolumn{2}{c}{Time (s)} &
+ \multicolumn{2}{c}{John Henry (m)} &
+ \multicolumn{2}{c}{Steam drill (m)} \\
+ 0&0 & 0&0 & 0&0 \\
+ 10&0 & 4&3 & 3&75 \\
+ 30&0 & 11&9 & 10&1 \\
+ \ldots
+ \end{tabular}
+ \end{center}
+\end{table}
+Bla bla bla (text to test table/figure spacing)
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+\begin{figure}
+ \begin{center}
+ \includegraphics[width=0.4\textwidth]{drexel-logo}
+ \end{center}
+ \caption{A figure float}
+\end{figure}
+Bla bla bla (text to test table/figure spacing)
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+
+Bla bla bla
+% \end{verbatim} \hrule \end{quote}
+% \iffalse meta-comment
+%</template-part>
+% \fi
+%
+% Note the strange |r@{.}l| notation in the |\tabular| column
+% definition. This allows for numbers aligned at the decimal point
+% (see \href{http://www.stat.unipg.it/tex-man/ltx-68.html}{here}).
+%
+% |\multicolumn{num_cols}{alignment}{contents}| allows the headings
+% to span the pre- and post-decimal columns.
+%
+%
+% \subsubsection{Appendix}
+%
+% \iffalse meta-comment
+%<*template-appendix>
+% \fi
+% \begin{quote} \hrule \begin{verbatim}
+\chapter{Some Appendix Heading}
+Bla Bla Bla
+\chapter{Another Appendix Heading}
+Bla Bla Bla
+% \end{verbatim} \hrule \end{quote}
+% \iffalse meta-comment
+%</template-appendix>
+% \fi
+%
+%
+% \subsection{\BibTeX/\pkg{natbib}}
+% \label{sec:natbib-example}
+%
+% \subsubsection{Main}
+%
+% \iffalse meta-comment
+%<*template-bibtex-main>
+% \fi
+% \begin{quote} \hrule \begin{verbatim}
+%% See drexel-thesis.pdf for details.
+\documentclass{drexel-thesis}
+
+%% Enter the appropriate information here
+\author{Johny Henry} % Fullname
+\title{Inadequacies of Steam-Driven Boring Machines} % Title Of Thesis
+\defmonth{July} % Name of the month of you defense
+\defyear{1872} % Year you are defending
+\degree{Doctor of Philosophy} % Should be fine
+\advisor{C \& O Railroad, Ph.D.} % Put Advisor's full name, degree
+
+\usepackage[super,sort&compress]{natbib} % fancy citation extensions
+%% super selects citations in superscript mode.
+%% sort&compress automatically sorts and compresses compound citations:
+%% \pcite{a,b,...}
+\bibliographystyle{plainnat}
+
+\begin{document}
+\begin{preamble}
+
+\begin{dedications} % OPTIONAL
+Type dedications here
+\end{dedications}
+
+\begin{acknowledgments} % OPTIONAL
+Type acknowledgments here
+\end{acknowledgments}
+
+\tableofcontents
+%% Include these following commands only if you have tables or figures.
+%% Tables should come before figures.
+\listoftables
+\listoffigures
+
+\begin{abstract}
+Type abstract here
+\end{abstract}
+\end{preamble}
+
+\begin{thesis}
+%% Use include statements to include your main thesis code
+%% from seperate files.
+\include{bibpart1}
+\end{thesis}
+
+\bibliography{references}
+
+\appendix
+%% include files with your appendicies (if any) here
+\include{appendixA}
+
+\begin{vita} % Ph.D. only. See Thesis Manual for details.
+Vita text.
+\end{vita}
+
+\end{document}
+% \end{verbatim} \hrule \end{quote}
+% \iffalse meta-comment
+%</template-bibtex-main>
+% \fi
+%
+% \subsubsection{Part}
+%
+% You can cite your references with \pkg{natbib}'s |\citet| and
+% |\citep| macros. See
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/}{the \pkg{natbib} manual}
+% for details.
+%
+% \iffalse meta-comment
+%<*template-bibtex-part>
+% \fi
+% \begin{quote} \hrule \begin{verbatim}
+\part{A Part Heading}
+\chapter{A Chapter Heading}
+\section{A Section Heading}
+Here we have a text citation \citet{rief97} followed by a
+parenthetical citation\citep{rief97}.
+% \end{verbatim} \hrule \end{quote}
+% \iffalse meta-comment
+%</template-bibtex-part>
+% \fi
+%
+% \subsubsection{Bib}
+%
+% What goes into the \BibTeX\ file |references.bib|?
+% For more information, check out this
+% \href{http://cmtw.harvard.edu/Documentation/TeX/Bibtex/Example.html}{basic tutorial}.
+% If you want to get deeper, take a look at
+% \href{http://www.ctan.org/tex-archive/info/bibtex/tamethebeast/}{Tame the BeaST}.
+% Other resources:
+% \href{http://www.andy-roberts.net/misc/latex/latextutorial3.html}{how the process works},
+% \href{http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node6.html}{entry types},
+% \href{http://newton.ex.ac.uk/tex/pack/bibtex/btxdoc/node7.html}{fields},
+% \href{http://en.wikipedia.org/wiki/BibTeX}{entries and fields},
+% \href{http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html}{assorted style examples}, and
+% \href{http://liinwww.ira.uka.de/bibliography/Bib.Format.html}{assorted \BibTeX tools}.
+%
+% Here is an example \BibTeX\ file to get you started. We define
+% strings for the publishers, journals, and authors to avoid
+% duplication and minimize the risk of typos, etc.
+%
+% \iffalse meta-comment
+%<*template-bibtex-refs>
+% \fi
+% \begin{quote} \hrule \begin{verbatim}
+%% Publishers
+@String{APS = "American Physical Society"}
+
+%% Journals
+@String{SCI = "Science"}
+
+%% Authors
+@String{MRief = "Rief, Matthias"}
+@String{MGautel = "Gautel, Mathias"}
+@String{FOesterhelt = "Oesterhelt, Filipp"}
+@String{JFernandez = "Fernandez, Julio M."}
+@String{HGaub = "Gaub, Hermann E."}
+
+%% Articles
+@Article{rief97,
+ author = MRief #" and "# MGautel #" and "# FOesterhelt #" and "#
+ JFernandez #" and "# HGaub,
+ title = "Reversible Unfolding of Individual Titin Immunoglobulin
+ Domains by {AFM}",
+ journal = SCI,
+ volume = 276,
+ number = 5315,
+ pages = "1109--1112",
+ year = 1997,
+ doi = "10.1126/science.276.5315.1109",
+ URL = "http://www.sciencemag.org/cgi/content/abstract/276/5315/1109",
+ eprint = "http://www.sciencemag.org/cgi/reprint/276/5315/1109.pdf",
+ mynote = "Seminal paper for force spectroscopy on Titin. Cited by
+ Dietz '04 (ref 9) as an example of how unfolding large
+ proteins is easily interpreted (vs.\ confusing unfolding in
+ bulk), but Titin is a rather simple example of that, because
+ of its globular-chain structure.",
+}
+%% ...
+% \end{verbatim} \hrule \end{quote}
+% \iffalse meta-comment
+%</template-bibtex-refs>
+% \fi
+%
+% \Finale
+\endinput