mathtools 多行文字内的垂直间距

mathtools 多行文字内的垂直间距

代码

\documentclass{article}
\usepackage{mathtools}
\begin{document}
  \begin{align*}
  f(1) &= g(1) + g(2) + g(3) \\
  f(1) &= g(1) + g(2) + g(3) \\
  f(1) &= \!\begin{multlined}[t]g(1) + g(2) + g(3) + g(1) + g(2) + g(3)\\
          g(1) + g(2) + g(3) + g(1) + g(2) + g(3) 
          \end{multlined}
          \\
  f(1) &= g(1) + g(2) + g(3) \\
  f(1) &= g(1) + g(2) + g(3) 
  \end{align*}
\end{document}

生产输出

我查看了 mathtools 的代码,但不知道该如何设置,以使multlined行之间的垂直间距与其他结构之间的垂直间距完全相同amsmath。我知道我可以说调整一个实例,但我想一劳永逸地为整个文档中的\\[10pt]所有实例设置它。multlined

有任何想法吗?

答案1

这可能会有帮助

\usepackage{mathtools}
\MHInternalSyntaxOn
\def\MT_mult_invisible_line: {
  \crcr
  \global\MH_set_boolean_F:n {mult_firstline}
  \hbox to \l_MT_multwidth_dim{}\crcr
  \noalign{
    \vskip-\baselineskip 
    %\vskip-\jot 
    \vskip-\normallineskip
  }
}
\MHInternalSyntaxOff

不太清楚为什么\jot首先被添加,可能是因为spreadlines

答案2

在这里,我用 替换了multilined\Longunderstack其中您可以使用 明确设置行间基线跳过\setstackgap{L}{...}。我加载了tabstackengine(而不是stackengine),以防您想在堆栈中使用其他制表符功能。

\documentclass{article}
\usepackage{mathtools,tabstackengine}
\stackMath
\setstackgap{L}{\baselineskip}
\begin{document}
  \begin{align*}
  f(1) &= g(1) + g(2) + g(3) \\
  f(1) &= g(1) + g(2) + g(3) \\
  f(1) &= \Longunderstack[l]{ g(1) + g(2) + g(3) + g(1) + g(2) + g(3)\\
          \quad g(1) + g(2) + g(3) + g(1) + g(2) + g(3) 
          }
          \\
  f(1) &= g(1) + g(2) + g(3) \\
  f(1) &= g(1) + g(2) + g(3) 
  \end{align*}
\end{document}

在此处输入图片描述

相关内容