理想情况下,我会想象如果我将三块玻璃重叠在一起,red
那么我会在重叠区域看到或多或少的黑色。yellow
blue
然而,在 LaTeX 中这样做,我似乎错了,无论我使用的不透明度如何,重叠区域都是用我使用的最后一种颜色着色的。请参阅以下 MWE,您就会明白我的意思。
因此,我的问题是,LaTeX 渲染重叠颜色背后的机制是什么?为什么使用重叠没有混合效果?
平均能量损失
% !TEX TS-program = xelatex
\documentclass[class=article,border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node [circle, fill=blue, opacity=0.5, minimum size=.4cm] at (0.2cm,0cm) () {};
\node [circle, fill=red, opacity=0.5, minimum size=.4cm] at (0cm,0cm) () {};
\node [circle, fill=yellow, opacity=0.5, minimum size=.4cm] at (0.1cm,0.2cm) () {};
\end{tikzpicture}
\end{document}
答案1
你必须使用blend mode
\documentclass[class=article,border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\begin{scope}[transparency group]
\begin{scope}[blend mode=multiply]
\node [circle, fill=blue, opacity=0.5, minimum size=.4cm] at (0.2cm,0cm) () {};
\node [circle, fill=red, opacity=0.5, minimum size=.4cm] at (0cm,0cm) () {};
\node [circle, fill=green, opacity=0.5, minimum size=.4cm] at (0.1cm,0.2cm) () {};
\end{scope}
\end{scope}
\end{tikzpicture}
\end{document}
有关更多模式,请参阅pgfmanual
文档第 341 页第 23.3 节。
为了xelatex
\documentclass[class=article,border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%\begin{scope}[transparency group]
\begin{scope}[blend mode=darken]
\node [circle, fill=blue, opacity=0.5, minimum size=.4cm] at (0.2cm,0cm) () {};
\node [circle, fill=red, opacity=0.5, minimum size=.4cm] at (0cm,0cm) () {};
\node [circle, fill=green, opacity=0.5, minimum size=.4cm] at (0.1cm,0.2cm) () {};
\end{scope}
%\end{scope}
\end{tikzpicture}
\end{document}