我一直收到这个警告
Overfull \hbox (0.63303pt too wide) in paragraph at lines xxx--xxx`
代码中无论哪里有这一行
\begin{tabular}{p{2cm}|p{4cm}|p{3cm}|p{3cm}}
它并没有阻止我处理和创建文档,但我只是想知道为什么我总是得到这样的结果。
答案1
我认为您收到此警告是因为您的表格比您的(稍微)宽一些\textwidth
。解决方案包括:
- 稍微放大
\textwidth
一点 - 稍微缩小
tabular
一点 \hfuzz=0.64pt
在序言中添加
该\hfuzz
设置指定了 box-overflow 的最大数量前将会发出警告信息。
答案2
使用以下表格定义:
\begin{tabular}{@{} p{2cm}|p{4cm}|p{3cm}|p{3cm} @{}}
行的定义是
|\tabcolsep|2cm|\tabcolsep|\tabcolsep|4cm|\tabcolsep|...|\tabcolsep|
删除表格@{}
行\tabcolsep
开始和结束处的。
答案3
使用新的调整框Martin Scharrer 的包,您可以将您的表格放在tabular
里面adjustbox
。此包将缩小您的表格以适合\textwidth
(\textheight
如果需要,也适合),而不会扭曲文本(或框中的任何其他内容;keepaspectratio
这是关键)。
\begin{adjustbox}{width={\textwidth},totalheight={\textheight},keepaspectratio}%
\begin{tabular}{p{2cm}|p{4cm}|p{3cm}|p{3cm}}
...
\end{tabular}%
\end{adjustbox}
但因为它调整大小表格更适合以下情况
\begin{tabular}{c|c|c|c}
对于固定宽度的列,Herbert 的解决方案更为合适,该解决方案删除了行首和行末的水平空间。
答案4
有一件事可能会很有用,那就是使用\resizebox
命令将环境缩放到页面的可用宽度。这样就无需手动调整尺寸以使其完美,但在太小/太大的环境中使用时可能会导致文本失真。
在表格环境中,您可以这样使用它:
\resizebox{\textwidth}{!} {%
\begin{tabular}{p{2cm}|p{4cm}|p{3cm}|p{3cm}}
%Fill table with data
\end{tabular}%
}
这会将表格环境缩放到页面的精确宽度,并且(在这种情况下)文本失真可以忽略不计。