![定义一个 \和 \end直接配对,而不是定义名为?](https://linux22.com/image/386130/%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%20%5C%E5%92%8C%20%5Cend%E7%9B%B4%E6%8E%A5%E9%85%8D%E5%AF%B9%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E5%AE%9A%E4%B9%89%E5%90%8D%E4%B8%BA%EF%BC%9F.png)
虽然定义环境<env>
也会定义\<env>
和\end<env>
声明,但是在什么情况下直接定义这些声明(而不定义环境)是更好的?
我看到以下用法,其中\proof
和\endproof
分别定义在文档informs3
类文件:
%% Use for proper proofs that end with extra space (regardless of the use
%% or non-use of \qed (=the black box)
\def\proof#1{\Trivlist\item[\hspace*{1em}\hskip\labelsep{\it #1\enskip }]\ignorespaces}
\def\endproof{\endTrivlist\addvspace{0pt}}
还有什么理由不这么做\newenvironment{proof}[1]{...}{...}
呢?
答案1
\newenvironment
除了检查名称是否“安全”之外,定义与\def
您显示的形式没有任何不同(除非使用\long\def
该*
形式)。
特别是在较旧的代码中,您经常会看到较低级别的形式,回到当初可能需要几分钟才能加载样式文件并且不在经常使用但不变的定义中进行检查的情况,是一种有用的节省。