Wolfgang Schuster schrieb:
2007/12/14, Peter Rolf
: 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
Hi Peter,
can you try this (untested),
Hi Wolfgang, your idea works pretty good (I haven't thought about \ifcase 'til now). Still the problem is, that - currentstate must be set somehow - the colors and the number of used states vary from macro to macro So I have to define individual variants of \statecolor (with non fixed state=number pairs), or add an entry for every single state (currently 9). The later method is too ugly (imagine the case that you only need states 0 and 8) and will be hard to maintain if new states arise. I end up with 60 macros and that is what I want to avoid. Anyhow thanks for your help. I will try to trace my color macro while listening the right music for such problems (Yo La Tengo - I am not afraid of you and will beat your ass). Hopefully it works. ;) Greetings, Peter
\chardef\stateA\zerocount \chardef\stateB\plusone \chardef\stateC\plustwo
\let\currentstate\stateA
\def\statecolor{\ifcase\currentstate red\or green\or blue\fi}
\starttext
\color[\statecolor]{Currentstate}
\let\currentstate\stateB
\color[\statecolor]{Currentstate}
\let\currentstate\stateC
\color[\statecolor]{Currentstate}
\stoptext
Wolfgang ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________