FSM 状态内的树的边缘显示不正确

FSM 状态内的树的边缘显示不正确

我正在尝试绘制一个以树作为状态的 FSM(使用 \usetikzlibrary{automata})。使用我当前的代码,状态内的树的边缘绘制不完整。这可能是什么原因造成的,我该如何修复它?

我的代码:

\begin{tikzpicture}[->]
    \node[state, inner sep=0] (q) {
        \begin{tikzpicture}[-]
            \node {$ \{ q_I, f, g, h, i \} $}
            child {node {$ \{ q_I \} $}}
            child {node {$ \{ f, g, h \} $}
            child {node {$ \{ g \} $}}
            child {node {$ \{ h \} $}}
            };
        \end{tikzpicture}
    };
\end{tikzpicture}

结果:

状态内的树

答案1

出现这种情况的原因是您嵌套了tikzpictures,应该避免这种情况。下面是一种不嵌套tikzpictures 的绘制此图的方法。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{automata,fit}
\begin{document}
\begin{tikzpicture}
 \begin{scope}[local bounding box=tree]
            \node  {$ \{ q_I, f, g, h, i \} $}
            child {node {$ \{ q_I \} $}}
            child {node {$ \{ f, g, h \} $}
            child {node {$ \{ g \} $}}
            child {node {$ \{ h \} $}}
            };
 \end{scope}
 \node[state, inner sep=0,fit=(tree)] (q) {};           
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容