对齐顶部的空格应取决于前一行的长度

对齐顶部的空格应取决于前一行的长度

现实与期望

如果短行后面跟着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}

相关内容