是否可以在环境中运行 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 厘米的圆圈。