Рассмотрим следующий (минимальный) пример:
\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