fvextra 中的 \Verb{}:突出显示 \Verb{} 文本,以便能够在行末换行

fvextra 中的 \Verb{}:突出显示 \Verb{} 文本,以便能够在行末换行

通过搜索各种软件包文档和此网站,我找到了如何编写内联逐字文本的方法,即(必要时)在行末断开。对于此功能,我使用\Verb{}软件包提供的命令fvextra。这非常有效,但我希望同时突出显示逐字文本,同时仍保留自动换行功能。

对于不需要过多转义的文本,我有效地使用了命令\texttt{},它可以\hl{}通过包提供的命令突出显示soul

\Verb{}使用命令的文本也能达到同样的效果吗?

梅威瑟:

\documentclass [a4paper, 12pt, twoside, openright] {scrbook}
\usepackage{fontspec}

\usepackage [left=2.5cm, right=2cm, bottom=3cm, headheight=15.3pt] {geometry}       

\usepackage[dvipsnames,x11names,svgnames,table]{xcolor}

\usepackage{fvextra}
\fvinlineset{breaklines,%
   breakafter=\space ,
   breakanywhere
}

\usepackage[htt]{hyphenat}

\usepackage{soul}
\usepackage{soulutf8}

\sethlcolor{Snow2}

\begin{document}

Test of \Verb{\Verb{}} command working at the end of line \Verb{text that should go on as long as it is forced to be broken at the end of line}.

Test of \Verb{\texttt{}} command working at the end of line, that is also highlighted \hl{\texttt{text that should go on as long as it is forced to be broken at the end of line}}.

There is some text to make sure that argument of command \Verb{\Verb{}} will be broken  \hl{{\Verb{Text in Verb}}, but the highlighting with soul doesnt work.
\end{document}

答案1

fvextra可以\Verb{...}在其他命令中使用,\verb与 和 不同,其他一些逐字命令。这样做时,\Verb的行为类似于\texttt,只是它会执行大量分析,以便几乎所有字符都可以工作,除了#%、不成对的花括号{}、多个相邻空格、双插入符号^^以及一些涉及反斜杠的情况。因此,大多数情况下最简单的解决方案是定义一个新的命令包装\Verb\hl,可能在序言中是这样的:

\makeatletter
\newcommand{\HLVerb}[1]{%
  \edef\hverb@tmp{#1}%
  \expandafter\hl\expandafter{\hverb@tmp}}
\makeatother

\Verb如果您需要比另一个命令中所能处理的更广泛的字符范围,您可以考虑使用\EscVerb,这会使反斜杠成为非字母数字 ASCII 字符的转义。

相关内容