树节点中的彩色文本

树节点中的彩色文本

请考虑以下简单示例:

\documentclass[tikz, border=3mm, preview]{standalone}

\begin{document}
\begin{tikzpicture}[
every node/.append style = {text=blue}
                    ]
\node {root}
    child {node {left}}
    child {node {right}
        child {node {\textcolor{red}{L} child}}
        child {node {R child}}
            };
\end{tikzpicture}
\end{document}

这使:

在此处输入图片描述

为什么节点中的文本L child没有红色L和蓝色child?有趣的是,如果我更改颜色顺序:

child {node {L \textcolor{red}{child}}

那么结果正如预期:蓝色Lred孩子:

在此处输入图片描述

答案1

在这个问题被投票关闭之前,我还有一些话要说:

PGF/Ti 中的颜色设置Z 以自己的方式完成。例如,node[red]{foo}颜色node[text=red]{foo}最终由 [1] 设置\pgfsetcolor{red}。此注释记录如下

\pgfsetcolor{⟨color⟩}设置描边和填充颜色。与普通\color命令不同的是,效果持续到当前结束{pgfscope},而不仅仅是到当前 TEX 组结束。

在我看来,这句话的意思是 PGF\pgfsetcolor和常规的\color是不兼容的。对于你的情况,你应该要么坚持\color按设置node[font=\color{blue}],要么坚持\pgfsetcolor按说法node[text=blue]{\pgfsetcolor{red}L \pgfsetcolor{.}root}

[1] 准确地说,是\tikzoption{text}{\def\tikz@textcolor{#1}}然后\pgfutil@colorlet{.}{\tikz@textcolor}然后\pgfsetcolor{.}

相关内容