Caltech Home > PMA Home > LaTex style file
Search

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,=
 1987).
%---------------------------------------------------------------------------=
--
% The secondary style of [preprint] sets the conditional=
 ``\ifpreprintstyle''
% TRUE.  The command ``\preprint'', at the beginning of the document, has
% the same effect.  This causes a local publication number (see=
 ``\pubnum''
% below) to be typeset in the upper right corner of the title page.  The=
 author
% 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=
 at
% the beginning of the document.  This produces a line at the bottom of=
 every
% page, with ``DRAFT'' in the lower left corner, and the date and time=
 when
% 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=
 corner
% 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=
 according
% to the Caltech instructions, and including all of the information=
 defined
% by the macros above.  Unlike the standard version, ``\maketitle'' may be
% repeated several times in a document:  the terms defined for it are=
 _not_
% reset after the page is formatted.
%
% The command ``\extrachapter'' will generate an unnumbered chapter=
 heading,
% similar to the LaTeX ``\chapter*'' command.  In addition,=
 ``\extrachapter''
% 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=
 page,
% 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=
 generates
% an unnumbered chapter with an entry in the table of contents.  The=
 author
% 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,=
 with
% 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=
 ``draftfoot''.
%---------------------------------------------------------------------------=
--
%%%
%%% Pre-define commands required for option-processing
%%%
%
% \draftfoot will put "DRAFT" and the current date and time in the=
 footer
%
\newif\ifthesisdraft
\def\draftfoot{\thesisdrafttrue\thesisfooter{Draft Copy\hss\thesistime}}
%
% \preprint will set the conditional \ifpreprintstyle to be=
 TRUE
%
\newif\ifpreprintstyle
\def\preprint{\preprintstyletrue}

%%%
%%% Select between LaTeX 2.09 and LaTeX2e, based on \documentclass=
 command
