树边上有子节点的标签

树边上有子节点的标签

我在尝试标记通向本身具有子节点的节点的边时遇到问题。以下是我想要执行的操作:

\begin{tikzpicture}
    \node {A}
    child { node {B} edge from parent [->] node [left] {\tiny 1} }
    child { node {C} edge from parent [->] node [right] {\tiny 2}
        child { node {D}  }
        child { node {E}  }
    }
    ;
\end{tikzpicture}

这不起作用,因为 Tikz 似乎认为 D 和 E 是我的标签的子项。我尝试在不同位置添加括号,但无济于事。

因此,鉴于我的标签需求不是很复杂,我尝试了一种不同的策略,并尝试了以下方法:

\begin{tikzpicture}[act1/.code={\node [above=5mm] {\tiny 1};},
                    act2/.code={\node [above=5mm] {\tiny 2};}]
    \node {A}
    child { node {B} edge from parent [act1,->] }
    child { node {C} edge from parent [act2,->]
        child { node {D}  }
        child { node {E}  }
    }
    ;
\end{tikzpicture}

act1给出了正确的结果,但是一旦我使用act2,代码就会拒绝编译并给我一个我无法理解的错误消息:

! Package pgf Error: No shape named is known.

(“named” 和 “is” 之间有两个空格)

如果您能提供任何有关如何在不借助其他软件包的情况下执行此操作的信息,我们将不胜感激!

答案1

诀窍就是移动edge from parent [->] node [right] {\tiny 2} 的两个“孩子” C

\begin{tikzpicture}
    \node {A}
    child { node {B} edge from parent [->] node [left] {\tiny 1} }
    child { node {C} 
        child { node {D}  }
        child { node {E}  }
        edge from parent [->] node [right] {\tiny 2}
    }
    ;
\end{tikzpicture}

在此处输入图片描述

相关内容