我需要一个\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