From e7bac2397dc68695666cd09a9d9ba607ef22cb81 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 4 Oct 2008 23:52:36 +0000 Subject: new latex package ut-thesis (4oct08) git-svn-id: svn://tug.org/texlive/trunk@10855 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/ut-thesis/ut-thesis.cls | 866 +++++++++++++++++++++ 1 file changed, 866 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/ut-thesis/ut-thesis.cls (limited to 'Master/texmf-dist/tex/latex/ut-thesis') diff --git a/Master/texmf-dist/tex/latex/ut-thesis/ut-thesis.cls b/Master/texmf-dist/tex/latex/ut-thesis/ut-thesis.cls new file mode 100644 index 00000000000..f4e44689a10 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ut-thesis/ut-thesis.cls @@ -0,0 +1,866 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% UT-THESIS.CLS (v1.8) +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory CTAN:/macros/latex/base/lppl.txt. +%% +%% Copyright (c) 1999 by Francois Pitt +%% Last Update: 1999 December 10 +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\utthesisversion}{v1.8} % current version number +\newcommand{\utthesisupdated}{1999/12/10} % date of last change(s) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This file is distributed in the hope that it will be useful but +%% without any warranty (without even the implied warranty of +%% fitness for a particular purpose). For a description of this +%% file's purpose, and instructions on its use, see below. +%% +%% Feel free to copy and redistribute this file, as long as this +%% copyright notice remains intact. You may also modify the file +%% to suit your particular needs, as long as you indicate your +%% changes below (and inform the original author of your changes: +%% he's always curious to know what people think of his work). +%% +%% Send all bugs, questions, comments, suggestions, etc. to the +%% author, at . +%% +%% KNOWN BUGS: (reported by Robert Bernecky) +%% +%% - [On missing page headers for float pages.] +%% `teTex' under Linux fails in precisely the same way as does +%% `MikTeX', so there's something clearly wrong somewhere, but +%% I don't know where. It only fails on odd-numbered pages (if +%% you remove enough text so that the page floats back to an +%% even-numbered page, the page header is correct)! +%% - [On `dedication' and `acknowledgements' causing an error when +%% they both appear on the same page.] +%% `teTeX' and `MikTeX' both fail the same way on this one, with +%% "LaTeX error: Something's wrong--perhaps a missing \item". +%% Adding a \newpage between the two environments "fixes" the +%% problem. Unsure what causes this, but it could be a bug +%% common to all x86 platforms... +%% +%% REVISION HISTORY: +%% +%% v1.8: 1999/12/10 (Francois Pitt) +%% - Fixed circular definition problem with \currenttextsize +%% that caused TeX to run out of input stack memory. +%% v1.7: 1999/06/02,1999/05/20,1999/05/13 (Francois Pitt) +%% - Minor change to the format of the date printed on every +%% page with the `draft' option. +%% - Minor cosmetic change to the word "DRAFT" printed on the +%% corners of every page with the `draft' option. +%% - Made `draft' mode doublespaced by default (it just makes +%% more sense for actual drafts; suggested by Eric Joanis). +%% - Changed \currenttextsize from a "\newcommand" to a "\let". +%% - Added "known bugs" above. +%% v1.6: 1999/03/06 (Francois Pitt) +%% - Minor change: replaced ``\ifx\empty#1\else...\fi'' with +%% ``\ifx\empty#1\empty\else...\fi'' (the former works only +%% by accident while the latter is logically correct). +%% v1.5: 1999/02/17 (Francois Pitt) +%% - Fixed missing page numbers and headers by removing +%% redefinition of \cleardoublepage (reported by Robert +%% Bernecky 1999/02/04 and Nedialko Nedialkov 1999/02/12). +%% - Added \clearemptydoublepage and \clearplaindoublepage +%% commands. +%% - Removed redefinitions of \tableofcontents, \listoftables, +%% and \listoffigures because they already call \clearpage +%% or \cleardoublepage by default. +%% - Removed "\setcounter{tocdepth}{2}" from the page layout +%% section (moved to `ut-thesis.tex' where it belongs). +%% - Added \ignore command to comment out parts of a file. +%% - Put version macros at the top of the file. +%% - Changed order of revision comments. +%% v1.4: 1998/11/05 (Francois Pitt) +%% - Fixed `abstract' environment so that it is really put on a +%% separate page, and changed "\newpage\endgroup" at the end +%% to "\par\endgroup\newpage", which is more logical. +%% - Changed `acknowledgements' environment so that it is *not* +%% put on a separate page, allowing users to add other text +%% on that page (e.g., `dedication' described next). +%% - Added `dedication' environment based on `acknowledgements' +%% (suggested by Robert Bernecky 98/11/04). +%% - Changed page layout so that it is defined in terms of the +%% physical page size instead of being hard-coded for letter +%% paper (8.5" x 11"). +%% v1.3: 1998/11/01 (Francois Pitt) +%% - Fixed `thebibliography' so page headers are generated in +%% the same style as for the rest of the thesis. +%% - Swapped \endgroup and \newpage in definition of `abstract' +%% and `acknowledgements' environments, to fix problem with +%% adjusted line spacing in `abstract'. +%% - Renamed `\currentsize' to `\currenttextsize'. +%% - Added \cleardoublepage at the end of preliminary sections, +%% so that page 1 of main text is on right-hand side. +%% v1.2: 1998/10/20 (Francois Pitt) +%% - Changed `spacenotes' option to `spacednotes' to have more +%% consistently named options. +%% - Fixed spacing between main text and footnotes. +%% - Fixed `singlespaced' environment, which didn't seem to +%% work at all (reported by Nedialko Nedialkov 98/10/12): +%% Actually, created a `newspacing' environment, which takes +%% a parameter, and based `singlespaced', `oneandahalfspaced', +%% and `doublespaced' environments on `newspacing'. +%% v1.1: 1998/10/01 (Francois Pitt) +%% - Fixed bug that caused footnotes to make following tables +%% single-spaced (reported by Philip Edmonds 98/09/30). +%% - Made spacing of marginal notes and footnotes the same. +%% - Added option to control line spacing of notes. +%% - Added options to control the size of margins. +%% - Changed names of temporary macros used in redefinitions +%% to avoid conflicts with existing names. +%% v1.0: 1998/09/29 (Francois Pitt) +%% - Initial version. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% LaTeX2e class file for formatting documents according to the +%% School of Graduate Studies' guidelines for theses at the +%% University of Toronto (conforms to SGS guidelines of 07/97). +%% +%% USAGE: \documentclass{ut-thesis} +%% \documentclass[...options...]{ut-thesis} +%% +%% The default settings produce a final copy, ready for submission +%% to SGS (12pt font, single-sided, double-spaced, normal margins, +%% with single-spaced notes). +%% +%% OPTIONS: +%% +%% - Any standard option for the LaTeX2e `report' class, including +%% `10pt', `11pt', `12pt', `oneside', `twoside', etc. +%% +%% - `singlespaced', `oneandahalfspaced', or `doublespaced': Set +%% the entire document's default line spacing, except for notes, +%% which are single-spaced by default. +%% +%% - `spacednotes': Let the line spacing of notes be determined +%% by the line spacing of the main document, instead of being +%% forced single-spaced. +%% +%% - `narrowmargins', `normalmargins', `widemargins', or +%% `extrawidemargins': Set the size of the margins, as follows: +%% . `narrow': 1 1/4" on the left, 3/4" on all other sides, +%% headers & footers 1/4" from body; +%% . `normal': 1 1/4" on the left, 1" on all other sides, +%% headers & footers 1/2" from body; +%% . `wide': 1 1/4" on all sides, headers & footers 3/4" from +%% body; +%% . `extrawide': 1 1/2" on all sides, headers & footers 3/4" +%% from body. +%% (If you have more than just a few marginal notes, it is +%% recommended that you use `wide' or `extrawide' margins.) +%% +%% - `draft': Produce a draft copy (10pt font, double-sided, +%% double-spaced, normal margins, with the word "DRAFT" printed +%% at all four corners of every page). +%% +%% Note that these options can be used to override the default or +%% draft document settings, so that it is possible, for example, +%% to create a double-sided final copy, or a 1 1/2-spaced draft +%% copy with wide margins, etc. Also note that when producing +%% double-sided documents, new chapters and preliminary sections +%% will always start on a right-hand page under the default +%% settings (inserting a blank page if needed), but not if the +%% `draft' option was used. (This can be overriden by using the +%% `openany' or `openright' options. To achieve this effect for +%% individual sections or chapters, use the \cleardoublepage +%% command.) Note that the blank page inserted in these cases will +%% still contain the header and page number that is present on all +%% pages. For `empty' or `plain' pages, explicitly use one of the +%% commands \clearemptydoublepage or \clearplaindoublepage. +%% +%% NEW ENVIRONMENTS and COMMANDS: +%% +%% * \degree{...}: (preamble only; REQUIRED) +%% Specify the name of the degree (e.g., "Doctor of Philosophy"). +%% +%% * \department{...}: (preamble only; REQUIRED) +%% Specify the name of the graduate department. +%% +%% * \gradyear{...}: (preamble only; REQUIRED) +%% Specify the year of graduation (defaults to current year). +%% +%% * \author{...}: (preamble only; REQUIRED) +%% Specify the name of the author. +%% +%% * \title{...}: (preamble only; REQUIRED) +%% Specify the title of the thesis. +%% +%% - \linespacing{...}: (preamble only) +%% Set the interline spacing directly, overriding document +%% defaults and options; note that in order to get the correct +%% appearance, the argument to \linespacing must be equal to +%% 1/3 + 2/3 times the desired line spacing (for example, +%% single-spaced = \linespacing{1}, +%% 1 1/2-spaced = \linespacing{1.33}, and +%% double-spaced = \linespacing{1.66}). +%% +%% - \ignore{...}: +%% Ignore the part of the file between { and } (can include +%% paragraph breaks); useful for commenting out large blocks. +%% +%% - \clearemptydoublepage, \clearplaindoublepage: +%% Same as \cleardoublepage except that it sets the pagestyle of +%% any inserted blank page to `empty' or `plain', respectively. +%% +%% - \begin{preliminary}...\end{preliminary}: +%% Delimit head matter (title page, abstract, table of contents, +%% lists of tables and figures, etc.): set the page style and +%% numbering for the preliminary sections and reset them for the +%% main document. +%% +%% - \maketitle: +%% Generate the title page from the information supplied +%% in the preamble. +%% +%% - \begin{abstract}...\end{abstract}: +%% Generate the abstract page. (According to SGS guidelines, +%% this must immediately follow the title page.) +%% +%% - \begin{dedication}...\end{dedication}: +%% Generate a dedication section, if needed. +%% +%% - \begin{acknowledgements}...\end{acknowledgements}: +%% Generate an acknowledgements section, if needed. +%% +%% Note that neither the `dedication' nor the `acknowledgements' +%% are put on a separate page by default (use \newpage to do +%% this explicitly). Also note that the table of contents, list +%% of tables, and list of figures can be generated using the +%% usual LaTeX commands. +%% +%% - \begin{longquote}...\end{longquote}: +%% Single-spaced version of the `quote' environment. +%% +%% - \begin{longquotation}...\end{longquotation}: +%% Single-spaced version of the `quotation' environment. +%% +%% - \begin{singlespaced}...\end{singlespaced}: +%% Format single-spaced paragraphs. +%% +%% - \begin{oneandahalfspaced}...\end{oneandahalfspaced}: +%% Format 1 1/2-spaced paragraphs. +%% +%% - \begin{doublespaced}...\end{doublespaced}: +%% Format double-spaced paragraphs. +%% +%% - \begin{newspacing}{}...\end{newspacing}: +%% Format paragraphs with an interline spacing of `n'. +%% +%% (Note that the last four environments can be used to change the +%% default line spacing of any enclosed text, including figures, +%% tables, abstract or acknowledgement pages, table of contents, +%% etc.) +%% +%% The companion file `ut-thesis.tex' contains a skeleton +%% illustrating the use of this class. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%% IDENTIFICATION %%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ut-thesis}% + [\utthesisupdated\space\utthesisversion\space LaTeX2e document class] + + +%%%%%%%%%%%% INITIAL CODE %%%%%%%%%%%% + +%% To comment out parts of a file. +%% >> Added in v1.5 on 1999/02/17 by Francois Pitt. << %% +% +\newcommand{\ignore}[1]{} + +%% Switch for testing draft mode (toggled by `draft' option). +% +\newif\if@draft +\@draftfalse % initially false by default + +%% Switch for testing current page style. +%% >> Added in v1.3 on 1998/11/01 by Francois Pitt. << %% +% +\newif\if@thesispage + % no default value (set by \pagestyle) + +%% Switch for testing line spacing of notes. +%% >> Added in v1.1 on 1998/10/01 by Francois Pitt. << %% +% +\newif\if@singlespacednotes +\@singlespacednotestrue % initially true by default + +%% Macro for testing the size of margins. +%% >> Added in v1.1 on 1998/10/01 by Francois Pitt. << %% +% +\newcommand{\@marginsize}{} + +%% Because of the draft option, and to allow users to override +%% defaults, we don't want to be passing conflicting options back to +%% the report class, so we define our own temporary toggles holding +%% the most recent setting for each of four basic options: point size, +%% number of page sides, whether new chapters open on right-hand pages +%% or on any page, and line spacing. These toggles will be set from +%% the corresponding options below. +% +\newcommand{\@thesisptsz}{} +\newcommand{\@thesisside}{} +\newcommand{\@thesisopen}{} +\newcommand{\@thesislnsp}{} + + +%%%%%%%%%%%% OPTION DECLARATION %%%%%%%%%%%% + +%% `draft' option: change default document settings. +%% >> Changed in v1.1 on 1998/10/01 by Francois Pitt. << %% +%% >> Changed in v1.7 on 1999/05/20 by Francois Pitt. << %% +% +\DeclareOption{draft}{\@drafttrue + \typeout{UT-Thesis Class Option: `draft'} + \ExecuteOptions{10pt,twoside,openany,doublespaced,normalmargins} + \PassOptionsToClass{draft}{report} + %% Macros for printing "DRAFT" at the corners of a page. + \newcommand{\tlDRAFT}% + {\raisebox{ 3ex}[0pt][0pt]{\llap{\sffamily\scriptsize DRAFT\ \ }}} + \newcommand{\trDRAFT}% + {\raisebox{ 3ex}[0pt][0pt]{\rlap{\sffamily\scriptsize \ \ DRAFT}}} + \newcommand{\blDRAFT}% + {\raisebox{-3ex}[0pt][0pt]{\llap{\sffamily\scriptsize DRAFT\ \ }}} + \newcommand{\brDRAFT}% + {\raisebox{-3ex}[0pt][0pt]{\rlap{\sffamily\scriptsize \ \ DRAFT}}} +}%DeclareOption{draft} + +%% `spacednotes' option: make notes share the line spacing of the rest +%% of the document. +%% >> Added in v1.1 on 1998/10/01 by Francois Pitt. << %% +%% >> Changed in v1.2 on 1998/10/20 by Francois Pitt. << %% +% +\DeclareOption{spacednotes}{\@singlespacednotesfalse} + +%% Margin options: change the size of margins. +%% >> Added in v1.1 on 1998/10/01 by Francois Pitt. << %% +% +\DeclareOption{narrowmargins}{\renewcommand{\@marginsize}{0}} +\DeclareOption{normalmargins}{\renewcommand{\@marginsize}{1}} +\DeclareOption{widemargins}{\renewcommand{\@marginsize}{2}} +\DeclareOption{extrawidemargins}{\renewcommand{\@marginsize}{3}} + +%% Point Size options: change current setting. +% +\DeclareOption{10pt}{\renewcommand{\@thesisptsz}{10pt}} +\DeclareOption{11pt}{\renewcommand{\@thesisptsz}{11pt}} +\DeclareOption{12pt}{\renewcommand{\@thesisptsz}{12pt}} + +%% Number of Page Sides options: change current setting. +% +\DeclareOption{twoside}{\renewcommand{\@thesisside}{twoside}} +\DeclareOption{oneside}{\renewcommand{\@thesisside}{oneside}} + +%% New Chapter Openings options: change current setting. +% +\DeclareOption{openany}{\renewcommand{\@thesisopen}{openany}} +\DeclareOption{openright}{\renewcommand{\@thesisopen}{openright}} + +%% Line Spacing options: change current setting. +% +\DeclareOption{singlespaced}{\renewcommand{\@thesislnsp}{1}} +\DeclareOption{oneandahalfspaced}{\renewcommand{\@thesislnsp}{1.33}} +\DeclareOption{doublespaced}{\renewcommand{\@thesislnsp}{1.66}} + +%% All other options are passed to the base class directly. +% +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} + + +%%%%%%%%%%%% OPTION EXECUTION %%%%%%%%%%%% + +%% Default settings. +%% >> Changed in v1.1 on 1998/10/01 by Francois Pitt. << %% +% +\ExecuteOptions{12pt,oneside,openright,doublespaced,normalmargins} +% +%% Process options. +% +\ProcessOptions + + +%%%%%%%%%%%% PACKAGE LOADING %%%%%%%%%%%% + +%% Load base class using current setting for basic options. +% +\LoadClass[\@thesisptsz,\@thesisside,\@thesisopen]{report} + + +%%%%%%%%%%%% MAIN CODE %%%%%%%%%%%% + +%%%%%% Parameters +% +%% The following five commands set the respective field values so we +%% can generate the title page and abstract page automatically. +%% >> Changed in v1.6 on 1999/03/06 by Francois Pitt. << %% +% +\newcommand{\degree}[1]% + {\ifx\empty#1\empty\else\gdef\@degree{#1}\fi} +\newcommand{\department}[1]% + {\ifx\empty#1\empty\else\gdef\@department{#1}\fi} +\newcommand{\gradyear}[1]% + {\ifx\empty#1\empty\else\gdef\@gradyear{#1}\fi} +\renewcommand{\author}[1]% + {\ifx\empty#1\empty\else\gdef\@author{#1}\fi} +\renewcommand{\title}[1]% + {\ifx\empty#1\empty\else\gdef\@title{#1}\fi} + +%%%%%% Line Spacing +% +%% \linespacing is used to define the line spacing. If the argument +%% is less than 1.33 (for 1.5-spaced) a warning message is displayed +%% when not in draft mode. +%% >> Changed in v1.1 on 1998/10/01 by Francois Pitt. << %% +% +\newcommand{\linespacing}[1]% + {\newlinestretch{#1}\if@draft\else\ifdim #1pt < 1.33pt\typeout + {UT-Thesis Class Warning: line spacing less than 1 1/2}\fi\fi} +% +%% `longquote' and `longquotation' produce single-spaced quotes, while +%% `newspacing' encloses paragraphs with a different line spacing, +%% such as `singlespaced', `oneandahalfspaced', or `doublespaced'. +% +\newenvironment{longquote}% + {\begin{quote}\newlinestretch{1}}{\end{quote}} +\newenvironment{longquotation}% + {\begin{quotation}\newlinestretch{1}}{\end{quotation}} +%% >> Changed in v1.2 on 1998/10/20 by Francois Pitt. << %% +\newenvironment{singlespaced}% + {\begin{newspacing}{1}}{\end{newspacing}} +%% >> Added in v1.2 on 1998/10/20 by Francois Pitt. << %% +\newenvironment{oneandahalfspaced}% + {\begin{newspacing}{1.33}}{\end{newspacing}} +\newenvironment{doublespaced}% + {\begin{newspacing}{1.66}}{\end{newspacing}} +\newenvironment{newspacing}[1]% + {\par\begingroup\newlinestretch{#1}}% + {\par\vskip\parskip\vskip\baselineskip\endgroup + \vskip-\parskip\vskip-\baselineskip} +% +%% To change the actual line spacing. +%% >> Changed in v1.2 on 1998/10/20 by Francois Pitt. << %% +%% >> Changed in v1.3 on 1998/11/01 by Francois Pitt. << %% +% +\newcommand{\newlinestretch}[1]% + {\renewcommand{\baselinestretch}{#1}\currenttextsize} +% +%% To keep track of the current text size. +%% >> Added in v1.2 on 1998/10/20 by Francois Pitt. << %% +%% >> Changed in v1.3 on 1998/11/01 by Francois Pitt. << %% +%% >> Changed in v1.7 on 1999/05/13 by Francois Pitt. << %% +% +\let\currenttextsize=\normalsize +% +%% Redefine size-changing commands to update \currenttextsize. +%% >> Added in v1.2 on 1998/10/20 by Francois Pitt. << %% +%% >> Changed in v1.3 on 1998/11/01 by Francois Pitt. << %% +%% >> Changed in v1.7 on 1999/05/13 by Francois Pitt. << %% +%% >> Changed in v1.8 on 1999/12/10 by Francois Pitt. << %% +% +\let\tmp@tiny=\tiny +\renewcommand{\tiny}% + {\let\currenttextsize=\tmp@tiny\tmp@tiny} +\let\tmp@scriptsize=\scriptsize +\renewcommand{\scriptsize}% + {\let\currenttextsize=\tmp@scriptsize\tmp@scriptsize} +\let\tmp@footnotesize=\footnotesize +\renewcommand{\footnotesize}% + {\let\currenttextsize=\tmp@footnotesize\tmp@footnotesize} +\let\tmp@small=\small +\renewcommand{\small}% + {\let\currenttextsize=\tmp@small\tmp@small} +\let\tmp@normalsize=\normalsize +\renewcommand{\normalsize}% + {\let\currenttextsize=\tmp@normalsize\tmp@normalsize} +\let\tmp@large=\large +\renewcommand{\large}% + {\let\currenttextsize=\tmp@large\tmp@large} +\let\tmp@Large=\Large +\renewcommand{\Large}% + {\let\currenttextsize=\tmp@Large\tmp@Large} +\let\tmp@LARGE=\LARGE +\renewcommand{\LARGE}% + {\let\currenttextsize=\tmp@LARGE\tmp@LARGE} +\let\tmp@huge=\huge +\renewcommand{\huge}% + {\let\currenttextsize=\tmp@huge\tmp@huge} +\let\tmp@Huge=\Huge +\renewcommand{\Huge}% + {\let\currenttextsize=\tmp@Huge\tmp@Huge} +% +%% Make notes single-spaced if `spacednotes' option was not given. +%% Note that this does _not_ change the spacing of figures or tables. +%% >> Changed in v1.1 on 1998/10/01 by Francois Pitt. << %% +% +\if@singlespacednotes +%% Make footnotes single-spaced. +\let\tmp@@footnotetext=\@footnotetext +\renewcommand{\@footnotetext}[1]% + {{\newlinestretch{1}\tmp@@footnotetext{#1}}} +%% Make footnotes inside a minipage single-spaced. +\let\tmp@@mpfootnotetext=\@mpfootnotetext +\renewcommand{\@mpfootnotetext}[1]% + {{\newlinestretch{1}\tmp@@mpfootnotetext{#1}}} +%% Make marginal notes single-spaced. +\let\tmp@@marginparreset=\@marginparreset +\renewcommand{\@marginparreset}% + {\newlinestretch{1}\tmp@@marginparreset} +\fi%@singlespacednotes + +%%%%%% New formatting environments and commands. +% +%% \begin{preliminary} sets the pagestyle and pagenumbering for the +%% preliminary sections; \end{preliminary} resets the pagenumbering. +%% The default page style is used outside of the preliminary block. +%% >> Changed in v1.3 on 1998/11/01 by Francois Pitt. << %% +% +\newenvironment{preliminary}% + {\pagestyle{plain}\pagenumbering{roman}}% + {\cleardoublepage\pagenumbering{arabic}} +% +%% Change \maketitle to follow SGS guidelines. +% +\renewcommand{\maketitle}{ + \begingroup + \newlinestretch{1} + \begin{titlepage} + \begin{large} + \begin{center} + \mbox{} + \vfill + \textsc{\@title}\\ + \vfill + by \\ + \vfill + {\@author}\\ + \vfill + \vfill + A thesis submitted in conformity with the requirements\\ + for the degree of {\@degree}\\ + Graduate Department of {\@department}\\ + University of Toronto\\ + \vfill + Copyright {\copyright} {\@gradyear} by {\@author}\\ + \vspace{.2in} + \mbox{} + \end{center} + \end{large} + \setcounter{page}{1} + \end{titlepage} + \endgroup + \setcounter{page}{2} +}%maketitle +% +%% Change \begin{abstract}...\end{abstract} to follow SGS guidelines +%% and put the abstract on a separate page (checking @openright). +%% >> Changed in v1.4 on 1998/11/05 by Francois Pitt. << %% +% +\renewenvironment{abstract}{ + \if@openright\cleardoublepage\else\clearpage\fi + \begin{center} + \section*{Abstract} + \end{center} + \begin{center} + {\@title}\\[2ex] + {\@author}\\ + {\@degree}\\ + Graduate Department of {\@department}\\ + University of Toronto\\ + {\@gradyear}\\ + \end{center} + \begingroup + %% Adjust the line spacing: if it was less than 1 1/2, + %% increase it to 1 1/2; if it was between 1 1/2 and 2, + %% increase it to 2; otherwise, leave it as is. + \ifdim \baselinestretch pt < 1.33pt \newlinestretch{1.33}\else + \ifdim \baselinestretch pt < 1.66pt \newlinestretch{1.66}\fi\fi +}{\par\endgroup\newpage}%abstract +% +%% \begin{dedication}...\end{dedication} formats a +%% dedication section (*not* on a separate page). +%% >> Added in v1.4 on 1998/11/05 by Francois Pitt. << %% +% +\newenvironment{dedication}% + {\begin{center} + \section*{Dedication} + \end{center} + \begingroup}% + {\par\endgroup} +% +%% \begin{acknowledgements}...\end{acknowledgements} formats an +%% acknowledgements section (*not* on a separate page). +%% >> Changed in v1.4 on 1998/11/05 by Francois Pitt. << %% +% +\newenvironment{acknowledgements}% + {\begin{center} + \section*{Acknowledgements} + \end{center} + \begingroup}% + {\par\endgroup} +% +%% ...\renewcommand{\tableofcontents}... +%% ...\renewcommand{\listoftables}... +%% ...\renewcommand{\listoffigures}... +%% >> Removed in v1.5 on 1999/02/17 by Francois Pitt. << %% +% +%% Redefine `thebibliography' environment so that it generates +%% headers in the same style as the rest of the document. +%% >> Added in v1.3 on 1998/11/01 by Francois Pitt. << %% +% +\let\tmp@thebibliography=\thebibliography +\renewcommand{\thebibliography}[1]{\tmp@thebibliography{#1} + \if@thesispage\@mkboth{\textsc{\bibname}}{\textsc{\bibname}}\fi} +% +%% ...\renewcommand{\cleardoublepage}... +%% >> Removed in v1.5 on 1999/02/17 by Francois Pitt. << %% +% +%% Variations of \cleardoublepage that explicitly set the pagestyle +%% of any inserted blank page. +%% >> Added in v1.5 on 1999/02/17 by Francois Pitt. << %% +% +\newcommand{\clearemptydoublepage}% + {{\pagestyle{empty}\cleardoublepage}} +\newcommand{\clearplaindoublepage}% + {{\pagestyle{plain}\cleardoublepage}} + +%%%%%% Page Styles +%% >> Changed in v1.3 on 1998/11/01 by Francois Pitt. << %% +%% >> Changed in v1.7 on 1999/06/02 by Francois Pitt. << %% +% +%% Redefine all four standard page styles (empty, plain, headings, +%% myheadings), based on the definitions in `report', so that they +%% conform to the SGS guidelines (and include draft information if +%% applicable). Then, define a new pagestyle `utthesis' (default). +% +%% Pagestyle `empty'. +% +\renewcommand{\ps@empty}{\@thesispagefalse + \let\@mkboth\@gobbletwo + \def\@oddfoot{\if@draft\blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT\fi}% + \let\@evenfoot\@oddfoot + \def\@oddhead{\if@draft\tlDRAFT\hfil + {\slshape\small\today}\hfil\trDRAFT\fi}% + \let\@evenhead\@oddhead +}%ps@empty +% +%% Pagestyle `plain'. +% +\renewcommand{\ps@plain}{\@thesispagefalse + \let\@mkboth\@gobbletwo + \def\@oddfoot{\if@draft\blDRAFT\fi\hfil + \thepage\hfil\if@draft\brDRAFT\fi}% + \let\@evenfoot\@oddfoot + \def\@oddhead{\if@draft\tlDRAFT\hfil + {\slshape\small\today}\hfil\trDRAFT\fi}% + \let\@evenhead\@oddhead +}%ps@plain +% +%% Pagestyle `headings'. +% +\if@twoside % if two-sided printing +\renewcommand{\ps@headings}{\@thesispagefalse + \let\@mkboth\markboth + \def\@oddfoot{\if@draft\blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT\fi}% + \let\@evenfoot\@oddfoot + \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil + \thepage\if@draft\trDRAFT\fi}% + \def\@evenhead{\if@draft\tlDRAFT\fi\thepage\hfil + {\slshape\leftmark}\if@draft\trDRAFT\fi}% + \def\chaptermark##1{\markboth + {\MakeUppercase{\ifnum\c@secnumdepth >\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}{}}% + \def\sectionmark##1{\markright + {\MakeUppercase{\ifnum\c@secnumdepth >\z@ + \thesection. \ \fi ##1}}}% +}%ps@headings +\else % if one-sided printing +\renewcommand{\ps@headings}{\@thesispagefalse + \let\@mkboth\markboth + \def\@oddfoot{\if@draft\blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT\fi}% + \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil + \thepage\if@draft\trDRAFT\fi}% + \def\chaptermark##1{\markright + {\MakeUppercase{\ifnum\c@secnumdepth >\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}}% +}%ps@headings +\fi%@twoside +% +%% Pagestyle `myheadings'. +% +\renewcommand{\ps@myheadings}{\@thesispagefalse + \let\@mkboth\@gobbletwo + \def\@oddfoot{\if@draft\blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT\fi}% + \let\@evenfoot\@oddfoot + \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil + \thepage\if@draft\trDRAFT\fi}% + \def\@evenhead{\if@draft\tlDRAFT\fi\thepage\hfil + {\slshape\leftmark}\if@draft\trDRAFT\fi}% + \let\chaptermark\@gobble\let\sectionmark\@gobble +}%ps@myheadings +% +%% Pagestyle `utthesis' (based on `headings'). +% +\if@twoside % if two-sided printing +\newcommand{\ps@utthesis}{\@thesispagetrue + \let\@mkboth\markboth + \def\@oddfoot{\if@draft\blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT\fi}% + \let\@evenfoot\@oddfoot + \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil + \thepage\if@draft\trDRAFT\fi}% + \def\@evenhead{\if@draft\tlDRAFT\fi\thepage\hfil + {\slshape\leftmark}\if@draft\trDRAFT\fi}% + \def\chaptermark##1{\markboth + {\textsc{\ifnum\c@secnumdepth >\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}{}}% + \def\sectionmark##1{\markright + {\textsc{\ifnum\c@secnumdepth >\z@ + \thesection. \ \fi ##1}}}% +}%ps@utthesis +\else % if one-sided printing +\newcommand{\ps@utthesis}{\@thesispagetrue + \let\@mkboth\markboth + \def\@oddfoot{\if@draft\blDRAFT\hfil + {\slshape\small\today}\hfil\brDRAFT\fi}% + \def\@oddhead{\if@draft\tlDRAFT\fi{\slshape\rightmark}\hfil + \thepage\if@draft\trDRAFT\fi}% + \def\chaptermark##1{\markright + {\textsc{\ifnum\c@secnumdepth >\m@ne + \@chapapp\ \thechapter. \ \fi ##1}}}% +}%ps@utthesis +\fi%@twoside + +%%%%%% Document Layout +%% >> Changed in v1.5 on 1999/02/17 by Francois Pitt. << %% +% +%% Default line spacing: use current setting from options. +% +\linespacing{\@thesislnsp} +% +%% Page layout (see The LaTeX Companion pp.84-86). +%% >> Changed in v1.1 on 1998/10/01 by Francois Pitt. << %% +%% >> Changed in v1.4 on 1998/11/05 by Francois Pitt. << %% +% +%% By default, TeX puts the `reference point' one inch down and to +%% the right of the top-left corner of the page. This moves it back +%% to the top-left corner (making the rest of the layout easier to +%% define). +% +\setlength{\voffset}{-1in} +\setlength{\hoffset}{-1in} +% +%% Instead of hard-coding the page layout for letter paper +%% (8.5" x 11"), we will base it on \paperheight and \paperwidth, +%% so that it works with options that change the paper size. +% +\setlength{\textheight}{\paperheight} +\setlength{\textwidth}{\paperwidth} +% +%% Now, set the margin-dependent values. +% +\ifcase\@marginsize % set narrow margins: 1 1/4" left, 3/4" others +% +\addtolength{\textheight}{-1.5in} +\setlength{\topmargin}{.5in} +\setlength{\headsep}{.25in} +\setlength{\footskip}{.25in} +\addtolength{\textwidth}{-2in} +\setlength{\oddsidemargin}{1.25in} +\setlength{\evensidemargin}{.75in} +\setlength{\marginparwidth}{.5in} +\setlength{\marginparsep}{.125in} +% +\or % set normal margins: 1 1/4" left, 1" others +% +\addtolength{\textheight}{-2in} +\setlength{\topmargin}{.5in} +\setlength{\headsep}{.5in} +\setlength{\footskip}{.5in} +\addtolength{\textwidth}{-2.25in} +\setlength{\oddsidemargin}{1.25in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\or % set wide margins: 1 1/4" all around +% +\addtolength{\textheight}{-2.5in} +\setlength{\topmargin}{.5in} +\setlength{\headsep}{.75in} +\setlength{\footskip}{.75in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.25in} +\setlength{\evensidemargin}{1.25in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.25in} +% +\or % set extra wide margins: 1 1/2" all around +% +\addtolength{\textheight}{-3in} +\setlength{\topmargin}{.75in} +\setlength{\headsep}{.75in} +\setlength{\footskip}{.75in} +\addtolength{\textwidth}{-3in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1.5in} +\setlength{\marginparwidth}{1in} +\setlength{\marginparsep}{.25in} +% +\fi%@marginsize +% +%% Adjust \headsep to include height of running head. +% +\addtolength{\headsep}{-\headheight} +% +%% Adjust the vertical spacing between the main text and the notes, +%% and between successive notes if they are not single-spaced. +%% >> Added in v1.2 on 1998/10/20 by Francois Pitt. << %% +%% >> Changed in v1.3 on 1998/11/01 by Francois Pitt. << %% +% +\setlength{\skip\footins}{.75\baselineskip} +\if@singlespacednotes\else +\let\oldtextsize=\currenttextsize +\footnotesize +\setlength{\marginparpush}{\baselineskip} +\setlength{\footnotesep}{\baselineskip} +\oldtextsize +\fi%@singlespacednotes +% +%% Make each page fill up the entire page. +% +\flushbottom +% +%% Default page style. +% +\pagestyle{utthesis} +% +%% Default values for the required fields. +% +\degree{\mbox{}} +\department{\mbox{}} +\gradyear{\number\year} +\author{\mbox{}} +\title{\mbox{}} +% +%% ...\setcounter{tocdepth}{2}... +%% >> Removed in v1.5 on 1999/02/17 by Francois Pitt. << %% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% End of UT-THESIS.CLS +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- cgit v1.2.3