考虑一下:
我希望能够像这样突出显示文本没有在其周围添加空格——这样第一行中的每个单词都应与第二行中的相应单词对齐。(我知道我可能必须摆弄突出显示的大小,以防止它溢出到其他单词上。)
该示例是用 PSTricks 生成的,尽管我更喜欢 tikz 解决方案。
\documentclass[a4paper]{article}
\usepackage{color}
\usepackage{pstricks}
\newrgbcolor{vlgray}{0.87 0.87 0.87}
\newcommand{\highlight}[1]{\psframebox[linearc=1.4mm,cornersize=absolute,fillcolor=vlgray, fillstyle=solid,linecolor=white]{#1}}
\begin{document}
Lorem ipsum \highlight{dolor} sit amet, \highlight{consectetuer} adipiscing elit, sed diam
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
\end{document}
编辑:另请参见https://tex.stackexchange.com/a/89145/17049,我特别喜欢它,因为它比下面的答案(或上面的例子)更紧密地贴合文本周围的突出显示。
答案1
既然 OP 表示他偏爱某种tikz
解决方案,那么就有一个解决方案。诀窍是在背景中绘制框架,同时中断边界框的计算,这样边界框就不会考虑这个背景。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fit,backgrounds}
\newcommand{\highlight}[1]{%
\begin{tikzpicture}[baseline = (text.base)]
\node[inner sep=0pt] (text) {#1};
\begin{pgfinterruptboundingbox}
\begin{pgfonlayer}{background}
\node[fit=(text), rounded corners, fill=black!20, draw=none] {};
\end{pgfonlayer}
\end{pgfinterruptboundingbox}
\end{tikzpicture}%
}
\begin{document}
Lorem ipsum \highlight{dolor} sit amet, \highlight{consectetuer} adipiscing elit, sed diam
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
\end{document}
答案2
除非您确实需要圆角,否则您只需要颜色包即可。
\documentclass[a4paper]{article}
\usepackage{color}
\definecolor{vlgray}{rgb}{0.87,0.87,0.87}
\newcommand{\highlight}[1]{{\setlength\fboxsep{0pt}\colorbox{vlgray}{#1}}}
\begin{document}
Lorem ipsum \highlight{dolor} sit amet, \highlight{consectetuer} adipiscing elit, sed diam
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
\end{document}
答案3
\psframebox
插入一个框,其框架边框的宽度为\pslinewidth
,分隔线的宽度为\psframesep
。从宏的两侧删除这些内容\highlight
可产生所需的结果:
\documentclass{article}
\usepackage{xcolor,pstricks}% http://ctan.org/pkg/{xcolor,pstricks}
\newrgbcolor{vlgray}{0.87 0.87 0.87}
\newcommand{\highlight}[1]{%
\kern\dimexpr-\pslinewidth-\psframesep\relax%
\psframebox[linearc=1.4mm,cornersize=absolute,fillcolor=vlgray, fillstyle=solid,linecolor=white]{#1}%
\kern\dimexpr-\pslinewidth-\psframesep\relax}%
\begin{document}
Lorem ipsum \highlight{dolor} sit amet, \highlight{consectetuer} adipiscing elit, sed diam
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
\end{document}