格式化 fvextra 输入的行--换行符问题

格式化 fvextra 输入的行--换行符问题

我正在尝试整合这个答案到我的文档中。虽然它大部分情况下都有效,但我遇到了一个新问题。我之所以使用是fvextra因为我需要换行符控制。不幸的是,一旦出现换行符,格式就不再起作用了,尽管我已经将其换成\FancyVerbFormatLine\FancyVerbFormatText

\documentclass{article}
\usepackage{xcolor}
\usepackage{fvextra}

\ExplSyntaxOn
\RenewDocumentCommand{\FancyVerbFormatText}{m}
 {
  \str_if_eq:eeTF { \str_head:n { #1 } } { a } { \textcolor{red}{#1}} {#1}
 }
\ExplSyntaxOff

\begin{document}

\fvset{breaklines}
\begin{Verbatim}
a one
b two
a three three three three three three three three three three three three three three three 
b four
\end{Verbatim}

\end{document}

更新:据我所知,重新定义的命令似乎执行了两次:一次使用参数

a\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three

然后再次使用参数

\FancyVerbBreakStart a\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\ three\FancyVerbBreakStop 

我假设使用了第二次调用的结果,而附加的结果\FancyVerbBreakStart使比较偏离了轨道。我该如何处理这种情况?

相关内容