我有一个可以正常工作的设置。我需要将此代码作为环境,以减少输入。当我这样做时,我收到错误。
这是原始设置
\documentclass[12pt,titlepage]{article}
\usepackage{fancybox,fancyvrb,xcolor}
\usepackage[listings,skins,breakable,xparse]{tcolorbox}
\begin{document}
\begin{tcolorbox}[rounded corners,boxrule=.1pt,colframe=red!75!black,boxsep=2pt]%
\begin{Verbatim}
some code here
\end{Verbatim}
\end{tcolorbox}
\end{document}
以上编译没有错误。现在我做了以下事情
\documentclass[12pt,titlepage]{article}
\usepackage{fancybox,fancyvrb,xcolor}
\usepackage[listings,skins,breakable,xparse]{tcolorbox}
\newenvironment{TEXTinline}%
{%
\begin{tcolorbox}[rounded corners,boxrule=.1pt,colframe=red!75!black,boxsep=2pt]%
\begin{Verbatim}
}%
{%
\end{Verbatim}
\end{tcolorbox}%
}%
\begin{document}
\begin{TEXTinline}
some code here
\end{TEXTinline}
\end{document}
现在 lualatex main.tex 给出
(/usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg)))
Runaway argument?
! File ended while scanning use of \FancyVerbGetLine.
<inserted text>
\par
<*> main.tex
我认为这只与 Verbatim 有关。因此我尝试定义 Verbatim 环境调用X400
,但这也没有用
\documentclass[12pt,titlepage]{article}
\usepackage{fancybox,fancyvrb,xcolor}
\usepackage[listings,skins,breakable,xparse]{tcolorbox}
\DefineVerbatimEnvironment{X400}{Verbatim}{frame=single,framerule=0.8pt,framesep=2mm}
\newenvironment{TEXTinline}%
{%
\begin{tcolorbox}[rounded corners,boxrule=.1pt,colframe=red!75!black,boxsep=2pt]%
\begin{X400}
}%
{%
\end{X400}
\end{tcolorbox}%
}%
\fi
\begin{document}
\begin{TEXTinline}
some code here
\end{TEXTinline}
\end{document}
同样的错误。
我记得在新环境中使用 Verbatim 时出现过这样的问题,因为 Verbatim 只想就地就位?但现在找不到解决办法。
是否可以定义上述新环境并在其中拥有 Verbatim 环境?
TL 2023
答案1
您需要添加\VerbatimEnvironment
。记录不太好……
\documentclass[12pt,titlepage]{article}
\usepackage{fancybox,fancyvrb,xcolor}
\usepackage[listings,skins,breakable,xparse]{tcolorbox}
\newenvironment{TEXTinline}{%
\VerbatimEnvironment
\begin{tcolorbox}[rounded corners,boxrule=.1pt,colframe=red!75!black,boxsep=2pt]%
\begin{Verbatim}%
}{%
\end{Verbatim}%
\end{tcolorbox}%
}
\begin{document}
\begin{TEXTinline}
some code here
\end{TEXTinline}
\end{document}