次のコードでは
\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
通常、1 つの表示環境 (またはセクション見出しなど) が別の表示環境の後に続く場合、1 つの表示環境の終了と次の表示環境の開始によって指定された垂直間隔は結合されるため、合計ではなく、2 つの長さの最大値のみが得られます。
しかし、(auxファイルへの書き込みを遅らせるために必要で、動作する)\write
によって生成されるノードは、ここでは2番目の証明環境が最初の証明によって追加された垂直方向のスペースを「見る」ことができないことを意味するので、次のようになります。\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
カウンターで生成されたラベル キーで を使用するのはかなり奇妙な構造です。