上次我在一家复印店打印论文时,一个好心的女孩问我,我的pdf
打印机中是否存储了某种颜色信息。她向我解释说,他们的打印机可以检测黑白页面,并在不使用任何颜色的情况下打印它们。不幸的是,使用(,现在我在)pdf
生成的我的打印机没有提供页面是否使用任何颜色的信息(每个页面都被检测为彩色)。现在我的问题是:我如何提供这些信息?生成我的打印机时,是否有任何选项可以使用?pdflatex
MikTeX
macTeX
pdf
我之所以问这个问题,是因为黑白页的价格是彩色页的十分之一。打印 150 多页时,这会产生很大的差异。
彩色页面应该保持颜色,所以黑白仅有的不是一个选择。
我昨天打印了我的论文(使用 创建macTeX
),并且每个文本页面都被正确识别为黑白。但是,每个带有图形的页面都被检测为彩色,尽管图形是黑白的。现在问题是什么?有没有图形选项可以给出pdfLaTeX
提示?
根据 pixelmator,png 图像(使用 osx 快照工具从 pdf 创建)使用深度为 8 的 rgb 配置文件。配置文件名称是Colored LCD
(我不知道我在说什么 ;)):
答案1
检测 PDF 页面“颜色”的方法有很多。如果不了解打印机的具体方法,只能靠猜测和试验。
有一个 PDF 文件可供分析,其中打印机可以正确地将其页面分类为黑色页面和彩色页面,这很有帮助。
如果您想进行实验(并花一些钱),那么接下来就是进行实验的猜测。
LaTeX 测试
通常,LaTeX 中使用灰色模型来表示黑色:
\definecolor{black}{gray}{0}
如果打印机无法处理该颜色模型,并且认为这是颜色(可能是因为 CMYK 的转换很奇怪),那么可以使用以下 pdfTeX 文件来测试该理论:
\documentclass{article}
\pagestyle{empty}
\usepackage{color}
\definecolor{black}{cmyk}{0,0,0,1}
\makeatletter
\expandafter\let\expandafter\current@color
\csname\string\color @black\endcsname
\chardef\main@pdfcolorstack
\pdfcolorstackinit page direct\expandafter{\current@color}\relax
\makeatother
\begin{document}
CMYK-Black
\newpage
Gray: \textcolor[gray]{.5}{Gray}
\newpage
CMYK-Gray: \textcolor[cmyk]{0,0,0,.5}{Gray}
\end{document}
它将黑色的定义更改为 CMYK 颜色模型。第一页仅包含 CMYK 中的黑色 ( [cmyk]{0,0,0,1}
)。第二页在灰色颜色模型中添加了灰色 ( [gray]{.5}
),第三页使用 CMYK 中的相同灰色 ( [cmyk]{0,0,0,.5}
)。
普通 TeX 测试
以下测试文件测试不同颜色模型中的黑色:
\pdfobjcompresslevel=0
\pdfcompresslevel=0
\nopagenumbers
\bf
Pure black
\par\vfill\eject
\pdfliteral direct{0 g 0 G}Gray black
\par\vfill\eject
\pdfliteral direct{0 0 0 rg 0 0 0 RG}RGB black
\par\vfill\eject
\pdfliteral direct{0 0 0 1 k 0 0 0 1 K}CMYK black
\bye
它必须用 编译pdftex
,而不是pdflatex
。除第一页外,页面上只有一个颜色指令。颜色以 LaTeX 颜色表达式给出:
- 第 1 页:没有彩色说明(打印机应报告为黑色页面)。
- 第2页:
\color[gray]{0}
- 第 3 页:
\color[rgb]{0,0,0}
- 第 4 页:
\color[cmyk]{0,0,0,1}
理论上,并不是所有页面都使用颜色,文本始终为“黑色”。如果打印机将某一页或某些页面归类为“彩色”,则会给出一些提示。