Дополнительное пространство по \label

Дополнительное пространство по \label

В следующем коде

\documentclass{article}
\usepackage{amsthm}
\newcounter{number}
\begin{document}
\begin{proof}ccc\[aaa\]\end{proof}
\label{\thenumber}
\begin{proof}ee\end{proof}
\end{document}

команда \label создает дополнительный вертикальный пробел, которого нет, если я пропущу эту команду. Как мне избежать этого пробела? Это может быть связано сДополнительное место от \refstepcounter, но здесь пакет 'hyperref' не задействован.

решение1

Обычно, если одна среда отображения (или заголовок раздела и т. д.) следует за другой, любой вертикальный интервал, указанный концом одной и началом следующей, объединяется, поэтому вы получаете только максимальную из двух длин, а не сумму.

Однако \writeузел, созданный \label(который необходим для задержки записи в вспомогательный файл, поэтому \pagerefработает), означает, что здесь вторая среда доказательства не может «видеть» вертикальное пространство, добавленное первым доказательством, поэтому вы получаете

конец пространства для проверки, узел записи, начало пространства для проверки

вместо

max(конец пространства для проверки, начало пространства для проверки)

Решение состоит в том, чтобы поместить его \labelв более безопасное место (почти всегда лучше не делать этого в vmode, если этого можно избежать), например, это работает

\documentclass{article}
\usepackage{amsthm}
\newcounter{number}
\begin{document}
\begin{proof}ccc\[aaa\label{\thenumber}\]\end{proof}
\begin{proof}ee\end{proof}
\end{document}

Не имеет отношения к проблеме с пространством (так как это было бы то же самое с \label{zzz}), но использование \labelс ключом метки, сгенерированным счетчиком, является довольно странной конструкцией.

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