在另一个环境之上创建新环境

在另一个环境之上创建新环境

tcblisting我正在尝试使用包在(从tcolorbox包)上创建新环境environ。出现有关 Runaway 参数的奇怪错误。MWE:

\documentclass{book}
\usepackage{tcolorbox}
\usepackage{environ}

\tcbuselibrary{listings}

\NewEnviron{CodeListing}[2][]{%
  \begin{tcblisting}{listing only}
    \BODY
  \end{tcblisting}
}

\begin{document}
\begin{CodeListing}
  bool someVar;
\end{CodeListing}
\end{document}

错误是

Runaway argument?
! File ended while scanning use of \next.
<inserted text> 
                \par 
<*> mwe.tex

如果我删除tcblisting新环境中的环境,一切都很好。这里出了什么问题?

答案1

tcblisting评论中解释了为什么和的组合environ不起作用。但可以使用 创建一个新环境\newtcblisting

\documentclass{book}
\usepackage{tcolorbox}

\tcbuselibrary{listings}

\newtcblisting{CodeListing}[2][]{listing only}

\begin{document}
\begin{CodeListing}{something for the mandatory argument}
  bool someVar;
\end{CodeListing}
\end{document}

相关内容