TikZ:文本周围有光晕?

TikZ:文本周围有光晕?

我想用带有不同颜色“光环”的文本来标记我的节点。这可能吗?

原因是我的标签文本覆盖了图表的不同部分,背景颜色也不同,因此没有一种颜色能够使标签清晰易读。我理想情况下希望文本为黑色,带有白色光晕。

答案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}

tikz 节点中带有光晕的文本

答案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符用于选择字体的显示方式(012),q运算符必须与Q运算符配对才能符合 Adob​​e 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}

姆韦

相关内容