当我包含circle
在every node
样式中时,标签到节点的距离取决于标签的长度:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[circle]
\node at (0,0) [label={A},draw,fill] {};
\node at (2,2) [label={BBBBB},draw,fill] {};
\node at (5,5) [label={CCCCCCCCCC},draw,fill] {};
\end{tikzpicture}
\end{document}
当我删除tikzstyle
并添加circle
各个节点的选项时,这个问题就消失了:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node at (0,0) [circle,label={A},draw,fill] {};
\node at (2,2) [circle,label={BBBBB},draw,fill] {};
\node at (4,4) [circle,label={CCCCCCCCCC},draw,fill] {};
\end{tikzpicture}
\end{document}
这是怎么回事?我该如何避免它,以便可以保持circle
节点样式?
答案1
标签也是节点。因此 TiKZ 将每个标签设置为一个圆圈。由于较大的标签需要较大的圆圈,因此这些标签会设置在离标签节点较远的位置。您可以通过明确指定标签的常用矩形形状来避免这种情况:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
[
every node/.append style={circle},
every label/.append style={rectangle},
]
\node at (0,0) [label={A},draw,fill] {};
\node at (2,2) [label={BBBBB},draw,fill] {};
\node at (5,5) [label={CCCCCCCCCC},draw,fill] {};
\end{tikzpicture}
\end{document}