树中的定位错误

树中的定位错误

我想用 来构建一棵树,但我需要每个节点都与使用fromforest时布局相同,所以我必须使用 tikz 中的普通节点创建树。state\usetikzlibrary{automata}

\begin{tikzpicture}[%
    node distance=0.8cm,
    ->,
    every node/.style = {state}
]
\node {$s_1$}
    child {
        node {$s_2$}
            child {
                node {$s_3$}
                    child {
                        node {$s_4$}
                    }
            }
            child {
                node {$s_5$}
                    child {
                        node {$s_6$}
                    }
                    child {
                        node {$s_7$}
                    }
            }
    }
    child {
        node {$s_8$}
            child {
                node {$s_9$}
                    child {
                        node {$s_{10}$}
                    }
            }
            child {
                node {$s_{11}$}
            }
    };
\end{tikzpicture}

但事实证明这棵树根本不平衡(位置非常糟糕):

在此处输入图片描述

我可以修复位置或者使用forest与现在相同的节点和路径/箭头样式执行完全相同的操作吗?

我有一棵同样的树forest

\begin{forest}
[$s_1$
    [$s_2$
        [$s_3$
            [$s_4$]
            [,phantom]
        ]
        [$s_5$
            [$s_6$]
            [$s_7$]
        ]
    ]
    [$s_8$
        [$s_9$
            [,phantom]
            [$s_{10}$]
        ]
        [$s_{11}$]
    ]
]
\end{forest}

但它的风格却截然不同:

在此处输入图片描述

是否可以添加类似

for tree={state},
for path={normal path}

答案1

您发布的代码不会产生森林树所示的输出。我不熟悉automata,也不知道normal path它是如何定义的,也不知道它的定义是什么,所以我只是在这里使用它->

\documentclass[border=10pt,multi,tikz]{standalone}
\usepackage{forest}
\usetikzlibrary{automata}
\begin{document}
\begin{forest}
  for tree={
    math content,
    state,
    edge={->},
  }
  [s_1
      [s_2
          [s_3
              [s_4]
              [,phantom]
          ]
          [s_5
              [s_6]
              [s_7]
          ]
      ]
      [s_8
          [s_9
              [,phantom]
              [s_{10}]
          ]
          [s_{11}]
      ]
  ]
\end{forest}
\end{document}

定制树

相关内容