-% \def\fileversion{0.3}
-% \def\filedate{2010/01/13}
+% \def\fileversion{0.11}
+% \def\filedate{2010/06/04}
% \iffalse meta-comment
-%<class>\def\fileversion{0.3}
-%<class>\def\filedate{2010/01/13}
+%<*driver>
+\ProvidesFile{drexel-thesis.dtx}
+\documentclass{ltxdoc}
+%</driver>
+%<*class|driver>
+\def\fileversion{0.11}
+\def\filedate{2010/06/04}
+%</class|driver>
%
% Copyright (C) 2010 C.Y. Ip
% Christopher D. Cera
% \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.
+% Code for the .ini driver, see \S 2.1 ``The driver file'' of doc.dtx.
%<*driver>
-\documentclass{ltxdoc}
-\usepackage[colorlinks=true]{hyperref}
+\usepackage[colorlinks=true,]{hyperref}
+\hypersetup{pdfauthor={W. Trevor King et al.}}
+\hypersetup{pdftitle={drexel-thesis \fileversion\ documentation}}
%</driver>
% Include some useful commands from |xkeyval|'s |<preamble>|.
%<*driver>
\newcommand*{\Lcount}[1]{\textsl {\small#1}}
\newcommand*{\pstyle}[1]{\textsl {#1}}
%</driver>
+% Provide easy access to the @ character. Note that this, like the
+% short-verbatim markers ||, does not work in |\changes| sections
+% because of the way they are cached to the glossary file. If you
+% find a way to make them work there, let me know :).
+%<*driver>
+\newcommand*{\textat}{\makeatletter @ \makeatother}
+%</driver>
%<*driver>
\makeatletter
\def\DescribeOption#1{\leavevmode\@bsphack
% Based on the University of Toronto Thesis \LaTeXe\ Class. Also
% greatly improved the documentation by incorperating bits of
% the base/*.dtx files.}
+% \changes{0.4}{2010/02/23}{W.~Trevor King repositioned hyperref
+% inclusion for proper hyperref overriding. The previous
+% implementation couldn't handle $\backslash$label for
+% $\backslash$paragraph and some other section levels. The page
+% number for the reference was correct, but the link went to the
+% label's parent chapter.}
+% \changes{0.5}{2010/03/03}{W.~Trevor King use hypcap for better
+% caption hyperlink anchor placement.}
+% \changes{0.6}{2010/03/11}{W.~Trevor King fixed
+% $\backslash$if$@$final handling. Previous versions used
+% it more like a hypothetical $\backslash$if$@$finalspace.
+% Also adjusted theindex to use a listed$@$schapter.}
+% \changes{0.10}{2010/05/21}{W.~Trevor King added $\backslash$DUT\*
+% aliases for all public macros and environments and renamed
+% $\backslash$defmonth and $\backslash$defyear to
+% $\backslash$DUTmonth and $\backslash$DUTyear for consistency with
+% the new aliases.}
%
% \MakeShortVerb{\|}
% \newcommand{\pkg}[1]{\textsf{#1}}
% \Lopt{mydraftwatermark} & It's good to have a timestamp. \\
% \end{tabular}
%
+% \DescribeOption{subfig}
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/}{\pkg{subfig}}
+% makes it easy to include and caption multi-part figures. However,
+% getting \pkg{subfig} to cooperate with \pkg{floatrow} and
+% \pkg{tocloft} can be tricky. If you want to use \pkg{subfig}, just
+% pass the \Lopt{subfig} option to \cls{drexel-thesis}, and all the
+% pesky details will be taken care of. See \S
+% \ref{sec:better-example} for an example.
+%
% \DescribeOption{finalspace}
% Loosen spacing.
%
% options set all of the types. For example, \Lopt{boldtoc} is
% equivalent to \Lopt{boldchapter,boldpart}.
%
+% \DescribeOption{indenttoc}
+% The example table of contents in the Manual p17 does not indent
+% section entries, etc., so neither does \cls{drexel-thesis}. If you
+% \emph{do} want pretty, indented TOCs, like the \LaTeX\ defaults pass
+% \Lopt{indenttoc} to \cls{drexel-thesis}.
+%
% \DescribeOption{draftwatermark}
% \Lopt{draftwatermark} adds ``DRAFT \meta{date}'' watermarks to each
% page. A useful way to remember that the version you're looking at
% \Lopt{fleqn} typesets displayed formulae left-aligned instead of
% centered.
%
+% \DescribeOption{daring}
+% \Lopt{daring} breaks the official thesis rules in pursuit of a nicer
+% layout.
+%
%
% \subsection{Macros}
%
+% To help deal with name collisions, all \cls{drexel-thesis} macros
+% have ``secret'' aliases. For example, |\author| can also be used as
+% |\DUTauthor|. This is useful if one of your packages clobbers a
+% \cls{drexel-thesis} macro, but you still want to use the original.
+% \begin{example}
+% \documentclass{drexel-thesis}
+% \renewcommand{\author}[1]{I'm forgetting about your author! Muahahaha!}
+% \DUTauthor{Your Name Here}
+% ...
+% \end{example}
+%
% \begin{command}
% `\cs{author}\marg{name}'
% \end{command}
% \DescribeMacro{\author}
+% \DescribeMacro{\DUTauthor}
% 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.
+% See the Manual \S 3.1 p8.
%
% \begin{command}
% `\cs{title}\marg{title}'
% \end{command}
% \DescribeMacro{\title}
+% \DescribeMacro{\DUTtitle}
% Use this macro to set your thesis title to \meta{name}. For example
% \begin{example}
% \title{A New Approach to Quantum Theory}
% `\cs{advisor}\marg{name}'
% \end{command}
% \DescribeMacro{\advisor}
+% \DescribeMacro{\DUTadvisor}
% Use this macro to set your advisor's name to \meta{name}. For
% example
% \begin{example}
% \advisor{John A. Wheeler, Ph.D.}
% \advisor{Advisor 2}
% \end{example}
-% See the Manual 3.1 p8.
+% See the Manual \S 3.1 p8.
%
% \begin{command}
-% `\cs{defmonth}\marg{month}'
-% `\cs{defyear}\marg{year}'
+% `\cs{DUTmonth}\marg{month}'
+% `\cs{DUTyear}\marg{year}'
% \end{command}
-% \DescribeMacro{\defmonth}
-% \DescribeMacro{\defyear}
+% \DescribeMacro{\DUTmonth}
+% \DescribeMacro{\DUTyear}
% 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}
+% \DUTmonth{June}
+% \DUTyear{1942}
% \end{example}
-% See the Manual 3.1 p8.
-% The |def| in |\def*| avoids collisions with the plain \TeX\
-% |\month| and |\year| (see the
+% See the Manual \S 3.1 p8.
+% There are no non-|DUT| versions of these commands to avoid
+% 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}
% `\cs{degree}\marg{degree}'
% \end{command}
% \DescribeMacro{\degree}
-% Set your target degree with \meta{degree}. From the Manual 3.1 p8.
+% \DescribeMacro{\DUTdegree}
+% Set your target degree with \meta{degree}. From the Manual \S 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
% `\cs{copyrighttext}\marg{text}'
% \end{command}
% \DescribeMacro{\copyrighttext}
+% \DescribeMacro{\DUTcopyrighttext}
% Use this macro to set the copyright text to \meta{text}.
% The default value is ``All Rights Reserved.''.
% \begin{example}
% \copyrighttext{Released to the Public Domain.}
% \end{example}
-% See the Manual 3.2 p9.
+% See the Manual \S 3.2 p9.
%
% \begin{command}
-% `\cs{copyrighttextCC}'
+% `\cs{copyrighttextCCBYSA}'
% \end{command}
+% \DescribeMacro{\copyrighttextCCBYSA}
+% \DescribeMacro{\DUTcopyrighttextCCBYSA}
% There are a number of predefined copyright messages for ease of use \\
% \begin{tabular}{l l}
-% |\copyrighttextCC| & Creative Commons copyright \\
+% |\copyrighttextCCBYSA| &
+% Creative Commons Attribution-ShareAlike License Version 3.0.\\
% \end{tabular}
%
% \begin{command}
% `\cs{tableofcontents}'
% \end{command}
% \DescribeMacro{\tableofcontents}
-% Write the table of contents (Manual 3.5 p9). You can control the
+% \DescribeMacro{\DUTtableofcontents}
+% Write the table of contents (Manual \S 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}
% 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
+% Note that the Manual \S 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.
%
% `\cs{listoftables}'
% \end{command}
% \DescribeMacro{\listoftables}
-% Write the List of Tables page (Manual 3.6 p10).
+% \DescribeMacro{\DUTlistoftables}
+% Write the List of Tables page (Manual \S 3.6 p10).
% Skip if you have no tables in your thesis.
%
% \begin{command}
% `\cs{listoffigures}'
% \end{command}
% \DescribeMacro{\listoffigures}
-% Write the List of Figures page (Manual 3.7 p10).
+% \DescribeMacro{\DUTlistoffigures}
+% Write the List of Figures page (Manual \S 3.7 p10).
% Skip if you have no figures in your thesis.
%
% \begin{command}
% `\cs{blanklines}\marg{num}'
% \end{command}
% \DescribeMacro{\blanklines}
+% \DescribeMacro{\DUTblanklines}
% Insert \meta{num} blank lines. For example
% \begin{example}
% \blanklines{2}
% The skipped lines are always \emph{single spaced} lines, regardless
% of the current line spacing in the environment calling this macro.
%
+% \begin{command}
+% `\cs{iffinal}\marg{final-mode-action}\marg{draft-mode-action}'
+% \end{command}
+% \DescribeMacro{\iffinal}
+% \DescribeMacro{\DUTiffinal}
+% Include \Lopt{final}- or \Lopt{draft}-specific code.
+% \begin{example}
+% We're in \iffinal{final}{draft} mode!
+% \end{example}
+%
+% \begin{command}
+% `\cs{ifdaring}\marg{daring-action}\marg{wimpy-action}'
+% \end{command}
+% \DescribeMacro{\ifdaring}
+% \DescribeMacro{\DUTifdaring}
+% Include \Lopt{daring}-specific code, with wimpy fallbacks.
+% \begin{example}
+% \ifdaring{\singlespacing Muahahahaha!}{mumble mumble}.
+% \end{example}
+%
%
% \subsection{Environments}
%
+% To help deal with name collisions, all \cls{drexel-thesis}
+% environments have ``secret'' aliases. For example, |preamble| can
+% also be used as |DUTpreamble|. This is useful if one of your
+% packages clobbers a \cls{drexel-thesis} environment, but you still
+% want to use the original.
+% \begin{example}
+% \documentclass{drexel-thesis}
+% \renewenvironment{preamble}{%
+% What preamble?\begingroup\color{white}}{\endgroup}
+% \begin{document}
+% \begin{DUTpreamble}
+% Thwarted again, evil one!
+% ...
+% \end{example}
+%
+%
% \DescribeEnv{preamble}
+% \DescribeEnv{DUTpreamble}
% 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
% \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).
+% This will take care of everything from the title page (Manual \S 3.1),
+% up through the blank page before the text (Manual \S 3.9).
%
% \DescribeEnv{dedications}
+% \DescribeEnv{DUTdedications}
% Set the dedications text.
-% Highlights from the Manual 3.3 p9:
+% Highlights from the Manual \S 3.3 p9:
% \begin{quote}
% The |Dedications| page is optional.
% \end{quote}
%
% \DescribeEnv{acknowledgments}
+% \DescribeEnv{DUTacknowledgments}
% Set the acknowledgments text.
-% Highlights from the Manual 3.4 p9:
+% Highlights from the Manual \S 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
% \end{quote}
%
% \DescribeEnv{abstract}
-% Set the thesis abstract text. In the Thesis Manual, see section 3.8
+% \DescribeEnv{DUTabstract}
+% Set the thesis abstract text. In the Thesis Manual, see \S 3.8
% Abstract (p10) for details, p20 for an example.
%
% Highlights from the Manual:
% \end{itemize}
%
% \DescribeEnv{thesis}
-% Set the thesis text. In the Thesis Manual, see section 3.10 Thesis
-% (p11) for details.
+% \DescribeEnv{DUTthesis}
+% Set the thesis text. In the Thesis Manual, see \S 3.10 Thesis (p11)
+% for details.
%
% Highlights from the Manual:
% \begin{quote}
% \end{quote}
%
% \DescribeEnv{vita}
-% Set the thesis vita text (Ph.D.\ only). See the Manual 3.15 p12,
+% \DescribeEnv{DUTvita}
+% Set the thesis vita text (Ph.D.\ only). See the Manual \S 3.15 p12,
% ``Vita'', for details.
%
% Highlights from the Manual:
% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}}
% to define the |\includegraphics| macro,
% \href{http://www.ctan.org/tex-archive/macros/latex/required/caption/}{\pkg{caption}}
-% for pretty caption formatting, and
+% for pretty caption formatting,
% \href{http://www.ctan.org/tex-archive/macros/latex/required/floatrow/}{\pkg{floatrow}}
-% for placing captions.
+% for placing captions, and
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}}
+% for placing caption anchors.
%
% Simple float definitions will look like
% \begin{example}
% \caption{Some caption text}
% \end{float}
% \end{example}
-% For more useful float information, see the
+% For more useful float information, see the examples in \S
+% \ref{sec:better-example-part} and 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:better-example} for a simple example.
+% See \S \ref{sec:better-example} for a simple example.
%
% Suggested options:\\
% \begin{tabular}{r p{0.8\textwidth}}
%
% \subsubsection{References}
%
+% Easier cross referencing with
% \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.
+% Is a wonderful tool for easy, consistent crosslinking via |\cref|,
+% |\Cref|, etc.. The manual is also very good.
+% Note that if you use |\part|s in your document, you need to tell
+% \pkg{cleveref} how to deal with them:
+% \begin{example}
+% \usepackage{cleveref}
+% \crefname{part}{part}{parts}
+% \end{example}
%
%
% \subsubsection{Hyperlinks}
% set options overriding these defaults.
%
%
+% \subsubsection{Developing large \LaTeX\ documents}
+%
+% A thesis may take a while to compile, especially if it contains
+% lots of images, etc.. One way to save time, is to use |\includeonly|
+% when including chapter \file{*.tex} files (see
+% \href{http://en.wikibooks.org/wiki/TeX/includeonly}{the \TeX\ Wikibook}).
+% Usage would be something like
+% \begin{example}
+% \documentclass{drexel-thesis}
+% ...
+% \includeonly{chapter2.tex,chapter3.tex}
+% \begin{document}
+% ...
+% \begin{thesis}
+% \include{chapter1.tex}
+% \include{chapter2.tex}
+% \include{chapter3.tex}
+% \include{chapter4.tex}
+% \end{thesis}
+% ...
+% \end{document}
+% \end{example}
+% which would only compile chapters two and three. Don't confuse the
+% similar commands |\include| and |\input|. The more fundamental
+% |\input| just inserts the file contents at that point, while
+% |\include|
+% \begin{itemize}
+% \item may only be used after |\begin{document}|
+% \item acts like |\clearpage \input{} \clearpage|
+% \item will not crash on nonexistent files
+% \end{itemize}
+%
+%
% \StopEventually{\pagebreak\PrintChanges}
%
%
% 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.
+% see \S \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@DUT@subfigopt
\newif\if@dottedchapter
\newif\if@boldchapter
\newif\if@boldpart
\newif\if@dottedpart
+\newif\if@indenttoc
\newif\if@draftwatermark
\newif\if@mydraftwatermark
\newif\if@indentfirst
-\newif\if@final \@finalfalse
+\newif\if@final
+\newif\if@daring
+% \end{macrocode}
+%
+% \begin{macro}{\iffinal}
+% Setup a user-friendly means for including \Lopt{final}- or
+% \Lopt{draft}-specific code.
+% \changes{0.7}{2010/03/14}{W.~Trevor King added macro.}
+% \begin{macrocode}
+\newcommand\iffinal[2]{\if@final #1\else #2\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifdaring}
+% Setup a user-friendly means for including \Lopt{daring}-specific
+% code.
+% \changes{0.11}{2010/06/04}{W.~Trevor King added macro.}
+% \begin{macrocode}
+\newcommand\ifdaring[2]{\if@daring #1\else #2\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{option}{subfig}
+% Set \Lopt{subfig} flag
+% \begin{macrocode}
+\DeclareOptionX{subfig}{\@DUT@subfigopttrue}
% \end{macrocode}
+% \end{option}
%
% \begin{option}{finalspace}
% \begin{macrocode}
\def\@ssp{1} % single space
\def\@dsp{2} % double space
\def\@tsp{3} % triple space
- \@finaltrue
}
% \end{macrocode}
% \end{option}
% Don't force chapters onto right-hand pages.
% \begin{macrocode}
\PassOptionsToClass{openany}{book}
- \@finalfalse
}
% \end{macrocode}
% \end{option}
% \begin{option}{dottedchapter}
% \begin{macrocode}
\DeclareOptionX{dottedchapter}{\@dottedchaptertrue}
-% \end{macrocode}
+% \end{macrocode}1
% \end{option}
% \begin{option}{boldpart}
% \begin{macrocode}
% \end{macrocode}
% \end{option}
%
+% \begin{option}{indenttoc}
+% Set \Lopt{indenttoc} flag
+% \begin{macrocode}
+\DeclareOptionX{indenttoc}{\@indenttoctrue}
+% \end{macrocode}
+% \end{option}
+%
% \begin{option}{draftwatermark}
% Set \Lopt{draftwatermark} flag
% \begin{macrocode}
% \begin{option}{final}
% \begin{macrocode}
\DeclareOptionX{final}{
+ \@finaltrue
\setkeys{drexel-thesis.cls}{oneside}
\setkeys{drexel-thesis.cls}{finalspace}
\setkeys{drexel-thesis.cls}{dottedtoc}
% \begin{option}{draft}
% \begin{macrocode}
\DeclareOptionX{draft}{
+ \@finalfalse
\setkeys{drexel-thesis.cls}{twoside}
\setkeys{drexel-thesis.cls}{draftspace}
\setkeys{drexel-thesis.cls}{dottedtoc}
% \end{macrocode}
% \end{option}
%
+% \begin{option}{daring}
+% \begin{macrocode}
+\DeclareOptionX{daring}{
+ \@daringtrue
+}
+% \end{macrocode}
+% \end{option}
+%
% Use the default \cls{book} implementation for any remaining options
% including \Lopt{oneside}, \Lopt{twoside}, \Lopt{leqno}, \Lopt{fleqn},
% \ldots.
%
%
% Include some other packages we'll need. If the package is not
-% installed on your system, see Section \ref{sec:dependencies} for
+% installed on your system, see \S \ref{sec:dependencies} for
% installation instructions.
%
% For many packages, we want the same functionality for both
% 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:
+% And from the Manual \S 1.5 p4, Print Version:
% \begin{quote}
% The paper size must be 8 1/2'' x 11''.
% \end{quote}
% Typeset the table of contents, etc., with
% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/}{\pkg{tocloft}}.
% \begin{macrocode}
-\RequirePackage{tocloft}
+\if@DUT@subfigopt
+ \RequirePackage[subfigure]{tocloft}
+\else
+ \RequirePackage{tocloft}
+\fi
% \end{macrocode}
-% The configuration of \pkg{tocloft} takes place in Sections
-% \ref{sec:implement-toc}, \ref{sec:implement-lof}, and
+% The \Lopt{subfigure} option sets up \pkg{tocloft} for
+% \pkg{subfig}/\pkg{subfigure} compatibility. See the
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf}{%
+% \pkg{tocloft} manual \S 2.1}
+% for details.
+%
+% The configuration of \pkg{tocloft} takes place in \S
+% \ref{sec:implement-toc}, \S \ref{sec:implement-lof}, and \S
% \ref{sec:implement-lot}.
%
%
%
% Enforce caption placement with
% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/floatrow/}{\pkg{floatrow}}.
-% From the Manual 2.3 p6, ``Tables and Figures'',
+% From the Manual \S 2.3 p6, ``Tables and Figures'',
% \begin{quote}
% \begin{itemize}
% \item Place figure captions below figures.
\floatsetup{captionskip=10pt}
\floatsetup[table]{captionskip=10pt}
% \end{macrocode}
-% We set up the three-line surrounding spaces in Section
+% Use \pkg{fr-subfig} for \pkg{floatrow}/\pkg{subfig} compatibility.
+% See the \pkg{floatrow} documentation (Sec.~7.1, ``The \pkg{subfig}
+% package'') and \pkg{subfig} documentation (Sec.~4.3,
+% ``\pkg{FloatRow} Package'') for details.
+% \begin{macrocode}
+\if@DUT@subfigopt
+ \RequirePackage{fr-subfig}
+\fi
+% \end{macrocode}
+% We set up the three-line surrounding spaces in \S
% \ref{sec:implement-floats}.
%
% You can change these settings using |\floatsetup|, but you probably
% won't need to.
%
%
+% \subsubsection{\pkg{subfig}}
+% \label{sec:subfig}
+%
+% Allow multi-part figures with
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/}{\pkg{subfig}}.
+% \begin{macrocode}
+\if@DUT@subfigopt
+ \RequirePackage{subfig}
+\fi
+% \end{macrocode}
+%
+%
% \subsubsection{\pkg{fancyhdr}}
+% \label{sec:fancyhdr}
%
% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fancyhdr/}{\pkg{fancyhdr}}
% for correct page numbering and fancy headers.
-% From the Manual 2.3 p5, ``Pagination''
+% From the Manual \S 2.3 p5, ``Pagination''
% \begin{quote}
% Place page numbers in the upper right-hand corner of the page,
% 3/4'' from the top.
% \begin{macrocode}
\pagestyle{fancy}
\fancyhf{}
+% \end{macrocode}
+% Turn off the header rule by setting its width to $0$.
+% \begin{macrocode}
\renewcommand{\headrulewidth}{0pt}
% \end{macrocode}
% 0.4 pt is \pkg{fancyhdr}'s default |\headrulewidth|, so we'll
}
% \end{macrocode}
%
+% Note that the chapter/section footer is not required. You can
+% remove the footer text and rule entirely with.
+% \begin{example}
+% \renewcommand{\footrulewidth}{0pt}
+% \fancyfoot[RE,LO]{}
+% \fancyfoot[LE,RO]{}
+% \end{example}
+%
%
% \subsubsection{\pkg{ifpdf}}
%
% \end{macrocode}
%
% \subsubsection{\pkg{hyperref}}
+% \label{sec:hyperref}
%
% \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[final]{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.
+% thesis without it. We actually include this later (\S
+% \ref{sec:hyperref-inclusion}), because \pkg{hyperref} sticks its
+% fingers into \emph{everything} and we want it to use our versions of
+% some macros (e.g., |\@sect|) but not others (e.g., |thebibliography|).
+%
+%
+% \subsubsection{\pkg{hypcap}}
+% \label{sec:hypcap}
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}}
+% for placing caption hyperlink anchors. Must be included after
+% \pkg{hypercap}, so the actual inclusion is in \S
+% \ref{sec:hypcap-inclusion}).
%
%
% \subsection{\LaTeX\ overrides and extensions}
% \subsubsection{\file{ltsect.dtx}}
%
% \begin{macro}{\title}
+% \begin{macro}{\DUTtitle}
+% \begin{macro}{\@DUT@title}
% |\title| for use in |\maketitle|. If not given |\maketitle| will
% produce a warning message (\file{ltsect.dtx}, L117).
%
% We extend |\title| to set \pkg{hyperref}'s |pdftitle|.
% (\file{ltsect.dtx}, L117).
% \begin{macrocode}
-\let\DUT@title\title
\renewcommand{\title}[1]{
- \DUT@title{#1}
- \ifpdf \hypersetup{pdftitle={\@title}} \fi
+ \gdef\@DUT@title{#1}
+ \ifpdf \hypersetup{pdftitle={\@DUT@title}} \fi
}
+\let\DUTtitle\title
+\def\@DUT@title{\@latex@error{No \noexpand\title given}\@ehc}
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\author}
+% \begin{macro}{\DUTauthor}
+% \begin{macro}{\@DUT@author}
% |\author| for use in |\maketitle|. If not given |\maketitle| will
% produce a warning message (\file{ltsect.dtx}, L129).
%
-% We extend |\author| to set \pkg{hyperref}'s |pdfauthor|.
+% We extend |\author| to set \pkg{hyperref}'s |pdfauthor| if we're
+% writing a PDF to avoid using |\AtBeginDocument| or some such.
% (\file{ltsect.dtx}, L129).
% \begin{macrocode}
-\let\DUT@author\author
\renewcommand{\author}[1]{
- \DUT@author{#1}
- \ifpdf \hypersetup{pdfauthor={\@author}} \fi
+ \gdef\@DUT@author{#1}
+ \ifpdf \hypersetup{pdfauthor={\protect\@DUT@author}} \fi
}
+\let\DUTauthor\author
+\def\@DUT@author{\@latex@error{No \noexpand\author given}\@ehc}
% \end{macrocode}
% \end{macro}
+% \end{macro}
+% \end{macro}
%
% In a similar vein, we some additional meta-info macros.
%
-% \begin{macro}{\defmonth}
-% \begin{macro}{\@defmonth}
-% |\defmonth| (defense month) for use in |\maketitle|. If not given
+% \begin{macro}{\DUTmonth}
+% \begin{macro}{\@DUT@month}
+% |\DUTmonth| (defense month) for use in |\maketitle|. If not given
% |\maketitle| will produce an error message.
% \begin{macrocode}
-\def\defmonth#1{\gdef\def@month{#1}}
-\def\def@month{\@latex@error{No \noexpand\defmonth given}\@ehc}
+\def\DUTmonth#1{\gdef\@DUT@month{#1}}
+\def\@DUT@month{\@latex@error{No \noexpand\DUTmonth given}\@ehc}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\defyear}
-% \begin{macro}{\@defyear}
-% |\defyear| (defense year) for use in |\maketitle|. If not given
+% \begin{macro}{\DUTyear}
+% \begin{macro}{\@DUT@year}
+% |\DUTyear| (defense year) for use in |\maketitle|. If not given
% |\maketitle| will produce an error message.
% \begin{macrocode}
-\def\defyear#1{\gdef\def@year{#1}}
-\def\def@year{\@latex@error{No \noexpand\defyear given}\@ehc}
+\def\DUTyear#1{\gdef\@DUT@year{#1}}
+\def\@DUT@year{\@latex@error{No \noexpand\DUTyear given}\@ehc}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\degree}
-% \begin{macro}{\@degree}
+% \begin{macro}{\DUTdegree}
+% \begin{macro}{\@DUT@degree}
% |\degree| for use in |\maketitle|. If not given |\maketitle| will
% produce an error message.
% \begin{macrocode}
-\def\degree#1{\gdef\@degree{#1}
- \ifpdf \hypersetup{pdfsubject={\@degree}} \fi}
-\def\@degree{\@latex@error{No \noexpand\degree given}\@ehc}
+\def\degree#1{\gdef\@DUT@degree{#1}
+ \ifpdf \hypersetup{pdfsubject={\@DUT@degree}} \fi}
+\let\DUTdegree\degree
+\def\@DUT@degree{\@latex@error{No \noexpand\degree given}\@ehc}
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\copyrighttext}
+% \begin{macro}{\DUTcopyrighttext}
% \begin{macro}{\@copyrighttext}
-% |\copyrighttext| for use in |\makecopyright|. There are a number of
-% blurbs predefined in Section \ref{sec:implement-copyright}.
+% |\copyrighttext| for use in |\@DUT@makecopyright|. There are a
+% number of blurbs predefined in \S \ref{sec:implement-copyright}.
% \begin{macrocode}
-\def\copyrighttext#1{\gdef\@copyrighttext{#1}}
-\def\@copyrighttext{All Rights Reserved.}
+\def\copyrighttext#1{\gdef\@DUT@copyrighttext{#1}}
+\let\DUTcopyrighttext\copyrighttext
+\def\@DUT@copyrighttext{All Rights Reserved.}
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\advisor}
-% \begin{macro}{\@advisor}
-% |\advisor| for use in |\maketitle|. If not given |\maketitle| will
-% produce an error message. We get a bit fancier here to support
-% multiple advisors.
+% \begin{macro}{\DUTadvisor}
+% \begin{macro}{\@DUT@advisor}
+% |\advisor| stores advisor names, and |\@DUT@advisor| prints them out
+% nicely for the |abstract| environment. If no advisors are given
+% |\@DUT@advisor| will produce an error message. We get a bit fancier
+% here to support multiple advisors.
+% \begin{macrocode}
+\newcounter{@DUT@advisors}
+\setcounter{@DUT@advisors}{0}
+% \end{macrocode}
+% Store a new advisor name.
% \begin{macrocode}
-\newcounter{advisors}
-\setcounter{advisors}{0}
\newcommand\advisor[1]{%
\ifx
% \end{macrocode}
\empty{#1}
\else
% \end{macrocode}
-% Save the advisors to |\@advisor@a|, |\@advisor@b|, \ldots.
+% Save the advisors to |\@DUT@advisor@a|, |\@DUT@advisor@b|, \ldots.
% |\alph{|\Lcount{COUNTER}|}| (\file{ltcounts.dtx}, L319) prints the
% value of \Lcount{COUNTER} as a lowercase letter: $1 =$~a, $2 =$~
% b, etc.
% \begin{macrocode}
- \stepcounter{advisors}
- \expandafter\gdef\csname @advisor@\alph{advisors}\endcsname{#1}
+ \stepcounter{@DUT@advisors}
+ \expandafter\gdef\csname @DUT@advisor@\alph{@DUT@advisors}\endcsname{#1}
\fi}
-\newcommand\@advisor{%
- \ifnum\c@advisors=0%
+% \end{macrocode}
+% Format and print a list of advisor names.
+% \begin{macrocode}
+\newcommand\@DUT@advisor{%
+ \ifnum\c@@DUT@advisors=0%
\@latex@error{No \noexpand\advisor given}\@ehc%
\else%
% \end{macrocode}
-% Start a group so \Lcount{advisor@loop} is released afterwards to
-% save memory.
+% Start a group so the scratch counter \Lcount{count\textat} is restored
+% afterwards\footnote{See the discussion in
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/localloc/}{%
+% \pkg{localloc}}
+% for some points on counter allocation.}.
% \begin{macrocode}
\begingroup%
- \newcounter{advisor@loop}%
- \setcounter{advisor@loop}{1}%
% \end{macrocode}
-% Print the first advisor.
+% Because \Lcount{count\textat} is a \TeX\ counter register not
+% wrapped by \LaTeX's counter sugar, we don't use \LaTeX's
+% |\setcounter| to set \Lcount{count\textat} to one.
+% \begin{macrocode}
+ \count@\@ne
+% \end{macrocode}
+% Print the first advisor, using \TeX's |\@alph| macro instead of
+% \LaTeX's |\alph|.
+% \begin{macrocode}
% \begin{macrocode}
- \csname @advisor@\alph{advisor@loop}\endcsname\relax%
+ \csname @DUT@advisor@\@alph\count@\endcsname\relax%
% \end{macrocode}
% For any remaining advisors\ldots
% \begin{macrocode}
- \loop\ifnum\c@advisor@loop<\c@advisors%
- \stepcounter{advisor@loop}%
+ \loop\ifnum\count@<\c@@DUT@advisors%
+% \end{macrocode}
+% Advance \Lcount{count\textat} using \TeX's |\advance| macro instead
+% of \LaTeX's |\stepcounter|.
+% \begin{macrocode}
+ \advance\count@\@ne
% \end{macrocode}
% Print the connecting text.
% \begin{macrocode}
- \ifnum\c@advisor@loop=\c@advisors%
- \ifnum\c@advisors=2%
+ \ifnum\count@=\c@@DUT@advisors%
+ \ifnum\c@@DUT@advisors=2%
% \end{macrocode}
% The next advisor if the last of two.
% \begin{macrocode}
% \end{macrocode}
% Print the advisor's name.
% \begin{macrocode}
- \csname @advisor@\alph{advisor@loop}\endcsname\relax%
+ \csname @DUT@advisor@\@alph\count@\endcsname\relax%
\repeat%
\endgroup%
\fi}
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \paragraph{baselineskip}
% \label{sec:implement-line-spacing}
%
-% \begin{macro}{\DUT@baselineskip}
+% \begin{macro}{\@DUT@baselineskip}
% Since we'll be messing with the spacing, save the single-spaced
% baseline.
-% \changes{0.3}{2010/01/13}{Use \\setlength to store the value at
-% the default font. The previous version used \\let, which made
-% \\DUT\@baselineskip a synonym for \\baselineskip that changed
-% with font size.}
+% \changes{0.3}{2010/01/13}{Use $\backslash$setlength to store the
+% value at the default font. The previous version used
+% $\backslash$let, which made $\backslash$DUT\@baselineskip a
+% synonym for $\backslash$baselineskip that changed with font
+% size.}
% \begin{macrocode}
-\newlength\DUT@baselineskip
-\setlength\DUT@baselineskip\baselineskip
+\newlength\@DUT@baselineskip
+\setlength\@DUT@baselineskip\baselineskip
% \end{macrocode}
% \end{macro}
%
% requires \pkg{calc} for the multiplication.
% \begin{macrocode}
\newcommand{\set@lines@length}[2]{%
- \setlength{#1}{\DUT@baselineskip * {#2}}}
+ \setlength{#1}{\@DUT@baselineskip * {#2}}}
% \end{macrocode}
% \end{macro}
%
%
% \subsubsection{\file{ltoutput.dtx}}
%
-% \begin{macro}{\DUT@clearpage}
-% \begin{macro}{\DUT@cleardoublepage}
+% \begin{macro}{\@DUT@clearpage}
+% \begin{macro}{\@DUT@cleardoublepage}
% Versions of |\clear*page| that only work when |\if@final| is true
% (\file{ltoutput.dtx}, L877 and L904).
% \begin{macrocode}
-\newcommand\DUT@clearpage{\if@final \clearpage \fi}
-\newcommand\DUT@cleardoublepage{\if@final \cleardoublepage \fi}
+\newcommand\@DUT@clearpage{\if@final \clearpage \fi}
+\newcommand\@DUT@cleardoublepage{\if@final \cleardoublepage \fi}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\blankpage}
+% \begin{macro}{\@DUT@blankpage}
% Add a useful extension to insert a blank page without numbering.
% In draft mode, this macro is a no-op.
% \begin{macrocode}
-\newcommand\blankpage{%
+\newcommand\@DUT@blankpage{%
\if@final
- \DUT@clearpage
+ \@DUT@clearpage
\thispagestyle{empty}
\hphantom{0}
- \DUT@clearpage
+ \@DUT@clearpage
\else\fi
}
% \end{macrocode}
% add a trailing |\par|. \emph{I'm still trying to get this part working
% cleanly\ldots}
% \begin{macrocode}
-\newlength\DUT@blanklines@length
+\newlength\@DUT@blanklines@length
\newcommand{\@blanklines@setup}[1]{%
- \set@lines@length{\DUT@blanklines@length}{#1}%
+ \set@lines@length{\@DUT@blanklines@length}{#1}%
%\typeout{BLANKLINES -- #1}%
- %\showthe\DUT@blanklines@length
+ %\showthe\@DUT@blanklines@length
}
\newcommand{\blanklines}{\@ifstar\@sblanklines\@blanklines}
\newcommand{\@blanklines}[1]{%
\@blanklines@setup{#1}%
- \vspace{\DUT@blanklines@length}}
+ \vspace{\@DUT@blanklines@length}}
\newcommand{\@sblanklines}[1]{%
\@blanklines@setup{#1}%
- \vspace*{\DUT@blanklines@length}}
+ \vspace*{\@DUT@blanklines@length}}
\newcommand{\blanklinesp}{\@ifstar\@sblanklines\@blanklines}
\newcommand{\@blanklinesp}[1]{%
\@blanklines@setup{#1}%
- \vspace{\DUT@blanklines@length}\par}
+ \vspace{\@DUT@blanklines@length}\par}
\newcommand{\@sblanklinesp}[1]{%
\@blanklines@setup{#1}%
- \vspace*{\DUT@blanklines@length}\par}
+ \vspace*{\@DUT@blanklines@length}\par}
% \end{macrocode}
% \end{macro}
%
%
+% \subsection{\pkg{hyperref} inclusion}
+% \label{sec:hyperref-inclusion}
+%
+% This is the awkward \pkg{hyperref} inclusion. See \S
+% \ref{sec:hyperref} for an explanation of why we stash it here.
+% \begin{macrocode}
+\RequirePackage[final]{hyperref}
+% \end{macrocode}
+% Nobody likes the default colored boxes. Color the text itself.
+% \begin{macrocode}
+\hypersetup{colorlinks}
+% \end{macrocode}
+%
+% \subsubsection{\pkg{hypcap}}
+% \label{sec:hypcap-inclusion}
+%
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}}
+% for placing caption hyperlink anchors. Not strictly necessary, but
+% we're using \pkg{hyperref}, and the poor link targets are annoying.
+% \begin{macrocode}
+\RequirePackage[all]{hypcap}
+% \end{macrocode}
+% \Lopt{all} redefines the figure and table environments to
+% place the anchor at the start of the float.
+%
+%
% \subsection{\cls{book} overrides and extensions}
%
% Here we change the behavior of a bunch of macros and environments from
%
% |\intextsep| is the space between in-text floats and the text. We
% don't bother overriding this one, because we've handled it with
-% \pkg{floatrow} in Section \ref{sec:floatrow}.
+% \pkg{floatrow} in \S \ref{sec:floatrow}.
%
-% From the Manual 2.3 p6, ``Tables and Figures''
+% From the Manual \S 2.3 p6, ``Tables and Figures''
% \begin{quote}
% Insert at least 3 single-spaced lines of space above table
% captions and figures and below figure captions, tables, and other
%
% \begin{macro}{\maketitle}
% Automate the creation of the title page.
-% From Manual 3.1 p8, ``Title Page'', and the example on p16.
+% From Manual \S 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?
% Our definition simplifies \cls{book}'s by ignoring footnotes.
% (\file{classes.dtx}, L1796)
% \begin{macrocode}
-\renewcommand\maketitle{
- \begin{titlepage}%
+\newcommand\@DUT@maketitle{
+ \begin{@DUT@titlepage}%
% \end{macrocode}
% Add some bookmarks if we're using pdf\LaTeX. The |frontmatter|
% bookmark is set at the \emph{part} level (-1) to hold all bookmarks
% from the |preamble| environment, since those entries are all
% chapters.
+% \changes{0.8}{2010/05/20}{W.~Trevor King replaced Titlepage with
+% Title Page for consistency with \LaTeX's book class.}
% \begin{macrocode}
\ifpdf
- \pdfbookmark[-1]{Frontmatter}{Frontmatter}
+ \pdfbookmark[-1]{Front Matter}{Front Matter}
\pdfbookmark[0]{Title Page}{Title Page}
\fi
% \end{macrocode}
% Here is the title text itself.
% \begin{macrocode}
\begin{center}%
- {\setstretch{\@tsp} \bfseries \@title \par}%
+ {\setstretch{\@tsp} \bfseries \@DUT@title \par}%
% \end{macrocode}
% We want two blank lines (triple spacing) between the title and the
% remaining material, so add three but don't end the paragraph.
of\\
Drexel University\\
by\\
- \@author\\
+ \@DUT@author\\
in partial fulfillment of the\\
requirements for the degree\\
of\\
- \@degree\\
- \def@month\ \def@year
+ \@DUT@degree\\
+ \@DUT@month\ \@DUT@year
\end{center}\par
% \end{macrocode}
% Some more stretchy space for the bottom if we're not in draft mode.
% in draft mode.
% \begin{macrocode}
\if@final \vspace*{\fill} \fi
- \end{titlepage}%
+ \end{@DUT@titlepage}%
% \end{macrocode}
% And that's it. We reset the footnote counter for the rest of the
% document and save space by freeing the memory associated with the
% \subsubsection{Copyright pages}
% \label{sec:implement-copyright}
%
-% \begin{macro}{\makecopyright}
+% \begin{macro}{\@DUT@makecopyright}
% The Manual allows for the selection of different copyrights, so we
% define a base macro that generates a proper copyright page
% containing |\@copyrighttext|, which the user can set with
% |\copyrighttext|.
-% From Manual 3.2 p9, ``Copyright Page''.
+% From Manual \S 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
% In final mode, we start off on a new page and center the blurb.
% In draft mode, we dive right into the text.
% \begin{macrocode}
-\newcommand\makecopyright{%
- \DUT@clearpage
+\newcommand\@DUT@makecopyright{%
+ \@DUT@clearpage
% \end{macrocode}
% If we're using pdf\LaTeX, add a bookmark.
% \begin{macrocode}
\ifpdf \pdfbookmark[0]{Copyright Page}{Copyright Page} \fi
\if@final \vspace*{\fill} \fi
\begin{center}
- \copyright~Copyright \def@year\\
- \@author. \@copyrighttext
+ \copyright~Copyright \@DUT@year\\
+ \@DUT@author. \@DUT@copyrighttext
\end{center}
\if@final \vspace*{\fill} \else \blanklinesp{2} \fi
% \end{macrocode}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\copyrighttextCC}
-% The Creative Commons license.
+% \begin{macro}{\copyrighttextCCBYSA}
+% \begin{macro}{\DUTcopyrighttextCCBYSA}
+% The Creative Commons Attribution-ShareAlike License.
+% \changes{0.4}{2010/02/23}{W.~Trevor King renamed from
+% $\backslash$copyrighttextCC, and made specific to Creative Commons
+% Attribution-ShareAlike Version 3.0.}
% \begin{macrocode}
-\newcommand\copyrighttextCC{
+\newcommand\copyrighttextCCBYSA{
\begin{quote}
This work is licensed under the terms of the Creative Commons
- Attribution-ShareAlike license. The license is available at \\
+ Attribution-ShareAlike license Version 3.0. The license is
+ available at \\
\url{http://creativecommons.org/licenses/by-sa/3.0/}.
\end{quote}
}
+\let\DUTcopyrighttextCCBYSA\copyrighttextCCBYSA
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
% \subsubsection{Mark commands}
% \subsubsection{Front Matter, Main Matter, and Back Matter}
%
% A book contains these three (logical) sections. The switch
-% |\@mainmatter| is true iff we are processing Main Matter. When this
-% switch is false, the |\chapter| command does not print chapter
-% numbers.
+% |\@mainmatter| is true if and only if we are processing main
+% matter\footnote{%
+% \href{http://en.wikipedia.org/wiki/Book_design}{Wikipedia}
+% suggests \emph{body matter} for the main content, but
+% \href{http://mirror.ctan.org/macros/latex/base/classes.dtx}{\LaTeX's
+% \cls{book}} uses \emph{Main Matter}. We're a \LaTeX\ class, so
+% we'll stick with ``main matter'' for consistency.
+% }. When this switch is false, the
+% |\chapter| command does not print chapter numbers.
%
% \begin{macro}{\mainmatter}
% This command clears the page (in final mode), starts arabic page
% page numbering from 1, it should also ensure that a recto page is
% used.
%
-% We replace \cls{book}'s |\clear*page| calls with |\DUT@clearpage| calls.
+% We replace \cls{book}'s |\clear*page| calls with |\@DUT@clearpage| calls.
% (\file{classes.dtx}, L2211)
% \begin{macrocode}
\renewcommand\mainmatter{%
- \DUT@cleardoublepage
+ \@DUT@cleardoublepage
\@mainmattertrue
\pagenumbering{arabic}}
% \end{macrocode}
%
% We start a new (righthand) page and use the \pstyle{plain}
% pagestyle, replacing \cls{book}'s |\clear*page| calls with
-% |\DUT@clearpage| calls and dropping twopage code.
+% |\@DUT@clearpage| calls and dropping twopage code.
% (\file{classes.dtx}, L2249)
% \begin{macrocode}
\renewcommand\part{%
\if@openright
- \DUT@cleardoublepage
+ \@DUT@cleardoublepage
\else
- \DUT@clearpage
+ \@DUT@clearpage
\fi
\thispagestyle{plain}%
\@tempswafalse
% (\file{classes.dtx}, L2472).
% \begin{macrocode}
\renewcommand\chapter{%
- \if@openright\DUT@cleardoublepage\else\DUT@clearpage\fi
+ \if@openright\@DUT@cleardoublepage\else\@DUT@clearpage\fi
\thispagestyle{plain}%
% \end{macrocode}
% Then we prevent floats from appearing at the top of this page
% listed in the TOC.
% \begin{macrocode}
\newcommand\listed@schapter[1]{%
- \if@openright\DUT@cleardoublepage\else\DUT@clearpage\fi
+ \if@openright\@DUT@cleardoublepage\else\@DUT@clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\phantomsection
% we display the chapter number.
% We drop \cls{book}'s \Lopt{twocolumn} code.
% (\file{classes.dtx}, L2496).
-% \begin{macrocode}
+% \begin{macrocode}
\def\@chapter[#1]#2{
-% \end{macrocode}
+% \end{macrocode}
% Inform the user that a new chapter is about to be typeset by writing
% a message to the terminal.
-% \begin{macrocode}
+% \changes{0.9}{2010/05/21}{W.~Trevor King disabled the label macro
+% for typeout.}
+% Some users place |\label| in their chapter argument:
+% \begin{example}
+% \chapter{Bla bla\label{x}}
+% \end{example}
+% rather than after (as recommended by
+% \href{http://en.wikibooks.org/wiki/LaTeX/Labels_and_Cross-referencing#Sections}%
+% {the \LaTeX\ Wikibook} and
+% \href{http://www.ctan.org/tex-archive/info/lshort/english/lshort.pdf}%
+% {The Not So Short Introduction to \LaTeXe\ (\S 2.8, p36)}):
+% \begin{example}
+% \chapter{Bla bla}
+% \label{x}
+% \end{example}
+% The embedded |\label| chokes |\typeout| so we temporarily redefine
+% |\label| to just gobble its contents. |\@DUT@label| stores the
+% original definition.
+% \begin{macrocode}
+ \let\@DUT@label=\label%
+ \renewcommand{\label}[1]{}%
\typeout{\@chapapp\space\thechapter. #1}%
+% \end{macrocode}
+% Restore |\label| to its previous glory.
+% \begin{macrocode}
+ \let\label=\@DUT@label%
+% \end{macrocode}
+% Now we can get on with the real work.
+% \begin{macrocode}
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
% \begin{macro}{\@makechapterhead}
% The |\@chapter| macro uses |\@makechapterhead|\meta{text} to format
% the heading of the chapter.
-% From the Manual 3.11 p11.
+% From the Manual \S 3.11 p11.
% \begin{quote}
% Chapter headings must be bold and centered.
% The chapter number and title must be on the same line, separated
% Headings must not be larger than 12 points.
% Headings must be single spaced.
% \end{quote}
-% \cls{book} sets |\@chapapp| and |\thechapter| (e.g.\ ``Chapter 5'')
+% \cls{book} sets |\@chapapp| and |\thechapter| (e.g., ``Chapter 5'')
% on a line above the chapter title, but that doesn't match the
% Manual's specification.
%
% Workaround is to pass the ``value of blanklines you want minus two''
% to |\blanklines*|. HACK!
% \begin{macro}
- \blanklines*{-1}%
+ \blanklines*{-1}% HACK!
{\parindent \z@ \raggedright \normalfont
% \end{macrocode}
% Ensure single spacing.
\fi
% \end{macrocode}
% Put a little space before the chapter body. We use four blank lines
-% to comply with the Manual 3.13 p12
+% to comply with the Manual \S 3.13 p12
% \begin{quote}
% Begin the list of sources four spaces below the heading.
% \end{quote}
% \pkg{fancyhdr}.
% (\file{classes.dtx}, L2582).
% \begin{macrocode}
-\def\@schapter#1{\schaptermark{#1}%
- \@makeschapterhead{#1}%
- \@afterheading}
+\def\@schapter#1{
+% \end{macrocode}
+% Inform the user that a new chapter is about to be typeset by writing
+% a message to the terminal.
+% \begin{macrocode}
+ \typeout{\@chapapp\space #1}%
+ \schaptermark{#1}%
+ \@makeschapterhead{#1}%
+ \@afterheading}
% \end{macrocode}
% \end{macro}
%
% ours here too.
%
% \begin{environment}{preamble}
+% \begin{environment}{DUTpreamble}
% \begin{macrocode}
\newenvironment{preamble}{%
\cleardoublepage
\@mainmatterfalse
\pagenumbering{roman}
% \end{macrocode}
-% From Manual 3.1 p8, ``Title Page''.
+% From Manual \S 3.1 p8, ``Title Page''.
% \begin{macrocode}
- \maketitle
+ \@DUT@maketitle
% \end{macrocode}
-% From Manual 3.2 p9, ``Copyright Page''.
+% From Manual \S 3.2 p9, ``Copyright Page''.
% \begin{macrocode}
- \makecopyright
+ \@DUT@makecopyright
}{%
% \end{macrocode}
-% From the Manual 3.9, p11:
+% From the Manual \S 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
+ \@DUT@blankpage
}
% \end{macrocode}
+% \LaTeX's |\newenvironment| and company work by defining |\X| and
+% |\endX| for the environment |X|. We can alias the preamble
+% environment by saving these macros.
+% \begin{macrocode}
+\let\DUTpreamble\preamble
+\let\endDUTpreamble\endpreamble
+% \end{macrocode}
+% \end{environment}
% \end{environment}
%
% \begin{environment}{dedications}
-% From the Manual 3.3 p9
+% \begin{environment}{DUTdedications}
+% From the Manual \S 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
% \end{itemize}
% \begin{macrocode}
\newenvironment{dedications}{%
- \DUT@clearpage
+ \@DUT@clearpage
\ifpdf
\phantomsection
- \pdfbookmark[0]{\dedicationsname}{\dedicationsname}
+ \pdfbookmark[0]{\DUTdedicationsname}{\DUTdedicationsname}
\fi
- \chapter*{\dedicationsname}
+ \chapter*{\DUTdedicationsname}
\setstretch{\@dsp}%
}{%
\setstretch{\@ssp}%
}
+\let\DUTdedications\dedications
+\let\endDUTdedications\enddedications
% \end{macrocode}
% \end{environment}
+% \end{environment}
%
% \begin{environment}{acknowledgments}
-% From the Manual 3.4 p9
+% \begin{environment}{DUTacknowledgments}
+% From the Manual \S 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
% \end{itemize}
% \begin{macrocode}
\newenvironment{acknowledgments}{%
- \DUT@clearpage
+ \@DUT@clearpage
\ifpdf
\phantomsection
- \pdfbookmark[0]{\acknowledgmentsname}{\acknowledgmentsname}
+ \pdfbookmark[0]{\DUTacknowledgmentsname}{\DUTacknowledgmentsname}
\fi
\chapter*{\acknowledgmentsname}
\setstretch{\@dsp}%
\setstretch{\@ssp}%
}
% \end{macrocode}
+\let\DUTacknowledgments\acknowledgments
+\let\endDUTacknowledgments\endacknowledgments
+% \end{environment}
% \end{environment}
%
% \begin{environment}{abstract}
+% \begin{environment}{DUTabstract}
% \begin{macrocode}
\newenvironment{abstract}{%
\listed@schapter{\abstractname}%
% \begin{macrocode}
\blanklines{-4}%
% \end{macrocode}
-% From the Manual 3.9 p10
+% From the Manual \S 3.9 p10
% \begin{quote}
% \begin{itemize}
% \item The following heading must be centered at the top of the page
% \begin{macrocode}
\begin{center}
\setstretch{\@ssp}%
- \@title\\
- \@author\\
- \@advisor\\
+ \@DUT@title\\
+ \@DUT@author\\
+% \end{macrocode}
+% If you're feeling daring, break the rules and add ``Advisor(s):'' to
+% set off your list of advisor names.
+% \changes{0.11}{2010/06/04}{W.~Trevor King added ``Advisor(s):'' for
+% daring users.}
+% \begin{macrocode}
+ \ifdaring{%
+ \ifnum\c@@DUT@advisors=\@ne%
+ Advisor:
+ \else%
+ Advisors:
+ \fi}{}
+ \@DUT@advisor\\
\end{center}
\blanklines{4}%
\setstretch{\@dsp}%
}{%
\setstretch{\@ssp}%
}
+\let\DUTabstract\abstract
+\let\endDUTabstract\endabstract
% \end{macrocode}
% \end{environment}
+% \end{environment}
%
% \begin{environment}{thesis}
-% From the Manual 3.10 p11
+% \begin{environment}{DUTthesis}
+% From the Manual \S 3.10 p11
% \begin{itemize}
% \item The pages are counted and numbered in Arabic numerals.
% \end{itemize}
\setstretch{\@dsp}%
}{%
\setstretch{\@ssp}%
- \DUT@clearpage
+ \@DUT@clearpage
+% \end{macrocode}
+% \changes{0.8}{2010/05/20}{W.~Trevor King replaced Titlepage with
+% Title Page for consistency with \LaTeX's book class.}
+% \begin{macrocode}
\ifpdf
\phantomsection
- \pdfbookmark[-1]{Backmatter}{Backmatter}
+ \pdfbookmark[-1]{Back Matter}{Back Matter}
\fi
}
+\let\DUTthesis\thesis
+\let\endDUTthesis\endthesis
% \end{macrocode}
% \end{environment}
+% \end{environment}
%
% \paragraph{Vita}
% \label{sec:implement-vita}
%
% \begin{environment}{vita}
-% From the Manual 3.15 p13
+% \begin{environment}{DUTvita}
+% From the Manual \S 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.
}{%
\setstretch{\@ssp}%
}
+\let\DUTvita\vita
+\let\endDUTvita\endvita
% \end{macrocode}
% \end{environment}
+% \end{environment}
%
%
% \subsubsection{Titlepage}
% the title. We also drop the \Lopt{twocolumn} code.
% (\file{classes.dtx}, L3111)
% \begin{macrocode}
-\renewenvironment{titlepage}{\thispagestyle{empty}%
- \setcounter{page}\z@}%
- {\if@final \newpage \else \blanklinesp{2} \par \fi}
+\renewenvironment{titlepage}%
+ {\thispagestyle{empty}%
+ \setcounter{page}\z@}%
+ {\if@final \newpage \else \blanklinesp{2} \par \fi}
+\let\@DUT@titlepage\titlepage
+\let\end@DUT@titlepage\endtitlepage
% \end{macrocode}
% \end{environment}
%
% \label{sec:implement-appendix}
%
% \begin{macro}{\appendix}
+% \begin{macro}{\DUTappendix}
% The |\appendix| command is not really an environment, it is a
% macro that makes some changes in the way things are done.
%
% double-spacing.
% (\file{classes.dtx}, L3177)
% \begin{macrocode}
-\let\DUT@appendix\appendix
+\let\@DUT@appendix\appendix
\renewcommand\appendix{%
- \DUT@appendix%
+ \@DUT@appendix%
% \end{macrocode}
% Setup TOC entries like
% \begin{center}
% \begin{macrocode}
\setstretch{\@dsp}%
}
+\let\DUTappendix\appendix
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
%
% \subsubsection{Table of Contents}
% \label{sec:implement-toc}
%
-% From Manual 3.5 p9, ``Table of Contents'', and the example on p17.
+% From Manual \S 3.5 p9, ``Table of Contents'', and the example on p17.
% \begin{quote}
% \begin{itemize}
% \item Do not list any sections that precede the
-% |Table of Contents| (e.g.\ |Dedications|, |Acknowledgments|). Do
+% |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}
% \end{macrocode}
% Start a new page in \Lopt{final} mode
% \begin{macrocode}
- \DUT@clearpage
+ \@DUT@clearpage
% \end{macrocode}
% Add a bookmark if we're using pdf\LaTeX.
% \begin{macrocode}
% \end{macro}
% \end{macro}
%
+% The default indents above are all |0pt|. If \Lopt{indenttoc} was
+% given, override this, restoring the \pkg{tocloft} defaults, see the
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf}{%
+% \pkg{tocloft} manual, Table 1}.
+% \begin{macrocode}
+\if@indenttoc
+ \cftsetindents{chapter}{0pt}{1.5em}
+ \cftsetindents{section}{1.5em}{2.3em}
+ \cftsetindents{subsection}{3.8em}{3.2em}
+ \cftsetindents{subsubsection}{7.0em}{4.1em}
+\fi
+% \end{macrocode}
+%
%
% \subsubsection{List of figures}
% \label{sec:implement-lof}
%
-% From the Manual 3.7 p10
+% From the Manual \S 3.7 p10
% \begin{quote}
% \begin{itemize}
% \item The heading |List of Figures| must appear at the top of
% \subsubsection{List of tables}
% \label{sec:implement-lot}
%
-% From the Manual 3.6 p10
+% From the Manual \S 3.6 p10
% \begin{quote}
% \begin{itemize}
% \item The heading |List of Tables| must appear at the top of the
% \begin{macrocode}
\newcommand{\bib@heading}{%
\listed@schapter{\bibname}%
- \@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
}
% \end{macrocode}
% \end{macro}
%
+%
+% \subsubsection{Index}
+%
+% \begin{environment}{theindex}
+% The environment |theindex| can be used for indices. It makes an
+% index with two columns, with each entry a separate paragraph. At
+% the user level the commands |\item|, |\subitem| and |\subsubitem|
+% are used to produce index entries of various levels. When a new
+% letter of the alphabet is encountered an amount of |\indexspace|
+% white space can be added.
+%
+% Override \cls{book}'s version, adding a line to the table of
+% contents. We split out the section-creation code into
+% |\bib@heading| for \pkg{natbib} compatibility.
+% (\file{classes.dtx}, L4107).
+% \begin{macrocode}
+\renewenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+% \end{macrocode}
+% Here we add our TOC entry, and setup two-columness by hand
+% to avoid the |\clearpage| in \LaTeX's default |\twocolumn|.
+% \begin{macrocode}
+ \listed@schapter{\indexname}
+ \global\columnwidth\textwidth
+ \global\advance\columnwidth-\columnsep
+ \global\divide\columnwidth\tw@
+ \global\hsize\columnwidth
+ \global\linewidth\columnwidth
+ \global\@twocolumntrue
+ \global\@firstcolumntrue
+ \col@number \tw@
+% \end{macrocode}
+% Parameter changes to |\columnseprule| and |\columnsep| have to be
+% done after |\twocolumn| has acted. Otherwise they can affect the
+% last page before the index.
+% \begin{macrocode}
+ \parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \columnseprule \z@
+ \columnsep 35\p@
+ \let\item\@idxitem}
+% \end{macrocode}
+% When the document continues after the index and it was a one
+% column document we have to switch back to one column after the
+% index.
+% \begin{macrocode}
+ {\if@restonecol\onecolumn\else\@DUT@clearpage\fi}
+% \end{macrocode}
+% \end{environment}
+%
+%
% \subsubsection{Words}
+% \label{sec:words}
%
% Set the official names of the various sections encountered. Some of
% these are not defined in \file{classes.dtx} but are close analogs of
% those that are.
%
% \begin{macro}{\dedicationsname}
-% From the Manual 3.3 p9, ``The heading |Dedications| must appear at
+% From the Manual \S 3.3 p9, ``The heading |Dedications| must appear at
% the top of the page.''
% \begin{macrocode}
\newcommand\dedicationsname{Dedications}
+\let\DUTdedicationsname\dedicationsname
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\acknowledgmentsname}
-% From the Manual 3.4 p9, ``The heading |Acknowledgments| must appear
+% From the Manual \S 3.4 p9, ``The heading |Acknowledgments| must appear
% at the top of the page.''
% \begin{macrocode}
\newcommand\acknowledgmentsname{Acknowledgments}
+\let\DUTacknowledgmentsname\acknowledgmentsname
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\contentsname}
-% From the Manual 3.5 p9, ``The heading |Table of Contents| must
+% From the Manual \S 3.5 p9, ``The heading |Table of Contents| must
% appear at the top of the page.'' (\file{classes.dtx}, L4331)
% \begin{macrocode}
\renewcommand\contentsname{Table of Contents}
+\let\DUTcontentsname\contentsname
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listtablename}
-% From the Manual 3.6 p10, ``The heading |List of Tables| must appear
+% From the Manual \S 3.6 p10, ``The heading |List of Tables| must appear
% at the top of the page.'' (\file{classes.dtx}, L4333)
% \begin{macrocode}
\renewcommand\listtablename{List of Tables}
+\let\DUTlisttablename\listtablename
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\listfigurename}
-% From the Manual 3.7 p10, ``The heading |List of Figures| must appear
+% From the Manual \S 3.7 p10, ``The heading |List of Figures| must appear
% at the top of the page.'' (\file{classes.dtx}, L4332)
% \begin{macrocode}
\renewcommand\listfigurename{List of Figures}
+\let\DUTlistfigurename\listfigurename
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\abstractname}
-% From the Manual 3.8 p10, ``The following heading must be centered at
+% From the Manual \S 3.8 p10, ``The following heading must be centered at
% the top of the first page: |Abstract|\ldots.''
% (\file{classes.dtx}, L4367)
% \begin{macrocode}
\newcommand\abstractname{Abstract}
+\let\DUTabstractname\abstractname
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\bibname}
-% From the Manual 3.13 p12, ``The heading |Bibliography| (or
+% From the Manual \S 3.13 p12, ``The heading |Bibliography| (or
% |List of References|) must appear at the top of first page.''
% (\file{classes.dtx}, L4344)
% \begin{macrocode}
\renewcommand\bibname{Bibliography}
+\let\DUTbibname\bibname
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\appendixname}
-% From the Manual 3.14 p12, ``Number the appendicies consecutively
+% From the Manual \S 3.14 p12, ``Number the appendicies consecutively
% either alphabetically or numerically (|Appendix A|, |Appendix B|\ldots
% or |Appendix 1|, |Appendix 2|\ldots).''
% (\file{classes.dtx}, L4366)
% \begin{macrocode}
\renewcommand\appendixname{Appendix}
+\let\DUTappendixname\appendixname
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\vitaname}
-% From the Manual 3.15 p13, ``The heading |Vita| must appear at the
+% From the Manual \S 3.15 p13, ``The heading |Vita| must appear at the
% top of the page.''
% \begin{macrocode}
\newcommand\vitaname{Vita}
-% \end{macrocode}
+\let\DUTvitaname\vitaname
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DUTnames}
+% Some packages (e.g.,
+% \href{http://www.ctan.org/tex-archive/macros/latex/required/babel/}{%
+% \pkg{babel}})
+% mess with our |\*name| values and we have to restore them.
+\newcommand{\DUTnames}{%
+ \gdef\dedicationsname{\DUTdedicationsname}%
+ \gdef\contentsname{\DUTcontentsname}%
+ \gdef\listtablename{\DUTlisttablename}%
+ \gdef\listfigurename{\DUTlistfigurename}%
+ \gdef\bibname{\DUTbibname}%
+ \gdef\appendixname{\DUTappendixname}%
+ \gdef\vitaname{\DUTvitaname}%
+}
% \end{macro}
%
%
% \subsubsection{Terminal blank page}
%
% Add a terminal blank page (when |\if@final| is true)
-% From the Manual 3.16 p13
+% From the Manual \S 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}
+\AtEndDocument{\@DUT@blankpage}
% \end{macrocode}
%
%
%% Enter the appropriate information here
\author{} % Fullname
\title{} % Title Of Thesis
-\defmonth{} % Name of the month of you defense
-\defyear{} % Year you are defending
+\DUTmonth{} % Name of the month of you defense
+\DUTyear{} % Year you are defending
\degree{} % Your target degree, spelled out
\advisor{} % Advisor's full name, degree
\copyrighttext{} % If not "All Rights Reserved."
\end{preamble}
\begin{thesis}
+%% If your thesis does not use \part{}s, you may want to add a
+%% part-level PDF bookmark to set the main matter of from the front
+%% matter.
+%%\pdfbookmark[-1]{Main Matter}{Main Matter}
+
%% Use include statements to include your main thesis code
%% from seperate files.
%%\include{part1}
%
% \subsubsection{Main}
%
-% \begin{macrocode}
+% \begin{macrocode}
%<*example|example-draft>
%% See drexel-thesis.pdf for details.
-%<example>\documentclass{drexel-thesis}
-%<example-draft>\documentclass[draft]{drexel-thesis}
+%<example>\documentclass[subfig]{drexel-thesis}
+%<example-draft>\documentclass[draft,subfig]{drexel-thesis}
%% Enter the appropriate information here
\author{Johny Henry}
\title{Inadequacies of Steam-Driven Boring Machines}
-\defmonth{July}
-\defyear{1872}
+\DUTmonth{July}
+\DUTyear{1872}
\degree{Doctor of Philosophy}
\advisor{Collis Potter Huntington, R.R.D.}
\advisor{Advisor 2, Ph.D.}
\advisor{Advisor 3, Ph.D.}
-\copyrighttext{\copyrighttextCC}
+\copyrighttext{\copyrighttextCCBYSA}
\usepackage[super,sort&compress]{natbib} % fancy citation extensions
\bibliographystyle{unsrtnat}
\usepackage{fancyvrb} % nicer verbatim handling
\DefineShortVerb{\|} % \verb+TEXT+ -> |TEXT|
-\usepackage{blabla} % \blabla macro for producing dummy output
+% \end{macrocode}
+% Sometimes other packages clobber \cls{drexel-thesis}'s macros and
+% environments. It's ok though, the originals are all aliased to
+% |\DUT*|. We'll just have to use |DUTpreamble| instead.
+% \begin{macrocode}
+\renewenvironment{preamble}{% look, we're clobbering an environment!
+ What preamble?\begingroup\color{white}}{\endgroup}
+
+% \end{macrocode}
+% Use
+% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/blindtext/}%
+% {\pkg{blindtext}}
+% for dummy text creation. \pkg{blindtext} requires
+% \href{http://www.ctan.org/tex-archive/macros/latex/required/babel/}%
+% {\pkg{babel}}.
+% \begin{macrocode}
+\usepackage[english]{babel} % English blindtext
+\usepackage{blindtext} % macros for producing dummy output
+% \end{macrocode}
+% \pkg{babel} messes with some of our words (\S \ref{sec:words}), so
+% we have to reset them. See the
+% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=latexwords}{\TeX\ FAQ}
+% for details.
+% \begin{macrocode}
+\addto\captionsenglish{\DUTnames}
\begin{document}
-\begin{preamble}
+\begin{DUTpreamble} % "DUT" because original preamble was clobbered.
\begin{dedications}
-\blabla{10}{20}
+We're in \iffinal{final}{draft} mode!
+
+\Blindtext[3]
\end{dedications}
\begin{acknowledgments}
-\blabla{10}{20}
+\Blindtext[3]
\end{acknowledgments}
\tableofcontents
\listoffigures
\begin{abstract}
-\blabla{10}{20}
+\Blindtext[3]
\end{abstract}
-\end{preamble}
+\end{DUTpreamble}
\begin{thesis}
\include{example-1}
\include{example-a}
\begin{vita}
-\blabla{10}{20}
+\Blindtext[3]
\end{vita}
\end{document}
%
%
% \subsubsection{Part}
+% \label{section:better-example-part}
%
-% \begin{macrocode}
+% \begin{macrocode}
%<*example-part>
\part{A Part Heading}
\chapter{A Chapter Heading}
parenthetical citation\citep{rief97}.
\subsubsection{Tables and Figures}
-\blabla{2}{20}
+\Blindtext[2]
\begin{table}
\begin{center}
\begin{tabular}{r@{.}l r@{.}l r@{.}l}
30&0 & 11&9 & 10&1 \\
\ldots
\end{tabular}
- \caption{A table float. \bla{20}} % low caption allowed with floatrow
+ \caption{A table float.} % low caption allowed with floatrow
%% 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}).
%% to span the pre- and post-decimal columns.
\end{center}
\end{table}
-\blabla{5}{20}
+\Blindtext[2]
\begin{figure}
- \caption{A figure float. \bla{20}} % high caption allowed with floatrow
+ \caption{A figure float. \blindtext} % high caption allowed with floatrow
\begin{center}
\includegraphics[width=0.4\textwidth]{drexel-logo}
\end{center}
\end{figure}
-\blabla{10}{20}
+\Blindtext[3]
+\begin{figure}
+ \begin{center}
+ \subfloat[][]{%
+ \includegraphics[width=0.2\textwidth]{drexel-logo}%
+ \label{fig:sub-a}}
+ \subfloat[][]{%
+ \includegraphics[width=0.2\textwidth]{drexel-logo}%
+ \label{fig:sub-b}}
+ \caption{(a) One subfig float. (b) Another subfig float.%
+ \label{fig:both}}
+ \end{center}
+\end{figure}
+You can reference the subfig floats individually (\ref{fig:sub-a}) or
+together (\ref{fig:both}).
+
+\Blindtext[3]
\part{Another Part}
\chapter{Another Chapter}
-\blabla{30}{20}
+\Blindtext[5]
\chapter{A Long Title Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla
Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla}
-\blabla{30}{20}
-\section{Section in long-titled chapter}
-\blabla{30}{20}
+\Blindtext[5]
%</example-part>
% \end{macrocode}
%
% \begin{macrocode}
%<*example-appendix>
\chapter{Some Appendix Heading}
-\blabla{10}{20}
+\Blindtext[5]
\chapter{Another Appendix Heading}
-\blabla{10}{20}
+\Blindtext[5]
%</example-appendix>
% \end{macrocode}
%
%
-% \subsubsection{\pkg{blabla}}
-%
-% Define the \pkg{blabla} package for generating dummy text. This
-% will make it easier to generate reasonable exampes.
-% \begin{macrocode}
-%<*blabla>
-\ProvidesPackage{blabla} [2010/01/11 1.0 Dummy text generation]
-% \end{macrocode}
-% Use
-% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/forloop/}{\pkg{foorloop}}
-% for
-% \begin{command}
-% `\cs{forloop}\oarg{step}\marg{counter}\marg{initial value}\marg{condition}\marg{code}'
-% \end{command}
-% \begin{macrocode}
-\RequirePackage{forloop}[2006/09/18]
-
-\newcounter{blabla@i}
-\newcounter{blabla@j}
-\newcommand{\bla}[1]{
- Bla
- \forloop{blabla@i}{0}{\value{blabla@i} < #1}{ bla }
- bla.
-}
-\newcommand{\blabla}[2]{
- \forloop{blabla@j}{0}{\value{blabla@j} < #1}{ \bla{#2}\par }
-}
-%</blabla>
-% \end{macrocode}
-%
-%
% \section{Known bugs and issues}
%
%
% \begin{itemize}
% \item Different space between chapter heading and section heading,
% vs.\ chapter heading and text. Compare \emph{A Chapter Heading}
-% and \emph{Another Chapter} in \file{example.pdf}.
+% and \emph{Another Chapter} in \file{example.pdf}. This is a
+% problem (although with opposite order) in the \cls{book} class
+% itself. For example, compile
+% \begin{example}
+%\documentclass{book}
+%\begin{document}
+%\chapter{Chapter with text}
+%Bla bla bla.
+%\chapter{Chapter with section}
+%\section{Section}
+%Bla bla bla.
+%\end{document}
+% \end{example}
% \item Footer overlap if chapter/section names are particularly long.
% See \emph{Section in long-titled chapter} in \file{example.pdf}.
-% Workaround: turn off either chapters or sections in the footer.
+% Workaround: turn off sections in the footer:
% \begin{example}
% \fancyfoot[RE,LO]{\scshape\leftmark}
% \fancyfoot[LE,RO]{}
% \end{example}
+% For more header or footer manipulation ideas, see \S \ref{sec:fancyhdr}.
% \end{itemize}
%
%