Wolfgang Schuster schrieb:
> 2007/12/14, Peter Rolf <[EMAIL PROTECTED]>:
>> 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
> ___________________________________________________________________________________
> 



___________________________________________________________________________________
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
___________________________________________________________________________________

Reply via email to