使用 \input 导致 \hbox 未满

使用 \input 导致 \hbox 未满

考虑以下(最小)示例:

\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

相关内容