如何改变 tikz-qtree 中子树的颜色?

如何改变 tikz-qtree 中子树的颜色?

有没有一种优雅的方式来为 tikz-qtree 中的子树着色,而无需手动遍历每个相应的节点和边?

下面的代码示例展示了这种丑陋的方式:

\documentclass{standalone}           
\usepackage{tikz-qtree}  
\begin{document}

\tikz{  
\Tree 
[.A 
    [.B D ]
    [.\node[text=red]{C}; 
        \edge[draw=red];\node[text=red]{E}; 
        \edge[draw=red];\node[text=red]{F}; ]   
]
}

\end{document}

子树红色

相反,我只想在一个地方固定子树的颜色,例如在其根节点(因此在代码示例中为“C”)。有什么建议吗?

答案1

有一种相当简单的方法可以为子树着色,使用森林套餐,其语法类似,但比 tikz-qtree 更灵活。以下是 MWE:

\documentclass{standalone}           
\usepackage{forest} 
\begin{document}

\forestset{
    sn edges/.style={for tree={parent anchor=south, child anchor=north}},
    red subtree/.style={for tree={text=red},for descendants={edge=red}}}
\begin{forest}
sn edges
[A
    [B [D]]
    [C,red subtree
        [E] 
        [F]]   
]
\end{forest}

\end{document}

在此处输入图片描述

相关内容