[Tex/LaTex] Single-spaced equations in double-spaced documents

equationssetspacespacing

My university guidelines (unfortunately) mandate double-spacing. However, nothing is said about double-spacing equations, so I'd like to print equations single-spaced. Easy enough:

\documentclass{article}

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

\usepackage{etoolbox}
\BeforeBeginEnvironment{align*}{\begin{singlespace}}
\AfterEndEnvironment{align*}{\end{singlespace}\noindent\ignorespaces}

\begin{document}

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

\end{document}

This is inspired by @GonzaloMedina's answer on Equations and Double Spacing. Unfortunately, it doesn't work:

too much space

The problem is that the space before the equation is greater than the space after it. What gives?

Best Answer

singlespace starts a new \par. Add a negative \baselineskip:

\documentclass{article}

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

\usepackage{etoolbox}
\BeforeBeginEnvironment{align*}{\begin{singlespace}\vspace*{-\baselineskip}}
\AfterEndEnvironment{align*}{\end{singlespace}\noindent\ignorespaces}

\begin{document}

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

\end{document} 

enter image description here