为什么以下 LaTeX 稿件
\documentclass[tikz,convert]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[color=black]
\path[fill=red] (0,0) rectangle (1,1);
\path[pattern=bricks] (0,0) rectangle (1,1);
\end{tikzpicture}
\end{document}
生产红砖:
将两\path
行合并为一行,如下所示:
\path[fill=red, pattern=bricks] (0,0) rectangle (1,1);
生产白砖:
?
砖块图案中的砖块内部要么是透明的,要么不是。如果它是透明的,为什么在第二种情况下红色填充不会显示出来?如果它不是透明的,为什么在第一种情况下红色填充会显示出来?
答案1
在第一种情况下,您有两个不同的\path
,因此首先绘制红色矩形,然后pattern
在其上绘制 。由于pattern
仅绘制黑线(它不填充黑线之间的部分),因此您会看到下面的红色。
在第二种情况下,因为你pattern
在fill
相同的 \path
, 这pattern
取代手册fill
上说
图案的作用类似于填充颜色。具体来说,设置新的填充颜色将再次用纯色填充路径。
因此,fill=red, pattern=bricks
将fill
忽略 ,只绘制pattern
。同样,如果交换顺序 ( pattern=bricks,fill=red
),则只fill
绘制 。
如果您想在一条路径中执行这两项操作,则可以使用preaction
或postaction
。
\documentclass[tikz]{standalone}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}[color=black]
\path[fill=red,postaction={pattern=bricks}] (0,0) rectangle (1,1);
\path[preaction={fill=blue},pattern=bricks] (1,0) rectangle (2,1);
\end{tikzpicture}
\end{document}