0

I would like to use single-spaced equations with equation numbers in a double-spaced document. I found a solution to this problem: Single-spaced equations in double-spaced documents, but this solution puts extra spaces around the equations. Could you please help me how to modify the patch to let

\AtBeginDocument{%
 \abovedisplayskip=0pt plus 0pt minus 0pt
 \abovedisplayshortskip=0pt plus 0pt
 \belowdisplayskip=0pt plus 0pt minus 0pt
 \belowdisplayshortskip=0pt plus 0pt minus 0pt
}

work? My MWE is as follows:

\documentclass[a4paper]{article}

\usepackage{lipsum} \usepackage{amsmath} \usepackage[doublespacing,nodisplayskipstretch]{setspace} \usepackage{etoolbox}

\makeatletter

\newcommand\MySingleSpacePatch{% \begin{singlespace}% \vskip -\baselineskip \noindent \dimen@ \hsize \advance \dimen@ \p@ \hskip \dimen@ @minus \tw@\p@ \null } \newcommand\EndMySingleSpacePatch{% \end{singlespace}% \noindent\ignorespaces }

\makeatother

\BeforeBeginEnvironment{equation}{\MySingleSpacePatch} \AfterEndEnvironment{equation}{\EndMySingleSpacePatch} \BeforeBeginEnvironment{gather}{\MySingleSpacePatch} \AfterEndEnvironment{gather}{\EndMySingleSpacePatch} \BeforeBeginEnvironment{align}{\MySingleSpacePatch} \AfterEndEnvironment{align}{\EndMySingleSpacePatch}

\AtBeginDocument{% \abovedisplayskip=0pt plus 0pt minus 0pt \abovedisplayshortskip=0pt plus 0pt \belowdisplayskip=0pt plus 0pt minus 0pt \belowdisplayshortskip=0pt plus 0pt minus 0pt }

\begin{document}

\lipsum[2] \begin{align} x&=y+1 \ a&=b \end{align} \lipsum[4]

\lipsum[2] \begin{gather} x=y \ a=b \end{gather} \lipsum[4]

\lipsum[2] \begin{equation} DEF = Abc \end{equation} \lipsum[4]

\end{document}

TobiR
  • 584

1 Answers1

1

Use

\makeatletter
\newcommand*\MySingleSpacePatch{%
    \begin{singlespace}%
        \vskip -2\baselineskip% changed <<<<<<<<<<<<<<<<<<<<<<<
        \noindent\dimen@ \hsize%
        \advance \dimen@ \p@%
        \hskip \dimen@ \@minus \tw@\p@%
        \null%
    }
    \newcommand*\EndMySingleSpacePatch{%
    \vskip -\baselineskip % added <<<<<<<<<<<<<<<<
    \end{singlespace}%
    \noindent\ignorespaces
}
\makeatother

z

\AtBeginDocument{... is not needed.

A much simpler code, without any patch or guessing

\documentclass[a4paper]{article}

\usepackage{lipsum} \usepackage{amsmath} \usepackage[doublespacing,nodisplayskipstretch]{setspace}

\begin{document}

\setlength{\abovedisplayskip}{0pt}%
\setlength{\belowdisplayskip}{0pt}%
\setlength{\abovedisplayshortskip}{0pt}%
\setlength{\belowdisplayshortskip}{0pt}%
\setlength{\jot}{-5pt}% optional space between equations 

\lipsum*[2]
\begin{align}
    x&amp;=y+1 \\
    a&amp;=b
\end{align}
\lipsum*[4]

\lipsum*[2]
\begin{gather}
    x=y \\
    a=b
\end{gather}
\lipsum*[4]

\lipsum*[2]
\begin{equation}    
    DEF = Abc
\end{equation}
\lipsum*[4]

\end{document}

b

Simon Dispa
  • 39,141