问题
如何避免警告
段落中第 [...] 行的 \hbox 过满(宽 10.95003pt)
由下列文件生成?
\documentclass[parskip=half]{scrartcl}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{blindtext}
\begin{document}
\blindtext
%\begin{center}
\begin{tabularx}{\textwidth}{XX}
\toprule
Test & Test
\\\bottomrule
\end{tabularx}
%\end{center}
\blindtext
\end{document}
输出看起来不错:
解释
来自 KOMA 脚本手册scrguide.pdf
:
half
通过垂直放置从一半的镜子中看到的图像。通过心灵的辐射来消除重力。用普通字体写一篇(1em)结束语。
使用与\textwidth
此相矛盾,因此发出警告。
half-
通过垂直放置从一半的镜子中看到的图像。忽略不计。
这避免了警告。
使用center
环境
包裹起来tabularx
似乎\begin{center}...\end{center}
有效。为什么?这是个好主意吗?如何避免额外的垂直间距?
回答:
正如 egreg 所解释的,在中心环境中, \parfillskip 设置为零。
其他想法
通常建议添加,\noindent
但没有任何效果。使用时没有缩进parskip=half
。(问题出在行尾,请参阅答案。)
写作{.97\textwidth}
当然不是解决办法。
使用{@{}XX@{}}
并不能消除警告。
答案1
此parskip=half
选项设置 parfillskip 具有非零自然宽度(精确到 1 em)。这样做是为了避免段落与右边距齐平,但当然,这不允许对象自己填充一行。
解决这个问题的正确方法是在任何情况下都不要使用非零 parskip,也许商务信函除外。当然,这个建议反映了我的观点,但我与几位伟大的印刷师都持有相同的看法。
如果你真的想使用这种可恶的;-)
排版风格,只需在本地设置\parfillskip
为零:
\documentclass[draft,parskip=half]{scrartcl}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{tabularx}{\textwidth}{XX}
\toprule
Test & Test
\\\bottomrule
\end{tabularx}{\parfillskip=0pt\par}
\blindtext
\end{document}
答案2
使用half-
(减号!):
\documentclass[parskip=half-]{scrartcl}
half-
请参阅文档以了解、half
、half+
和的含义half*