页面/小页面顶部的对齐环境上方存在虚假空间

页面/小页面顶部的对齐环境上方存在虚假空间

align如果环境从页面顶部或开始,它似乎会增加额外的垂直空间minipage。下面是两页和两个minipages(在第 1 页上),其中第一页/minipage有文本后跟align*环境,第二页/minipage以环境开头align*,请注意方程式仍然对齐。

在此处输入图片描述

尝试的解决方案:

我发现最接近的相关问题是:

我尝试使用Gonzalo Medina 的解决方案在上述内容中添加\setlength\abovedisplayskip{0pt}(在序言之后,按照对齐环境前后的垂直空间)。尽管这确实将方程式垂直向上移动,但它们仍然是垂直对齐的:

在此处输入图片描述

由于问题也发生在页面顶部,因此我认为这与理解小页面 - 顶部对齐

问题:

  1. 我如何调整align环境以自动在页面顶部或顶部不留额外空间minipage
  2. 这种行为有什么原因吗?也许不应该改变?

代码:

\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不会受到影响。

有一个类似的补丁用于“修复”段落开头的环境,但我不太愿意展示它,因为我认为段落应该绝不从显示的方程式开始(上面提到的例外)。

相关内容