![使用 tikzstyle 时,TikZ 节点标签距离取决于长度](https://linux22.com/image/300052/%E4%BD%BF%E7%94%A8%20tikzstyle%20%E6%97%B6%EF%BC%8CTikZ%20%E8%8A%82%E7%82%B9%E6%A0%87%E7%AD%BE%E8%B7%9D%E7%A6%BB%E5%8F%96%E5%86%B3%E4%BA%8E%E9%95%BF%E5%BA%A6.png)
当我包含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}