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 : [email protected] / 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
___________________________________________________________________________________