如何使连接父节点和子节点的线更长?

如何使连接父节点和子节点的线更长?

我想用下面的代码画一棵树,但是连接 S0 和 S1 的线不够长,如下图所示,有人可以帮帮我吗?在此处输入图片描述

\documentclass[tikz]{standalone}
\usepackage{tikz}
\begin{document}
\tikzset{level 1/.style={level distance=0.7cm, sibling distance=4.5cm}}
\tikzset{level 2/.style={level distance=0.7cm, sibling distance=4.5cm}}

\tikzset{bag/.style={text width=20em,text centered,yshift=-0.2cm}}
\begin{tikzpicture}[grow=down, -stealth]
{\node[bag]{$S_0{:}(m)$}
    child{ edge from parent node[left=0.1cm]{$$}; \node[bag]{$S_1{:}(i_1)$}
       child{ edge from parent node[right=0.1cm]{$$}; \node[bag]{$S_4{:}(s)$}
       }
    }
    child{ edge from parent node[right=0.1cm]{$$};
    \node[bag,yshift=-1.0cm]{$S_2{:}(t_1)$}
       child{ edge from parent node[left=0cm]{$$}; \node[bag]{$S_5{:}(t_1{+}t_2)$}
       }
       child{ edge from parent node[right=0cm]{$$}; \node[bag]{$S_6{:}(t_1{+}t_3)$}
       }
    }
    child{edge from parent node[right=0.1cm]{$$}; \node[bag]{$S_3{:}(t_3)$}
       child{ edge from parent node[right=0.1cm]{$$}; \node[bag]{$S_6{:}(t_1{+}t_3)$}
       }
    };
}
\end{tikzpicture}
\end{document}

答案1

从您绘制的蓝色区域来看,我猜您指的是 S0 和 S2。您正在为边缘放置空节点,然后放置额外的\node语法。将所有内容转换为默认条目会得到预期的输出,但我不确定您想要的最终产品是什么。

\documentclass[tikz]{standalone}
\tikzset{level 1/.style={level distance=0.7cm, sibling distance=4.5cm},
       level 2/.style={level distance=1cm, sibling distance=4.5cm},
       bag/.style={text width=20em,text centered,yshift=-0.2cm}}

\begin{document}
\begin{tikzpicture}[grow=down,-stealth]
\node[bag]{$S_0{:}(m)$}
    child{node[bag]{$S_1{:}(i_1)$}
       child{
          node[bag]{$S_4{:}(s)$}
       }
    }
    child{ node[bag,yshift=-1.0cm]{$S_2{:}(t_1)$}
       child{ 
          node[bag]{$S_5{:}(t_1{+}t_2)$}
       }
       child{ node[bag]{$S_6{:}(t_1{+}t_3)$}
       }
    }
    child{ node[bag]{$S_3{:}(t_3)$}
       child{ node[bag]{$S_6{:}(t_1{+}t_3)$}
       }
    };

\end{tikzpicture}
\end{document}

在此处输入图片描述

如果您想将第一级箭头延伸到节点,那么您需要减小节点大小,因为节点宽度为 20em 并且形状边框与内容相比太大。

相关内容