異なるパス上の塗りつぶし + パターン vs. 同じパス上の塗りつぶし + パターン

異なるパス上の塗りつぶし + パターン vs. 同じパス上の塗りつぶし + パターン

なぜ次の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}

赤レンガを生産します:

赤レンガ

一方、2 つの\path行を 1 つに結合すると、次のようになります。

\path[fill=red, pattern=bricks] (0,0) rectangle (1,1);

白いレンガを生産します:

白いレンガ

?

レンガパターンのレンガの内部は透明か、そうでないかのどちらかです。透明である場合、2 番目のケースでは赤い塗りつぶしが透けて見えないのはなぜですか? 透明でない場合、最初のケースでは赤い塗りつぶしが透けて見えるのはなぜですか?

答え1

最初のケースでは、2 つの異なる\pathがあるため、最初に赤い四角形が描画され、次に がpatternその上に描画されます。はpattern黒い線のみを描画するため (間の部分は塗りつぶされません)、下部に赤い部分が表示されます。

2番目のケースでは、patternの後にfillを追加しているため、同じ \pathpattern 置き換えるfillマニュアルにはこう書いてある

パターンは塗りつぶし色のように機能します。特に、新しい塗りつぶし色を設定すると、パスがもう一度単色で塗りつぶされます。

したがって、fill=red, pattern=bricksfill無視され、 のみがpattern描画されます。同様に、順序を入れ替えると ( pattern=bricks,fill=red)、 のみがfill描画されます。

両方を 1 つのパスで実行する場合は、 または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}

関連情報