我正在尝试嵌套两个环境:
\documentclass{article}
\usepackage{environ}
\NewEnviron{innerEnviron}
{INNER \BODY{} INNER}
\newenvironment{outerEnviron}
{OUTER \begin{innerEnviron}}
{\end{innerEnviron} OUTER}
\begin{document}
\begin{outerEnviron}
content
\end{outerEnviron}
\end{document}
我期望得到
OUTER INNER 内容 INNER OUTER
但我得到的却是
LaTeX Error: \begin{innerEnviron} on input line 11 ended by \end{outerEnviron}.
为什么会发生这种情况?我该如何解决?
附录:我不能将我的改为NewEnviron
,newenvironment
因为否则我最终会陷入带有括号的新环境在开始和结束之间。
答案1
\begin{innerEnviron}
想要看到一个明确的信息\end{innerEnviron}
来知道在哪里停止。你可以使用内部命令来代替:
\documentclass{article}
\usepackage{environ}
\NewEnviron{innerEnviron}
{INNER \BODY{} INNER}
\newenvironment{outerEnviron}
{OUTER \begingroup\innerEnviron}
{\endinnerEnviron\endgroup OUTER}
\begin{document}
\begin{outerEnviron}
content
\end{outerEnviron}
\end{document}