在 Verbatim 环境中注入命令时,使用 fancyvrb 和 fvextra 换行不起作用

在 Verbatim 环境中注入命令时,使用 fancyvrb 和 fvextra 换行不起作用

使用fancyvrbfvextra,可以让逐字环境在任何位置换行以适应文本宽度。

\documentclass{article}

\usepackage{fancyvrb}
\usepackage{fvextra}

\begin{document}

\DefineVerbatimEnvironment{MyVerbatim}{Verbatim}{breaklines, breakanywhere}

\begin{MyVerbatim}
def f(x):
    s = "908df0sdfdsfsd78g89f7g98fd7gh98fdhfd7h98df7h98dfh99h8dfa897hf9d7h98fd7hf98dh"
    return x
\end{MyVerbatim}

\end{document}

在此处输入图片描述

但是,如果我commandchars在 verbatim 环境中添加并注入一个命令,那么换行算法fvextra就会以某种方式被覆盖。

\documentclass{article}

\usepackage{fancyvrb}
\usepackage{fvextra}
\usepackage{xcolor}

\begin{document}

\newcommand{\Tok}[1]{\textcolor[rgb]{0.3, 0.4, 0.2}{#1}}

\DefineVerbatimEnvironment{MyOtherVerbatim}{Verbatim}
{breaklines, breakanywhere, commandchars=\\\{\}}

\begin{MyOtherVerbatim}
def f(x):
    s = \Tok{"908df0sdfdsfsd78g89f7g98fd7gh98fdhfd7h98df7h98dfh99h8dfa897hf9d7h98fd7hf98dh"}
    return x
\end{MyOtherVerbatim}

\end{document}

在此处输入图片描述

为什么会发生这种情况?即使我注入了这样的自定义命令,如何仍能换行?

相关内容