Разрыв строки \ clearpage

Oct 12 2020

AFAIK, разрыв строки вокруг \begin{document}, \end{document}или \begin{section}не меняет результаты следующим образом.

\documentclass{article}
                        % INSERTING OR DELETING THIS LINE DOESN'T AFFECT THE OUTCOME
\begin{document}
                        % INSERTING OR DELETING THIS LINE DOESN'T AFFECT THE OUTCOME
Hello, world!
                        % INSERTING OR DELETING THIS LINE DOESN'T AFFECT THE OUTCOME
\end{document}

Интересно, это то же самое для \clearpage. Я думаю, что есть семь возможных вариантов, \clearpageкоторые, казалось бы, производили одинаковый результат. Разве они не отличаются друг от друга логически?

Пятно 1: Место сразу после первого абзаца.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.\clearpage

This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Пятно 2: Место прямо под первым абзацем.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\clearpage

This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Точка 3: на расстоянии двух строк от первого и второго абзацев.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.

\clearpage

This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Пятно 4: Место прямо над вторым абзацем.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.

\clearpage
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Пятно 5: Место прямо перед вторым абзацем.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.

\clearpage This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Место 6: в середине двух абзацев без дополнительного разрыва строки.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\clearpage
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Место 7: только в начале второго абзаца без разрыва строки.

\documentclass{article}
\begin{document}
This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\clearpage This is a sentence. This is a sentence. This is a sentence. This is a sentence. This is a sentence.
\end{document}

Я думаю, что либо Spot 1, либо Spot 3 более читабельны, чем другие, а Spot 7 - самый короткий код среди всех кандидатов с одинаковым результатом. Интересно, не повлияет ли на результаты практика написания кода, который легко читать (или иногда экономит место).

Ответы

3 DavidCarlisle Oct 12 2020 at 14:32

В отличие от \pagebreak, \clearpage(via \newpage) вставляет \parдо обработки, и, следовательно, после обработки уже в вертикальном режиме. это означает, что пустая строка ( \par) до или после не имеет значения. Однако пустая строка - это стандартная разметка документа для разрывов абзацев, поэтому я бы всегда добавлял пустую строку между абзацами (на самом деле не имеет значения, находится ли это до или после очистки страницы), а не полагаться на технические детали, которыми \clearpageзаканчивается текущий абзац.

Если вы попробуете свои примеры \pagebreakвместо, \clearpageвы увидите большую разницу между вариантами, в которых пустая строка не задана как один абзац, а не как два.