我想暂时取消定义一个命令。原因是我需要使用一个特定的类文件,该文件使用 \@namedef 定义方程式*,而且我也很想使用 amsmath 包,因为它特别定义了对齐环境,但它也定义了方程式*环境,所以这会导致编译时出错。
我已经找到了如何暂时禁用不带星号的命令,即通过执行
\makeatletter
\let\oldequation\equation
\let\equation\@undefined
\makeatother
然后加载 amsmath 包。
由于我不太明白的原因,这对等式*不起作用,但显然最后的*开始了一个新的词素。
那么我该如何实现方程式*的类似结果呢?类和样式文件不在我的控制范围内。
答案1
就像\makeatletter
在本地写@
一封信一样,您也可以在本地写*
一封信。
\catcode`\*=11
\makeatletter
\let\oldequation*\equation*
\let\equation*\@undefined
\let\oldendequation*\endequation*
\let\endequation*\@undefined
\makeatother
\catcode`\*=12