Hi Dalyoung,

More a workaround than a proper solution, but in case this helps it seems
that replacing

\setupMPvariables[sampleGraph][mySize=3cm]

with

\setupMPvariables[mySize=3cm]

gives the correct graph. Cheers,
Florent

Le sam. 3 janv. 2026 à 15:46, Jeong Dal via ntg-context <[email protected]>
a écrit :

> Dear all,
>
> First, Happy New Year!
>
> I tried to draw a small figure using the following MetaFun code.
>
> The problem is the last line.
>
> If I run  \processMPbuffer[sampleGraph] then it works well and draw the
> figure.
> But, if I add another buffer name like
> \processMPbuffer[sampleGraph, edgeLabel]
> Or
> \processMPbuffer[sampleGraph, multiGraph]
> Then an error occurred. In the log file, I found that
>
>
> metafun         > log > error: Not implemented: (pair)*(color)
> metafun         > log >
> metapost        > trace > <error> (0.30901699437494745,0.95105651629515353)
> metapost        > trace > <to be read again> ;
> metapost        > trace > <for(1)> z [ (EXPR 0) ] = dir ( 360 * (EXPR 0) /
> (5) + (0) ) * ((0,0,0)) ;  ENDFOR
>
> As you see here, 'mySize = (0,0,0)' not ‘2cm'.
>
> I don’t see what is the problem.
>
> Thank you for your reading.
>
> Best wishes,
>
> Dalyoung
>
>
>
> \startMPinitializations
> path p,q,r;
> numeric u, size; u := 1cm;
> color myColor[];
> picture pic[];
>
> def setPoints(expr n,size,rot) =
> z[0] = origin;
> for i = 1 upto n:
> z[i] = dir(360*i/n+rot)*size;
> endfor;
> enddef;
> def labelPoints (text m)(expr ss) =
> numeric kk; kk :=0;
> for i = m:
> freedotlabel(textext("$"& substring(kk,kk+1) of ss &"$"),z[i],origin);
> kk := kk + 1;
> endfor;
> enddef;
> \stopMPinitializations
>
> \startbuffer[sampleGraph]
> setPoints(5,\MPvar{mySize},0);
> labelPoints(1,2,3,4,5)("uvwxy");
> draw z1--z2--z3--z4--z5--z1--z3 withpen pencircle scaled 1.2pt;
> \stopbuffer
> \startbuffer[edgeLabel]
> label.ulft(textext("$e_1$"),.5(z1+z2));
> label.lft(textext("$e_2$"),.5(z2+z3));
> label.bot(textext("$e_3$"),.5(z3+z4));
> label.rt(textext("$e_4$"),.5(z4+z5));
> label.rt(textext("$e_5$"),.5(z5+z1));
> \stopbuffer
> \startbuffer[multiGraph]
> draw z2{dir(225)}..{dir(330)}z3 withcolor darkred;
> draw z4{dir(210)}..(z4+.9*down*u)..{dir(210)}z4 withcolor darkred;
> \stopbuffer
> \starttext
>
> \setupMPvariables[sampleGraph][mySize=3cm]
> \processMPbuffer[sampleGraph,multiGraph]
> \stoptext
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : [email protected] /
> https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
> webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
> archive  : https://github.com/contextgarden/context
> wiki     : https://wiki.contextgarden.net
>
> ___________________________________________________________________________________
>
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : [email protected] / 
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________

Reply via email to