
Как правильно использовать цвета в документе, готовом к печати?
Я всегда просто использую 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_void/eztwtms), в котором пользователь u/0xe4524ffe комментирует:
Избегайте пакетов Color и XColor, они портят цвета CMYK, печатают текст цветными чернилами вместо просто черных (они добавляют безумное количество повторяющихся «0 0 0 rg» вместо одного «0 g» в потоке PDF).
Мой локальный 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}