为什么这会导致水平盒子过满?

为什么这会导致水平盒子过满?

在以下 MWE 中,我只是尝试创建一个数组,其宽度等于文本宽度,基本上我希望我的数组与文档允许的一样大。这就是我在实际报告中所做的,所以我认为它很有代表性。

这是我的 MWE:

\documentclass{report}

\usepackage{booktabs}


\begin{document}

\begin{tabular}{llr}
\toprule
\multicolumn{2}{p{\textwidth}}{Item} \\
\cmidrule(r){1-2}
Animal    & Description & Price (\$) \\
\midrule
Gnat      & per gram    & 13.65      \\
          & each        & 0.01       \\
Gnu       & stuffed     & 92.50      \\
Emu       & stuffed     & 33.33      \\
Armadillo & frozen      & 8.99       \\
\bottomrule
\end{tabular}

\end{document}

但是,我得到的\hbox宽度超过了 77.5pt。这背后的原因是什么?

答案1

您强制条目变宽\textwidth,但表格前有段落缩进,4\tabcolsep列周围的单元格填充以及第三列中最宽条目的宽度,所有这些都需要适应\textwidth

将表格列拉开没有任何好处,只会让阅读变得更加困难,只需使用

\documentclass{report}

\usepackage{booktabs}


\begin{document}

\centering

\noindent X\dotfill X

\noindent\begin{tabular}{llr}
\toprule
Item \\
\cmidrule(r){1-2}
Animal    & Description & Price (\$) \\
\midrule
Gnat      & per gram    & 13.65      \\
          & each        & 0.01       \\
Gnu       & stuffed     & 92.50      \\
Emu       & stuffed     & 33.33      \\
Armadillo & frozen      & 8.99       \\
\bottomrule
\end{tabular}

\end{document}

相关内容