我对 xcolor 中可用的不同颜色模型以及预定义颜色进行了实验。我发现颜色会根据颜色模型的不同而有很大差异。为什么?
- 为什么预定义颜色的颜色模型会将颜色变化得如此之大?
- 默认值是如何选择的?它们是否遵循特定的颜色模型?
- 我应该选择什么颜色模型?
- 为什么 cmyk 蓝色中含有青色?
- 哪种颜色模型最适合打印?
在下面的代码示例中,默认颜色显示在第二列。
\documentclass{standalone}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{tikz}
\begin{document}
\huge
\begin{tikzpicture}
% \selectcolormodel{default}
\node at (0,0){
\begin{tikzpicture}
\input{colordata}
\node at (7.5,1.5) {\textbf{default}};
\end{tikzpicture}
};
\selectcolormodel{cmyk}
\node at (15,0.035){
\begin{tikzpicture}
\input{colordata}
\node at (7.5,1.5) {\textbf{cmyk}};
\end{tikzpicture}
};
\selectcolormodel{cmy}
\node at (30,-0.01){
\begin{tikzpicture}
\input{colordata}
\node at (7.5,1.5) {\textbf{cmy}};
\end{tikzpicture}
};
\selectcolormodel{rgb}
\node at (-15,0.035){
\begin{tikzpicture}
\input{colordata}
\node at (7.5,1.5) {\textbf{rgb}};
\end{tikzpicture}
};
\end{tikzpicture}
\end{document}
% first part of colordata.tex
% \filldraw[color = red] (0,-0) rectangle (15,-0+1); \node at (7.5,-0+0.5) {red };
% \filldraw[color = green] (0,-1) rectangle (15,-1+1); \node at (7.5,-1+0.5) {green };
% \filldraw[color = blue] (0,-2) rectangle (15,-2+1); \node at (7.5,-2+0.5) {blue };
% \filldraw[color = cyan] (0,-3) rectangle (15,-3+1); \node at (7.5,-3+0.5) {cyan };
% \filldraw[color = magenta] (0,-4) rectangle (15,-4+1); \node at (7.5,-4+0.5) {magenta };
% \filldraw[color = yellow] (0,-5) rectangle (15,-5+1); \node at (7.5,-5+0.5) {yellow };
% \filldraw[color = black] (0,-6) rectangle (15,-6+1); \node at (7.5,-6+0.5) {black };
% \filldraw[color = white] (0,-7) rectangle (15,-7+1); \node at (7.5,-7+0.5) {white };
% \filldraw[color = gray] (0,-8) rectangle (15,-8+1); \node at (7.5,-8+0.5) {gray };
% \filldraw[color = white] (0,-9) rectangle (15,-9+1); \node at (7.5,-9+0.5) {white };
% \filldraw[color = darkgray] (0,-10) rectangle (15,-10+1); \node at (7.5,-10+0.5) {darkgray };
% \filldraw[color = lightgray] (0,-11) rectangle (15,-11+1); \node at (7.5,-11+0.5) {lightgray };
% \filldraw[color = brown] (0,-12) rectangle (15,-12+1); \node at (7.5,-12+0.5) {brown };
% \filldraw[color = lime] (0,-13) rectangle (15,-13+1); \node at (7.5,-13+0.5) {lime };
% \filldraw[color = olive] (0,-14) rectangle (15,-14+1); \node at (7.5,-14+0.5) {olive };
% \filldraw[color = orange] (0,-15) rectangle (15,-15+1); \node at (7.5,-15+0.5) {orange };
% \filldraw[color = pink] (0,-16) rectangle (15,-16+1); \node at (7.5,-16+0.5) {pink };
% \filldraw[color = purple] (0,-17) rectangle (15,-17+1); \node at (7.5,-17+0.5) {purple };
% \filldraw[color = teal] (0,-18) rectangle (15,-18+1); \node at (7.5,-18+0.5) {teal };
% \filldraw[color = violet] (0,-19) rectangle (15,-19+1); \node at (7.5,-19+0.5) {violet };
% \filldraw[color = Apricot] (0,-20) rectangle (15,-20+1); \node at (7.5,-20+0.5) {Apricot };
% \filldraw[color = Aquamarine] (0,-21) rectangle (15,-21+1); \node at (7.5,-21+0.5) {Aquamarine };
答案1
我无意写出全面的分析,只是对你的子问题给出一些提示。
为什么预定义颜色的颜色模型会将颜色变化得如此之大?
我们都同意,red
我们指的是最红当前空间中的颜色。(直觉上一定有代表该颜色的东西,要么被命名为red
,要么被命名为reddest
。)但事实是,即使是短语最红定义明确,最红的颜色因空间而异。有些颜色空间,例如 Lab 系列,不包含最红的颜色,但其中的红色可以是任何你想要的红色。
默认值是如何选择的?它们是否遵循特定的颜色模型?
有些颜色空间称为绝对因为它们的颜色是明确的。例如,当#FF0000
说AdobeRGB,我指的是那红色,一种刺激人们视觉神经的颜色那方式。
对于绝对色彩空间,颜色由开发该空间的机构选择。对于非绝对色彩空间,您需要将其与绝对色彩空间关联,然后才能确定颜色。
我应该选择什么颜色模型?
取决于你做什么。不同的模型是为了不同的目的而开发的。最粗略的列表是
- 对于屏幕:RGB
- 对于打印机:CMYK
为什么 CMYK 蓝色中含有青色?
是的蓝色的作为形容词,但不blue
属于 RGB。cyan
(CMYK)是一种颜色,似乎yellow
(RGB)和blue
(RGB)之间。并且cyan
(RGB)定义为#00FFFF
(RGB)
哪种颜色模型最适合打印?
CMYK
潘通
如今,计算机/打印机已经足够智能,可以在色彩空间之间进行转换。您需要做的就是从空间中选择一种颜色并声明色彩空间对。
唯一的问题是您的屏幕/打印机可能无法正确显示/打印绝对颜色。这是硬件问题,颜色模型无法提供帮助。