在打印文档中正确使用颜色的方式是什么?
我总是简单地使用xcolor
包。例如
\documentclass[margin = 12mm]{standalone}
\usepackage{xcolor}
\definecolor{foo}{rgb}{.4, .8, .2}
\begin{document}
Some \textcolor{foo}{example} text.
\color{red}\raisebox{.1em}{\rule{.3em}{.3em}}
\end{document}
最近我在 Reddit 上看到一篇帖子(https://www.reddit.com/r/LaTeX/comments/d1tw6c/resource_for_best_packages_to_use_or_to_avoid/eztwtms),其中用户 u/0xe4524ffe 评论道:
避免使用 color 和 xcolor 包,它们会弄乱 cmyk 颜色,使文本用彩色墨水打印而不是黑色(它们在 pdf 流中放置大量重复的“0 0 0 rg”而不是一个“0 g”)。
我的本地xcolor.sty
(2016/05/11 v2.12)结束于
1456 ...
1457 \color{black}
1458 \endinput
颜色black
是根据
\extractcolorspecs{black}{\model}{\black}\black
定义为简单的灰色色彩空间0
。
由于 Reddit 帖子中没有给出关于如何正确使用颜色和 xcolor 求值black
(因此没有设置颜色的所有内容)的真正解决方案0
,我的问题是
这个答案仍然是最新的吗?如果是,如何正确使用颜色?
答案1
这完全取决于您要使用的颜色模型。默认为 rgb,因此为黑色0 0 0
。您可以使用选项加载包cmyk
,所有内容都将在 cmyk 中定义。或者在另一个模型中重新定义颜色,例如:
\pdfcompresslevel=0
\documentclass{article}
\usepackage{xcolor}
\definecolor{black}{gray}{0}
\begin{document}
\textcolor{black}{foo}
\definecolor{black}{rgb}{0,0,0}
\textcolor{black}{foo}
\definecolor{black}{cmyk}{0,0,0,1}
\textcolor{black}{foo}
\end{document}
PDF 看起来如下:
stream
0 g 0 G
0 g 0 G
0 g 0 G
0 g 0 G
BT
/F8 9.9626 Tf 148.712 657.235 Td [(fo)-28(o)]TJ
0 g 0 G
0 0 0 rg 0 0 0 RG
0 -11.955 Td [(fo)-28(o)]TJ
0 g 0 G
0 0 0 1 k 0 0 0 1 K
0 -11.955 Td [(fo)-28(o)]TJ
0 g 0 G
0 g 0 G
154.421 -543.96 Td [(1)]TJ
0 g 0 G
ET
endstream
您还可以定义一次性使用的模型,\textcolor
例如:
\textcolor[gray]{0}{foo}