我正在尝试让multicolumn
单元格包装tabulary
表格内的内容。表格是动态生成的,因此我无法手动设置要包装的多列单元格的宽度。相反,我希望它以它跨越的组合列的宽度进行包装。
这是 MWE。我给单元格着色,这样你就能看到多列如何溢出它们跨越的单元格。我的真实表格要复杂得多,在环境中呈现效果最好tabulary
,这就是我使用它而不是tabular
或的原因tabularx
。
\documentclass{article}
\usepackage{lipsum, multirow, tabulary, color, colortbl}
\newcommand\cc[1]{\cellcolor{yellow}#1}
\begin{document}
\begin{tabulary}{\linewidth}{|C|C|C|C|}
\multicolumn{2}{c|}{\cc{\lipsum[1][1]}} & \multicolumn{2}{c|}{\cc{\lipsum[1][1]}} \\
\cc{One} & \cc{Two} & \cc{Three} & \cc{Four}
\end{tabulary}
\end{document}
我尝试过以下方法:
- 将内容包装在 minpage 或 parbox 中。如果我指定宽度,这种方法有效,但我需要如上所述动态设置宽度。
- 我已经尝试过这里的建议,但它们似乎不适用于环境
tabulary
。
答案1
\documentclass{article}
\usepackage{lipsum, multirow, tabulary, color, colortbl}
\newcommand\cc[1]{\cellcolor{yellow}#1}
\begin{document}
\begin{tabulary}{\linewidth}{|C|C|C|C|}
\multicolumn{2}{p{
\dimexpr
\csname TY@F1\endcsname +
\csname TY@F2\endcsname +
2\tabcolsep +
\arrayrulewidth
\relax
}|}{\cc{\lipsum[1][1]}} &
\multicolumn{2}{p{
\dimexpr
\csname TY@F3\endcsname +
\csname TY@F4\endcsname +
2\tabcolsep +
\arrayrulewidth
\relax
}|}{\cc{\lipsum[1][1]}} \\
\cc{One} & \cc{Two} & \cc{Three} & \cc{Four}
\end{tabulary}
\end{document}