如何更改 qtree 中子树的颜色?

如何更改 qtree 中子树的颜色?

我想知道是否有办法使用 qtree 更改子树的颜色。我看到有一篇文章说你可以在森林中做到这一点,但我不知道是否有办法在 qtree 或 tikz-qtree 上做到这一点。我粘贴了我第一次尝试的内容:一棵树,所有节点都是灰色的,但我想要的是树枝也是灰色的。我可以使用 xcolor 来更改子树的颜色吗?谢谢!MWE:

  \usepackage{qtree}

\usepackage{xcolor}

\begin{document}

\Tree [.A B [.C   D [.{\color{gray} E}  {\color{gray} F}  {\color{gray} G}  ] ] ]

\end{document}

答案1

qtree实际上相当棘手。这棵特定的树是从上到下(B-0、D-1 和 F-2)从左分支节点构建的,然后绘制最深子树的右叶节点(G-3),然后绘制该子树的头节点(E-4),然后绘制该子树的分支(5 和 6)。随后,对树的上部重复此过程,因此首先是头节点,然后是分支。请参阅以下带注释的树以了解绘制顺序:

带有绘制顺序注释的树

一般来说,你可以添加\color不带括号的语句来切换以下内容的颜色(节点分支)直到遇到下一个\color语句。具体来说,这意味着在子树之前将颜色设置为灰色,在子树之后将其重新设置为黑色。但是,您需要考虑绘制顺序,以找出\color需要添加语句的确切位置。

重要的是使用\qtree带有!字符的语法来转义树解析器,即,!\color{gray}而不是仅仅\color{gray}将其解释为节点内容的一部分。

现在,应该将颜色开关放在 F 节点(绘制索引 2)之前,并在关闭 E 子树(绘制索引 6)的括号之后切换回。

梅威瑟:

\documentclass{article}
\usepackage{qtree}
\usepackage{xcolor}
\begin{document}
\Tree [.A B [.C D [.E !\color{gray} F G ] !\color{black} ] ]
\end{document}

结果:

具有彩色子树的树

相关内容