节点格式化自动机库 tikz

节点格式化自动机库 tikz

我有以下一段代码:

\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata, positioning}
\begin{document}

\begin{tikzpicture}
    \node [state] (A)                {A};
    \node [state] (B) [right = of A] {B};

    \path[->] (A)  edge [bend left]  node [above]  {r} (B)
              (B)  edge [bend left]  node [below]  {r} (A);
\end{tikzpicture}
\end{document}

我得到的是这个图表

这与我想要实现的目标非常接近。

现在,我想去掉大圆圈作为节点,而是绘制小点作为节点,并在点附近绘制字母。我该如何获得此图?

(作为参考,这更接近我想要得到的)

答案1

您不必将名称放在节点内部,而是可以在节点旁边添加标签:

\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata, positioning}

\tikzset{state/.style={circle,fill=black,inner sep=1.5pt,outer sep=4pt}}

\begin{document}

\begin{tikzpicture}[label distance=-2mm]
    \node [state,label=180:A] (A) {};
    \node [state,label=0:B] (B) [right = of A] {};

    \path[->] (A)  edge [bend left]  node [above]  {r} (B)
              (B)  edge [bend left]  node [below]  {r} (A);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

更新:我没想到你还想添加小实心圆。现在已使用 将其包含在内$\bullet$

您可以分别更改圆圈和文本的颜色。例如,将圆圈设为白色,将文本设为黑色:

\documentclass[12pt]{article}
\usepackage{tikz}
\usetikzlibrary{automata, positioning}
\begin{document}
    
    \begin{tikzpicture}
        \node [state, color=white, text=black] (A)                {A $\bullet$};
        \node [state, color=white, text=black] (B) [right = of A] {$\bullet$ B};
        
        \path[->] (A)  edge [bend left]  node [above]  {r} (B)
        (B)  edge [bend left]  node [below]  {r} (A);
    \end{tikzpicture}
\end{document}

得出以下结果:

在此处输入图片描述

如果所有节点都应像这样格式化,则一种快捷方式是将这些选项提供给整个 itkzpicture,例如\begin{tikzpicture}[every state/.style={color=white, text=black}]。如果提供颜色不是一个选项,那么您可以简单地说draw=none,例如 \begin{tikzpicture}[every state/.style={draw=none}]

我希望这对你有用。

相关内容