我正在寻找一个可以帮助绘制自动机问题的 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
\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
如果您想要出色的图表而又不必编写代码,请查看此工具:
您可以通过单击和拖动来制作图表,然后将其导出为 LaTeX(它使用 TiKZ,就像@Alan Munn 的答案一样)。