Re: [NTG-context] troubles with \MPinclusions (Taco Hoekwater)
Thanks for your answers, I could significantly reduce my long timeline code. > 1. Variable names x and y are special and cleared before >every graphic. This is related to the fact that “z" is >defined as a shortcut for "(x,y)”. Both of these are >traditional. > >Every metapost graphic does at least this at its start: > >save x,y; >currentpicture := nullpicture; >currentpen:=defaultpen; > >so pair xx[]; would have worked just fine. > >In general, I would advice to stay away from single-letter >variable names inside MPinclusions, and use CamelCase >to avoid clashes with metafun internals. > So, got one more z-related error in Metapost. I bet this is absolutely the n.1 on help-lists. Btw, if I were a scientist, I'd realized that defining x as a pair is quite heretic… And that sounds much familiar to an historian. Damien Thiriet ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] troubles with \MPinclusions
> On 21 Feb 2019, at 10:03, Damien Thiriet wrote: > > Hi, > > > Why does (1) compile, whereas (2) doesn’t? For me, both compile. However (2) does not work. 1. Variable names x and y are special and cleared before every graphic. This is related to the fact that “z" is defined as a shortcut for "(x,y)”. Both of these are traditional. Every metapost graphic does at least this at its start: save x,y; currentpicture := nullpicture; currentpen:=defaultpen; so pair xx[]; would have worked just fine. In general, I would advice to stay away from single-letter variable names inside MPinclusions, and use CamelCase to avoid clashes with metafun internals. 2. You need a bigger pen to actually see the dots even if you change the variable name. :) Best wishes, Taco > 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 ? > > Thanks, > > > Damien Thiriet > ___ > 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://context.aanhet.net > archive : https://bitbucket.org/phg/context-mirror/commits/ > wiki : http://contextgarden.net > ___ Taco Hoekwater Elvenkind BV ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] troubles with \MPinclusions
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 - ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
[NTG-context] troubles with \MPinclusions
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 ? Thanks, Damien Thiriet ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___