[Tex/LaTex] Vertical spacing of equations using align environment following short texts

alignamsmathequationsspacing

The 'align' environment is awesome and I think it can almost replace the default 'equation' and 'eqnarray' environments. However, I find the vertical spacing of the align equations a little troubling to me.

I observe that if the equation follows a long text line, 'align' and 'equation' do the same spacing; however, if the equation is after a short text line, 'equation' does some compression while 'align' doesn't, so the former results in a better-looking equation.

Here is an example. Is there anyway for 'align' to adjust the spacing the same as 'equation'?

\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\begin{document}
\setlength\parindent{0pt}
Using \textit{equation}:
\begin{equation}
x = 1
\end{equation}
Spacing is OK.

\smallskip
(Using \textit{align}):
\begin{align}
x = 1
\end{align}
Spacing is too much.

\bigskip
\textbf{Another Example}

Using \textit{equation}: (long text long text long text)
\begin{equation}
x = 1
\end{equation}
Spacing is OK. (long text long text long text long text)

\smallskip
Using \textit{align}: (long text long text long text long text) 
\begin{align}
x = 1
\end{align}
Spacing is the same. (long text long text long text long text)

\end{document}

enter image description here

Best Answer

The SwapAboveDisplaySkipcommand from mathtools (mentioned by @Gustavo Mezzetti in his comment) doesn't work with multline, nor equation.

The \useshortskip from nccmath (to be used just before the environment, contrary to the mathtools solution, which has to be used at the beginning of the environment) works:

\documentclass[12pt]{article}
\usepackage[english]{babel}
\usepackage{mathtools, nccmath}

\begin{document}

\setlength\parindent{0pt}
Using \textit{equation}:
\begin{equation}
x = 1
\end{equation}
Spacing is OK.

\smallskip
(Using \textit{align}):\useshortskip
\begin{align}
x = 1
\end{align}
Spacing is OK.

\bigskip
(Using \textit{multline}):\useshortskip
\begin{multline}
x =a + b + c + d\\ + f +e +g + h
\end{multline}
Spacing is OK.

\end{document} 

enter image description here