如何在 TikZ 中将自动机的状态置于中间?

如何在 TikZ 中将自动机的状态置于中间?

我正在绘制一个由三个状态组成的自动机。其中第二个状态在第一个状态的右侧,我希望第三个状态位于第一个和第二个状态的下方,但位于中间,这意味着与第一个和第二个状态的距离相同。目前,我有类似这样的情况。

\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 cwhereabare distance to belowand rightrespect 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

相关内容