是否有列表或方法来确定可用/已安装的 lua 函数列表?
到目前为止,我只能找到 lua 源文件。也许我应该编写一些东西来搜索所有已安装的 lua 文件中以“function”开头的行。然后我会得到一个列表,但它仍然不会给我函数的其余细节。
还有什么更好的想法或建议吗?
答案1
你知道LuaTeX 函数简述? 再加上Lua 参考如果我没记错的话应该涵盖所有可用的功能。
答案2
这个问题很难回答,因为你问的是 lua 中“所有已定义宏的名称是什么?”的对应问题。答案是:视情况而定。
核心 luatex 函数已记录在参考手册中,正如 Patrick 在他的回答中所写。其他所有内容都从硬盘上的 lua 源文件加载,但只有当您(可能间接)请求时才会加载,就像宏/包的情况一样。
如果您只对当前 luatex 源文件中定义的 lua 函数列表感兴趣,您可以在 lua 代码块中尝试此操作:
function dump (prefix, a)
for i,v in pairs (a) do
if type(v) == "table" then
dump(prefix .. '.' .. i,v)
elseif type(v) == "function" then
print (prefix .. '.' .. i .. '()')
end
end
end
dump('_G',_G)
但有两点需要注意:
你只能知道函数名称,而不知道它们的调用约定。这和只知道宏名称一样有用(意思是:根本没有用)
对表的循环引用会使这段 lua 代码混乱,需要使其更智能以允许这种情况发生