From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/86096 Path: news.gmane.org!not-for-mail From: Peter Rolf Newsgroups: gmane.comp.tex.context Subject: Re: runtime problem with metafun() code Date: Sat, 25 Jan 2014 13:58:20 +0100 Message-ID: <52E3B4EC.4020001@gmx.net> References: <52E25E0F.3060304@gmx.net> <52E26E92.1080401@wxs.nl> <52E2B3CC.7080609@gmx.net> <52E3003A.7010509@wxs.nl> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090309080308090908020304" X-Trace: ger.gmane.org 1390654716 29342 80.91.229.3 (25 Jan 2014 12:58:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 25 Jan 2014 12:58:36 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sat Jan 25 13:58:44 2014 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([5.39.185.229]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W72ot-00074D-8A for gctc-ntg-context-518@m.gmane.org; Sat, 25 Jan 2014 13:58:43 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id AB059101EE; Sat, 25 Jan 2014 13:58:42 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 2R6o2SnFf1EK; Sat, 25 Jan 2014 13:58:37 +0100 (CET) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id 644AD101E6; Sat, 25 Jan 2014 13:58:37 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 31120101E6 for ; Sat, 25 Jan 2014 13:58:36 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id MwDQDnp2Suyz for ; Sat, 25 Jan 2014 13:58:35 +0100 (CET) Original-Received: from filter2-ams.mf.surf.net (filter2-ams.mf.surf.net [192.87.102.70]) by balder.ntg.nl (Postfix) with ESMTP id 45CBD101E1 for ; Sat, 25 Jan 2014 13:58:35 +0100 (CET) Original-Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by filter2-ams.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id s0PCwY1C010600 for ; Sat, 25 Jan 2014 13:58:34 +0100 Original-Received: from [192.168.178.3] ([37.24.148.169]) by mail.gmx.com (mrgmx102) with ESMTPSA (Nemesis) id 0LgeFd-1VU4xI3y7h-00nyHz for ; Sat, 25 Jan 2014 13:58:34 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 In-Reply-To: <52E3003A.7010509@wxs.nl> X-Enigmail-Version: 1.6 X-Provags-ID: V03:K0:t1cr2ZMJxLPkOwAiNNq6viOrRcX59VJ+zk3TJFS2PGKzTv61Jhd w3dEWzxBQmDMHaLqos6/VruHB3bgMwLGqQFSQE59UBbXeRbf9W8RTL9RWnOFcM3rR/axeks QQWmXPNgakykISUquxXtMe7cjUmPXcd0yLAFp/RDdvize4w7MvWoEtkc1RLJ6zmcOoewaTu tYFnldqeMRw273/UayU7A== X-Bayes-Prob: 0.0001 (Score 0, tokens from: ntg-context@ntg.nl, base:default, @@RPTN) X-CanIt-Geo: ip=212.227.15.19; country=DE; latitude=51.0000; longitude=9.0000; http://maps.google.com/maps?q=51.0000,9.0000&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0QLicWyzs - 03668c9cecd0 - 20140125 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 192.87.102.70 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.14 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:86096 Archived-At: This is a multi-part message in MIME format. --------------090309080308090908020304 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 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? Peter --------------090309080308090908020304 Content-Type: text/x-lua; name="mplua.lua" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="mplua.lua" thirddata = thirddata or { } thirddata.drops = thirddata.drops or { } local drops = thirddata.drops local metafun = context.metafun local format,todimen = string.format, string.todimen local floor = math.floor -- http://lua-users.org/wiki/SimpleRound local function round(num, idp) local mult = 10^(idp or 0) return floor(num * mult + 0.5) / mult end function drops.numberofpixels(n,idp) local dimenfactor = 1/tex.pdfpxdimen return round(todimen(n)*dimenfactor,idp) end local numberofpixels = drops.numberofpixels function drops.generate_default_path(id,width,height,radius) local w,h,r w = numberofpixels(width); h = numberofpixels(height); r = numberofpixels(radius) metafun.start() metafun("save p,pid; path p; string pid;") -- metafun("id := \"drops:boxshadow_w%sh%sr%s\";",w,h,r) metafun("pid := \"%s\";",id) --metafun("show pid;") -- ok metafun("p:= unitsquare xyscaled(%s,%s) smoothed %s;",w,h,r) metafun("passvariable(pid,p);") metafun("setbounds currentpicture to boundingbox(p);") -- 'activator'; void graphics are ignored metafun.stop() end function drops.foo(id,width,height,radius) drops.generate_default_path(id,width,height,radius) inspect(metapost.variables) -- empty here end --------------090309080308090908020304 Content-Type: text/plain; charset=windows-1252; name="mplua.mkiv" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="mplua.mkiv" XGN0eGxvYWRsdWFmaWxle21wbHVhfXt9DQoNCg0KXHN0YXJ0dGV4dA0KXGN0eGx1YXttZXRh cG9zdC5zaG93bG9nID0gdHJ1ZX0NCg0KJVxjdHhsdWF7dGhpcmRkYXRhLmRyb3BzLmdlbmVy YXRlX2RlZmF1bHRfcGF0aCgiZHJvcHM6Ym94c2hhZG93LXcxOTloMTAwcjEwIiwiMjAwcHQi LCIxMDBwdCIsIjEwcHQiKX0NCiVcY3R4bHVhe2luc3BlY3QobWV0YXBvc3QudmFyaWFibGVz KX0NCg0KXGN0eGx1YXt0aGlyZGRhdGEuZHJvcHMuZm9vKCJkcm9wczpmb28iLCIyMDBwdCIs IjEwMHB0IiwiMTBwdCIpfQ0KXGN0eGx1YXtpbnNwZWN0KG1ldGFwb3N0LnZhcmlhYmxlcyl9 ICUgb2sgaGVyZQ0KDQoNClxzdG9wdGV4dA0K --------------090309080308090908020304 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ 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 ___________________________________________________________________________________ --------------090309080308090908020304--