В следующем коде
\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
с ключом метки, сгенерированным счетчиком, является довольно странной конструкцией.