![mathtools 多行文字内的垂直间距](https://linux22.com/image/354668/mathtools%20%E5%A4%9A%E8%A1%8C%E6%96%87%E5%AD%97%E5%86%85%E7%9A%84%E5%9E%82%E7%9B%B4%E9%97%B4%E8%B7%9D.png)
代码
\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}