我正在绘制一个由三个状态组成的自动机。其中第二个状态在第一个状态的右侧,我希望第三个状态位于第一个和第二个状态的下方,但位于中间,这意味着与第一个和第二个状态的距离相同。目前,我有类似这样的情况。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata,arrows}
\begin{document}
\begin{figure}[H]
\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=5 cm, scale=1, transform shape]
\node[initial,state,accepting,initial text=] (AG) {$AG$};
\node[state] (BH) [right of=AG] {$BH$};
\node[state] (EA) [below right of=AG] {$EA$};
\end{tikzpicture}
\end{figure}
\end{document}
这使得第三种状态更接近第二种状态,正如我所说,我希望它正好位于前两种状态之间。另外,我有H
图形选项,但自动机没有居中。如果我添加标题,则阳离子居中,但自动机不是。有没有什么想法也可以让自动机居中?
答案1
我认为您应该阅读 pgfmanual 中一些非常好且有用的教程。您可能已经查阅了第二篇“Hagen 的 Petri-Net”,但您也可以阅读第四篇“图表作为简单图表”,其中positioning
介绍了库(更多详细信息请参见第 17.5.3 节Advanced Placement Options
)。使用positioning
库,您可以声明类似于below right= a and b of c
wherea
和b
are distance to below
and right
respect of node 的内容c
。因此,在这个特定方面您可以说:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{automata, arrows, positioning}
\begin{document}
\begin{figure}%[H]
\centering
\begin{tikzpicture}[>=stealth',shorten >=1pt,auto,node distance=3cm, scale=1, transform shape]
\node[initial,state,accepting,initial text=] (AG) {$AG$};
\node[state] (BH) [right=of AG] {$BH$};
\node[state] (EA) [below right= 1.5 and 1.5 of AG] {$EA$};
\end{tikzpicture}
\caption{A nice automaton}
\end{figure}
\end{document}
获得
注意:\centering
命令在figure
中心内tikzpicture
。