\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}

段落の末尾に 2 つのスペース トークンがあるため、不必要な余分なアンダーフル行が生成されます。


追加すると\showoutput、上記は2行の段落になります。

1行目、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だけの2行目では\rightskip、スペースからの接着剤と接着剤の両方が削除された\parfillskipため、無限に不足しており、badness 10000として報告されています。

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

関連情報