通过 \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有效)意味着这里的第二个证明环境无法“看到”第一个证明添加的垂直空间,所以你得到

结束证明空间,写入节点,开始证明空间

代替

最大值(结束证明空间,开始证明空间)

解决方案是将其放在\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计数器生成的标签键是一种相当奇怪的构造。

相关内容