Hi, I desperately need runtime defined colors (state dependent) for my macros. The macros are used with different graphic styles, which is the reason why I want to avoid any style dependent part inside them. To give you an example. I need something like this \color[{\StateDependentColor[stateA=green,stateC=blue,whatever=yellow,...]}] If flag 'stateA' is true at runtime, then color 'green' is used (and so on; order is significant). I have written such a macro, but sadly it crashes when used inside \color or \definecolor. Tried to debug it, but this is my first experience with the trace commands (probably not the best example to start with). Sigh, still so much to learn.. :) Any hints are welcome. Regards, Peter \setuppagenumber[state=stop] \setupcolors[state=start] \definecolor[colorA] [red] \definecolor[colorB] [green] \definecolor[colorC] [blue] \newconditional\CondA \newconditional\CondB \newconditional\CondC \unprotect \def\GetStateDependentColor[#1]% {\bgroup \rawgetparameters[SDC@][A=,B=,C=,#1]% \def\MYdocommand##1% {\doifdefined{Cond##1} % conditional is known.. {\expandafter\ifconditional\csname Cond##1\endcsname % ..AND true.. \edef\CurrentColor{\csname SDC@##1\endcsname}\else \def\CurrentColor{}\fi \doifelsenothing\CurrentColor % ..AND a color is assigned \donefalse\donetrue}% \ifdone\CurrentColor\expandafter\quitcommalist\fi}% \processcommacommand[A,B,C]\MYdocommand % raw version does not work! why? \egroup} \protect \starttext \setfalse\CondA \settrue\CondB \settrue\CondC \tracingonline=1 %\tracingall=1 %\tracingmacros=1 %\tracingcommands=2 color is -\GetStateDependentColor[A=colorA,C=colorC]- % works so far %\tracingmacros=0 %\tracingall=0 % crashes %\tracingall=1 %\tracingmacros=1 %\tracingcommands=2 %\definecolor[testcolor][{\GetStateDependentColor[A=colorA,C=colorC]}] %\color[testcolor] %\color[{\GetStateDependentColor[A=colorA,C=colorC]}] %\expandafter\color\expandafter[\expandafter{\GetStateDependentColor[A=colorA,C=colorC]}] %\tracingall=0 TEST \stoptext