MetaPost 内から Lua を使用する

MetaPost 内から Lua を使用する

環境内から Lua 関数を実行することは可能ですかluamplib? runscript を使用したこの例は機能しませんが、私がやりたいことを表しています:

\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}

最新のTL 2023

答え1

これは可能です。次のように、returnに渡す文字列にステートメントを追加するだけです。runscript

\begin{mplibcode}
    beginfig(1);
        a := runscript("return getA()") ;
        draw fullcircle scaled a ; 
    endfig ;
\end{mplibcode}

これにより、意図したとおり 2cm の円が描画されます。

関連情報