TikZ 节点内的 hline

TikZ 节点内的 hline

如何在 TikZ 节点内绘制水平线?我希望状态名称与节点的其余部分分开。我该如何实现?

\documentclass[tikz,border=2pt]{standalone}

\usetikzlibrary{automata}

\begin{document}
\begin{tikzpicture}[%
    every node/.style={%
        align=center,
        state
    }    
]

    \node (T0)  {
        \textbf{State$_1$} \\  
        \hline \\ % <--- This is not working!
        $\overline{A}$      \\ 
        $B$
    };

\end{tikzpicture}
\end{document}

答案1

您可以尝试circle split

\documentclass[tikz,border=2pt]{standalone}

\usetikzlibrary{automata,shapes.multipart}

\begin{document}
\begin{tikzpicture}[%
    every node/.style={%
        align=center,
        state,
        circle split
    }    
]

\node (T0)  {
    \textbf{State$_1$} \\
    \nodepart{lower}
    $\overline{A}$      \\ 
    $B$
};

\end{tikzpicture}
\end{document}

在此处输入图片描述

关键在于:

  1. 增添风格circle split
  2. 绘制分隔符而\nodepart{lower}不是\hline

这种方法的一个缺点是分割线正好画在圆的中间。我不知道这是否会困扰你。

答案2

在 TikZ 中,hline 未定义(据我所知)。如果我理解正确,您想要实现什么,那么对于节点,使用形状表示多个文本部分,如下例所示:

\documentclass[tikz,border=2pt]{standalone}
    \usetikzlibrary{automata,shapes.multipart}
\begin{document}
    \begin{tikzpicture}[%
    every node/.style = {%
        align=center,
        state
    }
                        ]
\node[circle split] (T0)  { \textbf{State$_1$} \\
                    \nodepart{lower}
                            $\overline{A}$     \\
                            $B$
                          };
    \end{tikzpicture}
\end{document}

相关内容