如何获取 Lua(La)TeX 中可用函数的列表

如何获取 Lua(La)TeX 中可用函数的列表

是否有列表或方法来确定可用/已安装的 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 代码混乱,需要使其更智能以允许这种情况发生

相关内容