在 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在逐字環境中添加並注入命令,則換行演算法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}

在此輸入影像描述

為什麼會出現這種情況?即使我注入這樣的自訂命令,我如何仍然可以換行?

相關內容