%% Copyright 1986 Stephen Page % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `unmaintained'. % % This work consists of the file doublespace.sty. % % The licence statement above was added by Clea F. Rees on behalf of % Stephen Page on 2008/10/31. %------------------------------------------------------------------------------ % % LaTeX Document style option "doublespace" % -- usage: \documentstyle[...,doublespace,...]{...} % % This style option produces a double-spaced document by redefining % the LaTeX parameter \baselinestretch to 2. % % It also fixes a number of problems with standard LaTeX, as 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 is 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 % 6. MAR - fix to work with new font selection scheme if used % 7. KPC - fix superfluous space bug. % 8. HGS - fixed for use with NFSS2 % % Note: This version sets a baselinestretch of 2. If this is too much, % put \setstretch{1.7} (or some appropriate value) before the % \begin{document} command. To print the document with single spacing % again, without removing "singlespace" environments, just put a % \setstretch{1} at the top of the document. % % PLEASE REPORT ANY BUGS % % Modified by: Kaja P. Christiansen, kaja@daimi.aau.dk % % Modified by: Mark A. Roth, mroth@afit.af.mil % % Modified by: Jean-Francois Lamy % lamy@ai.toronto.edu % lamy@utai.uucp % % Modified by: Hendrik G. Seliger (HGS) % hank@Blimp.automat.uni-essen.de % % Author: Stephen Page -- sdpage@prg.oxford.ac.uk % sdpage%prg.oxford.ac.uk@cs.ucl.ac.uk % % Release date: 6 July 1986 - September 3, 1986 % % Known bugs: % . It might be nice if spacing before the footnote rule (\footins) % were provided in a tidier way. % . 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), use \begin{quote}\begin{singlespace} % . shouldn't @setsize stretch parskip as well? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %---Set up double spacing \def\baselinestretch{2} %---New command "\setstretch" (slightly more mnemonic... and easier to type) \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. % This change not needed with new font selection scheme-MAR \ifx\undefined\selectfont %then new font selection scheme not invoked-MAR \def\@setsize#1#2#3#4{\@nomath#1%-KPC \let\@currsize#1\baselineskip #2\baselineskip\baselinestretch\baselineskip \parskip\baselinestretch\parskip \setbox\strutbox\hbox{\vrule height.7\baselineskip depth.3\baselineskip width\z@}%-KPC \normalbaselineskip\baselineskip#3#4} \else %new font selection scheme is defined, set up way to change baselines-MAR % NFSS2 does not have \setnew@baselineskip anymore - HGS \def\@newbaseline{% \ifx\undefined\setnew@baselineskip% HGS \baselineskip\f@baselineskip\relax% \else% HGS \setnew@baselineskip% \fi% HGS \baselineskip\baselinestretch\baselineskip \setbox\strutbox\hbox{\vrule\@height.7\baselineskip \@depth.3\baselineskip \@width\z@}% \normalbaselineskip\baselineskip}% -MAR \fi %-MAR %---Increase the space between last line of text and footnote rule. % This is a very untidy way to do it! \skip\footins 20pt plus4pt minus4pt %---Reset baselinestretch within footnotes and floats. Originally stolen % from Stanford thesis style. \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} \ifx\undefined\selectfont %then new font selection scheme not invoked-MAR \small\normalsize \else %else new font selection scheme is invoked-MAR \@newbaseline %include new baselinestretch-MAR \fi %-MAR \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}}} % Stolen from MIT. % % A single spaced quote (say) is done by surrounding singlespace with quote. % \def\singlespace{% \vskip\parskip% \vskip\baselineskip% \def\baselinestretch{1}% \ifx\undefined\selectfont %then new font selection scheme not invoked-MAR \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi% \else %else new font selection scheme is invoked-MAR \@newbaseline %include new baselinestretch-MAR \fi %-MAR \vskip-\parskip% \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) % \def\spacing#1{\par% \begingroup % moved from \endspacing by PGBR 1-29-91 \def\baselinestretch{#1}% \ifx\undefined\selectfont %then new font selection scheme not invoked-MAR \ifx\@currsize\normalsize\@normalsize\else\@currsize\fi \else %else new font selection scheme is invoked-MAR \@newbaseline %include new baselinestretch-MAR \fi %-MAR } \def\endspacing{\par% \vskip \parskip% \vskip \baselineskip% \endgroup% \vskip -\parskip% \vskip -\baselineskip% } %\begingroup used to be here, PGBR 1-29-91 \def\onehalfspace{\spacing{1.5}} \let\endonehalfspace=\endspacing \def\doublespace{\spacing{2}} \let\enddoublespace=\endspacing %corrected--first end missing-MAR % 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}