如何在 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}
关键在于:
- 增添风格
circle split
- 绘制分隔符而
\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}