X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=drexel-thesis.dtx;h=97127483aa63b2ba9ea2b0f289913aa4f9b65fde;hb=40f04f06d6d1c9074cfcd6c014eec44b0c2a4880;hp=6ed59f13e227250e919c2ebf7e176eb13a282f1c;hpb=4edb5ee71b0058063b2a1c97083bf586fa2bcf88;p=drexel-thesis.git diff --git a/drexel-thesis.dtx b/drexel-thesis.dtx index 6ed59f1..9712748 100644 --- a/drexel-thesis.dtx +++ b/drexel-thesis.dtx @@ -1,11 +1,22 @@ -% \def\fileversion{0.3} -% \def\filedate{2010/01/09} +% \def\fileversion{0.8} +% \def\filedate{2010/05/20} % \iffalse meta-comment -%\def\fileversion{0.3} -%\def\filedate{2010/01/09} -% -% Copyright (C) 2010 W. Trevor King, Daniel J. Cross, T. Tsankov, and -% R. Rojas. +%\def\fileversion{0.8} +%\def\filedate{2010/05/20} +% +% 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 % ------------------------------------------------------- % % This file may be distributed and/or modified under the @@ -18,7 +29,8 @@ % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. % -% Based on Scott Pakin's dtxtut/cskeleton.dtx +% Docstrip formatting initially based on Scott Pakin's +% dtxtut/cskeleton.dtx % http://www.ctan.org/tex-archive/info/dtxtut/ % % \fi @@ -48,17 +60,18 @@ backgroundcolor=\color{yellow!20},xleftmargin=\fboxsep,% xrightmargin=\fboxsep,gobble=1}}{} % -% \TeX's arguments aren't optional/mandatory, but they do use brackets -% and braces. -%<*driver> -\newcommand{\bracearg}[1]{\marg{#1}} -\newcommand{\brackarg}[1]{\oarg{#1}} -% % Define a quick and dirty version of |xkeyval|'s |\DescribeOptions|. %<*driver> \newenvironment{option}[1]{\begin{macro}{#1}} {\end{macro}} % +% Some commonly used abbreviations from |classes.dtx|. +%<*driver> +\newcommand*{\Lopt}[1]{\textsf {#1}} +\newcommand*{\file}[1]{\texttt {#1}} +\newcommand*{\Lcount}[1]{\textsl {\small#1}} +\newcommand*{\pstyle}[1]{\textsl {#1}} +% %<*driver> \makeatletter \def\DescribeOption#1{\leavevmode\@bsphack @@ -109,16 +122,30 @@ % \changes{0.1}{2006/01/18}{Rewrite by Daniel J.~Cross} % \changes{0.2}{2010/01/09}{W.~Trevor King transitioned from thesis.cls % to drexel-thesis.dtx and did a good deal of reorganizing.} -% \changes{0.2}{2010/01/09}{W.~Trevor King merged drexelthesis.cls +% \changes{0.3}{2010/01/13}{W.~Trevor King merged drexelthesis.cls % developed in the Comp.~Sci.~Department by Jeff Abrahamson, % Evan Sultanik, C.Y.~Ip, Christopher S.~Dahn, Christopher D.~Cera, % Mitchell Peabody, David T.~McWherter, and Vincent A.~Cicirello. -% Based on the University of Toronto Thesis LaTeX2e Class.} +% Based on the University of Toronto Thesis \LaTeXe\ Class. Also +% greatly improved the documentation by incorperating bits of +% the base/*.dtx files.} +% \changes{0.4}{2010/02/23}{W.~Trevor King repositioned hyperref +% inclusion for proper hyperref overriding. The previous +% implementation couldn't handle $\backslash$label for +% $\backslash$paragraph and some other section levels. The page +% number for the reference was correct, but the link went to the +% label's parent chapter.} +% \changes{0.5}{2010/03/03}{W.~Trevor King use hypcap for better +% caption hyperlink anchor placement.} +% \changes{0.6}{2010/03/11}{W.~Trevor King fixed +% $\backslash$if\@ final handling. Previous versions used +% it more like a hypothetical $\backslash$if\@ finalspace. +% Also adjusted theindex to use a listed\@ schapter.} % % \MakeShortVerb{\|} % \newcommand{\pkg}[1]{\textsf{#1}} % \newcommand{\cls}[1]{\textsf{#1}} -% ^^A\newcommand{\BibTeX}{{\sc Bib}\TeX} +% ^^A\newcommand{\BibTeX}{{\scshape Bib}\TeX} % % \title{The \textsf{drexel-thesis} class\thanks{This document % corresponds to \textsf{drexel-thesis}~\fileversion, dated \filedate.}} @@ -128,6 +155,7 @@ % % \maketitle % +% % \section{Introduction} % % This package defines a \LaTeX\ thesis class for Drexel University @@ -147,30 +175,40 @@ % \subsection{Options} % % \DescribeOptions{final,draft} -% The default option (selected if not options are passed) is |final| -% mode, which has all the proper formatting and spacing for your final -% product. The other main option is |draft| mode, which reduces all -% the spacing in the document, so might be helpful when printing out -% drafts (saves paper). -% -% |final| mode corresponds to (with Thesis Manual chapter and verse)\\ +% The default option (selected if not options are passed) is +% \Lopt{final} mode, which has all the proper formatting and spacing +% for your final product. The other main option is \Lopt{draft} mode, +% which reduces all the spacing in the document, so might be helpful +% when printing out drafts (saves paper). +% +% \Lopt{final} mode corresponds to (with Thesis Manual chapter and +% verse) \\ % \begin{tabular}{r p{0.8\textwidth}} -% |oneside| & 1.5 Library Submission Information, Print +% \Lopt{oneside} & 1.5 Library Submission Information, Print % Version: ``All copies must be: \ldots Typed/printed on only one % side of the page (not double-sided).'' \\ -% |finalspace| & Assorted single, double, and triple spacing +% \Lopt{finalspace} & Assorted single, double, and triple spacing % directives. \\ -% |dottedtoc| & From the example on p17. +% \Lopt{dottedtoc} & From the example on p17. % \end{tabular} % -% |draft| mode corresponds to \\ +% \Lopt{draft} mode corresponds to \\ % \begin{tabular}{r p{0.8\textwidth}} -% |twoside| & Save space. \\ -% |draftspace| & Save space. \\ -% |dottedtoc| & Might as well be consistent with |final|. \\ -% |draftwatermark| & It's good to have a timestamp. \\ +% \Lopt{twoside} & Save space. \\ +% \Lopt{draftspace} & Save space. \\ +% \Lopt{dottedtoc} & Might as well be consistent with \Lopt{final}. \\ +% \Lopt{mydraftwatermark} & It's good to have a timestamp. \\ % \end{tabular} % +% \DescribeOption{subfig} +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/}{\pkg{subfig}} +% makes it easy to include and caption multi-part figures. However, +% getting \pkg{subfig} to cooperate with \pkg{floatrow} and +% \pkg{tocloft} can be tricky. If you want to use \pkg{subfig}, just +% pass the \Lopt{subfig} option to \cls{drexel-thesis}, and all the +% pesky details will be taken care of. See Section +% \ref{sec:better-example} for an example. +% % \DescribeOption{finalspace} % Loosen spacing. % @@ -180,15 +218,30 @@ % \DescribeOptions{dottedtoc,boldtoc, % dottedpart,boldpart, % dottedchapter,boldchapter} -% These options change how the relevant TOC lines are printed -% \LaTeX\ defaults to bold but not dots. The |*toc| options set all -% of the types. For example, |boldtoc| is equivalent to -% |boldchapter,boldpart|. +% These options change how the relevant table of contents lines are +% printed. \LaTeX\ defaults to bold but not dots. The \Lopt{*toc} +% options set all of the types. For example, \Lopt{boldtoc} is +% equivalent to \Lopt{boldchapter,boldpart}. +% +% \DescribeOption{indenttoc} +% The example table of contents in the Manual p17 does not indent +% section entries, etc., so neither does \cls{drexel-thesis}. If you +% \emph{do} want pretty, indented TOCs, like the \LaTeX\ defaults pass +% \Lopt{indenttoc} to \cls{drexel-thesis}. % % \DescribeOption{draftwatermark} -% |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. +% \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. +% +% \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{indentfirst} +% \Lopt{indentfirst} indents the first paragraph after sections etc. % % % \subsubsection{Interesting \cls{book} options} @@ -200,11 +253,11 @@ % Setup output for two-sided printing. % % \DescribeOption{leqno} -% |leqno| places the numbering of formulae on the left hand side +% \Lopt{leqno} places the numbering of formulae on the left hand side % instead of the right. % % \DescribeOption{fleqn} -% |fleqn| typesets displayed formulae left-aligned instead of +% \Lopt{fleqn} typesets displayed formulae left-aligned instead of % centered. % % @@ -240,6 +293,12 @@ % \begin{example} % \advisor{John A. Wheeler, Ph.D.} % \end{example} +% You can set multiple advisors, if appropriate, by calling |\advisor| +% multiple times. +% \begin{example} +% \advisor{John A. Wheeler, Ph.D.} +% \advisor{Advisor 2} +% \end{example} % See the Manual 3.1 p8. % % \begin{command} @@ -281,13 +340,24 @@ % \end{example} % % \begin{command} -% `\cs{makecopyright}' -% `\cs{makecopyrightCC}' +% `\cs{copyrighttext}\marg{text}' +% \end{command} +% \DescribeMacro{\copyrighttext} +% 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. +% +% \begin{command} +% `\cs{copyrighttextCCBYSA}' % \end{command} -% \DescribeMacros{\makecopyright,\makecopyrightCC} -% Write the copyright page (Manual 3.2 p9). -% Use |\makecopyright| to reserve all rights or |\makecopyrightCC| for -% a Creative Commons copyright. +% There are a number of predefined copyright messages for ease of use \\ +% \begin{tabular}{l l} +% |\copyrighttextCCBYSA| & +% Creative Commons Attribution-ShareAlike License Version 3.0.\\ +% \end{tabular} % % \begin{command} % `\cs{tableofcontents}' @@ -322,7 +392,7 @@ % `\cs{listoftables}' % \end{command} % \DescribeMacro{\listoftables} -% Write the List of Tables page (Manual 3.7 p10). +% Write the List of Tables page (Manual 3.6 p10). % Skip if you have no tables in your thesis. % % \begin{command} @@ -343,6 +413,15 @@ % 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} +% Include \Lopt{final}- or \Lopt{draft}-specific code. +% \begin{example} +% We're in \iffinal{final}{draft} mode! +% \end{example} +% % % \subsection{Environments} % @@ -442,13 +521,17 @@ % % \subsubsection{Tables and Figures} % -% From the Manual 2.3 p6, ``Tables and Figures'', -% \begin{quote} -% Place figure captions below figures. -% Place table captions above tables. -% \end{quote} -% so make sure the |\caption| command is in the appropriate location. -% For example +% \pkg{drexel-thesis} loads +% \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, +% \href{http://www.ctan.org/tex-archive/macros/latex/required/floatrow/}{\pkg{floatrow}} +% 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} % \begin{table} % \caption{Some caption text} @@ -464,18 +547,17 @@ % \caption{Some caption text} % \end{float} % \end{example} -% Note that you'll want to use the -% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}} -% package to define the |\includegraphics| macro. For more useful -% float information, see the -% \href{http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions}{\LaTeX wikibook page}. -% +% For more useful float information, see the examples in Section +% \ref{sec:better-example-part} and the +% \href{http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions} +% {\LaTeX\ wikibook page}. +% % % \subsubsection{Citations} % % I highly recommend using \BibTeX\ and % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/}{\pkg{natbib}}. -% See Section \ref{sec:natbib-example} for a simple example. +% See Section \ref{sec:better-example} for a simple example. % % Suggested options:\\ % \begin{tabular}{r p{0.8\textwidth}} @@ -487,8 +569,16 @@ % % \subsubsection{References} % +% Easier cross referencing with % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/cleveref/}{\pkg{cleveref}}. -% Is a wonderful tool for easy, consistent crosslinking. The manual is also very good. +% Is a wonderful tool for easy, consistent crosslinking via |\cref|, +% |\Cref|, etc.. The manual is also very good. +% Note that if you use |\part|s in your document, you need to tell +% \pkg{cleveref} how to deal with them: +% \begin{example} +% \usepackage{cleveref} +% \crefname{part}{part}{parts} +% \end{example} % % % \subsubsection{Hyperlinks} @@ -506,13 +596,46 @@ % set options overriding these defaults. % % +% \subsubsection{Developing large \LaTeX\ documents} +% +% A thesis may take a while to compile, especially if it contains +% lots of images, etc.. One way to save time, is to use |\includeonly| +% when including chapter \file{*.tex} files (see +% \href{http://en.wikibooks.org/wiki/TeX/includeonly}{the \TeX\ Wikibook}). +% Usage would be something like +% \begin{example} +% \documentclass{drexel-thesis} +% ... +% \includeonly{chapter2.tex,chapter3.tex} +% \begin{document} +% ... +% \begin{thesis} +% \include{chapter1.tex} +% \include{chapter2.tex} +% \include{chapter3.tex} +% \include{chapter4.tex} +% \end{thesis} +% ... +% \end{document} +% \end{example} +% which would only compile chapters two and three. Don't confuse the +% similar commands |\include| and |\input|. The more fundamental +% |\input| just inserts the file contents at that point, while +% |\include| +% \begin{itemize} +% \item may only be used after |\begin{document}| +% \item acts like |\clearpage \input{} \clearpage| +% \item will not crash on nonexistent files +% \end{itemize} +% +% % \StopEventually{\pagebreak\PrintChanges} % % % \section{Implementation} -% \iffalse meta-comment +% \begin{macrocode} %<*class> -% \fi +% \end{macrocode} % % For simplicity, we'll derive everything from the standard \cls{book} % class. @@ -531,31 +654,42 @@ % Define some booleans to store option states % \begin{macrocode} \newif\if@mainmatter \@mainmattertrue +\newif\if@DUT@subfigopt \newif\if@dottedchapter \newif\if@boldchapter \newif\if@boldpart \newif\if@dottedpart +\newif\if@indenttoc \newif\if@draftwatermark -\newif\if@appendix -\newif\if@final \@finalfalse +\newif\if@mydraftwatermark +\newif\if@indentfirst +\newif\if@final +% \end{macrocode} +% +% \begin{macro}{\iffinal} +% Setup a user-friendly means for including \Lopt{final}- or +% \Lopt{draft}-specific code. +% \changes{0.7}{2010/03/14}{W.~Trevor King added macro.} +% \begin{macrocode} +\newcommand\iffinal[2]{\if@final #1\else #2\fi} % \end{macrocode} +% \end{macro} % -% Define some strings to store option arguments +% \begin{option}{subfig} +% Set \Lopt{subfig} flag % \begin{macrocode} -\newcommand{\@advisor}{ } -\newcommand{\def@month}{ } -\newcommand{\def@year}{ } -\newcommand{\@degree}{ } +\DeclareOptionX{subfig}{\@DUT@subfigopttrue} % \end{macrocode} +% \end{option} +% % \begin{option}{finalspace} % \begin{macrocode} \DeclareOptionX{finalspace}{ \setlength\overfullrule{0pt} - \def\@csp{2} % content page spacing + \def\@cont@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} @@ -563,11 +697,14 @@ % \begin{macrocode} \DeclareOptionX{draftspace}{ \setlength\overfullrule{5pt} - \def\@csp{1} % content page spacing + \def\@cont@sep{0} % content page separation (# blanklines between entries) \def\@ssp{1} % single space \def\@dsp{1} % double space \def\@tsp{2} % triple space - \@finalfalse +% \end{macrocode} +% Don't force chapters onto right-hand pages. +% \begin{macrocode} + \PassOptionsToClass{openany}{book} } % \end{macrocode} % \end{option} @@ -580,7 +717,7 @@ % \begin{option}{dottedchapter} % \begin{macrocode} \DeclareOptionX{dottedchapter}{\@dottedchaptertrue} -% \end{macrocode} +% \end{macrocode}1 % \end{option} % \begin{option}{boldpart} % \begin{macrocode} @@ -609,14 +746,40 @@ % \end{macrocode} % \end{option} % +% \begin{option}{indenttoc} +% Set \Lopt{indenttoc} flag +% \begin{macrocode} +\DeclareOptionX{indenttoc}{\@indenttoctrue} +% \end{macrocode} +% \end{option} +% % \begin{option}{draftwatermark} -% Set draft watermark flag +% Set \Lopt{draftwatermark} flag +% \begin{macrocode} +\DeclareOptionX{draftwatermark}{% + \@draftwatermarktrue + \@mydraftwatermarkfalse} +% \end{macrocode} +% \end{option} +% +% \begin{option}{mydraftwatermark} +% Set \Lopt{mydraftwatermark} flag % \begin{macrocode} -\DeclareOptionX{draftwatermark}{\@draftwatermarktrue} +\DeclareOptionX{mydraftwatermark}{% + \@mydraftwatermarktrue + \@draftwatermarkfalse} % \end{macrocode} % \end{option} % -% Define the book options that |final| and |draft| need to access. +% \begin{option}{indentfirst} +% Set \Lopt{indentfirst} flag +% \begin{macrocode} +\DeclareOptionX{indentfirst}{\@indentfirsttrue} +% \end{macrocode} +% \end{option} +% +% Define the book options that \Lopt{final} and \Lopt{draft} need to +% access. % \begin{option}{oneside} % \begin{macrocode} \DeclareOptionX{oneside}{\PassOptionsToClass{oneside}{book}} @@ -632,6 +795,7 @@ % \begin{option}{final} % \begin{macrocode} \DeclareOptionX{final}{ + \@finaltrue \setkeys{drexel-thesis.cls}{oneside} \setkeys{drexel-thesis.cls}{finalspace} \setkeys{drexel-thesis.cls}{dottedtoc} @@ -642,16 +806,17 @@ % \begin{option}{draft} % \begin{macrocode} \DeclareOptionX{draft}{ + \@finalfalse \setkeys{drexel-thesis.cls}{twoside} \setkeys{drexel-thesis.cls}{draftspace} \setkeys{drexel-thesis.cls}{dottedtoc} - \setkeys{drexel-thesis.cls}{draftwatermark} + \setkeys{drexel-thesis.cls}{mydraftwatermark} } % \end{macrocode} % \end{option} % % Use the default \cls{book} implementation for any remaining options -% including |oneside|, |twoside|, |leqno|, |fleqn|, +% including \Lopt{oneside}, \Lopt{twoside}, \Lopt{leqno}, \Lopt{fleqn}, % \ldots. % \begin{macrocode} \DeclareOptionX*{\PassOptionsToClass{\CurrentOption}{book}} @@ -671,22 +836,60 @@ % % \subsection{Internal package includes} % +% % Include some other packages we'll need. If the package is not % installed on your system, see Section \ref{sec:dependencies} for % installation instructions. % +% For many packages, we want the same functionality for both +% \Lopt{final} and \Lopt{draft} modes. We pass \Lopt{final} to most +% of those packages to override a possible \Lopt{draft} option passed +% to \pkg{drexel-thesis}. +% +% +% \subsubsection{\pkg{setspace}} +% % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/setspace/}{\pkg{setspace}} % for double spacing. % \begin{macrocode} \RequirePackage{setspace} % \end{macrocode} % +% +% \subsubsection{\pkg{calc}} +% % \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\pkg{calc}} -% for |\blanklines| macro. +% for |\set@lines@length| macro (page +% \pageref{sec:implement-line-spacing}). % \begin{macrocode} \RequirePackage{calc} % \end{macrocode} % +% +% \subsubsection{\pkg{graphicx}} +% +% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}} +% for |\includegraphics|. Not strictly necessary, but I can't imagine +% a thesis without figures. +% \begin{macrocode} +\RequirePackage[final]{graphicx} +% \end{macrocode} +% +% We include the graphicx package now so we can +% pass \Lopt{final}, because some later packages include it with no options, +% and a \Lopt{final} include after that produces errors like +% \begin{example} +% l.104 \RequirePackage +% [final]{ifpdf} +% The package graphicx has already been loaded with options: +% [] +% There has now been an attempt to load it with options +% [final] +% \end{example} +% +% +% \subsubsection{\pkg{draftmark}} +% % The Comp.~Sci.\ class used % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/draftcopy/}{\pkg{draftcopy}} % to add their watermarks, but as of the current 2002/02/25 v2.16, it @@ -696,13 +899,13 @@ % which unfortunately has a number of apparently non-standard dependencies % (\href{http://www.ctan.org/tex-archive/macros/latex/contrib/etextools/}{\pkg{etextools}}, % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/etoolbox/}{\pkg{etoolbox}}, -% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xifthen/}{\pkg{xifthen}}, +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/lastpage/}{\pkg{lastpage}}, % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/ltxnew/}{\pkg{ltxnew}}, % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/pagerange/}{\pkg{pagerange}}, -% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/lastpage/}{\pkg{lastpage}}, +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/xifthen/}{\pkg{xifthen}}, % if only I had the space to install |texlive-latexextra| |:p|). % The output is, however, very flexible, and it \emph{does} work with -% both \LaTeX and pdf\LaTeX. If you don't like the default watermark, +% both \LaTeX\ and pdf\LaTeX. If you don't like the default watermark, % you can also adjust the particulars with |\draftmarksetup|. % \begin{macrocode} \if@draftwatermark @@ -711,243 +914,744 @@ \fi % \end{macrocode} % -% Setup page margins with the -% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/geometry/}{\pkg{geometry}} -% package. From the Manual p5: +% 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 +% \end{macrocode} +% Use \pkg{eso-pic} for |\AddToShipoutPicture|. +% \begin{macrocode} + \RequirePackage{eso-pic} +% \end{macrocode} +% Use \pkg{xcolor} for |\definecolor|. +% \begin{macrocode} + \RequirePackage{xcolor} + \definecolor{watermark}{rgb}{0.9,0.9,0.9} +% \end{macrocode} +% Set the font explicitly to avoid being effected by the last text on +% the page having some strange font. |\sffamily| sets a sans serif +% font. +% \begin{macrocode} + \newcommand{\watermarkfont}{% + \color{watermark}}%\fontfamily{phv}\selectfont\sffamily} + \newcommand{\watermark}{% + \rule{4.25in}{0pt}\raisebox{5.5in}{% + \makebox[0pt]{% +% \end{macrocode} +% |\rotatebox| and |\resizebox| from \pkg{graphicx}. +% \begin{macrocode} + \rotatebox[origin=c]{45}{% + \resizebox{!}{1.5in}{% + {\watermarkfont DRAFT}% + }}}} + \raisebox{4.2in}{% + \makebox[0pt]{% + \rotatebox[origin=c]{45}{% + \resizebox{!}{.6in}{% + {\watermarkfont \qquad\today}% + }}}}} + \AddToShipoutPicture{\watermark{}} +\fi +% \end{macrocode} +% +% +% \subsubsection{\pkg{indentfirst}} +% +% Indent the first paragraph after sections etc.\ with +% \href{http://www.ctan.org/tex-archive/macros/latex/required/tools/}{\pkg{indentfirst}}. +% \begin{macrocode} +\if@indentfirst + \RequirePackage{indentfirst} +\fi +% \end{macrocode} +% +% +% \subsubsection{\pkg{geometry}} +% +% Setup page margins with +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/geometry/}{\pkg{geometry}}. +% From the Manual p5: % \begin{itemize} % \item The left margin must be at least 1 1/2'' (1.5 inches) % throughout the document. % \item All other margins (top, bottom, and right) must be at least 1''. % \end{itemize} % And from the Manual 1.5 p4, Print Version: -% ``The paper size must be 8 1/2'' x 11''{}''. +% \begin{quote} +% The paper size must be 8 1/2'' x 11''. +% \end{quote} % \begin{macrocode} \RequirePackage[letterpaper,margin=1in,bindingoffset=0.5in]{geometry} % \end{macrocode} % Note that we include the \pkg{geometry} package after loading \cls{book} to % override the margin manipulation that takes place in \cls{book}. % +% +% \subsubsection{\pkg{tocloft}} +% +% Typeset the table of contents, etc., with +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/tocloft/}{\pkg{tocloft}}. +% \begin{macrocode} +\if@DUT@subfigopt + \RequirePackage[subfigure]{tocloft} +\else + \RequirePackage{tocloft} +\fi +% \end{macrocode} +% 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} +% for details. +% +% The configuration of \pkg{tocloft} takes place in Sections +% \ref{sec:implement-toc}, \ref{sec:implement-lof}, and +% \ref{sec:implement-lot}. +% +% +% \subsubsection{\pkg{caption}} +% +% Get nice caption formatting with +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/caption/}{\pkg{caption}}. +% From the Manual p5: +% \begin{itemize} +% \item The left margin must be at least 1 1/2'' (1.5 inches) +% throughout the document. +% \item All other margins (top, bottom, and right) must be at least 1''. +% \end{itemize} +% \begin{macrocode} +\RequirePackage[margin=10pt,labelfont=bf,labelsep=colon]{caption} +% \end{macrocode} +% You can change these settings if you like using |\captionsetup|. +% +% +% \subsubsection{\pkg{floatrow}} +% \label{sec:floatrow} +% +% 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'', +% \begin{quote} +% \begin{itemize} +% \item Place figure captions below figures. +% \item Place table captions above tables. +% \end{itemize} +% \end{quote} +% \begin{macrocode} +\RequirePackage{floatrow} +\floatsetup[table]{style=plaintop} +\floatsetup{captionskip=10pt} +\floatsetup[table]{captionskip=10pt} +% \end{macrocode} +% Use \pkg{fr-subfig} for \pkg{floatrow}/\pkg{subfig} compatibility. +% See the \pkg{floatrow} documentation (Sec.~7.1, ``The \pkg{subfig} +% package'') and \pkg{subfig} documentation (Sec.~4.3, +% ``\pkg{FloatRow} Package'') for details. +% \begin{macrocode} +\if@DUT@subfigopt + \RequirePackage{fr-subfig} +\fi +% \end{macrocode} +% We set up the three-line surrounding spaces in Section +% \ref{sec:implement-floats}. +% +% You can change these settings using |\floatsetup|, but you probably +% won't need to. +% +% +% \subsubsection{\pkg{subfig}} +% \label{sec:subfig} +% +% Allow multi-part figures with +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/}{\pkg{subfig}}. +% \begin{macrocode} +\if@DUT@subfigopt + \RequirePackage{subfig} +\fi +% \end{macrocode} +% +% +% \subsubsection{\pkg{fancyhdr}} +% \label{sec:fancyhdr} +% % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/fancyhdr/}{\pkg{fancyhdr}} % for correct page numbering and fancy headers. +% From the Manual 2.3 p5, ``Pagination'' +% \begin{quote} +% Place page numbers in the upper right-hand corner of the page, +% 3/4'' from the top. +% \end{quote} % \begin{macrocode} \RequirePackage{fancyhdr} % \end{macrocode} -% Setup the standard |fancy| format. |\leftmark| is the higher level -% mark, see |\chaptermark| below. |\rightmark| is the lower level -% mark, see |\sectionmark| below. +% Setup the standard |fancy| format. % \begin{macrocode} \pagestyle{fancy} \fancyhf{} -\fancyhead[LE,RO]{\slshape\rightmark} -\fancyhead[LO,RE]{\slshape\leftmark} -\fancyfoot[LE,RO]{\thepage} % \end{macrocode} -% Override the |plain| format (for chapter pages, etc.). +% Turn off the header rule by setting its width to $0$. % \begin{macrocode} -\fancypagestyle{plain}{ - \fancyhf{} - \renewcommand{\headrulewidth}{0pt} - \fancyfoot[LE,RO]{\thepage} -} +\renewcommand{\headrulewidth}{0pt} % \end{macrocode} -% -% Setup colon rather than period separated chapter marks, overriding -% \cls{book}'s |\chaptermark|. +% 0.4 pt is \pkg{fancyhdr}'s default |\headrulewidth|, so we'll +% recycle the value. % \begin{macrocode} -\renewcommand\chaptermark[1]{% - \markboth {\MakeUppercase{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \@chapapp\ \thechapter: \ % - \fi - \fi - #1}}{}} +\renewcommand{\footrulewidth}{0.4pt} +% \end{macrocode} +% |\leftmark| is the higher level mark, see |\chaptermark| below. +% |\rightmark| is the lower level mark, see |\sectionmark| below. +% We put the lower level mark to the outside because it changes more +% often. Page numbers also go on the outside. % \begin{macrocode} -% -% Setup space rather than period separated section marks, overriding -% \cls{book}'s |\sectionmark|. +\fancyfoot[RE,LO]{\scshape\leftmark} +\fancyfoot[LE,RO]{\scshape\rightmark} +\fancyhead[LE,RO]{\thepage} +% \end{macrocode} +% Override the |plain| format (for part pages, etc.). % \begin{macrocode} -\renewcommand{\sectionmark}[1]{% - \markright {\MakeUppercase{% - \ifnum \c@secnumdepth >\z@ - \thesection \ % - \fi - #1}}} +\fancypagestyle{plain}{ + \fancyhf{} + \renewcommand{\footrulewidth}{0pt} + \fancyhead[LE,RO]{\thepage} +} % \end{macrocode} -% -% \href{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}{\pkg{graphicx}} -% for |\includegraphics|. Not strictly necessary, but I can't imagine -% a thesis without figures. +% Keep the |empty| format at its default. % \begin{macrocode} -\RequirePackage{graphicx} +\fancypagestyle{empty}{ + \fancyhf{} + \renewcommand{\footrulewidth}{0pt} +} % \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}} +% % \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{ifpdf}} % for detecting PDF drivers. We use it to configure \pkg{hyperref} below. % \begin{macrocode} \RequirePackage{ifpdf} % \end{macrocode} % +% \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{hyperref} -% \end{macrocode} -% Nobody likes the default colored boxes. Color the text itself. -% \begin{macrocode} -\hypersetup{colorlinks} -% \end{macrocode} -% If we're writing a PDF, we set the |pdfauthor|, etc.\ arguments in -% |\author|, etc.\ to avoid using |\AtBeginDocument| or some such. +% thesis without it. We actually include this later +% (Section~\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|). % % -% \subsection{Macros} +% \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 +% Section~\ref{sec:hypcap-inclusion}). +% +% +% \subsection{\LaTeX\ overrides and extensions} +% +% Here we change the behavior of a bunch of macros and environments +% from \file{latex.ltx} (generated by \file{format.ins} in +% \href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{base}}). +% We'll copy in their original notes along with their code, following +% the relevant documentation an order given in \file{format.ins} and +% the associated \file{*.dtx} files. +% +% +% \subsubsection{\file{ltsect.dtx}} % -% \begin{macro}{\author} -% Override |latex.ltx|'s |\author| to set \pkg{hyperref}'s |pdfauthor|. -% \begin{macrocode} -\renewcommand{\author}[1]{ - \gdef\@author{#1} - \ifpdf \hypersetup{pdfauthor={\@author}} \fi -} -% \end{macrocode} -% \end{macro} % \begin{macro}{\title} -% Override |latex.ltx|'s |\title| to set \pkg{hyperref}'s |pdftitle|. +% |\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]{ - \gdef\@title{#1} + \DUT@title{#1} \ifpdf \hypersetup{pdftitle={\@title}} \fi } % \end{macrocode} % \end{macro} -% \begin{macro}{\advisor} +% +% \begin{macro}{\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| if we're +% writing a PDF to avoid using |\AtBeginDocument| or some such. +% (\file{ltsect.dtx}, L129). % \begin{macrocode} -\newcommand{\advisor}[1]{\renewcommand{\@advisor}{#1}} +\let\DUT@author\author +\renewcommand{\author}[1]{ + \DUT@author{#1} + \ifpdf \hypersetup{pdfauthor={\@author}} \fi +} % \end{macrocode} % \end{macro} -% \begin{macro}{\defmonth} +% +% 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 +% |\maketitle| will produce an error message. % \begin{macrocode} -\newcommand{\defmonth}[1]{\renewcommand{\def@month}{#1}} +\def\defmonth#1{\gdef\def@month{#1}} +\def\def@month{\@latex@error{No \noexpand\defmonth given}\@ehc} % \end{macrocode} -% \end{macro} -% \begin{macro}{\defyear} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\defyear} +% \begin{macro}{\@defyear} +% |\defyear| (defense year) for use in |\maketitle|. If not given +% |\maketitle| will produce an error message. % \begin{macrocode} -\newcommand{\defyear}[1]{\renewcommand{\def@year}{#1}} +\def\defyear#1{\gdef\def@year{#1}} +\def\def@year{\@latex@error{No \noexpand\defyear given}\@ehc} % \end{macrocode} -% \end{macro} -% \begin{macro}{\degree} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\degree} +% \begin{macro}{\@degree} +% |\degree| for use in |\maketitle|. If not given |\maketitle| will +% produce an error message. % \begin{macrocode} -\newcommand{\degree}[1]{ - \renewcommand{\@degree}{#1} - \ifpdf \hypersetup{pdfsubject={\@degree}} \fi -} -% \hypersetup{pdfauthor={\@author}} -% \hypersetup{pdftitle={\@title}} -% \hypersetup{pdfstartview=FitH} -% } +\def\degree#1{\gdef\@degree{#1} + \ifpdf \hypersetup{pdfsubject={\@degree}} \fi} +\def\@degree{\@latex@error{No \noexpand\degree given}\@ehc} % \end{macrocode} -% \end{macro} +% \end{macro} +% \end{macro} % -% Set the official names of the various sections encountered -% \begin{macro}{\dedicationsname} -% From the Manual 3.3 p9, ``The heading |Dedications| must appear at -% the top of the page.'' +% \begin{macro}{\copyrighttext} +% \begin{macro}{\@copyrighttext} +% |\copyrighttext| for use in |\makecopyright|. There are a number of +% blurbs predefined in Section \ref{sec:implement-copyright}. % \begin{macrocode} -\newcommand\dedicationsname{Dedications} +\def\copyrighttext#1{\gdef\@copyrighttext{#1}} +\def\@copyrighttext{All Rights Reserved.} % \end{macrocode} -% \end{macro} -% \begin{macro}{\acknowledgmentsname} -% From the Manual 3.4 p9, ``The heading |Acknowledgments| must appear -% at the top of the page.'' +% \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{macrocode} -\newcommand\acknowledgmentsname{Acknowledgments} +\newcounter{advisors} +\setcounter{advisors}{0} +\newcommand\advisor[1]{% + \ifx % \end{macrocode} -% \end{macro} -% \begin{macro}{\contentsname} -% From the Manual 3.5 p9, ``The heading |Table of Contents| must -% appear at the top of the page.'' Override \cls{book}'s definition. +% If |#1| is |\empty|, this call is a no-op. % \begin{macrocode} -\renewcommand\contentsname{Table of Contents} + \empty{#1} + \else % \end{macrocode} -% \end{macro} -% \begin{macro}{\listtablename} -% From the Manual 3.6 p10, ``The heading |List of Tables| must appear -% at the top of the page.'' -% Override \cls{book}'s definition. +% Save the advisors to |\@advisor@a|, |\@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} -\renewcommand\listtablename{List of Tables} + \stepcounter{advisors} + \expandafter\gdef\csname @advisor@\alph{advisors}\endcsname{#1} + \fi} +\newcommand\@advisor{% + \ifnum\c@advisors=0% + \@latex@error{No \noexpand\advisor given}\@ehc% + \else% % \end{macrocode} -% \end{macro} -% \begin{macro}{\listfigurename} -% From the Manual 3.7 p10, ``The heading |List of Figures| must appear -% at the top of the page.'' -% Override \cls{book}'s definition. +% Start a group so \Lcount{advisor@loop} is released afterwards to +% save memory. % \begin{macrocode} -\renewcommand\listfigurename{List of Figures} + \begingroup% + \newcounter{advisor@loop}% + \setcounter{advisor@loop}{1}% % \end{macrocode} -% \end{macro} -% \begin{macro}{\abstractname} -% From the Manual 3.8 p10, ``The following heading must be centered at -% the top of the first page: |Abstract|\ldots'' +% Print the first advisor. % \begin{macrocode} -\newcommand\abstractname{Abstract} + \csname @advisor@\alph{advisor@loop}\endcsname\relax% % \end{macrocode} -% \end{macro} -% \begin{macro}{\bibname} -% From the Manual 3.13 p12, ``The heading |Bibliography| (or -% |List of References|) must appear at the top of first page.'' -% Override \cls{book}'s definition. +% For any remaining advisors\ldots % \begin{macrocode} -\renewcommand\bibname{Bibliography} + \loop\ifnum\c@advisor@loop<\c@advisors% + \stepcounter{advisor@loop}% +% \end{macrocode} +% Print the connecting text. +% \begin{macrocode} + \ifnum\c@advisor@loop=\c@advisors% + \ifnum\c@advisors=2% +% \end{macrocode} +% The next advisor if the last of two. +% \begin{macrocode} + {\ and\ }% + \else% +% \end{macrocode} +% The next advisor if the last of many. +% \begin{macrocode} + {, and\ }% + \fi% + \else% +% \end{macrocode} +% The next advisor is not the last. +% \begin{macrocode} + {,\ }% + \fi% +% \end{macrocode} +% Print the advisor's name. +% \begin{macrocode} + \csname @advisor@\alph{advisor@loop}\endcsname\relax% + \repeat% + \endgroup% + \fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \paragraph{baselineskip} +% \label{sec:implement-line-spacing} +% +% \begin{macro}{\DUT@baselineskip} +% Since we'll be messing with the spacing, save the single-spaced +% baseline. +% \changes{0.3}{2010/01/13}{Use $\backslash$setlength to store the +% value at the default font. The previous version used +% $\backslash$let, which made $\backslash$DUT\@baselineskip a +% synonym for $\backslash$baselineskip that changed with font +% size.} +% \begin{macrocode} +\newlength\DUT@baselineskip +\setlength\DUT@baselineskip\baselineskip % \end{macrocode} % \end{macro} -% \begin{macro}{\appendixname} -% From the Manual 3.14 p12, ``Number the appendicies consecutively -% either alphabetically or numerically (|Appendix A|, |Appendix B|\ldots -% or |Appendix 1|, |Appendix 2|\ldots).'' -% Override \cls{book}'s definition. +% +% \begin{command} +% `\cs{set@lines@length}\marg{length}\marg{N}' +% \end{command} +% \begin{macro}{\set@lines@length} +% Many specifications in the Manual refer to ``\meta{N} blank lines''. +% |\set@lines@length| allows you to set a length to a given number of +% lines, protecting against external |spacing| environments. It +% requires \pkg{calc} for the multiplication. % \begin{macrocode} -\renewcommand\appendixname{Appendix} +\newcommand{\set@lines@length}[2]{% + \setlength{#1}{\DUT@baselineskip * {#2}}} % \end{macrocode} % \end{macro} -% \begin{macro}{\vitaname} -% From the Manual 3.15 p13, ``The heading |Vita| must appear at the -% top of the page.'' +% +% +% Fix |\@ssect| and |\@sect| from \file{latex.ltx} to give single +% spaced headings. +% +% \begin{macro}{\@sect} +% Pseudocode for the |\@sect| command +% \begin{example} +% \@sect{NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}[ARG1]{ARG2} +% == +% BEGIN +% IF LEVEL > \c@secnumdepth +% THEN \@svsec :=L null +% ELSE \refstepcounter{NAME} +% \@svsec :=L BEGIN \@seccntformat{#1}\relax END +% FI +% IF AFTERSKIP > 0 +% THEN \begingroup +% STYLE +% \@hangfrom{\hskip INDENT\@svsec} +% {\interlinepenalty 10000 ARG2\par} +% \endgroup +% \NAMEmark{ARG1} +% \addcontentsline{toc}{NAME} +% { IF LEVEL > \c@secnumdepth +% ELSE \protect\numberline{\theNAME} FI +% ARG1 } +% ELSE \@svsechd == BEGIN STYLE +% \hskip INDENT\@svsec +% ARG2 +% \NAMEmark{ARG1} +% \addcontentsline{toc}{NAME} +% { IF LEVEL > \c@secnumdepth +% ELSE +% \protect\numberline{\theNAME} +% FI +% ARG1 } +% END +% FI +% \@xsect{AFTERSKIP} +% END +% \end{example} +% (\file{ltsect.dtx}, L295). % \begin{macrocode} -\newcommand\vitaname{Vita} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup +% \end{macrocode} +% Here we deviate from \file{ltsect.dtx} to ensure single spacing for +% the section title. +% \begin{macrocode} + \setstretch{\@ssp}% + #6{% + \@hangfrom{\hskip #3\relax\@svsec}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} % \end{macrocode} % \end{macro} % +% \begin{macro}{\@ssect} +% Pseudocode for the |\@ssect| command +% \begin{example} +% \@ssect{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}{ARG} == +% BEGIN +% IF AFTERSKIP > 0 +% THEN \begingroup +% STYLE +% \@hangfrom{\hskip INDENT}{\interlinepenalty 10000 ARG\par} +% \endgroup +% ELSE \@svsechd == BEGIN STYLE +% \hskip INDENT +% ARG +% END +% FI +% \@xsect{AFTERSKIP} +% END +% \end{example} +% (\file{ltsect.dtx}, L521). +% \begin{macrocode} +\def\@ssect#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup +% \end{macrocode} +% Here we deviate from \file{ltsect.dtx} to ensure single spacing for +% the section title. +% \begin{macrocode} + \setstretch{\@ssp}% + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \@xsect{#3}} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{\file{ltbibl.dtx}} +% +% \DescribeMacro{\bibliography} +% \DescribeEnv{thebibliography} +% A bibliography is created by the |thebibliography| environment, which +% generates a title such as ``Bibliography'', and a list of entries. +% The \BibTeX\ program will create a file containing such an +% environment, which will be read in by the |\bibliography| command. +% With \BibTeX, the following commands will be used. +% +% The document class must define the thebibliography environment. This +% environment has a single argument, which is the widest bibliography +% label-- e.g., if the [Knuth67] is the widest entry, then this +% argument will be Knuth67. The |\thebibliography| command must begin +% a list environment, which the |\endthebibliography| command ends. +% +% \begin{macro}{\bibliography} +% |\bibliography|\marg{file1,file2,\ldots,filen} : specifies +% the bibdata files. Writes a |\bibdata| entry on the |.aux| file +% and tries to read in |mainfile.bbl|. +% +% We don't need to change it, but it explains why we need to override +% |thebibliography| even when we don't use it directly. +% (\file{ltbibl.dtx}, L284). +% \begin{macrocode} +%\def\bibliography#1{% +% \if@filesw +% \immediate\write\@auxout{\string\bibdata{#1}}% +% \fi +% \@input@{\jobname.bbl} +%} +% \end{macrocode} +% \end{macro} +% +% +% \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} +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{\blankpage} -% Insert a blank page without numbering (except in draft mode). +% Add a useful extension to insert a blank page without numbering. +% In draft mode, this macro is a no-op. % \begin{macrocode} \newcommand\blankpage{% \if@final - \clearpage + \DUT@clearpage \thispagestyle{empty} \hphantom{0} - \clearpage + \DUT@clearpage \else\fi } % \end{macrocode} % \end{macro} % +% +% \begin{command} +% `\cs{blanklines}\marg{N}' +% `\cs{blanklines*}\marg{N}' +% \end{command} % \begin{macro}{\blanklines} -% Insert number of blank lines, protecting against external |spacing| -% environments. Requires \pkg{calc} for the multiplication. -% \begin{macrocode} -\newlength\blanklines@length -\newcommand{\blanklines}[1]{% - \begin{spacing}{1} - \setlength{\blanklines@length}{\baselineskip * {#1}} - \vspace{\blanklines@length} - \end{spacing} +% Insert \meta{N} blank lines. The starred forms use |\vspace|, which +% inserts space even at the start and end of pages. The |p| forms +% add a trailing |\par|. \emph{I'm still trying to get this part working +% cleanly\ldots} +% \begin{macrocode} +\newlength\DUT@blanklines@length +\newcommand{\@blanklines@setup}[1]{% + \set@lines@length{\DUT@blanklines@length}{#1}% + %\typeout{BLANKLINES -- #1}% + %\showthe\DUT@blanklines@length } +\newcommand{\blanklines}{\@ifstar\@sblanklines\@blanklines} +\newcommand{\@blanklines}[1]{% + \@blanklines@setup{#1}% + \vspace{\DUT@blanklines@length}} +\newcommand{\@sblanklines}[1]{% + \@blanklines@setup{#1}% + \vspace*{\DUT@blanklines@length}} +\newcommand{\blanklinesp}{\@ifstar\@sblanklines\@blanklines} +\newcommand{\@blanklinesp}[1]{% + \@blanklines@setup{#1}% + \vspace{\DUT@blanklines@length}\par} +\newcommand{\@sblanklinesp}[1]{% + \@blanklines@setup{#1}% + \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 +% Section~\ref{sec:hyperref} for an explanation of why we stash it +% here. +% \begin{macrocode} +\RequirePackage[final]{hyperref} +% \end{macrocode} +% Nobody likes the default colored boxes. Color the text itself. +% \begin{macrocode} +\hypersetup{colorlinks} +% \end{macrocode} +% +% \subsubsection{\pkg{hypcap}} +% \label{sec:hypcap-inclusion} +% +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/}{\pkg{hypcap}} +% for placing caption hyperlink anchors. Not strictly necessary, but +% we're using \pkg{hyperref}, and the poor link targets are annoying. +% \begin{macrocode} +\RequirePackage[all]{hypcap} +% \end{macrocode} +% \Lopt{all} redefines the figure and table environments to +% place the anchor at the start of the float. +% +% +% \subsection{\cls{book} overrides and extensions} +% +% Here we change the behavior of a bunch of macros and environments from +% \cls{book} (generated by \file{classes.ins} from \file{classes.dtx}) in +% \href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{base}}). +% We'll copy in their original notes along with their code, following +% the relevant documentation an order given in \file{classes.dtx}. +% +% +% \subsubsection{Floats on a text page} +% \label{sec:implement-floats} +% +% \begin{macro}{\floatsep} +% \begin{macro}{\textfloatsep} +% When a floating object is placed on a page with text, these +% parameters control the separation between the float and the other +% objects on the page. +% +% |\floatsep| is the space between adjacent floats that are moved +% to the top or bottom of the text page. +% +% |\textfloatsep| is the space between the main text and floats +% at the top or bottom of the page. +% +% |\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}. +% +% From the Manual 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 +% graphics. +% \end{quote} +% (\file{classes.dtx}, L1426) +% \begin{macrocode} +\set@lines@length{\floatsep}{\@ssp} +\set@lines@length{\textfloatsep}{\@tsp} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{The title} +% % \begin{macro}{\maketitle} % Automate the creation of the title page. % From Manual 3.1 p8, ``Title Page'', and the example on p16. @@ -955,125 +1659,564 @@ % \item This page is counted but not numbered (it counts as page i, % but should not have a page number). TODO: How is this implemented? % \end{itemize} -% Override \cls{book}'s definition. +% Our definition simplifies \cls{book}'s by ignoring footnotes. +% (\file{classes.dtx}, L1796) % \begin{macrocode} \renewcommand\maketitle{ - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% - \long\def\@makefntext##1{\parindent 1em\noindent - \hb@xt@1.8em{% - \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% \begin{titlepage}% +% \end{macrocode} +% Add some bookmarks if we're using pdf\LaTeX. The |frontmatter| +% bookmark is set at the \emph{part} level (-1) to hold all bookmarks +% from the |preamble| environment, since those entries are all +% chapters. +% \changes{0.8}{2010/05/20}{W.~Trevor King replaced Titlepage with +% Title Page for consistency with \LaTeX's book class.} +% \begin{macrocode} \ifpdf - \pdfbookmark[-1]{Frontmatter}{frontmatter} - \pdfbookmark[0]{Title Page}{title} + \pdfbookmark[-1]{Front Matter}{Front Matter} + \pdfbookmark[0]{Title Page}{Title Page} \fi - \vspace*{\fill} +% \end{macrocode} +% Add some stretchy space to center the title vertically if we're not +% in draft mode. +% \begin{macrocode} + \if@final \vspace*{\fill} \fi +% \end{macrocode} +% Here is the title text itself. +% \begin{macrocode} \begin{center}% - \begin{spacing}{\@tsp} - {\bf \@title \par}% - \end{spacing} - \begin{spacing}{\@dsp} + {\setstretch{\@tsp} \bfseries \@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. +% \begin{macrocode} + \blanklines{\@tsp}% + \setstretch{\@dsp}% A Thesis\\ Submitted to the Faculty\\ of\\ Drexel University\\ by\\ - \@author \\ + \@author\\ in partial fulfillment of the\\ requirements for the degree\\ of\\ \@degree\\ \def@month\ \def@year - \end{spacing} \end{center}\par - \vspace*{\fill} +% \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. +% \begin{macrocode} + \if@final \vspace*{\fill} \fi \end{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 +% |\maketitle| and |\and| macros (by setting them equal to |\relax|). +% \begin{macrocode} \setcounter{footnote}{0}% \global\let\maketitle\relax \global\let\and\relax } % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\m@kecopyright} -% Automate the creation of the copyright page. -% From Manual 3.2 p9, ``Copyright Page''. -% \begin{itemize} -% \item Include a copyright page with the following information: a -% copyright notice, full legal name of author, and date of -% publication on file. -% \item This page is neither counted nor numbered. -% \end{itemize} +% \end{macro} +% +% +% \subsubsection{Copyright pages} +% \label{sec:implement-copyright} +% +% \begin{macro}{\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''. +% \begin{itemize} +% \item Include a copyright page with the following information: a +% copyright notice, full legal name of author, and date of +% publication on file. +% \item This page is neither counted nor numbered. +% \end{itemize} +% 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 +% \end{macrocode} +% If we're using pdf\LaTeX, add a bookmark. +% \begin{macrocode} + \ifpdf \pdfbookmark[0]{Copyright Page}{Copyright Page} \fi + \if@final \vspace*{\fill} \fi + \begin{center} + \copyright~Copyright \def@year\\ + \@author. \@copyrighttext + \end{center} + \if@final \vspace*{\fill} \else \blanklinesp{2} \fi +% \end{macrocode} +% Turn off page numbering for this page. +% \begin{macrocode} + \thispagestyle{empty} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\copyrighttextCCBYSA} +% The Creative Commons Attribution-ShareAlike License. +% \changes{0.4}{2010/02/23}{W.~Trevor King renamed from +% $\backslash$copyrighttextCC, and made specific to Creative Commons +% Attribution-ShareAlike Version 3.0.} +% \begin{macrocode} +\newcommand\copyrighttextCCBYSA{ + \begin{quote} + This work is licensed under the terms of the Creative Commons + Attribution-ShareAlike license Version 3.0. The license is + available at \\ + \url{http://creativecommons.org/licenses/by-sa/3.0/}. + \end{quote} +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Mark commands} +% +% Default initializations of |\*mark| commands. These commands +% are used in the definition of the page styles. +% +% \begin{macro}{\chaptermark} +% Setup colon rather than period separated chapter marks. +% (\file{classes.dtx}, L2053) +% \begin{macrocode} +\renewcommand\chaptermark[1]{% + \markboth {% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\ \thechapter: \ % + \fi + \fi + #1}{}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\schaptermark} +% Setup unnumbered chapter marks for \pkg{fancyhdr}. +% \begin{macrocode} +\newcommand\schaptermark[1]{\markboth{#1}{}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sectionmark} +% Setup space rather than period separated section marks. +% (\file{classes.dtx}, L2054) +% \begin{macrocode} +\renewcommand{\sectionmark}[1]{% + \markright {% + \ifnum \c@secnumdepth >\z@ + \thesection \ % + \fi + #1}} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Front Matter, Main Matter, and Back Matter} +% +% A book contains these three (logical) sections. The switch +% |\@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 +% numbering and turns on chapter numbering. Since this restarts the +% 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. +% (\file{classes.dtx}, L2211) +% \begin{macrocode} +\renewcommand\mainmatter{% + \DUT@cleardoublepage + \@mainmattertrue + \pagenumbering{arabic}} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Parts} +% +% \begin{macro}{\part} +% The command to start a new part of our document. +% +% 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. +% (\file{classes.dtx}, L2249) +% \begin{macrocode} +\renewcommand\part{% + \if@openright + \DUT@cleardoublepage + \else + \DUT@clearpage + \fi + \thispagestyle{plain}% + \@tempswafalse +% \end{macrocode} +% Add some stretchy space for vertical centering if we're in final mode. +% \begin{macrocode} + \if@final \null\vfil \fi +% \end{macrocode} +% Here we use |\secdef| to indicate which commands to use to make +% the actual heading. +% \begin{macrocode} + \secdef\@part\@spart} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@part} +% This macro does the actual formatting of the title of the part. We +% replace \cls{book}'s |\Huge| with |\large|, and make use of +% |\numberline| for consistent spacing. +% +% When \Lcount{secnumdepth} is larger than $-2$, we have a numbered +% part, otherwise it is unnumbered. +% (\file{classes.dtx}, L2310) +% \begin{macrocode} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}% + {\protect\numberline{\thepart}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi +% \end{macrocode} +% We empty the mark registers and center the title on the page. +% Also we prevent breaking between lines and reset the font. +% \begin{macrocode} + \markboth{}{}% + {\centering + \interlinepenalty \@M + \normalfont +% \end{macrocode} +% When this is a numbered part we have to print the number. +% \begin{macrocode} + \ifnum \c@secnumdepth >-2\relax + \large\bfseries \partname\nobreakspace\thepart + \par +% \end{macrocode} +% We leave some space before we print the title and leave the +% finishing up to |\@endpart|. +% \begin{macrocode} + \vskip 20\p@ + \fi + \large \bfseries #2\par}% + \@endpart} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@spart} +% This macro does the actual formatting of the title of the part +% when the star form of the user command was used. In this case we +% \emph{never} print a number. Otherwise the formatting is the +% same. +% (\file{classes.dtx}, L2402) +% \begin{macrocode} +\def\@spart#1{% + {\centering + \interlinepenalty \@M + \normalfont + \large \bfseries #1\par}% + \@endpart} +% \end{macrocode} +% \end{macro} +% +% \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. +% (\file{classes.dtx}, L2435) +% \begin{macrocode} +\def\@endpart{ + \if@final \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|. +% \begin{macrocode} + \if@twoside + \if@openright + \null + \thispagestyle{empty}% + \newpage + \fi + \fi} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Chapters} +% \label{sec:implement-chapters} +% +% \begin{macro}{\chapter} +% \cls{book} always starts a chapter on a new page, but we don't want +% to do that if we're in draft mode. +% (\file{classes.dtx}, L2472). +% \begin{macrocode} +\renewcommand\chapter{% + \if@openright\DUT@cleardoublepage\else\DUT@clearpage\fi + \thispagestyle{plain}% +% \end{macrocode} +% Then we prevent floats from appearing at the top of this page +% because it looks weird to see a floating object above a chapter +% title. +% \begin{macrocode} + \global\@topnum\z@ +% \end{macrocode} +% Then we suppress the indentation of the first paragraph by +% setting the switch |\@afterindent| to false. We use |\secdef| +% to specify the macros to use for actually setting the chapter +% title. +% \begin{macrocode} + \@afterindentfalse + \secdef\@chapter\@schapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listed@schapter} +% |\chapter| declares numbered chapters, which are listed in the table +% of contents. +% |\chapter*| declares unnumbered chapters, which are \emph{not} +% listed in the TOC. +% |\listed@schapter| declares an unnumbered chapter that \emph{is} +% listed in the TOC. +% \begin{macrocode} +\newcommand\listed@schapter[1]{% + \if@openright\DUT@cleardoublepage\else\DUT@clearpage\fi + \thispagestyle{plain}% + \global\@topnum\z@ + \phantomsection + \addcontentsline{toc}{chapter}{#1} + \@afterindentfalse + \@schapter{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@chapter} +% This macro is called when we have a numbered chapter. When +% \Lcount{secnumdepth} is larger than $-1$ and |\@mainmatter| is true, +% we display the chapter number. +% We drop \cls{book}'s \Lopt{twocolumn} code. +% (\file{classes.dtx}, L2496). +% \begin{macrocode} +\def\@chapter[#1]#2{ +% \end{macrocode} +% Inform the user that a new chapter is about to be typeset by writing +% a message to the terminal. +% \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\ (section 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}% + \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi +% \end{macrocode} +% After having written an entry to the table of contents we store +% the (alternative) title of this chapter with |\chaptermark|. +% \begin{macrocode} + \chaptermark{#1}% +% \end{macrocode} +% For nicer lists of figures and tables, we could add some white space +% to separate the chapters. However, nice lists $\neq$~Manual +% specifications. +% \begin{macrocode} +% \addtocontents{lof}{\protect\addvspace{10\p@}}% +% \addtocontents{lot}{\protect\addvspace{10\p@}}% +% \end{macrocode} +% Then we call upon |\@makechapterhead| to format the actual chapter +% title. |\@afterheading| which takes care of suppressing the +% indentation. +% \begin{macrocode} + \@makechapterhead{#2}% + \@afterheading} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makechapterhead} +% The |\@chapter| macro uses |\@makechapterhead|\meta{text} to format +% the heading of the chapter. +% From the Manual 3.11 p11. +% \begin{quote} +% Chapter headings must be bold and centered. +% The chapter number and title must be on the same line, separated +% by a colon or period, as shown in the example below: +% \begin{center} +% CHAPTER 1: INTRODUCTION +% \end{center} +% Headings must not be larger than 12 points. +% Headings must be single spaced. +% \end{quote} +% \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. +% +% We begin by leaving some white space. The we open a group in which +% we have a paragraph indent of 0pt, and in which we have the text set +% ragged right. We also reset the font. +% (\file{classes.dtx}, L2540). +% \begin{macrocode} +\def\@makechapterhead#1{% +% \end{macro} +% Adding even a \vspace*{0\p@} here seems to increase the vertical +% space above the chapter heading by two lines. I'm not sure why. +% Workaround is to pass the ``value of blanklines you want minus two'' +% to |\blanklines*|. HACK! +% \begin{macro} + \blanklines*{-1}% HACK! + {\parindent \z@ \raggedright \normalfont +% \end{macrocode} +% Ensure single spacing. +% \begin{macrocode} + \setstretch{\@ssp}% +% \end{macrocode} +% Prevent a pagebreak from occuring in the middle of or after the title. +% \begin{macrocode} + \interlinepenalty\@M +% \end{macrocode} +% Check whether the number of the chapter has to be printed. +% \begin{macrocode} + \ifnum \c@secnumdepth >\m@ne +% \end{macrocode} +% Check whether there \emph{is} a number to be printed. +% \begin{macrocode} + \if@mainmatter +% \end{macrocode} +% Setup a ``Chapter \#: Title'' heading. % \begin{macrocode} -\newcommand\m@kecopyright[1]{% - \clearpage - \ifpdf \pdfbookmark[0]{Copyright Page}{copyright} \fi - \vspace*{\fill} - \begin{center} - \copyright~Copyright \def@year\\ - \@author. #1 - \end{center} - \vspace*{\fill} + \center \large \bfseries \@chapapp{} \thechapter: #1\par\nobreak + \else % \end{macrocode} -% |\thispagestyle{empty}| turns off page numbering for the current -% page. See -% \href{http://www.personal.ceu.hu/tex/pagestyl.htm#pgstyle}{here}. +% Setup a ``Title'' heading. % \begin{macrocode} - \thispagestyle{empty} + \center \large \bfseries #1\par\nobreak + \fi + \else + \center \large \bfseries #1\par\nobreak + \fi +% \end{macrocode} +% Put a little space before the chapter body. We use four blank lines +% to comply with the Manual 3.13 p12 +% \begin{quote} +% Begin the list of sources four spaces below the heading. +% \end{quote} +% \begin{macrocode} + \blanklines{4} + } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\makecopyright} +% \begin{macro}{\@schapter} +% This macro is called when we have an unnumbered chapter. We drop +% \file{classes.dtx}'s \Lopt{twocolumn} code and set marks for +% \pkg{fancyhdr}. +% (\file{classes.dtx}, L2582). % \begin{macrocode} -\newcommand\makecopyright{% - \m@kecopyright{All Rights Reserved.} -} +\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} % -% \begin{macro}{\makecopyrightCC} +% \begin{macro}{\@makeschapterhead} +% The macro above uses |\@makeschapterhead|\meta{text} to format +% the heading of the chapter. It is similar to |\@makechapterhead| +% except that it never has to print a chapter number. +% (\file{classes.dtx}, L2595). % \begin{macrocode} -\newcommand\makecopyrightCC{ - \m@kecopyright{ - \begin{quote} - This work is licensed under the terms of the Creative Commons - Attribution-ShareAlike license. The license is available at \\ - \url{http://creativecommons.org/licenses/by-sa/2.0/}. - \end{quote} +\def\@makeschapterhead#1{% + \blanklines*{-1}% HACK! + {\parindent \z@ \raggedright \normalfont + \setstretch{\@ssp}% + \interlinepenalty\@M + \center \large \bfseries #1\par\nobreak + \blanklines{4}% } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\tableofcontents} -% Automate the creation of the table of contents. -% From Manual 3.5 p9, ``Table of Contents'', and the example on p17. -% \begin{itemize} -% \item Do not list any sections that precede the -% |Table of Contents| (e.g.\ |Dedications|, |Acknowledgments|). Do -% not list the |Table of Contents| itself. -% \item These pages are counted and numbered in lowercase Roman numerals. -% \end{itemize} -% Override \cls{book}'s definition. +% +% \subsubsection{Lower level headings} +% +% \begin{macro}{\section} +% Setup section headings in |\large| rather than \cls{book}'s +% |\Large|. +% (\file{classes.dtx}, L2623). % \begin{macrocode} -\renewcommand\tableofcontents{% - \clearpage - \ifpdf - \phantomsection - \pdfbookmark[0]{\contentsname}{tableofcontents} - \fi - \chapter*{\contentsname} - \@mkboth{\MakeUppercase\contentsname}% - {\MakeUppercase\contentsname}% - \@starttoc{toc}% -} +\renewcommand\section{% + \@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\normalfont\large\bfseries}} % \end{macrocode} % \end{macro} % % -% \subsection{Environments} +% \subsubsection{Defining new environments} +% +% We don't override any of \cls{book}'s environments, but this is +% where \file{classes.dtx} defines its environments (L2996), so we'll put +% ours here too. % % \begin{environment}{preamble} % \begin{macrocode} @@ -1112,15 +2255,15 @@ % \end{itemize} % \begin{macrocode} \newenvironment{dedications}{% - \clearpage + \DUT@clearpage \ifpdf \phantomsection - \pdfbookmark[0]{\dedicationsname}{dedications} + \pdfbookmark[0]{\dedicationsname}{\dedicationsname} \fi \chapter*{\dedicationsname} - \begin{spacing}{\@dsp} + \setstretch{\@dsp}% }{% - \end{spacing} + \setstretch{\@ssp}% } % \end{macrocode} % \end{environment} @@ -1135,15 +2278,15 @@ % \end{itemize} % \begin{macrocode} \newenvironment{acknowledgments}{% - \clearpage + \DUT@clearpage \ifpdf \phantomsection - \pdfbookmark[0]{\acknowledgmentsname}{acknowledgments} + \pdfbookmark[0]{\acknowledgmentsname}{\acknowledgmentsname} \fi \chapter*{\acknowledgmentsname} - \begin{spacing}{\@dsp} + \setstretch{\@dsp}% }{% - \end{spacing} + \setstretch{\@ssp}% } % \end{macrocode} % \end{environment} @@ -1151,43 +2294,49 @@ % \begin{environment}{abstract} % \begin{macrocode} \newenvironment{abstract}{% - \clearpage - \thispagestyle{plain}% - \global\@topnum\z@ - \phantomsection - \addcontentsline{toc}{chapter}{\abstractname} - \vspace*{50\p@}% + \listed@schapter{\abstractname}% % \end{macrocode} -% From the Manual 3.9 p10 ``The following heading must be centered at -% the top of the page'': -% \begin{center} -% Abstract \\ -% Full Title of Dissertation or Thesis \\ -% Author's Name as it appears on the Dissertation or Thesis -% \end{center} -% In the example on p20, they list the advisor's name after the -% author, but that is not specified in the text on p10. -% -% On p20, ``These pages are numbered using lowercase Roman numerals. -% Note that the heading is single spaced, but the abstract is double -% spaced.'' +% Suck up some blank space to position the rest of the header right +% under the chapter title. +% \begin{macrocode} + \blanklines{-4}% +% \end{macrocode} +% From the Manual 3.9 p10 +% \begin{quote} +% \begin{itemize} +% \item The following heading must be centered at the top of the page +% \begin{center} +% Abstract \\ +% Full Title of Dissertation or Thesis \\ +% Author's Name as it appears on the Dissertation or Thesis +% \end{center} +% In the example on p20, they list the advisor's name after the +% author, but that is not specified in the text on p10. +% \item The text begins four lines below this heading. +% \end{itemize} +% \end{quote} +% On p20 +% \begin{quote} +% \begin{itemize} +% \item These pages are numbered using lowercase Roman numerals. +% \item Note that the heading is single spaced, but the abstract +% is double spaced. +% \end{itemize} +% \end{quote} % \begin{macrocode} - \begin{spacing}{\@ssp} \begin{center} - {\large \bfseries \abstractname \par} -%% \@endparpenalty\@M + \setstretch{\@ssp}% \@title\\ \@author\\ \@advisor\\ \end{center} - \end{spacing} - \blanklines{2} - \begin{spacing}{\@dsp} + \blanklines{4}% + \setstretch{\@dsp}% \@nobreaktrue \@afterindentfalse \@afterheading }{% - \end{spacing} + \setstretch{\@ssp}% } % \end{macrocode} % \end{environment} @@ -1200,18 +2349,25 @@ % \begin{macrocode} \newenvironment{thesis}{% \mainmatter - \begin{spacing}{\@dsp} + \setstretch{\@dsp}% }{% - \end{spacing} - \clearpage + \setstretch{\@ssp}% + \DUT@clearpage +% \end{macrocode} +% \changes{0.8}{2010/05/20}{W.~Trevor King replaced Titlepage with +% Title Page for consistency with \LaTeX's book class.} +% \begin{macrocode} \ifpdf \phantomsection - \pdfbookmark[-1]{Backmatter}{backmatter} + \pdfbookmark[-1]{Back Matter}{Back Matter} \fi } % \end{macrocode} % \end{environment} % +% \paragraph{Vita} +% \label{sec:implement-vita} +% % \begin{environment}{vita} % From the Manual 3.15 p13 % \begin{itemize} @@ -1223,818 +2379,824 @@ % \end{itemize} % \begin{macrocode} \newenvironment{vita}{% - \clearpage - \phantomsection - \addcontentsline{toc}{chapter}{\vitaname} - \chapter*{\vitaname} - \blanklines{1} - \begin{spacing}{\@dsp} + \listed@schapter{\vitaname} + \setstretch{\@dsp}% }{% - \end{spacing} + \setstretch{\@ssp}% } % \end{macrocode} % \end{environment} % % -% \subsection{Adjust from the \LaTeX/\cls{book} defaults} -% +% \subsubsection{Titlepage} % -% |\intextsep| sets the space left on top and bottom of an in-text -% float (see -% \href{http://www.eng.cam.ac.uk/help/tpl/textprocessing/squeeze.html}{here}). +% \begin{environment}{titlepage} +% In the normal environments, the titlepage environment does nothing +% but start and end a page, and inhibit page numbers. We inhibit the +% paging in draft mode, since it seems silly to waste a whole page on +% the title. We also drop the \Lopt{twocolumn} code. +% (\file{classes.dtx}, L3111) % \begin{macrocode} -\setlength\intextsep{30pt} +\renewenvironment{titlepage}{\thispagestyle{empty}% + \setcounter{page}\z@}% + {\if@final \newpage \else \blanklinesp{2} \par \fi} % \end{macrocode} +% \end{environment} % % -% \subsubsection{Part and chapter headings} +% \subsubsection{Appendix} +% \label{sec:implement-appendix} % -% Override \cls{book}'s |\makechapterhead|. -% From the Manual 3.11 p11. -% \begin{quote} -% Chapter headings must be bold and centered. -% The chapter number and title must be on the same line, separated -% by a colon or period, as shown in the example below: -% \begin{center} -% CHAPTER 1: INTRODUCTION -% \end{center} -% Headings must not be larger than 12 points. -% Headings must be single spaced. -% \end{quote} -% \begin{macrocode} -\def\@makechapterhead#1{% - \vspace*{50\p@}% -% \end{macrocode} -% Replaced |\normalfont| with |\reset@font| (TODO: why?). +% \begin{macro}{\appendix} +% The |\appendix| command is not really an environment, it is a +% macro that makes some changes in the way things are done. +% +% In the article document class the |\appendix| command must do the +% following: +% \begin{itemize} +% \item reset the section and subsection counters to zero, +% \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}. +% \end{itemize} +% +% In addition to \cls{book}'s (or \pkg{hyperref}'s) activity, we +% fiddle with the \pkg{tocloft} chapter settings add switch to global +% double-spacing. +% (\file{classes.dtx}, L3177) % \begin{macrocode} - {\parindent \z@ \raggedright \reset@font - \ifnum \c@secnumdepth >\m@ne +\let\DUT@appendix\appendix +\renewcommand\appendix{% + \DUT@appendix% % \end{macrocode} -% Removed |\if@mainmatter| conditional guarding this indented section -% (TODO: why?). +% Setup TOC entries like +% \begin{center} +% Appendix A: Chapter Title +% \end{center} +% We don't need to worry about the |vita| environment (page +% \pageref{sec:implement-vita}), because it is a |\listed@schapter|, +% and therefore lacks a |\numberline| section in its \file{*.toc} +% entry. +% +% We increase |numwidth| to 6.5em to make room for |Appendix~| before +% the chapter number/letter, and add a colon after it. +% +% The |\protect| calls get the macros into \file{*.toc} unexpanded, so +% they function correctly when \LaTeX\ parses \file{*.toc}. % \begin{macrocode} - \par\nobreak - \vskip 20\p@ - \fi - \interlinepenalty\@M + \addtocontents{toc}{% + \protect\cftsetindents{chapter}{0pt}{6.5em} + \protect\renewcommand{\protect\cftchappresnum}{\protect\appendixname~} + \protect\renewcommand{\protect\cftchapaftersnum}{:}} % \end{macrocode} -% Ensure single spacing, and ensure the chapter heading will have a -% centered, |\large|, bold \emph{Chapter \#: Title} or \emph{Appendix -% \#: Title} format (as opposed to \cls{book}'s unaligned, |\Huge|, -% bold \emph{Title}). +% We also turn on double spacing by default, since we're no longer +% wrapped in the |thesis| environment. % \begin{macrocode} - \begin{spacing}{\@ssp} - \center \large \bfseries \@chapapp{} \thechapter: #1\par\nobreak - \blanklines{2} - \end{spacing} - } + \setstretch{\@dsp}% } % \end{macrocode} +% \end{macro} +% +% +% \subsubsection{Table of Contents} +% \label{sec:implement-toc} +% +% From Manual 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 +% not list the |Table of Contents| itself. +% \item These pages are counted and numbered in lowercase Roman numerals. +% \end{itemize} +% \end{quote} % -% Override \cls{book}'s |\@makeschapterhead|. TODO: Why? +% \begin{macro}{\cfttoctitlefont} +% Take advantange of \pkg{tocloft}'s TOC title code. +% (\file{tocloft.dtx}, L1501) +% \begin{example} +% \cfttoctitlefont\contentsname}{\cftaftertoctitle} +% \end{example} +% by setting it equal to something ending in |\chapter*|. That way +% \LaTeX parses the whole thing as +% \begin{example} +% ...\chapter*\contentsname}{\cftaftertoctitle} +% \end{example} +% which will set up the TOC page correctly. % \begin{macrocode} -\def\@makeschapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright +\renewcommand\cfttoctitlefont{% % \end{macrocode} -% Replaced |\normalfont| with |\reset@font| (TODO: why?). +% Start a new page in \Lopt{final} mode % \begin{macrocode} - \reset@font - \interlinepenalty\@M + \DUT@clearpage % \end{macrocode} -% Ensure single spacing. +% Add a bookmark if we're using pdf\LaTeX. % \begin{macrocode} - \begin{spacing}{\@ssp} + \ifpdf + \phantomsection + \pdfbookmark[0]{\contentsname}{\contentsname} + \fi % \end{macrocode} -% Replaced |\Huge| with |\center \large| +% |\chapter*| to gobble and format the next token (|\contentsname|). % \begin{macrocode} - \center \large \bfseries #1\par\nobreak + \chapter*} % \end{macrocode} -% Replaced |\vskip 40\p@| with |\blanklines{2}| +% \end{macro} +% +% \begin{macro}{\aftertoctitleskip} +% Don't add any extra space after the title (the chapter will take +% care of that). % \begin{macrocode} - \blanklines{2} - \end{spacing} - } -} +\setlength\cftaftertoctitleskip{0pt} % \end{macrocode} +% \end{macro} % -% Override \cls{book}'s |\section|, replacing |\Large| with |\large|. +% \begin{macro}{\l@cont@sep} +% Define a length for TOC/LOF/LOT spacing. % \begin{macrocode} -\renewcommand\section{\@startsection {section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\normalfont\large\bfseries}} +\newlength\l@cont@sep +\set@lines@length{\l@cont@sep}{\@cont@sep} % \end{macrocode} +% \end{macro} % -% Fix |\@ssect| and |\@sect| from |latex.ltx| to give single spaced -% headings. These macros are defined in |ltsect.dtx| -% (\href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{\LaTeX\ base}})), -% but the documentation there is not great. -% \begin{command} -% `\cs{@ssect}\bracearg{INDENT}\bracearg{BEFORESKIP}\bracearg{AFTERSKIP}' -% `~~\bracearg{STYLE}\bracearg{ARG}' -% `\cs{@sect}\bracearg{NAME}\bracearg{LEVEL}\bracearg{INDENT}\bracearg{BEFORESKIP}' -% `~~\bracearg{AFTERSKIP}\bracearg{STYLE}\brackarg{ARG1}\bracearg{ARG2}' -% \end{command} -% By comparison to \cls{book}'s |\@part| and |\@spart| (see below), I -% imagine they have something to do with formatting section names. +% \begin{macro}{\@cont@font} +% Define a font for high level (part, chapter) entries. % \begin{macrocode} -\def\@ssect#1#2#3#4#5{% - \@tempskipa #3\relax - \ifdim \@tempskipa>\z@ - \begingroup - \begin{spacing}{\@ssp} - #4{% - \@hangfrom{\hskip #1}% - \interlinepenalty \@M #5\@@par}% - \endgroup - \end{spacing} - \else - \def\@svsechd{#4{\hskip #1\relax #5}}% - \fi - \@xsect{#3}} +\newcommand{\@cont@font}{\normalsize\scshape} % \end{macrocode} -% Now for |\@sect|. -% \begin{macrocode} -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - \begin{spacing}{\@ssp} - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \end{spacing} - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} +% \end{macro} +% +% \begin{macro}{\cftbeforepartskip} +% \begin{macro}{\cftpartfont} +% \begin{macro}{\cftpartleader} +% \begin{macro}{\cftpartdotsep} +% \begin{macro}{\cftpartpagefont} +% Setup parts. See the \pkg{tocloft} manual for a description of the +% commands. +% \begin{macrocode} +\setlength\cftbeforepartskip{\l@cont@sep} +\cftsetindents{part}{0pt}{3em} +\if@boldpart \renewcommand{\cftpartfont}{\bfseries\@cont@font} +\else \renewcommand{\cftpartfont}{\@cont@font} +\renewcommand{\cftpartleader}{\cftdotfill{\cftpartdotsep}} +\if@dottedpart \renewcommand{\cftpartdotsep}{\cftdotsep} +\else \renewcommand{\cftpartdotsep}{\cftnodots} \fi +\renewcommand{\cftpartpagefont}{\normalfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cftbeforechapskip} +% \begin{macro}{\cftchapaftersnum} +% \begin{macro}{\cftchapfont} +% \begin{macro}{\cftchapleader} +% \begin{macro}{\cftchapdotsep} +% \begin{macro}{\cftchappagefont} +% Setup chapters and appendicies. Some of these settings are adjusted +% for appendicies in particular by |\appendix| +% (Sec.~\ref{sec:implement-appendix}). +% \begin{macrocode} +\setlength\cftbeforechapskip{\l@cont@sep} +\cftsetindents{chapter}{0pt}{1.5em} +\renewcommand{\cftchapaftersnum}{.} +\if@boldchapter \renewcommand{\cftchapfont}{\bfseries\@cont@font} +\else \renewcommand{\cftchapfont}{\@cont@font} \fi +\renewcommand{\cftchapleader}{\cftdotfill{\cftchapdotsep}} +\if@dottedchapter \renewcommand{\cftchapdotsep}{\cftdotsep} +\else \renewcommand{\cftchapdotsep}{\cftnodots} \fi +\renewcommand{\cftchappagefont}{\normalfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cftbeforesecskip} +% \begin{macro}{\cftsecfont} +% \begin{macro}{\cftbeforesubsecskip} +% \begin{macro}{\cftsubsecfont} +% \begin{macro}{\cftbeforesubsubsecskip} +% \begin{macro}{\cftsubsubsecfont} +% Setup sections, subsections, etc. +% \begin{macrocode} +%\cftsetindents{chap}{0pt}{1.5em} +\setlength\cftbeforesecskip{\l@cont@sep} +\cftsetindents{section}{0pt}{3em} +\renewcommand{\cftsecfont}{\normalsize} +\setlength\cftbeforesubsecskip{\l@cont@sep} +\cftsetindents{subsection}{0pt}{4.5em} +\renewcommand{\cftsubsecfont}{\cftsecfont} +\setlength\cftbeforesubsubsecskip{\l@cont@sep} +\cftsetindents{subsubsection}{0pt}{6em} +\renewcommand{\cftsubsubsecfont}{\cftsecfont} % \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % -% Override \cls{book}'s |\@part| and |\@spart|, replacing |\Huge| with -% |\large|. From |classes.dtx|, |\@part| formats the title of the part, -% and |\@spart| formats the title of a starred part. +% 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} -\def\@part[#1]#2{% - \ifnum \c@secnumdepth >-2\relax - \refstepcounter{part}% - \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - \markboth{}{}% - {\centering - \interlinepenalty \@M - \normalfont - \ifnum \c@secnumdepth >-2\relax - \large\bfseries \partname\nobreakspace\thepart - \par - \vskip 20\p@ - \fi - \large \bfseries #2\par}% - \@endpart} -\def\@spart#1{% - {\centering - \interlinepenalty \@M - \normalfont - \large \bfseries #1\par}% - \@endpart} +\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{Adding TOC entries and blank pages} +% \subsubsection{List of figures} +% \label{sec:implement-lof} % -% Override \cls{book}'s |\listoftables|, selecting the false branch -% of the |\if@twocolumn| conditionals, adding a line to the table of -% contents, and clearing the page. -% From the Manual 3.6 p10 +% From the Manual 3.7 p10 % \begin{quote} -% The heading |List of Tables| must appear at the top of the first -% page. -% The heading must be bold, centered, and without punctuation. -% List table captions exactly as they appear above the tables in -% the text. -% Single space each entry, but double-space between entries. -% Separate table captions from page numbers with right-justified -% tabs and dot leaders. -% Do not use periods to separate captions and page numbers. -% These pages are counted and numbered in lowercase Roman numerals. +% \begin{itemize} +% \item The heading |List of Figures| must appear at the top of +% the first page. +% \item The heading must be bold, centered, and without +% punctuation. List figure captions exactly as they appear +% below the figures in the text. +% \item Single space each entry, but double-space between entries. +% \item Separate figure captions from page numbers with +% right-justified tabs and dot leaders. +% \item Do not use periods to separate captions and page numbers. +% \item These pages are counted and numbered in lowercase Roman +% numerals. +% \end{itemize} % \end{quote} +% +% \begin{macro}{\cftloftitlefont} +% Much like our |\cfttoctitlefont|, but the list of figures gets +% listed in the TOC. % \begin{macrocode} -\renewcommand\listoftables{% - \clearpage - \phantomsection - \addcontentsline{toc}{chapter}{\listtablename} - \chapter*{\listtablename}% - \@mkboth{\MakeUppercase\listtablename}% - {\MakeUppercase\listtablename}% - \@starttoc{lot}% -} +\renewcommand\cftloftitlefont{\listed@schapter} % \end{macrocode} +% \end{macro} % -% Override \cls{book}'s |\listoffigures|, selecting the false branch -% of the |\if@twocolumn| conditionals, adding a line to the table of -% contents, and clearing the page. -% From the Manual 3.7 p10 -% \begin{quote} -% The heading |List of Figures| must appear at the top of the first -% page. -% The heading must be bold, centered, and without punctuation. -% List figure captions exactly as they appear below the figures in -% the text. -% Single space each entry, but double-space between entries. -% Separate figure captions from page numbers with right-justified -% tabs and dot leaders. -% Do not use periods to separate captions and page numbers. -% These pages are counted and numbered in lowercase Roman numerals. -% \end{quote} +% \begin{macro}{\afterloftitleskip} +% Don't add any extra space after the title (the chapter will take +% care of that). Actually we make a one-line correction so the first +% line matches the first line in the TOC. HACK! % \begin{macrocode} -\renewcommand\listoffigures{% - \clearpage - \phantomsection - \addcontentsline{toc}{chapter}{\listfigurename} - \chapter*{\listfigurename}% - \@mkboth{\MakeUppercase\listfigurename}% - {\MakeUppercase\listfigurename}% - \@starttoc{lof}% -} +\setlength\cftafterloftitleskip{-12pt} % \end{macrocode} +% \end{macro} % -% Override |latex.ltx|'s |\bibliography|, adding a line to the table -% of contents. +% \begin{macro}{\cftbeforefigskip} +% \begin{macro}{\cftfigindent} +% \begin{macro}{\cftfigfont} +% Setup figure entries. % \begin{macrocode} -\def\bibliography#1{% - \addcontentsline{toc}{chapter}{\bibname} - \if@filesw - \immediate\write\@auxout{\string\bibdata{#1}}% - \fi - \@input@{\jobname.bbl} -} +\setlength{\cftbeforefigskip}{\l@cont@sep} +\setlength{\cftfigindent}{0pt} +\renewcommand{\cftfigfont}{\normalsize\singlespace} % \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % -% Add a terminal blank page (when |\if@final| is true) -% From the Manual 3.16 p13 +% +% \subsubsection{List of tables} +% \label{sec:implement-lot} +% +% From the Manual 3.6 p10 % \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. +% \begin{itemize} +% \item The heading |List of Tables| must appear at the top of the +% first page. +% \item The heading must be bold, centered, and without +% punctuation. +% \item List table captions exactly as they appear above the +% tables in the text. +% \item Single space each entry, but double-space between entries. +% \item Separate table captions from page numbers with +% right-justified tabs and dot leaders. +% \item Do not use periods to separate captions and page numbers. +% These pages are counted and numbered in lowercase Roman +% numerals. +% \end{itemize} % \end{quote} +% +% \begin{macro}{\cftlottitlefont} +% Much like our |\cfttoctitlefont|, but the list of tables gets +% listed in the TOC. % \begin{macrocode} -\AtEndDocument{\blankpage} +\renewcommand\cftlottitlefont{\listed@schapter} % \end{macrocode} +% \end{macro} % -% -% \subsubsection{Captioning} -% -% These are to get spacing right after table captions and make the -% spacing around floats symmetrical. First, set |\if@table| in the -% |table| environments. +% \begin{macro}{\afterlottitleskip} +% Don't add any extra space after the title (the chapter will take +% care of that). Actually we make a one-line correction so the first +% line matches the first line in the TOC. HACK! % \begin{macrocode} -\newif\if@table \@tablefalse -\renewenvironment{table} - {\@tabletrue\@float{table}} - {\end@float\@tablefalse} -\renewenvironment{table*} - {\@tabletrue\@dblfloat{table}} - {\end@dblfloat\@tablefalse} +\setlength\cftafterlottitleskip{-12pt} % \end{macrocode} -% Now override \cls{book}'s |\@makecaption|, adding two |\if@table| -% conditionals, which swap |\abovecaptionskip| and |\belowcaptionskip| -% for tables (where the caption is above the float body). With our -% implementation, |\belowcaptionskip| \emph{always} gives the distance -% between the caption and the text, and |\abovecaptionskip| -% \emph{always} gives the distance between the caption and the float -% body. +% \end{macro} % -% We also replace the caption lead-in |#1: #2| with -% |\small{\bfseries#1:} #2|. +% \begin{macro}{\cftbeforetabskip} +% \begin{macro}{\cfttabindent} +% \begin{macro}{\cfttabfont} +% Setup table entries. % \begin{macrocode} -\newlength\@tempcapskip -\long\def\@makecaption#1#2{% - \if@table - \@tempcapskip\abovecaptionskip - \abovecaptionskip\belowcaptionskip - \belowcaptionskip\@tempcapskip - \fi - \vskip\abovecaptionskip - \sbox\@tempboxa{\small{\bfseries#1:} #2}% - \ifdim \wd\@tempboxa >\hsize - {\small{\bfseries#1:} #2\par} - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip - \if@table - \@tempcapskip\belowcaptionskip - \belowcaptionskip\abovecaptionskip - \abovecaptionskip\@tempcapskip - \fi -} +\setlength{\cfttabindent}{0pt} +\setlength{\cftbeforetabskip}{\l@cont@sep} +\renewcommand{\cfttabfont}{\normalsize\singlespace} % \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % -% -% \subsubsection{Adjust table of contents} % -% From the \LaTeX\ base class documentation (|classes.dtx| in -% \href{http://www.ctan.org/tex-archive/macros/latex/base/}{\pkg{\LaTeX\ base}}) -% \begin{quote} -% The command |\contentsline{|\meta{name}|}| expands to -% |\l@|\meta{name}. So, to specify the table of contents, we must -% define |\l@chapter|, \ldots -% \end{quote} +% \subsubsection{Bibliography} % -% Override \cls{book}'s |\l@chapter| for printing TOC entries, adding -% |spacing| environments to ensure single spacing, only using bold if -% |\if@boldchapter| is true, handling |\if@dottedchapter|. -% \begin{macrocode} -\renewcommand*\l@chapter[2]{% - \begin{spacing}{\@ssp} - \ifnum \c@tocdepth >\m@ne - \addpenalty{-\@highpenalty}% -% \end{macrocode} -% Don't handle spacing here; use the spacing environment at the end of -% the macro. -% \begin{macrocode} -% \vskip 1.0em \@plus\p@ - \setlength\@tempdima{1.5em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode - \if@boldchapter - \bfseries - \fi - \advance\leftskip\@tempdima - \hskip -\leftskip +% \begin{environment}{thebibliography} +% The |thebibliography| environment is a list environment. To save the +% use of an extra counter, it should use |enumiv| as the item +% counter. +% Instead of using |\item|, items in the bibliography are produced by +% the following commands:\\ +% |\bibitem|\marg{name} : Produces a numbered entry cited as +% \meta{name}.\\ +% |\bibitem|\oarg{label}\marg{name} : Produces an entry labeled by +% \meta{Label} and cited by \meta{name}. +% +% 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}, L4063). +% \begin{macrocode} +\renewenvironment{thebibliography}[1] + {\bib@heading% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% +% \end{macrocode} +% Because it's hard to do line breaks in bibliographies. +% \begin{macrocode} + \sloppy +% \end{macrocode} +% This is setting the normal (non-infinite) value of +% |\clubpenalty| for the whole of this environment, +% so we must reset its stored value also. (Why is there a |%| after +% the second 4000 below?) +% \begin{macrocode} + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% % \end{macrocode} -% Insert |\if@dottedchapter| block into |#1\nobreak\hfil \nobreak...|. +% Cause a `.' (period) not to produce an end-of-sentence space. % \begin{macrocode} - #1\nobreak - \if@dottedchapter - \leaders\hbox{$\m@th - \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$} - \else\fi + \sfcode`\.\@m} % \end{macrocode} -% Insert |\if@dottedchapter| block into |#1\nobreak\hfil \nobreak...|. +% Warn if an empty `thebibliography' environment is found. % \begin{macrocode} - \hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \penalty\@highpenalty + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} % \end{macrocode} -% Add a content-page-spacing blank after this entry. +% \end{environment} +% +% \begin{macro}{\bib@heading} +% \pkg{natbib} messes with |thebibliography|. We setup |\bib@heading| +% so we will still get our table of contents entry. % \begin{macrocode} - \begin{spacing}{\@csp}\par\end{spacing} - \endgroup - \fi - \end{spacing} +\newcommand{\bib@heading}{% + \listed@schapter{\bibname}% } % \end{macrocode} +% \end{macro} % -% Add |\l@appendix|, identical to our |\l@chapter|, except for -% setting |\@tempdima| to 6.5em rather than 1.5em. TODO: Why? -% TODO: Consolidate to \l@chapapp[3] calls. -% \begin{macrocode} -\newcommand*\l@appendix[2]{% - \begin{spacing}{\@ssp} - \ifnum \c@tocdepth >\m@ne - \addpenalty{-\@highpenalty}% -% \vskip 1.0em \@plus\p@ - \setlength\@tempdima{6.5em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode - \if@boldchapter - \bfseries - \fi - \advance\leftskip\@tempdima - \hskip -\leftskip - #1\nobreak - \if@dottedchapter - \leaders\hbox{$\m@th - \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$} - \else\fi - \hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \penalty\@highpenalty - \begin{spacing}{\@csp}\par\end{spacing} - \endgroup - \fi - \end{spacing} -} +% +% \subsubsection{Index} +% +% \begin{environment}{theindex} +% The environment |theindex| can be used for indices. It makes an +% index with two columns, with each entry a separate paragraph. At +% the user level the commands |\item|, |\subitem| and |\subsubitem| +% are used to produce index entries of various levels. When a new +% letter of the alphabet is encountered an amount of |\indexspace| +% white space can be added. +% +% Override \cls{book}'s version, adding a line to the table of +% contents. We split out the section-creation code into +% |\bib@heading| for \pkg{natbib} compatibility. +% (\file{classes.dtx}, L4107). +% \begin{macrocode} +\renewenvironment{theindex} + {\if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi +% \end{macrocode} +% Here we add our TOC entry, and setup two-columness by hand +% to avoid the |\clearpage| in \LaTeX's default |\twocolumn|. +% \begin{macrocode} + \listed@schapter{\indexname} + \global\columnwidth\textwidth + \global\advance\columnwidth-\columnsep + \global\divide\columnwidth\tw@ + \global\hsize\columnwidth + \global\linewidth\columnwidth + \global\@twocolumntrue + \global\@firstcolumntrue + \col@number \tw@ +% \end{macrocode} +% Parameter changes to |\columnseprule| and |\columnsep| have to be +% done after |\twocolumn| has acted. Otherwise they can affect the +% last page before the index. +% \begin{macrocode} + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \columnseprule \z@ + \columnsep 35\p@ + \let\item\@idxitem} +% \end{macrocode} +% When the document continues after the index and it was a one +% column document we have to switch back to one column after the +% index. +% \begin{macrocode} + {\if@restonecol\onecolumn\else\DUT@clearpage\fi} +% \end{macrocode} +% \end{environment} +% +% +% \subsubsection{Words} +% \label{sec:words} +% +% Set the official names of the various sections encountered. Some of +% these are not defined in \file{classes.dtx} but are close analogs of +% those that are. +% +% \begin{macro}{\dedicationsname} +% From the Manual 3.3 p9, ``The heading |Dedications| must appear at +% the top of the page.'' +% \begin{macrocode} +\newcommand\dedicationsname{Dedications} % \end{macrocode} +% \end{macro} % -% Add |\l@part|, identical to our |\l@chapter|, except for -% setting |\@tempdima| to 6.5em rather than 1.5em. TODO: Why? -% TODO: Consolidate to \l@chapapp[3] calls. +% \begin{macro}{\acknowledgmentsname} +% From the Manual 3.4 p9, ``The heading |Acknowledgments| must appear +% at the top of the page.'' % \begin{macrocode} -\renewcommand*\l@part[2]{% - \begin{spacing}{\@ssp} - \ifnum \c@tocdepth >-2\relax - \addpenalty{-\@highpenalty}% +\newcommand\acknowledgmentsname{Acknowledgments} % \end{macrocode} -% Don't handle spacing here; use the spacing environment at the end of -% the macro. +% \end{macro} +% +% \begin{macro}{\contentsname} +% From the Manual 3.5 p9, ``The heading |Table of Contents| must +% appear at the top of the page.'' (\file{classes.dtx}, L4331) % \begin{macrocode} -% \addvspace{2.25em \@plus\p@}% - \setlength\@tempdima{3em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - {\leavevmode +\renewcommand\contentsname{Table of Contents} % \end{macrocode} -% Replace |\large \bfseries| with |\if@boldpart...|, so the parts are -% the same size as the other entries, and bolding obeys |if@boldpart|. +% \end{macro} +% +% \begin{macro}{\listtablename} +% From the Manual 3.6 p10, ``The heading |List of Tables| must appear +% at the top of the page.'' (\file{classes.dtx}, L4333) % \begin{macrocode} - \if@boldpart - \bfseries - \fi - #1 +\renewcommand\listtablename{List of Tables} % \end{macrocode} -% Insert |\if@dottedpart| between |#1| and |\hfil|. +% \end{macro} +% +% \begin{macro}{\listfigurename} +% From the Manual 3.7 p10, ``The heading |List of Figures| must appear +% at the top of the page.'' (\file{classes.dtx}, L4332) % \begin{macrocode} - \if@dottedpart - \leaders\hbox{$\m@th - \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$} - \fi - \hfil \hb@xt@\@pnumwidth{\hss #2}}\par - \nobreak - \global\@nobreaktrue - \everypar{\global\@nobreakfalse\everypar{}}% +\renewcommand\listfigurename{List of Figures} % \end{macrocode} -% Add a content-page-spacing blank after this entry. +% \end{macro} +% +% \begin{macro}{\abstractname} +% From the Manual 3.8 p10, ``The following heading must be centered at +% the top of the first page: |Abstract|\ldots.'' +% (\file{classes.dtx}, L4367) % \begin{macrocode} - \begin{spacing}{\@csp}\par\end{spacing} - \endgroup - \fi - \end{spacing} -} +\newcommand\abstractname{Abstract} % \end{macrocode} +% \end{macro} % -% Override |latex.ltx|'s |\dottedtocline|, adding some |spacing| -% environments. TODO: reasoning. -% \begin{macrocode} -\def\@dottedtocline#1#2#3#4#5{% - \begin{spacing}{\@ssp} - \ifnum #1>\c@tocdepth \else - \vskip \z@ \@plus.2\p@ - {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip - \parindent #2\relax\@afterindenttrue - \interlinepenalty\@M - \leavevmode - \@tempdima #3\relax - \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip - {#4}\nobreak - \leaders\hbox{$\m@th - \mkern \@dotsep mu\hbox{.}\mkern \@dotsep - mu$}\hfill - \nobreak - \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% - \par\begin{spacing}{\@csp}\par\end{spacing}}% - \fi - \end{spacing} -} +% \begin{macro}{\bibname} +% From the Manual 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} % \end{macrocode} +% \end{macro} % -% Override \cls{book}'s (or \pkg{hyperref}'s) |\appendix|, adding -% |\@appendixtrue|. This gets |\if@appendix| working in our -% |\chapter| definition below. +% \begin{macro}{\appendixname} +% From the Manual 3.14 p12, ``Number the appendicies consecutively +% either alphabetically or numerically (|Appendix A|, |Appendix B|\ldots +% or |Appendix 1|, |Appendix 2|\ldots).'' +% (\file{classes.dtx}, L4366) % \begin{macrocode} -\let\DUT@appendix\appendix -\renewcommand\appendix{% - \@appendixtrue% - \DUT@appendix -} +\renewcommand\appendixname{Appendix} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\vitaname} +% From the Manual 3.15 p13, ``The heading |Vita| must appear at the +% top of the page.'' +% \begin{macrocode} +\newcommand\vitaname{Vita} % \end{macrocode} +% \end{macro} % -% Override \cls{book}'s |\chapter|, selecting the false branch of the -% |\if@twocolumn| conditional and adding an |\if@appendix| -% conditional. After |\appendix| (when |\if@mainmatter| and -% |\if@appendix| are both true), we generate table of content entries -% such as \emph{Appendix A: Chapter Title} rather than the standard -% \emph{Chapter Title}. |\thechapter| (defined in \cls{book}) is the -% appendix letter (e.g.\ |A|). |\@chapapp{}| (also defined in -% \cls{book}) Was redefined in |\appendix| (above) as |\appendixname|. -% Before |\appendix|, we reproduce the \cls{book} behavior. -% \begin{macrocode} -\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \if@appendix - \addcontentsline{toc}{appendix}% - {\protect\numberline{\@chapapp{} \thechapter:}#1}% - \else - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \@makechapterhead{#2}% - \@afterheading} +% +% \subsection{Remaining details} +% +% +% \subsubsection{Terminal blank page} +% +% Add a terminal blank page (when |\if@final| is true) +% From the Manual 3.16 p13 +% \begin{quote} +% Include a blank page (with no page number) at the end of the +% thesis or dissertation. The blank page is neither counted nor +% numbered. +% \end{quote} +% \begin{macrocode} +\AtEndDocument{\blankpage} % \end{macrocode} % % -% \iffalse meta-comment +% \begin{macrocode} % -% \fi +% \end{macrocode} % % -% \section{Templates} +% \section{Examples} % -% \subsection{Simple} % -% \subsubsection{Main} +% \subsubsection{Template} % -% \iffalse meta-comment -%<*template-main> -% \fi -% \begin{quote} \hrule \begin{verbatim} -%% See drexel-thesis.pdf for details. +% \begin{macrocode} +%<*template> +% See drexel-thesis.pdf for details. \documentclass{drexel-thesis} %% Enter the appropriate information here -\author{Johny Henry} % Fullname -\title{Inadequacies of Steam-Driven Boring Machines} % Title Of Thesis -\defmonth{July} % Name of the month of you defense -\defyear{1872} % Year you are defending -\degree{Doctor of Philosophy} % Should be fine -\advisor{C \& O Railroad, Ph.D.} % Put Advisor's full name, degree +\author{} % Fullname +\title{} % Title Of Thesis +\defmonth{} % Name of the month of you defense +\defyear{} % Year you are defending +\degree{} % Your target degree, spelled out +\advisor{} % Advisor's full name, degree +\copyrighttext{} % If not "All Rights Reserved." -\usepackage{graphicx} % to include images +%% unsrt style give references in order of citation +\bibliographystyle{unsrt} \begin{document} \begin{preamble} \begin{dedications} % OPTIONAL -Type dedications here +%% Type dedications here \end{dedications} \begin{acknowledgments} % OPTIONAL -Type acknowledgments here +%% Type acknowledgments here \end{acknowledgments} \tableofcontents -%% Include these following commands only if you have tables or figures. -%% Tables should come before figures. -\listoftables -\listoffigures +\listoftables % If you have tables +\listoffigures % If you have figures \begin{abstract} -Type abstract here +%% Type abstract here \end{abstract} \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} +%%\include{part1} +%%... \end{thesis} -%% unsrt style give references in order of citation -\bibliographystyle{unsrt} -\phantomsection -\addcontentsline{toc}{chapter}{\bibname} -\begin{thebibliography}{9} -% widest label (above "9"), when printed, as wide as widest entry label. -\bibitem{lamport94} - Leslie Lamport, - \emph{\LaTeX: A Document Preparation System}. - Addison Wesley, Massachusetts, - 2nd Edition, - 1994. -%... -\end{thebibliography} +\bibliography{references} % Include references.bib BibTeX -\appendix +\appendix % If you have appendices %% include files with your appendicies (if any) here -\include{appendixA} +%%\include{appendixA} +%%... -\begin{vita} % Ph.D. only. See Thesis Manual for details. -Vita text. +\begin{vita} % Ph.D. only. +%%Vita text. \end{vita} \end{document} -% \end{verbatim} \hrule \end{quote} -% \iffalse meta-comment -% -% \fi -% -% \subsubsection{Part} -% -% \iffalse meta-comment -%<*template-part> -% \fi -% \begin{quote} \hrule \begin{verbatim} -\part{A Part Heading} -\chapter{A Chapter Heading} -\section{A Section Heading} -The following sectioning commands are available: -\begin{quote} - part \\ - chapter \\ - section \\ - subsection \\ - subsubsection \\ - paragraph \\ - subparagraph -\end{quote} -\begin{table} - \caption{A table float} - \begin{center} - \begin{tabular}{r@{.}l r@{.}l r@{.}l} - \multicolumn{2}{c}{Time (s)} & - \multicolumn{2}{c}{John Henry (m)} & - \multicolumn{2}{c}{Steam drill (m)} \\ - 0&0 & 0&0 & 0&0 \\ - 10&0 & 4&3 & 3&75 \\ - 30&0 & 11&9 & 10&1 \\ - \ldots - \end{tabular} - \end{center} -\end{table} -Bla bla bla (text to test table/figure spacing) - -Bla bla bla - -Bla bla bla - -Bla bla bla - -Bla bla bla - -Bla bla bla - -Bla bla bla -\begin{figure} - \begin{center} - \includegraphics[width=0.4\textwidth]{drexel-logo} - \end{center} - \caption{A figure float} -\end{figure} -Bla bla bla (text to test table/figure spacing) - -Bla bla bla - -Bla bla bla - -Bla bla bla - -Bla bla bla - -Bla bla bla - -Bla bla bla -% \end{verbatim} \hrule \end{quote} -% \iffalse meta-comment -% -% \fi -% -% Note the strange |r@{.}l| notation in the |\tabular| column -% definition. This allows for numbers aligned at the decimal point -% (see \href{http://www.stat.unipg.it/tex-man/ltx-68.html}{here}). -% -% |\multicolumn{num_cols}{alignment}{contents}| allows the headings -% to span the pre- and post-decimal columns. -% -% -% \subsubsection{Appendix} -% -% \iffalse meta-comment -%<*template-appendix> -% \fi -% \begin{quote} \hrule \begin{verbatim} -\chapter{Some Appendix Heading} -Bla Bla Bla -\chapter{Another Appendix Heading} -Bla Bla Bla -% \end{verbatim} \hrule \end{quote} -% \iffalse meta-comment -% -% \fi +% +% \end{macrocode} % % -% \subsection{\BibTeX/\pkg{natbib}} -% \label{sec:natbib-example} +% \subsection{A better example} +% \label{sec:better-example} % % \subsubsection{Main} % -% \iffalse meta-comment -%<*template-bibtex-main> -% \fi -% \begin{quote} \hrule \begin{verbatim} +% \begin{macrocode} +%<*example|example-draft> %% See drexel-thesis.pdf for details. -\documentclass{drexel-thesis} +%\documentclass[subfig]{drexel-thesis} +%\documentclass[draft,subfig]{drexel-thesis} %% Enter the appropriate information here -\author{Johny Henry} % Fullname -\title{Inadequacies of Steam-Driven Boring Machines} % Title Of Thesis -\defmonth{July} % Name of the month of you defense -\defyear{1872} % Year you are defending -\degree{Doctor of Philosophy} % Should be fine -\advisor{C \& O Railroad, Ph.D.} % Put Advisor's full name, degree +\author{Johny Henry} +\title{Inadequacies of Steam-Driven Boring Machines} +\defmonth{July} +\defyear{1872} +\degree{Doctor of Philosophy} +\advisor{Collis Potter Huntington, R.R.D.} +\advisor{Advisor 2, Ph.D.} +\advisor{Advisor 3, Ph.D.} +\copyrighttext{\copyrighttextCCBYSA} \usepackage[super,sort&compress]{natbib} % fancy citation extensions -%% super selects citations in superscript mode. -%% sort&compress automatically sorts and compresses compound citations: -%% \pcite{a,b,...} -\bibliographystyle{plainnat} +\bibliographystyle{unsrtnat} + +\usepackage{fancyvrb} % nicer verbatim handling +\DefineShortVerb{\|} % \verb+TEXT+ -> |TEXT| + +% \end{macrocode} +% Use +% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/blindtext/}{\pkg{blindtext}} +% for dummy text creation. \pkg{blindtext} requires +% \href{}{\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 (Section \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{% + \renewcommand\dedicationsname{Dedications}% + \renewcommand\acknowledgmentsname{Acknowledgments}% + \renewcommand\contentsname{Table of Contents}% + \renewcommand\listtablename{List of Tables}% + \renewcommand\listfigurename{List of Figures}% + \renewcommand\abstractname{Abstract}% + \renewcommand\bibname{Bibliography}% + \renewcommand\appendixname{Appendix}% + \renewcommand\vitaname{Vita}% +} \begin{document} \begin{preamble} -\begin{dedications} % OPTIONAL -Type dedications here +\begin{dedications} +We're in \iffinal{final}{draft} mode! + +\Blindtext[3] \end{dedications} -\begin{acknowledgments} % OPTIONAL -Type acknowledgments here +\begin{acknowledgments} +\Blindtext[3] \end{acknowledgments} \tableofcontents -%% Include these following commands only if you have tables or figures. -%% Tables should come before figures. \listoftables \listoffigures \begin{abstract} -Type abstract here +\Blindtext[3] \end{abstract} \end{preamble} \begin{thesis} -%% Use include statements to include your main thesis code -%% from seperate files. -\include{bibpart1} +\include{example-1} \end{thesis} -\bibliography{references} +\bibliography{example-ref} \appendix -%% include files with your appendicies (if any) here -\include{appendixA} +\include{example-a} -\begin{vita} % Ph.D. only. See Thesis Manual for details. -Vita text. +\begin{vita} +\Blindtext[3] \end{vita} \end{document} -% \end{verbatim} \hrule \end{quote} -% \iffalse meta-comment -% -% \fi +% +% \end{macrocode} % -% \subsubsection{Part} % -% You can cite your references with \pkg{natbib}'s |\citet| and -% |\citep| macros. See -% \href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/}{the \pkg{natbib} manual} -% for details. +% \subsubsection{Part} +% \label{section:better-example-part} % -% \iffalse meta-comment -%<*template-bibtex-part> -% \fi -% \begin{quote} \hrule \begin{verbatim} +% \begin{macrocode} +%<*example-part> \part{A Part Heading} \chapter{A Chapter Heading} \section{A Section Heading} +The following sectioning commands are available: +\begin{quote} + part \\ + chapter \\ + section \\ + subsection \\ + subsubsection \\ + paragraph \\ + subparagraph +\end{quote} + +\subsection{natbib} +You can cite your references with |natbib|'s |\citet| and |\citep| +macros. See +\href{http://www.ctan.org/tex-archive/macros/latex/contrib/natbib/} +{the natbib manual} for details. + Here we have a text citation \citet{rief97} followed by a parenthetical citation\citep{rief97}. -% \end{verbatim} \hrule \end{quote} -% \iffalse meta-comment -% -% \fi + +\subsubsection{Tables and Figures} +\Blindtext[2] +\begin{table} + \begin{center} + \begin{tabular}{r@{.}l r@{.}l r@{.}l} + \multicolumn{2}{c}{Time (s)} & + \multicolumn{2}{c}{John Henry (m)} & + \multicolumn{2}{c}{Steam drill (m)} \\ + 0&0 & 0&0 & 0&0 \\ + 10&0 & 4&3 & 3&75 \\ + 30&0 & 11&9 & 10&1 \\ + \ldots + \end{tabular} + \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}). +%% +%% |\multicolumn{num_cols}{alignment}{contents}| allows the headings +%% to span the pre- and post-decimal columns. + \end{center} +\end{table} +\Blindtext[2] +\begin{figure} + \caption{A figure float. \blindtext} % high caption allowed with floatrow + \begin{center} + \includegraphics[width=0.4\textwidth]{drexel-logo} + \end{center} +\end{figure} +\Blindtext[3] +\begin{figure} + \begin{center} + \subfloat[][]{% + \includegraphics[width=0.2\textwidth]{drexel-logo}% + \label{fig:sub-a}} + \subfloat[][]{% + \includegraphics[width=0.2\textwidth]{drexel-logo}% + \label{fig:sub-b}} + \caption{(a) One subfig float. (b) Another subfig float.% + \label{fig:both}} + \end{center} +\end{figure} +You can reference the subfig floats individually (\ref{fig:sub-a}) or +together (\ref{fig:both}). + +\Blindtext[3] + +\part{Another Part} +\chapter{Another Chapter} +\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[5] +% +% \end{macrocode} % -% \subsubsection{Bib} % -% What goes into the \BibTeX\ file |references.bib|? +% \subsubsection{\BibTeX} +% +% What goes into the \BibTeX\ file |example-ref.bib|? % For more information, check out this % \href{http://cmtw.harvard.edu/Documentation/TeX/Bibtex/Example.html}{basic tutorial}. % If you want to get deeper, take a look at @@ -2049,12 +3211,10 @@ parenthetical citation\citep{rief97}. % % Here is an example \BibTeX\ file to get you started. We define % strings for the publishers, journals, and authors to avoid -% duplication and minimize the risk of typos, etc. +% duplication, minimize the risk of typos, etc. % -% \iffalse meta-comment -%<*template-bibtex-refs> -% \fi -% \begin{quote} \hrule \begin{verbatim} +% \begin{macrocode} +%<*example-bibtex-refs> %% Publishers @String{APS = "American Physical Society"} @@ -2089,10 +3249,64 @@ parenthetical citation\citep{rief97}. of its globular-chain structure.", } %% ... -% \end{verbatim} \hrule \end{quote} -% \iffalse meta-comment -% -% \fi +% +% \end{macrocode} +% +% +% \subsubsection{Appendix} +% +% \begin{macrocode} +%<*example-appendix> +\chapter{Some Appendix Heading} +\Blindtext[5] +\chapter{Another Appendix Heading} +\Blindtext[5] +% +% \end{macrocode} +% +% +% \section{Known bugs and issues} +% +% +% \subsection{Hacks} +% +% \begin{itemize} +% \item |\vspace*{0\p@}| space between page top and chapter +% headings (|\@makechapterhead| and |\@makeschapterhead|, +% Sec.~\ref{sec:implement-chapters}). +% \item Extra space under LOT and LOF titles compared to TOC. +% (Secs.~\ref{sec:implement-lof} and \ref{sec:implement-lot}). +% \end{itemize} +% +% +% \subsection{Bugs} +% +% \begin{itemize} +% \item Different space between chapter heading and section heading, +% vs.\ chapter heading and text. Compare \emph{A Chapter Heading} +% and \emph{Another Chapter} in \file{example.pdf}. This is a +% problem (although with opposite order) in the \cls{book} class +% itself. For example, compile +% \begin{example} +%\documentclass{book} +%\begin{document} +%\chapter{Chapter with text} +%Bla bla bla. +%\chapter{Chapter with section} +%\section{Section} +%Bla bla bla. +%\end{document} +% \end{example} +% \item Footer overlap if chapter/section names are particularly long. +% See \emph{Section in long-titled chapter} in \file{example.pdf}. +% Workaround: turn off sections in the footer: +% \begin{example} +% \fancyfoot[RE,LO]{\scshape\leftmark} +% \fancyfoot[LE,RO]{} +% \end{example} +% For more header or footer manipulation ideas, see Section \ref{sec:fancyhdr}. +% \end{itemize} +% % % \Finale \endinput