\hbox insuficiente com \input

\hbox insuficiente com \input

Considere o seguinte exemplo (mínimo):

\documentclass{article}    
\parindent0em    
\begin{document}
    \rule{\textwidth}{0.1em}
    %\input{file}
\end{document}

Funciona bem até agora. Mas agora tenho um arquivo chamado "file.tex" que contém exatamente o mesmo, ou seja, apenas \rule{\textwidth}{0.1em}. Ao correr

\documentclass{article}    
\parindent0em    
\begin{document}
    %\rule{\textwidth}{0.1em}
    \input{file}
\end{document}

Recebo um \hbox insuficiente. Por que?

Responder1

A entrada é equivalente a

\documentclass{article}    
\parindent0em    
\begin{document}
    \rule{\textwidth}{0.1em} {} 

\end{document}

que tem dois marcadores de espaço no final de um parágrafo, produz uma linha espúria extra e insuficiente.


Se você adicionar \showoutput, verá que o texto acima forma um parágrafo de duas linhas

linha um, uma caixa de recuo de 0pt de largura, uma caixa com a regra e 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

Então o espaçamento da linha de base

...\penalty 300
...\glue(\baselineskip) 12.0

Em seguida, uma segunda linha que tem apenas 0pt \rightskipconseguiu soltar a cola dos espaços e a cola de \parfillskipmodo que fica infinitamente insuficiente, relatada como maldade 10000

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

informação relacionada