Почему интервал над уравнением больше, чем под ним, если \belowdisplayskip = \abovedisplayskip?

Почему интервал над уравнением больше, чем под ним, если \belowdisplayskip = \abovedisplayskip?

Оба \abovedisplayskipи \belowdisplayskipустановлены по умолчанию на 10pt plus 2pt minus 5pt, но я вижу, что уравнения отображения не центрируются между абзацами. В чем причина этого, и как мне их центрировать?

Мне также интересно узнать, почему интервалы сделаны именно так. Это традиция или эстетически приятно не размещать уравнения вертикально по центру между абзацами?

введите описание изображения здесь

\documentclass{article}
\usepackage{geometry}
\geometry{left=2cm,right=2cm}
\usepackage{lipsum}
\begin{document}

\lipsum[1]

\begin{equation}
    \mathrm{d}{I} = -AI\mathop{}\!\mathrm{d}x
\end{equation}

\lipsum[2]

\begin{equation}
    \ln \frac{A_\mathrm{s}}{A_\mathrm{d}} = \int_L\!\!A\mathop{}\!\mathrm{d}x
\end{equation}

\lipsum[2]

\begin{equation}
    Z = \sqrt{\rho K}
\end{equation}

\lipsum[3]

\end{document}

решение1

Если вы сложите \showoutputи посмотрите (например) последнее уравнение, начинающееся с Z=, вы увидите

...\glue(\parskip) 0.0
...\glue(\baselineskip) 10.05556
...\hbox(0.0+0.0)x500.484, glue set 485.484fil
....\hbox(0.0+0.0)x15.0
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\penalty 10000
...\glue(\abovedisplayshortskip) 0.0 plus 3.0
...\glue(\baselineskip) 2.21736
...\hbox(9.78264+2.61745)x272.86868, shifted 227.61531
....\hbox(9.78264+2.61745)x45.25339, display
.....\OML/cmm/m/it/10 Z

Что показывает, что над уравнением находится абзац из 1 строки, содержащий только отступ абзаца и завершающий parfillskip:

....\hbox(0.0+0.0)x15.0
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0

Таким образом, это полностью белый абзац, который выглядит как вертикальное пространство, но он не растягивается и не будет размещен в верхней части страницы, из-за чего уравнение на разрыве страницы будет располагаться слишком низко.

Никогда не оставляйте пустую строку в исходнике над отображаемым уравнением. Уберите это и вы получите

...\penalty 10000
...\glue(\abovedisplayskip) 10.0 plus 2.0 minus 5.0
...\glue(\baselineskip) 0.27292
...\hbox(9.78264+2.61745)x272.86868, shifted 227.61531
....\hbox(9.78264+2.61745)x45.25339, display
.....\OML/cmm/m/it/10 Z

без парскипа и ложных абзацев.

введите описание изображения здесь

\documentclass{article}
\usepackage{geometry}
\geometry{left=2cm,right=2cm}
\showoutput
\usepackage{lipsum}
\begin{document}

\lipsum[1]
\begin{equation}
    \mathrm{d}{I} = -AI\mathop{}\!\mathrm{d}x
\end{equation}

\lipsum[2]
\begin{equation}
    \ln \frac{A_\mathrm{s}}{A_\mathrm{d}} = \int_L\!\!A\mathop{}\!\mathrm{d}x
\end{equation}

\lipsum[2]
\begin{equation}
    Z = \sqrt{\rho K}
\end{equation}

\lipsum[3]

\end{document}

Связанный контент