From 2f6026350d22bc89482851086f2d152e88847580 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:56:19 +0000 Subject: gatech-thesis git-svn-id: svn://tug.org/texlive/trunk@948 c570f23f-e606-0410-a88d-b1316a301751 --- .../latex/gatech-thesis/gatech-thesis-gloss.sty | 101 + .../latex/gatech-thesis/gatech-thesis-index.sty | 139 + .../tex/latex/gatech-thesis/gatech-thesis-losa.sty | 156 ++ .../latex/gatech-thesis/gatech-thesis-patch.sty | 12 + .../tex/latex/gatech-thesis/gatech-thesis.cls | 2930 ++++++++++++++++++++ 5 files changed, 3338 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-gloss.sty create mode 100644 Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-index.sty create mode 100644 Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-losa.sty create mode 100644 Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-patch.sty create mode 100644 Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis.cls diff --git a/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-gloss.sty b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-gloss.sty new file mode 100644 index 00000000000..0f7ba1ff3fc --- /dev/null +++ b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-gloss.sty @@ -0,0 +1,101 @@ +%% gatech-thesis-gloss.sty - support code for creating glossaries +%% depends on gloss.sty, so it is not included by default in the +%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies +%% +%% To use this package, all you need do is include +%% \usepackage{gatech-thesis-gloss} +%% \glossfiles{} +%% in your preamble, and the glossary will be automatically generated +%% and included in the frontmatter. Of course, you need actual +%% *entries* in the glossary file -- which must end in .bib -- and you +%% need actual citations to those entries within your bodytext, like this: +%% \gloss{key}. +%% Note that \gloss{} typesets the from the entry of +%% the glossfile within the text, so there''s no need to do this: +%% (BAD) word\gloss{keyforword} +%% Read the gloss.sty documentation for more info, but basically +%% gatech-thesis-gloss.sty makes it simple: +%% 1. insert the two commands above into your preamble +%% 2. create a glossfile with your glossary definitions +%% 3. sprinkle \gloss{} citations in your text +%% 4. run ``bibtex'' on the .gls.aux file created +%% after the first ``latex'' run. (But don''t include the +%% .aux extension. So say ``bibtex .gls'' You +%% can do this at the same time you run ``bibtex'' for your +%% references. +%% 5. run ``latex'' twice more +%% +\NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{gatech-thesis-gloss} + [2002/08/08 Glossary support for gatech-thesis.cls] +\@ifclassloaded{gatech-thesis}{}{ + PackageError{This style can only be used with the gatech-thesis class} +} +\RequirePackage[refpages]{gloss} + +\newif\ifglossarypage +\glossarypagetrue% why use this package if you're not going to USE it? + +\makegloss + +\newcommand{\glossfiles}[1]% + {\ifx\empty#1\empty\else\gdef\@glossfiles{#1}\fi} +\def\@glossfiles{} + +\newcommand{\gtglossname}{} +\newcommand{\glscontentlinestring}{} +\newcommand{\glspdfbookmarkstring}{} + +\newcommand{\setglossstring}[1]{% + \renewcommand{\gtglossname}{#1} + \renewcommand{\glossname}{\Makeuppercase{#1}} + \renewcommand{\glscontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\glspdfbookmarkstring}{#1} +} +% \setglossstring{List of Nomenclature}% ??? +\setglossstring{Glossary} + +\renewcommand{\glossheading}[1]{} % don't print subsection headings ("A", "B", ...) +\renewenvironment{glosslist} + {\begin{singlespaced}\begin{list}{\relax}{% + \def\makelabel##1{##1\hfil}% + \setlength{\labelsep}{1em}% + \setlength{\labelwidth}{\glosshang}% + \addtolength{\labelwidth}{-\labelsep}% + \setlength{\itemindent}{0em}% + \setlength{\leftmargin}{\glosshang}}} + {\end{list}\end{singlespaced}} + +\renewcommand\gls@section{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\glossname}% + \@mkboth{\scshape\MakeUppercase\glossname}% + {\scshape\MakeUppercase\glossname}% +} +\renewenvironment{thegloss} + {\gls@section + \def\+##1+{}% + \@beginparpenalty\@M}% + {\if@restonecol\twocolumn\fi% + \stopglosslist} + +\renewcommand{\do@glossarypage}{% + \ifglossarypage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \addvspace{\gt@tocentryskip@value} + \phantomsection% + \addcontentsline{toc}{chapter}{\glscontentlinestring} + \printgloss{\@glossfiles} + }% + \newpage + \fi +} diff --git a/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-index.sty b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-index.sty new file mode 100644 index 00000000000..61b9cd9d676 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-index.sty @@ -0,0 +1,139 @@ +%% gatech-thesis-index.sty - support code for creating an index +%% depends on index.sty, so it is not included by default in the +%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies. +%% It also depends on the multicol package. +%% +%% Note that index.sty is included in the ``camel'' package if you +%% are using MikTeX. +%% +%% To use this package, all you need do is include +%% \usepackage{gatech-thesis-index} +%% in your preamble, and +%% \gtindex +%% just after your vita section, but within the postliminary environment +%% of your bodytext. The, the index will be automatically +%% and included in the location specified, and added to the table of +%% contents. Of course, you need actual index references within your +%% main text like this: +%% foo\index{foo} +%% Read the index.sty documentation for more info, but basically +%% gatech-thesis-gloss.sty makes it simple: +%% 1. insert the \usepackage and \gtindex commands into your document +%% 2. sprinkle \index{} citations in your text +%% 3. run ``makeindex'' on the .idx file created +%% after the first ``latex'' run, like this: +%% makeindex -s gatech-thesis-index.ist .idx +%% This will create .ind (the gatech-thesis-index.ist +%% file is a format specification for the index). If you want +%% to customize the index format, copy gatech-thesis-index.ist to +%% ``myformat.ist'' and change the copy. Use ``-s myformat.ist'' +%% instead of gatech-thesis-index.ist. +%% You can run the makeindex command at the same time you run ` +%% `bibtex'' for your references and/or glossary. +%% 4. run ``latex'' twice more (the same ``twice more'' needed for +%% bibtex and gatech-thesis-gloss.sty) +%% +\NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{gatech-thesis-index} + [2002/08/08 Index support for gatech-thesis.cls] +\@ifclassloaded{gatech-thesis}{}{ + PackageError{This style can only be used with the gatech-thesis class} +} +\RequirePackage{index} +\RequirePackage{multicol} + +\newif\if@proofmode +\@proofmodefalse + +\DeclareOption{proofmode}{% + \if@draft % This is an internal gatech-thesis variable! + \@proofmodetrue % this is an internal index.sty variable + \else + \PackageWarn{option `proofmode' can't be used in 'final' mode.} + \@proofmodefalse + \fi +} +\DeclareOption{showidx}{% + \if@draft % This is an internal gatech-thesis variable! + \@proofmodetrue % this is an internal index.sty variable + \else + \PackageWarn{option `showidx' can't be used in 'final' mode.} + \@proofmodefalse + \fi +} +\ProcessOptions + +\newif\ifindexpage +\indexpagetrue% why use this package if you're not going to USE it? + +\if@proofmode + \proofmodetrue% pass option to index package +\else + \proofmodefalse% ditto +\fi + +\newcommand{\gtindexname}{} +\newcommand{\idxcontentlinestring}{} +\newcommand{\idxpdfbookmarkstring}{} + +\newcommand{\setindexstring}[1]{% + \renewcommand{\gtindexname}{#1} + \renewcommand{\indexname}{\Makeuppercase{#1}} + \renewcommand{\idxcontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\idxpdfbookmarkstring}{#1} +} +\setindexstring{Index} +% if you want to change the name of the index, do it in the preamble +% once the document begins, it''s too late. +\AtBeginDocument{% + \newindex{default}{idx}{ind}{Index} +} + +\renewenvironment{theindex}{% + \edef\indexname{\the\@nameuse{idxtitle@\@indextype}}% + \if@twocolumn + \@restonecolfalse + \else + \@restonecoltrue + \fi + \chapter*{\MakeUppercase{\gtindexname}} + \@mkboth{\scshape\MakeUppercase\indexname}% + {\scshape\MakeUppercase\indexname}% + \let\item\@idxitem + \columnseprule \z@ + \columnsep 35\p@ + \begin{multicols}{2}[% + \ifx\index@prologue\@empty\else + \index@prologue + \bigskip + \fi]% + \parindent\z@ + \parskip\z@ \@plus .3\p@\relax +}{\end{multicols}% + \if@restonecol + \onecolumn + \else + \clearpage + \fi +} + +\renewcommand{\do@indexpage}{% + \ifindexpage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}{\idxcontentlinestring} + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \printindex + }% + \newpage + \fi +} + +\newcommand{\gtindex}{\do@indexpage} +\newcommand{\bs}{\symbol{'134}}% print backslash +\newcommand{\gtCom}[1]{\texttt{\bs#1}\index{#1@\texttt{\bs#1}}} +\newcommand{\gtProg}[1]{\texttt{#1}\index{#1@\texttt{#1} program}} diff --git a/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-losa.sty b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-losa.sty new file mode 100644 index 00000000000..7b6cc1626f0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-losa.sty @@ -0,0 +1,156 @@ +%% gatech-thesis-losa.sty - support code for creating a 'List of +%% Symbols or Abbreviations" +%% +%% depends on gloss.sty, so it is not included by default in the +%% main gatech-thesis.cls (this cuts down on ``extra'' dependencies +%% +%% To use this package, all you need do is include +%% \usepackage{gatech-thesis-losa} +%% \losafiles{} +%% in your preamble, and the LOSA will be automatically generated +%% and included in the frontmatter. Of course, you need actual +%% *entries* in the glossary file -- which must end in .bib -- and you +%% need actual citations to those entries within your bodytext, like this: +%% \losa{key}. +%% Note that \losa{} typesets the from the entry of +%% the losafile within the text, so there''s no need to do this: +%% (BAD) word\losa{key-for-word} +%% Again, you should read the gloss.sty documentation for more info, but +%% basically gatech-thesis-losa.sty makes it simple: +%% 1. insert the two commands above into your preamble +%% 2. create a database with your glossary definitions +%% 3. sprinkle \losa{} citations in your text +%% 4. run ``bibtex'' on the .losa.aux file created +%% after the first ``latex'' run. (But don''t include the +%% .aux extension. So say ``bibtex .losa'' You +%% can do this at the same time you run ``bibtex'' for your +%% references. +%% 5. run ``latex'' twice more +%% +\NeedsTeXFormat{LaTeX2e}[1995/06/01] +\ProvidesPackage{gatech-thesis-losa} + [2002/08/08 List of Symbols support for gatech-thesis.cls] +\@ifclassloaded{gatech-thesis}{}{ + PackageError{This style can only be used with the gatech-thesis class} +} +\RequirePackage[refpages]{gloss} + +\newif\iflosapage +\losapagetrue % why use this package if you're not going to USE it? + +\newcommand{\losafiles}[1]% + {\ifx\empty#1\empty\else\gdef\@losafiles{#1}\fi} +\def\@losafiles{} + +\newcommand{\losaname}{} +\newcommand{\gtlosaname}{} +\newcommand{\losacontentlinestring}{} +\newcommand{\losapdfbookmarkstring}{} + +\newcommand{\setlosastring}[1]{% + \renewcommand{\gtlosaname}{#1} + \renewcommand{\losaname}{\Makeuppercase{#1}} + \renewcommand{\losacontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\losapdfbookmarkstring}{#1} +} +\setlosastring{List of Symbols or Abbreviations} + +\makegloss +\newgloss{losa}{.losa}{\losaname}{gatech-thesis-losa} +\newlength{\losahang} +\setlength{\losahang}{2cm} + +\newcommand\setlosagroup[1]{\@namedef{gls@group@#1}} +\newcommand{\losaheading}[1]{} % don't print subsection headings ("A", "B", ...) +\newcommand{\losagroup}[1]{% + \expandafter\losaheading\csname gls@group@#1\endcsname} + +% make the '\losa[otheroptions]{}' command a synonym for +% '\gloss[losa,otheroptions]{}' +\newcommand\losa{\protect\losa@gloss@i} +\def\losa@gloss@i{% + \@bsphack + \begingroup + \catcode`\ =9 + \@ifnextchar[{\losa@gloss@iia}{\losa@gloss@iib[]}} +\def\losa@gloss@iia[#1]{% + \endgroup + \gls@gloss@iii{losa,#1}} +\def\losa@gloss@iib[#1]{% #1 is empty + \endgroup + \gls@gloss@iii{losa}} + +% and alternate forms +\newcommand\Losa[1]{\losa[Word]{#1}} +\newcommand\onlylosa[1]{\losa[nocite]{#1}} + +\newenvironment{losalist} + {\begin{singlespaced}\begin{list}{\relax}{% + \def\makelabel##1{##1\hfil}% + \setlength{\labelsep}{1em}% + \setlength{\labelwidth}{\losahang}% + \addtolength{\labelwidth}{-\labelsep}% + \setlength{\itemindent}{0em}% + \setlength{\leftmargin}{\losahang}}} + {\end{list}\end{singlespaced}} + +\newenvironment{losaitem}[4]% + {\ifgls@list + \expandafter\let\expandafter\gls@thispage % relax if undefined + \csname glsp@\gls@name::#1\endcsname + \item[% + \gls@raisedlink{\hyper@anchorstart{\gls@name::#1}\hyper@anchorend}% + \gls@label{#2}{#3}{#4}]% + \begingroup + \let\protect\noexpand + \immediate\write\@auxout{% + \string\gls@cite{\gls@name::#1}{#2}{#3}{#4}}% + \endgroup + \else + \xdef\gls@a{\noexpand\begin{\@currenvir}}% + \endgroup + \begin{losalist}% + \gls@listtrue + \def\stopglosslist{\end{losalist}}% + \gls@a{#1}{#2}{#3}{#4}% + \fi + \ignorespaces} + {.\@@par} + +\expandafter\let\csname losaitem*\endcsname\losaitem +\expandafter\let\csname endlosaitem*\endcsname\@@par + +\newcommand\losa@section{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\losaname}% + \@mkboth{\scshape\MakeUppercase\losaname}% + {\scshape\MakeUppercase\losaname}% +} +\newenvironment{thelosa} + {\losa@section + \def\+##1+{}% + \@beginparpenalty\@M}% + {\if@restonecol\twocolumn\fi% + \stopglosslist} + +\renewcommand{\do@losapage}{% + \iflosapage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \addvspace{\gt@tocentryskip@value} + \phantomsection% + \addcontentsline{toc}{chapter}{\losacontentlinestring} + \printgloss[losa]{\@losafiles} + }% + \newpage + \fi +} diff --git a/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-patch.sty b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-patch.sty new file mode 100644 index 00000000000..0b39880b603 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis-patch.sty @@ -0,0 +1,12 @@ +\ProvidesFile{gatech-thesis-patch.sty}[2003/04/14 1.6a (Charles Wilson)] +\gtthesis@checkVersion{1.6} +{\typeout{^^J% + ***^^J% + *** This is a patch for `gatech-thesis.cls' version 1.6, but^^J% + *** you're using version \gtthesisversion.^^J% + ***^^J% + *** Patch file not loaded.^^J% + ***^^J}% + \endinput +} +\typeout{gatech-thesis-patch loaded} diff --git a/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis.cls b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis.cls new file mode 100644 index 00000000000..9a2687e909b --- /dev/null +++ b/Master/texmf-dist/tex/latex/gatech-thesis/gatech-thesis.cls @@ -0,0 +1,2930 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% GATECH-THESIS.CLS (v1.6) +%% Copyright (c) 2002 by Charles S. Wilson. All rights reserved. +%% See licensing information, below. +%% +%% Last Update: V1.6 (Apr 14, 2003) by Charles S. Wilson +%% +%% Heritage: +%% UT-THESIS.CLS (v1.8) +%% -- by Francois Pitt (1999 Dec 10) +%% -- as modified by Aichen Low, 2000 Jan 14 +%% GTthesis.sty +%% -- as adapated from suthesis.sty by Ahmed Gheith +%% -- and modified by Joonwon Lee, Eilin Tien Lin, Wei Lui +%% -- and as modified by Kalyan Perumalla, 1999 Nov 18 +%% gt-thesissty.sty +%% -- by Aichen Low, 2000 Jan 17 +%% +%% All of these sources were combined to produce a single, unified +%% class file for Georgia Tech PhD Theses. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\gtthesisversion}{1.6}% current version number +\newcommand{\gtthesisupdated}{2003/04/14}% date of last change(s) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This program is free software; you can redistribute it and/or +%% modify it under the terms of the GNU General Public License +%% as published by the Free Software Foundation; either version 2 +%% of the License, or (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program; if not, write to the Free Software +%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +%% +%% See the COPYING file for license information. +%% +%% Note that the files contained within ThesisProposal.tar.gz have +%% their own licence. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% REVISION HISTORY: +%% +%% v1.6: 2003-Apr-14 Charles S. Wilson +%% * caption labels: OGS requires (e.g.) 'Figure 2:' to be in +%% same font as rest of caption (bold ok, changing font not ok) +%% * make vita double-spaced +%% * fixed a bug in Signature page when no Committee Chair. Thanks +%% Arnaud Cottet for reporting it. +%% * Changed one-and-a-half spacing to better match the description +%% in The LaTeX Companion (use 1.25, not 1.33). +%% v1.5: 2002-Aug-17 Charles S. Wilson +%% * COMPLIANCE: new documentation +%% * caption labels: make them prettier +%% * Change gatech-thesis-gloss.sty to handle real glossaries; +%% * NEW: gatech-thesis-losa.sty now handles the List of Symbols +%% v1.4: 2002-Aug-03 Charles S. Wilson +%% * Better handling of equation, table, and figure numbering +%% (added David Carlisle's \@removefromreset macro, and use +%% that instead of the previous kludge.) +%% * Corrected problem with two-sided printing: the even-numbered +%% (left hand) page between the end of \preliminary and the +%% beginning of the first chapter was not printed. This really +%% messed up duplex printers. FIXED. +%% * Corrected problem when vita (or whatever the last section +%% before \end{postliminary}) was \included instead of \inputted. +%% * Signature page no longer prints empty lines for non-existent +%% committee members. Also, uses two columns if more than 4 +%% members, per the Graduate Office Guidelines. AND we no longer +%% print its page number +%% * Now uses (requires) the calc package, which is part of the +%% standard latex installation. +%% * Automatically center the dedication (but see the new functions +%% \dedicationtop and \dedicationbottom +%% * Correctly doublespace the title on both titlepage and signaturepage +%% * page numbering defaults to a centered footer, as per the new +%% Graduate Office guidelines +%% * Added proper handling for multiple volumes in a single thesis +%% * Added support for the add-on styles ``gatech-thesis-gloss.sty'' +%% and ``gatech-thesis-index.sty''. +%% v1.3: 2002-Jan-13 Charles S. Wilson +%% * Renamed to gatech-thesis at request of the CTAN folks. +%% v1.2: 2001-May-01 Charles S. Wilson +%% * Minor tweaks to conform to latest GSO requirements +%% v1.1: 2001-Apr-29 Charles S. Wilson +%% * Fixup to work nicely with pdflatex and hyperref +%% v1.0: 2001-Jan-24 Charles S. Wilson +%% * Initial release: merged UT-THESIS.STY with GTthesis.sty +%% and gt-thesissty.sty. +%% +%% KNOWN BUGS: +%% +%% - FIXED: (sortof) [On ``dedication'' and ``acknowledgements'' +%% causing an error when they both appear on the same page.] +%% GT style doesn't allow these to appear on the same page, +%% so \begin{dedication}...\end{dedication} will ALWAYS +%% appear on its own page. Ditto acknowledgements. +%% +%% - I didn't fix this; GATECH-THESIS.CLS has inherited this bug +%% from UT-THESIS.CLS: [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)! +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% The following notice and changelog is included to satisfy the +%% distribution requirements explained below, but much of it no +%% longer applies. GATECH-THESIS.CLS has been changed in major ways +%% from UT-THESIS.CLS... +%% +%% OLD: +%% OLD: This file is distributed in the hope that it will be useful but +%% OLD: without any warranty (without even the implied warranty of +%% OLD: fitness for a particular purpose). For a description of this +%% OLD: file's purpose, and instructions on its use, see below. +%% OLD: +%% OLD: Feel free to copy and redistribute this file, as long as this +%% OLD: copyright notice remains intact. You may also modify the file +%% OLD: to suit your particular needs, as long as you indicate your +%% OLD: changes below (and inform the original author of your changes: +%% OLD: he's always curious to know what people think of his work). +%% OLD: +%% OLD: Send all bugs, questions, comments, suggestions, etc. to the +%% OLD: author, at . +%% OLD: +%% OLD: KNOWN BUGS: (reported by Robert Bernecky) +%% OLD: +%% OLD: - [On missing page headers for float pages.] +%% OLD: ``teTex'' under Linux fails in precisely the same way as does +%% OLD: ``MikTeX'', so there's something clearly wrong somewhere, but +%% OLD: I don't know where. It only fails on odd-numbered pages (if +%% OLD: you remove enough text so that the page floats back to an +%% OLD: even-numbered page, the page header is correct)! +%% OLD: - [On ``dedication'' and ``acknowledgements'' causing an error when +%% OLD: they both appear on the same page.] +%% OLD: ``teTeX'' and ``MikTeX'' both fail the same way on this one, with +%% OLD: ``LaTeX error: Something's wrong--perhaps a missing \item. +%% OLD: Adding a \newpage between the two environments ``fixes'' the +%% OLD: problem. Unsure what causes this, but it could be a bug +%% OLD: common to all x86 platforms... +%% OLD: +%% OLD: REVISION HISTORY: +%% OLD: +%% OLD: v1.8: 1999/12/10 (Francois Pitt) +%% OLD: - Fixed circular definition problem with \currenttextsize +%% OLD: that caused TeX to run out of input stack memory. +%% OLD: v1.7: 1999/06/02,1999/05/20,1999/05/13 (Francois Pitt) +%% OLD: - Minor change to the format of the date printed on every +%% OLD: page with the ``draft'' option. +%% OLD: - Minor cosmetic change to the word ``DRAFT'' printed on the +%% OLD: corners of every page with the ``draft'' option. +%% OLD: - Made ``draft'' mode doublespaced by default (it just makes +%% OLD: more sense for actual drafts; suggested by Eric Joanis). +%% OLD: - Changed \currenttextsize from a ``\newcommand'' to a ``\let''. +%% OLD: - Added ``known bugs'' above. +%% OLD: v1.6: 1999/03/06 (Francois Pitt) +%% OLD: - Minor change: replaced ``\ifx\empty#1\else...\fi'' with +%% OLD: ``\ifx\empty#1\empty\else...\fi'' (the former works only +%% OLD: by accident while the latter is logically correct). +%% OLD: v1.5: 1999/02/17 (Francois Pitt) +%% OLD: - Fixed missing page numbers and headers by removing +%% OLD: redefinition of \cleardoublepage (reported by Robert +%% OLD: Bernecky 1999/02/04 and Nedialko Nedialkov 1999/02/12). +%% OLD: - Added \clearemptydoublepage and \clearplaindoublepage +%% OLD: commands. +%% OLD: - Removed redefinitions of \tableofcontents, \listoftables, +%% OLD: and \listoffigures because they already call \clearpage +%% OLD: or \cleardoublepage by default. +%% OLD: - Removed ``\setcounter{tocdepth}{2}'' from the page layout +%% OLD: section (moved to ``ut-thesis.tex'' where it belongs). +%% OLD: - Added \ignore command to comment out parts of a file. +%% OLD: - Put version macros at the top of the file. +%% OLD: - Changed order of revision comments. +%% OLD: v1.4: 1998/11/05 (Francois Pitt) +%% OLD: - Fixed ``abstract'' environment so that it is really put on a +%% OLD: separate page, and changed ``\newpage\endgroup'' at the end +%% OLD: to ``\par\endgroup\newpage'', which is more logical. +%% OLD: - Changed ``acknowledgements'' environment so that it is *not* +%% OLD: put on a separate page, allowing users to add other text +%% OLD: on that page (e.g., ``dedication'' described next). +%% OLD: - Added ``dedication'' environment based on ``acknowledgements'' +%% OLD: (suggested by Robert Bernecky 98/11/04). +%% OLD: - Changed page layout so that it is defined in terms of the +%% OLD: physical page size instead of being hard-coded for letter +%% OLD: paper (8.5" x 11"). +%% OLD: v1.3: 1998/11/01 (Francois Pitt) +%% OLD: - Fixed ``thebibliography'' so page headers are generated in +%% OLD: the same style as for the rest of the thesis. +%% OLD: - Swapped \endgroup and \newpage in definition of ``abstract'' +%% OLD: and ``acknowledgements'' environments, to fix problem with +%% OLD: adjusted line spacing in ``abstract''. +%% OLD: - Renamed ``\currentsize'' to ``\currenttextsize''. +%% OLD: - Added \cleardoublepage at the end of preliminary sections, +%% OLD: so that page 1 of main text is on right-hand side. +%% OLD: v1.2: 1998/10/20 (Francois Pitt) +%% OLD: - Changed ``spacenotes'' option to ``spacednotes'' to have more +%% OLD: consistently named options. +%% OLD: - Fixed spacing between main text and footnotes. +%% OLD: - Fixed ``singlespaced'' environment, which didn't seem to +%% OLD: work at all (reported by Nedialko Nedialkov 98/10/12): +%% OLD: Actually, created a ``newspacing'' environment, which takes +%% OLD: a parameter, and based ``singlespaced'', ``oneandahalfspaced'', +%% OLD: and ``doublespaced'' environments on ``newspacing''. +%% OLD: v1.1: 1998/10/01 (Francois Pitt) +%% OLD: - Fixed bug that caused footnotes to make following tables +%% OLD: single-spaced (reported by Philip Edmonds 98/09/30). +%% OLD: - Made spacing of marginal notes and footnotes the same. +%% OLD: - Added option to control line spacing of notes. +%% OLD: - Added options to control the size of margins. +%% OLD: - Changed names of temporary macros used in redefinitions +%% OLD: to avoid conflicts with existing names. +%% OLD: v1.0: 1998/09/29 (Francois Pitt) +%% OLD: - Initial version. +%% OLD: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% LaTeX2e class file for formatting documents according to the +%% Graduate Studies' guidelines for theses at the Georgia Institute +%% of Technology. +%% +%% USAGE: \documentclass{gatech-thesis} +%% \documentclass[...options...]{gatech-thesis} +%% +%% The default settings produce a final copy, ready for submission +%% (11pt 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'', +%% ``extrawidemargins'' or ``oldmargins'': Set the size of +%% the margins, as follows: +%% . ``normal'': 1 1/2" on left, 1" on top, right and bottom +%% headers & footers 1/4" from body; +%% - This is the Georgia Tech standard +%% . ``narrow'': 1 1/4" on the left, 3/4" on all other sides, +%% headers & footers 1/4" 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. +%% . ``oldmargins'': 1 1/2" on left and top, 1" on right and bottom +%% headers & footers 1/2 from body; +%% adds 2"" extra space from top of page, on the first +%% page of a chapter or appendix. +%% - This is the OLD Georgia Tech standard +%% (If you have more than just a few marginal notes, it is +%% recommended that you use ``wide'' or ``extrawide'' margins.) +%% Use ``normalmargins'' (the default) for the approved GT format. +%% +%% - ``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, and current date printed in +%% a running footer). +%% +%% - ``hyperref'': Indicates that the document will \usepackage{hyperref}. +%% This is a kludge, but I didn't want to explicitly *require* +%% hyperref, so we must indicate to gatech-thesis.cls whether it should +%% define certain hyperref commands as dummies. ALWAYS use this +%% option if you use the hyperref package. NEVER use this option if +%% you do not also use the hyperref package. +%% +%% 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 (totally blank inserted pages), +%% \clearplaindoublepage (blank except for page number at bottom), or +%% \cleartcplainfdoublepage (blank except for page number at Top +%% Corner (hence, TCplain). You can also explicitly use +%% \cleargtthesisdoublepage (but I don't know why you would, since this +%% only makes sense if the current pagestyle is already gtthesis, and +%% if that is the case then you're better off just using \cleardoublepage. +%% +%% NEW ENVIRONMENTS and COMMANDS: +%% in some cases, there will be two commands with identical +%% effect. These are usually because one is needed to maintain +%% compatibility with documents that expect the old macros from +%% GTthesis.sty. +%% +%% * \title{...}: (preamble only; REQUIRED) +%% +%% * \author{...}: (preamble only; REQUIRED) +%% Specify the name of the author. +%% +%% * \department{...}: (preamble only; REQUIRED) +%% * \dept{...}: compatibility synonym +%% Specify the name of the graduate department. +%% +%% * \degree{...}: (preamble only; REQUIRED) +%% Specify the name of the degree (e.g., "Doctor of Philosophy"). +%% +%% * \gradyear{...}: (preamble only; REQUIRED) +%% * \copyrightyear{...}: compatibility synonym +%% Specify the year of graduation (defaults to current year). +%% +%% * \principaladvisor{...}: (preamble only; OPTIONAL) +%% (or \principaladviser{...}, if you prefer advisor spelled with an e) +%% +%% * \committeechair{...}: (preamble only; OPTIONAL) +%% +%% * \firstreader{...}: (preamble only; OPTIONAL) +%% * \secondreader{...}: (preamble only; OPTIONAL) +%% * \thirdreader{...}: (preamble only; OPTIONAL) +%% * \fourthreader{...}: (preamble only; OPTIONAL) +%% * \fifthreader{...}: (preamble only; OPTIONAL) +%% * \sixthreader{...}: (preamble only; OPTIONAL) +%% +%% * \submitdate{month year in which submitted} +%% date is LaTeX'd if not specified +%% +%% * \titlepagetrue or \titlepagefalse +%% - produce or don't produce a title page (TRUE by default) +%% +%% * \signaturepagetrue or \signaturepagefalse +%% - produce or don't produce a signature page (TRUE by default) +%% +%% * \copyrighttrue or \copyrightfalse +%% - place or don't place a copyright notice on the title page (FALSE by default) +%% +%% * \figurespagetrue or \figurespagefalse +%% - produce or don't produce a List of Figures page (TRUE by default) +%% +%% * \tablespagetrue or \tablespagefalse +%% - produce or don't produce a List of Tables page (TRUE by default) +%% +%% * \contentspagetrue or \contentspagefalse +%% - produce or don't produce a Table of Contents page (TRUE by default) +%% +%% * \bibpagetrue or \bibpagefalse +%% - produce or don't produce a Bibliography page (TRUE by default) +%% +%% * \thesisproposaltrue or \thesisproposalfalse +%% - indicate "Thesis Proposal" or "Thesis" on the title page (FALSE by default) +%% +%% * \dedicationheadingtrue or \dedicationheadingfalse +%% - display ``DEDICATION'' heading on the dedication page (FALSE by default) +%% +%% * \dedicationtop and \dedicationbottom +%% - The Graduate Office Guidelines say that the dedication should be centered +%% on the page. By default, this is done -- but IMO it looks ugly. The +%% vertical spacing above and below your text is proided by these two +%% macros; redefined them if you want to do something different. E.g. +%% this looks nice: +%% \renewcommand{\dedicationtop}{\vspace*{\stretch{1}} +%% \renewcommand{\dedicationbottom{\vspace*{\stretch{3}} +%% which places the dedication about 1/4 of the way down the page. +%% +%% * \strictmarginstrue or \strictmarginsfalse +%% - if true, then obey the margin rules EVEN on the title and signature +%% page. Default TRUE and REQUIRED by Graduate Studies Office, but +%% not very appealing. (under ``oldmargins'' an extra 50p spacing is +%% added so that the title page looks like the chapter headings +%% In any case, \strictmarginsfalse looks better for personal copies +%% but \strictmarginstrue is necessary for official ones. +%% +%% * \multivolumetrue or \multivolumefalse +%% - if true, indicates that the thesis will span multiple volumes. +%% triggers automatic generation of the first volume title page +%% (in addition to the ``entire work'' title page), but it's up +%% to you to place the ``part{}'' commands in the appropriate +%% locations for volume 2, volume 3, etc. +%% +%% * \bibfiles{...} +%% Set the list of bibfiles to use when generating a bibliography +%% +%% - \linespacing{...}: (preamble only) +%% - \spacing{...}: compatibility synonym +%% 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.25}, and +%% double-spaced = \linespacing{1.66}). +%% +%% - ignore{...}: +%% - comment{...}: compatibility synonym +%% Ignore the part of the file between { and } (can include +%% paragraph breaks); useful for commenting out large blocks. +%% +%% - \clearemptydoublepage, \clearplaindoublepage, +%% \cleartcplaindoublepage, \cleargtthesisdoublepage +%% Same as \cleardoublepage except that it sets the pagestyle of +%% any inserted blank page to ``empty'' ``plain'' ``tcplain'' or +%% ``gtthesis'' 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. +%% + Alternatively, at the appropriate spots call the synonums +%% \beforepreface and \afterpreface. These ``synonyms'' do +%% the same setup tasks as \begin{preliminary} and \end{preliminary}, +%% but they don't create an ``environment. The use of these +%% synonyms is NOT recommended for new documents and are provided +%% only for backward compatibility. +%% +%% - \beforepreface: +%% Sets pagestyle and generates titlepage (via \maketitle) +%% and signature page (via \makesignature) if indicated. +%% DON'T call directly in new documents. Use \begin{preliminary} +%% instead. +%% +%% - \afterpreface: +%% Sets pagestyle back to normal, restarts page numbering +%% DON'T call directly in new documents. Use \end{preliminary} +%% instead. +%% +%% - \maketitle: +%% Generate the title page from the information supplied +%% in the preamble. Called automatically by \begin{preliminary} +%% or \beforepreface. +%% +%% - \makesignature: +%% Generate a signature page from information supplied +%% in the preamble. Called automatically by \begin{preliminary} +%% or \beforepreface. +%% +%% - \begin{dedication}...\end{dedication}: +%% Generate a dedication section, if needed. +%% +%% - \begin{acknowledgements}...\end{acknowledgements}: +%% Generate an acknowledgements section, if needed. +%% +%% - \begin{abstract}...\end{abstract}: +%% Generate the abstract page. +%% +%% - \begin{summary}...\end{summary}: +%% Generate a summary page (same as abstract, but different +%% heading) +%% +%% - \begin{preface}...\end{preface}: +%% Generate a preface section, if needed. +%% +%% - \prefacesection{other-title}{...text...} +%% Used to specify frontmatter sections that do not have +%% custom environments defined for them above. +%% +%% - \contents +%% Prints table of contents, list of figures, and list of +%% tables as indicated by \contentspagetrue, \figurespagetrue, +%% and \tablespagetrue +%% +%% - Modifying the look of the Table of Contents: +%% +%% + \labelchaptersintableofcontents +%% inserts an entry into the TOC that says ``CHAPTERS'' just +%% before Chapter 1. +%% +%% + \labelappendicesintableofcontents +%% inserts an entry into the TOC that says ``APPENDICES'' just +%% before Appendix A. +%% +%% + \settocstring +%% change the name used for the Table of Contents (def: 'Table of Contents') +%% +%% + \setlofstring +%% change the name used for the List of Figures (def: 'List of Figures') +%% +%% + \setlotstring +%% change the name used for the List of Tables (def: 'List of Tables') +%% +%% + \setchaptertocdepth +%% set the default for how ``deep'' to number within chapters +%% in the table of contents. +%% +%% + \setappendixtocdepth +%% set the default for how ``deep'' to number within appendices +%% (chapter{}'s after the \appendix command) in the table of +%% contents +%% +%% + \settocdepth +%% temporarily change how "deep" to number in the table of +%% contents for current chapter/section. For example, you +%% usually include \section{}'s in the TOC (\setchaptertocdepth{1}) +%% but in chapter 5 you want to include subsection as well: +%% \chapter{This is Chapter 5}\settocdepth{2}. In cahapter 6 the +%% default depth of 1 is reasserted. +%% +%% You should never need to call \setcounter{tocdepth}{..} directly. +%% 0 = chapter only +%% 1 = chapter + sections +%% 2 = chapter, section, subsection +%% 3 = chapter, section, subsection, subsubsection +%% +%% OLD recommended structure (GTthesis.sty) for frontmatter: +%% \begin{document} +%% \beforepreface +%% \prefacesection{Dedication}dedication text... +%% \prefacesection{Preface}preface text... +%% \prefacesection{Acknowledgements}acknowledgement text... +%% \contents % print table of contents, figures and tables here. +%% \prefacesection{Summary}summary text +%% \afterpreface +%% +%% NEW recommended structure for frontmatter: +%% \begin{document} +%% \begin{preliminary} +%% \begin{dedication}...\end{dedication} +%% \begin{preface}...\end{preface} +%% \begin{acknowledgements}...\end{acknowledgements} +%% \contents +%% \begin{summary}...\end{summary} +%% \end{preliminary} +%% +%% The old method still works, but the new method is preferred +%% for new documents. +%% +%% - \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.) +%% +%% - \appendix: a global mode switch (just like the report class). +%% changes the way ``chapter'' headings and TOC entries are +%% generated. +%% \chapter{last chapter titled}... +%% \appendix +%% \chapter{first appendix title}... +%% +%% - \begin{postliminary}...\end{postliminary}: +%% Delimit end matter (bibliography, vita, etc). +%% + Alternatively, call the synonyms +%% \beforepostface and \afterpostface instead. These +%% synonyms are provided for backward compatibility with +%% GTthesis.sty; their use is not recommended for new documents. +%% +%% - \beforepostface: +%% Not recommended for new documents. Use \begin{postliminary} +%% instead +%% +%% - \afterpreface: +%% Not recommended for new documents. Use \end{postliminary} +%% instead +%% +%% - \begin{vita}...\end{vita}: +%% Generate a vita page +%% +%% - \references: +%% Generate bibliography if indicated by bibliographytrue +%% NOTE: you must set \bibpagetrue AND \bibfiles{file1,file2,...} +%% in the preample, AND you must set \bibliographystyle{...} just +%% after \begin{document}. Otherwise \references won't work. +%% +%% - \postfacesection{other-title}{...text...} +%% Used to specify endsections that do not have +%% custom environments defined for them above. +%% +%% OLD recommended structure (GTthesis.sty) for endmatter: +%% \beforepostface +%% \postfacesection{Vita}vita text... +%% \afterpostface +%% +%% NEW recommended structure for frontmatter: +%% \begin{postliminary} +%% \references +%% \begin{vita}...\end{vita} +%% \end{postliminary} +%% +%% The old method still works, but the new method is preferred +%% for new documents. +%% +%% - Modifying the look of the document +%% +%% + \setbodypagestyle{x}, where x = plain, empty, headings, +%% myheadings, gtthesis, or tcplain. plain is the default). +%% + \setfrontpagestyle{x} - set pagestyle for frontmatter +%% + \setbackpagestyle{x} - set pagestyle for endmatter +%% +%% - The Graduate Studies Office approved pagestyle is +%% plain for the body, as well frontmatter and endmatter +%% (However, pages are numbered with roman numberals in +%% the frontmatter and automatically switch to arabic +%% numbers in the body and endmatter, as required by GSO. +%% Don't try to change the pagenumbering style). However: +%% - gtthesis adds a running header on each page identifying +%% the Chapter (and Section for twopage layouts). This +%% is a nice touch IMO for the body and endmatter, but +%% use it ONLY for personal copies. +%% - note that you also need to add \pagestyle{gtthesis} +%% if you use \setbodypagestyle{gtthesis}. +%% +%% + Chapter headings and the TOC use ROMAN numerals, but +%% the running headers at the top of each page use ARABIC +%% numbers for the Chapter number. Thus, there are two +%% separate formats that are used. +%% +%% - \thegtchapter is used for ROMAN chapter numbers +%% - \thechapter is used for ARABIC chapter numbers +%% +%% If you wish all chapter headings to use ROMAN, then just +%% redefine \thechapter in your document: +%% \renewcommand{\thechapter}{\thegtchapter} +%% Do the reverse for all ARABIC chapter numbers: +%% \renewcommand{\thegtchapter}{\thechapter} +%% +%% This archive provides two different examples of use -- the +%% companion file ``gatech-thesis.tex'' contains a skeleton +%% illustrating the use of this class. In addition, the jules-verne* +%% companion files contain a more lengthy, multi-file example. +%% Finally, a much abbreviated version of gatech-thesis.txt +%% appears directly below, in this file. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Example of use: +%% \documentclass[11pt,twopage,oneandahalfspaced,normalmargins]{gatech-thesis} +%% +%% (Then, use the following commands for various thesis elements, as follows) +%% +%% \title{How to Write Theses\\ +%% With Two Line Titles} +%% \author{John Henry Candidate} +%% \bibfiles{litserch,oodb} +%% \principaladviser{John Parker} +%% \committeechair{Jack Sprat} +%% \firstreader{John Green} +%% \secondreader{John BigBooty\\(Another Department)} +%% \thirdreader{...} +%% \fourthreader{...} +%% \department{School of Electrical and Computer Engineering} +%% \degree{Doctor of Philosophy} +%% \copyrightyear{2001} +%% \thesisproposalfalse +%% \contentspagetrue +%% \figurespagetrue +%% \tablespagefalse +%% \bibpagetrue +%% \titlepagetrue +%% \dedicationheadingfalse +%% \signaturepagetrue +%% \submitdate{January 2001} +%% +%% \begin{document} +%% \bibliographystyle{gatech-thesis} +%% \begin{preliminary} +%% \begin{preface} +%% This thesis tells you all you need to know about... +%% \end{preface} +%% \contents % print table of contents, figures and tables here. +%% \begin{acknowledgements} +%% I would like to thank... +%% \end{acknowledgements} +%% \end{preliminary} +%% \chapter{Introduction} +%% ... +%% \chapter{Conclusions} +%% ... +%% \appendix +%% \chapter{A Long Proof} +%% ... +%% \begin{postliminary} +%% \references +%% \postfacesection{Index}{% +%% ... generate an index here +%% } +%% \begin{vita} +%% ... was born in ... +%% \end{vita} +%% \end{postliminary} +%% \end{document} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%% IDENTIFICATION %%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{gatech-thesis} + [\gtthesisupdated\space\gtthesisversion\space(Charles Wilson)]% +\RequirePackage{calc}% part of LaTeX tools bundle + +\def\gtthesis@checkVersion#1{\edef\reserved@a{#1}% + \ifx \gatechthesis@version \reserved@a + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi} +\xdef\gatechthesis@version{\gtthesisversion} + +%%%%%%%%%%%% INITIAL CODE %%%%%%%%%%%% + +%% To comment out parts of a file. +% +\newcommand{\ignore}[1]{} +\newcommand{\comment}[1]{} + +%% Switch for testing draft mode (toggled by ``draft'' option). +% +\newif\if@draft +\@draftfalse % initially false by default + +%% Switch for testing current page style. +% +\newif\if@tcpage + % no default value (set by \pagestyle) + % indicates that page numbers are in the upper corners + +%% Switch for testing line spacing of notes. +% +\newif\if@singlespacednotes +\@singlespacednotestrue % initially true by default + +%% Switch for testing the hyperref option +% +\newif\if@hyperref +\@hyperreffalse % initially false by default + +%% Macro for testing the size of margins. +% +\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. +% +\DeclareOption{draft}{\@drafttrue + \typeout{Gatech-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. +% +\DeclareOption{spacednotes}{\@singlespacednotesfalse} + +%% Margin options: change the size of margins. +%% choose normalmargins option for Georgia Tech thesis format +% +\DeclareOption{narrowmargins}{\renewcommand{\@marginsize}{0}} +\DeclareOption{normalmargins}{\renewcommand{\@marginsize}{1}} +\DeclareOption{widemargins}{\renewcommand{\@marginsize}{2}} +\DeclareOption{extrawidemargins}{\renewcommand{\@marginsize}{3}} +\DeclareOption{oldmargins}{\renewcommand{\@marginsize}{4}} + +%% 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.25}} +\DeclareOption{doublespaced}{\renewcommand{\@thesislnsp}{1.66}} + +%% STUPID HACK for hyperref, \@chapter, and \MakeUppercase +% +\newcommand{\Makeuppercase}[1]{\MakeUppercase{#1}} +\DeclareOption{hyperref}{% + \@hyperreftrue +% \renewcommand{\Makeuppercase}[1]{% +% \ifHy@pdfstring#1\else\MakeUppercase{#1}\fi} +} + +%% All other options are passed to the base class directly. +% +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} + + +%%%%%%%%%%%% OPTION EXECUTION %%%%%%%%%%%% + +%% Default settings. +% +\ExecuteOptions{11pt,letterpaper,oneside,% +openright,doublespaced,normalmargins,final} +% +%% Process options. +% +\ProcessOptions + + +%%%%%%%%%%%% PACKAGE LOADING %%%%%%%%%%%% + +%% Load base class using current setting for basic options. +% +\LoadClass[\@thesisptsz,\@thesisside,\@thesisopen]{report} + + +%%%%%%%%%%%% MAIN CODE %%%%%%%%%%%% + +\if@hyperref +\else + \newcommand{\phantomsection}{}% helps with hyperref. \phantomsection +% is provided by pdflatex, but not latex. + \newcommand{\texorpdfstring}[2]{#1}% + \def\pdfbookmark[#1]#2#3{}% +\fi + +%%%%%% Line Spacing +% +%% \linespacing is used to define the default line spacing. +%% for the entire document. If the argument is less than +%% 1.25 (for 1.5-spaced) a warning message is displayed +%% when not in draft mode. +%% +%% Don't use this command for temporary, localized changes. +%% Instead, use the ``spacing environments'': +%% \begin{singlespace} ...\end{singlespaced} +%% \begin{oneandahalfspaced}...\end{oneandahalfspaced} +%% \begin{doublespaed} ...\end{doublespaced} +%% \begin{longquote} ...\end{longquote} +%% \begin{longquotation} ...\end{longquotation} +%% \begin{newspacing}{x.xx} ...\end{newspacing} +% +\newcommand{\linespacing}[1]{% + \gdef\@spacing{#1} + \newlinestretch{#1}\if@draft\else\ifdim #1pt < 1.25pt\typeout + {Gatech-Thesis Class Warning: line spacing less than 1 1/2}\fi\fi +} +% +%% \spacing is a clone of \linespacing, retained for backwards +%% compatibility with GTthesis.sty +% +\newcommand{\spacing}[1]{% + \gdef\@spacing{#1} + \newlinestretch{#1}\if@draft\else\ifdim #1pt < 1.25pt\typeout + {Gatech-Thesis Class Warning: line spacing less than 1 1/2}\fi\fi +} +\def\@spacing{1.66} + +% +%% ``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}} +\newenvironment{singlespaced}% + {\begin{newspacing}{1}}{\end{newspacing}} +\newenvironment{oneandahalfspaced}% + {\begin{newspacing}{1.25}}{\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. +% +\newcommand{\newlinestretch}[1]% + {\renewcommand{\baselinestretch}{#1}\currenttextsize} + +% +%% To keep track of the current text size. +% +\let\currenttextsize=\normalsize +% +%% Redefine size-changing commands to update \currenttextsize. +% +\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. +% +\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 +%% (roman numeral format ) for the preliminary sections; +%% It also calls \beforepreface to create the title page +%% and signature page if indicated by \titlepagetrue and/or +%% \signaturepageture. +%% +%% \end{preliminary} resets the pagenumbering. To start page +%% numbering in arabic format, use \pagestyle{plain} and +%% \pagenumbering{arabic} after the preliminary environment block +% +\newenvironment{preliminary}% + { + \newlinestretch{1.0}% + \pagenumbering{roman}% + \pagestyle{\front@pagestyle}% + \iftitlepage% + \maketitle% + \fi% + \ifmultivolume% + \part{}% + \fi% + \ifsignaturepage% + \makesignature% + \fi% + \newlinestretch{\@spacing}% + }% + {% + \if@draft% + \else% + \if@twoside% + \if@openright% + \cleardoublepage% + \fi% + \fi% + \fi% + \newpage% + \pagenumbering{arabic}% + \pagestyle{\body@pagestyle}% + \newlinestretch{\@spacing}% + }% + +%%%%%% Front Matter Parameters +% +%% The following commands set the respective field values so we +%% can generate the title page, signature page, and abstract +%% page automatically +% +\renewcommand{\author}[1]% + {\ifx\empty#1\empty\else\gdef\@author{#1}\fi} +\renewcommand{\title}[1]% + {\ifx\empty#1\empty\else\gdef\@title{#1}\fi} + +\newcommand{\degree}[1]% + {\ifx\empty#1\empty\else\gdef\@degree{#1}\fi} +% +%% Is this a thesis, or a thesis proposal ? +% +\newif\ifthesisproposal +\thesisproposalfalse % default to thesis, not thesis proposal +% +%% \department and \dept are synonymous +% +\newcommand{\department}[1]% + {\ifx\empty#1\empty\else\gdef\@department{#1}\gdef\@dept{#1}\fi} +\newcommand{\dept}[1]% + {\ifx\empty#1\empty\else\gdef\@department{#1}\gdef\@dept{#1}\fi} +% +%% date stuff +%% \gradyear and \copyrightyear are synonymmous +% +\newcommand{\gradyear}[1]% + {\ifx\empty#1\empty\else\gdef\@gradyear{#1}\gdef\@copyrightyear{#1}\fi} +\newcommand{\copyrightyear}[1]% + {\ifx\empty#1\empty\else\gdef\@gradyear{#1}\gdef\@copyrightyear{#1}\fi} +\newcommand{\submitdate}[1]% + {\ifx\empty#1\empty\else\gdef\@submitdate{#1}\fi} +% +%% use \principaladviser{} or \principaladvisor{}. Choice also +%% sets the default spelling of ``advisor/adviser''. +% +\def\advis@r{Advisor} % default spelling +\newcommand{\principaladvisor}[1]% + {\ifx\empty#1\empty\else\gdef\@principaladvisor{#1}\fi} +\newcommand{\principaladviser}[1]% + {\ifx\empty#1\empty\else\gdef\@principaladvisor{#1}\gdef\advis@r{Adviser}\fi} +% +%% Committee Chair +% +\newcommand{\committeechair}[1]% + {\ifx\empty#1\empty\else\gdef\@committeechair{#1}\fi} +% +%% readers +% +\newcommand{\firstreader}[1]% + {\ifx\empty#1\empty\else\gdef\@firstreader{#1}\fi} +\newcommand{\secondreader}[1]% + {\ifx\empty#1\empty\else\gdef\@secondreader{#1}\fi} +\newcommand{\thirdreader}[1]% + {\ifx\empty#1\empty\else\gdef\@thirdreader{#1}\fi} +\newcommand{\fourthreader}[1]% + {\ifx\empty#1\empty\else\gdef\@fourthreader{#1}\fi} +\newcommand{\fifthreader}[1]% + {\ifx\empty#1\empty\else\gdef\@fifthreader{#1}\fi} +\newcommand{\sixthreader}[1]% + {\ifx\empty#1\empty\else\gdef\@sixthreader{#1}\fi} + +% +%% bibliography databases +% +\newcommand{\bibfiles}[1]% + {\ifx\empty#1\empty\else\gdef\@bibfiles{#1}\fi} + +% +%% default values of private functions +% +\def\@title{} +\def\@author{} +\def\@bibfiles{} +\def\@principaladvisor{} +\def\@committeechair{} +\def\@firstreader{} +\def\@secondreader{} +\def\@thirdreader{} +\def\@fourthreader{} +\def\@fifthreader{} +\def\@sixthreader{} +\def\@submitdate{\ifcase\the\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\the\year} +\def\@copyrightyear{\number\the\year} +\def\@bibfiles{} + +%% Switch for printing copyright notice on titlepage +% +\newif\ifcopyright +\copyrightfalse % initially false by default + +%% Switch for generating a title page +% +\newif\iftitlepage +\titlepagetrue % initially true by default + +%% Switch for generating a signature page +% +\newif\ifsignaturepage +\signaturepagetrue % initially true by default + +%% Switch for generating a list of figures +% +\newif\iffigurespage +\figurespagetrue % initially true by default + +%% Switch for generating a list of tables +% +\newif\iftablespage +\tablespagetrue % initially true by default + +%% Switch for generating a table of contents +% +\newif\ifcontentspage +\contentspagetrue % initially true by default + +%% Switch for generating a bibliography +% +\newif\ifbibpage +\bibpagetrue % initially true by default + +%% Switch to indicate whether chapters are \input{}'ed or +%% \include{}'ed. Not currently used. +% +\newif\ifusinginclude +\usingincludefalse % initially false by default -- document uses \input{} + +%% Switch for relaxing the strict margin requirements +%% on the title page and signature page. Default is to +%% rigidly adhere to the standard (but that's ugly) +% +\newif\ifstrictmargins +\strictmarginstrue % initially true by default + +%% Switch for printing DEDICATION across the top of the dedication page +% +\newif\ifdedicationheading +\dedicationheadingfalse % initially false by default + +%% Switch for indicating that the thesis has multiple volumes +% +\newif\ifmultivolume +\multivolumefalse % initially false by default + +%%%%%% Front Matter Commands and Environments +%% +%% \beforepreface +%% --- create title, signature page +%% --- redefined the \maketitle command here, but +%% don't call it directly. Use \beforepreface. +%% +%% \begin{dedication}...\end{dedication} +%% \begin{preface}...\end{preface} +%% \begin{acknowledgements}...\end{acknowlegments} +%% \prefacesection{other-title} +%% --- followed by section text +%% \contents +%% --- prints table of contents, figures, and tables +%% \begin{abstract}...\end{abstract} or use +%% \begin{summary}...\end{summary} +%% \afterpreface + +\newcommand{\title@top}{% +% make sure that linestretch is already set to 1, and all +% grouping/sectioning commands have already been begun. + \ifstrictmargins + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + \begin{center}% + \begin{doublespaced}% + {\Large\bfseries\expandafter{\@title}}\\ + \end{doublespaced}% + \end{center}% + \else% + \begin{center} +% \vspace*{\stretch{1}} + \vspace*{1in} + \begin{doublespaced} + {\Large\bfseries\expandafter{\@title}} + \end{doublespaced} + \end{center}% + \fi% +} + +\newcommand{\title@text}{ + \begin{center} + \ifthesisproposal + A Thesis Proposal\\ + Presented to\\ + The Academic Faculty\\ + \else + A Thesis\\ + Presented to\\ + The Academic Faculty\\ + \fi + \ \\ + by\\ + \ \\ + {\Large\bfseries{\@author}}\\ + \vspace*{1.1in} + In Partial Fulfillment \\ + of the Requirements for the Degree \\ + {\@degree}\\ + \vfill + {\@department}\\ + Georgia Institute of Technology\\ + {\@submitdate}% + \ifcopyright + \\ \vspace*{.3in}% one line + 0.3in + Copyright \copyright\ {\@copyrightyear} by {\@author} + \fi + \end{center} +} + +\newcommand{\make@parttitle}[1]{%if argument is present, it's the part title + \begingroup + \newlinestretch{1}% + \phantomsection% + \title@top + \ifstrictmargins + \vspace*{0.5in} + \begin{center} + \begin{doublespaced}{\Huge\bfseries% + \expandafter{\Makeuppercase{\partname}\space\Makeuppercase{\thepart}}\\ + \ifx\@empty#1\@empty\else% + \expandafter{#1}\\ + \fi% + }\end{doublespaced} + \ \\ + by\\ + \ \\ + {\Large\bfseries{\@author}}\\ + \end{center}% + \vfill + \else% + \vspace*{0.5in} + \begin{center} + \begin{doublespaced}{\Huge\bfseries% + \expandafter{\Makeuppercase{\partname}\space\Makeuppercase{\thepart}}\\ + \ifx\@empty#1\@empty\else% + \expandafter{#1}\\ + \fi% + }\end{doublespaced} + \vspace*{1.35in} + \ \\ + by\\ + \ \\ + {\Large\bfseries{\@author}}\\ + \end{center}% + \vfill + \fi% + \endgroup% +}%makeparttitle + +\renewcommand{\maketitle}{% + %\interlinepenalty \@M + \normalfont + \begingroup + \newlinestretch{1}% + \begin{titlepage}% + \phantomsection% + \pdfbookmark[0]{Titlepage}{title}% + \title@top% + \ifstrictmargins% + \vfill + \title@text% contains a \vfill between \degree and \department + \else% + \vfill%\vspace*{1.35in} + \title@text% contains a \vfill between \degree and \department + \vspace*{.2in}% + \fi% + \setcounter{page}{1}% + \end{titlepage}% this has a \newpage + \endgroup% + \setcounter{page}{2}% +}%maketitle + + +% +%% Change \begin{abstract}...\end{abstract} to follow guidelines +%% and put the abstract on a separate page (checking @openright). +% +\renewenvironment{abstract}{% + \typeout{***************** Abstract ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Abstract}}{Abstract}} + \chapter*{\MakeUppercase{Abstract}} + \vskip 0.5in + \begingroup + \hspace*{2.5em} + %% 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.25pt \newlinestretch{1.25}\else + \ifdim \baselinestretch pt < 1.66pt \newlinestretch{1.66}\fi\fi +}{\par\endgroup}%abstract +% +%% \begin{summary}...\end{summary} formats a +%% summary section (identical to an abstract section, +%% except that the title is ``SUMMARY'') +% +\newenvironment{summary}{% + \typeout{***************** Summary ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Summary}}{Summary}} + \chapter*{\MakeUppercase{Summary}} + \vskip 0.5in + \begingroup + \hspace*{2.5em} + %% 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.25pt \newlinestretch{1.25}\else + \ifdim \baselinestretch pt < 1.66pt \newlinestretch{1.66}\fi\fi +}{\par\endgroup}%summary +% +%% \begin{dedication}...\end{dedication} formats a +%% dedication section +% +\newcommand{\dedicationtop}{\vspace*{\stretch{1}}} +\newcommand{\dedicationbottom}{\bigskip\bigskip\vspace*{\stretch{1}}} +\newenvironment{dedication}{% + \typeout{***************** Dedication ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Dedication}}{Dedication}} + \ifdedicationheading + \chapter*{\MakeUppercase{Dedication}} + \else + \chapter*{} + \fi + \vskip 0.5in + \begingroup + \begin{itshape}\dedicationtop +}{\dedicationbottom\end{itshape}\par\endgroup}%dedication +% +%% \begin{acknowledgements}...\end{acknowledgements} formats an +%% acknowledgements section +% +\newenvironment{acknowledgements}{% + \typeout{***************** Acknowledgements ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Acknowledgements}}{Acknowledgements}} + \chapter*{\MakeUppercase{Acknowledgements}} + \vskip 0.5in + \begingroup +}{\par\endgroup}%Acknowledgements +% +%% \begin{preface}...\end{preface} formats an +%% preface section +% +\newenvironment{preface}{% + \typeout{***************** Preface ******************} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Preface}}{Preface}} + \chapter*{\MakeUppercase{Preface}} + \vskip 0.5in + \begingroup +}{\par\endgroup}%preface + +% +%% stuff to generate a signature page +% +\newlength{\signature@width} +\setlength{\signature@width}{3.3in} +\let\signature@body\signature@bodyonecol +\newcounter{signatures} +\newcounter{cnt@Lsig} +\newcounter{cnt@Rsig} +\def\R@signatures{} +\def\L@signatures{} + +% Fun stuff from the TeXbook +\toksdef\ta=0 \toksdef\tb=2 % token list registers for temp use +\long\def\leftappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}% + \edef#2{\the\ta\the\tb}} +\long\def\rightappenditem#1\to#2{\ta={\\{#1}}\tb=\expandafter{#2}% + \edef#2{\the\tb\the\ta}} +\def\concatenate#1=#2{\ta=\expandafter{#2}\tb=\expandafter{#3}% + \edef#1{\the\ta\the\tb}} +\def\lop#1\to#2{\expandafter\lopoff#1\lopoff#1#2} +\long\def\lopoff\\#1#2\lopoff#3#4{\def#4{#1}\def#3{#2}} + +\newcommand{\dosiglist}[2]{% + \lop#1\to\@@sig \@@sig + \lop#1\to\@@sig \@@sig + \lop#1\to\@@sig \@@sig + % we know that cnt@Lsig is at least 3, maybe 4. 5 is right out. + \ifnum \value{#2} = 4 + \lop#1\to\@@sig \@@sig + \fi +} + +\newcommand{\signature}[1]{% + \ifx\empty#1{}\empty% + \else% + \parbox[t]{\signature@width}{% + \rule{\signature@width}{.01in}\\ + \parbox{\signature@width}{#1 \hfill}\\ + \vspace{.25in}% + } + \fi% +} + +\newcommand{\signature@bodyonecol}{% + \begin{flushright} + \parbox{\signature@width}{\begin{flushleft}Approved by:\\ \end{flushleft}}\\ + \vspace*{0.3in} + \ifx\empty\@committeechair{}\empty% + \else% + \signature{\@committeechair, Committee Chair}% + \fi% + \ifx\empty\@principaladvisor{}\empty% + \else% + \signature{\@principaladvisor, \advis@r}% + \fi% + \signature\@firstreader + \signature\@secondreader + \signature\@thirdreader + \signature\@fourthreader + \signature\@fifthreader + \signature\@sixthreader + \vspace{.5in} + %\makebox[\signature@width]{Date Approved by Chairman \hrulefill}\\ + \makebox[\signature@width]{Date Approved \leaders\hrule height0.01in\hfill\kern\z@}\\ + \end{flushright} +} + +\newcommand{\signature@bodytwocol}{% + \begin{flushleft} + Approved by:\\ + \end{flushleft} + \vspace*{0.3in} + \begin{minipage}[t]{.49\textwidth}% + \begin{flushleft}% + \dosiglist{\L@signatures}{cnt@Lsig} + \end{flushleft} + \end{minipage} + \begin{minipage}[t]{.49\textwidth}% + \begin{flushright}% + \dosiglist{\R@signatures}{cnt@Rsig} + \end{flushright} + \end{minipage} + \begin{flushright} + \vspace{.5in} + \makebox[\signature@width]{Date Approved \leaders\hrule height0.01in\hfill\kern\z@}\\ + \end{flushright} +} + +\def\add@Lsig#1{ + \ifx#1\@empty\relax\else% + \rightappenditem#1\to\L@signatures + \addtocounter{cnt@Lsig}{1}% + \fi +} +\def\add@Rsig#1{% + \ifx#1\@empty\relax\else + \rightappenditem#1\to\R@signatures + \addtocounter{cnt@Rsig}{1}% + \fi +} +\newcommand{\makesignature}{% + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \pdfbookmark[0]{Signatures}{signatures}% + % do not addtocontents (although it is in bookmarklist) + \ifx\@empty\@committeechair\relax\else + \addtocounter{signatures}{1}% + \add@Lsig{\signature{\@committeechair, Committee Chair}} + \fi + \ifx\@empty\@principaladvisor\relax\else + \addtocounter{signatures}{1}% + \add@Lsig{\signature{\@principaladvisor, \advis@r}} + \fi + \ifx\@empty\@firstreader\relax\else + \addtocounter{signatures}{1}% + \add@Lsig{\signature\@firstreader} + \fi +% The first three will ALWAYS be in the left column, but now we must compute +% the total number of sigs before doing anything else. + \ifx\@empty\@secondreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@thirdreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@fourthreader\relax\else\addtocounter{signatures}{1}\fi + \ifx\@empty\@fifthreader\relax\else\addtocounter{signatures}{1}\fi + %\typeout{SIGNATURES: \arabic{signatures}} + \ifnum \value{signatures} < 5 % fuggeddaboutit. Only one column + \let\signature@body\signature@bodyonecol + \setlength{\signature@width}{0.52\textwidth} + \else + \let\signature@body\signature@bodytwocol + \setlength{\signature@width}{0.46\textwidth} + \newcounter{halfsig} + \setcounter{halfsig}{\value{signatures} - (\value{signatures} / 2)} + %\typeout{LEFTCNT: \arabic{cnt@Lsig} HALF: \arabic{halfsig}} + \ifnum \value{cnt@Lsig} < \value{halfsig} + \add@Lsig{\signature\@secondreader} + \ifnum \value{cnt@Lsig} < \value{halfsig} + \add@Lsig{\signature\@thirdreader} % can't ever have more than this in left column + \add@Rsig{\signature\@fourthreader} + \add@Rsig{\signature\@fifthreader} + \add@Rsig{\signature\@sixthreader} + \else + \add@Rsig{\signature\@thirdreader} + \add@Rsig{\signature\@fourthreader} + \add@Rsig{\signature\@fifthreader} + \add@Rsig{\signature\@sixthreader} + \fi + \else + \add@Rsig{\signature\@secondreader} + \add@Rsig{\signature\@thirdreader} + \add@Rsig{\signature\@fourthreader} + \add@Rsig{\signature\@fifthreader} + \add@Rsig{\signature\@sixthreader} + \fi + \fi + \title@top + \vfill + \begin{center} + \signature@body + \ifstrictmargins\relax\else + \vspace{.2in} + \mbox{} + \fi + \end{center} + \thispagestyle{empty} +} +% +%% beforepreface +% +\newcommand{\beforepreface}{% + \newlinestretch{1.0}% + \pagenumbering{roman}% + \pagestyle{\front@pagestyle}% + \iftitlepage% + \maketitle% + \fi% + \ifmultivolume% + \part{}% + \fi% + \ifsignaturepage% + \makesignature% + \fi% + \newlinestretch{\@spacing}% +} +% +%% \prefacesection is here for backward compatibility with +%% the GT-thesis.sty package, and to add preface sections +%% that are not already defined. For Abstract, Preface, +%% Dedication, and Acknowlegements sections, use the +%% appropriate environments: \begin{abstract}...\end{abstract} +%% etc. +% +\newcommand{\prefacesection}[1]{% + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{#1}}{#1}} + \newlinestretch{\@spacing} + \chapter*{\MakeUppercase{#1}} + \vskip 0.5in +} +\newcommand{\afterpreface}{% + \if@draft% + \else% + \if@twoside% + \if@openright% + \cleardoublepage% + \fi% + \fi% + \fi% + \newpage% + \pagenumbering{arabic}% + \pagestyle{\body@pagestyle}% + \newlinestretch{\@spacing}% +} + +% dummy commands to prevent recursion errors... +\newcommand{\gtcontentsname}{} +\newcommand{\toccontentlinestring}{} +\newcommand{\tocpdfbookmarkstring}{} +\newcommand{\gtlistfigurename}{} +\newcommand{\lofcontentlinestring}{} +\newcommand{\lofpdfbookmarkstring}{} +\newcommand{\gtlisttablename}{} +\newcommand{\lotcontentlinestring}{} +\newcommand{\lotpdfbookmarkstring}{} + +\newcommand{\settocstring}[1]{% + \renewcommand{\gtcontentsname}{#1} + \renewcommand{\contentsname}{\Makeuppercase{#1}} + \renewcommand{\toccontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\tocpdfbookmarkstring}{#1} +} +\newcommand{\setlofstring}[1]{% + \renewcommand{\gtlistfigurename}{#1} + \renewcommand{\listfigurename}{\Makeuppercase{#1}} + \renewcommand{\lofcontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\lofpdfbookmarkstring}{#1} +} +\newcommand{\setlotstring}[1]{% + \renewcommand{\gtlisttablename}{#1} + \renewcommand{\listtablename}{\Makeuppercase{#1}} + \renewcommand{\lotcontentlinestring}{% + \texorpdfstring{\Makeuppercase{#1}}{#1} + } + \renewcommand{\lotpdfbookmarkstring}{#1} +} +\settocstring{Table of Contents} +\setlofstring{List of Figures} +\setlotstring{List of Tables} + +% +%% All this junk is for handling the spacing in the TOC, LOF, and LOT. +% +\newlength{\gt@tocentryskip@value} +\newlength{\gt@beforepartskip@value} +\newlength{\gt@beforechapskip@value} +\newlength{\gt@beforesecskip@value} +\newlength{\gt@beforesubsecskip@value} +\newlength{\gt@beforesubsubsecskip@value} +\newlength{\gt@beforeparaskip@value} +\newlength{\gt@beforesubparaskip@value} +\newlength{\gt@beforefigskip@value} +\newlength{\gt@beforetableskip@value} + +\def\set@gttocskip#1{% + \setlength{\gt@tocentryskip@value}{#1} + % set base lengths + \setlength{\gt@beforepartskip@value}{2\gt@tocentryskip@value} + \setlength{\gt@beforechapskip@value}{1.5\gt@tocentryskip@value} + \setlength{\gt@beforesecskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforesubsecskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforesubsubsecskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforeparaskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforesubparaskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforefigskip@value}{\gt@tocentryskip@value} + \setlength{\gt@beforetableskip@value}{\gt@tocentryskip@value} + % add glue + \addtolength{\gt@beforepartskip@value}{\z@ \@plus\p@} + \addtolength{\gt@beforechapskip@value}{\z@ \@plus\p@} + \addtolength{\gt@beforesecskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforesubsecskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforesubsubsecskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforeparaskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforesubparaskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforefigskip@value}{\z@ \@plus.2\p@} + \addtolength{\gt@beforetableskip@value}{\z@ \@plus.2\p@} +} +\set@gttocskip{10pt} + +% gobble the pagenumber +\newcommand*{\l@part@pagenumfont}[1]{} +% note: we don't do the fancy volume title centering here, because +% we use {part} for the \labelchaptersintableofcontents stuff. And +% that is NOT centered. +\renewcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{\gt@beforepartskip@value}% + \setlength\@tempdima{3em}% + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \interlinepenalty\@M + {\leavevmode + \large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss \l@part@pagenumfont{#2}}}\par + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand*{\gt@dottedtocline}[5]{% + \ifnum #1>\c@tocdepth \else + \addvspace{\gt@@toclineskip} + {\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}% + \fi} +\renewcommand*\l@chapter[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{\gt@beforechapskip@value}% + \setlength\@tempdima{2em}% was 1.5em, but that's too small. Add 0.5em to all others + \begingroup + \parindent \z@ \rightskip \@pnumwidth + \parfillskip -\@pnumwidth + \leavevmode \bfseries + \advance\leftskip\@tempdima + \hskip -\leftskip + #1\nobreak\normalfont\normalcolor + \leaders\hbox{$\m@th + \mkern \@dotsep mu\hbox{.}\mkern \@dotsep + mu$}\hfill + \nobreak + \hb@xt@\@pnumwidth{\hss\bfseries #2} + \par + \penalty\@highpenalty + \endgroup + \fi} +\renewcommand*\l@section{% + \let\gt@@toclineskip=\gt@beforesecskip@value + \gt@dottedtocline{1}{2.0em}{2.3em}} +\renewcommand*\l@subsection{% + \let\gt@@toclineskip=\gt@beforesubsecskip@value + \gt@dottedtocline{2}{4.3em}{3.2em}} +\renewcommand*\l@subsubsection{% + \let\gt@@toclineskip=\gt@beforesubsubsecskip@value + \gt@dottedtocline{3}{7.5em}{4.1em}} +\renewcommand*\l@paragraph{% + \let\gt@@toclineskip=\gt@beforeparaskip@value + \gt@dottedtocline{4}{10.5em}{5em}} +\renewcommand*\l@subparagraph{% + \let\gt@@toclineskip=\gt@beforesubparaskip@value + \gt@dottedtocline{5}{12.5em}{6em}} +\renewcommand*\l@figure{% + \let\gt@@toclineskip=\gt@beforefigskip@value + \gt@dottedtocline{1}{1.5em}{2.3em}}% this is indented 1.5em so that + % if you wish, you can a 'Figure' header + % centered above the numbers using \addtocontents +\renewcommand*\l@table{% + \let\gt@@toclineskip=\gt@beforetableskip@value + \gt@dottedtocline{1}{1.5em}{2.3em}}% ditto + +\newlength{\gt@tmpa} +\newcommand{\do@figurespage}{% + \iffigurespage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}{\lofcontentlinestring} + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \listoffigures + } + \newpage + \fi +} +\newcommand{\do@tablespage}{% + \iftablespage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}{\lotcontentlinestring} + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \listoftables + } + \newpage + \fi +} +\newcommand{\do@contentspage}{% + \ifcontentspage + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \pdfbookmark[0]{\tocpdfbookmarkstring}{toc}% + \settoheight{\gt@tmpa}{A} + \set@gttocskip{\gt@tmpa} + {\newlinestretch{1} + \tableofcontents + } + \newpage + \fi +} +\newcommand{\do@losapage}{} +\newcommand{\do@glossarypage}{} +\newcommand{\do@indexpage}{} + +\newcommand{\contents}{% + \newpage + \newlinestretch{\@spacing} + \do@contentspage + \do@tablespage + \do@figurespage + \do@losapage + \do@glossarypage +} + +%%%%%% Main Matter Commands and Environments +%% +%% redefine chapter headings style +%% redefine appendix headings style +%% redefine section headings style +%% number figures and tables sequentially throughout, rather +%% than restarting for each chapter. Ditto equations. +%% redefine macro for floats (incl. figures and tables) +%% so that single spacing is used +%% define a "gtindent" command for paragraph indents: +%% blank line + six space first line indentation +%% settocdepth - use this to change how "deep" to number +%% in the table of contents for different sections; e.g. +%% subsubsections for chapters, then switch to chapter-only +%% for appendices. + +% This package uses David Carlisle's \@removefromreset command as +% specified in the remreset package available from CTAN as +% macros/latex/contrib/supported/carlisle/remreset.sty +% It is \provided here as a convenience to the user, and with +% David Carlisle's permission. remreset.sty is licensed under +% the LPPL; David has explicitly given permission to include +% it here, under the GPL. +% START OF DAVID CARLISLE'S CODE +\newcommand{\@removefromreset}[2]{{% + \expandafter\let\csname c@#1\endcsname\@removefromreset + \def\@elt##1{% + \expandafter\ifx\csname c@##1\endcsname\@removefromreset + \else + \noexpand\@elt{##1}% + \fi}% + \expandafter\xdef\csname cl@#2\endcsname{% + \csname cl@#2\endcsname}}} +% END OF DAVID CARLISLE'S CODE +%%%%% See http://www.tex.ac.uk/cgi-bin/texfaq2html?label=running-nos + +% +%% Figures and tables are to be numbered sequentially throughout the +%% thesis, rather than within chapters; for style consistency, do +%% equations the same. +% +\@removefromreset{figure}{chapter} +\@removefromreset{table}{chapter} +\@removefromreset{equation}{chapter} +\def\thefigure{\@arabic\c@figure} +\def\thetable{\@arabic\c@table} +\def\theequation{\arabic{equation}} + +% +%% Redefine the macro used for floats (including figures and tables) +%% so that single spacing is used. +%% (Note \def\figure{\@float{figure}set single spacing} doesn't work +%% because figure has an optional argument) +%% +%% This code was copied directly from latex.ltx, but with the +%% \newlinespacing{} macro added to it. +% +\def\@xfloat #1[#2]{% + \@nodocument + \def \@captype {#1}% + \def \@fps {#2}% + \@onelevel@sanitize \@fps + \def \reserved@b {!}% + \ifx \reserved@b \@fps + \@fpsadddefault + \else + \ifx \@fps \@empty + \@fpsadddefault + \fi + \fi + \ifhmode + \@bsphack + \@floatpenalty -\@Mii + \else + \@floatpenalty-\@Miii + \fi + \ifinner + \@parmoderr\@floatpenalty\z@ + \else + \@next\@currbox\@freelist + {% + \@tempcnta \sixt@@n + \expandafter \@tfor \expandafter \reserved@a + \expandafter :\expandafter =\@fps + \do + {% + \if \reserved@a h% + \ifodd \@tempcnta + \else + \advance \@tempcnta \@ne + \fi + \fi + \if \reserved@a t% + \@setfpsbit \tw@ + \fi + \if \reserved@a b% + \@setfpsbit 4% + \fi + \if \reserved@a p% + \@setfpsbit 8% + \fi + \if \reserved@a !% + \ifnum \@tempcnta>15 + \advance\@tempcnta -\sixt@@n\relax + \fi + \fi + }% + \@tempcntb \csname ftype@\@captype \endcsname + \multiply \@tempcntb \@xxxii + \advance \@tempcnta \@tempcntb + \global \count\@currbox \@tempcnta + }% + \@fltovf + \fi + \global \setbox\@currbox + \color@vbox + \normalcolor + \vbox \bgroup + \newlinestretch{1.0} + \hsize\columnwidth + \@parboxrestore + \@floatboxreset +} + +% Redefine the macro used for caption labels, for a (slightly) +% fancier format. Feel free to use the caption2 package instead... +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{\textbf{#1: }#2}% + \ifdim \wd\@tempboxa >\hsize + \textsf{\textbf{#1: }}#2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} + +% Redefine the macro used for footnotes to use single spacing +\long\def\@footnotetext#1{% + \insert\footins{% + \newlinestretch{1.0}% + \footnotesize% + \interlinepenalty\interfootnotelinepenalty% + \splittopskip\footnotesep% + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM% + \hsize\columnwidth \@parboxrestore% + \edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark% + }% + \@makefntext% + {\rule{\z@}{\footnotesep}\ignorespaces% + #1\strut}% + }% +} + +% +%% Paragraph indents (6 spaces) +%% inserts a blank line and then indents the paragraph by 6 spaces +% +\newcommand{\gtindent}{\par \hspace{0.25in}} + +% +%% Chapter headings - centered, all caps, chapter number - roman numeral +% +% +%% Use \labelchaptersintableofcontents to insert an entry into the toc +%% that says ``CHAPTERS'' just before Chapter 1. +% Use \labelappendicesintableofcontents to insert an entry into the toc +%% that says ``APPENDICES'' just before Appendix A. +% +\let\orig@contentsline=\contentsline +\newcommand{\labelchaptersintableofcontents}[1][CHAPTERS]{% + \addtocontents{toc}{\protect\orig@contentsline{part}{#1}{}} +} +\newcommand{\labelappendicesintableofcontents}[1][APPENDICES]{% + \addtocontents{toc}{\protect\orig@contentsline{part}{#1}{}}% +} + +\renewcommand{\chaptername}{CHAPTER} +\renewcommand{\appendixname}{APPENDIX} +\renewcommand{\thepart}{\@Roman\c@part} +\renewcommand{\partname}{Volume} + +% +%% \thegtchapter is used so that we can have ROMAN numbers in the +%% chapter headings at the beginning of each chapter, but use +%% \thechapter for ARABIC numbers in the running heads on each +%% page within the chapter. +%% +%% You can Change this behavior by redefining \thegtchapter +%% within your document: +%% \renewcommand{\thegtchapter}{\thechapter} +% +\newcommand{\thegtchapter}{\@Roman\c@chapter} +\def\chapapp@tocdepth{\expandafter\chapter@tocdepth} +% +%% The following two def's provide the Indirection needed to work +%% with hyperref package, since hyperref redefines @chapter and +%% @schapter +% +\def\chapapp@chapter{\chap@chapter} +\def\chapapp@schapter{\chap@schapter} +% +%% Make @chapter and @schapter wrappers for (chap@chapter or app@chapter) +%% and (chap@schapter or app@schapter). This indirection is necessary to +%% work well with the hyperref package. +% +\def\my@empty{} +\def\@chapter[#1]#2{% + \def\my@temp{#1}% + \ifx\my@temp\my@empty + \chapapp@chapter{#2} + \else + \chapapp@chapter[#1]{#2} + \fi +} +\def\@schapter#1{% + \chapapp@schapter{#1} +} +% +%% The actual guts of the chapter heading routines +% +\renewcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \if@tcpage% DO NOT use the \front@pagestyle macro here. + {\thispagestyle{tcplain}} + \else + {\thispagestyle{plain}}%report.cls temporarily resets pagestyle to plain. Do the same. + \fi + \settocdepth{\chapapp@tocdepth} + \global\@topnum\z@ + \@afterindentfalse + \secdef\@chapter\@schapter +} +\def\chap@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thegtchapter.}% + \addcontentsline{toc}{chapter}% + {\texorpdfstring% + {\protect\numberline{\thegtchapter}\Makeuppercase{#1}}% + {Chapter \thechapter\space\textemdash\space#1}}% + \else + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{#1}}{#1}}% + \fi + \chaptermark{#1}% + \if@twocolumn + \@topnewpage[\@makechapterhead{#2}]% + \else + \@makechapterhead{#2}% + \@afterheading + \fi +} +\def\@makechapterhead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \centering \Large \bfseries \@chapapp\space \thegtchapter + \par\nobreak + \vskip 30\p@ + \fi + \interlinepenalty\@M + \centering \Large \bfseries \MakeUppercase{#1}\par\nobreak + \vskip 30\p@ + } +} +\def\chap@schapter#1{% + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \@makeschapterhead{#1}% + \@afterheading + \fi +} +\def\@makeschapterhead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \interlinepenalty\@M + \centering \Large \bfseries #1\par\nobreak + \vskip 30\p@ + } +} +% +%% Support for multi-volume thesis. +%% +%% in the premable, set \multivolumetrue and then +%% use the \part{} commannd where you want volume 2 +%% to begin, etc. Do not give names to your volumes (that is, +%% use ``\part{}'' and not ``\part{Some title}''), because +%% the Graduate Office Guidelines do not allow separate +%% titles for each volume. +% +% we temporarily set the pagenumber to a big negative number, for +% two reasons: 1) so that it doesn't duplicate the other page numbers, +% because the volume title pages are unnumbered and uncounted. We +% can't merely allow the autoincrement of pagenum and then addtocounter{page}{-1}, +% because then both pages would have the same number. 2) it's a BIG negative +% number because we allow it to increment as each \part is declared, so that +% the volume title pages don't duplicate each others pagenums. +\newcounter{part@savepagenum} +\newcounter{part@pagenum} +\setcounter{part@pagenum}{-101} % can't have more than 50 parts, +% but this number must be odd, or twopage dvi's are messed up. +\renewcommand{\part}{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{empty}% + \phantomsection% + \setcounter{part@savepagenum}{\value{page}} + \setcounter{page}{\value{part@pagenum}} + \if@twocolumn + \onecolumn + \@tempswatrue + \else + \@tempswafalse + \fi + \secdef\@part\@spart} + +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part} + \typeout{\partname\space\thepart.}% + \addcontentsline{toc}{part}% + {\texorpdfstring% + {\noindent\protect\makebox[\@tocrmarg]{}% + {\protect\makebox[\textwidth - \@tocrmarg - \@tocrmarg]% dadgum \hfill doesn't work without mbox... + {\hfill\Makeuppercase{\partname}\space\protect{\thepart}\hspace{1em}\Makeuppercase{#1}\hfill}}}% + {Volume \thepart}}% + \else + \addcontentsline{toc}{part}% + {\texorpdfstring% + {\Makeuppercase{#1}}% + {#1}}% + \fi + \markboth{}{} + {\interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \make@parttitle{#1} + \else + \make@parttitle{} + \fi} + \@endpart} +\def\@spart#1{% + {\interlinepenalty \@M + \normalfont + \make@parttitle{}} + \@endpart} +\def\@endpart{% + \vfill\newpage\addtocounter{part@pagenum}{1}%don't count this page + \if@twoside + \if@openright + \null + \thispagestyle{empty}% + \newpage\addtocounter{part@pagenum}{1}%if we need to add another page, don't count it either + \fi + \fi + \if@tempswa + \twocolumn + \fi + \setcounter{page}{\value{part@savepagenum}} +} +% +%% Section +%% Heading 1: Large, bold, and italic, at left margin +%% Heading 2: Bold, at left margin +%% Heading 3: Italic, indented 0.25in from left margin +% +\renewcommand{\section}{% + \@startsection{section}{1}{\z@}% + {-3.25ex \@plus -1ex \@minus -.2ex}% + {1.5ex \@plus.2ex}% + {\newlinestretch{1}\normalfont\Large\bfseries\itshape} +} +\renewcommand{\subsection}{% + \@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\newlinestretch{1}\normalfont\normalsize\bfseries} +} +\renewcommand{\subsubsection}{% + \@startsection{subsubsection}{3}{0.25in}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\newlinestretch{1}\normalfont\normalsize\itshape} +} + +\renewcommand{\appendix}{% + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \renewcommand{\@chapapp}{\appendixname} + \thispagestyle{plain}% Do NOT use the \back@pagestyle macro here + \settocdepth{\appendix@tocdepth} + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \def\thechapter{\@Alph\c@chapter} + \def\chapapp@tocdepth{\expandafter\appendix@tocdepth} + \def\chapapp@chapter{\app@chapter} + \def\chapapp@schapter{\app@schapter} + \renewcommand{\thesection}{\thechapter.\@arabic\c@section} +} +\def\app@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\texorpdfstring% + {\@chapapp\space\protect\numberline{\thechapter}\space---\space\Makeuppercase{#1}}% + {Appendix\space\thechapter\space\textemdash\space#1}}%must specify "---" explicitly here + \else + \addcontentsline{toc}{chapter}{\Makeuppercase{#1}}% + \fi + \chaptermark{#1}% + \if@twocolumn + \@topnewpage[\@makeapphead{#2}]% + \else + \@makeapphead{#2}% + \@afterheading + \fi +} +\def\@makeapphead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \centering \Large \bfseries \appendixname\space \thechapter + \par\nobreak + \vskip 30\p@ + \interlinepenalty\@M + \centering \Large \bfseries \MakeUppercase{#1}\par\nobreak + \vskip 35\p@ + } +} +\def\app@schapter#1{% + \if@twocolumn + \@topnewpage[\@makesapphead{#1}]% + \else + \@makesapphead{#1}% + \@afterheading + \fi +} +\def\@makesapphead#1{% + \ifnum \@marginsize = 4 % oldmargins + \vspace*{50\p@}% + \fi + { \parindent \z@ \raggedright \normalfont + \interlinepenalty\@M + \centering \Large \bfseries #1\par\nobreak + \vskip 30\p@ + } +} +%% end of \appendix environment definitions + +%% \settocdepth - use this to change how "deep" to number +%% in the table of contents for different sections; e.g. +%% subsubsections for chapters, then switch to chapter-only +%% for appendices. +%% tocdepth is reset to the value in \setchaptertocdepth +%% at each \chapter{}, or to the value in \setappendixtocdepth +%% at each \chapter{} after the \appendix command. So, if +%% you want to change the defaults, use \setchaptertocdepth and +%% \setappendixtocdepth. To temporarily change depth for the +%% current section, use a different function: \settocdepth[x]. +%% You should never need to call \setcounter{tocdepth}{..} +%% directly. +%% +%% 0 = chapter only +%% 1 = chapter + sections +%% 2 = chapter, section, subsection +%% 3 = chapter, section, subsection, subsubsection +% +\newcommand{\settocdepth}[1]{% + \addtocontents{toc}{\protect\setcounter{tocdepth}{#1}} +} +\newcommand{\setappendixtocdepth}[1]{% + \def\appendix@tocdepth{#1} +} +\newcommand{\setchaptertocdepth}[1]{% + \def\chapter@tocdepth{#1} +} + +%%%%%% Back Matter Commands and Environments +%% +%% \beforepostface +%% \thebibliography redefined so it matches GT's requirements +%% \begin{vita}...\end{vita} +%% \postfacesection{other-title} +%% --- followed by section text +%% \afterpostface +%% \references +%% --- creates the bibliography +%% \begin{postliminary}...\end{postliminary} +%% --- preferred to \beforepostface and \afterpostface + +% +%%%%%% New formatting environments and commands. +% +%% \begin{postliminary} sets the pagestyle for the +%% postliminary sections. +%% +%% \end{postliminary} resets the pagestyle and +%% performs any other cleanup. +% +\newenvironment{postliminary}% + {\pagestyle{\back@pagestyle}}% + {\settocdepth{\chapter@tocdepth}% + \pagestyle{\body@pagestyle}} + +% +%% \begin{vita}...\end{vita} formats a +%% vita section +% +\newenvironment{vita}{% + \typeout{***************** Vita ******************} + \newlinestretch{\@spacing} + \if@openright\cleardoublepage\else\clearpage\fi + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{Vita}}{Vita}} + \chapter*{\MakeUppercase{Vita}} + \@mkboth{\scshape\MakeUppercase{Vita}}% + {\scshape\MakeUppercase{Vita}}% + \vskip 0.5in + \begingroup +}{\par\endgroup}%Vita + +\newcommand{\beforepostface}{% + \pagestyle{\back@pagestyle} +}% + +% +%% \postfacesection is here for backward compatibility with +%% the GT-thesis.sty package, and to add postface sections +%% that are not already defined. (Appendices are not postface +%% material). Currently, the only predefined postface section +%% is Vita. Use \begin{vita}...\end{vita}. (``Index'' is a +%% postface section, but: it is defined in the add-on style +%% gatech-thesis-index.sty, and it doesn't use \postfacesection.) +% +\newcommand{\postfacesection}[1]{% + \newlinestretch{\@spacing} + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{#1}}{#1}} + \chapter*{\MakeUppercase{#1}} + \@mkboth{\scshape\MakeUppercase{#1}}% + {\scshape\MakeUppercase{#1}}% + \pagestyle{\back@pagestyle} + \vskip 0.5in +} +\newcommand{\afterpostface}{ + \settocdepth{\chapter@tocdepth}% + \pagestyle{\body@pagestyle} +} +\newcommand{\refname}{References} +\newcommand{\references}{% + \ifbibpage + \typeout{***************** References ******************} + \newlinestretch{1.0} + \if@openright\cleardoublepage\else\clearpage\fi + % must clear page here, so that phantomsection\addcontentsline is on the correct page + \phantomsection% + \addcontentsline{toc}{chapter}% + {\texorpdfstring{\Makeuppercase{\refname}}{\refname}} +% \bibliographystyle{gatech-thesis} + \bibliography{\@bibfiles} + \fi +} + +%%%%%%%%% BIBLIOGRAPHY %%%%%%%%%%%%%%%%% +%% +%% redefine ``thebibliography'' environment so that title conforms to Georgia +%% Tech format (all caps, center of page) +%% +\renewenvironment{thebibliography}[1]{ + { \chapter*{\MakeUppercase{\refname}} + \@mkboth{\scshape\MakeUppercase\refname}% + {\scshape\MakeUppercase\refname}% + \pagestyle{\body@pagestyle}% REFERENCES uses BODY pagestyle, not endmatter. + \vskip 0.5in + } + \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} + }% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty ``thebibliography'' environment} + \pagestyle{\back@pagestyle} + }% + \endlist +} + +% +%% Variations of \cleardoublepage that explicitly set the pagestyle +%% of any inserted blank page. +% +\newcommand{\clearemptydoublepage}% + {{\pagestyle{empty}\cleardoublepage}} +\newcommand{\clearplaindoublepage}% + {{\pagestyle{plain}\cleardoublepage}} +\newcommand{\cleartcplaindoublepage}% + {{\pagestyle{tcplain}\cleardoublepage}} +\newcommand{\cleargtthesisdoublepage}% + {{\pagestyle{gtthesis}\cleardoublepage}} + +\newcommand{\setfrontpagestyle}[1]{% + \gdef\front@pagestyle{#1} +} +\newcommand{\setbodypagestyle}[1]{% + \gdef\body@pagestyle{#1} +} +\newcommand{\setbackpagestyle}[1]{% + \gdef\back@pagestyle{#1} +} + +%%%%%% Page Styles +% +%% Redefine all four standard page styles (empty, plain, headings, +%% myheadings), based on the definitions in ``report'', so that they +%% conform to the GSO guidelines (and include draft information if +%% applicable). +%% +%% Also, define a new pagestyle ``tcplain'' which is just like ``plain'', +%% but puts page numbers in header (left/right 2page, or right 1page) +%% instead of at the bottom of the page. +%% +%% Then, define a new pagestyle ``gtthesis''. I like this one better +%% but the Graduate Studies Office doesn't. :-( +% +\renewcommand{\ps@empty}{ + \@tcpagefalse + \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}{% + \@tcpagefalse% + \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}{% + \@tcpagefalse% + \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}{% + \@tcpagefalse% + \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}{% + \@tcpagefalse% + \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 ``gtthesis'' (based on ``headings''). +% +\if@twoside % if two-sided printing + \newcommand{\ps@gtthesis}{% + \@tcpagetrue% + \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@gtthesis +\else % if one-sided printing + \newcommand{\ps@gtthesis}{% + \@tcpagetrue% + \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@gtthesis +\fi % @twoside + +% +%% Pagestyle ``tcplain'' (based on ``plain''). +% +\if@twoside % if two-sided printing + \newcommand{\ps@tcplain}{% + \@tcpagetrue% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \let\@evenfoot\@oddfoot% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + \hfil\thepage% + \if@draft\trDRAFT\fi% + }% + \def\@evenhead{% + \if@draft\tlDRAFT\fi% + \thepage\hfil% + \if@draft\trDRAFT\fi% + }% + }%ps@tcplain +\else % if one-sided printing + \newcommand{\ps@tcplain}{% + \@tcpagetrue% + \let\@mkboth\markboth% + \def\@oddfoot{% + \if@draft% + \blDRAFT\hfil% + {\slshape\small\today}\hfil\brDRAFT% + \fi% + }% + \def\@oddhead{% + \if@draft\tlDRAFT\fi% + \hfil\thepage% + \if@draft\trDRAFT\fi% + }% + }%ps@tcplain +\fi % @twoside + + +%%%%%% Document Layout +% +%% Default line spacing: use current setting from options. +% +\linespacing{\@thesislnsp} +% +%% Page layout (see The LaTeX Companion pp.84-86). +% +%% 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.5 " left, 1" others (modified 01/27/01) +% +\addtolength{\textheight}{-2in} +\setlength{\topmargin}{0.5in} +\setlength{\headsep}{0.5in} % reduced by headheight, below +\setlength{\footskip}{0.5in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\or % set wide margins: 1.5" left, 1" others, 2"" top (modified 01/14/00) +% +\addtolength{\textheight}{-3in} +\setlength{\topmargin}{1in} +\setlength{\headsep}{.5in} % reduced by headheight, below +\setlength{\footskip}{0.5in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\or % set extra wide margins: 1 1/2"" all around +% +\addtolength{\textheight}{-3in} +\setlength{\topmargin}{1in} +\setlength{\headsep}{.5in} +\setlength{\footskip}{.5in} +\addtolength{\textwidth}{-3in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1.5in} +\setlength{\marginparwidth}{1in} +\setlength{\marginparsep}{.25in} +% +\or % use oldmargin (OLD GT): 1.5" left and top, 1" others (modified 01/27/01) +% +\addtolength{\textheight}{-2.5in} +\setlength{\topmargin}{0.75in} +\setlength{\headsep}{0.75in} % reduced by headheight, below +\setlength{\footskip}{0.5in} +\addtolength{\textwidth}{-2.5in} +\setlength{\oddsidemargin}{1.5in} +\setlength{\evensidemargin}{1in} +\setlength{\marginparwidth}{.75in} +\setlength{\marginparsep}{.125in} +% +\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. +% +\setlength{\skip\footins}{.75\baselineskip} +\if@singlespacednotes +\else + \let\oldtextsize=\currenttextsize + \footnotesize + \setlength{\marginparpush}{\baselineskip} + \setlength{\footnotesep}{\baselineskip} + \oldtextsize +\fi % @singlespacednotes +% +%% \flushbottom looks silly with lots of extra space between paragraphs +%% better to put the "extra" space at the bottom of the page! +% +\raggedbottom +% +%% Default page style. +% +\pagestyle{plain} +\setfrontpagestyle{plain} +\setbodypagestyle{plain} +\setbackpagestyle{plain} + +% +%% Number subsubsections +% +\setcounter{secnumdepth}{3} + +% +%% Show subsubsections in table of contents +%% tocdepth is reset to the value in \setchaptertocdepth +%% at each \chapter{}, or to the value in \setappendixtocdepth +%% at each \chapter{} after the \appendix command. So, if +%% you want to change the defaults, use \setchaptertocdepth and +%% \setappendixtocdepth. To temporarily change depth for the +%% current section, use a different function: \settocdepth[x]. +%% You should never need to call \setcounter{tocdepth}{..} +%% directly. +%% +%% 0 = chapter only +%% 1 = chapter + sections +%% 2 = chapter, section, subsection +%% 3 = chapter, section, subsection, subsubsection +% +\setcounter{tocdepth}{3} % we call setcounter{tocdepth}{} directly here + % but user .tex files should not do this. +% We must insure that the last \setcounter command in the .toc +% file is NON-ZERO, or the listoffigures and listoftables become +% empty. Bad news. Unfortunately, that means we must do some +% raw TeXing here... +% You would think the \end{postliminary} code would fix this, and it +% does -- but only if you don't \include your vita. \input{vita} +% works great because the \end{postliminary} code causes +% \setcounter{tocdepth}{NONZERO} to be written. But, if you +% \include{vita} (or whatever the LAST section before \end{postliminary} +% is) and the \setcounter command from \end{postliminary} does NOT get +% written to the .aux file. Fooey. This is our workaround. +% BUT, do NOT remove the one from \end{postliminary}. When +% \input{vita}, THAT one gets used, and not this one! Clearly, +% a LaTeX bug. +\AtEndDocument{% + \immediate\write\@auxout% + {\string\@writefile{toc}{\string\setcounter{tocdepth}{3}}} +} + +\setchaptertocdepth{2} +\setappendixtocdepth{0} + +%% Disallow page breaks at hyphens (this will give some underfull vbox's, +%% so an alternative is to use \brokenpenalty=100 and manually search +%% for and fix such page breaks) +% +\brokenpenalty=10000 +\InputIfFileExists{gatech-thesis-patch.sty}{}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% End of GATECH-THESIS.CLS +%% +%% license information is in the COPYING file. The copyright notice +%% therein applies to the license itself, not to this file: the GNU +%% PUBLIC LICENSE is copyrighted by the Free Software Foundation. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- cgit v1.2.3