未充滿 \hbox 和 \input

未充滿 \hbox 和 \input

考慮以下(最小)範例:

\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因此它無限未滿,報告為壞度 10000

...\hbox(0.0+0.0)x345.0
....\glue(\rightskip) 0.0

相關內容