Can't use MetaFun with mplib anymore
Dear list, Something has changed in MetaFun and it can no longer be used in plain LuaTeX, with neither of luatex test.tex mtxrun --script plain test.tex This is the error: >> LUATEXFUNCTIONALITY >> "mp.print(LUATEXFUNCTIONALITY)" ! Equation cannot be performed (numeric=string). MWE is below, as always. Cheers, Henri --- \directlua{ local mpkpse = kpse.new(arg[0], "mpost") local function finder(name, mode, ftype) if mode == "w" then return name else return mpkpse:find_file(name,ftype) end end local mpx = mplib.new { find_file = finder } local ret = mpx:execute[[ boolean mplib ; mplib := true ; input metafun.mp ; ]] print(ret.log) } \bye
On 3/14/2019 5:56 AM, Henri Menke wrote:
Dear list,
Something has changed in MetaFun and it can no longer be used in plain LuaTeX, with neither of
luatex test.tex mtxrun --script plain test.tex
This is the error:
>> LUATEXFUNCTIONALITY >> "mp.print(LUATEXFUNCTIONALITY)" ! Equation cannot be performed (numeric=string).
hm, that can be mp.print(LUATEXFUNCTIONALITY or 0) but ... i'm surprised you can use metafun in plain at all ... i never test that and to be honest am not too motivated to support mpiv code in generic either .. better use \startMPpage \stopMPpage with context and then include the pdf Hans
MWE is below, as always.
Cheers, Henri
---
\directlua{ local mpkpse = kpse.new(arg[0], "mpost")
local function finder(name, mode, ftype) if mode == "w" then return name else return mpkpse:find_file(name,ftype) end end
local mpx = mplib.new { find_file = finder } local ret = mpx:execute[[ boolean mplib ; mplib := true ; input metafun.mp ; ]]
print(ret.log) } \bye
___________________________________________________________________________________ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On 3/14/19 8:49 PM, Hans Hagen wrote:
On 3/14/2019 5:56 AM, Henri Menke wrote:
Dear list,
Something has changed in MetaFun and it can no longer be used in plain LuaTeX, with neither of
luatex test.tex mtxrun --script plain test.tex
This is the error:
>> LUATEXFUNCTIONALITY >> "mp.print(LUATEXFUNCTIONALITY)" ! Equation cannot be performed (numeric=string).
hm, that can be
mp.print(LUATEXFUNCTIONALITY or 0)
but ... i'm surprised you can use metafun in plain at all ... i never test that and to be honest am not too motivated to support mpiv code in generic either .. better use
Until TeX Live 2018, MetaFun worked in plain (at least the subset I'm using). It would be a shame if the support would end. I also think that there are quite a number of users. The number of posts on TeX Stack Exchange mentioning luamplib with metafun is not negligible. https://tex.stackexchange.com/search?q=mplibsetformat I (and probably a lot of other people) would really appreciate if you could apply Luigi's fix, so we can continue do enjoy MetaFun, even outside ConTeXt. Cheers, Henri
\startMPpage \stopMPpage
with context and then include the pdf
Hans
MWE is below, as always.
Cheers, Henri
---
\directlua{ local mpkpse = kpse.new(arg[0], "mpost")
local function finder(name, mode, ftype) if mode == "w" then return name else return mpkpse:find_file(name,ftype) end end
local mpx = mplib.new { find_file = finder } local ret = mpx:execute[[ boolean mplib ; mplib := true ; input metafun.mp ; ]]
print(ret.log) } \bye
___________________________________________________________________________________
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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
On 3/14/2019 10:00 AM, Henri Menke wrote:
On 3/14/19 8:49 PM, Hans Hagen wrote:
On 3/14/2019 5:56 AM, Henri Menke wrote:
Dear list,
Something has changed in MetaFun and it can no longer be used in plain LuaTeX, with neither of
luatex test.tex mtxrun --script plain test.tex
This is the error:
>> LUATEXFUNCTIONALITY >> "mp.print(LUATEXFUNCTIONALITY)" ! Equation cannot be performed (numeric=string).
hm, that can be
mp.print(LUATEXFUNCTIONALITY or 0)
but ... i'm surprised you can use metafun in plain at all ... i never test that and to be honest am not too motivated to support mpiv code in generic either .. better use
Until TeX Live 2018, MetaFun worked in plain (at least the subset I'm using). It would be a shame if the support would end. I also think that there are quite a number of users. The number of posts on TeX Stack Exchange mentioning luamplib with metafun is not negligible. https://tex.stackexchange.com/search?q=mplibsetformat
ok, as long as no one expects me to check functionality in plain usage things like special colors and shading and some font related options won't work, so in that case the stand alone graphics are better (there are quite some metafun macros that assume the lua extensions that context provides and some upcoming extra modules, for sure will not work in plain ... no problem as long as these macros are not used ...)
I (and probably a lot of other people) would really appreciate if you could apply Luigi's fix, so we can continue do enjoy MetaFun, even outside ConTeXt. i'll comment the line
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On Thu, Mar 14, 2019 at 5:56 AM Henri Menke
Dear list,
Something has changed in MetaFun and it can no longer be used in plain LuaTeX, with neither of
luatex test.tex mtxrun --script plain test.tex
This is the error:
>> LUATEXFUNCTIONALITY >> "mp.print(LUATEXFUNCTIONALITY)" ! Equation cannot be performed (numeric=string).
MWE is below, as always.
Cheers, Henri
---
\directlua{ local mpkpse = kpse.new(arg[0], "mpost")
local function finder(name, mode, ftype) if mode == "w" then return name else return mpkpse:find_file(name,ftype) end end
local mpx = mplib.new { find_file = finder } local ret = mpx:execute[[ boolean mplib ; mplib := true ; input metafun.mp ; ]]
print(ret.log) } \bye
in mp-mlib.mpiv it seems that we should have string LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; instead of numeric LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; Now I have tex/texmf-context/metapost/context/base/mpiv$ grep -r LUATEXFUNCTIONALITY mp-mlib.mpiv:%numeric LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; mp-mlib.mpiv:string LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; and your example looks ok. -- luigi
On 3/14/2019 8:51 AM, luigi scarso wrote:
On Thu, Mar 14, 2019 at 5:56 AM Henri Menke
mailto:henrimenke@gmail.com> wrote: Dear list,
Something has changed in MetaFun and it can no longer be used in plain LuaTeX, with neither of
luatex test.tex mtxrun --script plain test.tex
This is the error:
>> LUATEXFUNCTIONALITY >> "mp.print(LUATEXFUNCTIONALITY)" ! Equation cannot be performed (numeric=string).
MWE is below, as always.
Cheers, Henri
---
\directlua{ local mpkpse = kpse.new(arg[0], "mpost")
local function finder(name, mode, ftype) if mode == "w" then return name else return mpkpse:find_file(name,ftype) end end
local mpx = mplib.new { find_file = finder } local ret = mpx:execute[[ boolean mplib ; mplib := true ; input metafun.mp http://metafun.mp ; ]]
print(ret.log) } \bye
in mp-mlib.mpiv it seems that we should have string LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; instead of numeric LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; Now I have tex/texmf-context/metapost/context/base/mpiv$ grep -r LUATEXFUNCTIONALITY mp-mlib.mpiv:%numeric LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ; mp-mlib.mpiv:string LUATEXFUNCTIONALITY ; LUATEXFUNCTIONALITY := runscript("mp.print(LUATEXFUNCTIONALITY)") ;
and your example looks ok.
as currently the variable is isn't used we can also comment it Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
Henri Menke
-
luigi scarso