Warum ist das folgende LaTeX-Manuskript
\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}
produziert rote Ziegel:
Während die beiden \path
Zeilen wie folgt zu einer zusammengeführt werden:
\path[fill=red, pattern=bricks] (0,0) rectangle (1,1);
produziert weiße Ziegel:
?
Entweder ist das Innere der Ziegel im Ziegelmuster transparent, oder es ist es nicht. Wenn es transparent ist, warum ist die rote Füllung im zweiten Fall nicht sichtbar? Wenn es nicht transparent ist, warum ist die rote Füllung im ersten Fall sichtbar?
Antwort1
Im ersten Fall haben Sie zwei verschiedene \path
s, also wird zuerst das rote Rechteck gezeichnet und dann das pattern
darüber. Da das pattern
nur die schwarzen Linien zeichnet (es füllt die Teile dazwischen nicht aus), sehen Sie das Rot darunter.
Im zweiten Fall, weil Sie das pattern
nach dem fill
in dem hinzufügenDasselbe \path
, Diepattern
ersetztdas fill
. Im Handbuch steht
Das Muster funktioniert wie eine Füllfarbe. Insbesondere wird durch das Festlegen einer neuen Füllfarbe der Pfad wieder mit einer Volltonfarbe gefüllt.
daher wird mit fill=red, pattern=bricks
ignoriert fill
und nur pattern
gezeichnet. Ebenso wird, wenn Sie die Reihenfolge ( pattern=bricks,fill=red
) vertauschen, nur fill
gezeichnet.
Wenn Sie beides in einem Pfad tun möchten, können Sie a preaction
oder a verwenden 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}