
在列印文件中使用顏色的正確方法是什麼?
我總是簡單地使用這個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}