我想使用 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}
有什么提示可以让它工作吗?