![我怎样才能取消定义环境?](https://linux22.com/image/280937/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E5%8F%96%E6%B6%88%E5%AE%9A%E4%B9%89%E7%8E%AF%E5%A2%83%EF%BC%9F.png)
我怎样才能取消定义环境?
取消定义命令的方法如下:
\newcommand\foo
\makeatletter
\let\foo\@undefined
\makeatother
我需要spacing
从setspace
包中取消定义环境。这似乎不起作用:
\usepackage{setspace}
\makeatletter
\let\beginspacing\@undefined
\let\endspacing\@undefined
\makeatother
答案1
该宏\newenvironment{foo}
定义了两个宏
\foo
\endfoo
不是\beginfoo
。
除了 undefine 之外spacing
,您还可以简单地将其设为 noop:
\renewenvironment{spacing}{}{}
这是更好的选择,因为它将跟踪嵌套环境。
答案2
每这个答案, 使用
\let\spacing\@undefined
\let\endspacing\@undefined
取消定义spacing
环境。请注意,这\@undefined
不是一个特殊命令,它本身就是未定义的。