![如何更改 qtree 中子树的颜色?](https://linux22.com/image/457410/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20qtree%20%E4%B8%AD%E5%AD%90%E6%A0%91%E7%9A%84%E9%A2%9C%E8%89%B2%EF%BC%9F.png)
我想知道是否有办法使用 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}
结果: