我正在尝试为 \texttt 文本添加背景颜色,并为此定义一个命令,如下所示:
\newcommand{\code}[1]{\texttt{\hl{#1}}}
。有时这些行跨越多个单词(有或没有空格),我习惯\allowbreak
在某些地方不加连字符(某些地方在标点符号之前,例如.
,某些地方在空格之后,某些地方在大写字母之前)。没有 \hl,它按预期工作。
但是,当我输入 \hl 时,首先它会抱怨I came across hyphenatable material enclosed in group braces, which I can't handle. Either drop the braces or make the material unbreakable using an \mbox (\hbox).
一些有空格的地方,然后是\allowbreak
(例如\code{CREATE \allowbreak TABLE}
)。其次,我注意到它破坏了文本前 \allowbreak
而不是在几个地方之后删除最后一个或五个字符,而不会报告任何错误。在几个地方断行后,它似乎也很难为文本着色,因此突出显示会跨越到右边距,但会跳过下一行的开头。
我正在使用soulutf8
它,看看是否有任何区别,突出显示的文本有时是西里尔字母,有时是拉丁字母,有时两者兼有。
我使用的工具是否正确?如果正确,如何使用自定义断点设置 tt 文本的背景颜色?
以下是一些问题的 MWE,每段后的评论中都有(意外的)结果。我没有在空格部分后添加 \allowbreak,因为正如指出的那样,它实际上毫无用处(尽管我希望它会被忽略,并且不会引发错误):
\documentclass[11pt]{book}
\usepackage[serbianc]{babel}
\usepackage{xcolor, soulutf8}
\usepackage{vmargin}
\begin{document}
\newcommand{\code}[1]{\texttt{\hl{#1}}}
\setmargrb{0.8in}{1in}{1.6in}{1.6in}
Омотач за податке прикупљене пре 2017. године је дефинисан класом
\code{rs.lukaj\allowbreak.upisstats\allowbreak.scraper\allowbreak.obrada\allowbreak.UcenikWrapper},
унутар које се налазе класе. %highlight goes over margin and cut off
Омотач за податке прикупљене 2017. године је дефинисан класом
\code{rs\allowbreak.lukaj\allowbreak.upisstats\allowbreak.scraper\allowbreak.obrada2017\allowbreak.UcenikW},
и за разлику од %text broke in the middle and cut off
Унутар \code{conf/} директоријума се налазе конфигурацијски фајлови.
Најважнији део \code{conf/\allowbreak application\allowbreak.conf}
фајла су параметри % text cut off even when not broken
ће се метода позвати за сваку путању. Нпр. ако корисник посети
\code{\{адреса\_сервера\}\allowbreak/query\allowbreak?initial=asdf},
позваће се % text broken before allowbreak and cut off
\end{document}
结果我得到了这个
答案1
使用\soulregister
:
\documentclass[11pt]{book}
\usepackage[serbianc]{babel}
\usepackage{xcolor, soulutf8}
\soulregister{\allowbreak}{0}
\newcommand{\code}[1]{\texttt{\hl{#1}}}
\begin{document}
Омотач за податке прикупљене пре 2017. године је дефинисан класом
\code{rs.lukaj\allowbreak.upisstats\allowbreak.scraper\allowbreak.obrada\allowbreak.UcenikWrapper},
унутар које се налазе класе. %highlight goes over margin
Омотач за податке прикупљене 2017. године је дефинисан класом
\code{rs\allowbreak.lukaj\allowbreak.upisstats\allowbreak.scraper\allowbreak.obrada2017\allowbreak.UcenikW},
и за разлику од %text broke in the middle and cut off
Унутар \code{conf/} директоријума се налазе конфигурацијски фајлови.
Најважнији део \code{conf/\allowbreak application\allowbreak.conf}
фајла су параметри % text cut off even when not broken
ће се метода позвати за сваку путању. Нпр. ако корисник посети
\code{\{адреса\_сервера\}\allowbreak/query\allowbreak?initial=asdf},
позваће се % text broken before allowbreak and cut off
\end{document}
注意:不要使用vmargin
。它不与其他几个软件包(尤其是 TikZ)兼容。