저는 일부 방정식(방정식, 정렬, 수집 및 기타 수학 환경 포함)과 그 위의 텍스트 사이의 수직 공간을 줄이기 위해 다음 그룹 코드를 자주 사용합니다.
\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
기본적으로 대부분의 클래스에서 이를 더 짧은 길이로 설정하여 방정식이 위의 짧은 줄이 남긴 공간에 "들어갑니다".
shortdisplayskip은 마지막 줄이 방정식 왼쪽으로 2em 끝나는 경우 시각적 간격이 여전히 있는지 확인하는 데 사용됩니다.
귀하의 사례 (3)은 컷오프에 매우 가깝습니다. TeX는 (4)에서 사용된 것과 동일한 더 긴 길이를 사용하지만 주관적으로는 (1)과 (2)처럼 작동하기를 원합니다.
여기서는 두 가지 변형을 제공합니다.
방정식 5-8은 두 길이가 동일한 값을 가질 때 tex가 한 스타일에서 다른 스타일로 전환될 때 불연속성을 피하지만 (8)은 다소 빡빡해 보이는 설정을 보여줍니다.
방정식 9-12는 원본과 마찬가지로 기본 설정으로 설정되어 있지만 세 번째 단락의 마지막 줄 길이는 임의의 음수 공백을 삽입하여 (TeX에) 인위적으로 더 짧게 보이도록 만들어졌습니다. 이로 인해 TeX은 처음 두 문단과 동일한 공백을 삽입하게 됩니다.
\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}