
페이지 align
상단이나 minipage
. 아래에는 두 페이지와 두 개의 minipage
s(페이지 1)가 있습니다. 첫 번째 페이지에는 minipage
텍스트 뒤에 환경이 있고 align*
두 번째 페이지에는 환경 minipage
으로 시작하며 align*
방정식은 여전히 정렬되어 있습니다.
시도한 해결 방법:
내가 찾은 가장 가까운 관련 질문은 다음과 같습니다.
나는Gonzalo Medina의 솔루션위에 추가하여 \setlength\abovedisplayskip{0pt}
(서문 뒤에정렬 환경 전후의 수직 공간). 이로 인해 방정식이 수직으로 위로 이동했지만 여전히 수직으로 정렬되었습니다.
그리고 페이지 상단에서도 문제가 발생하기 때문에 이 문제와는 관련이 없다고 생각합니다.미니페이지 이해 - 상단 정렬
질문:
align
페이지 상단이나 에 추가 공간이 자동으로 생기지 않도록 환경을 조정하려면 어떻게 해야 합니까minipage
?- 이 동작에 대한 이유가 있습니까? 변경해서는 안 됩니까?
암호:
\documentclass{article}
\usepackage[showframe,paperwidth=3.5in,paperheight=2.2in,margin=0.5in]{geometry}
\usepackage{amsmath}
\begin{document}%\setlength\abovedisplayskip{0pt}
Top of Page 1
\begin{align*}% Text above at top of page
e &= m c^2
\end{align*}
\hrule
\begin{minipage}[t]{0.45\linewidth}
Top of minipage 1
\begin{align*}% Text above this minipage
e &= m c^2
\end{align*}
\end{minipage}
\begin{minipage}[t]{0.45\linewidth}
\begin{align*}% No text above in this minipage
e &= m c^2
\end{align*}
\end{minipage}
\newpage
\begin{align*}% No text above at top of page
e &= m c^2
\end{align*}
\end{document}
답변1
정렬 환경엄청난단락의 시작 부분에 있도록 설계되지 않았습니다. 이는 일반적인 상황에서는 허용될 수 있지만, minipage
축소된 너비로 정렬을 조판하기 위해 를 사용할 때 나쁜 영향을 미칩니다 .
이 문제는 명령(및 및 )을 다음과 같이 minipage
패치하여 해결할 수 있습니다.\start@align
\start@gather
\start@multline
\usepackage{etoolbox}
\makeatletter
\pretocmd\start@align{%
\if@minipage\kern-\topskip\kern-\abovedisplayskip\fi
}{}{}
\makeatother
이는 조건문이 시작될 때 minipage
조건이 \if@minipage
true이지만 단락을 시작하면 조건이 false가 되므로 align
동일한 후속 환경이 minipage
영향을 받지 않는다는 사실을 활용합니다.
단락 시작 부분에 환경을 "치료"하기 위한 유사한 패치가 있지만 단락이 그래야 한다고 믿기 때문에 이를 보여주기가 다소 꺼려집니다.절대표시된 방정식으로 시작합니다(위에서 언급한 예외 제외).