%%% ======================================================================
%%%  @LaTeX-style-file{
%%%     filename        = "setspace.sty",
%%%     version         = "6.7",
%%%     date            = "Fri 1 December 2000",
%%%     time            = "17:49 UT+11",
%%%     author          = "Geoffrey Tobin",
%%%     address         = "Department of Electronic Engineering
%%%                        Faculty of Science and Technology
%%%                        La Trobe University
%%%                        Bundoora VIC 3086
%%%                        Australia",
%%%     email           = "G.Tobin@latrobe.edu.au (Internet)",
%%%     telephone       = "(+ 613) 9479-3736",
%%%     FAX             = "(+ 613) 9479-3025",
%%%     supported       = "yes",
%%%     archived        = "CTAN",
%%%     distribution    = "freely redistributable",
%%%     keywords        = "LaTeX package, line spacing",
%%%     codetable       = "ISO/ASCII",
%%%     checksum        = "11793 546 2608 21972",
%%%     docstring       = "setspace.sty is a LaTeX (2e) package.
%%%                        Comments and bug reports welcome!
%%%
%%%                        This includes GDG's modification to Erica Harris'
%%%                        setspace.sty.  The main aspects of this
%%%                        modification deal with the definitions of
%%%                        \singlespacing \onehalfspacing, and
%%%                        \doublespacing, (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 definition 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.
%%%
%%%                        Modified by GT on 23 Jan 1996, to correct
%%%                        \everymath bug, first reported by Mario
%%%                        Wolczko <mario@cs.man.ac.uk> on 9 June 1992.
%%%
%%%                        Modified by GT on 23 Jan 1996, to correct
%%%                        usage of comment characters in macro
%%%                        definitions.
%%%
%%%                        Modified by GT on 23 Jan 1996, to update
%%%                        (adjusted) \@xfloat definition for LaTeX2e.
%%%                        Bug report was courtesy of Kay Nettle.
%%%
%%%                        Modified by GT on 24 Jan 1996, to update
%%%                        (adjusted) \@footnotetext definition for
%%%                        LaTeX2e, and to add an adjusted LaTeX2e
%%%                        \@mpfootnotext definition for minipages.
%%%                        Bug report was courtesy Kay Nettle.
%%%
%%%                        Changed by GT on 6 Feb 1996, into a LaTeX2e
%%%                        package.
%%%
%%%            Made more package-like by GT on 14 Feb 1996,
%%%            by adding standard messages.
%%%
%%%            GT replaced \@normalsize by \normalsize on 28
%%%            Sep 1996.  This change was successively
%%%            advised by:
%%%
%%%              Rowland J.~Bartlett
%%%              <R.J.Bartlett@bolton.ac.uk>
%%%              on Tue 6 Aug 96,
%%%
%%%              Ted Stern
%%%              <stern@amath.washington.edu>
%%%              on Wed 7 Aug 96,
%%%
%%%              Michal Jaegermann
%%%              <michal@ellpspace.math.ualberta.ca>
%%%              on Fri 27 Sep 96.
%%%
%%%                        GT:  Sat 28 Sep 1996:  Added call to
%%%                        \setspace@size in \setstretch, as suggested
%%%                        by David Hull <hull@cs.uiuc.edu>
%%%                        on Wed 24 July 1996.
%%%
%%%                        GT:  Sat 28 Sep 1996:  Pared \setspace@size
%%%                        mercilessly down to \@currsize, following
%%%                        advice given on Fri 27 Sep 1996 by Michal
%%%                        Jaegermann <michal@ellpspace.math.ualberta.ca>.
%%%                        Retained this macro for flexibility.
%%%
%%%            Code rearranged by GT, Sat 28 Sep 1996, to give
%%%            greater prominence to \setstretch.
%%%
%%%            Also, GT changed (Sat 28 Sep 1996) many
%%%            occurrences of \def to \newcommand,
%%%            \renewcommand, or \newenvironment,
%%%            as seemed appropriate.
%%%
%%%                        GT, Tue 10 Dec 1996:  Following a suggestion
%%%                        by Ted Stern, the `single' spacing is now
%%%                        settable by the user.  This is for slightly
%%%                        large fonts such as Lucida Bright.
%%%
%%%                        GT, Wed 11 Dec 1996:  For simplicity and
%%%                        maintainability, call \onehalfspacing in
%%%                        the onehalfspace environment, and
%%%                        \doublespacing in the doublespace
%%%                        environment.
%%%
%%%                        GT, Wed 11 Dec 1996:  Also deleted
%%%                        \setspace@size from \setstretch,
%%%                        as \@currsize suffices.
%%%
%%%                        Modified by Brett Presnell (BP)
%%%                        <presnell@maths.anu.edu.au> on 21 Mar 1998
%%%                        to add nodisplayskipstretch option, which
%%%                        turns off the stretching of the space
%%%                        before and after displays, which is often
%%%                        excessive, particularly with doublespaced
%%%                        documents.  Also added the
%%%                        setdisplayskipstretch command, which allows
%%%                        the user to choose by how much to stretch
%%%                        the space before and after displays
%%%                        independently from the setting of
%%%                        baselinestretch.  This works regardless of
%%%                        whether the nodisplayskipstretch option is
%%%                        in effect.
%%%
%%%                        GT, Wed 15 Apr 1998:  Added the singlespace*
%%%                        environment requested by
%%%                        Mark Olesen <olesen@weber.me.queensu.ca>
%%%                        on Sat 24 May 1997 and Wed 18 June 1997.
%%%                        This is reported to give improved vertical
%%%                        spacing around itemize and quote environments.
%%%
%%%                        GT, Wed 15 Apr 1998:  David Hull pointed out on
%%%                        Fri 12 Dec 1997 that the \belowdisplayskip line
%%%                        in the \everydisplay was mistyped.  Now fixed.
%%%
%%%                        GT, Thu 26 Nov 1998:  Finally got round to
%%%                        fixing the absence of \begingroup from
%%%                        onehalfspace and doublespace environments.
%%%                        Thanks to:  Bernd Schandl, Ron Smith,
%%%                        Himanshu Gohel, and Kevin Ruland, for bringing
%%%                        it to my long overdue attention.
%%%
%%%                        GT, Tue 27 July 1999:  On Saturday 24 July
%%%                        1999, Alexander L. Wolf <alw@cs.colrado.edu>
%%%                        informed me that the \doublespace and
%%%                        \onehalfspace _macros_ are still at fault.
%%%
%%%                        GT, Fri 3 March 2000:  Today Stefano
%%%                        Lacaprara of Italy brought my attention to
%%%                        the need to extend the commands and macros
%%%                        to point sizes other than 10, 11 and 12.
%%%                        Since there's no general formula for the
%%%                        line stretch values in terms of point size,
%%%                        and they vary only slightly between 10, 11
%%%                        and 12 pt, and furthermore the values were
%%%                        presumably optimised specifically for the
%%%                        Computer Modern fonts, i've chosen to use
%%%                        the 10 pt values as the generic defaults.
%%%
%%%                        GT, Fri 1 December 2000:  George Pearson
%%%                        requested package options for the three
%%%                        common spacings.
%%%
%%%                        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
%%%
%%% Update to LaTeX (2e) :  6 Feb 1996.
%%% Description:  LaTeX Document Package "setspace"
%%%
%%% Usage:
%%%                \documentclass[...]{...}
%%%                \usepackage{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, \singlespacing, \onehalfspacing, and
%%         \doublespacing, 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).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\NeedsTeXFormat {LaTeX2e}[1994/12/01]
\def \filename {setspace.sty}
\def \filedate {2000/12/01}
\def \fileversion {6.7}
\ProvidesPackage {setspace}[\filedate\space\fileversion\space
  Contributed and Supported LaTeX2e package]
\typeout {Package: `setspace' \fileversion\space <\filedate>}

% BP: add nodisplayskipstretch option and \setdisplayskipstretch command.

\newcommand{\displayskipstretch}{\baselinestretch}
\newcommand{\setdisplayskipstretch}[1]{\renewcommand{\displayskipstretch}{#1}}
\DeclareOption{nodisplayskipstretch}{\setdisplayskipstretch{1.0}}

% GT: add George Pearsons' suggested options.

\DeclareOption{singlespacing}{\AtEndOfPackage{\singlespacing}}
\DeclareOption{onehalfspacing}{\AtEndOfPackage{\onehalfspacing}}
\DeclareOption{doublespacing}{\AtEndOfPackage{\doublespacing}}

\ProcessOptions

% GT:  Sat 28 Sep 1996:  Widely using \newcommand, \renewcommand, and
% \newenvironment, instead of \def.

% ** Line space commands.

\newcommand{\setstretch}[1]{%
  \def\baselinestretch{#1}%
  \@currsize
}

% GT:  Sat 28 Sep 1996:  spacing commands and environments modified to
% use \setstretch instead of \baselinestretch.
%
% GT:  Sat 28 Sep 1996:  No, I don't know understand the line spacing
% algorithms!  If someone (LaTeX team) can enlighten me as to the
% general rule, please do!  It would be very pleasant if setspace.sty
% were suited for document font sizes other than 10, 11 and 12 pt.
%
% GT:  Tue 10 Dec 1996:  Instead of fixing singlespacing to exact unity,
% allow user to redefine it (only slightly, please!) from its initial
% value of unity, in the case when a particular font is slightly larger
% or slightly smaller than its point size would indicate.  This change
% affects setspace's single spacing commands, and LaTeX's footnote and
% float environments.  The one and a half, double, and arbitrary
% spacing commands are unaltered.

\newcommand{\SetSinglespace}[1]{%
  \def\setspace@singlespace{#1}%
}

% Here's the default single line spacing value.
\SetSinglespace{1}

\newcommand{\singlespacing}{%
  \setstretch {\setspace@singlespace}%  normally 1
  \vskip \baselineskip  % Correction for coming into singlespace
}

\newcommand{\onehalfspacing}{%
  \setstretch{1.25}%  default
  \ifcase \@ptsize \relax % 10pt
    \setstretch {1.25}%
  \or % 11pt
    \setstretch {1.213}%
  \or % 12pt
    \setstretch {1.241}%
  \fi
}

\newcommand{\doublespacing}{%
  \setstretch {1.667}%  default
  \ifcase \@ptsize \relax % 10pt
    \setstretch {1.667}%
  \or % 11pt
    \setstretch {1.618}%
  \or % 12pt
    \setstretch {1.655}%
  \fi
}

% ** Modification of the LaTeX command \@setsize.

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

% GT:  Sun 29 Sep 1996:  Question:  Is this code anywhere near correct
% since this part of LaTeX (in, eg, latex.ltx) has been greatly changed?

% GT:  Sun 29 Sep 1996:  The meanings of the arguments to \@setsize
% appear to be (whatever these may signify) :
% current size; font baselineskip; ignored (!); and font size.

% GT:  Sun 29 Sep 1996:  Note that \@setsize (in latest LaTeX,
% \@setfontsize, which is called by \@setsize) seems to be the only
% place in purely modern LaTeX where \@currsize is set, and ltxguide.cls
% seems to be the only file in the LaTeX base distribution that uses it!

\def\@setsize#1#2#3#4{%
  % Modified 1993.04.07--GDG per KPC
  \@nomath#1%
  \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}

% ** Float and footnote adjustments to compensate for a change in the
% ** main text's line spacing.

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

%---Reset baselinestretch within floats and footnotes.

% GT:  Tue 23 Jan 1996:  This is where the conflict with the combination
% of the color package and the figure environment used to occur.

% Floats.

% GT:  Sat 28 Sep 1996:  \@xfloat is the only place where \normalsize
% is still used in setspace.sty !

\let\latex@xfloat=\@xfloat
\def\@xfloat #1[#2]{%
  \latex@xfloat #1[#2]%
  \def\baselinestretch{\setspace@singlespace}%
  \normalsize
}

% GT:  Wed 24 Jan 1996:  This footnote code was copied from LaTeX and
% modified rather naively.  It had to be brought up to date, not only
% because of LaTeX's new color ability, but also because ther had
% been major changes to this code in LaTeX at least as far back as
% March 1992.

% Normal, bottom of the page, footnotes.
%
% GT:  Based HEAVILY on original LaTeX (2e) code.  A standard hook would
% be MUCH preferred, so that LaTeX's footnote implementation needn't be
% copied each time it changes.
%
% GT:  The \protected@edef requires at least the December 1994 LaTeX.
% This is precisely the kind of VERSION DEPENDENCY situation that
% cannot (AFAIK) be avoided, because LaTeX (2e) LACKS appropriate
% standard hooks and/or context markers.

\long\def\@footnotetext#1{%
  \insert\footins{%
% GT:  Next line added.  Hook desired here!
    \def\baselinestretch {\setspace@singlespace}%
    \reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth
    \@parboxrestore
    \protected@edef\@currentlabel{%
      \csname p@footnote\endcsname\@thefnmark
    }%
    \color@begingroup
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
    \color@endgroup}}

% Minipage footnotes.

\long\def\@mpfootnotetext#1{%
  \global\setbox\@mpfootins\vbox{%
    \unvbox \@mpfootins
%  GT:  Next line added.  Hook desired here!
    \def\baselinestretch {\setspace@singlespace}%
    \reset@font\footnotesize
    \hsize\columnwidth
    \@parboxrestore
    \protected@edef\@currentlabel{%
      \csname p@mpfootnote\endcsname\@thefnmark}%
    \color@begingroup
      \@makefntext{%
       \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
   \color@endgroup}}

% ** Line space environments.

% A single spaced quote (say) is done by surrounding singlespace with quote.

\newenvironment{singlespace}{%
  \vskip \baselineskip
  \setstretch {\setspace@singlespace}%
  \vskip -\baselineskip
}{%
  \par
}

% GT (c/o Mark Olesen), Wed 15 April 1998.

\newenvironment{singlespace*}{%
  \setstretch {\setspace@singlespace}%
  \vskip -\baselineskip
}{%
  \vskip -0.5\baselineskip
}

%  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

% In order to use \newenvironment, while easily using same code for
% end of each environment, the code that used to be in \endspacing has
% been moved into a new (but internal) macro, \restore@spacing.

\newcommand{\restore@spacing}{%
    \par
    \vskip \parskip
    \vskip \baselineskip
  \endgroup
  \vskip -\parskip
  \vskip -\baselineskip
}

\newenvironment{spacing}[1]{%
  \par
  \begingroup             % moved from \endspacing by PGBR 29-1-91
    \setstretch {#1}%
}{%
  \restore@spacing
}

% one and a half spacing is 1.5 x pt size
\newenvironment{onehalfspace}{%
  \begingroup
    \onehalfspacing
}{%
  \restore@spacing
}

% double spacing is 2 x pt size
\newenvironment{doublespace}{%
  \begingroup
    \doublespacing
}{%
  \restore@spacing
}

% 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)
%
% GT:  The \belowdisplayskip line was mistyped; now fixed, courtesy of
% David Hull.
%
% GT:  Brett Parnell has addressed EMSH's concern by replacing
% \baselinestretch by \displayskipstretch in displays, as follows.

\everydisplay\expandafter{%
  \the\everydisplay
  \abovedisplayskip \displayskipstretch\abovedisplayskip
  \belowdisplayskip \displayskipstretch\belowdisplayskip
  \abovedisplayshortskip \displayskipstretch\abovedisplayshortskip
  \belowdisplayshortskip \displayskipstretch\belowdisplayshortskip
}

\endinput

%%% EOF.
