这是我在这里的第一篇帖子。我正在努力解决 \vbox 过满警告的问题。这是由表格的三行单元格引起的,而它\multirow
只有两个单行单元格。事实上,在我的主文档中使用\\[0.5cm]
效果很好,但仍然会产生警告。
在 MWE 中,它的表内边距也很糟糕。
我将非常感激您的帮助。谢谢!
\documentclass[a4paper,12pt]{report}
\usepackage{tabularx}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\footnotesize
\begin{tabularx}{\textwidth}{c | m{1.9cm} | X X | X X | X X | m{1.7cm} }
blabla & blabla & \multicolumn{2}{c|}{blabla} & \multicolumn{2}{c|}{blabla} & \multicolumn{2}{c|}{blabla} & blabla \\ \hline
& & \multicolumn{6}{ c| }{Name} & \multirow{2}{1.7cm}{Some pretty long text} \\ \cline{3-8}
& & 1 & 2 & 3 & 4 & 5 & 6 & \\ \hline
\end{tabularx}
\end{table}
\end{document}
答案1
扩展@GonzaloMedina 的评论,由于列宽是固定的,并且有三行文本可用(概念上),因此使文本适合三行的一种方法就是插入垂直规则,以扩展第二行和第三行。这不会消除溢出的框,但它们会使表格看起来不错。
我提出了两个解决方案。一个没有垂直线,一个有花哨的规则,通过booktabs
\documentclass[a4paper,12pt]{report}
\usepackage{tabularx, booktabs}
\usepackage{multirow}
\begin{document}
\begin{table}
\footnotesize
\begin{tabularx}{\textwidth}{@{}c m{1.9cm} *{6}{X} m{1.7cm}@{} }
\toprule
blabla & blabla & \multicolumn{2}{c}{blabla} & \multicolumn{2}{c}{blabla} & \multicolumn{2}{c}{blabla} & blabla \\ \midrule
\rule[1.5ex]{0pt}{2.5ex} &\rule[1.5ex]{0pt}{2.5ex} & \multicolumn{6}{ c}{Name} & \multirow{2}{1.7cm}{Some pretty long text} \\
& \rule[1.5ex]{0pt}{2.5ex}& 1 & 2 & 3 & 4 & 5 & 6 & \\ \bottomrule
\end{tabularx}
\end{table}
\end{document}
第二个将规则添加到原始表中,但我觉得更丑(因为垂直分隔符不利于可读性,而太多的水平规则会使表格变得更庞大)
\documentclass[a4paper,12pt]{report}
\usepackage{tabularx}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\footnotesize
\begin{tabularx}{\textwidth}{c | m{1.9cm} | X X | X X | X X | m{1.7cm} }
blabla & blabla & \multicolumn{2}{c|}{blabla} & \multicolumn{2}{c|}{blabla} & \multicolumn{2}{c|}{blabla} & blabla \\ \hline
&\rule[1.5ex]{0pt}{2.5ex} & \multicolumn{6}{ c| }{Name} & \multirow{2}{1.7cm}{Some pretty long text} \\ \cline{3-8}
&\rule[1.5ex]{0pt}{2.5ex} & 1 & 2 & 3 & 4 & 5 & 6 & \\ \hline
\end{tabularx}
\end{table}
\end{document}