我正在为论文制作简单的有限状态机。我的代码如下:
%\usetikzlibrary{arrows,automata} in the preamble
\begin{tikzpicture}[>=stealth', auto,node distance=2.75cm]
\node[state] (start) {};
\node[state] (s1) [right of=start, align=left] {isProvider\\Enabled};
\node[state] (s2) [right of=s1] {};
\node[state] (s3) [right of=s2] {};
\path[->] (start) edge node {} (s1)
(s1) edge node[text width=1cm,align=center, pos=.4] {requestLocation\\Updates} (s2)
(s2) edge node[text width=1cm,align=center, pos=.3 ]{addGps\\StatusListener} (s3);
\end{tikzpicture}
我想将节点起始点到节点 s1 的距离减小到 1 厘米……但节点之间的距离只能是这个距离。所有其他边缘应保持 2.75 厘米。任何想法或建议都值得赞赏。
答案1
right
您可以使用库提供的增强功能(和类似功能) positioning
(请参阅第节16.5.3 高级放置选项手册中的pgf
内容):
\documentclass{book}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,automata}
\begin{document}
\begin{tikzpicture}[>=stealth', auto,node distance=2.75cm]
\node[state] (start) {};
\node[state] (s1) [right=1cm of start, align=left] {isProvider\\Enabled};
\node[state] (s2) [right of=s1] {};
\node[state] (s3) [right of=s2] {};
\path[->] (start) edge node {} (s1)
(s1) edge node[text width=1cm,align=center, pos=.4] {requestLocation\\Updates} (s2)
(s2) edge node[text width=1cm,align=center, pos=.3 ]{addGps\\StatusListener} (s3);
\end{tikzpicture}
\end{document}
您需要更正标签的位置;因为它们现在与文本重叠。