summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/colo-ini.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/colo-ini.tex')
-rw-r--r--Master/texmf-dist/tex/context/base/colo-ini.tex383
1 files changed, 227 insertions, 156 deletions
diff --git a/Master/texmf-dist/tex/context/base/colo-ini.tex b/Master/texmf-dist/tex/context/base/colo-ini.tex
index 0042429f5ea..0b43ca3ddd1 100644
--- a/Master/texmf-dist/tex/context/base/colo-ini.tex
+++ b/Master/texmf-dist/tex/context/base/colo-ini.tex
@@ -13,9 +13,6 @@
\writestatus{loading}{Context Color Macros / initialization}
-%D To do: stroke versus fill color
-%D 1000 100 10 -> constants
-
%D Possible optimization: store level in mark instead of name
\unprotect
@@ -326,7 +323,7 @@
\def\dodefineglobalcolor{\dododefinecolor\doglobal\setgvalue\setxvalue1}
\def\dodefinenamedcolor {\dododefinecolor\doglobal\setvalue \setevalue0}
-\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
+\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value -- maybe add fake [#7] here
{#1\addtocommalist{#5}\colorlist % optional
\doifassignmentelse{#6}
{\@@resetcolorparameters
@@ -359,8 +356,7 @@
{% this way we can freeze \definecolor[somecolor][somecolor]
% and still prevent cyclic definitions
\iffreezecolors#3{\??cr#5}{\csname\??cr#6\endcsname}\fi}
- {\iffreezecolors\@EA#3\else\@EA#2\fi
- {\??cr#5}{\csname\??cr#6\endcsname}}}
+ {\iffreezecolors\@EA#3\else\@EA#2\fi{\??cr#5}{\csname\??cr#6\endcsname}}}
{\showmessage\m!colors3{#5 (def)}}%
\fi}%
\ifcase#4\or
@@ -368,7 +364,6 @@
\fi}
\def\paletcolorspec#1%
-% {\executeifdefined{\??cr\currentpalet#1}{\executeifdefined{\??cr#1}\empty}}
{\csname\??cr\currentpalet#1\endcsname}
%D Hex color support is not enabled by default. You need to say \type
@@ -388,6 +383,7 @@
\def\dodefinespotcolor[#1][#2][#3]% todo: always global
{\doifnot{#1}{#2}
{\@@resetcolorparameters
+\doglobal\addtocommalist{#1}\colorlist % optional
\edef\@@cl@@n{#2}%
\getparameters[\??cl @@][#3]%
\doifnothing\@@cl@@p{\let\@@cl@@p\!!plusone}%
@@ -484,6 +480,7 @@
\def\dodefinespotcolor[#1][#2][#3]% todo: always global (REDEFINED)
{\doifnot{#1}{#2}
{\@@resetcolorparameters
+\doglobal\addtocommalist{#1}\colorlist % optional
\edef\@@cl@@n{#2}%
\getparameters[\??cl @@][#3]%
\doifnothing \@@cl@@p{\let\@@cl@@p\!!plusone}%
@@ -525,14 +522,14 @@
%D We now redefine the color definition macro so that you
%D can define both normal and spotcolors.
+%D This messy method will become obsolete in mkiv.
+
\def\definecolor
{\dotripleempty\dodefinewhatevercolor}
\def\dodefinewhatevercolor[#1][#2][#3]%
{\ifthirdargument
- \doifassignmentelse{#2}
- {\dododefinecolor[#1][#2,#3]}% actually this is an error
- {\dodefinespotcolor[#1][#2][#3]}% and this the prefered method
+ \dodefinespotcolor[#1][#2][#3]% this is the prefered method !
\else
\dodefinecolor[#1][#2]%
\fi}
@@ -658,6 +655,12 @@
\newif\ifpermitcolormode \permitcolormodetrue
+\def\startregistercolor[#1]%
+ {\permitcolormodefalse\startcolor[#1]\permitcolormodetrue}
+
+\def\stopregistercolor
+ {\permitcolormodefalse\stopcolor\permitcolormodetrue}
+
\def\dowithcolor#1#2% #1=\action #2=color
{\ifincolor\ifpermitcolormode
\ifcsname\??cr\currentpalet#2\endcsname
@@ -836,6 +839,7 @@
\dostartspotcolormode\@@cl@@n\@@cl@@p
\else
\doingspotcolortrue
+ \normalizespotcolor\@@cl@@p
\let\spotcolorfactor\@@cl@@p
\factorizecolortrue % using counter and array
\dowithcolor\execcolorRCSP\@@cl@@n
@@ -960,10 +964,6 @@
{\edef\@@cl@@s{#1}%
\dohidecolor\@@cl@@s\@@cl@@o}
-% \def\noexeccolorP#1:#2:#3\od
-% {\edef\@@cl@@p{#2}%
-% \dohidecolor\@@cl@@p\@@cl@@z}
-
\def\noexeccolorP#1:#2:#3:#4:#5\od
{\edef\@@cl@@p{#4}%
\dohidecolor\@@cl@@p\@@cl@@z}
@@ -979,20 +979,28 @@
\def\spotcolorfactor{1}
+% \def\normalizecolor#1%
+% {\colordimen#1\thousandpoint
+% \colordimen\spotcolorfactor\colordimen
+% \colorcount\colordimen
+% \advance\colorcount \medcard
+% \divide\colorcount \maxcard
+% \edef#1{\realcolorvalue\colorcount}}
+
\def\normalizecolor#1%
- {\colordimen#1\thousandpoint
- \colordimen\spotcolorfactor\colordimen
- \colorcount\colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard
+ {\colorcount\numexpr(\dimexpr\spotcolorfactor\dimexpr#1\thousandpoint\relax\relax+\medcard)/\maxcard\relax
\edef#1{\realcolorvalue\colorcount}}
+% \def\normalizespotcolor#1%
+% {\colordimen-#1\thousandpoint
+% \advance\colordimen\thousandpoint
+% \colorcount\colordimen
+% \advance\colorcount \medcard
+% \divide\colorcount \maxcard
+% \edef#1{\realcolorvalue\colorcount}}
+
\def\normalizespotcolor#1%
- {\colordimen-#1\thousandpoint
- \advance\colordimen\thousandpoint
- \colorcount\colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard
+ {\colorcount\numexpr(\dimexpr\thousandpoint-#1\thousandpoint\relax+\medcard)/\maxcard\relax
\edef#1{\realcolorvalue\colorcount}}
\def\donormalizeRGB
@@ -1045,6 +1053,8 @@
\csname registerspotcolor#1\@EA\endcsname
\fi}
+% todo: convert to rgb if needed, will will do this in mkiv
+
\def\dontregisterspotcolor #1\od{}
\def\registerspotcolorR #1:#2:#3:#4\od{\doregisterrgbspotcolor \@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}}
\def\registerspotcolorC#1:#2:#3:#4:#5\od{\doregistercmykspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}{#4}}
@@ -1092,14 +1102,14 @@
\def\predefinecolor[#1]%
{\bgroup
- \flushatshipout{\hbox{\localcolortrue\color[#1]}}% real ones
+ \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% real ones
\egroup}
\def\predefineindexcolor[#1]%
{\bgroup
- \flushatshipout{\hbox{\localcolortrue\color[#1]}}% real ones
+ \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% real ones
\let\doexeccolorP\doexeccolorPindex
- \flushatshipout{\hbox{\localcolortrue\color[#1]}}% index one
+ \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% index one
\egroup}
% \def\checkpredefinedcolor[#1]%
@@ -1142,15 +1152,6 @@
\expandafter\noexectransparency
\fi}
-%\def\doexectransparency#1:#2\od
-% {\global\@EA\chardef\csname\@@currenttransparent\endcsname % nasty
-% \ifcase#1\space
-% \zerocount
-% \else
-% \plusone
-% \dostarttransparency{#1}{#2}%
-% \fi}
-
\def\doexectransparency#1:#2\od
{\ifcase#1\space
\global\intransparentfalse
@@ -1424,18 +1425,26 @@
1\fi\fi\fi
\else 0\fi}
+% \def\doconvertCMYKtoRGB#1\k#2\to#3%
+% {\ifdim#2\points>#1\points% >= problem, repaired 2/12/2002
+% \let#3\@@cl@@z % k >= color
+% \else
+% \colordimen\onepoint
+% \advance\colordimen -#1\points
+% \advance\colordimen -#2\points
+% \multiply\colordimen \plusthousand
+% \colorcount\colordimen
+% \advance\colorcount \medcard
+% \divide\colorcount \maxcard
+% \edef#3{\realcolorvalue\colorcount}%
+% \fi}
+
\def\doconvertCMYKtoRGB#1\k#2\to#3%
- {\ifdim#2\points>#1\points% >= problem, repaired 2/12/2002
- \let#3\@@cl@@z % k >= color
- \else
- \colordimen\onepoint
- \advance\colordimen -#1\points
- \advance\colordimen -#2\points
- \multiply\colordimen \plusthousand
- \colorcount\colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard
+ {\colorcount\numexpr(\dimexpr\plusthousand\dimexpr\onepoint-#1\points-#2\points\relax\relax+\medcard)/\maxcard\relax
+ \ifnum\colorcount>\zeropoint
\edef#3{\realcolorvalue\colorcount}%
+ \else
+ \let#3\@@cl@@z
\fi}
\def\convertCMYKtoRGB#1#2#3#4%
@@ -1443,14 +1452,18 @@
\doconvertCMYKtoRGB#2\k#4\to\@@cl@@g
\doconvertCMYKtoRGB#3\k#4\to\@@cl@@b}
+% \def\doconvertRGBtoCMYK#1\to#2%
+% {\colordimen#1\points
+% \multiply\colordimen \plusthousand
+% \colorcount\colordimen
+% \advance\colorcount \medcard
+% \divide\colorcount \maxcard
+% \colorcount-\colorcount
+% \advance\colorcount \plusthousand
+% \edef#2{\realcolorvalue\colorcount}}
+
\def\doconvertRGBtoCMYK#1\to#2%
- {\colordimen#1\points
- \multiply\colordimen \plusthousand
- \colorcount\colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard
- \colorcount-\colorcount
- \advance\colorcount \plusthousand
+ {\colorcount\numexpr\plusthousand-(\dimexpr\plusthousand\dimexpr#1\points\relax\relax+\medcard)/\maxcard\relax
\edef#2{\realcolorvalue\colorcount}}
\def\convertRGBtoCMYK#1#2#3%
@@ -1469,37 +1482,54 @@
\def\gGRAYfactor{\ifweightGRAY590\else\nGRAYfactor\fi}
\def\bGRAYfactor{\ifweightGRAY110\else\nGRAYfactor\fi}
+% \def\convertRGBtoGRAY#1#2#3%
+% {\colordimen#1\points
+% \colordimen\rGRAYfactor\colordimen
+% \colorcount\colordimen
+% \colordimen#2\points
+% \colordimen\gGRAYfactor\colordimen
+% \advance\colorcount \colordimen
+% \colordimen#3\points
+% \colordimen\bGRAYfactor\colordimen
+% \advance\colorcount \colordimen
+% \advance\colorcount \medcard
+% \divide\colorcount \maxcard
+% \edef\@@cl@@s{\realcolorvalue\colorcount}}
+
\def\convertRGBtoGRAY#1#2#3%
- {\colordimen#1\points
- \colordimen\rGRAYfactor\colordimen
- \colorcount\colordimen
- \colordimen#2\points
- \colordimen\gGRAYfactor\colordimen
- \advance\colorcount \colordimen
- \colordimen#3\points
- \colordimen\bGRAYfactor\colordimen
- \advance\colorcount \colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard
+ {\colorcount\numexpr
+ (\dimexpr\rGRAYfactor\dimexpr#1\points\relax\relax+
+ \dimexpr\gGRAYfactor\dimexpr#2\points\relax\relax+
+ \dimexpr\bGRAYfactor\dimexpr#3\points\relax\relax+
+ \medcard)/\maxcard
+ \relax
\edef\@@cl@@s{\realcolorvalue\colorcount}}
\def\convertCMYKtoGRAY#1#2#3#4%
{\convertCMYKtoRGB{#1}{#2}{#3}{#4}%
\convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b}
+% \def\doconvertCMYKtoCMY#1\k#2\to#3%
+% {\colordimen#1\points
+% \advance\colordimen #2\points\relax
+% \ifdim\colordimen>\onepoint
+% \colordimen\onepoint
+% %\else
+% % \colordimen\colordimen
+% \fi
+% \multiply\colordimen \plusthousand
+% \colorcount\colordimen
+% \advance\colorcount \medcard
+% \divide\colorcount \maxcard
+% \edef#3{\realcolorvalue\colorcount}}
+
\def\doconvertCMYKtoCMY#1\k#2\to#3%
- {\colordimen#1\points
- \advance\colordimen #2\points\relax
- \ifdim\colordimen>\onepoint
- \colordimen\onepoint
- %\else
- % \colordimen\colordimen
- \fi
- \multiply\colordimen \plusthousand
- \colorcount\colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard
- \edef#3{\realcolorvalue\colorcount}}
+ {\colorcount\numexpr(\dimexpr\plusthousand\dimexpr#1\points+#2\points\relax\relax+\medcard)/\maxcard\relax
+ \ifnum\colorcount>\plusthousand
+ \let#3\@@cl@@o
+ \else
+ \edef#3{\realcolorvalue\colorcount}%
+ \fi}
\def\convertCMYKtoCMY#1#2#3#4%
{\doconvertCMYKtoCMY#1\k#4\to\@@cl@@c
@@ -1542,7 +1572,7 @@
g=>\chardef\currentcolorchannel6,%
b=>\chardef\currentcolorchannel7,%
s=>\chardef\currentcolorchannel8,%
- \v!no=>,% \currentcolorchannel0,% all colors
+ \v!no=>,% \currentcolorchannel0,% all colors
\s!default=>,% \currentcolorchannel0,% all colors
\s!unknown=>\filterspotcolortrue
\edef\currentspotcolor{\commalistelement}]%
@@ -1630,6 +1660,13 @@
\expandafter\secondoftwoarguments
\fi}
+\def\doifcolor#1%
+ {\ifcsname\??cr\ifcsname\??cr\currentpalet#1\endcsname\currentpalet\fi#1\endcsname
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
%D \macros
%D {localstartcolor,localstopcolor}
%D
@@ -1837,6 +1874,9 @@
\let\noglobalstopcolor\relax
+\let\faststartcolor\doglobalstartcolor
+\let\faststopcolor \doglobalstopcolor
+
%D We don't use grouping and save each stop alternative. This
%D permits be especially useful in for instance local color
%D support in verbatim. Using \type{\bgroup}||\type{\egroup}
@@ -2048,7 +2088,7 @@
{\groupedcommand{\startcolor[#1]}\stopcolor}
\unexpanded\def\graycolor[#1]% not \gray because this is a color
- {\groupedcommand{\RGBsupportedfalse\CMYKsupportedfalse\startcolor[#1]}\stopcolor}
+ {\groupedcommand{\RGBsupportedfalse\CMYKsupportedfalse\SPOTsupportedfalse\startcolor[#1]}\stopcolor}
\let\grey\graycolor
@@ -2114,11 +2154,17 @@
\def\doformatcolorS#1:#2:#3\od
{\dodoformatcolor{#1}}
+\def\doformatcolorP#1:#2:#3:#4:#5:#6\od
+ {#1\colorformatseparator
+ \dodoformatcolor{#2}\colorformatseparator
+ \dodoformatcolor{#3}\colorformatseparator
+ \dodoformatcolor{#4}\colorformatseparator}
+
\def\doformatcolor#1:%
{\csname doformatcolor#1\endcsname}
\def\colorvalue
- {\dowithcolor\doformatcolor}
+ {\dowithcolor\doformatcolor}
\def\doformatgrayR#1:#2:#3:#4:#5\od
{\convertRGBtoGRAY{#1}{#2}{#3}%
@@ -2131,11 +2177,12 @@
\def\doformatgrayS#1:#2:#3\od
{\dodoformatcolor{#1}}
-% \def\doformatgrayP#1:#2:#3:#4\od
-% {\dowithcolor\doformatcolor{#1}}
+% \def\doformatgrayP#1:#2:#3:#4:#5:#6\od
+% {\convertSPOTtoGRAY{#1}{#2}{#3}{#4}%
+% \dodoformatcolor\@@cl@@s}
\def\doformatgrayP#1:#2:#3:#4:#5:#6\od
- {\dowithcolor\doformatcolor{#1}}
+ {todo}
\def\doformatgray#1:%
{\csname doformatgray#1\endcsname}
@@ -2154,17 +2201,45 @@
%D don't cross page boundaries in the way color does. Therefore
%D we don't need stacks and marks. Just to be compatible with
%D color support we offer both 'global' and 'local' commands.
+%D
+%D \starttyping
+%D \def\localstartraster[#1]%
+%D {\doifelsenothing{#1}
+%D {\dostartgraymode\@@rsscreen}
+%D {\dostartgraymode{#1}}}
+%D
+%D \def\localstopraster
+%D {\dostopgraymode}
+%D
+%D \let\startraster\localstartraster
+%D \let\stopraster \localstopraster
+%D \stoptyping
+%D
+%D The next alternative is slower, since it works on top of the
+%D color (stack) mechanism, but it does provide nesting.
+
+\def\dosetrastercolor#1%
+ {\edef\@@cl@@s{#1}%
+ \ifx\@@cl@@s\empty
+ \let\@@cl@@s\@@rsscreen
+ \fi
+ \let\@@cl@@t\@@cl@@z % else we get rogue
+ \let\@@cl@@a\@@cl@@z % transpancies
+ \setevalue{\??cr\??rs}{\colorSpattern}}
+
+% beware, don't add extra grouping, else color in tables
+% fails
\def\localstartraster[#1]%
- {\doifelsenothing{#1}
- {\dostartgraymode\@@rsscreen}
- {\dostartgraymode{#1}}}
+ {\ifincolor\dosetrastercolor{#1}\localstartcolor[\??rs]\fi}
+
+\def\startraster[#1]%
+ {\ifincolor\dosetrastercolor{#1}\startcolor[\??rs]\fi}
-\def\localstopraster
- {\dostopgraymode}
+\def\localstopraster{\ifincolor\localstopcolor\fi}
+\def\stopraster {\ifincolor\stopcolor\fi}
-\let\startraster\localstartraster
-\let\stopraster \localstopraster
+\def\raster[#1]{\groupedcommand{\startraster[#1]}{\stopraster}}
%D In this documentation we will not go into too much details
%D on palets. Curious users can find more information on this
@@ -2243,22 +2318,23 @@
{\doifvaluesomething{\??pa#1}
{\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}%
\setevalue{\??pa#1}{\csname\??pa#1\endcsname##1}%
- \doifassignmentelse{##2}
- {% == \definepalet[test][xx={y=.4}]
- \definecolor[\??pa#1:##1][##2]%
- \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
- {\??cr#1:##1}{\csname\??cr\??pa#1:##1\endcsname}}
- {% == \definepalet[test][xx=green]
- \doifdefinedelse{\??cr##2}
- {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
- {\??cr#1:##1}{\csname\??cr##2\endcsname}}
- {\letvalue{\??cr#1:##1}\colorXpattern}}}%
+ \dodefinepaletcolor{#1}{##1}{##2}}%
\def\dododefinepalet##1%
{\dodododefinepalet[##1]}%
\processcommalist[#2]\dododefinepalet}
{\doifdefined{\??pa#2}
{\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}}
+\def\dodefinepaletcolor#1#2#3%
+ {\doifassignmentelse{#3}
+ {% == \definepalet[test][xx={y=.4}]
+ \definecolor[\??pa#1:#2][#3]%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr\??pa#1:#2\endcsname}}
+ {% == \definepalet[test][xx=green]
+ \doifdefinedelse{\??cr#3}
+ {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr#3\endcsname}}
+ {\letvalue{\??cr#1:#2}\colorXpattern}}}
+
\let\paletsize\!!zerocount
\def\getpaletsize[#1]%
@@ -2311,6 +2387,15 @@
\fetchruntimecommand \showpalet {\f!colorprefix\s!run}
%D \macros
+%D {showcolorcomponents}
+%D
+%D \starttyping
+%D \showcolorcomponents[color-1,color-2]
+%D \stoptyping
+
+\fetchruntimecommand \showcolorcomponents {\f!colorprefix\s!run}
+
+%D \macros
%D {definecolorgroup}
%D
%D The naming of the colors in this palet suggests some
@@ -2340,28 +2425,51 @@
\def\definecolorgroup
{\dotripleempty\dodefinecolorgroup}
-\def\dodefinecolorgroup[#1][#2][#3]%
+% \def\dodefinecolorgroup[#1][#2][#3]%
+% {\ifthirdargument
+% \processaction
+% [#2]
+% [ \v!cmyk=>\edef\currentcolorspace{C},
+% \v!rgb=>\edef\currentcolorspace{R},
+% \v!gray=>\edef\currentcolorspace{S},
+% \v!spot=>\edef\currentcolorspace{P},
+% \v!s=>\edef\currentcolorspace{S},
+% \s!unknown=>\edef\currentcolorspace{R}]%
+% \colorcount\zerocount
+% \def\dododefinecolorgroup##1%
+% {\advance\colorcount \plusone
+% \setevalue{\??cr#1:\the\colorcount}{\currentcolorspace:##1:0:0}}%
+% \processcommalist[#3]\dododefinecolorgroup
+% \else
+% \doifinstringelse{:}{#2}
+% {\definecolorgroup[#1][\v!rgb][#2]}
+% {\doloop
+% {\doifdefinedelse{\??cr#2:\recurselevel}
+% {\setevalue{\??cr#1:\recurselevel}%
+% {\csname\??cr#2:\recurselevel\endcsname}}
+% {\exitloop}}}%
+% \fi}
+
+\def\dododefinecolorgroupgray [#1][#2:#3]{\definecolor [#1:\the\colorcount][s=#2]}
+\def\dododefinecolorgrouprgb [#1][#2:#3:#4:#5]{\definecolor [#1:\the\colorcount][r=#2,g=#3,b=#4]}
+\def\dododefinecolorgroupcmyk[#1][#2:#3:#4:#5:#6]{\definecolor [#1:\the\colorcount][c=#2,m=#3=,y=#4,k=#5]}
+\def\dododefinecolorgroupspot [#1][#2:#3:#4]{\definespotolor[#1:\the\colorcount][#2][p=#3]}
+
+\def\dododefinecolorgroup#1#2%
+ {\advance\colorcount\plusone
+ \getvalue{dododefinecolorgroup\currentcolorspace}[#1][#2:0:0:0:0]}
+
+\def\dodefinecolorgroup[#1][#2][#3]% obsolete, just use palets
{\ifthirdargument
- \processaction
- [#2]
- [ \v!cmyk=>\edef\currentcolorspace{C},
- \v!rgb=>\edef\currentcolorspace{R},
- \v!gray=>\edef\currentcolorspace{S},
- \v!spot=>\edef\currentcolorspace{P},
- \v!s=>\edef\currentcolorspace{S},
- \s!unknown=>\edef\currentcolorspace{R}]%
+ \doifelsenothing{#2}{\let\currentcolorspace\v!rgb}{\def\currentcolorspace{#2}}%
\colorcount\zerocount
- \def\dododefinecolorgroup##1%
- {\advance\colorcount \plusone
- \setevalue{\??cr#1:\the\colorcount}{\currentcolorspace:##1:0:0}}%
- \processcommalist[#3]\dododefinecolorgroup
+ \processcommalist[#3]{\dododefinecolorgroup{#1}}%
\else
\doifinstringelse{:}{#2}
{\definecolorgroup[#1][\v!rgb][#2]}
{\doloop
{\doifdefinedelse{\??cr#2:\recurselevel}
- {\setevalue{\??cr#1:\recurselevel}%
- {\csname\??cr#2:\recurselevel\endcsname}}
+ {\setevalue{\??cr#1:\recurselevel}{\csname\??cr#2:\recurselevel\endcsname}}
{\exitloop}}}%
\fi}
@@ -2397,11 +2505,11 @@
%D \hbox to \hsize
%D {\hss
%D \showcolorgroup [red] [vertical,name,number]\hss
-%D \showcolorgroup [green] [vertical,name]\hss
+%D \showcolorgroup [green] [vertical,name]\hss
%D \showcolorgroup [blue] [vertical,name]\hss
%D \showcolorgroup [cyan] [vertical,name]\hss
-%D \showcolorgroup [magenta] [vertical,name]\hss
-%D \showcolorgroup [yellow] [vertical,name]\hss}
+%D \showcolorgroup [magenta][vertical,name]\hss
+%D \showcolorgroup [yellow] [vertical,name]\hss}
%D \stoplinecorrection
%D
%D These groups are used to define palets {\em alfa} upto {\em
@@ -2538,9 +2646,6 @@
\def\doMPcolor#1:% #1 can be \relax ! ! ! i.e. an empty color
{\csname MPc\@EA\ifx\csname MPc\string#1\endcsname\relax B\else#1\fi\endcsname}
-% \def\doMPcolor#1:% #1 can be \relax ! ! ! i.e. an empty color
-% {\csname MPc\ifcsname MPc#1\endcsname#1\else B\fi\endcsname}
-
\def\MPcR{\doMPrgb}
\def\MPcC{\ifMPcmykcolors\@EA\doMPcmykY\else\@EA\doMPcmykN\fi}
\def\MPcS{\doMPgray}
@@ -2554,8 +2659,6 @@
\def\grayMP {scaledgray}
\def\spotMP {spotcolor}
-\let\processMP\spotMP % for some time, will become obsolete
-
\def\doMPtransparent#1#2:#3:#4\end
{\ifcase#2\space(#1)\else\transparentMP(#2,#3,(#1))\fi}
@@ -2571,12 +2674,6 @@
\def\doMPcmykN#1:#2:#3:#4:#5\end#6\end
{\doMPtransparent{\cmykASrgbMP(#1,#2,#3,#4,#6)}#5\end}
-% \def\doMPspotY#1:#2:#3\end#4\end
-% {\doMPtransparent{\spotMP("#1",#2)}#3\end}
-%
-% \def\doMPspotN#1:#2:#3\end#4\end
-% {\scaledMPcolor{#2}{#1}}
-
\def\doMPspotY#1:#2:#3:#4:#5\end#6\end % best make #3 same as #1 when empty
{\doMPtransparent{multitonecolor("#1",#2,"#3","#4")}#5\end}
@@ -2589,6 +2686,8 @@
\def\unknownMPcolor
{(0,0,0)}
+\let\processMP\spotMP % for some time, will become obsolete, brrr
+
%D \macros
%D {PDFcolor,FDFcolor}
%D
@@ -2598,30 +2697,6 @@
\def\PDFcolorvalue#1{\handlecolorwith\doPDFcolorvalue\csname\??cr#1\endcsname:::::::\end}
\def\FDFcolor #1{\handlecolorwith\doFDFcolor \csname\??cr#1\endcsname:::::::\end}
-% \def\doPDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end
-% {\if #1R#2 #3 #4 rg%
-% \else\if#1C#2 #3 #4 #5 k%
-% \else\if#1S#2 g%
-% \else\if#1P#3 g% todo
-% \else 0 g%
-% \fi\fi\fi\fi}
-%
-% \def\doPDFcolorvalue#1:#2:#3:#4:#5:#6:#7:#8\end
-% {\if #1R#2 #3 #4%
-% \else\if#1C#2 #3 #4 #5%
-% \else\if#1S#2%
-% \else\if#1P#3%
-% \else 0%
-% \fi\fi\fi\fi}
-%
-% \def\doFDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end
-% {[\if #1R#2 #3 #4%
-% \else\if#1C#2 #3 #4 #5%
-% \else\if#1S#2%
-% \else\if#1P#3% todo
-% \else 0%
-% \fi\fi\fi\fi]}
-
\def\doPDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end
{\if #1R#2 #3 #4 rg%
\else\if#1C#2 #3 #4 #5 k%
@@ -2749,8 +2824,6 @@
\let\negatedcolorcomponent\firstofoneargument
-\beginETEX
-
\def\negatedcolorcomponent#1%
{\ifdim\dimexpr\onepoint-#1\onepoint\relax<\zeropoint
\!!zerocount
@@ -2761,6 +2834,4 @@
\def\negatecolorcomponent#1% #1 = \macro
{\edef#1{\negatedcolorcomponent{#1}}}
-\endETEX
-
\protect \endinput