有没有一种优雅的方式来为 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}