为什么'每个标签/.style = {draw}'也是'填充'?

为什么'每个标签/.style = {draw}'也是'填充'?

请查看下面的代码及其结果:

\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 中的每个非标签节点),所以我理解选项drawfill继承主节点颜色,如中间节点所示。但我不明白为什么every label/.style={draw}还填充标签,如上图最右边的节点所示。你能解释一下吗?

答案1

发生这种情况是因为默认情况下,every label被定义为draw=none,fill=none。通过设置every label/.style=draw,您将覆盖这些选项,并使用样式fill=green中的every node。要获得预期的行为,请使用every label/.append style=draw

相关内容