我们如何检测出我们正处于显示数学模式之后?(用于垂直间距)

我们如何检测出我们正处于显示数学模式之后?(用于垂直间距)

我需要一个\smartmedskip纯 TeX 中的“ ”功能/宏,它通常与 相同\medskip,但是,如果我们紧接着显示数学模式,那么它应该被“禁用”,即,它应该表现为\par(或\vskip0pt)。

(我想在将练习插入到我的练习列表中的宏中使用它。现在,如果练习的最后一行是一个数学公式,那么总的来说,这个练习和下一个练习之间会有太多空间。)

提前致谢。

答案1

您可能希望它在跟随另一次垂直跳过时不执行任何操作:

\def\smartmedskip{\par
  \ifdim\lastskip>0pt \else \medskip\fi
}

This will be followed by a {\tt\string\medskip}.

\smartmedskip

This has a displayed formula
$$
a+b+c+d+e+f+g+h+i+j+k+l+m+n
$$
\smartmedskip
but the {\tt\string\smartmedskip} does nothing.

This has a displayed formula
$$
a+b+c+d+e+f+g+h+i+j+k+l+m+n
$$
\medskip
and we check the difference.

\bye

在此处输入图片描述

相关内容