我想要绘制下图:
\documentclass[11pt,twoside,a4paper]{book}
\usepackage[margin=0.45in]{geometry}
\usepackage[all]{xy}
\begin{document}
\begin{figure}[ht]
\[\xymatrix{&&&&& n+1 \ar[r]^{\sigma} & \dots \ar@{..}[dd]\\
0 \ar[r]_{\sigma} & 1 \ar[r]_{\sigma} & 2 \ar[r]_{\sigma} \cdots & n-1 \ar[r]_{\sigma} & n \ar[ru]^{\sigma} & &\\
&&&&& n+m-1\ar[lu]^{\sigma} & \ar[l]^{\sigma}\dots
}\]
\caption{Cyclic State Machine}
\end{figure}
\end{document}
得出的结果为:
这不是我想要的。我怎样才能画出我想要的图形?
答案1
我已经解决了我的问题:
\documentclass[11pt,twoside,a4paper]{book}
\usepackage[margin=0.45in]{geometry}
\usepackage[all]{xy}
\begin{document}
\begin{figure}[ht]
\[\xymatrix{&&&&& n+1 \ar[rr]^{\sigma} && \ar@{..}[dd]\\
0 \ar[r]_{\sigma} & 1 \ar[r]_{\sigma} & 2 \ar[r]_{\sigma} \cdots & n-1 \ar[r]_{\sigma} & n \ar[ru]^{\sigma} & &\\
&&&&& **[r]n+m-1\ar[lu]^{\sigma} & &\ar[l]^{\sigma}
}\]
\caption{Cyclic State Machine}
\end{figure}
\end{document}
生产:
答案2
这是一个 TikZ 解决方案。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[x=1mm,y=1mm]
\node (0) at (0,0) {0};
\node[right=of 0] (1) {1};
\draw[->,>=stealth] (0) -- node[auto, swap] {$\sigma$} (1);
\node[right=of 1] (2) {2};
\draw[->,>=stealth] (1) -- node[auto, swap] {$\sigma$} (2);
\node[right=of 2] (dots) {$\dots$};
\draw[->,>=stealth] (2) -- node[auto, swap] {$\sigma$} (dots);
\node[right=of dots] (predn) {$n-1$};
\draw[->,>=stealth] (dots) -- node[auto, swap] {$\sigma$} (predn);
\node[right=of predn] (n) {$n$};
\draw[->,>=stealth] (predn) -- node[auto, swap] {$\sigma$} (n);
\node[above right=5 of n] (sucn) {$n+1$};
\draw[->,>=stealth] (n) -- node[auto] {$\sigma$} (sucn.south west);
\node[below right=5 of n] (nm) {$n+m-1$};
\draw[<-,>=stealth] (n) -- node[auto, swap] {$\sigma$} (nm.north west);
\node[right=of nm] (offbot) {};
\draw[<-,>=stealth] (nm) -- node[auto, swap] {$\sigma$} (offbot);
\node at (offbot |- sucn) (offtop) {};
\draw[->,>=stealth] (sucn) -- node[auto] {$\sigma$} (offtop);
\draw[dotted,line width=1,shorten <=5, shorten >=5] (offbot) -- (offtop);
\end{tikzpicture}
\end{document}
一些解释性评论。
加载该
positioning
库以便节点可以相对于彼此定位。该
>=stealth
键设置箭头尖的样式。关键
auto
是将 σ 标签与箭头保持“适当”的距离;否则,它们会位于箭头之上。键
swap
将 σ 标签放在箭头的另一侧(适当的位置)。和
shorten >
键shorten <
使给定线的两端稍微变短一些。该
x |- y
构造将新节点定位在节点的水平位置x
和节点的垂直位置y
。括号中的诸如
(0)
、(predn)
等(nm)
只是名称,用于指代节点。