XeLaTeX 和 TikZ - 如何确保我的 PDF 使用 CMYK 颜色模型?

XeLaTeX 和 TikZ - 如何确保我的 PDF 使用 CMYK 颜色模型?

我想要打印文档的地方需要提供 CMYK 格式的 PDF。文档大部分是文本,除了一些以TikZ或 格式绘制的图表和图解pgfplots

正如本论坛所建议的,调用\usepackage[cmyk]{xcolor}应该可以解决问题,但我无法验证我生成的文档确实是使用 CMYK 设置的。使用imageMagick,PDF 报告为:

$ identify -verbose test.pdf | grep Colorspace
   Colorspace: Gray
   Colorspace: sRGB
   [... lots of Colorspace: sRGB lines here ...]

我尝试了接受的答案中提供的命令stackoverflow 上的这个帖子

$ gs        -o test-cmyk.pdf        -sDEVICE=pdfwrite        -sProcessColorModel=DeviceCMYK        -sColorConversionStrategy=CMYK        -sColorConversionStrategyForImages=CMYK         test.pdf 

但调用时的结果identify是一样的:每个颜色空间都报告为。当我直接使用尝试转换 PDFColorspace: sRGB时也会发生同样的情况:imageMagick

$ convert in.pdf -profile "/usr/share/ghostscript/9.07/iccprofiles/default_cmyk.icc" out.pdf

我在这个频道里找到了一些讨论,特别是下面两个。但是,它们都没有给我一个最终答案,告诉我如何检查我的 PDF 是否确实使用了 CMYK 颜色模型。

PDF 颜色模型和 LaTeX

xcolor 包的 cmyk 选项不会生成 CMYK PDF

具体来说,后者建议使用命令\pdfcompresslevel=0。问题是,它显然XeLaTeX不喜欢该命令:

! Undefined control sequence.
l.4 \pdfcompresslevel
                     =0

答案1

以下是bash检查 RGB 颜色实例的快速脚本:

#!/bin/sh
pdftops $1.pdf -eps $1.eps
status=$(grep -o "RGB" $1.eps | wc -l)
echo "$status instance(s) of RGB colorspaces found in file $1.eps"
exit $status

还有一个.bat适用于 Windows 的版本:

@echo off
pdftops %1.pdf -eps %1.eps
type %1.eps | find "RGB" /c > __my%1.tmp
set /p status=<__my%1.tmp
del __my%1.tmp
echo %status%
exit /b %status%

TeX Live 包含一份pdftops;MikTeX/其他用户需要下载 的 Windows 移植版并将其放置在其路径上pdftops。其中一个移植版作为xpdf

这个解决方案可能并不完美,但这是我能想到的不需要 Adob​​e Acrobat Pro 的最好的办法。

用法:

基于 Unix/Linux:

$ sh checkcolorspace test

视窗:

> checkcolorspace.bat test

解释:

/DeviceGray转换为 EPS 会生成一个易于解析的纯文本文件。所有颜色信息都以、/DeviceCMYK或之一列出/DeviceRGB。通过查找RGB条目,我们可以确定 PDF 中是否任何地方使用了 RGB。

测试文件:

\documentclass{article}
\usepackage[
  cmyk, % uncomment _one_ of these only, 
%  rgb, % for testing purposes
]{xcolor}

\begin{document}
\textcolor{red}{test}
\textcolor{green}{test}
\textcolor{blue}{test}
\textcolor{cyan}{test}
\textcolor{magenta}{test}
\textcolor{yellow}{test}
\textcolor{black}{test}
\end{document}

答案2

抄写员可以打开 PDF 文档并列出其中的所有颜色。只要您没有使用大量颜色,就可以轻松浏览列表并验证所有内容是否都是 CMYK。

在当前版本 (1.4.2) 中,单击编辑 → 颜色...将显示颜色列表。列表第二列中的图标告诉您每种颜色的颜色模型:例如,四个方块表示 CMYK,三个条形表示 RGB。


ps 当我在寻找如何在 Scribus 中检查颜色模型的说明时,我偶然发现了一系列适用于各种印刷准备任务的技术,网址为自由图形制作。如果您进行大量打印,您可能会发现它很有用。

相关内容