%%% ======================================================================
%%%  @LaTeX-style-file{
%%%     filename        = "setspace.sty",
%%%     version         = "3.1",
%%%     date            = "25 May 1994",
%%%     time            = "10:21:09.67 CDT",
%%%     author          = "George D. Greenwade",
%%%     address         = "Department of Economics and Business Analysis
%%%                        College of Business Administration
%%%                        P. O. Box 2118
%%%                        Sam Houston State University
%%%                        Huntsville, Texas, USA 77341-2118",
%%%     email           = "bed_gdg@SHSU.edu (Internet)
%%%                        BED_GDG@SHSU     (BITNET)
%%%                        SHSU::BED_GDG    (THENET)",
%%%     telephone       = "(409) 294-1266",
%%%     FAX             = "(409) 294-3712",
%%%     supported       = "yes",
%%%     archived        = "SHSU*",
%%%     keywords        = "LaTeX style, spacing, doublespace, half spacing,
%%%                        modifications to original",
%%%     codetable       = "ISO/ASCII",
%%%     checksum        = "14962 309 1381 13018",
%%%     docstring       = "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."
%%% }
%%% ======================================================================
%% 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
   #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 :=#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}\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}}}

% 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=\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=\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
