
Я редактирую довольно длинный текст, содержащий много уравнений и плавающих чисел, и столкнулся с проблемой с align
и gather
окружениями.
МВЭ:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
Paragraph one. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\begin{gather*}
\boxed{\sum_{x=1}^{N} A_x} \\
\boxed{\sum_{x=1}^{N} A_x}
\end{gather*}
Paragraph two. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\end{document}
Результат:
Слишком много вертикального пространства между первым абзацем и уравнением, как будто был вставлен дополнительный пустой абзац. Если я удалю пустую строку между первым абзацем и математическим окружением, дополнительного пространства не будет, но страница не может быть разорвана в этой точке, и я часто заканчиваю с сиротами. Дополнительного пространства нет, когда я использую окружение equation
или \[ \]
:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
Paragraph one. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\[ \boxed{\sum_{x=1}^{N} A_x} \]
\[ \boxed{\sum_{x=1}^{N} A_x} \]
Paragraph two. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\end{document}
Результат:
Как избавиться от нежелательного вертикального пространства, но при этом разрешить разрывы страниц перед окружением?
решение1
Страницы никогда не должны начинаться с отображаемого уравнения, которое не является продолжением отображения на предыдущей странице (и этот случай должен быть своего рода крайней мерой).
Вы можете автоматически разрешить разрывы страниц внутри многострочных отображений выравнивания, выполнив команду
\allowdisplaybreaks
( amsmath
команда) в преамбуле документа, но TeX никогда не разобьет страницу перед отображением, если только вы сами не придумаете какую-нибудь грязную штуку.
Никогда не оставляйте пустую строку перед дисплеем.
решение2
Я нашел решение, и никаких реальных обоснований запрета на разрывы страниц до отображения уравнения не было дано, поэтому я оставляю заметку для других, кто может увидеть этот вопрос.
Чтобы разрешить разрыв перед определенным отображаемым уравнением, но избавиться от лишнего вертикального пробела, введите \pagebreak[0]
вместо первой пустой строки:
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
Paragraph one. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\pagebreak[0]
\begin{gather*}
\boxed{\sum_{x=1}^{N} A_x} \\
\boxed{\sum_{x=1}^{N} A_x}
\end{gather*}
Paragraph two. Lorem ipsum dolor sit amet, consecuteur adipiscing elit.
\end{document}
Чтобы разрешить перерывы везде, переопределите \predisplaypenalty
в преамбуле:
\makeatletter
\predisplaypenalty=\@medpenalty
\makeatother
Оба эти способа допускают разрывы страниц.