嵌套两个环境时出错

嵌套两个环境时出错

我正在尝试嵌套两个环境:

\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}.

为什么会发生这种情况?我该如何解决?

附录:我不能将我的改为NewEnvironnewenvironment因为否则我最终会陷入带有括号的新环境在开始和结束之间

答案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}

相关内容