Am 27.01.2014 13:12, schrieb Hans Hagen: > On 1/25/2014 1:58 PM, Peter Rolf wrote: >> Am 25.01.2014 01:07, schrieb Hans Hagen: >>> On 1/24/2014 7:41 PM, Peter Rolf wrote: >>>> Am 24.01.2014 14:45, schrieb Hans Hagen: >>>>> On 1/24/2014 1:35 PM, Peter Rolf wrote: >>>>>> Hi, >>>>>> >>>>>> I try to create a Metapost path in lua and it works so far for the >>>>>> attached example. But a call of that function from another lua >>>>>> function >>>>>> sadly fails (no path visible after call). The code seems to be >>>>>> executed >>>>>> later (the output from 'show pid;' appears somewhere later in the >>>>>> log). >>>>>> >>>>>> How can I ensure that the code is executed at runtime? >>>>> >>>>> I don't understand the issue but isn't there a >>>>> >>>>> metafun("draw p;") >>>>> >>>>> missing then? >>>>> >>>> Setting the bounding box has the same effect, as drawing something. >>>> Both methods avoid that the emtpy graphic is ignored by ConTeXt. >>>> >>>> Anyhow, the MP path is not available in metapost.variables after the >>>> function call. If there is no other way I have to call the function >>>> from >>>> the TeX side (like in the attached example). Will look into that >>>> tomorrow. >>> >>> %D We also provide an outputless run: >>> >>> \unexpanded\def\startMPcalculation >>> >> I tried that command, but couldn't get it to work on the lua side. >> >> The first pure MP line after context.startMPcalculation() raises a lua >> error and a combination with metafun() is also not working. So how to >> use this in lua? >> >> >> Anyhow, the problem is the execution time of the MP graphic. I changed >> the attached example a bit, so that you can see it. >> The inspect() in drops.foo() gives an empty table, while the second >> inspect on the TeX side shows the path "drops:foo". >> >> I need the path right after the call (it needs to be adapted to IM >> afterwards; mainly scaling and shifting). Is there a way to "force" the >> execution of the graphic without switching back to the TeX side? > > > function drops.foo(id,width,height,radius) > drops.generate_default_path(id,width,height,radius) > context(function() inspect(metapost.variables) end) -- empty here > end > > or > > function drops.bar() > inspect(metapost.variables) > end > > function drops.foo(id,width,height,radius) > drops.generate_default_path(id,width,height,radius) > context(drops.bar) -- empty here > end > > Ah, that's how it works. I'm still a luatex noob... Many thanks, Hans!!
Peter ___________________________________________________________________________________ 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 ___________________________________________________________________________________