问题

问题

问题

如何避免警告

段落中第 [...] 行的 \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-请参阅文档以了解、halfhalf+和的含义half*

相关内容