Caltech Home > PMA Home > LaTex style file

LaTex style file


% CIT_THESIS.STY	Primary style for Caltech Ph.D. Thesis
% USAGE:  (LaTeX 2.09) \documentstyle[draftfoot,preprint]{cit_thesis}
%         (LaTeX2e)    \documentclass[draftfoot,preprint]{cit_thesis}
% Modifies the {report} style, so that the title page and chapters
% are handled according to the Caltech Regulations for Format and
% Presentation of Theses (Office of Graduate Studies), and K. Turabian,
% _A Manual for Writers_ (U. Chicago Press, Chicago,=
% The secondary style of [preprint] sets the conditional=
% TRUE.  The command ``\preprint'', at the beginning of the document, has
% the same effect.  This causes a local publication number (see=
% below) to be typeset in the upper right corner of the title page.  The=
% may also write conditional macros using the ``\ifpreprintstyle''
% construction.
% For preliminary or working copies of the thesis, the secondary style of
% [draftfoot] may be used, or the command ``\draftfoot'' may be specified=
% the beginning of the document.  This produces a line at the bottom of=
% page, with ``DRAFT'' in the lower left corner, and the date and time=
% LaTeX was executed in the lower right.
% A number of useful macros are defined for use in this style.  The
% title page of a thesis contains several standard phrases with possibly
% ``variable'' information, such as the degree to be awarded, the name
% and address of the institution, and copyright information.  The macros
% below are used to specify these data; the macro arguments indicate
% the default values as defined in this style file.
% \degreeaward{Doctor of Philosophy}			Degree to be awarded
% \university{California Institute of Technology}	Institution name
% \address{Pasadena, California}			Institution address
% \copyyear{\the\year}					Year of diploma award
% \pubnum{}					Publication/preprint number
% The usual LaTeX macros ``\author,'' ``\title,'' and ``\date'' work as
% defined in the LaTeX manual.  The argument to \date should be the date
% on which the candidate's final examination (defense) is scheduled.
% The publication/preprint number will be typeset in the upper right=
% of the title page if and only if the [preprint] style is selected, or if
% the ``\preprint'' command was executed before \maketitle.
% The command ``\maketitle'' will generate a title page formatted=
% to the Caltech instructions, and including all of the information=
% by the macros above.  Unlike the standard version, ``\maketitle'' may be
% repeated several times in a document:  the terms defined for it are=
% reset after the page is formatted.
% The command ``\extrachapter'' will generate an unnumbered chapter=
% similar to the LaTeX ``\chapter*'' command.  In addition,=
% will produce an entry in the Table of Contents.  This command is used in
% the {abstract} and {acknowledgements} environments, listed below.
% The initial portion of the thesis document, typically the copyright=
% abstract, and tables of contents, figures, and tables, are numbered in
% roman numerals, while the body of the thesis is numbered in arabic.  The
% {frontmatter} environment handles these page numbering conventions.  The
% author should place
%	\begin{frontmatter}
%	...(abstract, contents, etc.)
%	\end{frontmatter}
% immediately following the \maketitle command.  The first entry in the
% {frontmatter} environment should generally be ``\makecopyright.''  This
% command generates a spearate copyright page, with the text
%				 (C) \copyyear
%				    \author
%			      All Rights Reserved
% centered at the bottom of the page.  Obviously, the items indicated with
% macro commands above are filled in with the actual arguments to those
% commands.
% The abstract is produced with the {abstract} environment, which=
% an unnumbered chapter with an entry in the table of contents.  The=
% should use
%	\begin{abstract}
%	...(body of abstract goes here)
%	\end{abstract}
% within the {frontmatter} environment.
% An acknowledgements page is produced in the same way as the abstract,=
% the {acknowledgements} environment.
% 950201  Michael H. Kelsey    Adapted from original of unknown source.
% 950208  -- Merged with "citthesis.cls" from Blair Zajac.
%         Change [draft] and \draft to=
%%% Pre-define commands required for option-processing
% \draftfoot will put "DRAFT" and the current date and time in the=
\def\draftfoot{\thesisdrafttrue\thesisfooter{Draft Copy\hss\thesistime}}
% \preprint will set the conditional \ifpreprintstyle to be=

%%% Select between LaTeX 2.09 and LaTeX2e, based on \documentclass=
\ifx\undefined\documentclass		%%% LaTeX 2.09 configuration %%%
  \typeout{Document style `cit_thesis'.  8 February 1995, M. Kelsey}
% Define actions for style options
  \input report.sty\relax		%% Standard REPORT format
  \input setspace.sty\relax		%% Load package for=
\else					%%% LaTeX2e configuration %%%
  \ProvidesClass{cit_thesis}[1995/02/08 Caltech Thesis class]
% Define actions for style options
  \ProcessOptions*			%% Process remaining options locally
  \LoadClass{report}			%% Standard REPORT format
  \RequirePackage{setspace}		%% Load package for=
%%% Override standard REPORT format for thesis layout requirements
% Define \thispagestyle to null so that \chapter doesn't change page=
% Define commands to generate draft-mode=
\def\thesisfooter#1{\def\@oddfoot{#1} \def\@evenfoot{#1}}
% Construct timestamp information for draft-mode=
  \timehh=3D\time\divide\timehh by 60%
  \timemm=3D\timehh\multiply\timemm by -60%
  \advance\timemm by \time%
  \ifnum\timehh<10 0\fi\number\timehh\,:\,%
  \ifnum\timemm<10 0\fi\number\timemm%
  \ \ \today%
}				%% End of \thesistime
% Set the headers and footers.  Centered page number at top, empty footer.
% Top, bottom and right margins 1 inch, Left marging 1-1/2=
\let\@oddfoot\@empty \let\@evenfoot\@empty

\ifthesisdraft\draftfoot\fi		%% Redefine footers for draft=
\@twosidefalse\@mparswitchfalse		%% Turn off=
\setstretch{1.5}			%% ``Double-spaced''=
\setlength{\oddsidemargin}{.5in}	%% Left margin =3D 1-1/2=
\setlength{\evensidemargin}{.5in}	%% Not really needed, as single=
\setlength{\textwidth}{6in}		%% Makes right margin =3D 1=
\setlength{\topmargin}{-.3in}		%% Top margin =3D 3/4'' inch (incl=
\setlength{\headsep}{.15in}		%% Space between page # and=
\setlength{\textheight}{8.95in}		%% Makes bottom margin =3D 1=
\setlength{\footskip}{.4in}		%% Space from bottom of text to foot
% Define spacing for use on titlepage
\def\titleskip{\vskip 4\bigskipamount}		%% Whitespace after=
\def\authorskip{\vskip 2\bigskipamount}		%% Whitespace after author
% Create a command for unnumbered chapters, with a Table of Contents

\def\@lextrachapter[#1]#2{%	User specified optional contents entry

\def\@extrachapter#1{%		Chapter heading used as contents entry
% Chapter headings should be at top of page, single line format
% with single font size of \Large.
  {\parindent 0pt \raggedright \Large\bf%
   \ifnum \c@secnumdepth>\m@ne%
     \@chapapp{} \thechapter \hskip 2.3ex plus .2ex
   #1\par \nobreak \vskip 20pt}
}				%% End of \@makechapterhead

  {\parindent 0pt \raggedright \Large\bf%
   #1\par \nobreak \vskip 20pt}
}				%% End of \@makeschapterhead
% We want roman page numbers in the frontmatter, and arabic afterward.
% use \begin{frontmatter} ... \end{frontmatter} to do=
% Additional titlepage=
\degreeaward{Doctor of Philosophy}			% Default is=

\university{California Institute of Technology}		% Default is=

\address{Pasadena, California}				% Default is=

\copyyear{\the\year}					% Default is=

\pubnum{}						% No publication number
% The titlepage must conform to CIT requirements
   \let\footnotesize\small \let\footnoterule\relax \setcounter{page}{1}
     {\Large\bf \@title\par}
     Thesis by\\
     {\large \@author\par}
     In Partial Fulfillment of the Requirements\\
     for the Degree of\\
     {\normalsize (Submitted \@date)\par}
}				%% End of \maketitle
% The copyright page is new, must conform to CIT=
 \null				% Forces rest to bottom of page
   \copyright\quad \@copyyear\\
   All Rights Reserved
}				%% End of \makecopyright
% The abstract and acknowledgements are treated as unnumbered chapters
% with Table of Contents=
\def\abstract{\extrachapter{Abstract}}		%=
\def\endabstract{\clearpage}			%=

% The {thebibliography} environment should put an entry into the Table
% of Contents, just as the {abstract} and {acknowledgements} environments


%%%  @LaTeX-style-file{
%%%     filename        =3D "setspace.sty",
%%%     version         =3D "3.1",
%%%     date            =3D "25 May 1994",
%%%     time            =3D "10:21:09.67 CDT",
%%%     author          =3D "George D. Greenwade",
%%%     address         =3D "Department of Economics and Business=
%%%                        College of Business Administration
%%%                        P. O. Box 2118
%%%                        Sam Houston State University
%%%                        Huntsville, Texas, USA 77341-2118",
%%%     email           =3D " (Internet)
%%%                        BED_GDG@SHSU     (BITNET)
%%%                        SHSU::BED_GDG    (THENET)",
%%%     telephone       =3D "(409) 294-1266",
%%%     FAX             =3D "(409) 294-3712",
%%%     supported       =3D "yes",
%%%     archived        =3D "SHSU*",
%%%     keywords        =3D "LaTeX style, spacing, doublespace, half=
%%%                        modifications to original",
%%%     codetable       =3D "ISO/ASCII",
%%%     checksum        =3D "14962 309 1381 13018",
%%%     docstring       =3D "This is a very quick hack to get=
%%%                        to work with LaTeX2e as well as 2.09 with and
%%%                        without NFSS -- but it does work on the small=
%%%                        test I've run.  Comments welcome!
%%%                        The primitive logic is that we can test for
%%%                        the existence the definition of
%%%                        \selectfont -- not in LaTeX 2.09 without NFSS
%%%                         (prior toggle -- version 2.x)
%%%                        \@newbaseline -- defined in NFSS but not in
%%%                           LaTeX 2e (current toggle -- version 3.0)
%%%                        This is a modification to Erica Harris'
%%%                        setspace.sty.  The main aspects of this
%%%                        modification deal with the definitions of
%%%                        \doublespacing, \onehalfspacing, and
%%%                        \singlespacing (these are near the beginning=
%%%                        the file).  Primarily, these deal with adding
%%%                        fontsize changes to guarantee that the new
%%%                        baseline is properly defined and placed into
%%%                        action.  The extra \vskip in the definition=
%%%                        \singlespacing seems to  make for a cleaner
%%%                        transition from multiple spacing back to=
%%%                        spacing.  These did not appear warrranted for
%%%                        other size changes.
%%%                        Modified by GDG on November 1, 1992, to allow
%%%                        for use of New Font Selection Scheme.
%%%                        Modified by GDG on June 4, 1993, to correct
%%%                        for spacing tokens in defintion of \@setsize
%%%                        Thanks to Kaja P. Christiansen=
%%%                        for the fix!!
%%%                        Modified by GDG on May 24, 1994, to change=
%%%                        definition from \selectfont to=
%%%                        Modified by GDG on May 25, 1994, to add
%%%                        definition of \everydisplay -- this part of
%%%                        the code was apparently written by Geoffrey
%%%                        Tobin on Thu 23 Jan 1992 and was provided by
%%%               (Richard Stanton). 
%%%                        This should help with some of the awkward=
%%%                        placements in changing spacings.
%%%                        The original headers of the main file cover=
%%%                        major aspects of this file and its use.
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility."
%%% }
%% FILE:   setspace.sty in SYS2.TEX.PUB.ISULATEX.STYLES
%% AUTHOR: Erica M. S. Harris
%% DATE:   April 1990
%% MOD:    March 1991
%% DESCR:  LaTeX Document style option "setspace"
%%         Usage:  \documentstyle[...,setspace,...]{...}
%%         Based on the doublespace option created by Stephen Page.
%%         This style option provides commands and environments for doing
%%         double and  one-and-a-half spacing based on pt size.
%%         Single spacing is the default.
%%         Three commands, \doublespacing, \onehalfspacing, and
%%         \singlespacing, are for use in the preamble to set the overall
%%         spacing for the document.  If a different spacing is required=
%%         the \setstretch{baselinestretch} command can be used in the
%%         preamble to set the baselinestretch appropriately.  The=
%%         spacing with this style option is single spacing.
%%         Three environments, singlespace, onehalfspace, and=
%%         allow the spacing to be changed within the document.  Both the
%%         onehalfspace and doublespace environments are intended to=
%%         the spacing, so the onehalfspace environment should not be used=
%%         a double spaced document.  If an increased spacing different=
%%         one-and-a-half or double spacing is required then the spacing
%%         environment can be used.  The spacing environment takes one
%%         argument which is the larger baselinestretch to use,
%%         e.g., \begin{spacing}{2.5}.
%%         \footins is adjusted the same as \parskip - appears to work.=
%%         stretch parts but don't consider that to be crucial
%%         Removed code for altering spacing before and after displayed
%%         equations - just looked too much.
%% MODS:
%%         Redefinition of \spacing and \endspacing for consistency with
%%         TeX 3.x inserted by George Greenwade.  Modification provided=
%%         Philip Ross (ROSS@UK.AC.ABDN.BIOMED) and John Byrne via=
%%   Old Documentation follows:
%%         1. A new environment "singlespace" is provided, within which=
%%            spacing will apply.
%%            JFL - changed so that it works in regular text and so that
%%            vertical space before and after is correctly computed
%%         2. Double spacing is turned off within footnotes and floats=
%%            and tables).
%%         3. Proper double spacing happens below tabular environments and=
%%            other places where LaTeX uses a strut.
%%         4. Slightly more space is inserted before footnotes.
%%         5. JFL - fixes spacing before and after displayed math
%%    mods:   Jean-Francois Lamy
%%            lamy@utai.uucp
%%    . Increasing struts may possibly cause some other obscure part of
%%      formatting to fall over.
%%    . \begin{singlespace}\begin{quote} produces the wrong spacing=
%%      the quote (extra glue is=

\def\doublespacing{\ifcase \@ptsize \relax % 10pt
  \or % 11pt
  \or % 12pt
 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
 \else% NFSS (2.09) present

\def\onehalfspacing{\ifcase \@ptsize \relax % 10pt
  \or % 11pt
  \or % 12pt
 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
 \else% NFSS (2.09) present

 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
 \else% NFSS (2.09) present
  \vskip\baselineskip% Correction for coming into=


%---Stretch the baseline BEFORE calculating the strut size. This improves
%   spacing below tabular environments etc., probably...
%   Comments are welcomed.

\ifx\undefined\@newbaseline% NFSS not present; 2.09 or=
\def\@setsize#1#2#3#4{\@nomath#1%--modified 1993.04.07--GDG per KPC
=20  #2\baselineskip\baselinestretch\baselineskip
   \setbox\strutbox\hbox{\vrule height.7\baselineskip
      depth.3\baselineskip width\z@}%
   \skip\footins \baselinestretch\skip\footins
\else% NFSS (2.09) present
    \@depth.3\baselineskip \@width\z@}%

%---Increase the space between last line of text and footnote=
%\skip\footins 20pt plus4pt minus4pt

%---Reset baselinestretch within footnotes and=

\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
    \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
       \@tfor \@tempa :=3D#2\do
                        {\if\@tempa h\advance\@tempcnta \@ne\fi
                         \if\@tempa t\advance\@tempcnta \tw@\fi
                         \if\@tempa b\advance\@tempcnta 4\relax\fi
                         \if\@tempa p\advance\@tempcnta 8\relax\fi

    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
   \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext

% A single spaced quote (say) is done by surrounding singlespace with=
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or=
 \else% NFSS (2.09) present


%  spacing, doublespace and onehalfspace all are meant to INCREASE the
%  spacing (i.e. calling onehalfspace from within doublespace will not
%  produce a graceful transition between spacings)
% Next two definitions fixed for consistency with TeX=
 \begingroup             % moved from \endspacing by PGBR 29-1-91
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
 \else% NFSS (2.09) present

 \vskip \parskip%
 \vskip \baselineskip%
 \vskip -\parskip%
 \vskip -\baselineskip}

% one and a half spacing is 1.5 x pt size
\def\onehalfspace{\ifcase \@ptsize \relax  % 10pt
   \or % 11pt
   \or % 12pt

% double spacing is 2 x pt size
\def\doublespace{\ifcase \@ptsize \relax % 10pt
  \or % 11pt
  \or % 12pt

% gt - EMSH chose to omit display math part that follows.
% She wrote (see above) that the "altered spacing before and after=
% equations ... just looked too much".
% Fix up spacing before and after displayed math
% (arraystretch seems to do a fine job for inside LaTeX displayed math,
% since array and eqnarray seem to be affected as expected).
% Changing \baselinestretch and doing a font change also works if done=
% but then you have to change @setsize to remove the call to=
  \abovedisplayskip \baselinestretch\abovedisplayskip%
  \belowdisplayskip \abovedisplayskip%
  \abovedisplayshortskip \baselinestretch\abovedisplayshortskip%
  \belowdisplayshortskip \baselinestretch\belowdisplayshortskip}