在环境中使用环境

在环境中使用环境

我经常声明使用其他环境的环境:

\newenvironment{foo}%
{\begin{itemize}}%
{\end{itemize}}

有人告诉我最好使用内部的内部环境的宏。

\newenvironment{foo}%
{\itemize}%
{\enditemize}

这是真的吗?如果是,为什么它更好?

此致,

吕克。

答案1

使用内部形式可以更好地检查错误。假设你有

\newenvironment{fooA}
  {\begin{itemize}}
  {\end{itemize}}

\newenvironment{fooB}
  {\itemize}
  {\enditemize}

如果你忘记了,\end{fooA}你会收到一条关于

! LaTeX Error: \begin{itemize} on input line 13 ended by \end{document}.

但如果你忘记了\end{fooB}消息将会

! LaTeX Error: \begin{fooB} on input line 13 ended by \end{document}.

在某些情况下,内部形式是必需的,例如,在使用包定义新的逐字环境verbatim或使用从\NewEnviron包中定义的环境时environ。另一个重要情况是在显示环境之上定义新环境amsmath

然而,在某些情况下,应避免使用内部形式,主要情况是lrbox:使用\lrbox\endlrbox总是错误的。

相关内容