[NTG-context] troubles with \MPinclusions

Hans Hagen j.hagen at xs4all.nl
Thu Feb 21 10:44:53 CET 2019


On 2/21/2019 10:03 AM, Damien Thiriet wrote:
> Hi,
> 
> 
> Why does (1) compile, whereas (2) doesn't?
> I can't understand why can MPinclusions store path and not pairs.
> 
> 
> %%%%%%%%%%%% (1) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> \setuppapersize[A4,landscape]
> 
> \startMPinclusions
> u:=1mm ;
> %fond
> path p ;
> p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ;
> pair x[] ;
> x[0]:= (20u,90u) ;
> x[1]:= (40u,90u) ;
> x[2]:= (90u,90u) ;
> x[3]:= (140u,90u) ;
> \stopMPinclusions
> 
> \startreusableMPgraphic{test}
> draw p ;
> \stopreusableMPgraphic
> 
> \starttext
>      \reuseMPgraphic{test}
> \stoptext
> 
> %%%%%%%%%%%% (1) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> \setuppapersize[A4,landscape]
> 
> \startMPinclusions
> u:=1mm ;
> %fond
> path p ;
> p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ;
> pair x[] ;
> x[0]:= (20u,90u) ;
> x[1]:= (40u,90u) ;
> x[2]:= (90u,90u) ;
> x[3]:= (140u,90u) ;
> \stopMPinclusions
> 
> \startreusableMPgraphic{test}
> draw p ;
> for i=0 step 1 until 3 :
>      drawdot x[i] ;
> endfor ;
> \stopreusableMPgraphic
> 
> \starttext
>      \reuseMPgraphic{test}
> 
> 
> More generaly, which kind of variables cannot be stored in
> \startMPinclusions ?

those that are likely to clash later

\startMPinclusions
vardef MyStuff =
     numeric u;
     u:=1mm ;
     path p ;
     p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ;
     pair x[] ;
     x[0]:= (20u,90u) ;
     x[1]:= (40u,90u) ;
     x[2]:= (90u,90u) ;
     x[3]:= (140u,90u) ;
enddef ;
\stopMPinclusions

\startreusableMPgraphic{test}
save p, u, x ;
MyStuff ;
draw p ;
for i=0 step 1 until 3 :
     drawdot x[i] ;
endfor ;
\stopreusableMPgraphic

\starttext
     \reuseMPgraphic{test}
\stoptext

but in your case you could as well put the inclusions in the test 
graphic itself

\startreusableMPgraphic{test}
     save p, u, x ;
     numeric u;
     u:=1mm ;
     path p ;
     p:= (0,0) -- (150u,0) -- (150u,95u) -- (0,95u) -- cycle ;
     pair x[] ;
     x[0]:= (20u,90u) ;
     x[1]:= (40u,90u) ;
     x[2]:= (90u,90u) ;
     x[3]:= (140u,90u) ;
     draw p ;
     for i=0 step 1 until 3 :
         drawdot x[i] ;
     endfor ;
\stopreusableMPgraphic

\starttext
     \reuseMPgraphic{test}
\stoptext


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


More information about the ntg-context mailing list