Difference between revisions of "Color"

From Wiki
Jump to navigation Jump to search
(→‎Using Colors: +In titles)
Line 209: Line 209:
 
</context>
 
</context>
 
|}
 
|}
 +
 +
== In titles ==
 +
 +
See [[Titles#Using_colors_in_chapters_and_sections]]
  
 
== With frames ==
 
== With frames ==

Revision as of 15:06, 1 June 2009

< Visuals | Graphics >

Enabling colors

In current versions (earlier than 11.05.2009) of ConTeXt mkiv, colors are enabled by default.

In older versions, colors must be enabled using

\setupcolors[state=start]

Defining Colors

Using colors with ConTeXt is easy:

Choosing a color model

  • RGB and CMYK are enabled by default. If you want only RGB or only CMYK color, use cmyk=no or rgb=no. Multitone colors see below.
  • For spot colors, say spot=yes. To eliminate everything except spot colours, leaving a clean file for professional printing, accompany this with rgb=no,cmyk=no. See spot colours below for more details.
  • Normally all colors are defined in RGB and CMYK and get converted if needed.

Using predefined colors: \setupcolor

You find lists of predefined colors in the files colo-xxx.tex, load them with \setupcolor[xxx]:

  • rgb: some simple colors, loaded by default (with translations for the different interface languages!)
  • xwi: X-Windows-colors
  • pra: PRAGMA ADE company colors
  • ema: Emacs colors
\showcolor[rgb]

Defining colors: \definecolor

\definecolor[blablue][r=.1, g=.1, b=1, c=1, m=.1, y=0, k=0, s=.2] (definition for RGB, CMYK and Grey!)


\definecolor[blablue][r=.25, g=.1, b=1, c=1, m=.1, y=0, k=0, s=.2]

Here's some \color[blablue]{blue text} inbetween!

Colors with Hexadecimal Numbers

You can also use hexadecimal numers to specify colors. You need to load the hex color module first:

\setupcolor[hex]
\definecolor[salmon][h=AB5757]

Hey, \color[salmon]{look at that!}

Transparent Colors

You can define transparent colors through setting t, e.g. t=0.5. Beware, some PDF viewers and printshops can't handle PDF transparences!

Hans Hagen posted the following sample code for transparent colors on the mailing list on 2005-07-13; the yellow blocks have been added to demonstrate the order in which the blocks are drawn on the page; the first yellow block is behind the transparent red and blue blocks, while the second is in front of them.

\definecolor [transparentred]  [r=1,t=.5,a=1]
\definecolor [transparentblue] [b=1,t=.5,a=1]
\definecolor [solidyellow]  [y=1,t=1,a=1]

\starttext

\startTEXpage
This is some sample text that goes behind the rectangles\hskip-8cm
\blackrule[width=2cm,height=1cm,depth=1cm,color=solidyellow]\hskip-0.67cm
\blackrule[width=2cm,height=2cm,color=transparentred]\hskip-0.67cm
\blackrule[width=2cm,height=1cm,depth=1cm,color=transparentblue]\hskip-0.67cm
\blackrule[width=2cm,height=2cm,color=solidyellow]\hskip2cm.
\stopTEXpage

\stoptext

Defining color schemes: \definecolorgroup and \definepalet

\definecolorgroup[name][system][values]

\definepalet[palettename][colorname1=groupcolor:1, colorname2=groupcolor:2, ...]

Very interesting feature, to be described later... (see manual)

Choosing a color scheme

There are three basic strategies to select color combinations for a particular design

  1. Create a color scheme by picking several colors found within the objects to be used (photographs, pictures, etc)
  2. Create colors derived from those found in the objects to be used
  3. Create a color scheme based on the message to convey / the psychological effects of color

See for additional help & reference:

  • colorschemedesigner.com - Useful site to help choose a color scheme in rgb color space
  • Tina Sutton, Bride M Whelan: The Complete Color Harmony. Rockport Publishers (2004). ISBN 978-1592530311 (recommanded in the mailing list)


Using Colors

  • Use the color name like [color=blablue] in some \setup... command.

With text

Typeset single text elements with \color[colorname]{nice blue text}:

Three \color[red]{cool} cats

Typeset longer sections with \startcolor[colorname] ... \stopcolor:

\starttext
\startcolor[orange]
\input tufte
\stopcolor
\stoptext

In titles

See Titles#Using_colors_in_chapters_and_sections

With frames

\framed[background=color, backgroundcolor=green]{bla}
\framed[background=color, backgroundcolor=yellow, corner=00]{bla}

Background of the page

\setupbackgrounds[page][background=color,backgroundcolor=blue]

\starttext
text
\stoptext

Background of cells in tables

See

In Metapost

Metapost in MkIV is different from MkII and all labels are typeset and colored in TeX, if you want a label use

 label(textext("\blue RED"),origin) ;

In TikZ

\usemodule[tikz]
\starttext
\tikz\shade[ball color=red!40!yellow] (0,0) circle (.15cm);
\stoptext

Spot colours

To produce a file ready for a clean PDF separation process at your print house, start with:

\setupcolors[rgb=no,cmyk=yes,spot=yes,state=start,overprint=yes]

which will set things up for spot colors with CMYK allowed. The last setting ensures that black overprinting your spot colour tints will not knock out the colour - this is important for some types of commercial printing.

Then define your basic spot colour. Note that the name cannot contain spaces or numbers (but we come to that later):

\definecolor[PantoneTwoNineFour][c=1,m=.56,y=0,k=.18]

Now you can define the tints of this ink that you are actually going to use in your document. Let's say you'll have a 100% for headings:

\definespotcolor[MyBlue][PantoneTwoNineFour][p=1]

And then a 20% tint for nice display boxes:

\definespotcolor[MyBlueTint][PantoneTwoNineFour][p=.2]

And now you can happily use these named colours:

\starttext
   \color[MyBlue]{Interesting}
\stoptext

If you are including graphics made by an external program, you might want to match the colour name used in the graphic with the colour name in your ConTeXt set-up so that only one colour space is used in the final file. Unfortunately Pantone names and others tend to have spaces and numbers in them, so you need to do a low-level mapping trick from your base name to the name you want embedded in the file:

\doregisterspotcolorname{PantoneTwoNineFour}{PANTONE 294 CV}

Now your output file should work beautifully with graphics embedded!

Using the 'e' key to \definecolor to specify a spot colour name with spaces

As an update to the above description on defining spot colours, you can now use the 'e' key when defining your spot colours in order to specify the precise colour names to be used by your ConTeXt set-up in the output file. For example:

% Define spot colours using 'e=....' to specify colour names to use in output file
\definecolor
   [PantoneThreeZeroEight]
   [c=1,m=.05,y=0,k=.47,e=PANTONE 308 CV]

\definecolor
   [PantoneTwoNineEight]
   [c=.69,m=.07,y=0,k=0,e=PANTONE 298 CV]

% Define tints of spot colours to be used in document for colouring text
\definespotcolor
   [DarkBlue]
   [PantoneThreeZeroEight]
   [p=1]

\definespotcolor
   [LightBlue]
   [PantoneTwoNineEight]
   [p=1]

(Tested only on minimal Linux distribution dated 31 Aug 2005 - can others confirm this to be true across the board now?)

Any text between a \startcolor[DarkBlue] and \stopcolor should now be assigned to the correct spot colour channel - Pantone 308 CV - on output. More importantly if you include an external figure containing areas of this colour then your text and those parts of the graphic which have the same colour should now appear together in the 'Pantone 308 CV' colour channel on colour separation.

For example, if your original graphic is an EPS file containing the following lines:

%%DocumentCustomColors: (PANTONE 298 CV)
%%+ (PANTONE 308 CV)
%%CMYKCustomColor: 0.69 0.07 0 0 (PANTONE 298 CV)
%%+ 1 0.05 0 0.47 (PANTONE 308 CV)

and you convert this to a PDF using ps2pdf for inclusion in your ConTeXt document your PDF graphic will then contain something like:


8 0 obj
[/Separation
/PANTONE#20308#20CV
/DeviceCMYK
9 0 R]endobj
10 0 obj
[/Separation
/PANTONE#20298#20CV
/DeviceCMYK
11 0 R]endobj

Note how the space characters in the colour name are now encoded as '#20', but the colour names are essentially identical between the original EPS graphic, the new PDF graphic and your text.

A good way of testing colour separation if you don't have access to expensive pre-flight PDF validation tools is to use the following GhostScript command:

gs \
  -dBATCH \
  -dNOPAUSE \
  -sDEVICE=tiffsep \
  -dDOINTERPOLATE \
  -dTextAlphaBits=4 \
  -dGraphicsAlphaBits=4 \
  -sOutputFile=output.tif \
  -r120 \
  -MaxSeparations=8 \
  input.pdf

This renders a PDF file input.pdf as a set of TIFF files:

  output.tif              - Composite including CMYK approximations to spot colours
  output.tif.Black.tif    - K channel
  output.tif.Cyan.tif     - C channel
  output.tif.Magenta.tif  - M channel
  output.tif.Yellow.tif   - Y channel
  output.tif.s0.tif       - Pantone 308 CV
  output.tif.s1.tif       - Pantone 298 CV

Multitones

Hans wrote on the mailinglist on 2004-12-27 about handling of multitone colors:

Currently it's done by pdftools.rb

Once pdfxTeX becomes pdfeTeX out of a sudden your beta can do it as well.

I still need to figure out a way to automatically reverse the graphic, but one of these days you can start using it.

Actually, multitones for text already work out of the box:

\setupcolors[state=start]

\definecolor [blue]   [c=1,m=.38,y=0,k=.64]
\definecolor [yellow] [c=0,m=.28,y=1,k=.06]

\definespotcolor [blue-100]   [blue]   [p=1]
\definespotcolor [yellow-100] [yellow] [p=1]

\definemultitonecolor [combicolor]   [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1]

\starttext

\startcolor[blue]\blackrule[width=3cm,height=3cm]\stopcolor

\startcolor[yellow]\blackrule[width=3cm,height=3cm]\stopcolor

\startcolor[combicolor]\blackrule[width=3cm,height=3cm]\stopcolor

\stoptext

(The CMYK color spec is the fall back color used on screen; one can preview separations in full Acrobat 7.)


Colorizing Grayscale Pictures

Another sample by Hans (mailing list 2005-11-16) demonstrates a lot of different possibilities:

\setuplayout[header=0pt,footer=0pt,width=middle,height=middle,backspace=1cm,topspace=1cm]
\setupcolors[state=start]

\startbuffer
\definecolor [blue]   [c=1, m=.38, y=0, k=.64]
\definecolor [yellow] [c=0, m=.28, y=1, k=.06]

\definespotcolor [blue-100]   [blue]   [p=1]
\definespotcolor [yellow-100] [yellow] [p=1]

\definemultitonecolor [combicolor]   [blue=.12, yellow=.28] [c=.1, m=.1, y=.3, k=.1]

\definemultitonecolor [combicolor-b] [blue=1]   [c=1, m=.38, y=0, k=.64] % force multitone
\definemultitonecolor [combicolor-y] [yellow=1] [c=0, m=.28, y=1, k=.06] % force multitone

\useexternalfigure[demo-a][mill.png]     [object=no, width=.2\textwidth]
\useexternalfigure[demo-b][hacker-bw.jpg][object=no, width=.2\textwidth]

\startbaselinecorrection
\startcombination[4*1]
 {\externalfigure[demo-a]}                                {no color}
 {\externalfigure[demo-a][color=combicolor]}   {indexed duotone}
 {\externalfigure[demo-a][color=combicolor-b]} {spot color}
 {\externalfigure[demo-a][color=combicolor-y]} {spot color}
\stopcombination
\stopbaselinecorrection

\startbaselinecorrection
\startcombination[4*1]
 {\externalfigure[demo-b]}                     {no color}
 {\externalfigure[demo-b][color=combicolor]}   {indexed duotone}
 {\externalfigure[demo-b][color=combicolor-b]} {spot color}
 {\externalfigure[demo-b][color=combicolor-y]} {spot color}
\stopcombination
\stopbaselinecorrection

\startbaselinecorrection
\startcombination[4*1]
 {\externalfigure[demo-a]}                     {no color}
 {\externalfigure[demo-a][color=combicolor]}   {indexed duotone}
 {\externalfigure[demo-a][color=blue-100]}     {spot color}
 {\externalfigure[demo-a][color=yellow-100]}   {spot color}
\stopcombination
\stopbaselinecorrection

\startbaselinecorrection
\startcombination[4*1]
 {\externalfigure[demo-b]}                     {no color}
 {\externalfigure[demo-b][color=combicolor]}   {indexed duotone}
 {\externalfigure[demo-b][color=blue-100]}     {spot color}
 {\externalfigure[demo-b][color=yellow-100]}   {spot color}
\stopcombination
\stopbaselinecorrection
\stopbuffer

\getbuffer \typebuffer

\stoptext

References

See "Color and Background" in the manual