从 TikZ 树中的两个兄弟节点写入一行

从 TikZ 树中的两个兄弟节点写入一行

最近我在 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}

代码输出

相关内容