尽管使用了 xcolor cmyk 选项,DeviceGray 色彩空间始终存在

尽管使用了 xcolor cmyk 选项,DeviceGray 色彩空间始终存在

有人可以解释为什么即使使用了选项,DeviceGray色彩空间模型也始终存在于输出中吗?xcolor cmyk

我使用这个在线工具运行了 PDF 分析:https://www.setasign.com/products/setapdf-core/demos/get-colors-from-pdf-with-php/

% !TEX program = xelatex

\documentclass{article}

% [xetex,cmyk] => DeviceCMYK, DeviceGray
% [xetex] => DeviceGray
\usepackage[xetex,cmyk]{xcolor}

\begin{document}
  test
\end{document}

答案1

颜色命令将一种颜色推送到堆栈上,并在组末尾从中恢复之前的颜色。

堆栈上的默认颜色是黑色,因此在外部组中弹出颜色时会得到以下颜色:

\RequirePackage{l3pdf}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff

\documentclass{article}
\begin{document}
%\special{color push cmyk 0 0 0 1}
\special{color push cmyk 0 0 1 1}
test
\special{color pop}

\end{document}

这给出(稍微缩短并注释:):

0 0 1 1 K 0 0 1 1 k %<-- push color
BT /F1 9.9626 Tf 76.712 -62.765 Td[<0069003200620069>]TJ ET 
0 G 0 g %<-- pop color

您可以通过先将不同的颜色压入堆栈来避免这种情况。如果您取消注释第一个特殊颜色,您将获得:

0 0 0 1 K 0 0 0 1 k 
0 0 1 1 K 0 0 1 1 k 
BT /F1 9.9626 Tf 76.712 -62.765 Td[<0069003200620069>]TJ ET 
0 0 0 1 K 0 0 0 1 k 

相关内容