Wolfgang Werners-Lucchini wrote:
> On 12 Apr 2008 at 9:39, [EMAIL PROTECTED] wrote:
> 
>>> \startlua
>>> mp = mplib.new ( {
>>>     hash_size = 100000,
>>>     main_memory = 2000000,
>>>     param_size = 100000,
>>> } )
>>>
>>> if mp then
>>>     res = mp:execute(
>>> "beginfig(1) draw (0,0) .. (1,1) .. (2,1); endfig; bye;" )
>>>     tex.print("[" .. tostring(res.status) .. "]")
>>>     mp:finish()
>>> end
>>> \stoplua
>> no format, so beginfig, draw etc are unknown
> 
> I thought 'plain.mem' is the default. But I see, there exists only 
> 'metafun.mem'.

If you want to "do the low-level thing", you have to read the
luatex manual carefully. MPlib is just like standalone metapost
in that it wants to load a mem file in non-ini mode, and that
file has to be generated before being used. Here is what you
wanted to do, using just the library core (I did cheat just a
little bit though, I added "dump;" at the end of my plain.mp):

% start low-level
\startlua
local function finder(name, mode, ftype)
     if mode=="w" then
         return name
     else
         return kpse.find_file(name,ftype)
     end
end
mp = mplib.new ( {
     hash_size = 100000,
     main_memory = 2000000,
     param_size = 100000,
     find_file = finder,
     ini_version = true
} )
if mp then
     res = mp:execute('plain')
     mp:finish()
end

mp = mplib.new ( {
     hash_size = 100000,
     main_memory = 2000000,
     param_size = 100000,
     find_file = finder,
} )

if mp then
     res = mp:execute("\\beginfig(1) draw (0,0) .. (1,1) .. (2,1); 
endfig; bye;" )
     tex.print("[" .. tostring(res.status) .. "]")
     mp:finish()
end
\stoplua
% stop low-level

If you just want to run plain metapost images inside of
a context document (instead of metafun), it is much easier
to use Hans' high-level API (once again, you need "dump;"
at the end of plain.mp):

\startlua
metapost.process(
   metapost.format("plain"),
   "beginfig(0); draw (0,0) .. (1,1) .. (2,1); endfig;")
\stoplua

This makes sure that all memory values are the same,
that the mem file is cached inbetween runs, removes the
need for "\\" and "bye;" etc.

Best wishes,
Taco
___________________________________________________________________________________
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  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to