Working with colors

Overview

Like most Windows applications, FrameMaker uses the Windows graphics device interface (GDI) for both display and printing. Windows GDI does not understand CMYK, so all colors (other than those in EPS files) are converted to RGB, like it or not. This section explains a bit about how Frame works with colors, and provides some tips on getting what you expect out of it.

Defining Colors

When you define a color in Frame, you use one of two methods:

Hand-keyed Definitions

If you key in the colors manually, you can do so using RGB, CMYK, or HSB values. For storage in the file, however, your input is always converted, using Frame's internal algorithms, to CMYK. For display and for printing, the color is always converted to RGB through the Windows GDI. This means that for color adjustment, you might as well use the RGB version of the Color Definition dialog.

Library Definitions

FrameMaker supports color libraries that contain named inks. Almost all libraries specify both CMYK and RGB values for each ink. The important thing is that the mapping between the CMYK and RGB values can be very different to the algorithm that FrameMaker uses.

FrameMaker stores the color in the document as the color library and ink name, and it stores CMYK values for the color, for backup. When FrameMaker opens the document, it looks for the color library and ink name, first in a cache, then on disk:

It would be a rare occurrence for Frame not to find the color library; a user would have to remove a color library from the FrameMaker installation.

Recall that because Frame is stuck using the Windows GDI, everything it shows you on the screen is a conversion to RGB. While color libraries typically contain both CMYK and RGB values for their inks, you have the power to tell Frame where to get its "conversion" from. This is done in a maker.ini line:

GetLibraryColorRGBFromCMYK=xxxxx

The value of xxxxx tells FrameMaker which device -- screen, printer, both, or neither -- should use CMYK-to-RGB calculations, as opposed to using the predefinded values in the color libraries.

source The screen gets its
RGB values from...
The print job gets its
RGB values from...
None color library color library
Printing color library calculations
Screen calculations color library
Printing&Screen calculations calculations

Real-world impact of the INI value

In testing what happens when you view and print these two colors and the impact of the INI value, I found the following. In this table, the "Library" line means the color is from a library; the "keyed" line means the color was keyed in by hand.

None Printing Screen Printing
&Screen
Frame
- Library Purple Purple Blue Blue
- Keyed Blue Blue Blue Blue
PDF
- Library Purple Blue Purple Blue
- Keyed Blue Blue Blue Blue

The only setting that resulted in a purple in both Frame and the PDF was where the INI value = none. RGB values in the color library got used for the screen -- and they're probably the most faithful colors for this. The same RGB color will be printed, giving you the same color mismatches that you get for most other Windows applications. And finally, you will often find that the RGB-to-CMYK conversion of your output device will give more faithful results than FrameMaker's own conversion.

Credit

Mike Hardy, Technical Publications, ARM Ltd, permitted me to include some great information he provided on the User-to-User forums.