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

正如您所期望的,这将绘制一个 2 厘米的圆圈。

相关内容