为什么这两个 tikzpictures 会导致不同的输出?

为什么这两个 tikzpictures 会导致不同的输出?

以下文档包含两个 tikzpicture,它们产生的输出略有不同。这是为什么?我不明白为什么draw其中一个可以使用,而另一个却不行。在第一个文档中,轮廓显示出来,矩形被填充;在第二个文档中,只显示标签“A”和“B”。

\documentclass[a4paper]{amsart}

\usepackage{fullpage,tikz}
\xdefinecolor{lightgrey}{RGB}{220,220,220}

\begin{document}

\begin{center}\begin{tikzpicture}
[ box/.style = {draw, rectangle, inner sep = 3mm, fill = lightgrey}
  ]
\node (A) at (0,0) [box] {$A$};
\node (B) at (2cm,0) [box] {$B$};
\draw [->] (A.east) -- (B.west);
\end{tikzpicture}\end{center}

\begin{center}\begin{tikzpicture}
\begin{scope}[draw, rectangle, inner sep = 3mm, fill = lightgrey]
    \node (A) at (0,0) {$A$};
    \node (B) at (2cm,0) {$B$};
\end{scope}
\draw [->] (A.east) -- (B.west);
\end{tikzpicture}\end{center}

\end{document}

答案1

发生的事情是,节点的默认样式保持不变;您在 上设置的参数scope不适用于任何内容。要使其应用,您需要使用 指定它是节点的样式every node/.style

\begin{center}\begin{tikzpicture}
  \begin{scope}[every node/.style={ draw
                                  , rectangle
                                  , inner sep = 3mm
                                  , fill      = lightgrey }]
      \node (A) at (0,0)   {$A$} ;
      \node (B) at (2cm,0) {$B$} ;
  \end{scope}
  \draw [->] (A.east) -- (B.west);
\end{tikzpicture}\end{center}

您还可以删除scope块并将选项直接放在tikzpicture环境之后,就像在第一个块中所做的那样box/.style,除非您想要其他样式的节点。

相关内容