Verwenden von Lua innerhalb von MetaPost

Verwenden von Lua innerhalb von MetaPost

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 returnAnweisung 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.

verwandte Informationen