![从 TikZ 树中的两个兄弟节点写入一行](https://linux22.com/image/247847/%E4%BB%8E%20TikZ%20%E6%A0%91%E4%B8%AD%E7%9A%84%E4%B8%A4%E4%B8%AA%E5%85%84%E5%BC%9F%E8%8A%82%E7%82%B9%E5%86%99%E5%85%A5%E4%B8%80%E8%A1%8C.png)
最近我在 TikZ 上苦苦挣扎,考虑到它是一个如此庞大和全面的库,找到选项和解决方案确实很困难。
我实际上想要做的是在树中绘制一条连接两个相邻兄弟节点的线。就这样。
最好的解决方案是什么?
答案1
标记您想要连接的任何节点,然后简单地使用常规\draw
命令连接它们就足够了。这与您使用哪种方法绘制树无关。下面是一个使用常规 TikZ 树方法或tikz-qtree
方法的组合示例(这为大多数树提供了更简单的语法。在实践中,您可能会使用其中一种。
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\begin{document}
% using regular TikZ tree methods
\begin{tikzpicture}
\node {A}
child {node (B) {B}
child {node {D}}
child {node {E}}}
child {node (C) {C}};
\draw[dashed] (B) -- (C);
\end{tikzpicture}
\bigskip
% using tikz-qtree
\begin{tikzpicture}[sibling distance=3em]
\Tree [.A
[.\node (B){B};
[.D ]
[.E ]
]
[.\node (C) {C}; ]
]
\draw[dashed] (B) -- (C);
\end{tikzpicture}
\end{document}