PGF 使用 Shadings Library 绘制渐变色时颜色不一致
小于 1 分钟
问题描述
在使用 PGF 的 Shadings Library 绘制渐变色时,有时会出现颜色不一致的问题。MWE 如下:
\documentclass{minimal}
\usepackage{color}
\usepackage{tikz}
\usepgflibrary{shadings}
\newcommand{\testikzcolor}[1]{
\texttt{#1}
& \hspace{1em}
\begin{tikzpicture}
\draw[fill=#1] (0,0) rectangle (1,1);
\draw[top color=#1,bottom color=#1] (1,0) rectangle (2,1);
\end{tikzpicture}
\\
}
\begin{document}
\begin{tabular}{rl}
\testikzcolor{black}
\testikzcolor{red}
\testikzcolor{green}
\testikzcolor{blue}
\testikzcolor{white}
\testikzcolor{cyan}
\testikzcolor{magenta}
\testikzcolor{yellow}
\end{tabular}
\end{document}
编译结果如下:
问题分析
不难发现,出现问题的颜色都是 CMYK 颜色。
通过检索,color - How do I force tikz to use CMYK everywhere (also in shadings)? - TeX - LaTeX Stack Exchange 给出了原因及解决方案。
简而言之,原因为 PGF 的 Shadings Library 使用的是 RGB 颜色空间。
解决方案
在载入 tikz
宏包之前,确保已载入:
\usepackage[cmyk]{xcolor}