Color
-
- Overview
- Color
- Color in MetaPost
-
- Cmd general
- \color
- \MPcolor
- \definecolor
- \setupcolors
- \showcolor
- \usecolor
-
- Cmd Logical palettes
- \definepalet
- \setuppalet
- \showpalet
- \comparepalet
-
- Grps of similar colors
- \definecolorgroup
- \showcolorgroup
-
- Src MkIV color def
- colo-imp-dem.mkiv
- colo-imp-rgb.mkiv
- colo-imp-xwi.mkiv
- colo-imp-ema.mkiv
- colo-imp-x11.mkiv
Contents
Before you start ...
1. It’s usually bad style to use explicit color switches in the text. It’s better to define a semantic command that takes care of the color switching. For example, instead of using \color[red]{important text}
, define
\definehighlight[important][color=red]
and then use \important{important text}
in the text.
2. Colors are not enabled by default in MkII. To enable colors in MkII, use
\setupcolors[state=start]
3. To disable colors in a document, use
\setupcolors[state=stop]
Last manual dedicated to color was issued in 2016
Basic Usage
To color text, use
\color[defined-color]{ ... text ... }
or
\startcolor[defined-color] ... text ... \stopcolor
where defined-color
is a color defined using \definecolor. For example, red
is one of the predefined colors. So, we can use:
Three \color[red]{cool} cats |
or
\startcolor[red] \input tufte \stopcolor
It is also possible to use RGB or CMYK or hex values to color text. The syntax for these is
\colored[settings]{... text ...}
where settings
are the same settings as used by \definecolor. For example:
Three \colored[r=0.1, g=0.8, b=0.8]{colorful} cats |
Note. There is no need to use the color commands directly. Almost all ConTeXt commands accept a color
key, and you can use color=defined-color
. For example,
- To color the section titles red, use
\setuphead[color=red]
- To color the footnotes red, use
\setupfootnotes[color=red]
etc.
Pre-defined colors
Default pre-defined colors
The following colors are pre-defined in ConTeXt (see colo-imp-rgb.mkiv).
Name | Color | Name | Color | Name | Color | Name | Color |
---|---|---|---|---|---|---|---|
black | white | ||||||
gray | lightgray | middlegray | darkgray | ||||
red | lightred | middlered | darkred | ||||
green | lightgreen | middlegreen | darkgreen | ||||
blue | lightblue | middleblue | darkblue | ||||
cyan | middlecyan | darkcyan | |||||
magenta | middlemagenta | darkmagenta | |||||
yellow | middleyellow | darkyellow |
X11 Colors
In addition to the above basic color, ConTeXt also includes a definition of the X11 colors. To load this list (colo-imp-xwi.mkiv), use
\usecolors[xwi]
This loads the following additional colors:
Name | Color | Name | Color | Name | Color | Name | Color |
---|---|---|---|---|---|---|---|
aliceblue | antiquewhite | aquamarine | azure | ||||
beige | bisque | black | blanchedalmond | ||||
blue | blueviolet | brown | burlywood | ||||
cadetblue | chartreuse | chocolate | coral | ||||
cornflowerblue | cornsilk | cyan | darkgoldenrod | ||||
darkgreen | darkkhaki | darkolivegreen | darkorange | ||||
darkorchid | darksalmon | darkseagreen | darkslateblue | ||||
darkturquoise | darkviolet | deeppink | deepskyblue | ||||
dodgerblue | firebrick | floralwhite | forestgreen | ||||
gainsboro | ghostwhite | gold | goldenrod | ||||
green | greenyellow | honeydew | hotpink | ||||
indianred | ivory | khaki | lavender | ||||
lavenderblush | lawngreen | lemonchiffon | lightblue | ||||
lightcoral | lightcyan | lightgoldenrod | lightgoldenrodyellow | ||||
lightpink | lightsalmon | lightseagreen | lightskyblue | ||||
lightslateblue | lightsteelblue | lightyellow | limegreen | ||||
linen | magenta | maroon | mediumaquamarine | ||||
mediumblue | mediumorchid | mediumpurple | mediumseagreen | ||||
mediumslateblue | mediumspringgreen | mediumturquoise | mediumvioletred | ||||
midnightblue | mintcream | mistyrose | moccasin | ||||
navajowhite | navy | navyblue | oldlace | ||||
olivedrab | orange | orangered | orchid | ||||
palegoldenrod | palegreen | paleturquoise | palevioletred | ||||
papayawhip | peachpuff | peru | pink | ||||
plum | powderblue | purple | red | ||||
rosybrown | royalblue | saddlebrown | salmon | ||||
sandybrown | seagreen | seashell | sienna | ||||
skyblue | slateblue | snow | springgreen | ||||
steelblue | tan | thistle | tomato | ||||
turquoise | violet | violetred | wheat | ||||
white | whitesmoke | yellow | yellowgreen |
Additional pre-defined colors
In addition to the above, there are other pre-defined colors.
x11 | \usecolors[x11]
|
colo-imp-x11.mkiv | 658 extended Xorg color keywords (WWW), defined in hex RGB |
crayola | \usecolors[crayola]
|
colo-imp-crayola.mkiv | 235 Crayola (Binney & Smith) colors |
ema | \usecolors[ema]
|
colo-imp-ema.mkiv | 549 Emacs colors |
RAL | \usecolors[ral]
|
colo-imp-ral.mkiv | 213 RAL color system (Deutsches Institut für Gütesicherung und Kennzeichnung) |
Solarized | \usecolors[solarized]
|
colo-imp-solarized.mkiv | 16 solarized colors |
Defining New Colors
ConTeXt supports several color models:
- CMYK, typically used for printing
- RGB, HSV/HSL and HWB, typically used for screen display,
- Transparencies,
- Spot colors, typically used for offset printing.
New colors may be defined in the following ways
Name | Syntax (and Example) | Explanation |
---|---|---|
RGB color model | \definecolor[...][r=..., g=..., b=...] For example, \definecolor[lime][r=0.75, g=1, b=0] This is \color[lime]{a new color} that we defined |
The values for r , g , and b are floating point number between 0 and 1 .
|
CMYK color model | \definecolor[...][c=.., m=.., y=.., k=..] For example, \definecolor[lime][c=0.25, m=0, y=1, k=0] This is \color[lime]{a new color} that we defined |
The values for c , m , y and k are floating point number between 0 and 1 .
|
HSV/HSL color model | \definecolor[...][h=.., s=.., v=..] For example, \definecolor[lime][h=75, s=1, v=1] This is \color[lime]{a new color} that we defined |
The value for h (hue) is between 0 and 360 ; the values for s (saturation), v (value/brightness) are floating point numbers between 0 and 1 .
|
HWB color model | \definecolor[...][h=.., w=.., b=..] For example, \definecolor[something][h=75, w=0.5, b=.1] This is \color[something]{a new color} that we defined |
The value for h (hue) is between 0 and 360 ; the values for w (whiteness), b (blackness) are floating point numbers between 0 and 1 . This mostly unknown color model is also used in CSS3/SVG.
|
Hex | \definecolor[...][x=...] For example, \definecolor[lime][x=BFFF00] This is \color[lime]{a new color} that we defined |
The value for x is a three-byte hexadecimal number where the bytes represent the red, green, and blue values. This follows the HTML and CSS style of defining colors.
|
Gray scale | \definecolor[...][s=...] For example, \definecolor[screen][s=0.5] This is \color[screen]{a new color} that we defined |
The value for s is a floating point number between 0 and 1 , representing the grayness value (1 represents white, 0 represents black).
|
Cloning existing colors
You can clone an existing color using
\definecolor[new-color][old-color]
For example
\usecolors[xwi] \definecolor[highlight][yellow] \defineframed [important] [location=low, frame=off, background=color, backgroundcolor=highlight] This is a \important{important}word. \definecolor[highlight][lavenderblush] This is a \important{important}word. |
Adapting existing colors
TODO: add details about this (See: To-Do List) |
Advanced Usage
Changing color of entire document
To change the main text color of the document use
\setupcolors[textcolor=defined-color]
For example,
\setupcolors[textcolor=blue] \starttext text \stoptext |
Changing background color of page
The background color of the page can be changed using
\setupbackgrounds[page][background=color,backgroundcolor=defined-color]
For example,
\setuppapersize[A10] \setupbackgrounds[page][background=color,backgroundcolor=blue] \starttext text \stoptext |
Using colors in MetaPost
A color defined in TeX is available in MetaPost using \MPcolor{...}
. For example:
\definecolor[highlight][r=0.8,g=0.8,b=0] \starttext \color[highlight]{Highlighted text in TeX} \startMPcode label("Highlighted text in MetaPost", origin) withcolor \MPcolor{highlight}; \stopMPcode |
Note that \MPcolor{...}
behaves similar to a color
primitive in MetaPost. For example, the following is valid MetaPost code.
color myColor; myColor = 0.5[\MPcolor{highlight}, white];
For more further reading: Color in MetaPost.
Testing if color is defined
To test if a color is defined, use
Usage:
\doifcolor{color-name}{... if branch ... } \doifcolorelse{color-name}{... if branch ...}{... else branch ...}
Viewing pre-defined color
View all defined colors
To view pre-defined colors, you can use \showcolor. For example, to see all the colors defined in colo-imp-x11.mkiv, use (output truncated for display here ...)
\showcolor[x11] |
If you use \showcolor without any argument, all currently defined colors are shown.
View specific defined colors
To view the components of a defined color, you can use:
\showcolorcomponents[color-1, color-2]
For example,
\showcolorcomponents[red,middlered,darkred] |
\colorcompoents{defined-color} \tranparencycomponents{defined-color} \processcolorcomponents{defined-color}
For example,
\startlines \colorcomponents{red} \transparencycomponents{red} \processcolorcomponents{red} \stoplines |
|
Further reading and specialized topics
- Color Palettes
- Transparency
- Spot Colors
- References
- Paletton - Website to choose color palettes
- ColorBrewer - website to choose colors for maps and graphics.
- Tina Sutton, Bride M Whelan: The Complete Color Harmony. Rockport Publishers (2004). ISBN 978-1592530311 (recommanded in the mailing list)