Re: [dev-context] derived colors (mkiv)
Peter Rolf wrote:
Hans Hagen schrieb:
so, what exactly do you need the number for
for overprinting (text only) i have to test if the current color is black. overprinting should be activated for all text elements, but if the print color is non black, overprinting should be disabled.
so, how about something that just works -) \setupcolors[state=start] \startluacode function ctx.isblack(ca) -- name might change local cv = ca > 0 and colors.value(ca) return (cv and cv[2] == 0) or false end \stopluacode \def\doifblackelse#1% {\ctxlua{commands.doifelse(ctx.isblack(\thecolorattribute{#1}))}} \def\doifdrawingblackelse {\ctxlua{commands.doifelse(ctx.isblack(tex.attribute[attributes.numbers['color']]))}} \starttext \definecolor[foo][black] {\red red {\foo (\doifblackelse{foo}{YES}{NO} \doifdrawingblackelse{YES}{NO}) black} red} \definecolor[foo][green] {\red red {\foo (\doifblackelse{foo}{YES}{NO} \doifdrawingblackelse{YES}{NO}) green} red} \stoptext less code and more abstract ----------------------------------------------------------------- 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 -----------------------------------------------------------------
Hans Hagen schrieb:
Peter Rolf wrote:
Hans Hagen schrieb:
so, what exactly do you need the number for for overprinting (text only) i have to test if the current color is black. overprinting should be activated for all text elements, but if the print color is non black, overprinting should be disabled.
so, how about something that just works -)
build in stuff is always preferred (as i don't have to adapt it if the environment changes) :) this looks nice. much better than my low level based and therefore fragile solution. many thanks!! regards, peter
\setupcolors[state=start]
\startluacode function ctx.isblack(ca) -- name might change local cv = ca > 0 and colors.value(ca) return (cv and cv[2] == 0) or false end \stopluacode
\def\doifblackelse#1% {\ctxlua{commands.doifelse(ctx.isblack(\thecolorattribute{#1}))}}
\def\doifdrawingblackelse {\ctxlua{commands.doifelse(ctx.isblack(tex.attribute[attributes.numbers['color']]))}}
\starttext
\definecolor[foo][black] {\red red {\foo (\doifblackelse{foo}{YES}{NO} \doifdrawingblackelse{YES}{NO}) black} red}
\definecolor[foo][green] {\red red {\foo (\doifblackelse{foo}{YES}{NO} \doifdrawingblackelse{YES}{NO}) green} red}
\stoptext
less code and more abstract
----------------------------------------------------------------- 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 ----------------------------------------------------------------- _______________________________________________ dev-context mailing list dev-context@ntg.nl http://www.ntg.nl/mailman/listinfo/dev-context
participants (2)
-
Hans Hagen
-
Peter Rolf