列印文檔中的 xcolor

列印文檔中的 xcolor

在列印文件中使用顏色的正確方法是什麼?

我總是簡單地使用這個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}

相關內容