当使用以下最小示例分别用 pgfplots 和 tikzs 绘制 3 条线时,您将获得一个包含三条线的 pdf:
\documentclass[12pt,a4paper,tikz]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{tikz,pgfplots,grffile,amsmath}
\pgfplotsset{compat=newest}
\definecolor{parula01}{rgb}{0.00600,0.39650,0.88330}%
\definecolor{parulagray01}{rgb}{0.33527,0.33527,0.33527}% same color as parula01, just converted to greyscale with a MATLAB algorithm - weighted sum: 0.2989 * R + 0.5870 * G + 0.1140 * B --> the result is about 33.527 % black
\definecolor{parulagray02}{gray}{0.33527}% probably the same color as parulagray01, just defined as a gray scale color with only one percentage argument for the grey level
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
]
\addplot [line width=0.8pt, color=parula01, forget plot]
table[row sep=crcr]{%
1 1\\
100 100\\
};
\addplot [line width=0.8pt, color=parulagray01, forget plot]
table[row sep=crcr]{%
1 5\\
100 105\\
};
\addplot [line width=0.8pt, color=parulagray02, forget plot]
table[row sep=crcr]{%
1 10\\
100 110\\
};
\end{axis}
\end{tikzpicture}%
\end{document}
结果(Adobe Acrobat XI Pro.)将如下所示:
您会注意到两条灰线看起来不同,因为 Adobe Acrobat XI 使用一些 CMYK 配置文件作为默认配置文件来显示结果(我猜!!),因此将 rgb 灰度(序言中的 parulagray01)转换为不同于真实灰度(序言中的 parulagray02),并从 R、G 和 B 到 C、M、Y 和 K 进行了一些加权转换。实际上,您可以查看 Adobe Acrobat输出预览(或者评估德语)仔细查看 CMYK 组合。RGB 灰度(序言中的 parulagray01)的结果将产生以下结果
而真实灰度(序言中的 parulagray02)的结果将产生这样的结果
至少对于颜色模拟配置文件 US Web Coated (WOP) v2 而言,Adobe Acrobat XI 将其用作默认配置文件(我再次假设),这可能是颜色在屏幕上显示的原因。您也可以在此处选择 Adobe RGB 之类的东西,然后两种灰色看起来完全相同,您可以在此处看到:
无论如何 - 如果我理解正确的话:打印机将使用大量颜色作为 parulagray01(伪灰色),因为指定了大量 C、M、Y,我认为它被称为浓灰色或者浓黑色(灰色/黑色色调在打印时看起来是灰色/黑色但实际上使用了很多颜色)。
现在的问题是:是否有一个简单的命令来告诉 pdflatex(或者可能是 komascript 包或者可能是 xcolor 包 - 我不知道把它放在哪里)将所有具有三个相同成分的 rgb 颜色(例如序言中的 parulagray01,它使用 r=0.33527,g=0.33527 和 b=0.33527)解释为真正的灰度颜色,而不是将其转换为某种浓灰色或浓黑色?
我意识到 Adobe Acrobat XI Pro 中有一些选项可以将颜色从一个颜色空间转换为另一个颜色空间,但我还不太明白。我尝试了一下,设法摆脱了一些矢量图形中的浓灰色。但是当我尝试 ghostscript(9.05 及更高版本)的 inkov 命令时,所有页面(即使只有文本的页面)在 Acrobat 转换后都有 C、M、Y 和 K 分量,尽管 Adobe 中显示的输出预览只显示 K 分量。在撰写博士论文时,现在是否有必要考虑这样的颜色问题,因为出版商会负责 pdf 的颜色管理?有人知道如何使用 Adobe Acrobat XI pro 将整个文档中 rgb 空间的所有灰色转换为灰色空间中的真实灰色,而不会影响文档中的真实颜色吗?是否有人知道,在使用 LaTeX(tikz、pgfplots)但文档中嵌入一些来自其他来源(如 Corel)的 *.eps 矢量图形时,博士论文中的颜色规格通常会出现哪些问题/方面,因此应该尽早考虑,而不是以后再出现问题?
答案1
如果没有重新定义,下面的测试文件在日志中显示两种形式:
$ grep 33527 qq524.log
................\pdfliteral{0.33527 0.33527 0.33527 RG }
................\pdfliteral{0.33527 0.33527 0.33527 rg }
................\pdfliteral{0.33527 G }
................\pdfliteral{0.33527 g }
定义后日志显示
$ grep 33527 qq524.log
................\pdfliteral{0.33527 G }
................\pdfliteral{0.33527 g }
................\pdfliteral{0.33527 G }
................\pdfliteral{0.33527 g }
显示两个输入使用相同的灰度模型
\documentclass[12pt,a4paper,tikz]{standalone}
\showoutput
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{tikz,pgfplots,grffile,amsmath}
\pgfplotsset{compat=newest}
\makeatletter
\def\zzrgb{rgb}
\let\olddefinecolor\definecolor
\def\definecolor#1#2#3{%
\def\zz{#2}%
\ifx\zz\zzrgb
\zzrgbconv#3\relax{#1}%
\else
\olddefinecolor{#1}{#2}{#3}%
\fi}
\def\zzrgbconv#1,#2,#3\relax#4{%
\def\zza{#1}\def\zzb{#2}\def\zzc{#3}%
\ifx\zza\zzb\else\let\zzc\relax\fi
\ifx\zza\zzc
\olddefinecolor{#4}{gray}{#1}%
\else
\olddefinecolor{#4}{rgb}{#1,#2,#3}%
\fi
}
\makeatother
\definecolor{parula01}{rgb}{0.00600,0.39650,0.88330}%
\definecolor{parulagray01}{rgb}{0.33527,0.33527,0.33527}% same color as parula01, just converted to greyscale with a MATLAB algorithm - weighted sum: 0.2989 * R + 0.5870 * G + 0.1140 * B --> the result is about 33.527 % black
\definecolor{parulagray02}{gray}{0.33527}% probably the same color as parulagray01, just defined as a gray scale color with only one percentage argument for the grey level
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
]
\addplot [line width=0.8pt, color=parula01, forget plot]
table[row sep=crcr]{%
1 1\\
100 100\\
};
\addplot [line width=0.8pt, color=parulagray01, forget plot]
table[row sep=crcr]{%
1 5\\
100 105\\
};
\addplot [line width=0.8pt, color=parulagray02, forget plot]
table[row sep=crcr]{%
1 10\\
100 110\\
};
\end{axis}
\end{tikzpicture}%
\end{document}