我正在构建一个二叉树,如下所示:
\begin{tikzpicture}
\node {root}
child { node {left} }
child { node {right}
child { node {rightmost} }
} ;
\end{tikzpicture}
如果是单个子节点,就像“最右边”的情况一样,边缘只是指向下方。我想影响单个边缘和节点的位置,使它们倾斜,就像它们有一个兄弟节点一样:
我该如何做呢?
答案1
一种方法是使用选项missing
。考虑到您想要实现的目标:“就像有一个兄弟姐妹一样”,这种方法可能是最自然的。
\begin{tikzpicture}
\node {root}
child { node {left} }
child { node {right}
child[missing] {node {}}
child { node {rightmost} }
} ;
\end{tikzpicture}
输出 :
下面的代码也可以利用该right
选项来实现这个效果。
\begin{tikzpicture}
\node {root}
child { node {left} }
child { node {right}
child[right] { node {rightmost} }
} ;
\end{tikzpicture}
输出:
请注意,使用第一个选项时,边缘对齐看起来更好。原因是这missing
是一个特定于树的选项,它要求 tikz 表现得“好像有一个兄弟”,因此它不依赖于节点的内容进行对齐。
另一方面,据我了解,这right
是一个传递给节点的选项,它相对于节点的最左边缘而不是中心放置。此选项不会影响树的其余部分,也不会依赖于它,这就是为什么输出不太令人满意的原因。