Estou frequentemente usando o seguinte código de grupo para reduzir o espaço vertical entre algumas equações (com a equação, alinhar, reunir e outros ambientes matemáticos) e o texto acima:
\begingroup\abovedisplayskip=0pt
some equations in there
\endgroup
Mas em vez de digitar esse código de grupo manualmente, como eu poderia criar uma macro simples no preâmbulo para fazer o mesmo? Suponho que a macro deva ser usada da seguinte forma, mas pode ser mais simples?
\eqlift
some equations in there
\eqdown
Aqui está um código MWE que mostra o problema, que resolvo com o código acima (somente após a compilação):
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage{amsmath}
\begin{document}
Blabla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
\end{document}
E aqui está uma prévia do que ele faz:
Muitas vezes recebo um espaço vertical muito grande para qualquer classe, qualquer tamanho de fonte ou outra configuração que tentei no passado (veja a equação (3) na imagem de visualização). A única maneira que conheço de resolver isso é inserir o código do grupo que mostrei acima.
Responder1
Normalmente o TeX usa \abovedisplayskip
uma equação acima, mas se a última linha do parágrafo anterior for curta, então ele usa \abovedisplayshortskip
por padrão a maioria das classes para definir um comprimento menor e assim a equação "se encaixa" no espaço deixado pela linha curta acima.
O shortdisplayskip é usado se a última linha terminar 2em à esquerda da equação, para garantir que ainda haja uma lacuna visual.
Acontece que seu caso (3) está muito próximo do corte, o TeX está usando o comprimento maior igual ao usado em (4), mas subjetivamente você deseja que funcione como (1) e (2).
Eu ofereço duas variantes aqui.
As equações 5 a 8 mostram a configuração quando ambos os comprimentos têm o mesmo valor, evitando a descontinuidade à medida que o tex muda de um estilo para outro, mas (8) acaba parecendo bastante apertado.
As equações 9 a 12 são definidas com as configurações padrão como no original, mas o comprimento da última linha do terceiro parágrafo parece (para o TeX) artificialmente mais curto, inserindo um espaço negativo arbitrário. Isso faz com que o TeX insira o mesmo espaço dos dois primeiros parágrafos.
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage{lmodern}
\usepackage{amsmath}
\begin{document}
\section{Original}
Blabla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
\section{use abovedisplayshortskip everywhere}
{
\setlength\abovedisplayskip{\abovedisplayshortskip}
Blabla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
}
\section{abovedisplayshortskip in (3=11)}
Blabla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla bla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla :\hspace{-2cm}\mbox{}
\begin{equation}
y(x) = a \, x^2.
\end{equation}
Blabla bla blabla bla blabla blabla bla bla blabla :
\begin{equation}
y(x) = a \, x^2.
\end{equation}
\end{document}