xcolor v2.11 (2007/01/21)
11
models to wave in a sensible way, since the latter covers only a limited range of
colors.
RGB, HSB, Gray These are derived models, turning the continuous [0,1] para-
meter ranges of rgb, hsb, and gray to finite sets of integers; we therefore use the
term integer models. The constants L,M,N of table 3 are defined via the com-
mands \def\rangeRGB{L}, \def\rangeHSB{M}, and \def\rangeGray{N}.
\rangeRGB
\rangeHSB
Changes of these constants can be done before or after the xcolor package isloaded,
\rangeGray
e.g.,
\documentclass{article}
...
\def\rangeRGB{15}
\usepackage[dvips]{xcolor}
...
\GetGinDriver
\usepackage[\GinDriver]{hyperref}
...
\begin{document}
...
\def\rangeRGB{63}
...
2.2.2 Substituting individual color models
{source model}{target model-list}
\substitutecolormodel
Substitute source model by the first actually present model that occurs in target
model-list. Only color models of type num model are allowed; all changes are
local to the current group, but a prepended \xglobal is obeyed.
Example: assume theactual driver hasanincorrect implementationof hsb whereas
rgb looks well. Then \substitutecolormodel{hsb}{rgb} could be agood choice,
since it converts — from that point onwards — all definitions of hsb colors by
xcolor’s algorithms into rgb specifications, without touching other models.
2.2.3 Changing the target color model within a document
{num model}
\selectcolormodel
Sets the target model to num model, where the latter is one of the model names
allowed as package option (i.e., natural, rgb, cmy, cmyk, hsb, gray, RGB, HTML,
HSB, Gray), see figure 4 on page 33 for an example. There are two possible hooks,
where the conversion to the target model can take place:
• at color definition time
3
(i.e., within \definecolor and friends); this is
\ifconvertcolorsD
controlled by the switch \ifconvertcolorsD;
• at time of color usage (immediately before a color is displayed, therefore
\ifconvertcolorsU
covering colors that have been defined in other models or that are being
specified directly like \color[rgb]{.1,.2,.3}); this is controlled by the
switch \ifconvertcolorsU.
3
This means that all newly defined colors will be first converted to the target model, then
saved.
Pdf metadata - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
remove metadata from pdf acrobat; pdf metadata online
Pdf metadata - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
pdf metadata viewer; pdf xmp metadata editor
xcolor v2.11 (2007/01/21)
12
Both switches are set to ‘true’ by selecting any of the models, except natural,
which sets them to ‘false’. This applies for selection via a package option as well as
via \selectcolormodel. Why don’t we simply convert all colors at time of usage?
If many colors are involved, it can save some processing time when all conversions
are already done during color definitions. Best performance can be achieved by
\usepackage[rgb,...]{xcolor}\convertcolorsUfalse, which is actually the
way how xcolor worked up to version 1.07.
2.3 Arguments and terminology
Before we describe xcolor’s color-related commands in detail, we define several ele-
ments or identifiers that appear repeatedly within arguments of those commands.
Ageneral syntax overview is given in table 4 on the following page.
2.3.1 Additional remarks and restrictions on arguments
Basic strings and numbers These arguments do not need much explanation.
empty
minus
plus
int
num
dec
pct
div
However, as far as numerical values are concerned, it is noteworthy that real
numbers in (La)T
E
Xare — as long asthey are to be usedin the context of lengths,
dimensions, or skips — are restricted to a maximum absolute value < 16384.
Certainly, ina chain of numerical calculations, thisconstraint hasalso to be obeyed
for every single interim result, which usually implies further range restrictions.
Since xcolor makes extensive use of T
E
X’s internal dimension registers for most
types of calculations, this should be kept in mind whenever ext expr expressions
are to be used.
Color names A name denotes the declared name (or the name to be declared)
name
of a color or a color series; it may be declared explicitly by one of the follow-
ing commands: \definecolor, \providecolor, \colorlet, \definecolorset,
\providecolorset,\definecolorseries, \definecolors, \providecolors. On
the other hand, the reserved color name ‘.’ is declared implicitly and denotes the
current color. Actually, besides letters and digits, certain other characters do also
work for name declarations, but the given restriction avoids misunderstandings
and ensures compatibility with future extensions of xcolor.
Examples: ‘red’, ‘MySpecialGreen1980’, ‘.’.
Color models The differentiation between core models (rgb, cmy, cmyk, hsb,
core model
num model
model
gray), integer models (RGB, HTML, HSB, Gray), decimal models (Hsb, tHsb,
wave) and pseudo models (currently ‘named’, ‘ps’) has a simple reason: core
models with their parameter rangesbased on the unit interval [0,1] are best suited
for all kinds of calculations, whereas the purpose of the integer models is mainly
to facilitate the input of parameters, followed by some transformation into one of
the core models. Finally, the decimal models Hsb and tHsb are special-purpose
versionsof hsb, whereaswave and the pseudo model ‘named’ have a special status,
since they are ‘calculation-averse’: it is usually only possible toconvert such acolor
into one of the other models, but not the other way round. Even worse for the
pseudo model ‘ps’: since such colors contain PostScript code, they are absolutely
intransparent for T
E
X.
How to C#: Modify Image Metadata (tag)
edit, C#.NET PDF pages extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET
online pdf metadata viewer; remove pdf metadata online
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
C# TIFF - Edit TIFF Metadata in C#.NET. Allow Users to Read and Edit Metadata Stored in Tiff Image in C#.NET Application. How to Get TIFF XMP Metadata in C#.NET.
adding metadata to pdf; view pdf metadata in explorer
xcolor v2.11 (2007/01/21)
13
Table 4: Arguments and terminology
Element
Replacement string
empty
→empty string ‘’
minus
→non-empty string consisting of one or more minus signs ‘-’
plus
→non-empty string consisting of one or more plus signs ‘+’
int
→integer number
(integer)
num
→non-negative integer number
(number)
dec
→real number
(decimal)
div
→non-zero real number
(divisor)
pct
→real number from the interval [0,100]
(percentage)
id
→non-empty string consisting of letters and digits
(identifier)
ext id
→id
→id
1
=id
2
id-list
→ext id
1
,ext id
2
,...,ext id
l
name
→id
(explicit name)
→‘.’
(implicit name)
core model → ‘rgb’, ‘cmy’, ‘cmyk’, ‘hsb’, ‘gray’
(core models)
num model
→core model
→‘RGB’, ‘HTML’, ‘HSB’, ‘Gray’
(integer models)
→‘Hsb’, ‘tHsb’, ‘wave’
(decimal models)
model
→num model
(numerical models)
→‘named’
(pseudo model)
model-list
→model
1
/model
2
/.../model
m
(multiple models)
→core model:model
1
/model
2
/.../model
m
spec
→comma-separated list of numerical values
(explicit specification)
→space-separated list of numerical values
(explicit specification)
→name of a ‘named’ color
(implicit specification)
spec-list
→spec
1
/spec
2
/.../spec
m
(multiple specifications)
type
→empty
→‘named’, ‘ps’
expr
→prefixnamemix exprpostfix
(standard color expression)
prefix
→empty
→minus
(complement indicator)
mix expr
→!pct
1
!name
1
!pct
2
!name
2
!...!pct
n
!name
n
(complete mix expr.)
→!pct
1
!name
1
!pct
2
!name
2
!...!pct
n
(incomplete mix expr.)
postfix
→empty
→!!plus
(series step)
→!![num]
(series access)
ext expr
→core model,div:expr
1
,dec
1
;expr
2
,dec
2
;...;expr
k
,dec
k
→core model:expr
1
,dec
1
;expr
2
,dec
2
;...;expr
k
,dec
k
func expr → >function,arg
1
,arg
2
,...,arg
j
(color function expression)
function
→‘wheel’, ‘twheel’
(color functions)
color
→color exprfunc expr
1
func expr
2
...func expr
i
color expr
→name
→expr
→ext expr
Remarks:
Each → denotes a possible replacement string for the element in the left column; however, further
context-dependent restrictions may apply. See main text for details. A string ‘foo’ is always to be
understood without the quotes. i,j,k,l,m,n denote non-negative integers, k,l,m,n > 0, m ≤8.
VB.NET PDF Library SDK to view, edit, convert, process PDF file
PDF Metadata Edit. Offer professional PDF document metadata editing APIs, using which VB.NET developers can redact, delete, view and save PDF metadata.
pdf metadata viewer online; batch edit pdf metadata
C# PDF Library SDK to view, edit, convert, process PDF file for C#
accordingly. Multiple metadata types of PDF file can be easily added and processed in C#.NET Class. Capable C#.NET: Edit PDF Metadata. PDF SDK
add metadata to pdf; embed metadata in pdf
xcolor v2.11 (2007/01/21)
14
Color specifications The spec argument — which specifies the parameters
spec
of a color — obviously depends on the underlying color model. We differentiate
between explicit and implicit specification, the former referring to numerical pa-
rameters as explained in table 3 on page 10, the latter — ideally — referring to
driver-provided names.
Examples: ‘.1,.2,.3’, ‘.1 .2 .3’, ‘0.56789’, ‘89ABCD’, ‘ForestGreen’.
Multiple models and specifications These arguments always appear in
model-list
spec-list
(explicit or implicit) pairs within the following color definition commands:
\definecolor, \providecolor, \definecolorset, \providecolorset. First,
model-spec is being reconciled with the current target model (as set by a pack-
age option or the \selectcolormodel command); in case there is no exact match,
the first model of the list is chosen. Then, the corresponding color specification
will be selected from spec-list, such that we arrive at a proper (model,spec)
pair. Therefore, in the actual executed color definition there is no ambiguity any-
more. The extended form core model:model
1
/model
2
/.../model
m
causes
an immediate conversion of the relevant spec to core model; an unknown target
model will be silently ignored here.
Examples: ‘rgb/cmyk/named/gray’, ‘0,0,0/0,0,0,1/Black/0’, ‘rgb:cmy/hsb’.
The type argument This is used only in the context of color defining com-
type
mands, see the description of \definecolor and friends.
Standard color expressions These expressionsserve asa tool to easily specify
expr
prefix
mix expr
postfix
acertain form of cascaded color mixing which isdescribed in detail insection 2.3.2.
The prefix argument controls whether the color following thereafter or its com-
plement will be relevant: an odd number of minus signs indicates that the color
resulting from the remaining expression has to be converted into its complemen-
tary color. An incomplete mix expression is just an abbreviation for a complete
mix expression with name
n
= white, in order to save some keystrokes in the
case of tints. The postfix string is usually empty, but it offers some additional
functionality in the case of a color series: the non-empty cases require that
• name denotes the name of a color series,
• mix expr is a complete mix expression.
Examples: ‘red’, ‘-red’, ‘--red!50!green!12.345’, ‘red!50!green!20!blue’,
‘foo!!+’, ‘foo!![7]’, ‘foo!25!red!!+++’, ‘foo!25!red!70!green!![7]’.
Extended color expressions These expressions provide another method of
ext expr
color mixing, see section 2.3.3 on page 16 for details. The shorter form
core model:expr
1
,dec
1
;expr
2
,dec
2
;...;expr
k
!dec
k
is an abbreviation for the special (and probably most used) case
core model,div:expr
1
,dec
1
;expr
2
,dec
2
;...;expr
k
!dec
k
How to C#: Basic SDK Concept of XDoc.PDF for .NET
XDoc.PDF for .NET supports editing PDF document metadata, like Title, Subject, Author, Creator, Producer, Keywords, Created Date, and Last Modified Date.
metadata in pdf documents; modify pdf metadata
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Document and metadata. All object data. File attachment. Flatten visible layers. VB.NET Demo Code to Optimize An Exist PDF File in Visual C#.NET Project.
view pdf metadata; batch pdf metadata editor
xcolor v2.11 (2007/01/21)
15
with the following definition (requiring a non-zero sum of all dec
κ
coefficients):
div := dec
1
+dec
2
+··· +dec
k
= 0.
Examples: ‘rgb:red,1’, ‘cmyk:red,1;-green!25!blue!60,11.25;blue,-2’.
Function expressions These expressions extend the functionality of standard
func expression
function
or extended expressions by taking the result of such an expression to perform
additional calculations. The number of arguments may vary between different
functions, see section 2.3.4 on the next page for details.
Examples: ‘>wheel,30’, ‘>wheel,30,’, ‘>twheel,1,12’, ‘>twheel,-11,12’.
Colors Finally, color is the ‘umbrella’ argument, covering the different con-
color
color expr
cepts of specifying colors. This means, whenever there is a color argument, the
full range of names and expressions, as explained above, may be used.
2.3.2 Meaning of standard color expressions
We explain now how an expression
prefixname!pct
1
!name
1
!pct
2
!...!pct
n
!name
n
postfix
is being interpreted and processed:
1. First of all, the model and color parameters of name are extracted to
define a temporary color temp. If postfix has the form ‘!![num]’,
then temp will be the corresponding (direct-accessed) color num from
the series name.
2. Then a color mix, consisting of pct
1
%of color temp and (100−pct
1
)%
of color name
1
is computed; this is the new temporary color temp.
3. The previous step is being repeated for all remaining parameter pairs
(pct
2
,name
2
), ..., (pct
n
,name
n
).
4. If prefix consists of an odd number of minus signs ‘-’, then temp will be
changed into its complementary color.
5. If postfix has the form ‘!!+’, ‘!!++’, ‘!!+++’, etc., a number of step com-
mands (= number of ‘+’ signs) are performed on the underlying color series
name. This has no consequences for the color temp.
6. Now the color temp is being displayed or serves as an input for other
operations, depending on the invoking command.
Note that in a typical step 2 expression temp!pct
ν
!name
ν
, if pct
ν
=100
resp. pct
ν
=0, the color temp resp. name
ν
is used without further transfor-
mations. In the true mix case, 0 <pct
ν
<100, the two involved colors may have
been defined in different color models, e.g., \definecolor{foo}{rgb}{...} and
\definecolor{bar}{cmyk}{...}. In general, the second color, name
ν
,istrans-
formed into the model of the first color, temp, then the mix is calculated within
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Get image information, such as its location, zonal information, metadata, and so on. Extract image from PDF free in .NET framework application with trial SDK
get pdf metadata; pdf metadata
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Comments, forms and multimedia. Document and metadata. All object data. Detect and merge image fragments. Flatten visible layers. C#.NET DLLs: Compress PDF Document
pdf keywords metadata; remove metadata from pdf online
xcolor v2.11 (2007/01/21)
16
that model.
4
Thus, temp!pct
ν
!name
ν
and name
ν
!100−pct
ν
!temp,
which should be equivalent theoretically, will not necessarily yield identical vi-
sual results.
Figures 5 to 6 on page 33 show some first applications of colors and expressions.
More examples are given in figure 3 on page 32. Over and above that, a large set
of color examples can be found in [9].
2.3.3 Meaning of extended color expressions
An extended color expression
core model:expr
1
,dec
1
;expr
2
,dec
2
;...;expr
k
,dec
k
mimes color mixing as painters do it: specify a list of colors, each with a dec
factor attached to. For such an ext expr, each standard color expression expr
κ
will be converted to core model, then the resulting vector is multiplied by
dec
κ
/div, where
div := dec
1
+dec
2
+··· +dec
k
.
Afterwards the sum of all of these vectors is calculated.
Example: mixing 4 parts of
red, 2 parts of
green, and 1 part of
yellow, we get
via \color{rgb:red,4;green,2;yellow,1}. Trying the same
with −1 parts of yellow instead, we get
. Note that this mechanism can
also be used to display an individual color (expression) in a certain color model:
\color{rgb:yellow,1} results in such a conversion. The general form
core model,div:expr
1
,dec
1
;expr
2
,dec
2
;...;expr
k
,dec
k
does the same operation with the only difference that the divisor div is being
specified instead of calculated. In the above example, we get a shaded version
via \color{rgb,9:red,4;green,2;yellow,1}. Note that it is not forbidden to
specify a div argument which issmaller than the sum of all dec
κ
,such that one
or more of the final color specification parameters could be outside the interval
[0,1]. However, the mapping of equation (7) takes care of such cases.
2.3.4 Color functions
Color functionstake a comma-separated list of arguments, and they serve to trans-
form the given color (i.e., the result of all calculations prior to the function call)
into a new color.
Color wheel calculations Arguments: angle or angle,full circle, the for-
wheel
twheel mer being an abbreviataion of angle,\rangeHsb. These functions allow to cal-
culate related colors by harmonic relations based on color wheels (cf. section 1.4
on page 5). The second argument full circle declares how many units a full circle
consists of, the first argument states by how many units the given color has to be
4Exception: inordertoavoidstrangeresults,thisruleisbeingreversediftemporiginsfrom
the gray model; in this case it is converted into the underlying model of name
ν
.
xcolor v2.11 (2007/01/21)
17
rotated. To this end, the given color is first converted to Hsb (in case of wheel),
yielding hue, saturation, and brightness, respectively. Then
hue
:= hue
+
angle
full circle
·H,
hue := u
hue
H
(4)
where u is the range-reduction function of equation (7) and H = \rangeHsb.
With saturation and brightness left untouched, the final model is hsb. The twheel
function workssimilarly, but itsarguments refer to tHsbinstead of Hsb. Examples
are shown in figure 12 on page 37.
2.4 Predefined colors
2.4.1 Colors that are always available
Within xcolor.sty, the following color names are defined:
red,
green,
blue,
cyan,
magenta,
yellow,
black,
gray,
white,
darkgray,
lightgray,
brown,
lime,
olive,
orange,
pink,
purple,
teal,
violet.
This base set of colors can be used without restrictions in all kinds of color ex-
pressions, as explained in section 2.3 on page 12.
2.4.2 Additional sets of colors
There are also sets of color names that may be loaded by xcolor via package
options, available in two variants: a ‘normal’ version (e.g., dvipsnames) and a
‘starred’ version(e.g., dvipsnames*). The first variant simply definesall the colors
immediately, whereas the second applies the mechanism of deferred definition. In
the latter case, individual color names have to be activated by \definecolors or
\providecolors commands, as described in section 2.5.4 on page 20, before they
can be applied in a document.
• dvipsnames/dvipsnames* loads a set of 68 cmyk colors as defined in the
dvips driver. However, these colors may be used in all supported drivers.
• svgnames/svgnames* loads a set of 151 rgb color names
5
according to the
SVG 1.1 specification[17]
6
,enhancedby 4names taken from the file rgb.txt
which is part of Unix/X11 distributions. Note that HTML4 accepts a subset
of 16 color keywords (using identical specifications), see [16] and section 4
on page 38.
• x11names/x11names* loads a set of 317 rgb color names7 that are basically
variations of a subset of the SVG set mentioned before, according to the file
rgb.txt which is part of Unix/X11 distributions8. We describe now how to
access all 752 color names of rgb.txt without much effort:
– Load x11namees as well as svgnames.
5
In fact, these names represent 141 different colors.
6Actually, the citedspecificationlists onlylowercasenames,and theoriginaldefinitionsare
given in RGB parameters, converted to rgb by the author.
7
These names represent 315 different colors.
8Again,theoriginaldefinitionsaregiveninRGBparameters,convertedtorgbbytheauthor.
xcolor v2.11 (2007/01/21)
18
– Capitalise initialsand skip blanks: DarkSlateGray instead of dark slate
gray.
– X11 names without numbers are identical to the corresponding SVG
colors, except in 5 cases: use Gray0, Grey0, Green0, Maroon0, Purple0
instead of Gray, Grey, Green, Maroon, Purple to obtain the original
X11 colors.
– For N = 0,1,...,100 use ‘[gray]{N/100}’ or ‘black!100−N’ instead
of grayN or greyN.
The color names and corresponding displays are listed in section 4 on page 38.
Section 2.15.1 on page 29 describes how to deal with name clashs while using both
svgnames and dvipsnames in the same document. See also [9] for a systematic
set of color and mix examples.
2.5 Color definition
2.5.1 Ordinary and named colors
In the color package there is a distinction between ‘colors’ (defined by the com-
mand \definecolor) and ‘named colors’ (defined by \DefineNamedColor, which
is allowed only in the preamble). Whenever an ordinary color is being used in
adocument, it will be translated into a \special command that contains a —
driver-specific — numerical description of the color which is written to the .dvi
file. On the other hand, named colors offer the opportunity to store numerical
values at a central place whereas during usage, colors may be identified by their
names, thus enabling post-processing if required by the output device.
All drivers delivered with the standard graphics package support the formalism
of defining and invoking ‘named colors’. However, real support for the concept
behind that, i.e. employing names instead of parameters, ranges from ‘none’ to
‘complete’. We demonstrate the current situation for three different drivers:
• dvips has very good support for the ‘named’ concept; the PostScript equiv-
alents to the color names defined by dvipsnames are being loaded – unless
switched off – by dvips automatically. However, additional names have to be
made known to the PostScript interpreter by some kind of header file. Since
version 2.01, xcolor offers an integrated solution for this task: by invoking
the package option prologue, a PostScript header file xcolor.pro is loaded
by dvips. Additionally, under this option every color definition command
9
(\definecolor, \colorlet, etc.) will generate some PostScript code that
is written to an auxiliary file with the extension .xcp (shortcut for xcolor
prologue). This file is as well loaded by dvips as a prologue, thus making
all color names available to the PostScript interpreter. Of course, the .xcp
file may be edited before dvips is applied, making it easy to change device-
specific color parameters at a central place. Note that the PostScript code
is designed similar to color.pro: only new names are defined. This allows
to preload other prologue files with color definitions that are not being de-
stroyed by xcolor. On the other hand, it requires the user to take care about
redefining color names.
Example: \colorlet{foo}{red}\colorlet{foo}{blue}\color{foo} will
9
This is not only true for the document preamble, but for the document body as well.
xcolor v2.11 (2007/01/21)
19
switch to blue in the usual xcolor logic, however the .ps file would display
red (unless foo had been defined differently before).
It should be stressed that this mechanism is only employed by the prologue
option. Without that, the predefined ‘named’ colors activated by the
dvipsnames option (without employing any tints, shades, color expressions,
etc.) may be used in this way, all other ‘named’ colors are unknown to
PostScript.
• dvipdfm supports only the standard dvipsnames colors since these are hard-
coded in the dvipdfm program itself; there seems to be no way to load any
user-defined prologue files.
• pdftex does not offer conceptual support, all ‘named’ colors are converted
immediately to their numerical representation. It therefore allows unre-
stricted definition and usage of named colors (although offering no added
value through this).
Typically, a .dvi viewer will have difficulties to display user-defined ‘named’ col-
ors. For example, MiKT
E
X’s viewer Yap currently displays only ‘named’ colors
from the dvipsnames set. Thus, whenever the prologue option is invoked to-
gether with dvips, all other colors will appear black. However, after employing
dvips, a PostScript viewer should display the correct colors.
2.5.2 Color definition in xcolor
[type]{name}{model-list}{spec-list}
10
\definecolor
Thisisone of the commandsthat may be usedto assign aname toa specific color.
Afterwards, this color is known to the system (in the current group) and may be
used in color expressions, as explained in section 2.3 on page 12. It replaces both
color’s \DefineNamedColor and \definecolor. Note that an already existing
color name will be overwritten. The variable \tracingcolors controls whether
such an overwriting will be logged or not (see section 2.13 on page 28 for details).
The arguments are described in section 2.3 on page 12. Hence, valid expressions
for color definitions are
• \definecolor{red}{rgb}{1,0,0},
• \definecolor{red}{rgb/cmyk}{1,0,0/0,1,1,0},
• \definecolor{red}{hsb:rgb/cmyk}{1,0,0/0,1,1,0},
• \definecolor[named]{Black}{cmyk}{0,0,0,1},
• \definecolor{myblack}{named}{Black},
where the last command is equivalent to \colorlet{myblack}{Black} (see be-
low); the second command defines red in the rgb or cmyk model, depending on
the current setting of the target model, whereas the third will additionally trans-
form the color to hsb prior to saving. Note that there is a special pstricks-related
version as described in section 2.11 on page 28.
[type]{name}{model-list}{spec-list}
\providecolor
10
Prior to version 2.00, this command was called \xdefinecolor, the latter name still being
available for compatibility reasons.
xcolor v2.11 (2007/01/21)
20
Similar to \definecolor, but the color name is only defined if it does not exist
already.
[type]{name}[num model]{color}
\colorlet
Copies the actual color which results from color to name. If num model is
non-empty, color is first transformed to the specified model, before name is
being defined. The pseudo model ‘named’ is not allowed here, it may, however,
be specified in the type argument. Note that an already existing color name
will be overwritten.
Example: we said \colorlet{tableheadcolor}{gray!25} in the preamble of
this document. In most of the tables we then formatted the first row by using the
command \rowcolor{tableheadcolor}.
2.5.3 Defining sets of colors
[type]{model-list}{head}{tail}{set spec}
\definecolorset
This command facilitates the construction of color sets, i.e. (possibly large) sets
of individual colors with common underlying model-list and type. Here, set
spec = name
1
,spec-list
1
;...;name
l
,spec-list
l
(l ≥ 1 name/specification-list
pairs). Individual colors are being constructed by single
\definecolor[type]{headname
λ
tail}{model-list}{spec-list
λ
}
commands, λ = 1,...,l. For example,
• \definecolorset{rgb}{}{}{red,1,0,0;green,0,1,0;blue,0,0,1}
could be used to define the basic colors red, green, and blue;11
• \definecolorset{rgb}{x}{10}{red,1,0,0;green,0,1,0;blue,0,0,1}
would define the colors xred10, xgreen10, and xblue10.
[type]{model-list}{head}{tail}{set spec}
\providecolorset
Similar to \definecolorset, but based on \providecolor, thus the individual
colors are defined only if they do not exist already.
2.5.4 Immediate and deferred definitions
Traditionally, the definition of a color as described above leads to the immediate
construction of acommand that holds at least the information needed by the driver
to display the desired color. Thus, defining 300 colors, e.g., by loading a huge set
of predefined colors, will result in 300 new commands, although most of them —
except for the purpose of displaying listsof colors— will hardly ever be used within
adocument. Along the development of computer memory — increasing in size,
decreasing in price — recent T
E
Ximplementations have increased their provisions
for internal memory stacks that are available for strings, control sequences, etc.
However, as memory continues to be finite, it may still be useful (or occasionally
necessary) to have a method at hand that allows to reduce memory requirements a
bit. This is the point where deferred color definition comes into play. Its principle
is simple: for every definition of this type (e.g., via \preparecolor), all necessary
11
Actually, xcolor uses a more complicated variant to provide the basic colors for different
underlying models (see the source code for the full command):
\definecolorset{rgb/hsb/cmyk/gray}{}{}{red,1,0,0/0,1,1/0,1,1,0/.3;green,...}.
Documents you may be interested
Documents you may be interested