通过搜索各种软件包文档和此网站,我找到了如何编写内联逐字文本的方法,即(必要时)在行末断开。对于此功能,我使用\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 字符的转义。