跳至主要內容

PGF 使用 Shadings Library 绘制渐变色时颜色不一致

Bob Yue排版LaTeXPGF / TikZ小于 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 Exchangeopen in new window 给出了原因及解决方案。

简而言之,原因为 PGF 的 Shadings Library 使用的是 RGB 颜色空间。

解决方案

在载入 tikz 宏包之前,确保已载入:

\usepackage[cmyk]{xcolor}
上次编辑于:
贡献者: BobYue-01