我可以在哪里获取有关 lualatex 中 lua 功能的信息?

我可以在哪里获取有关 lualatex 中 lua 功能的信息?

通常情况下_G table/_ENV table查询会在控制台中返回 38 个条目,但当我们打开lualatex它时,它会返回 (121 减去正常 38 减去下面我的 3 个函数) = 80 个额外条目。有些是不言自明的,例如套接字、unicode、版本等。但其他则不是。

在这 80 个附加函数中,有一个typestex,总共 100 个函数中我只用了两个,即printsprint,其余的我不知道如何使用!此外,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 可能会发现一些意外,但一般来说,您会找到所有条目的文档。

相关内容