X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=drexel-thesis.dtx;h=7c2d8222736e332938ffd4648d2140102316e612;hb=d0cff6c22875bf4acdba661be7f31b674ef7d95c;hp=814727ba06c56790b14366be92bfffd18ae850f7;hpb=8785e036627b2dc83e4918142c82f0b24fb466cc;p=drexel-thesis.git diff --git a/drexel-thesis.dtx b/drexel-thesis.dtx index 814727b..7c2d822 100644 --- a/drexel-thesis.dtx +++ b/drexel-thesis.dtx @@ -1,22 +1,28 @@ -% \def\fileversion{0.3} -% \def\filedate{2010/01/13} +% \def\fileversion{0.14} +% \def\filedate{2010/09/21} % \iffalse meta-comment -%\def\fileversion{0.3} -%\def\filedate{2010/01/13} -% -% Copyright (C) 2010 C.Y. Ip -% Christopher D. Cera -% Christopher S. Dahn -% Daniel J. Cross -% David T. McWherter -% Evan Sultanik -% Jeff Arahamson -% Mitchell Peabody -% R. Rojas, E -% Robert Bernecky -% T. Tsankov -% Vincent A. Cicirello -% W. Trevor King +%<*driver> +\ProvidesFile{drexel-thesis.dtx} +\documentclass{ltxdoc} +% +%<*class|driver> +\def\fileversion{0.14} +\def\filedate{2010/09/21} +% +% +% Copyright (C) 2010-2012 C.Y. Ip +% Christopher D. Cera +% Christopher S. Dahn +% Daniel J. Cross +% David T. McWherter +% Evan Sultanik +% Jeff Arahamson +% Mitchell Peabody +% R. Rojas, E +% Robert Bernecky +% T. Tsankov +% Vincent A. Cicirello +% W. Trevor King % ------------------------------------------------------- % % This file may be distributed and/or modified under the @@ -36,17 +42,15 @@ % \fi % % \iffalse meta-comment -%<*driver> -\ProvidesFile{drexel-thesis.dtx} -% %\NeedsTeXFormat{LaTeX2e} %\ProvidesClass{drexel-thesis} % [\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}} % % Include some useful commands from |xkeyval|'s ||. %<*driver> @@ -72,6 +76,13 @@ \newcommand*{\Lcount}[1]{\textsl {\small#1}} \newcommand*{\pstyle}[1]{\textsl {#1}} % +% 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> \makeatletter \def\DescribeOption#1{\leavevmode\@bsphack @@ -129,6 +140,32 @@ % 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 \cs{label} for \cs{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 \cs{if@final} +% handling. Previous versions used it more like a hypothetical +% \cs{if@finalspace}. Also adjusted theindex to use a +% \cs{listed@schapter}.} +% \changes{0.10}{2010/05/21}{W.~Trevor King added \cs{DUT*} +% aliases for all public macros and environments and renamed +% \cs{defmonth} and \cs{defyear} to \cs{DUTmonth} and \cs{DUTyear} +% for consistency with the new aliases.} +% \changes{0.13}{2010/07/28}{W.~Trevor King cleaned up TOC/LOT/LOF code.} +% \changes{0.14}{2010/09/21}{Evan Sultanik added the +% \texttt{approvalform} option for including a \LaTeX\ version of +% the T-1 thesis form.} +% \changes{0.15}{2011/04/22}{W.~Trevor King added the +% \texttt{nodraftwatermark} option for clearing previous watermark +% options.} +% \changes{0.15}{2011/04/23}{W.~Trevor King added the +% \texttt{pagebreak} and \texttt{nopagebreak} options for +% controlling page breaking independently of \texttt{final} and +% \texttt{draft}.} % % \MakeShortVerb{\|} % \newcommand{\pkg}[1]{\textsf{#1}} @@ -137,8 +174,8 @@ % % \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.} +% \author{W.~Trevor King \\\texttt{wking@tremily.us} +% \and Daniel J.~Cross \and T.~Tsankov \and R.~Rojas. \and Evan A.~Sultanik} % \date{\filedate} % % \maketitle @@ -160,6 +197,12 @@ % \documentclass{drexel-thesis} % \end{example} % +% For \href{http://www.lyx.org/}{LyX} users, we include a LyX template +% (\file{drexel-thesis.layout}, originally by John K. Parejko) so that +% the previews generated in LyX are similar to those generated by the +% actual \cls{drexel-thesis} class. +% +% % \subsection{Options} % % \DescribeOptions{final,draft} @@ -177,15 +220,18 @@ % side of the page (not double-sided).'' \\ % \Lopt{finalspace} & Assorted single, double, and triple spacing % directives. \\ -% \Lopt{dottedtoc} & From the example on p17. +% \Lopt{pagebreak} & Conform to thesis pagebreak rules. \\ +% \Lopt{dottedtoc} & From the example on p17. \\ +% \Lopt{nodraftwatermark} & Clear any earlier watermark options. % \end{tabular} % % \Lopt{draft} mode corresponds to \\ % \begin{tabular}{r p{0.8\textwidth}} % \Lopt{twoside} & Save space. \\ % \Lopt{draftspace} & Save space. \\ +% \Lopt{nopagebreak} & Save space. \\ % \Lopt{dottedtoc} & Might as well be consistent with \Lopt{final}. \\ -% \Lopt{mydraftwatermark} & It's good to have a timestamp. \\ +% \Lopt{xdraftwatermark} & It's good to have a timestamp. % \end{tabular} % % \DescribeOption{subfig} @@ -194,7 +240,7 @@ % 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 Section +% pesky details will be taken care of. See \S % \ref{sec:better-example} for an example. % % \DescribeOption{finalspace} @@ -203,6 +249,12 @@ % \DescribeOption{draftspace} % Tighten spacing. % +% \DescribeOption{pagebreak} +% Break pages between chapters and chapter-like blocks. +% +% \DescribeOption{nopagebreak} +% Don't break pages between chapters and chapter-like blocks (saves paper). +% % \DescribeOptions{dottedtoc,boldtoc, % dottedpart,boldpart, % dottedchapter,boldchapter} @@ -211,20 +263,60 @@ % 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{blackref} +% \Lopt{blackref} colors all \pkg{hyperref} links black, so they won't +% stand out in your printed document. +% % \DescribeOption{draftwatermark} % \Lopt{draftwatermark} adds ``DRAFT \meta{date}'' watermarks to each % page. A useful way to remember that the version you're looking at % is not final. Also helps reviewers tell you what version they're -% correcting. Requires the \pkg{draftmark} package. +% correcting. Requires the \pkg{draftmark} package, which allows you +% to override the default watermark style if it is not to your liking +% (\S~\ref{sec:draftmark}). % -% \DescribeOption{mydraftwatermark} -% \Lopt{mydraftwatermark} is similar to \Lopt{draftwatermark} but -% depends on the possibly more common \pkg{xcolor}, \pkg{eso-pic}, -% and \pkg{graphicx}. +% \DescribeOption{xdraftwatermark} +% \Lopt{xdraftwatermark} is also similar to \Lopt{draftwatermark} but +% depends on the possibly more common \pkg{xcolor}, \pkg{eso-pic}, and +% \pkg{graphicx}. +% +% \DescribeOption{nodraftwatermark} +% \Lopt{nodraftwatermark} clears any earlier watermark options. For +% example +% \begin{example} +% \documentclass[draft,nodraftwatermark]{drexel-thesis} +% \end{example} +% will format your thesis in \Lopt{draft} mode but without a watermark. +% On the other hand, +% \begin{example} +% \documentclass[draftmark,final]{drexel-thesis} +% \end{example} +% will also format your thesis without a watermark, because +% \Lopt{final} sets \Lopt{nodraftwatermark} internally. % % \DescribeOption{indentfirst} % \Lopt{indentfirst} indents the first paragraph after sections etc. % +% \DescribeOption{approvalform} +% \Lopt{approvalform} includes a copy of the +% \href{http://www.drexel.edu/graduatestudies/forms/Thesis_Approval_Form.pdf}{% +% T-1} approval form as the first page of your thesis/dissertation. +% This form is bound to the front of every thesis/dissertation by the +% library. The version that is generated by this option is typeset in +% \LaTeX\ with the same margins, fonts, etc.~as the rest of +% your document. The title of your dissertation and your name are +% automatically entered. +% +% \DescribeOption{daring} +% \Lopt{daring} breaks the official thesis rules in pursuit of a nicer +% layout. +% % % \subsubsection{Interesting \cls{book} options} % @@ -245,21 +337,34 @@ % % \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} @@ -270,6 +375,7 @@ % `\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} @@ -281,24 +387,24 @@ % \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} @@ -309,7 +415,9 @@ % `\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 @@ -325,26 +433,31 @@ % `\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} @@ -365,7 +478,7 @@ % 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. % @@ -373,20 +486,23 @@ % `\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} @@ -394,10 +510,67 @@ % 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{ifdraftwatermark}\marg{draftwatermark-mode-action}\marg{other-action}' +% \end{command} +% \DescribeMacro{\ifdraftwatermark} +% \DescribeMacro{\DUTifdraftwatermark} +% Include \Lopt{draftwatermark}-specific code (e.g. |\draftmarksetup|, +% \S~\ref{sec:draftmark}).. +% \begin{example} +% We \ifdraftwatermark{are}{aren't} in draftwatermark 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} +% +% \begin{command} +% `\cs{drexellogobw}' +% \end{command} +% \DescribeMacro{\drexellogobw} +% Draws a black-and-white official vector Drexel logo. The image is +% exactly 1~inch wide and 1.016~inches tall. This is accomplished +% using the \pkg{tikz} package (\S~\ref{sec:tikz}). You can enclose +% this command in a |\scalebox| to alter its size. +% % % \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 @@ -410,19 +583,21 @@ % \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 @@ -430,7 +605,8 @@ % \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: @@ -445,8 +621,9 @@ % \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} @@ -460,7 +637,8 @@ % \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: @@ -497,9 +675,11 @@ % \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} @@ -517,7 +697,7 @@ % \caption{Some caption text} % \end{float} % \end{example} -% For more useful float information, see the examples in Section +% 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}. @@ -527,7 +707,7 @@ % % 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}} @@ -554,12 +734,25 @@ % \subsubsection{Hyperlinks} % % \cls{drexel-thesis} loads -% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/}{\pkg{hyperref}}. +% \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} % +% The default \pkg{hyperref} colors can be a bit jarring. Feel free +% to use \Lopt{blackref} or override them yourself: +% \begin{example} +% \usepackage{xcolor} +% \definecolor{dark-gray}{gray}{0.3} +% \hypersetup{citecolor=dark-gray} +% \end{example} +% See +% \href{http://mirror.ctan.org/macros/latex/contrib/hyperref/doc/manual.pdf}{% +% the hyperref manual} (\S 3.4 Extension options) +% for a list of |*color| options. +% % 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 @@ -602,6 +795,27 @@ % \StopEventually{\pagebreak\PrintChanges} % % +% \subsubsection{Passing options to packages used by \textsf{drexel-thesis}} +% +% +% \cls{drexel-thesis} uses a number of \LaTeX\ packages internally to +% format your thesis. Sometimes you also want to use these packages +% directly, but \cls{drexel-thesis} is not passing them the option(s) +% you need. The way to deal with these issues is +% \href{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=optionclash}{% +% \cs{PassOptionsToPackage}}. +% \begin{command} +% `\cs{PassOptionsToPackage}\marg{option,...}\marg{package}' +% \end{command} +% For example, if you need to pass \Lopt{table} to \pkg{xcolor}, use: +% \begin{example} +% \PassOptionToPackage{table}{xcolor} +% \documentclass{drexel-thesis} +% \end{example} +% Note that you need to call \cs{PassOptionsToPackage} before the +% target package is imported via \cs{documentclass}. +% +% % \section{Implementation} % \begin{macrocode} %<*class> @@ -616,7 +830,7 @@ % 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} @@ -625,16 +839,537 @@ % \begin{macrocode} \newif\if@mainmatter \@mainmattertrue \newif\if@DUT@subfigopt +\newif\if@DUT@pagebreak \newif\if@dottedchapter \newif\if@boldchapter \newif\if@boldpart \newif\if@dottedpart +\newif\if@indenttoc +\newif\if@blackref \newif\if@draftwatermark -\newif\if@mydraftwatermark +\newif\if@xdraftwatermark \newif\if@indentfirst -\newif\if@final \@finalfalse +\newif\if@final +\newif\if@daring +\newif\if@approvalform % \end{macrocode} % +% \begin{macro}{\iffinal} +% \begin{macro}{\DUTiffinal} +% Setup a user-friendly means for including \Lopt{final}- or +% \Lopt{draft}-specific code. +% \changes{0.7}{2010/03/14}{W.~Trevor King added iffinal macro.} +% \changes{0.15}{2011/04/22}{W.~Trevor King added DUTiffinal macro.} +% \begin{macrocode} +\newcommand\iffinal[2]{\if@final #1\else #2\fi} +\let\DUTiffinal\iffinal +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifdraftwatermark} +% \begin{macro}{\DUTifdraftwatermark} +% Setup a user-friendly means for including +% \Lopt{draftwatermark}-specific code (e.g. |\draftmarksetup|, +% \S~\ref{sec:draftmark}). +% \changes{0.15}{2011/04/22}{W.~Trevor King added ifdraftwatermark macro.} +% \changes{0.15}{2011/04/22}{W.~Trevor King added DUTifdraftwatermark macro.} +% \begin{macrocode} +\newcommand\ifdraftwatermark[2]{\if@draftwatermark #1\else #2\fi} +\let\DUTifdraftwatermark\ifdraftwatermark +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ifdaring} +% \begin{macro}{\DUTifdaring} +% Setup a user-friendly means for including \Lopt{daring}-specific +% code. +% \changes{0.11}{2010/06/04}{W.~Trevor King added ifdaring macro.} +% \changes{0.15}{2011/04/22}{W.~Trevor King added DUTifdaring macro.} +% \begin{macrocode} +\newcommand\ifdaring[2]{\if@daring #1\else #2\fi} +\let\DUTifdaring\ifdaring +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DUT@makeapprovalform} +% Typesets the T-1 thesis/dissertation approval form. +% \changes{0.14}{2010/09/21}{Evan Sultanik added macro.} +% \begin{macrocode} +\newcommand\DUT@makeapprovalform{ + \thispagestyle{empty} + \begingroup + \newlength{\tempskipa} + \newlength{\tempskipb} +% \end{macrocode} +% Don't indent paragraphs on this page. +% \begin{macrocode} + \parindent \z@ +% \end{macrocode} +% Setup $\mbox{tempskipa} = \mbox{logo width} + \mbox{4pt}$ and +% $\mbox{tempskipb} = \mbox{textwidth} - \mbox{tempskipa} - +% \mbox{4pt}$. The first |pt| ensures the logo will fit in the left +% column; the second provides some buffer space between the minipages. +% \begin{macrocode} + \settowidth{\tempskipa}{\drexellogobw} + \addtolength{\tempskipa}{1em} + \setlength{\tempskipb}{\textwidth} + \addtolength{\tempskipb}{-\tempskipa} + \addtolength{\tempskipb}{-1em} +% \end{macrocode} +% Add the logo and form title in columns. Each column is in a minipage. +% \begin{macrocode} + \begin{minipage}[c]{\tempskipa} +% \end{macrocode} +% |\raisebox| drops the logo so that the image is centered on the baseline. +% \begin{macrocode} + \raisebox{-0.5\height}{\drexellogobw} + \end{minipage} + \hfill + \begin{minipage}[c]{\tempskipb} +% \end{macrocode} +% Unlike |\newline| or |\\|, |\linebreak| justifies the current line +% before requesting a newline. +% \begin{macrocode} + \textbf{\Huge Office of Graduate Studies} \linebreak + \vskip 0.1\baselineskip +% \end{macrocode} +% The original form lacks the spaces around the slash (|/|), but +% \LaTeX's font and kerning make the second line more compact in our +% version. Allowing stretchy spaces around the slash helps the second +% line look more balanced. +% \begin{macrocode} + \textbf{\LARGE Dissertation / Thesis Approval Form} \linebreak + \end{minipage} + + \vskip 2\baselineskip + + This form is for use by all doctoral and master's students with a + dissertation/thesis requirement. Please print clearly as the + library will bind a copy of this form with each copy of the + dissertation/thesis. All doctoral dissertations must conform to + university format requirements, which is the responsibility of the + student and supervising professor. Students should obtain a copy of + the Thesis Manual located on the library website. + + \vspace*{\fill} +% \end{macrocode} +% Setup $\mbox{tempskipb} = \mbox{left column width}$ and +% $\mbox{tempskipa} = \mbox{textwidth} - \mbox{tempskipb} - +% \mbox{4em}$. The |4em| provides some buffer space between the +% columns. +% \begin{macrocode} + \settowidth{\tempskipb}{Dissertation/Thesis Title:} + \setlength{\tempskipa}{\textwidth} + \addtolength{\tempskipa}{-\tempskipb} + \addtolength{\tempskipa}{-4em} +% \end{macrocode} +% Double space the student-contolled section to allow plenty of space +% for hand-written entries. +% \begin{macrocode} + \begin{spacing}{2} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} l p{\tempskipa}} + \textbf{Dissertation/Thesis Title:} & \@DUT@title \\ + \textbf{Author:} & \@DUT@author + \end{tabular*} + + \vspace*{\fill} + + \begin{center} + \textbf{This dissertation/thesis is hereby accepted and approved.} + \end{center} + + \vspace*{\fill} + + \textbf{Signatures:} \\ + Examining Committee \\ +% \end{macrocode} +% The left most column is left blank and the stretchy space between +% columns indents the middle column. I think this looks bad, but +% that's how Drexel's version of the T-1 form looks. +% \begin{macrocode} + \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} p{0pt} l p{\tempskipa}} + & Chair & \hrulefill \\ + & Members & \hrulefill \\ + & & \hrulefill \\ + & & \hrulefill \\ + & & \hrulefill \\ + & & \hrulefill \\ + & Academic Advisor & \hrulefill \\ + & Department Head & \hrulefill + \end{tabular*} + + \vspace*{\fill} + \end{spacing} + + \begin{center}\scriptsize + Office of Graduate Studies + $\bullet$ 3141 Chestnut St. + $\bullet$ Randell Hall 240 + $\bullet$ Philadelphia, PA 19104 \\ + \textbf{Tel.}: 215-895-0366 + $\bullet$ \textbf{Fax}: 215-895-0495 + $\bullet$ \textbf{Email}: + \href{mailto:graduate@drexel.edu}{graduate@drexel.edu} + $\bullet$ \textbf{Web}: + \href{http://www.drexel.edu/provost/graduatestudies/}{% + www.drexel.edu/provost/graduatestudies} + \end{center} + \endgroup + \pagebreak +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\drexellogobw} +% Draws a vector art official black-and-white Drexel logo. The image +% is exactly 1~inch wide and 1.016~inches tall. +% \changes{0.14}{2010/09/21}{Evan Sultanik added macro.} +% \begin{macrocode} +\newcommand\drexellogobw{ + \begin{tikzpicture}[y=0.8pt, x=0.8pt,yscale=-1, inner sep=0pt, outer sep=0pt] + \begin{scope}[cm={{1.25,0.0,0.0,-1.25,(-332.5,550.73629)}},] + \path[fill=black,nonzero rule] (266.0000,367.4100) -- (338.0000,367.4100) -- + (338.0000,440.5890) -- (266.0000,440.5890) -- (266.0000,367.4100) -- cycle; + \path[fill=white,nonzero rule] (269.3171,377.0107) -- (334.8469,377.0107) -- + (334.8469,438.7106) -- (269.3171,438.7106) -- (269.3171,377.0107) -- cycle; + \path[fill=black,nonzero rule] (330.2168,398.2540) .. controls + (328.9195,397.9603) and (327.1082,397.5687) .. (326.0555,397.4220) -- + (326.0555,396.7855) .. controls (327.6468,396.6388) and (327.6956,396.6388) .. + (327.6956,395.1942) -- (327.6956,383.2000) .. controls (327.6956,381.8537) and + (327.5489,381.7070) .. (326.0313,381.5600) -- (326.0313,380.8747) -- + (331.9060,380.8747) -- (331.9060,381.5600) .. controls (330.3147,381.7070) and + (330.2168,381.8537) .. (330.2168,383.2000) -- (330.2168,398.2540) -- + cycle(319.4750,387.8511) .. controls (319.6711,389.6870) and + (320.6989,390.8372) .. (321.7273,390.8372) .. controls (322.8042,390.8372) and + (323.5629,389.5642) .. (323.5629,388.5852) .. controls (323.5629,388.0466) and + (323.4650,387.8999) .. (323.1225,387.8999) -- (319.4750,387.8511) -- + cycle(325.6436,383.5183) .. controls (324.6889,382.7839) and + (323.9057,382.4902) .. (323.0734,382.4902) .. controls (321.2375,382.4902) and + (319.3037,383.7632) .. (319.3528,386.8472) .. controls (322.0207,386.9454) and + (325.1787,387.1900) .. (325.5215,387.2391) .. controls (325.9865,387.3367) and + (326.0352,387.3858) .. (326.0352,388.2915) .. controls (326.0352,390.0540) and + (324.4443,391.7920) .. (322.3881,391.7920) .. controls (319.1570,391.7920) and + (316.8805,388.7813) .. (316.9296,385.7212) .. controls (316.9784,382.8575) and + (318.8630,380.5809) .. (322.0698,380.5809) .. controls (322.7551,380.5809) and + (324.5910,381.0704) .. (325.9865,383.1021) -- (325.6436,383.5183) -- + cycle(312.6069,391.4983) -- (312.6069,390.8130) -- (313.2434,390.7393) .. + controls (313.7084,390.6659) and (313.5859,390.3968) .. (313.2188,389.7848) .. + controls (312.8518,389.1729) and (312.4111,388.5118) .. (311.9216,387.8265) -- + (310.5019,389.9561) .. controls (310.1836,390.4210) and (310.2327,390.6659) .. + (310.6485,390.7147) -- (311.2851,390.8129) -- (311.2851,391.4982) -- + (305.8754,391.4982) -- (305.8754,390.8129) .. controls (307.1972,390.6659) and + (307.3684,390.5680) .. (308.1762,389.3195) -- (310.4527,385.7948) .. controls + (309.6938,384.7667) and (308.9839,383.8365) .. (308.4211,383.1021) .. controls + (307.3930,381.7803) and (307.0259,381.7557) .. (305.6304,381.5599) -- + (305.6304,380.8746) -- (310.2327,380.8746) -- (310.2327,381.5599) -- + (309.5225,381.6824) .. controls (309.1309,381.7557) and (309.0576,381.9027) .. + (309.4492,382.5635) .. controls (309.9142,383.3470) and (310.4528,384.1547) .. + (310.9914,384.9379) -- (312.5824,382.5147) .. controls (312.9006,382.0252) and + (312.8761,381.7069) .. (312.4353,381.6581) -- (311.7258,381.5599) -- + (311.7258,380.8746) -- (317.5271,380.8746) -- (317.5271,381.5599) .. controls + (316.2053,381.7069) and (315.8867,381.8048) .. (314.9323,383.2491) -- + (312.4599,386.9942) .. controls (313.3168,388.1693) and (314.0021,389.0259) .. + (314.2715,389.3683) .. controls (315.2997,390.6168) and (315.5934,390.6659) .. + (317.1355,390.8129) -- (317.1355,391.4982) -- (312.6069,391.4982) -- + cycle(299.3927,387.8511) .. controls (299.5885,389.6870) and + (300.6166,390.8372) .. (301.6447,390.8372) .. controls (302.7220,390.8372) and + (303.4806,389.5642) .. (303.4806,388.5852) .. controls (303.4806,388.0466) and + (303.3827,387.8999) .. (303.0402,387.8999) -- (299.3927,387.8511) -- + cycle(305.5614,383.5183) .. controls (304.6066,382.7839) and + (303.8234,382.4902) .. (302.9911,382.4902) .. controls (301.1552,382.4902) and + (299.2215,383.7632) .. (299.2706,386.8472) .. controls (301.9384,386.9454) and + (305.0961,387.1900) .. (305.4389,387.2391) .. controls (305.9039,387.3367) and + (305.9530,387.3858) .. (305.9530,388.2915) .. controls (305.9530,390.0540) and + (304.3617,391.7920) .. (302.3058,391.7920) .. controls (299.0745,391.7920) and + (296.7982,388.7813) .. (296.8470,385.7212) .. controls (296.8961,382.8575) and + (298.7808,380.5809) .. (301.9876,380.5809) .. controls (302.6729,380.5809) and + (304.5087,381.0704) .. (305.9039,383.1021) -- (305.5614,383.5183) -- + cycle(292.7087,391.8408) .. controls (291.4360,391.4492) and + (289.8205,391.1067) .. (288.6211,390.9109) -- (288.6211,390.3477) .. controls + (290.1387,390.2007) and (290.1875,390.1519) .. (290.1875,388.6585) -- + (290.1875,383.2000) .. controls (290.1875,381.8537) and (290.0408,381.7070) .. + (288.5965,381.5600) -- (288.5965,380.8747) -- (294.6428,380.8747) -- + (294.6428,381.5600) .. controls (292.8557,381.7070) and (292.7087,381.8537) .. + (292.7087,383.2000) -- (292.7087,388.1448) .. controls (293.2476,389.2217) and + (293.8105,389.5154) .. (294.2266,389.5154) .. controls (294.6182,389.5154) and + (295.0098,389.3196) .. (295.3526,388.9771) .. controls (295.4993,388.8301) and + (295.7930,388.7813) .. (296.0625,388.8789) .. controls (296.6253,389.0993) and + (297.0660,389.8091) .. (297.0660,390.4211) .. controls (297.0660,391.1067) and + (296.4298,391.8408) .. (295.5484,391.8408) .. controls (294.3487,391.8408) and + (293.3697,390.2986) .. (292.7823,389.3684) -- (292.7086,389.3684) -- + (292.7086,391.8408) -- cycle(276.3892,394.4356) .. controls + (276.3892,395.0721) and (276.3892,395.5125) .. (276.5362,395.6350) .. controls + (276.6829,395.7574) and (277.3194,395.8553) .. (278.1272,395.8553) .. controls + (282.0438,395.8553) and (284.6874,394.0440) .. (284.6874,388.8055) .. controls + (284.6874,384.7422) and (282.5821,381.8782) .. (278.5188,381.8782) .. controls + (276.6341,381.8782) and (276.3892,382.3435) .. (276.3892,384.5952) -- + (276.3892,394.4356) -- cycle(271.6405,396.7855) -- (271.6405,396.0999) .. + controls (273.4518,395.9532) and (273.6476,395.7574) .. (273.6476,393.1138) -- + (273.6476,384.5464) .. controls (273.6476,381.9028) and (273.4518,381.7070) .. + (271.4447,381.5599) -- (271.4447,380.8746) -- (277.4419,380.8746) .. controls + (283.1695,380.8746) and (287.8206,383.5183) .. (287.8206,389.5399) .. controls + (287.8206,391.6941) and (286.8903,393.5054) .. (285.7643,394.6314) .. controls + (284.1488,396.1981) and (281.6522,396.7855) .. (278.9104,396.7855) -- + (271.6405,396.7855); + \path[fill=white,nonzero rule] (277.1649,373.9784) -- (277.1649,371.3099) .. + controls (277.1649,370.4792) and (277.1239,369.7235) .. (276.0893,369.7235) .. + controls (275.0546,369.7235) and (275.0137,370.4792) .. (275.0137,371.3099) -- + (275.0137,373.9784) -- (273.9584,373.9784) -- (273.9584,370.9013) .. controls + (273.9584,369.5942) and (274.8978,368.9613) .. (276.0893,368.9613) .. controls + (277.2808,368.9613) and (278.2201,369.5942) .. (278.2201,370.9013) -- + (278.2201,373.9784) -- (277.1649,373.9784); + \path[fill=white,nonzero rule] (285.3943,369.0631) -- (285.3943,373.9784) -- + (284.4072,373.9784) -- (284.4072,370.1253) -- (284.3933,370.1119) -- + (282.5215,373.9785) -- (280.9557,373.9785) -- (280.9557,369.0632) -- + (281.9429,369.0632) -- (281.9429,373.1344) -- (281.9563,373.1482) -- + (283.8966,369.0632) -- (285.3943,369.0632); + \path[fill=white,nonzero rule] (287.9938,369.0631) -- (289.0489,369.0631) -- + (289.0489,373.9783) -- (287.9938,373.9783) -- (287.9938,369.0631) -- cycle; + \path[fill=white,nonzero rule] (293.1186,369.0631) -- (294.2692,369.0631) -- + (296.0802,373.9784) -- (295.0383,373.9784) -- (293.7518,370.1047) -- + (293.7380,370.1047) -- (292.4581,373.9784) -- (291.3076,373.9784) -- + (293.1186,369.0631); + \path[fill=white,nonzero rule] (298.3125,369.0631) -- (301.6824,369.0631) -- + (301.6824,369.8804) -- (299.3678,369.8804) -- (299.3678,371.1940) -- + (301.4647,371.1940) -- (301.4647,372.0109) -- (299.3678,372.0109) -- + (299.3678,373.1615) -- (301.6078,373.1615) -- (301.6078,373.9784) -- + (298.3125,373.9784) -- (298.3125,369.0631); + \path[fill=white,nonzero rule] (305.3086,373.1615) -- (306.1936,373.1615) .. + controls (306.6566,373.1545) and (306.9291,372.9710) .. (306.9291,372.5352) .. + controls (306.9291,372.0997) and (306.6566,371.8682) .. (306.1936,371.8613) -- + (305.3086,371.8613) -- (305.3086,373.1615) -- cycle(305.3086,371.0444) -- + (306.4251,371.0444) .. controls (306.7722,371.0306) and (306.8403,370.6564) .. + (306.8675,370.3840) .. controls (306.9153,369.9413) and (306.9631,369.4989) .. + (307.0515,369.0631) -- (308.2158,369.0631) .. controls (308.0181,369.3356) and + (307.9771,369.9141) .. (307.9297,370.2275) .. controls (307.8413,370.9082) and + (307.8413,371.4052) .. (307.0309,371.4936) -- (307.0309,371.5074) .. controls + (307.6369,371.6368) and (308.0521,372.0588) .. (308.0521,372.6986) .. controls + (308.0521,373.6995) and (307.1877,373.9719) .. (306.3436,373.9785) -- + (304.2533,373.9785) -- (304.2533,369.0632) -- (305.3086,369.0632) -- + (305.3086,371.0444); + \path[fill=white,nonzero rule] (314.2601,372.5761) .. controls + (314.2601,373.5633) and (313.5181,374.0806) .. (312.5650,374.0806) .. controls + (311.5572,374.0806) and (310.5225,373.5836) .. (310.5225,372.4605) .. controls + (310.5225,371.5889) and (311.4619,371.2759) .. (312.1495,371.1056) .. controls + (312.5719,370.9969) and (313.2729,370.9560) .. (313.2729,370.3771) .. controls + (313.2729,369.8529) and (312.7146,369.7235) .. (312.2926,369.7235) .. controls + (311.7412,369.7235) and (311.4282,370.0912) .. (311.4691,370.6358) -- + (310.3932,370.6358) .. controls (310.3592,369.3968) and (311.1558,368.9613) .. + (312.2792,368.9613) .. controls (313.3341,368.9613) and (314.3963,369.3834) .. + (314.3963,370.6017) .. controls (314.3963,371.5889) and (313.2935,371.8001) .. + (312.5447,371.9906) .. controls (312.1227,372.0928) and (311.6459,372.1540) .. + (311.6459,372.6851) .. controls (311.6459,373.1140) and (312.0408,373.3184) .. + (312.4288,373.3184) .. controls (312.9393,373.3184) and (313.2048,373.0731) .. + (313.2457,372.5761) -- (314.2601,372.5761); + \path[fill=white,nonzero rule] (316.8870,369.0631) -- (317.9422,369.0631) -- + (317.9422,373.9783) -- (316.8870,373.9783) -- (316.8870,369.0631) -- cycle; + \path[fill=white,nonzero rule] (320.2146,373.1615) -- (321.6782,373.1615) -- + (321.6782,369.0631) -- (322.7335,369.0631) -- (322.7335,373.1615) -- + (324.1971,373.1615) -- (324.1971,373.9784) -- (320.2146,373.9784) -- + (320.2146,373.1615); + \path[fill=white,nonzero rule] (327.7961,369.0631) -- (328.8511,369.0631) -- + (328.8511,370.6701) -- (330.5056,373.9784) -- (329.4231,373.9784) -- + (328.3881,371.7251) -- (327.3741,373.9784) -- (326.1417,373.9784) -- + (327.7961,370.6701) -- (327.7961,369.0631); + \path[fill=black,nonzero rule] (317.2675,431.5469) .. controls + (316.1860,431.3992) and (315.2214,430.7506) .. (314.6366,429.7477) .. controls + (314.1108,428.7739) and (313.9058,427.3581) .. (314.6661,426.4142) .. controls + (315.0459,425.9718) and (315.5138,425.6179) .. (316.0986,425.5884) .. controls + (317.6768,425.7655) and (318.7000,427.4174) .. (320.2199,427.8005) .. controls + (321.2140,428.1250) and (322.0325,427.5647) .. (322.7342,427.0042) .. controls + (323.2604,426.6797) and (323.9912,426.7681) .. (324.4882,427.0926) .. controls + (322.8511,425.7652) and (321.7401,423.7889) .. (321.5650,421.6357) .. controls + (321.3308,422.6386) and (320.7169,423.7299) .. (319.7232,424.0839) .. controls + (318.6126,424.4971) and (317.6480,423.8183) .. (316.8877,423.0810) .. controls + (316.1864,422.3436) and (315.8940,421.3997) .. (315.5138,420.5146) .. controls + (316.0400,420.9868) and (316.6834,421.6063) .. (317.4725,421.7536) .. controls + (318.4665,422.0486) and (319.4020,421.7241) .. (320.1911,421.1344) .. controls + (320.4540,420.8689) and (320.7759,420.6328) .. (320.8927,420.2199) .. controls + (319.8990,419.5415) and (319.5772,418.3909) .. (319.6358,417.1814) .. controls + (319.3142,418.1254) and (318.9636,419.2760) .. (317.8818,419.6889) .. controls + (317.1801,419.9839) and (316.3032,419.8955) .. (315.7479,419.3054) .. controls + (315.2800,418.8038) and (315.2509,418.0075) .. (315.3678,417.3291) .. controls + (315.8062,415.4120) and (317.5602,414.2909) .. (319.2265,413.7304) .. controls + (320.9514,413.1109) and (322.5299,411.5180) .. (322.7345,409.6304) .. controls + (322.9978,409.6893) and (323.4362,409.8956) .. (323.6700,409.6006) .. controls + (323.9329,410.4856) and (324.3422,411.6362) .. (325.3945,411.9309) .. controls + (326.1545,412.2262) and (326.9439,411.9309) .. (327.5287,411.4001) .. controls + (328.1426,410.7217) and (328.4350,409.8366) .. (328.2595,408.8927) .. controls + (328.1717,408.5093) and (327.9962,408.1553) .. (327.7625,407.8308) .. controls + (327.8502,408.2732) and (327.9088,408.9814) .. (327.6164,409.3943) .. controls + (327.3823,409.7188) and (327.0316,409.9548) .. (326.6515,409.9548) .. controls + (326.3594,409.9843) and (326.1548,409.8075) .. (326.0084,409.5714) .. controls + (325.6869,408.1258) and (327.4995,407.7424) .. (327.5578,406.3856) .. controls + (327.5873,405.6482) and (327.2949,404.9695) .. (326.6518,404.6453) .. controls + (325.9505,404.3503) and (325.1902,404.6155) .. (324.6932,405.1466) .. controls + (324.4303,405.3824) and (324.2256,405.6777) .. (324.1087,405.9724) .. controls + (324.6346,405.7072) and (325.5995,405.4416) .. (326.1548,405.9433) .. controls + (326.4180,406.1790) and (326.5346,406.4740) .. (326.5346,406.8280) .. controls + (326.5932,407.3591) and (326.1839,407.8014) .. (325.8333,408.0964) .. controls + (325.5114,408.3325) and (325.1607,408.4798) .. (324.7515,408.5388) .. controls + (324.9856,408.0669) and (324.9564,407.4180) .. (324.6346,407.0051) .. controls + (324.1087,406.2677) and (323.1733,406.3264) .. (322.3547,406.4151) .. controls + (321.4779,404.2030) and (319.0516,403.0230) .. (316.8884,402.4330) -- + (315.3098,402.3151) .. controls (316.3039,401.6956) and (317.3562,401.2234) .. + (318.4086,400.7222) .. controls (318.9639,401.7251) and (319.7530,402.8458) .. + (320.9517,403.0819) .. controls (321.8285,403.1998) and (322.6471,402.9048) .. + (323.1441,402.1969) .. controls (323.5534,401.4595) and (323.8163,400.4566) .. + (323.4657,399.6011) -- (323.0855,398.8932) .. controls (323.2610,399.5421) and + (323.0563,400.3682) .. (322.5011,400.8695) .. controls (322.2087,401.1056) and + (321.8285,401.2234) .. (321.4484,401.1645) .. controls (321.0977,401.1056) and + (320.7471,400.8695) .. (320.6302,400.5156) .. controls (320.2500,398.7753) and + (322.8226,398.7458) .. (322.5302,396.9761) .. controls (322.4719,396.5039) and + (322.2673,396.1205) .. (321.8580,395.7961) .. controls (321.2444,395.2948) and + (320.1331,395.2358) .. (319.4026,395.6192) .. controls (318.9348,395.7961) and + (318.5255,396.1795) .. (318.1457,396.5039) .. controls (317.5609,396.1795) and + (316.6546,396.1503) .. (316.1284,396.6221) .. controls (315.3393,397.2711) and + (315.1930,398.2147) .. (314.9592,399.1292) .. controls (311.7435,400.3977) and + (308.7325,402.2561) .. (306.2186,404.9698) .. controls (304.4354,406.8872) and + (303.6460,409.5125) .. (304.0553,412.1968) .. controls (304.4646,414.6744) and + (304.2305,417.5357) .. (302.0966,419.0108) .. controls (301.1026,419.5415) and + (299.8161,419.8071) .. (298.7055,419.3647) .. controls (297.5945,418.8929) and + (296.8346,417.6539) .. (296.8054,416.4150) .. controls (296.8640,414.2026) and + (298.0919,412.3444) .. (299.0860,410.4565) .. controls (300.0214,408.2146) and + (299.6121,405.4122) .. (297.8581,403.7607) .. controls (296.4842,402.0793) and + (294.5259,401.5780) .. (293.0057,400.1914) .. controls (292.8010,399.9848) and + (292.7136,399.6606) .. (292.8305,399.3951) .. controls (293.3275,398.7462) and + (294.2921,398.7462) .. (295.1107,398.8051) .. controls (296.8644,399.1296) and + (298.1796,400.4570) .. (299.8459,400.9288) .. controls (300.8986,401.0764) and + (301.9215,400.7225) .. (302.4771,399.8080) .. controls (302.6817,399.4246) and + (302.8569,398.9230) .. (302.7109,398.4511) .. controls (302.5648,397.9790) and + (302.2138,397.5367) .. (301.8046,397.3300) .. controls (301.5416,397.2122) and + (301.1615,397.2416) .. (300.8691,397.2711) .. controls (301.2201,397.3893) and + (301.6585,397.6546) .. (301.7754,398.1264) .. controls (301.8631,398.5101) and + (301.7463,398.9230) .. (301.4830,399.2180) .. controls (301.1615,399.5130) and + (300.8108,399.6607) .. (300.3724,399.6607) .. controls (300.6353,399.3359) and + (300.8691,398.8935) .. (300.8108,398.3919) .. controls (300.6939,397.6251) and + (300.1678,396.8877) .. (299.4075,396.6811) .. controls (299.0277,396.5633) and + (298.6475,396.7106) .. (298.3260,396.9172) .. controls (298.0339,397.1533) and + (297.9167,397.4188) .. (297.7707,397.7138) .. controls (297.9753,397.5072) and + (298.2383,397.3599) .. (298.5306,397.3893) .. controls (298.9399,397.4482) and + (299.2323,397.6840) .. (299.3783,398.0678) .. controls (299.4661,398.3330) and + (299.4661,398.6873) .. (299.3197,398.9230) .. controls (299.1446,399.1885) and + (298.8522,399.3657) .. (298.5015,399.2769) .. controls (297.3906,398.9230) and + (297.1568,397.3599) .. (296.0167,397.0056) .. controls (294.5551,396.8877) and + (293.0057,397.0649) .. (291.4858,396.9761) -- (286.8671,396.8582) .. controls + (286.6042,396.9466) and (286.2824,397.0056) .. (286.1655,397.3009) .. controls + (285.6393,398.1856) and (286.9549,399.1885) .. (285.8439,399.8673) .. controls + (283.0376,401.7843) and (279.9097,403.7017) .. (278.0679,406.8283) .. controls + (276.4017,409.6307) and (274.9692,413.8490) .. (277.0735,416.9166) .. controls + (278.1845,418.5095) and (280.0263,419.4535) .. (282.0432,419.0995) .. controls + (283.6508,418.8929) and (284.9956,417.5656) .. (285.4049,416.0316) -- + (285.4927,415.5005) .. controls (284.8787,416.5921) and (283.8850,417.6834) .. + (282.6277,418.0963) .. controls (282.7449,417.7718) and (282.6863,417.3000) .. + (282.6280,416.9461) .. controls (282.3942,417.4771) and (281.7509,417.9490) .. + (281.1664,418.1556) .. controls (281.4293,417.6834) and (281.7220,417.1229) .. + (281.6340,416.5037) .. controls (281.2247,416.9755) and (280.6111,417.4474) .. + (279.9386,417.2705) .. controls (280.4647,416.8282) and (280.9326,416.3560) .. + (281.1373,415.6776) .. controls (280.6697,415.9726) and (279.9680,416.2676) .. + (279.3246,416.0021) .. controls (279.8803,415.6482) and (280.8743,415.3531) .. + (280.8743,414.4386) .. controls (280.5819,414.6453) and (280.1727,414.7337) .. + (279.8217,414.6453) -- (279.3832,414.4386) .. controls (279.8217,414.2618) and + (280.4356,414.1145) .. (280.7571,413.6424) -- (281.0204,413.1705) .. controls + (280.4064,413.2294) and (279.7634,413.1407) .. (279.3246,412.6689) .. controls + (279.9972,412.5510) and (280.6988,412.4626) .. (281.1373,411.8432) .. controls + (280.5525,411.6955) and (279.9386,411.3710) .. (279.7339,410.7221) .. controls + (280.2896,411.0171) and (281.1373,411.0171) .. (281.6634,410.5747) .. controls + (281.0204,410.2208) and (280.3478,409.5423) .. (280.5233,408.6868) .. controls + (281.0790,409.1291) and (281.8681,409.5129) .. (282.6283,409.1586) .. controls + (281.8098,408.8047) and (281.2836,407.9789) .. (281.2541,407.1528) -- + (281.2836,406.9171) .. controls (281.8681,407.5955) and (282.6284,408.0378) .. + (283.5344,407.8610) .. controls (282.7453,407.4773) and (282.3943,406.6810) .. + (282.4820,405.7959) .. controls (282.6284,405.8846) and (282.7453,406.0910) .. + (282.9208,406.2092) .. controls (283.4761,406.5631) and (284.0314,406.9171) .. + (284.6745,406.9465) .. controls (284.2360,406.3565) and (283.6221,405.5893) .. + (283.8854,404.7341) .. controls (284.2946,405.5013) and (285.0546,406.3270) .. + (285.9314,406.4154) .. controls (285.4930,405.8254) and (285.3470,405.0881) .. + (285.3470,404.3212) .. controls (285.9609,405.1765) and (286.8669,406.1794) .. + (287.8901,406.5631) .. controls (287.5391,405.9141) and (287.2176,404.8225) .. + (287.5977,404.0262) .. controls (287.8901,404.9997) and (288.5040,406.0026) .. + (289.2348,406.6512) .. controls (289.0885,405.8254) and (289.3517,405.0586) .. + (289.9948,404.4980) -- (290.0534,404.5569) .. controls (290.0239,405.6191) and + (290.4332,406.5333) .. (290.9594,407.3299) .. controls (290.8425,406.6220) and + (291.2517,405.9730) .. (291.8657,405.6188) -- (292.1289,405.5009) .. controls + (291.8365,406.2386) and (291.6319,407.0938) .. (291.7779,408.0083) .. controls + (292.3041,407.4478) and (293.0644,406.7693) .. (293.9117,406.8872) .. controls + (292.6551,408.0083) and (291.3978,409.2473) .. (290.8716,410.8104) .. controls + (291.3686,410.2797) and (292.1577,409.9254) .. (293.0054,409.9847) .. controls + (291.4272,411.1054) and (289.9948,413.0523) .. (289.8484,415.0876) .. controls + (290.1994,414.2618) and (290.9885,413.6125) .. (291.8071,413.3178) .. controls + (290.6961,414.9697) and (289.5269,416.8868) .. (290.1405,419.1286) .. controls + (290.2868,418.0668) and (290.9008,416.8868) .. (292.0117,416.5626) .. controls + (291.3978,417.7129) and (290.5792,418.8929) .. (290.7544,420.3676) .. controls + (290.8127,421.2821) and (291.1051,422.1671) .. (291.6312,422.9045) .. controls + (291.2514,422.0784) and (291.1928,420.7808) .. (291.9528,420.0137) -- + (292.0114,419.9548) .. controls (291.7776,422.2556) and (292.6544,424.5269) .. + (294.6422,425.5888) -- (295.4022,426.0016) .. controls (294.7883,425.2050) and + (294.3793,424.3498) .. (294.3793,423.3171) .. controls (295.2558,425.2050) and + (297.0976,427.0635) .. (299.4364,426.9456) .. controls (299.7870,426.9751) and + (300.1086,426.9158) .. (300.4301,426.8569) .. controls (299.4655,426.4146) and + (298.2668,425.6769) .. (298.1499,424.4677) .. controls (299.7284,425.9129) and + (301.9503,426.7096) .. (304.1133,425.9129) .. controls (304.6103,425.7063) and + (305.1656,425.4411) .. (305.4872,425.0279) .. controls (304.7272,425.4411) and + (303.8504,425.1166) .. (303.2070,424.7034) .. controls (302.9149,424.4972) and + (302.5056,424.2021) .. (302.3888,423.8482) .. controls (303.8795,424.4088) and + (306.1597,424.7922) .. (307.3289,423.2877) -- (308.0598,422.1374) .. controls + (307.2707,422.6685) and (306.3352,423.1108) .. (305.3120,422.9046) .. controls + (305.1365,422.8453) and (304.9610,422.7569) .. (304.7858,422.6092) .. controls + (306.4226,422.5503) and (308.0306,421.7537) .. (308.7028,420.2200) -- + (308.9075,419.3055) .. controls (308.4982,420.1021) and (307.6505,420.8984) .. + (306.6859,420.9279) .. controls (307.2412,420.3382) and (308.0892,419.7482) .. + (308.3521,418.9221) .. controls (308.9078,417.6831) and (309.0538,416.1789) .. + (310.3985,415.4121) .. controls (310.9247,415.1466) and (311.4800,414.9694) .. + (312.0648,414.8810) .. controls (310.0479,415.7068) and (309.3171,418.1258) .. + (309.1707,420.2495) .. controls (309.6677,419.6303) and (310.3108,419.0694) .. + (311.0125,418.7748) .. controls (310.6615,419.2171) and (310.3108,419.5121) .. + (309.9307,419.9839) .. controls (308.7614,421.4001) and (308.0598,423.2582) .. + (308.4982,425.1461) .. controls (308.8197,426.3553) and (309.6383,427.3582) .. + (310.4274,428.3611) .. controls (309.7846,427.1224) and (309.6674,425.3233) .. + (310.4569,424.1137) .. controls (310.8367,423.5237) and (311.3632,423.0221) .. + (311.8893,422.6387) .. controls (310.8661,423.9955) and (310.3982,426.0013) .. + (311.0122,427.7419) .. controls (311.8890,430.1312) and (314.3444,431.3993) .. + (316.7123,431.5764) -- (317.2676,431.5469); + \path[fill=white,nonzero rule] (314.4906,424.9100) .. controls + (314.8707,424.6150) and (315.4260,424.4378) .. (315.9231,424.6444) .. controls + (316.0109,424.6739) and (316.0986,424.7328) .. (316.2155,424.7623) .. controls + (315.7770,424.2905) and (315.3091,423.3171) .. (314.4906,423.5237) .. controls + (313.7892,424.0544) and (314.0522,425.1461) .. (313.9936,425.9424) .. controls + (314.0231,425.5295) and (314.1982,425.2050) .. (314.4906,424.9100); + \path[fill=white,nonzero rule] (312.1524,410.9578) .. controls + (312.7372,411.0167) and (313.2634,411.4001) .. (313.5849,411.8723) .. controls + (313.9356,410.8101) and (314.4621,409.1880) .. (313.5849,408.1851) .. controls + (313.3220,407.9196) and (313.0005,407.8014) .. (312.6203,407.8014) .. controls + (311.1587,407.8901) and (310.5157,409.4238) .. (310.1060,410.6627) .. controls + (309.8140,411.5183) and (309.8140,412.4623) .. (309.6968,413.4062) .. controls + (310.1355,412.3735) and (310.8663,410.9283) .. (312.1524,410.9578); + \path[fill=white,nonzero rule] (320.8934,398.4803) .. controls + (321.1563,398.2147) and (321.3023,397.9200) .. (321.2440,397.5363) .. controls + (321.2440,397.2122) and (320.9517,396.8874) .. (320.6887,396.7695) .. controls + (320.0748,396.5039) and (319.3440,396.7106) .. (318.8178,397.0056) .. controls + (319.3145,397.5068) and (319.6072,398.0969) .. (319.6947,398.7458) .. controls + (320.1331,398.8047) and (320.5424,398.7163) .. (320.8934,398.4803); + \path[fill=white,nonzero rule] (322.0034,426.5913) .. controls + (322.0616,426.2668) and (321.8865,426.0013) .. (321.6232,425.8834) .. controls + (321.1848,425.7652) and (320.6000,425.7652) .. (320.2785,426.1195) .. controls + (320.1324,426.3258) and (320.0447,426.6208) .. (320.2199,426.8274) .. controls + (320.6586,427.3581) and (321.6818,427.2403) .. (322.0034,426.5913); + \path[fill=white,nonzero rule] (317.0930,398.3624) .. controls + (317.0639,398.0968) and (316.8592,397.8611) .. (316.5963,397.8018) .. controls + (316.2453,397.7723) and (316.1575,398.0968) .. (316.0701,398.3624) -- + (316.0406,398.7753) -- (317.0929,398.3624); + \path[fill=white,nonzero rule] (323.3484,407.8309) .. controls + (323.3193,407.3590) and (322.9977,407.1524) .. (322.5885,407.0051) .. controls + (322.7345,407.4474) and (322.7640,407.9785) .. (322.7057,408.4504) .. controls + (322.9686,408.3325) and (323.2315,408.1259) .. (323.3484,407.8309); + \end{scope} + \end{tikzpicture} +} +% \end{macrocode} +% \end{macro} +% % \begin{option}{subfig} % Set \Lopt{subfig} flag % \begin{macrocode} @@ -646,11 +1381,10 @@ % \begin{macrocode} \DeclareOptionX{finalspace}{ \setlength\overfullrule{0pt} - \def\@cont@sep{1} % content page separation (# blanklines between entries) + \def\@DUT@toc@sep{1} % content page separation (# blanklines between entries) \def\@ssp{1} % single space \def\@dsp{2} % double space \def\@tsp{3} % triple space - \@finaltrue } % \end{macrocode} % \end{option} @@ -658,15 +1392,33 @@ % \begin{macrocode} \DeclareOptionX{draftspace}{ \setlength\overfullrule{5pt} - \def\@cont@sep{0} % content page separation (# blanklines between entries) + \def\DUT@toc@sep{0} % content page separation (# blanklines between entries) \def\@ssp{1} % single space \def\@dsp{1} % double space \def\@tsp{2} % triple space +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{pagebreak} +% \begin{macrocode} +\DeclareOptionX{pagebreak}{ + \@DUT@pagebreaktrue +% \end{macrocode} +% Force chapters onto right-hand pages. +% \begin{macrocode} + \PassOptionsToClass{openright}{book} +} +% \end{macrocode} +% \end{option} +% \begin{option}{nopagebreak} +% \begin{macrocode} +\DeclareOptionX{nopagebreak}{ + \@DUT@pagebreakfalse % \end{macrocode} % Don't force chapters onto right-hand pages. % \begin{macrocode} \PassOptionsToClass{openany}{book} - \@finalfalse } % \end{macrocode} % \end{option} @@ -708,21 +1460,48 @@ % \end{macrocode} % \end{option} % +% \begin{option}{indenttoc} +% Set \Lopt{indenttoc} flag +% \begin{macrocode} +\DeclareOptionX{indenttoc}{\@indenttoctrue} +% \end{macrocode} +% \end{option} +% +% \begin{option}{blackref} +% Set \Lopt{blackref} flag +% \changes{0.13}{2010/06/17}{W.~Trevor King added blackref option.} +% \begin{macrocode} +\DeclareOptionX{blackref}{\@blackreftrue} +% \end{macrocode} +% \end{option} +% % \begin{option}{draftwatermark} % Set \Lopt{draftwatermark} flag % \begin{macrocode} \DeclareOptionX{draftwatermark}{% \@draftwatermarktrue - \@mydraftwatermarkfalse} + \@xdraftwatermarkfalse} +% \end{macrocode} +% \end{option} +% +% \begin{option}{xdraftwatermark} +% Set \Lopt{xdraftwatermark} flag +% \changes{0.15}{2011/04/22}{W.~Trevor King renamed mydraftwatermark +% to xdraftwatermark.} +% \begin{macrocode} +\DeclareOptionX{xdraftwatermark}{% + \@draftwatermarkfalse + \@xdraftwatermarktrue} % \end{macrocode} % \end{option} % -% \begin{option}{mydraftwatermark} -% Set \Lopt{mydraftwatermark} flag +% \begin{option}{nodraftwatermark} +% Clear \Lopt{draftwatermark} and \Lopt{xdraftwatermark} flags +% \changes{0.15}{2011/04/22}{W.~Trevor King added nodraftwatermark option.} % \begin{macrocode} -\DeclareOptionX{mydraftwatermark}{% - \@mydraftwatermarktrue - \@draftwatermarkfalse} + \DeclareOptionX{nodraftwatermark}{% + \@draftwatermarkfalse + \@xdraftwatermarkfalse} % \end{macrocode} % \end{option} % @@ -750,8 +1529,10 @@ % \begin{option}{final} % \begin{macrocode} \DeclareOptionX{final}{ + \@finaltrue \setkeys{drexel-thesis.cls}{oneside} \setkeys{drexel-thesis.cls}{finalspace} + \setkeys{drexel-thesis.cls}{pagebreak} \setkeys{drexel-thesis.cls}{dottedtoc} } % \end{macrocode} @@ -760,10 +1541,28 @@ % \begin{option}{draft} % \begin{macrocode} \DeclareOptionX{draft}{ + \@finalfalse \setkeys{drexel-thesis.cls}{twoside} \setkeys{drexel-thesis.cls}{draftspace} + \setkeys{drexel-thesis.cls}{nopagebreak} \setkeys{drexel-thesis.cls}{dottedtoc} - \setkeys{drexel-thesis.cls}{mydraftwatermark} + \setkeys{drexel-thesis.cls}{xdraftwatermark} +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{daring} +% \begin{macrocode} +\DeclareOptionX{daring}{ + \@daringtrue +} +% \end{macrocode} +% \end{option} +% +% \begin{option}{approvalform} +% \begin{macrocode} +\DeclareOptionX{approvalform}{ + \@approvalformtrue } % \end{macrocode} % \end{option} @@ -791,7 +1590,7 @@ % % % 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 @@ -842,6 +1641,7 @@ % % % \subsubsection{\pkg{draftmark}} +% \label{sec:draftmark} % % The Comp.~Sci.\ class used % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/draftcopy/}{\pkg{draftcopy}} @@ -867,10 +1667,19 @@ \fi % \end{macrocode} % -% Here is Evan's alternative implementation This will not look right +% Travis Hoppe went for a more discrete watermark in the lower right +% corner with something along the lines of: +% \begin{example} +% \ifdraftwatermark{ +% \draftmarksetup{angle=0,fontsize=24pt,color=red!45!blue!25, +% xcoord=80,ycoord=-129,mark={DRAFT\\[12pt] \today}} +% }{} +% \end{example} +% +% Here is Evan's alternative implementation. This will not look right % as a DVI, but it'll look fine once rendered to either a PS or PDF. % \begin{macrocode} -\if@mydraftwatermark +\if@xdraftwatermark % \end{macrocode} % Use \pkg{eso-pic} for |\AddToShipoutPicture|. % \begin{macrocode} @@ -929,7 +1738,7 @@ % 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} @@ -954,11 +1763,11 @@ % 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, Section 2.1} +% \pkg{tocloft} manual \S 2.1} % for details. % -% The configuration of \pkg{tocloft} takes place in Sections -% \ref{sec:implement-toc}, \ref{sec:implement-lof}, and +% The configuration of \pkg{tocloft} takes place in \S +% \ref{sec:implement-toc}, \S \ref{sec:implement-lof}, and \S % \ref{sec:implement-lot}. % % @@ -983,7 +1792,7 @@ % % 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. @@ -1005,7 +1814,7 @@ \RequirePackage{fr-subfig} \fi % \end{macrocode} -% We set up the three-line surrounding spaces in Section +% We set up the three-line surrounding spaces in \S % \ref{sec:implement-floats}. % % You can change these settings using |\floatsetup|, but you probably @@ -1015,20 +1824,21 @@ % \subsubsection{\pkg{subfig}} % \label{sec:subfig} % -% Allow multi-partfigures with +% 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 -% \begin{macrocode} +% \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. @@ -1040,6 +1850,9 @@ % \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 @@ -1072,6 +1885,14 @@ } % \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}} % @@ -1082,19 +1903,35 @@ % \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. +% 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}). +% +% +% \subsubsection{\pkg{tikz}} +% \label{sec:tikz} +% +% \href{http://sourceforge.net/projects/pgf/}{\pkg{tikz}} +% for vector drawing natively in \TeX. This package is currently only +% required for the \Lopt{approvalform} option (it is used in drawing +% the Drexel logo on the approval form). % \begin{macrocode} -\hypersetup{colorlinks} +\if@approvalform\RequirePackage{tikz}\fi % \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{\LaTeX\ overrides and extensions} @@ -1110,90 +1947,112 @@ % \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} @@ -1202,39 +2061,55 @@ \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} - \csname @advisor@\alph{advisor@loop}\endcsname\relax% + \count@\@ne +% \end{macrocode} +% Print the first advisor, using \TeX's |\@alph| macro instead of +% \LaTeX's |\alph|. +% \begin{macrocode} +% \begin{macrocode} + \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} @@ -1254,27 +2129,28 @@ % \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 \cs{setlength} to store the value at +% the default font. The previous version used \cs{let}, which +% made \cs{DUT@baselineskip} a synonym for \cs{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} % @@ -1288,7 +2164,7 @@ % 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} % @@ -1453,28 +2329,37 @@ % % \subsubsection{\file{ltoutput.dtx}} % -% \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} +% \begin{macro}{\@DUT@clearpage} +% \begin{macro}{\@DUT@cleardoublepage} +% \begin{macro}{\@DUT@newpage} +% Versions of |\clear*page| and |\newpage| that only work in +% \Lopt{pagebreak} mode (\file{ltoutput.dtx}, L877 and L904). +% Otherwise they add four blank lines. +% \changes{0.15}{2011/04/23}{W.~Trevor King added +% $\backslash$\@DUT\@newpage macro.} +% \begin{macrocode} +\newcommand\@DUT@clearpage{% + \if@DUT@pagebreak \clearpage \else \blanklinesp{4} \fi} +\newcommand\@DUT@cleardoublepage{% + \if@DUT@pagebreak \cleardoublepage \else \blanklinesp{4} \fi} +\newcommand\@DUT@newpage{% + \if@DUT@pagebreak \newpage \else \blanklinesp{4} \fi} % \end{macrocode} % \end{macro} % \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. +% If we're not in \Lopt{pagebreak} mode, this macro is a no-op. % \begin{macrocode} -\newcommand\blankpage{% - \if@final - \DUT@clearpage +\newcommand\@DUT@blankpage{% + \if@DUT@pagebreak + \@DUT@clearpage \thispagestyle{empty} \hphantom{0} - \DUT@clearpage - \else\fi + \@DUT@clearpage + \fi } % \end{macrocode} % \end{macro} @@ -1490,30 +2375,68 @@ % 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} +% If \Lopt{blackref} is set, set all \pkg{hyperref} colors to black. +% \begin{macrocode} +\if@blackref + \hypersetup{linkcolor=black} + \hypersetup{anchorcolor=black} + \hypersetup{citecolor=black} + \hypersetup{filecolor=black} + \hypersetup{menucolor=black} + \hypersetup{runcolor=black} + \hypersetup{urlcolor=black} +\fi +% \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 @@ -1540,9 +2463,9 @@ % % |\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 @@ -1561,7 +2484,7 @@ % % \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? @@ -1569,28 +2492,31 @@ % 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 Frontmatter with +% Front Matter and 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} -% Add some stretchy space to center the title vertically if we're not -% in draft mode. +% Add some stretchy space to center the title vertically if we're in +% \Lopt{pagebreak} mode. % \begin{macrocode} - \if@final \vspace*{\fill} \fi + \if@DUT@pagebreak \vspace*{\fill} \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. @@ -1602,22 +2528,22 @@ 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. % \begin{macrocode} % \end{macrocode} -% Add some stretchy space to center the title vertically if we're not -% in draft mode. +% Add some stretchy space to center the title vertically if we're in +% \Lopt{pagebreak} mode. % \begin{macrocode} - \if@final \vspace*{\fill} \fi - \end{titlepage}% + \if@DUT@pagebreak \vspace*{\fill} \fi + \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 @@ -1634,12 +2560,12 @@ % \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 @@ -1649,18 +2575,18 @@ % 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 + \if@DUT@pagebreak \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 + \if@DUT@pagebreak \vspace*{\fill} \fi % \end{macrocode} % Turn off page numbering for this page. % \begin{macrocode} @@ -1669,18 +2595,25 @@ % \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 +% \cs{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} @@ -1727,9 +2660,15 @@ % \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 @@ -1737,11 +2676,11 @@ % 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} @@ -1755,21 +2694,22 @@ % % 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 % \end{macrocode} -% Add some stretchy space for vertical centering if we're in final mode. +% Add some stretchy space for vertical centering if we're in +% \Lopt{pagebreak} mode. % \begin{macrocode} - \if@final \null\vfil \fi + \if@DUT@pagebreak \null\vfil \fi % \end{macrocode} % Here we use |\secdef| to indicate which commands to use to make % the actual heading. @@ -1839,16 +2779,16 @@ % \begin{macro}{\@endpart} % This macro finishes the part page, for both |\@part| and |\@spart|. % We drop \cls{book}'s twoside handling. -% If |\if@final| is true, we fill the current page. +% If we're in \Lopt{pagebreak} mode, we fill the current page. % (\file{classes.dtx}, L2435) % \begin{macrocode} \def\@endpart{ - \if@final \vfil\newpage \fi + \if@DUT@pagebreak \vfil\newpage \fi % \end{macrocode} % Then, when we are in twosided mode and the chapters are supposed to % be on the right hand sides, we produce a completely blank page. We -% don't need to check |\if@final| here, because \Lopt{draftspace} set -% |\@openrighttrue|. +% don't need to check \Lopt{pagebreak}-mode here, because the +% pagebreak options set the \cls{book} opening options. % \begin{macrocode} \if@twoside \if@openright @@ -1870,7 +2810,7 @@ % (\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 @@ -1898,7 +2838,7 @@ % 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 @@ -1914,13 +2854,40 @@ % 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}% @@ -1956,7 +2923,7 @@ % \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 @@ -1967,7 +2934,7 @@ % 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. % @@ -1983,7 +2950,7 @@ % 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. @@ -2016,7 +2983,7 @@ \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} @@ -2033,9 +3000,15 @@ % \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} % @@ -2081,79 +3054,109 @@ % ours here too. % % \begin{environment}{preamble} +% \begin{environment}{DUTpreamble} % \begin{macrocode} \newenvironment{preamble}{% \cleardoublepage \@mainmatterfalse \pagenumbering{roman} + \if@approvalform + \ifpdf + \pdfbookmark[-1]{Approval Form}{Approval Form} + \fi + \DUT@makeapprovalform + \fi % \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 % punctuation. % \item This page is counted and numbered in lowercase Roman numerals. % \end{itemize} +% \changes{0.12}{2010/06/17}{W.~Trevor King added \cs{par} to detach +% the single space \cs{setstretch} from the from the final +% paragraph.} % \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}% + \par\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 % punctuation. % \item This page is counted and numbered in lowercase Roman numerals. % \end{itemize} +% \changes{0.12}{2010/06/17}{W.~Trevor King added \cs{par} to detach +% the single space \cs{setstretch} from the from the final +% paragraph.} % \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}% + \par\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}% @@ -2163,7 +3166,7 @@ % \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 @@ -2185,12 +3188,27 @@ % is double spaced. % \end{itemize} % \end{quote} +% \changes{0.12}{2010/06/17}{W.~Trevor King added \cs{par} to detach +% the single space \cs{setstretch} from the from the final +% paragraph.} % \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}% @@ -2198,36 +3216,46 @@ \@afterindentfalse \@afterheading }{% - \setstretch{\@ssp}% + \par\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} +% \changes{0.8}{2010/05/20}{W.~Trevor King replaced Backmatter with +% Back Matter for consistency with \LaTeX's book class.} % \begin{macrocode} \newenvironment{thesis}{% \mainmatter \setstretch{\@dsp}% }{% \setstretch{\@ssp}% - \DUT@clearpage + \@DUT@clearpage \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. @@ -2235,15 +3263,21 @@ % \item List the Vita separately in the Table of Contents. % \item The page is counted and numbered in Arabic numerals. % \end{itemize} +% \changes{0.12}{2010/06/17}{W.~Trevor King added \cs{par} to detach +% the single space \cs{setstretch} from the from the final +% paragraph.} % \begin{macrocode} \newenvironment{vita}{% \listed@schapter{\vitaname} \setstretch{\@dsp}% }{% - \setstretch{\@ssp}% + \par\setstretch{\@ssp}% } +\let\DUTvita\vita +\let\endDUTvita\endvita % \end{macrocode} % \end{environment} +% \end{environment} % % % \subsubsection{Titlepage} @@ -2255,9 +3289,11 @@ % 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@}% + {\@DUT@newpage} +\let\@DUT@titlepage\titlepage +\let\end@DUT@titlepage\endtitlepage % \end{macrocode} % \end{environment} % @@ -2266,6 +3302,7 @@ % \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. % @@ -2276,7 +3313,7 @@ % \item redefine |\thesection| to produce alphabetic appendix % numbers. This redefinition is done globally to ensure that it % survives even if |\appendix| is issued within an environment such -% as \texttt{multicols}. +% as |multicols|. % \end{itemize} % % In addition to \cls{book}'s (or \pkg{hyperref}'s) activity, we @@ -2284,9 +3321,9 @@ % 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} @@ -2313,18 +3350,20 @@ % \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} @@ -2347,7 +3386,7 @@ % \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} @@ -2370,18 +3409,36 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\l@cont@sep} +% \begin{macro}{\l@DUT@toc@sep} % Define a length for TOC/LOF/LOT spacing. +% \changes{0.13}{2010/07/28}{Renamed from \cs{l@cont@sep}.} % \begin{macrocode} -\newlength\l@cont@sep -\set@lines@length{\l@cont@sep}{\@cont@sep} +\newlength\l@DUT@toc@sep +\set@lines@length{\l@DUT@toc@sep}{\@DUT@toc@sep} % \end{macrocode} % \end{macro} % -% \begin{macro}{\@cont@font} +% \begin{macro}{\DUT@toc@high@font} % Define a font for high level (part, chapter) entries. +% \changes{0.13}{2010/07/28}{Renamed from \cs{@cont@font}.} % \begin{macrocode} -\newcommand{\@cont@font}{\normalsize\scshape} +\newcommand{\DUT@toc@high@font}{\normalsize\scshape} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DUT@toc@low@font} +% Define a font for low level (section, table, figure) entries. +% \changes{0.13}{2010/07/28}{Macro added.} +% \begin{macrocode} +\newcommand{\DUT@toc@low@font}{\normalfont} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DUT@toc@page@font} +% Define a font for page numbers. +% \changes{0.13}{2010/07/28}{Macro added.} +% \begin{macrocode} +\newcommand{\DUT@toc@page@font}{\normalfont} % \end{macrocode} % \end{macro} % @@ -2393,14 +3450,14 @@ % Setup parts. See the \pkg{tocloft} manual for a description of the % commands. % \begin{macrocode} -\setlength\cftbeforepartskip{\l@cont@sep} +\setlength\cftbeforepartskip{\l@DUT@toc@sep} \cftsetindents{part}{0pt}{3em} -\if@boldpart \renewcommand{\cftpartfont}{\bfseries\@cont@font} -\else \renewcommand{\cftpartfont}{\@cont@font} +\if@boldpart \renewcommand{\cftpartfont}{\bfseries\DUT@toc@high@font} +\else \renewcommand{\cftpartfont}{\DUT@toc@high@font} \renewcommand{\cftpartleader}{\cftdotfill{\cftpartdotsep}} \if@dottedpart \renewcommand{\cftpartdotsep}{\cftdotsep} \else \renewcommand{\cftpartdotsep}{\cftnodots} \fi -\renewcommand{\cftpartpagefont}{\normalfont} +\renewcommand{\cftpartpagefont}{\DUT@toc@page@font} % \end{macrocode} % \end{macro} % \end{macro} @@ -2418,15 +3475,15 @@ % for appendicies in particular by |\appendix| % (Sec.~\ref{sec:implement-appendix}). % \begin{macrocode} -\setlength\cftbeforechapskip{\l@cont@sep} +\setlength\cftbeforechapskip{\l@DUT@toc@sep} \cftsetindents{chapter}{0pt}{1.5em} \renewcommand{\cftchapaftersnum}{.} -\if@boldchapter \renewcommand{\cftchapfont}{\bfseries\@cont@font} -\else \renewcommand{\cftchapfont}{\@cont@font} \fi +\if@boldchapter \renewcommand{\cftchapfont}{\bfseries\DUT@toc@high@font} +\else \renewcommand{\cftchapfont}{\DUT@toc@high@font} \fi \renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}} \if@dottedchapter \renewcommand{\cftchapdotsep}{\cftdotsep} \else \renewcommand{\cftchapdotsep}{\cftnodots} \fi -\renewcommand{\cftchappagefont}{\normalfont} +\renewcommand{\cftchappagefont}{\DUT@toc@page@font} % \end{macrocode} % \end{macro} % \end{macro} @@ -2437,22 +3494,31 @@ % % \begin{macro}{\cftbeforesecskip} % \begin{macro}{\cftsecfont} +% \begin{macro}{\cftpagefont} % \begin{macro}{\cftbeforesubsecskip} % \begin{macro}{\cftsubsecfont} +% \begin{macro}{\cftsubsecpagefont} % \begin{macro}{\cftbeforesubsubsecskip} % \begin{macro}{\cftsubsubsecfont} +% \begin{macro}{\cftsubsubsecpagefont} % Setup sections, subsections, etc. +% \changes{0.13}{2010/07/28}{Added \cs{cft*pagefont} definitions and +% switch \cs{cft*font} from hardcoded \cs{normalsize} to +% \cs{DUT@toc@low@font}.} % \begin{macrocode} %\cftsetindents{chap}{0pt}{1.5em} -\setlength\cftbeforesecskip{\l@cont@sep} +\setlength\cftbeforesecskip{\l@DUT@toc@sep} \cftsetindents{section}{0pt}{3em} -\renewcommand{\cftsecfont}{\normalsize} -\setlength\cftbeforesubsecskip{\l@cont@sep} +\renewcommand{\cftsecfont}{\DUT@toc@low@font} +\renewcommand{\cftsecpagefont}{\DUT@toc@page@font} +\setlength\cftbeforesubsecskip{\l@DUT@toc@sep} \cftsetindents{subsection}{0pt}{4.5em} -\renewcommand{\cftsubsecfont}{\cftsecfont} -\setlength\cftbeforesubsubsecskip{\l@cont@sep} +\renewcommand{\cftsubsecfont}{\DUT@toc@low@font} +\renewcommand{\cftsubsecpagefont}{\DUT@toc@page@font} +\setlength\cftbeforesubsubsecskip{\l@DUT@toc@sep} \cftsetindents{subsubsection}{0pt}{6em} -\renewcommand{\cftsubsubsecfont}{\cftsecfont} +\renewcommand{\cftsubsubsecfont}{\DUT@toc@low@font} +\renewcommand{\cftsubsubsecpagefont}{\DUT@toc@page@font} % \end{macrocode} % \end{macro} % \end{macro} @@ -2460,12 +3526,28 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \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 @@ -2502,21 +3584,29 @@ % \begin{macro}{\cftbeforefigskip} % \begin{macro}{\cftfigindent} % \begin{macro}{\cftfigfont} +% \begin{macro}{\cftfigpagefont} % Setup figure entries. +% \changes{0.13}{2010/07/28}{Added \cs{cftfigpagefont} definition and +% switch \cs{cftfigfont} from hardcoded \cs{normalsize} +% \cs{singlespace} to \cs{DUT@toc@low@font}. The \cs{singlespace} +% portion appears to be unnecessary, and it was causing post-number +% linebreak issues with latex (pdflatex always worked).} % \begin{macrocode} -\setlength{\cftbeforefigskip}{\l@cont@sep} +\setlength{\cftbeforefigskip}{\l@DUT@toc@sep} \setlength{\cftfigindent}{0pt} -\renewcommand{\cftfigfont}{\normalsize\singlespace} +\renewcommand{\cftfigfont}{\DUT@toc@low@font} +\renewcommand{\cftfigpagefont}{\DUT@toc@page@font} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % % \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 @@ -2554,15 +3644,23 @@ % \begin{macro}{\cftbeforetabskip} % \begin{macro}{\cfttabindent} % \begin{macro}{\cfttabfont} +% \begin{macro}{\cfttabpagefont} % Setup table entries. +% \changes{0.13}{2010/07/28}{Added \cs{cfttabpagefont} definition and +% switch \cs{cftfabfont} from hardcoded \cs{normalsize} +% \cs{singlespace} to \cs{DUT@toc@low@font}. The \cs{singlespace} +% portion appears to be unnecessary, and it was causing post-number +% linebreak issues with latex (pdflatex always worked).} % \begin{macrocode} \setlength{\cfttabindent}{0pt} -\setlength{\cftbeforetabskip}{\l@cont@sep} -\renewcommand{\cfttabfont}{\normalsize\singlespace} +\setlength{\cftbeforetabskip}{\l@DUT@toc@sep} +\renewcommand{\cfttabfont}{\DUT@toc@low@font} +\renewcommand{\cfttabpagefont}{\DUT@toc@page@font} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % % \subsubsection{Bibliography} @@ -2625,108 +3723,188 @@ % \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 columns 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} +\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} +% % % \subsection{Remaining details} % % % \subsubsection{Terminal blank page} % -% Add a terminal blank page (when |\if@final| is true) -% From the Manual 3.16 p13 +% Add a terminal blank page (in \Lopt{pagebreak} mode) +% 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} % % @@ -2748,8 +3926,8 @@ %% 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." @@ -2778,6 +3956,11 @@ \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} @@ -2805,22 +3988,22 @@ % % \subsubsection{Main} % -% \begin{macrocode} +% \begin{macrocode} %<*example|example-draft> %% See drexel-thesis.pdf for details. -%\documentclass[subfig]{drexel-thesis} +%\documentclass[subfig,blackref,approvalform]{drexel-thesis} %\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} @@ -2828,18 +4011,43 @@ \usepackage{fancyvrb} % nicer verbatim handling \DefineShortVerb{\|} % \verb+TEXT+ -> |TEXT| +% \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} -\Blindtext{10}{10} +We're in \iffinal{final}{draft} mode! + +\Blindtext[3] \end{dedications} \begin{acknowledgments} -\Blindtext{10}{10} +\Blindtext[3] \end{acknowledgments} \tableofcontents @@ -2847,9 +4055,9 @@ \listoffigures \begin{abstract} -\Blindtext{10}{10} +\Blindtext[3] \end{abstract} -\end{preamble} +\end{DUTpreamble} \begin{thesis} \include{example-1} @@ -2861,7 +4069,7 @@ \include{example-a} \begin{vita} -\Blindtext{10}{10} +\Blindtext[3] \end{vita} \end{document} @@ -2870,9 +4078,9 @@ % % % \subsubsection{Part} -% \label{section:better-example-part} +% \label{sec:better-example-part} % -% \begin{macrocode} +% \begin{macrocode} %<*example-part> \part{A Part Heading} \chapter{A Chapter Heading} @@ -2898,7 +4106,7 @@ Here we have a text citation \citet{rief97} followed by a parenthetical citation\citep{rief97}. \subsubsection{Tables and Figures} -\Blindtext{2}{20} +\Blindtext[2] \begin{table} \begin{center} \begin{tabular}{r@{.}l r@{.}l r@{.}l} @@ -2910,7 +4118,7 @@ parenthetical citation\citep{rief97}. 30&0 & 11&9 & 10&1 \\ \ldots \end{tabular} - \caption{A table float.} %\blindtext{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}). @@ -2919,14 +4127,14 @@ parenthetical citation\citep{rief97}. %% to span the pre- and post-decimal columns. \end{center} \end{table} -\Blindtext{5}{20} +\Blindtext[2] \begin{figure} - \caption{A figure float. \blindtext{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} -\Blindtext{10}{20} +\Blindtext[3] \begin{figure} \begin{center} \subfloat[][]{% @@ -2942,14 +4150,14 @@ parenthetical citation\citep{rief97}. You can reference the subfig floats individually (\ref{fig:sub-a}) or together (\ref{fig:both}). -\Blindtext{10}{20} +\Blindtext[3] \part{Another Part} \chapter{Another Chapter} -\Blindtext{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} -\Blindtext{30}{20} +\Blindtext[5] % % \end{macrocode} % @@ -3018,9 +4226,9 @@ Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla} % \begin{macrocode} %<*example-appendix> \chapter{Some Appendix Heading} -\Blindtext{10}{20} +\Blindtext[5] \chapter{Another Appendix Heading} -\Blindtext{10}{20} +\Blindtext[5] % % \end{macrocode} % @@ -3059,11 +4267,12 @@ Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla} % \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} % %