A color shall always be specified with respect to a color-space.
(color-space string arg ...)
Returns an object of type color-space. The string specifies a public identifier identifying the color-space family. The remaining arguments specify parameters to the color-space family. The type and number of the remaining arguments depend on the color-space family as described below.
(color-space? obj)Returns #t if obj is a color-space, and otherwise returns #f.
(color color-space arg ...)
Returns an object of type color. color-space is the color-space relative to which color is to be specified. The type and number of the remaining arguments depend on the color-space family to which color-space belongs. If no arguments other than color-space are specified, then the default color in color-space is returned.
NOTE 53: This is normally black.
(color? obj)Returns #t if obj is a color, and otherwise returns #f.
This International Standard defines the following color-space families:
ISO/IEC 10179:1996//Color-Space Family::Device Gray
ISO/IEC 10179:1996//Color-Space Family::Device RGB
ISO/IEC 10179:1996//Color-Space Family::Device CMYK
ISO/IEC 10179:1996//Color-Space Family::Device KX
ISO/IEC 10179:1996//Color-Space Family::CIE LAB
ISO/IEC 10179:1996//Color-Space Family::CIE LUV
ISO/IEC 10179:1996//Color-Space Family::CIE Based ABC
ISO/IEC 10179:1996//Color-Space Family::CIE Based A
The semantics of each of these color-space families is that of the corresponding color-space family in ISO/IEC 10180. The additional arguments required by color-space when one of these color-space families is specified as the first argument are determined by the parameters of the corresponding Color-Space Object in ISO/IEC 10180. When the ISO/IEC 10180 Color-Space Object has no parameters, color-space takes no additional arguments. When the ISO/IEC 10180 Color-Space Object has a single parameter of type Dictionary, color-space accepts a keyword argument for each key allowed in the Dictionary. The name of each keyword is derived from the name of the Dictionary key by inserting a hyphen before each upper-case letter in the name that is not the first letter and that is followed by a lower-case letter, and by then mapping all characters to lower-case. The type of each keyword argument shall be determined by the type of the corresponding Dictionary value:
If the ISO/IEC 10180 type is a number, then the argument type shall be a number.
If the ISO/IEC 10180 type is a procedure, then the argument type shall be a procedure.
If the ISO/IEC 10180 type is a reference to a vector of numbers, then the argument type shall be a list of numbers of the same length.
If the ISO/IEC 10180 type is a reference to a vector of procedures, then the argument type shall be a list of procedures of the same length.
The number and type of the additional arguments required by the color procedure when the first argument is a color-space that belongs to one of these families shall be determined by the number and type of the argument required by the ISO/IEC 10180 SetColor operator to specify a color in the corresponding ISO/IEC 10180 color-space. These additional arguments are all required arguments (not keyword arguments). Their types are determined from the ISO/IEC 10180 types in the same manner as the arguments for color-space. The default color for each color-space is determined by the value that ISO/IEC 10180 defines the CurrentColor Graphics State Variable to have immediately after execution of the SetColorSpace operator for the corresponding ISO/IEC 10180 color-space.
NOTE 54: A color specified in a color-space with a procedure argument may be transformed in a device-independent manner to a color specified in a color-space without any procedure arguments. There is, therefore, no need when implementing the style language with output to an ISO/IEC 10180 device to be able to compile an arbitrary expression into the language defined in ISO/IEC 10180.