![如何指定 tikz-qtree 的左节点和右节点](https://linux22.com/image/246003/%E5%A6%82%E4%BD%95%E6%8C%87%E5%AE%9A%20tikz-qtree%20%E7%9A%84%E5%B7%A6%E8%8A%82%E7%82%B9%E5%92%8C%E5%8F%B3%E8%8A%82%E7%82%B9.png)
我正在使用 绘制二叉树tikz-qtree
。在我的二叉树中,子节点的顺序是重要的,所以我需要区分哪条边是左边和右边。在我的示例代码中,我无法区分节点 1 是左边还是右边。有办法指定这个吗?
\documentclass[demo]{article}
\usepackage{tikz,tikz-qtree}
\begin{document}
\begin{figure}[ht]\begin{center}\begin{tikzpicture}[grow'=up]
\Tree [.\node(8){8};
[.\node(5){5};
[.\node(3){3};
\node(1){1}; ]
\node(6){6}; ]
\node(12){12}; ]
\end{tikzpicture}\end{center}\end{figure}
\end{document}
答案1
您可以在需要时明确指定边,并指定[draw=none]
。我还简化了您的树:除非您有独立的理由引用它们,否则您不需要将每个节点都括在命令中\node
。对于这种树,使每个节点具有统一的大小可能会有所帮助,这样兄弟距离就不会变化。您可以通过设置 的最小大小来做到这一点every tree node/.style
。我给出了第二棵树来展示如何做到这一点。在一棵树中,您可以将选项添加到{tikzpicture}
环境本身,而不是使用\tikzset
。
\documentclass{article}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}[grow'=up]
\Tree [.8
[.5
[.3
\edge[]; {1}
\edge[draw=none]; {} ]
6 ]
12 ]
\begin{scope}[xshift=2in]
\tikzset{every tree node/.style={minimum width=2em}}
\Tree [.8
[.5
[.3
\edge[]; {1}
\edge[draw=none]; {} ]
6 ]
12 ]
\end{scope}
\end{tikzpicture}
\end{document}