使用以下代码
\begin{tikzpicture}[scale=0.05,shorten >=0.25pt,node distance=1.4cm,on grid,auto]
\node[state,initial] (A) {$A$};
\node[state] (B) [right=of A] {$B$};
\node[state] (C) [below right=of B] {$C$};
\node[state] (D) [above right=of C] {$D$};
\node[state] (E) [above right=of B] {$E$};
\node[state] (F) [right=of D] {$F$};
\path[->]
(A) edge node {$\epsilon$} (B)
(B) edge node {1} (C)
(B) edge node {0} (E)
(C) edge node {$\e$} (D)
(E) edge node {$\e$} (D)
(D) edge node {$\e$} (F)
(A) edge node {$\epsilon$} (B)
(F) edge [bend left=120] node {$\epsilon$} (A);
\end{tikzpicture}
我制作了以下图表:
我使用 bend-right 尝试将箭头从 $F$ 发送到 $A$,但箭头切过了 $C$(并且 luatex 抱怨“尺寸太大”)。
我希望实现类似于下图中从 $g$ 到 $s$ 的黄色箭头:
我应该尝试什么?
答案1
您的问题是使用scale=0.05
。只需将其删除(其用途不明确),图像就会变成您想要的样子:
使用quotes
库后,您的代码片段可以写成如下形式:
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{automata, positioning, quotes}
\begin{document}
\begin{tikzpicture}[auto,
node distance=15mm, on grid]
\node[state,initial] (A) {$A$};
\node[state] (B) [right=of A] {$B$};
\node[state] (C) [below right=of B] {$C$};
\node[state] (D) [above right=of C] {$D$};
\node[state] (E) [above right=of B] {$E$};
\node[state] (F) [right=of D] {$F$};
%
\path[->] (A) edge ["$\epsilon$"] (B)
(B) edge ["1" '] (C)
(B) edge ["0"] (E)
(C) edge ["$\epsilon$" '] (D)
(E) edge ["$\epsilon$"] (D)
(D) edge ["$\epsilon$"] (F)
(A) edge ["$\epsilon$"] (B)
(F) edge [bend left=90,"$\epsilon$"] (A);
\end{tikzpicture}
\end{document}