Mojca Miklavec wrote:
> Hello,
> 
> I'm a bit "out" of programming at the moment (and not following mkiv
> as deep as I should), but here's one of the old sins that keeps
> preventing my module to be used in MKIV.
> 
> How can I get rid of \startTeXtexts in the following code, so that the
> code will be usable by both mkii and mkiv? (Metapost code is probably
> [almost] OK, but the TeX part needs some minor polishing. One could
> definitely rewrite metapost code into lua, but then I would need to
> take care for two paralel versions - I do not want to go there since
> metapost does all the work at the moment.)
> 
> Any hinst most welcome,
>     Mojca
> 
> \defineconversion
>       [hans and taco]
>       [H,a,n,s,\ ,\&,\ ,T,a,c,o,\ ]
> 
> \setupcolors
>       [state=start]
> \chardef\TeXtextcolormode\zerocount
> 
> \startTeXtexts
>       \doloop{\doifelseconversionnumber{hans and taco}{\recurselevel}%
>               % +500 is a hack (hopefully the plot doesn't contain more than 
> 500 labels)
>               % otherwise the points would be overwritten by labels with 
> another \TeXtext:
>               % it might need a fix in ConTeXt core
>               
> {\TeXtext{\numexpr\recurselevel+500\relax}{\strut{\convertnumber{hans
> and taco}{\recurselevel}}}}%
>       {\exitloop}}%
> \stopTeXtexts
> 
> \edef\numberofsymbols{1}%
> \doloop{\doifelseconversionnumber{hans and taco}{\recurselevel}%
>       {\edef\numberofsymbols{\recurselevel}}%
>       {\exitloop}}%
> 
> \starttext
> \startMPcode
> 
> color c[];
> for i=1 upto \numberofsymbols:
>       c[i] = ((i-1)/(\numberofsymbols-1))[red,blue];
> endfor;
> 
> vardef the_number(expr n) = ((n mod \numberofsymbols) + 1) enddef;
> 
> vardef the_symbol(expr n) =
>       picture pict;
>       pict := sometxt(the_number(n) + 500);
>       pict shifted -.5[llcorner pict,lrcorner pict]
> enddef;
> 
> def draw_point(expr x, y, n) =
>       draw (the_symbol(n) shifted (x,y)) withcolor c[the_number(n)];
> enddef;
> 
> for i=0 upto 23:
>       draw_point(0,-i*3mm,i);
> endfor;
> \stopMPcode
> 
> \stoptext

just make a proper tex string ... here 's'

\setupcolors[state=start]

\unexpanded\def\colored[#1]%
   {\groupedcommand
      [EMAIL PROTECTED]@[EMAIL PROTECTED]@}}
      {}}

\starttext
     \startMPcode
     vardef draw_point(expr x, y, n) =
         save s ; string s ;
         s := "\colored[r=" & decimal (n/25) & "]{" & decimal n & "}" ;
         draw (textext(s) shifted (x,y)) ;
     enddef;

     for i=0 upto 23:
         draw_point(-i*2mm,-i*3mm,i);
     endfor;
     \stopMPcode
\stoptext

i'll add \colored to the core (this is the mkiv definition)


-----------------------------------------------------------------
                                           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
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-context

Reply via email to