我想用带有不同颜色“光环”的文本来标记我的节点。这可能吗?
原因是我的标签文本覆盖了图表的不同部分,背景颜色也不同,因此没有一种颜色能够使标签清晰易读。我理想情况下希望文本为黑色,带有白色光晕。
答案1
您可以将contour
软件包与outline
在文本周围创建粗轮廓。请注意,这不适用于分数线或根符号的水平线(请参阅怎样才能在分数线周围添加彩色轮廓?)。
Andrey Vihoy 提到了仅填充节点背景的选项。我添加了此方法以供比较。
Andrew Stacey 建议将填充节点的角弄圆,这确实看起来更优雅。这里也展示了这种变化。
\documentclass{article}
\usepackage{tikz}
\usepackage[outline]{contour}
\contourlength{1.2pt}
\begin{document}
\begin{tikzpicture}
\draw [fill=gray!10!white](0,0) rectangle (4.5,1) [step=0.1cm] (0,0) grid (4.5,1);
\node at (0.75,0.5) {\contour{white}{\Large Text!}};
\node [fill=white,inner sep=1pt] at (2.25,0.5) {\Large Text!};
\node [fill=white,rounded corners=2pt,inner sep=1pt] at (3.75,0.5) {\Large Text!};
\end{tikzpicture}
\end{document}
答案2
您可以将[fill]
参数添加到任何文本节点。这不会给您的每个字符带来光晕,但根据您的需要,它可能更具可读性。
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[fill,red] (0,0) rectangle (11,2);
\draw[very thick] (1,1) -- node[outer sep=5pt,fill=white,above] {Label} (10,1);
\end{tikzpicture}
\end{document}
答案3
我们可以使用\special{pdf: code ...}
运算符或\pdfliteral{}
运算符。捷克 TeXist Zdeněk Wagner 在捷克斯洛伐克 TeX 用户组的 Zpravodaj 期刊 1/2013 中提到了一些技术细节。
我喜欢一个新玩具,名字叫pdf-trans
以及 Paweł Jackowski 创建的那些示例。我说明了命令的用法\boxgs
。我还喜欢其他预准备的命令,例如\boxshow
和\boxmarkers
,所以我将它们添加到该示例中,即使它们与问题没有直接关系。
运算Tr
符用于选择字体的显示方式(0
、1
或2
),q
运算符必须与Q
运算符配对才能符合 Adobe PDF 规范。详细描述这些运算符并不容易。然后,我们使用w
运算符(大点尺寸)来设置轮廓曲线的宽度,其余的就很简单了。我们通过rg
& RG
(rgb)、k
& K
(cmyk)或g
& G
(gray)设置字体及其轮廓的颜色。我们通常在运算符前使用数字,PostScript 用户已经知道这一点。
我附上了一个例子,其中我设置了红色字体和绿色轮廓,宽度为 3bp(非常接近 3pt)。
%! {pdf|lua}latex mal-outline.tex
\documentclass[a4paper]{article}
\usepackage{tikz}
\pagestyle{empty}\parindent=0pt
\input pdf-trans
\newbox\qbox
\begin{document}
\huge
\def\maltext{An example.}
\setbox\qbox=\hbox{\maltext}%
\begin{tikzpicture}
\node[align=center, draw]{%
\boxgs{Q q 2 Tr 0.3 w 0.47 0.6157 0.38 RG 1 0 0 rg }{}%
\copy\qbox \\
\boxshow{0.3 w 0 0 1 RG}{[1 1]0 d}{}
\copy\qbox \\
\boxmarkers{-12pt}{3pt}{0.3 w 1 0 0 RG 1 J}
\copy\qbox
};
\end{tikzpicture}
%\normalsize Text continues here.
\end{document}