我最近开始使用 LaTeX,并且正在尝试为文章绘制一些部分 NFA;我对 TikZ 几乎没有经验,所以请原谅我问一些可能微不足道的问题。
我正在尝试绘制如下图像:
(这些来自这里。
到目前为止我可以定位节点:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
Partial NFA example:
\begin{tikzpicture}[shorten >=1pt,->]
\tikzstyle{state}=[circle,draw=black,thick]
\tikzstyle{block}=[rectangle,draw=black,thick,minimum width=25pt]
\node[state] (s) at (1,1) { };
\node[block] (e) at (5,2) {\texttt{e}};
\node[] (x) at (4,0) { };
\draw (0,0) -- (s); % Start
\draw (s) edge[bend left=30] (e);
\draw (e) edge[bend left=30] (s);
\draw (s) edge[bend right=30] (x);
\end{tikzpicture}
\end{document}
但我无法接近我想要的效果。我不知道如何正确地制作箭头。
有人能帮我一下吗?
答案1
这还不是一个完整的答案,但这应该会引导您走向正确的方向...有关代码如何工作的详细信息,请查看代码中的注释,其中仅包含对您提供的代码的微小更改。
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{
arrows.meta,
}
\begin{document}
\begin{tikzpicture}
\tikzstyle{state}=[circle,draw=black,thick]
\tikzstyle{block}=[rectangle,draw=black,thick,minimum width=25pt]
\node [state] (s) at (1,1) { };
\node [block] (e) at (5,2) {\texttt{e}};
\node [] (x) at (4,0) { };
\begin{scope}[
->,
shorten >=1pt,
% draw corners rounded
rounded corners=2mm,
]
% connect the nodes vertical and horizontal lines (`|-')
% (if you need to draw first horizontal and then vertical lines
% use `-|' instead)
\draw (0,0) |- (s); % Start
\draw (s) |- (e);
\draw (e) |- (s);
\draw (s) |- (x);
\draw [draw=white,{To[black]}-,shorten <=1pt] (e.east) -- +(5pt,0);
\end{scope}
\end{tikzpicture}
\end{document}