MetaPost with Multiple Variable Sections
I have been working with MetaPost as following, which worked fine with one startMPcode section with variables, but with 2 startMPcode Metapost sections, it keeps telling me the numbers dont add up: \definefloat [floatright][figure] \setupfloat [floatright][default={right,none}] \setuplayout [backspace=20mm,width=170mm,topspace=20mm,height=250mm] \starttext \placefloatright{}{ \startMPcode pair a, b; a := (0,0); b := (50,50); draw a -- b; \stopMPcode} \placefloatright{}{ \startMPcode pair a; a := 2cm; draw fullcircle scaled (2*a); \stopMPcode} \stoptext I also have tried with the startbuffer combination as below, but this gave the same error codes. Is there any other way of working with multiple MetaPost sections with variables in a single document? \definefloat [floatright][figure] \setupfloat [floatright][default={right,none}] \setuplayout [backspace=20mm,width=170mm,topspace=20mm,height=250mm] \starttext \startbuffer \startMPcode pair a, b; a := (0,0); b := (50,50); draw a -- b; \stopMPcode \stopbuffer \floatright{}{\getbuffer} \startbuffer \startMPcode pair a; a := 2cm; draw fullcircle scaled (2*a); \stopMPcode \stopbuffer \floatright{}{\getbuffer} \stoptext
On Wed, 18 Sep 2019, Jeroen wrote:
\startMPcode pair a; a := 2cm;
You define a to be a pair and then assign it to a number. Metapost is telling you that you cannot do that:
(xpart a,ypart a) 56.6929 ! Equation cannot be performed (pair=numeric). <to be read again> ; <*> pair a; a := 2cm; draw fullcircle scaled (2*a); ; I'm sorry, but I don't know how to make such things equal. (See the two expressions just above the error message.)
You can fix that by saying numeric a; a := 2cm; One needs to keep in mind that all the code in multiple MPcode environments are run in the same scope. I occasonally use \startMPcode begingroup; ... endgroup; \stopMPcode to avoid interference. Aditya
participants (2)
-
Aditya Mahajan
-
Jeroen