
Ist es möglich, eine Lua-Funktion aus einer Umgebung heraus auszuführen luamplib
? Dieses Beispiel mit Runscript funktioniert nicht, zeigt aber, was ich gerne mache:
\documentclass{article}
\usepackage{iftex,luamplib}
\begin{filecontents}[force,noheader]{foo.lua}
function getA()
return "2cm"
end
\end{filecontents}
\begin{document}
\directlua{kpse.set_program_name("luatex") require "foo.lua" }
\begin{mplibcode}
beginfig(1);
a := runscript("getA()") ;
draw fullcircle scaled a ;
endfig ;
\end{mplibcode}
\end{document}
aktuelle TL 2023
Antwort1
Dies ist möglich: Sie benötigen lediglich eine return
Anweisung in der Zeichenfolge, die Sie übergeben runscript
, etwa so:
\begin{mplibcode}
beginfig(1);
a := runscript("return getA()") ;
draw fullcircle scaled a ;
endfig ;
\end{mplibcode}
Dadurch wird, wie beabsichtigt, ein Kreis mit 2 cm Durchmesser gezeichnet.