![通过 \label 添加空格](https://linux22.com/image/400313/%E9%80%9A%E8%BF%87%20%5Clabel%20%E6%B7%BB%E5%8A%A0%E7%A9%BA%E6%A0%BC.png)
在下面的代码中
\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
有效)意味着这里的第二个证明环境无法“看到”第一个证明添加的垂直空间,所以你得到
结束证明空间,写入节点,开始证明空间
代替
最大值(结束证明空间,开始证明空间)
解决方案是将其放在\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
计数器生成的标签键是一种相当奇怪的构造。