哪个包可用于绘制自动机?

哪个包可用于绘制自动机?

我正在寻找一个可以帮助绘制自动机问题的 LaTeX 包。我在 Google 上搜索后找到了用于绘制自动机和图形的包(版本 0.4)。但我不确定这个包是不是标准包,或者有没有更好的选择。有什么建议吗?

答案1

TiKZ 有一个用于绘制自动机的完整库:

\documentclass{article}

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

代码输出

答案2

使用xy-pic套餐可在卡坦用于自动机图。 在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[all]{xy}
\begin{document}
\xymatrix@ur@!R=2pc{%
*+<1pc>[o][F-]{q_0}  \ar@(l,l)[]^<<<<{start} \ar@/^/[r]^0  \ar@/_/[d]_1 
& *+<1pc>[o][F-]{q_1} \ar@(ul,ur)[]^{0}  \ar@/^/[d]^1 \\
*+<1pc>[o][F-]{q_2} \ar@(dr,dl)[]^{1} \ar@/_/[r]_0 
& *+<1pc>[o][F=]{q_3} }
\end{document}

答案3

如果您想要出色的图表而又不必编写代码,请查看此工具:

http://madebyevan.com/fsm/

您可以通过单击和拖动来制作图表,然后将其导出为 LaTeX(它使用 TiKZ,就像@Alan Munn 的答案一样)。

相关内容