[dev-context] derived colors (mkiv)

Hans Hagen pragma at wxs.nl
Thu Sep 25 18:07:54 CEST 2008


Peter Rolf wrote:
> Peter Rolf schrieb:
>> Hi,
>>
>> there is currently no bookkeeping ('name-->id') for derived colors in
>> mkiv; i.e. \definecolor[foo] [black] does not register 'foo'.
>>
>> \csname(ca:foo)\endcsname
>>
>> is the only way to access the color id. While this in no problem in TeX
>> code, using this in lua is not very handy. I tried ugly stuff like
>>
>> c_id = format("\\csname(ca:%s)\\endcsname",c)
>>
>> but when I compare 'c_id' with the id of black, the values '1' and 1 (id
>> of black) differ when compared. Mhhhh.
>>
>> I think that the best way to handle derived colors properly is to add
>> their name to the attributes list too. It's only a small patch and it
>> shouldn't do any harm.
>>
> ..... I forgot to test the existense of a 'name' :(
> hopefully now foolprooved.
> 
> 
>         if name then
>             local stra = attributes.list[attributes.numbers['color']][str]
>             if stra then
>                 attributes.list[attributes.numbers['color']][name] =
> stra -- inherit color id
>             else
>                 attributes.list[attributes.numbers['color']][name] =
> attributes.list[attributes.numbers['color']][black]
>             end
>         end

btw ...


\setupcolors[state=start]

\starttext
     \definecolor[foo][black]   {\red red {\foo black} red}
     \definecolor[black][green] {\red red {\foo black} red}
\stoptext

you cannot freeze foo to black


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the dev-context mailing list