我正在使用该fancyvrb
包在我的逐字环境中进行格式化(例如粗体、颜色等)。
这很容易做到,只需提供commandchars
如本 MWE 所示的选项即可:
\documentclass{scrartcl}
\usepackage{fancyvrb}
\usepackage{xcolor}
\fvset{
commandchars=\\\{\}
}
\begin{document}
\begin{Verbatim}[frame=single]
Here is some \textbf{bold} and {\color{red} red} text in a Verbatim environment.
\end{Verbatim}
\begin{Verbatim}
Here is some text that breaks \
because it is expecting a command
\end{Verbatim}
\end{document}
在最多我的环境我想要这种格式,这就是为什么我有
\fvset{
commandchars=\\\{\},
}
但是,有几个 Verbatim 环境我不想commandchars
设置。(没有格式,并且逐字文本包含\
,这使其看起来像命令的开头。)
那么我怎样才能“取消设置”该commandchars
选项以使其恢复为默认值?我尝试过简单地做commandchars=
,但是却收到错误:
`commandchars' undefined
答案1
fancyvrb
定义commandchars
键如下:
\define@key{FV}{commandchars}[\\\{\}]%
{\def\@tempa{#1}%
\ifx\@tempa\FV@None
\let\FV@CommandChars\relax
\else
\FV@DefineCommandChars#1\relax\relax\relax
\fi}
它检查给定的值是否等于\FV@none
,扩展为none
。如果为真,则取消设置键,否则使用给定值定义它。因此,您可以通过执行以下操作为单个环境取消设置此键:
\documentclass{scrartcl}
\usepackage{fancyvrb}
\usepackage{xcolor}
\fvset{
commandchars=\\\{\}
}
\begin{document}
\begin{Verbatim}[frame=single]
Here is some \textbf{bold} and {\color{red} red} text in a Verbatim environment.
\end{Verbatim}
\begin{Verbatim}[commandchars=none]
Here is some text that breaks \
because it is expecting a command
\end{Verbatim}
\end{document}