在LaTeX 中的酷炫文本突出显示在对 Caramdir 的回答的评论中,Gumbo 提出了对 的\hlc
修改,以允许动态选择突出显示颜色。soul
\hl
\hlc
但是,在突出显示的文本周围留下了多余的空间,特别是之前和之后。
以下是 MWE:
\documentclass[11pt]{book}
\usepackage{xcolor}
\usepackage{soul}
\newcommand{\hlc}[2][yellow]{ {\sethlcolor{#1} \hl{#2}} }
\begin{document}
In the source there is\hlc[yellow]{no space}between highlighted-surrounding text.
\end{document}
输出如下:
答案1
几点:
您有多余的空间之内宏定义,尤其是在进入时、退出时以及在之前
\hl
。有时宏定义中的空格不起作用,例如在数学模式下,或者在宏名称后面就是两个明显的例子。但是,一般来说,宏定义中的空格会被翻译为输出中的空格。这就是你的虚假空格出现的地方,并且我在定义中添加了
\unskip
和,以删除调用周围的空格。你可能不希望在实际定义中使用它们,但这是为了展示宏如何能够超越自身来删除\ignorespaces
\hlc
外部的周围空间。
妇女权利委员会:
\documentclass[11pt]{book}
\usepackage{xcolor}
\usepackage{soul}
\newcommand{\hlc}[2][yellow]{\unskip{\sethlcolor{#1}\hl{#2}}\ignorespaces}
\begin{document}
In the source there is \hlc[yellow]{no space} between highlighted-surrounding text.
\end{document}