有人可以解释一下为什么定义会引发错误吗?

有人可以解释一下为什么定义会引发错误吗?

以下 \sp 定义会引发“缺少 $”错误,我看不出任何可能的原因!有人能解释一下吗?

\documentclass{amsart}
\providecommand{\sp}[1][10]{\par \vspace{#1 pt} \noindent\ignorespaces}
\begin{document}
line
\sp
line
\end{document}

答案1

我不知道如何接受评论中的答案,但如果我知道我会接受@HenriMenke 的评论,这显然是最佳做法。另一方面,虽然我\sp一开始就不应该使用它,但我已经使用它多年了,很难改变。以下工作,即覆盖默认定义\sp

\let\sp\undefined
\newcommand{\sp}[1][10]{\par\vspace{#1pt}\noindent\ignorespaces}

这本身就是不好的做法。

相关内容