我想将表格中的公式分成两行。使用multlined
环境似乎不错。但表格中的公式在两行之间出现很大的垂直空间。所需的结果应该像表格下的公式一样。
\documentclass{article}
\usepackage{fullpage}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{comment}
\usepackage{braket}
\usepackage{mathtools}
\begin{document}
\begin{tabular}{|c|c|}
\hline
$a=b$ & $c=d$ \\\hline
$x=y$ & $\begin{multlined}
1+2+3+4+5+6\\
+7+8+9+10+11=z
\end{multlined}$\\\hline
\end{tabular}
$\begin{multlined}
1+2+3+4+5+6\\
+7+8+9+10+11=z
\end{multlined}$
\end{document}
答案1
解决方案
这是 mathtools 包作者已知的一个错误。
以下是 mathtools 文档“多行环境”部分中所述的内容:
错误 1:如果在数组或导数(例如矩阵变体)中使用,多行线无法按预期工作。实现在第一个多行线行后包含一条“不可见”的线,在数组内部,此线不再“不可见”,因为数组将 \baselineskip 设置为零。目前我们没有针对此问题的一般解决方法。
错误 2:[...] 我们添加了一个可以添加到的钩子(\MultlinedHook)。[...]
他们还提出了修复 Bug 1 的代码:
\usepackage{mathtools,etoolbox}
\newlength\Normalbaselineskip
\setlength\Normalbaselineskip{\baselineskip}
\appto\MultlinedHook{\setlength\baselineskip{\Normalbaselineskip}}
我尝试了一下并且它确实修复了该错误。
我的想法
尽管如此,我强烈建议避免这种结构。使用单个美元符号意味着排队方程,这与多行环境中所需的结果相反。
享受 !
答案2
一些替代方案:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[\begin{array}{|c|c|}
\hline
a=b & c=d \\\hline
x=y & \begin{aligned}
1+2+3+4+5+6\\
+7+8+9+10+11=z
\end{aligned}\\\hline
\end{array}\]
\[\begin{array}{|c|c|}
\hline
a=b & c=d \\\hline
x=y & \begin{aligned}
1&+2+3+4+5+6\\
&+7+8+9+10+11=z
\end{aligned}\\\hline
\end{array}\]
\[\begin{array}{|c|c|}
\hline
a=b & c=d \\\hline
x=y & \multicolumn{1}{|l|}{1+2+3+4+5+6}\\
& \multicolumn{1}{|r|}{+7+8+9+10+11=z}\\\hline
\end{array}\]
\end{document}