為什麼下面的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
s,因此首先繪製紅色矩形,然後pattern
在頂部繪製 。由於pattern
只繪製黑線(它不填充之間的部分),因此您會看到下面的紅色。
在第二種情況下,因為您pattern
在fill
相同的 \path
, 這pattern
取代這fill
。手冊說
此圖案的作用類似於填滿顏色。特別是,設定新的填滿顏色將再次用純色填滿路徑。
因此,fill=red, pattern=bricks
被fill
忽略,並且僅pattern
繪製 。同樣,如果交換順序 ( pattern=bricks,fill=red
),則僅fill
繪製 。
如果您想在一條路徑中執行這兩項操作,可以使用 apreaction
或 a 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}