考虑以下(最小)示例:
\documentclass{article}
\parindent0em
\begin{document}
\rule{\textwidth}{0.1em}
%\input{file}
\end{document}
到目前为止,它运行良好。但现在,我有一个名为“file.tex”的文件,其中包含完全相同的内容,也就是说只有\rule{\textwidth}{0.1em}
。运行时
\documentclass{article}
\parindent0em
\begin{document}
%\rule{\textwidth}{0.1em}
\input{file}
\end{document}
我得到的 \hbox 未满。为什么?
答案1
输入相当于
\documentclass{article}
\parindent0em
\begin{document}
\rule{\textwidth}{0.1em} {}
\end{document}
该段落末尾有两个空格标记,因此会产生一个虚假的额外未满行。
如果你添加\showoutput
,你会看到上面的内容构成了两行段落
第一行,一个 0pt 宽的缩进框,一个带有规则的框和 0pt \rightskip
...\hbox(1.00006+0.0)x345.0
....\hbox(0.0+0.0)x0.0
....\hbox(1.00006+0.0)x345.0
.....\rule(1.00006+0.0)x345.0
....\glue(\rightskip) 0.0
然后基线间距
...\penalty 300
...\glue(\baselineskip) 12.0
然后第二行只有 0pt,\rightskip
它设法去掉了空格处的粘连和来自的粘连,\parfillskip
因此它无限地不满,报告为 badness 10000
...\hbox(0.0+0.0)x345.0
....\glue(\rightskip) 0.0