Espaço adicional por \label

Espaço adicional por \label

No código a seguir

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

o comando \label produz espaço vertical adicional, que não existe, se eu omitir este comando. Como posso evitar esse espaço? Isto talvez esteja relacionadoEspaço adicional por \refstepcounter, mas aqui o pacote 'hyperref' não está envolvido.

Responder1

Normalmente, se um ambiente de exibição (ou título de seção, etc.) segue outro, qualquer espaçamento vertical especificado no final de um e no início do próximo é mesclado, de modo que você obtém apenas o máximo dos dois comprimentos, não a soma.

Porém o \writenó produzido por \label(que é necessário para atrasar a gravação no arquivo aux, então \pagereffunciona) significa que aqui o ambiente da segunda prova não pode "ver" o espaço vertical que foi adicionado pela primeira prova, então você obtém

espaço de prova final, nó de gravação, espaço de prova inicial

em vez de

max(espaço de prova final, espaço de prova inicial)

A solução é colocar em \labelalgum lugar mais seguro (quase sempre melhor não fazer isso no vmode se puder ser evitado), então por exemplo isso funciona

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

Não relacionado ao problema de espaço (já que seria o mesmo com \label{zzz}), mas usar \labeluma chave de rótulo gerada por contador é uma construção bastante estranha.

informação relacionada