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
为真,但在开始一个段落时它变为假,因此align
相同的后续环境minipage
不会受到影响。
有一个类似的补丁用于“修复”段落开头的环境,但我不太愿意展示它,因为我认为段落应该绝不从显示的方程式开始(上面提到的例外)。