如何取消设置 Verbatim 环境的选项

如何取消设置 Verbatim 环境的选项

我正在使用该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}

相关内容