在 Tabularx 环境中合并列

在 Tabularx 环境中合并列

我有以下 tabularx 环境。

\begin{tabularx}{\columnwidth}{@{}r@{\hskip 1mm}l@{\hskip 5mm}l@{}}
\end{tabularx}

我的问题是,对于某些行,我没有 3 列而是 2 列,所以我需要合并前两列并且仍然能够填充第三列。

我尝试使用\multicolumn{2}{l}{Multi-column}\\,但它不起作用,因为你最终只填写了第二列,并且没有任何内容合并。

我绝对需要使用 tabularx,因为第一列和第二列必须自动适应列中最长的元素,但我还需要有一些可以合并列的行。

更新更多代码:

\begin{tabularx}{\columnwidth}{@{}r@{\hskip 1mm}l@{\hskip 5mm}l@{}}

  A column 1 row 1 & A column 2 row 1 & A column 3 row 1 \\
  & A column 2 row 2 & A column 3 row 3 \\

  \rule{0pt}{5mm}

  B column 1 row 1 & B column 2 row 1 & B column 3 row 1 \\
  & B column 2 row 2 & B column 3 row 2 \\

  \rule{0pt}{5mm}
  
  \multicolumn{2}{l}{this doesn't work} & {won't work}\\

\end{tabularx}

答案1

请尝试以下操作:

\documentclass{article}
\usepackage{booktabs,    % new
            tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}  % new
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}   % new

\begin{document}
    \begin{table}
\begin{tabularx}{\columnwidth}{@{} R@{\hskip 1mm}L L @{}}

A column 1 row 1    & A column 2 row 1  & A column 3 row 1   \\
                    & A column 2 row 2  & A column 3 row 3   \\
    \addlinespace
B column 1 row 1    & B column 2 row 1  & B column 3 row 1   \\
                    & B column 2 row 2  & B column 3 row 2   \\
    \addlinespace
\multicolumn{2}{l}{this work as expected}
                                        &  last column      \\
\end{tabularx}
    \end{table}
\end{document}

在此处输入图片描述

注意(让我重复一下其他人在上面的评论中已经告诉你的内容):

  • 表中tabularx至少有一列必须是X类型。
  • 为了增加选定行之间的垂直距离,最好使用\addlinespacebooktabs
  • 对于multicolumn单元格,不清楚它是否只包含一行(短)文本,或者它是否应该自动将文本分成几行。上面的 MWE 被认为是前一种情况。

相关内容