我正在尝试编写一个包含两列的表格,其中填充了 align*-equations。但在一行中,我想放置一个横跨整个表格的 align*-eq。但不知何故,这无法按预期工作。
最小的例子可能是这样的:
\begin{table}[H]
\centering
\begin{tabular}{p{7cm} | p{7cm} }
Equation 1 & Equation 2\\ \hline
\begin{align*}
a^2+b^2 = c^2
\end{align*}
&
\begin{align*}
E=m\cdot c^2
\end{align*}\\ \hline
\multicolumn{2}{c}{
\begin{align*}
R=\dfrac{U}{I}
\end{align*} }\\ \hline
\end{tabular}
\茶几}
如果我注释掉多列部分,它就可以正常编译。非常感谢您的帮助。
亲切的问候。
答案1
short displayskips
我会在表格中使用 。因此我定义了一个包含它们的新列类型:
\documentclass{article}
\usepackage[margin=2.3cm, showframe]{geometry} %
\usepackage{amsmath}
\usepackage{enumitem, etoolbox, tabularx, makecell, booktabs, float, nccmath}
\newcolumntype{P}[1]{>{\abovedisplayskip=\abovedisplayshortskip \belowdisplayskip=\belowdisplayshortskip}p{#1}}
\begin{document}
\begin{table}[H]
\centering
\begin{tabular}{P{7cm} |P{7cm} }
Equation 1 & Equation 2 \\ \hline
\begin{align*}
a²+b² = c²
\end{align*}
&
\begin{align*}
E=m · c²
\end{align*} \\ \hline
\multicolumn{2}{P{\dimexpr14cm + 2\tabcolsep}}{
\begin{align*}
R=\dfrac{U}{I}
\end{align*} } \\ \hline
\end{tabular}
\end{table}
\end{document}
答案2
显示的方程式只能在p{...}
类型单元格中写入(或X
,如果您使用\tabularx
)。由于您\multicolumn
使用 `` 单元格类型,因此出现错误。作为解决方案,您也可以p{\hsize}
使用 \multicolumn
:
\documentclass{article}
\usepackage{mathtools}
%---------------------------------------------------------------%
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}
\centering
\begin{tabular}{p{7cm} | p{7cm} }
Equation 1 & Equation 2\\
\hline
\begin{align*}
a^2+b^2 = c^2
\end{align*}
&
\begin{align*}
E=m\cdot c^2
\end{align*}\\ \hline
\multicolumn{2}{p{\hsize}}{
\begin{align*}
R=\dfrac{U}{I}
\end{align*} }\\ \hline
\end{tabular}
\end{table}
\end{document}
然而结果并不十分乐观:
更好的方法是使用tabularx
:
\documentclass{article}
\usepackage{mathtools}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
%---------------------------------------------------------------%
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}
\centering
\begin{tabularx}{\linewidth}{C | C }
Equation 1 & Equation 2\\
\hline
\begin{align*}
a^2+b^2 = c^2
\end{align*}
&
\begin{align*}
E=m\cdot c^2
\end{align*}\\ \hline
\multicolumn{2}{>{\hsize=2\hsize}C}{
\begin{align*}
R=\dfrac{U}{I}
\end{align*} }\\
\hline
\end{tabularx}
\end{table}
\end{document}
红线显示页面布局(来自包showframe
,实际使用时应在序言中删除此包)。
编辑:
我想知道,如果单元格中的方程式只有一行,为什么要使用align
环境......所以也许值得考虑使用以下解决方案:
\documentclass{article}
\usepackage{mathtools}
\usepackage{makecell, tabularx}% added makecel for gaped cells
\newcolumntype{C}{>{\centering\arraybackslash}X}
\setcellgapes{5pt}% set vertical gapes above and below cells' contents
\begin{document}
\begin{table}
\centering
\makegapedcells% use gaps in cells
\begin{tabularx}{\linewidth}{>{$\displaystyle}C<{$}|>$\displaystyle}C<{$}}% use in line math environment, but with \displaystyle
\text{Equation 1} & \text{Equation 2} \\
\hline
a^2+b^2 = c^2 & E=m\cdot c^2 \\
\hline
\multicolumn{2}{>{\hsize=2\hsize$\displaystyle}C<{$}}{
\begin{aligned}% in case, that you really have multi line and aligned equations
R & =\frac{U}{I} \\
U & =I R
\end{aligned} }\\
\hline
\end{tabularx}
\end{table}
\end{document}