请查看下面的代码及其结果:
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[every node/.style={draw=red,fill=green},]
\node[label=above:a] (A) {AAA};
\node[label={[draw]above:b}, right=of A] (B) {BBB};
\begin{scope}[every label/.style={draw}]
\node[label=above:c, right=of B] (C) {CCC};
\end{scope}
\end{tikzpicture}
\end{document}
我labels
理解nodes
,它们是在主节点之后创建的。(看看TikZ 中的每个非标签节点),所以我理解选项draw
或fill
继承主节点颜色,如中间节点所示。但我不明白为什么every label/.style={draw}
还填充标签,如上图最右边的节点所示。你能解释一下吗?
答案1
发生这种情况是因为默认情况下,every label
被定义为draw=none,fill=none
。通过设置every label/.style=draw
,您将覆盖这些选项,并使用样式fill=green
中的every node
。要获得预期的行为,请使用every label/.append style=draw
。