[Tex/LaTex] LaTeX color and ICC color profiles

colorcolor-profilepdf

I have a (pdf|Xe)LaTeX document and trying to keep it CMYK. For some documents, I use a certain color for it's elements, which is RGB #BDCDDA. As my final document should be using the Adobe CMYK profile "CoatedFOGRA39.icc", I need to manually convert that RGB value to e.g. this:

\DefineNamedColor{named}{mycolor}{cmyk}{0.3203,0.1602,0.1172,0.0000}

But, if in the future I want to switch to a different CMYK color profile for maybe another printing company, I have to edit the color definition again, as for example an USWebCoatedSWOP version of RGB #BDCDDA has different CMYK values.

Ideally, I would like to write something like

\DefineNamedColor{named}{mycolor}{/path/to/CoatedFOGRA39.icc}{#BDCDDA}

and have the color auto-converted from RGB (can be considered to be sRGB colorspace) to the correct CMYK value.

Can any LaTeX package help me here, or do I have to set up an external workflow to pre-generate LaTeX snippets with correct CMYK color definitions?

Sidenote: this question is not about embedded figures/pictures, but about using named colors for text and background.

Best Answer

I think the simplest is to put your definitions in a local package so they can easily be shared between documents and customised to different profiles.

In your document put something like

  \usepackage[CoatedFOGRA39]{mycolor}

if you specify a profile that you have set up, relevant definitions are made, otherwise you get an error. mycolor.sty could look something like this:

\RequirePackage{color}

\DeclareOption{CoatedFOGRA39}{\def\mycolor{CoatedFOGRA39}}
\def\mycolorprofileA{CoatedFOGRA39}
\ProcessOptions\relax

\ifx\mycolor\@undefined
\PackageError{mycolor}{No color profile declared}{declare a color profile}
\fi


\ifx\mycolor\mycolorprofileA
\DefineNamedColor{named}{mycolor}{cmyk}{0.3203,0.1602,0.1172,0.0000}
\fi

The above just declares one colour in one profile, but it could be extended...

Related Question