![为什么这两个 tikzpictures 会导致不同的输出?](https://linux22.com/image/232508/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%A4%E4%B8%AA%20tikzpictures%20%E4%BC%9A%E5%AF%BC%E8%87%B4%E4%B8%8D%E5%90%8C%E7%9A%84%E8%BE%93%E5%87%BA%EF%BC%9F.png)
以下文档包含两个 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
,除非您想要其他样式的节点。