如何在单元格中换行(没有任何明确的长度)

如何在单元格中换行(没有任何明确的长度)

我希望将文本换行放在表格末尾的单个“巨型单元格”中。

 ----------------------
 | 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}

在此处输入图片描述

相关内容