\multicolumn 中允许有 p 列吗?

\multicolumn 中允许有 p 列吗?

据我所知,表格的构建方式是声明需要多少列以及如何格式化它们。在某些列(尤其是lcr)中,LaTeX 会计算这些列所需的宽度。在其他列中,作者定义宽度(通过使用p{<width>}和类似的声明)。LaTeX 还会添加列间空间。这会导致表格的总宽度。

X我还认为,我理解 LaTeX 在环境中使用时如何计算列的最终宽度,tabularx以适应列,以便总宽度达到表格的定义宽度。

我的问题是:是否允许在 -commandp{<width>}中使用声明\multicolumn?据我所知,如果作者插入这样一个\multicolumn定义其自身宽度的 ,而不是使用 LaTeX 计算出的组合列宽度,LaTeX 一定会感到困惑。

举个例子:假设我们有两列,一个l-列和一个p{2cm}。LaTeX 发现,第一列中最长的条目是 1cm,因此,这两列的总可用宽度是1 cm + 2\tabcolsep + 2cm。现在假设作者订购了\multicolumn{2}{p{5cm}}{...},这显然比 LaTeX 计算的 宽度要宽得多3cm + 2\tabcolsep

但是,如果作者希望能够插入大量文本,并将其分布到几行中,就像在常规p列中一样,他们应该使用什么呢?

答案1

使用tabularray,您可以选择多列单元格的宽度以及跨越算法:

\documentclass{article} 
\usepackage{tabularray}
\usepackage{caption}

\begin{document}  
In Table \ref{tab:default} (default span), the multicolumn cell is 5cm wide. The third single cell is enlarged to reach, together with the other two cells, the total width of 5cm.  
\begin{table}[h]
  \centering
  \caption{\label{tab:default}Default span}
  \begin{tblr}{
    hlines, vlines,
    cell{1}{1}={c=3}{c,5cm}
    }
    Multicolumn cell with default span \\
    First & Second & Third \\
  \end{tblr}
\end{table}

In Table \ref{tab:even} (even span), the multicolumn cell is 5cm wide. The three single cells are enlarged to have the same width and reach, all together, the total width of 5cm.  
\begin{table}[h]
  \centering
  \caption{\label{tab:even}Even span}
  \begin{tblr}{
    hlines, vlines, 
    hspan=even,
    cell{1}{1}={c=3}{c,5cm}
    }
    Multicolumn cell with even span\\
    First & Second & Third \\
  \end{tblr}
\end{table}

In Table \ref{tab:minimal} (minimal span), the multicolumn cell is adapted to the total width of the three single cells. In this case, the 5cm width of the multicolumn cell is ignored.  
\begin{table}[h]
  \centering
  \caption{\label{tab:minimal}Minimal span}
  \begin{tblr}{
    hlines, vlines, 
    cell{1}{1}={c=3}{c,5cm},
    hspan=minimal,
    }
    Multicolumn cell with minimal span\\
    First & Second & Third\\
\end{tblr}
\end{table}
\end{document}

在此处输入图片描述

PS:垂直线只是为了显示列宽而添加的,不应用于专业的表格中。

相关内容