在 tcolorbox 中定义 fancyvrb verbatim 环境时出现问题

在 tcolorbox 中定义 fancyvrb verbatim 环境时出现问题

我想使用 fancyvrb 功能为逐字文本定义一个环境,但在使用 tcolorbox 绘制的标题框架内。以下是示例:

\documentclass{article}
\usepackage{fancyvrb}
\usepackage{tcolorbox}

\newenvironment{box1}
{\Verbatim[numbers=left,numbersep=2em,commandchars=\\\{\}]}%
{\endVerbatim}

\BeforeBeginEnvironment{box1}{%
\tcolorbox[title={Box title}]}

\AfterEndEnvironment{box1}{%
\endtcolorbox}

\newenvironment{box2}[1]
{\tcolorbox[title={#1}]
\Verbatim[numbers=left,numbersep=2em,commandchars=\\\{\}]}%
{\endVerbatim
\endtcolorbox}

\begin{document}

\begin{box1}
Some \textcolor{red}{text}
\end{box1}

\clearpage
\begin{box2}{Box2 title}
Some other \textcolor{red}{text}
\end{box2}

\end{document}

box1现在,使用钩子的定义\BeforeBeginEnvironment并按\AfterEndEnvironment预期工作。

但是,我希望我的环境接受作为参数给出的标题,如 的定义box2。我相信我无法将参数传递给钩子,因此 tcolorbox 必须是 newenvironment 定义的一部分。但是,我无法使其工作。使用box2给了我:

! LaTeX Error: Something's wrong--perhaps a missing \item.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.30 \end{box2}

有什么提示可以让它工作吗?

相关内容