通常情况下_G table
/_ENV table
查询会在控制台中返回 38 个条目,但当我们打开lualatex
它时,它会返回 (121 减去正常 38 减去下面我的 3 个函数) = 80 个额外条目。有些是不言自明的,例如套接字、unicode、版本等。但其他则不是。
在这 80 个附加函数中,有一个types
是tex
,总共 100 个函数中我只用了两个,即print
和sprint
,其余的我不知道如何使用!此外,tex
里面还有 17 个表。
在我的安装文件夹中,我有一个readme.en.html
,里面有超过 3k 个文档链接pdf
,我认为这些链接都是package
定向的,几乎不可能有人浏览完所有这些链接。据我所知,LuaTeX 没有像 Visual Studio、Qt、IntelliJ IDEA 这样的 IDE,可以列出所有内容types
以及相关信息以帮助我们更好地使用它!它是否有关于使用 lualatex 加载的 80 个附加条目以及这些函数/类型的功能的详细文档供最终用户使用?
.lua
为了获取这些信息,我在一个文件中包含了以下三个函数:
local x
-- lists contents of _G Table
function test1()
x = 0
for k, v in pairs(_G) do
x = x + 1
tex.print(string.format([[%d & $%s$ & %s \\]], x, k, v))
end
end
-- lists functions of tex table
function test2()
x = 0
for k, v in next, tex do
if type(v) == 'function' then
x = x + 1
tex.print(string.format([[%d & $%s$ & %s \\]], x, k, v))
end
end
end
--lists types other than function of tex table
function test3()
x = 0
for k, v in pairs(tex) do
if type(v) ~= "function" then
x = x + 1
tex.print(string.format([[%d & $%s$ & %s & %s \\]], x, k, v, type(v)))
end
end
end
在我的tex
档案里,有这些:
\documentclass{report}
\usepackage[a4paper, margin = 1in]{geometry}
\usepackage{longtable}
\directlua{require("test")}
\begin{document}
\centering \_G-Table
\begin{longtable}{p{.1\textwidth} | p{.4\textwidth} | p{.5\textwidth}}
\hline Sl. & Function / Table / etc. & Address \& Info \\ \hline
\endhead \hline \endfoot \hline \endlastfoot
\directlua{test1()}
\end{longtable}
\centering Functions in $tex$ Table
\begin{longtable}{p{.1\textwidth} | p{.4\textwidth} | p{.5\textwidth}}
\hline Sl. & Function Name & Address \\ \hline
\endhead \hline \endfoot \hline \endlastfoot
\directlua{test2()}
\end{longtable}
\centering Non-Function types in $tex$ Table
\begin{longtable}{p{.1\textwidth} | p{.2\textwidth} | p{.4\textwidth} | p{.3\textwidth}}
\hline Sl. & Name & Address & Type \\ \hline
\endhead \hline \endfoot \hline \endlastfoot
\directlua{test3()}
\end{longtable}
\end{document}
答案1
所有额外的预加载表都记录在 luatex 手册 ( texdoc luatex
) 中,这些表中包含的大多数函数也是如此。有时,一些实验性函数在记录之前就出现在源代码中,因此遍历 Lua 可能会发现一些意外,但一般来说,您会找到所有条目的文档。