在多列表格中对齐

在多列表格中对齐

我正在尝试编写一个包含两列的表格,其中填充了 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}

在此处输入图片描述

相关内容