Почему следующая рукопись 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
рисуется только .
Если вы хотите сделать оба варианта в одном пути, вы можете использовать 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}