%%%
%
\ifx\undefined\documentclass		%%% LaTeX 2.09 configuration %%%
%
  \typeout{Document style `cit_thesis'.  8 February 1995, M. Kelsey}
%
% Define actions for style options
%
  \@namedef{ds@draftfoot}{\thesisdrafttrue}
  \@namedef{ds@preprint}{\preprintstyletrue}
%
  \input report.sty\relax		%% Standard REPORT format
  \input setspace.sty\relax		%% Load package for=
 double-spacing
%
\else					%%% LaTeX2e configuration %%%
  \NeedsTeXFormat{LaTeX2e}[1994/06/01]
  \ProvidesClass{cit_thesis}[1995/02/08 Caltech Thesis class]
%
% Define actions for style options
%
  \DeclareOption{draftfoot}{\thesisdrafttrue}
  \DeclareOption{preprint}{\preprintstyletrue}
%
  \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
  \ProcessOptions*			%% Process remaining options locally
  \LoadClass{report}			%% Standard REPORT format
  \RequirePackage{setspace}		%% Load package for=
 double-spacing
\fi
%
%%%
%%% Override standard REPORT format for thesis layout requirements
%%%
%
% Define \thispagestyle to null so that \chapter doesn't change page=
 style.
%
\let\thesis@document\document
\def\document{\thesis@document\thispagestyle{empty}\def\thispagestyle##1{}}
%
% Define commands to generate draft-mode=
 footers
%
\def\thesisfooter#1{\def\@oddfoot{#1} \def\@evenfoot{#1}}
%
% Construct timestamp information for draft-mode=
 footer
%
\newcount\timehh\newcount\timemm
\def\thesistime{%
  \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=
 inches.
%
\def\@oddhead{\hss\thepage\hss}=
 \def\@evenhead{\hss\thepage\hss}
\let\@oddfoot\@empty \let\@evenfoot\@empty

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

\def\@lextrachapter[#1]#2{%	User specified optional contents entry
 =
 \chapter*{#2}\addcontentsline{toc}{chapter}{#1}%
}

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

\def\@makeschapterhead#1{\vspace*{10pt}
  {\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=
 this.
%
\newenvironment{frontmatter}%
{\pagenumbering{roman}}{\clearpage\pagenumbering{arabic}}
%
% Additional titlepage=
 definitions
%
\def\degreeaward{\gdef\@degreeaward}
\degreeaward{Doctor of Philosophy}			% Default is=
 Ph.D.

\def\university{\gdef\@university}
\university{California Institute of Technology}		% Default is=
 Caltech

\def\address{\gdef\@address}
\address{Pasadena, California}				% Default is=
 Caltech

\def\copyyear{\gdef\@copyyear}
\copyyear{\the\year}					% Default is=
 today

\def\pubnum{\gdef\@pubnum}
\pubnum{}						% No publication number
%
% The titlepage must conform to CIT requirements
%
\def\maketitle{%
 {\parindent=3D0pt
 \begin{titlepage}
   \let\footnotesize\small \let\footnoterule\relax \setcounter{page}{1}
   \vskip-\headsep
   \ifpreprintstyle\ifx\empty\@pubnum\else
      {\singlespace\hfill\hbox{\begin{tabular}{l}\@pubnum\end{tabular}}}
      \titleskip
   \fi\fi
   \begin{center}
     {\Large\bf \@title\par}
     \titleskip
     Thesis by\\
     {\large \@author\par}
     \authorskip
     In Partial Fulfillment of the Requirements\\
     for the Degree of\\
     \@degreeaward\par
     \vfill
     \@university\\ 
     \@address\par
     \authorskip
     \@copyyear\par
     {\normalsize (Submitted \@date)\par}
   \end{center}
   \vspace*{.5in}
 \end{titlepage}}
}				%% End of \maketitle
%
% The copyright page is new, must conform to CIT=
 requirements
%
\def\makecopyright{%
 \setcounter{page}{2}
 {\parindent=3D0pt
 \null				% Forces rest to bottom of page
 \vfill
 \begin{center}
   \copyright\quad \@copyyear\\
   \@author\\
   All Rights Reserved
 \end{center}}
 \newpage
}				%% End of \makecopyright
%
% The abstract and acknowledgements are treated as unnumbered chapters
% with Table of Contents=
 entries.
%
\def\abstract{\extrachapter{Abstract}}		%=
 \begin{abstract}
\def\endabstract{\clearpage}			%=
 \end{abstract}

\def\acknowledgements{\extrachapter{Acknowledgments}}
\def\endacknowledgements{\clearpage}
%
% The {thebibliography} environment should put an entry into the Table
% of Contents, just as the {abstract} and {acknowledgements} environments
%=
 do.
%
\let\thesis@thebibliography=3D\thebibliography

\def\thebibliography#1{\thesis@thebibliography{#1}%
  \addcontentsline{toc}{chapter}{Bibliography}}
%
\endinput


%%%=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
%%%  @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=
 Analysis
%%%                        College of Business Administration
%%%                        P. O. Box 2118
%%%                        Sam Houston State University
%%%                        Huntsville, Texas, USA 77341-2118",
%%%     email           =3D "bed_gdg@SHSU.edu (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=
 spacing,
%%%                        modifications to original",
%%%     codetable       =3D "ISO/ASCII",
%%%     checksum        =3D "14962 309 1381 13018",
%%%     docstring       =3D "This is a very quick hack to get=
 setspace.sty
%%%                        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=
 of
%%%                        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=
 of
%%%                        \singlespacing seems to  make for a cleaner
%%%                        transition from multiple spacing back to=
 single
%%%                        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=
 <kaja@daimi.aau.dk>
%%%                        for the fix!!
%%%
%%%                        Modified by GDG on May 24, 1994, to change=
 toggle
%%%                        definition from \selectfont to=
 \@newbaseline.
%%%
%%%                        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
%%%                        stanton@haas.berkeley.edu (Richard Stanton). 
%%%                        This should help with some of the awkward=
 math
%%%                        placements in changing spacings.
%%%
%%%                        The original headers of the main file cover=
 the
%%%                        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."
%%% }
%%%=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
%% 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=
 then
%%         the \setstretch{baselinestretch} command can be used in the
%%         preamble to set the baselinestretch appropriately.  The=
 default
%%         spacing with this style option is single spacing.
%%
%%         Three environments, singlespace, onehalfspace, and=
 doublespace,
%%         allow the spacing to be changed within the document.  Both the
%%         onehalfspace and doublespace environments are intended to=
 increase
%%         the spacing, so the onehalfspace environment should not be used=
 in
%%         a double spaced document.  If an increased spacing different=
 from
%%         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.=
 Lose
%%         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=
 by
%%         Philip Ross (ROSS@UK.AC.ABDN.BIOMED) and John Byrne via=
 INFO-TeX.
%%
%% PLEASE REPORT ANY BUGS
%%
%%   Old Documentation follows:
%%         1. A new environment "singlespace" is provided, within which=
 single
%%            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=
 (figures
%%            and tables).
%%         3. Proper double spacing happens below tabular environments and=
 in
%%            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@ai.toronto.edu
%%            lamy@utai.uucp
%%
%% POSSIBLE BUGS:
%%    . Increasing struts may possibly cause some other obscure part of
%%      formatting to fall over.
%%    . \begin{singlespace}\begin{quote} produces the wrong spacing=
 before
%%      the quote (extra glue is=
 inserted).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=
%

\def\doublespacing{\ifcase \@ptsize \relax % 10pt
    \def\baselinestretch{1.667}
  \or % 11pt
    \def\baselinestretch{1.618}
  \or % 12pt
    \def\baselinestretch{1.655}
  \fi
 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
  \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
 \else% NFSS (2.09) present
  \@newbaseline%
\fi%
}

\def\onehalfspacing{\ifcase \@ptsize \relax % 10pt
    \def\baselinestretch{1.25}
  \or % 11pt
    \def\baselinestretch{1.213}
  \or % 12pt
    \def\baselinestretch{1.241}
  \fi
 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
  \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
 \else% NFSS (2.09) present
  \@newbaseline%
\fi%
}

\def\singlespacing{\def\baselinestretch{1}
 \ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
  \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
 \else% NFSS (2.09) present
  \@newbaseline%
\fi%
  \vskip\baselineskip% Correction for coming into=
 singlespace
}

\def\setstretch#1{\renewcommand{\baselinestretch}{#1}}

%---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=
 2e
\def\@setsize#1#2#3#4{\@nomath#1%--modified 1993.04.07--GDG per KPC
   \let\@currsize#1\baselineskip
=20  #2\baselineskip\baselinestretch\baselineskip
   \parskip\baselinestretch\parskip
   \setbox\strutbox\hbox{\vrule height.7\baselineskip
      depth.3\baselineskip width\z@}%
   \skip\footins \baselinestretch\skip\footins
   \normalbaselineskip\baselineskip#3#4}
\else% NFSS (2.09) present
\def\@newbaseline{\setnew@baselineskip
    \baselineskip\baselinestretch\baselineskip
    \setbox\strutbox\hbox{\vrule\@height.7\baselineskip
    \@depth.3\baselineskip \@width\z@}%
    \normalbaselineskip\baselineskip}%
\fi%

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

%---Reset baselinestretch within footnotes and=
 floats.

\def\@xfloat#1[#2]{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\def\@captype{#1}\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{\@tempcnta\csname ftype@#1\endcsname
       \multiply\@tempcnta\@xxxii\advance\@tempcnta\sixt@@n
       \@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
         }\global\count\@currbox\@tempcnta}\@fltovf\fi
    \global\setbox\@currbox\vbox\bgroup
    \def\baselinestretch{1}\@normalsize
    \boxmaxdepth\z@
    \hsize\columnwidth=
 \@parboxrestore}

\long\def\@footnotetext#1{\insert\footins{\def\baselinestretch{1}\footnotesi=
ze
    \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}}}

% A single spaced quote (say) is done by surrounding singlespace with=
 quote.
%
\def\singlespace{%
\vskip\baselineskip%
\def\baselinestretch{1}%
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or=
 2e
\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
 \else% NFSS (2.09) present
  \@newbaseline%
\fi%
\vskip-\baselineskip}

\def\endsinglespace{\par}

%  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=
 3.x
\def\spacing#1{\par%
 \begingroup             % moved from \endspacing by PGBR 29-1-91
 \def\baselinestretch{#1}%
\ifx\undefined\@newbaseline% NFSS not present; 2.09 or 2e
 \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
 \else% NFSS (2.09) present
  \@newbaseline%
\fi%
}

\def\endspacing{\par%
 \vskip \parskip%
 \vskip \baselineskip%
 \endgroup%
 \vskip -\parskip%
 \vskip -\baselineskip}

% one and a half spacing is 1.5 x pt size
\def\onehalfspace{\ifcase \@ptsize \relax  % 10pt
     \spacing{1.25}
   \or % 11pt
     \spacing{1.213}
   \or % 12pt
     \spacing{1.241}
   \fi}
\let\endonehalfspace=3D\endspacing

% double spacing is 2 x pt size
\def\doublespace{\ifcase \@ptsize \relax % 10pt
    \spacing{1.667}
  \or % 11pt
    \spacing{1.618}
  \or % 12pt
    \spacing{1.655}
  \fi}
\let\enddoublespace=3D\endspacing

% gt - EMSH chose to omit display math part that follows.
% She wrote (see above) that the "altered spacing before and after=
 displayed
% 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=
 here,
% but then you have to change @setsize to remove the call to=
 @nomath)
%
\everydisplay{
  \abovedisplayskip \baselinestretch\abovedisplayskip%
  \belowdisplayskip \abovedisplayskip%
  \abovedisplayshortskip \baselinestretch\abovedisplayshortskip%
  \belowdisplayshortskip \baselinestretch\belowdisplayshortskip}

\endinput