使用 tikzstyle 时,TikZ 节点标签距离取决于长度

使用 tikzstyle 时,TikZ 节点标签距离取决于长度

当我包含circleevery 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}

非圆形标签

相关内容