如果短行后面跟着align
环境,则对齐内容和其上方文本之间的间距太大(在我看来)。请参见上x = y_i
例中的间距。标准显示环境\[ \]
似乎会根据前一行的长度调整此间距,但align
似乎并没有这样做。
有没有办法
align
让它顶部的空间取决于前一行的长度(就像\[ \]
这样)?
\documentclass[a4paper,10pt]{scrartcl}
\usepackage{mathtools}
\begin{document}
\begin{minipage}[t]{0.45\textwidth}
\begin{center}
\texttt{align*}
\end{center}
text text text text text text text text text
\begin{align*}
x &= y_i
\shortintertext{text}
x &= z_{i+1}
\end{align*}
text text text text text text text text
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\textwidth}
\begin{center}
\texttt{\textbackslash[ \textbackslash]}
\end{center}
text text text text text text text text text
\[
x = y_i
\]
text
\[
x = z_{i+1}
\]
text text text text text text text text
\end{minipage}
\end{document}
答案1
正如注释和手册(第 3.1.5 节)中所述,mathtools
这是某些 AMS 环境存在的问题。该软件包提供了手动修复此问题的mathtools
命令。\SwapAboveDisplaySkip
\documentclass[a4paper,10pt]{scrartcl}
\usepackage{mathtools}
\begin{document}
\begin{minipage}[t]{0.45\textwidth}
\begin{center}
\texttt{align*}
\end{center}
text text text text text text text text text
\begin{align*}
\SwapAboveDisplaySkip % less space
x &= y_i
\shortintertext{text}
x &= z_{i+1}
\end{align*}
text text text text text text text text
\end{minipage}
\hfill
\begin{minipage}[t]{0.45\textwidth}
\begin{center}
\texttt{\textbackslash[ \textbackslash]}
\end{center}
text text text text text text text text text
\[
x = y_i
\]
text
\[
x = z_{i+1}
\]
text text text text text text text text
\end{minipage}
\end{document}