q_0 中的错误未知函数如 q_0

q_0 中的错误未知函数如 q_0
\begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto]
  \node[state,initial] (q_0,q_2) {$q_0,q_2$};
  \node[state] (q_1)   [above right=of q_0,q_2] {$q_1$};
  \node[state] (q_3)   [right=of q_1] {$q_3$};
  \node[state,accepting] (q_4) [below right=of q_0,q_2] {$q_4$};
  \path[->] (q_0,q_2) edge node {a} (q_1)
            (q_0) edge node {b} (q_2)
            (q_1) edge [loop above] node {a} (q_1)
            (q_1) edge  node {b} (q_3)
            (q_3) edge [bend right=40] node {a} (q_1)
            (q_3) edge node {b} (q_4)
            (q_4) edge node {b} (q_2)
            (q_4) edge node {a} (q_1);
\end{tikzpicture}\\

答案1

引用手册:

您的节点名称不应包含任何标点符号,如点、逗号或冒号,因为这些符号用于检测引用节点时所指的坐标类型。

引文取自name第 17.2.1 节中对密钥的描述节点命令的语法,第 215 页底部,第 216 页顶部。(在 2015 年 8 月 29 日的 TikZ 3.0.1a 手册中。)

因此,您不能使用q_0,q_2作为节点名称,但q_0q_2可以正常工作。您还需要指定名为q_0和 的节点q_2。我在下面使用这两个节点名称注释了这些行。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,automata}
\begin{document}
\begin{tikzpicture}[shorten >=1pt,node distance=2cm,on grid,auto]
  \node[state,initial] (q_0q_2)  {$q_0,q_2$};
  \node[state] (q_1)   [above right=of q_0q_2] {$q_1$};
  \node[state] (q_3)   [right=of q_1] {$q_3$};
  \node[state,accepting] (q_4) [below right=of q_0q_2] {$q_4$};
  \path[->] (q_0q_2) edge node {a} (q_1)
           % (q_0) edge node {b} (q_2)
            (q_1) edge [loop above] node {a} (q_1)
            (q_1) edge  node {b} (q_3)
            (q_3) edge [bend right=40] node[swap] {a} (q_1)
            (q_3) edge node {b} (q_4)
           % (q_4) edge node {b} (q_2)
            (q_4) edge node {a} (q_1);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容