\makeatletter

% Single- and double-spacing macros for LATEX

% To use these macros, simply include "spacing" as an optional argument to the
% \documentsyle command, e.g.,
%
%       \documentstyle[12pt,spacing]{article}
%
% in your LATEX file.  The options can appear in any order.

% These macros are designed to be used with \begin and \end in the typical
% LATEX-environment way, e.g.,
%
%       \begin{singlespace}
%           .
%           .
%           .
%        \begin{doublespace}
%            .
%            .
%            .
%        \end{doublespace}
%           .
%           .
%           .
%       \end{singlespace}

\def\singlespace{\par%
 \vskip \parskip%
 \vskip \baselineskip%
 \def\baselinestretch{1}%
 \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi%
 \vskip -\parskip%
 \vskip -\baselineskip}

\def\endsinglespace{\par}

\def\doublespace{\par%
 \def\baselinestretch{2}%
 \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}

\def\enddoublespace{\par%
 \vskip \parskip%
 \vskip \baselineskip%
 \endgroup%
 \vskip -\parskip%
 \vskip -\baselineskip%
 \begingroup}

\makeatother
