\newenvironment 和 \newenvironment* 之间有什么区别?

\newenvironment 和 \newenvironment* 之间有什么区别?

我隐约记得有一篇文章\newenvironment*比 提供了更好的间距\newenvironment,但我不记得任何细节,而且我似乎无法通过搜索找到参考。这两者有什么区别,什么时候应该使用一个而不是另一个?

[注意:只要有人能指出哪个问题重复,我会很高兴将此问题关闭为重复问题;但我似乎找不到这样的问题。]

答案1

\newcommand该关系与和之间的关系相同\newcommand*,详见\newcommand 和 \newcommand* 之间有什么区别?

对环境的行为没有影响,除了参数\begin{envname}

具体来说,如果你说

\newenvironment{foo}[1]
 {something with #1}
 {something else}

你可以说

\begin{foo}{An argument 

  with a blank line}
The environment's contents

With perhaps a blank line
\end{foo}

while\newenvironment*{foo}不允许这样做,并且争论不应包含任何空行(或\par命令),但环境的内容没有限制(除了其定义可能施加的限制)。

相关内容