我希望将文本换行放在表格末尾的单个“巨型单元格”中。
----------------------
| header1 | header 2 |
----------------------
| entry1 | entry 2 |
----------------------
| entry3 | entry 4 |
----------------------
| big cell at the end|
| with multicolumn / |
| wrapping text |
----------------------
有很多好的解决方案这里但它们需要指定固定长度,无论是列宽还是单元格宽度,或者是嵌入的迷你页面。问题是,我希望“巨型单元格”继承表格其余部分自然给出的表格宽度。(我有一个非常非常大的自动生成的表格,如果可能的话,我宁愿不必手动调整宽度。)
是否可以将表格的当前宽度“挂钩”到最后一个单元格,或者还有其他解决方案吗?
答案1
我认为您必须使用类似的东西tabularx
,即自己测量宽度,然后将其应用于列。一种方法是实际使用两个tabular
看起来像一个的 s:
\documentclass{article}
\begin{document}
\vbox{%
\begin{lrbox}{0}
\begin{tabular}{|c|c|} \hline
header 1 & header 2 \\\hline
entry 1 & entry 2 \\\hline
entry 3 & entry 4 \\\hline
\end{tabular}
\end{lrbox}
\hbox{\usebox0}%
\vskip-1pt
\hbox{%
\begin{tabular}{|p{\dimexpr\wd0-2\tabcolsep\relax}|}
big cell at the end
with multicolumn /
wrapping text \\\hline
\end{tabular}%
}%
}
\end{document}
最好使用标准array
包来使多列居中,这也可以改善表格的线条,但需要进行一些调整:
\documentclass{article}
\usepackage{array}
\begin{document}
\vbox{%
\begin{lrbox}{0}
\begin{tabular}{|c|c|} \hline
header 1 & header 2 \\\hline
entry 1 & entry 2 \\\hline
entry 3 & entry 4 \\\hline
\end{tabular}
\end{lrbox}
\hbox{\usebox0}%
\vskip-1pt
\hbox{%
\begin{tabular}{|>{\centering\arraybackslash}p{\dimexpr\wd0-2\tabcolsep-2\arrayrulewidth\relax}|}
big cell at the end
with multicolumn /
wrapping text \\\hline
\end{tabular}%
}%
}
\end{document}