Longtable 中的 \hbox 溢出

Longtable 中的 \hbox 溢出

我正在尝试消除 Longtable 中的错误

第 6-10 行对齐时 \hbox 过满(宽 1.19998pt)

这是我的 MWE

\documentclass[12pt,a4paper,twoside]{report}
\usepackage{longtable}
\usepackage{array}
\begin{document}

\begin{longtable}{|>{\raggedright\arraybackslash}p{\dimexpr 0.5\textwidth -2\tabcolsep\relax}|>{\raggedright\arraybackslash}p{\dimexpr 0.5\textwidth -2\tabcolsep\relax}|}
\hline
Test & Test\\
\hline
\end{longtable}

\end{document}

为什么会出现此错误?据我了解,longtable 的两列应正好占 textwidth 减去左右 tabcolsep 的 50%。

答案1

在计算可用列宽时,您正确地减去了空白填充。但是,您没有考虑到表格中存在的三个垂直规则的宽度。这些垂直规则的宽度由参数 控制\arrayrulewidth;其默认值0.4pt在大多数文档类中都是如此。请注意3*0.4pt=1.2pt,这与报告的 的过满程度非常接近1.19998pt。(事实上,1.19998 和 2直到舍入误差为止也相同。)

该怎么办?小菜一碟!只需更改

p{\dimexpr 0.5\textwidth -2\tabcolsep\relax

p{\dimexpr 0.5\textwidth -2\tabcolsep -1.5\arrayrulewidth\relax

为什么1.5\arrayrulewidth?因为 2*1.5 = 3 = 中的垂直规则数longtable

相关内容