我有以下 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
类型。 - 为了增加选定行之间的垂直距离,最好使用
\addlinespace
包booktabs
。 - 对于
multicolumn
单元格,不清楚它是否只包含一行(短)文本,或者它是否应该自动将文本分成几行。上面的 MWE 被认为是前一种情况。