On Sun, 5 Dec 2010, Li Yanrui (李延瑞) wrote:
Hi,See the following example: \starttext \startMPcode u = 1cm; xmin = -2.6u; xmax = 4u; drawarrow (xmin,0)--(xmax,0); \stopMPcode \stoptext It can be compiled rightly. But when I add the 'label' line into it, see: \starttext \startMPcode u = 1cm; xmin = -2.6u; xmax = 4u; drawarrow (xmin,0)--(xmax,0); label.lft("hello",(0, 0)); \stopMPcode \stoptext Now it can not be compiled and luatex outputs: mplib : loading 'metafun.mp' (experimental metapost version two) mplib > mp terminal: ! Redundant equation. <to be read again> ; <*> u = 1cm; xmin = -2.6u; xmax = 4u; drawarrow (xmin,0)--(xmax,0); label.lf... ! Redundant equation. <to be read again> Is this a bug or it always need to use 'save' macro to hold these local variable in metafun?
When a label (or btex ... etex) is present, ConTeXt processes the MP code twice: once to typeset the labels and then to place to labels. You get a redundant equation in the second pass.
The easiest way to prevent this is to use := instead of = Aditya
___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________