私は、いくつかの数式 (equation、align、gather などの数学環境を使用) とその上のテキストの間の垂直方向のスペースを減らすために、次のグループ コードを頻繁に使用しています。
\begingroup\abovedisplayskip=0pt
some equations in there
\endgroup
しかし、このグループ コードを毎回手動で入力する代わりに、同じことを実行する簡単なマクロをプリアンブルに作成するにはどうすればよいでしょうか。マクロは次のように使用する必要があると思いますが、もっと簡単にできますか。
\eqlift
some equations in there
\eqdown
問題を示す MWE コードを以下に示します。これは、上記のコードを使用して解決したものです (コンパイル後のみ)。
\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}
過去に試したクラス、フォント サイズ、その他の構成では、垂直方向のスペースが大きすぎることがよくあります (プレビュー画像の式 (3) を参照)。これを解決する唯一の方法は、上記に示したグループ コードを挿入することです。
答え1
通常、TeX は\abovedisplayskip
上記の式を使用しますが、前の段落の最後の行が短い場合は、\abovedisplayshortskip
ほとんどのクラスがこれをより短い長さに設定するため、上記の短い行によって残されたスペースに式が「収まる」ようになります。
最後の行が数式の 2em 左で終わる場合、視覚的なギャップが残るようにするために shortdisplayskip が使用されます。
あなたのケース(3)はたまたまカットオフに非常に近いのですが、TeXは(4)で使用されているのと同じ長い長さを使用していますが、主観的には(1)と(2)のように動作することを望んでいます。
ここでは 2 つのバリエーションを紹介します。
式 5 ~ 8 は、両方の長さが同じ値の場合の設定を示しています。この場合は、tex が 1 つのスタイルから別のスタイルに切り替わるときに不連続性が回避されますが、(8) は最終的にかなりタイトに見えます。
式 9 ~ 12 は、元の式と同じようにデフォルト設定で設定されていますが、3 番目の段落の最後の行の長さは、任意の負のスペースを挿入することによって (TeX に対して) 不自然に短く見えるように設定されています。これにより、TeX は最初の 2 つの段落と同じスペースを挿入します。
\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}