luatex 中的命名空间

luatex 中的命名空间

是否可以从 luatex 访问寄存器中获取所有命令序列的名称。是否可以提取此名称列表?我正在寻找一种方法来跟踪在编译 latex 文档期间命名空间如何变化。

答案1

这是存储命令名称的哈希表的转储。

\documentclass{article}
\newcommand\wibble{hello}

\begin{document}

\directlua{
for i, v in pairs (tex.hashtokens())
do
texio.write_nl(i)
end}
\end{document}

它输出一个长列表,但测试

lualatex testfile.tex | grep wibble

生产

wibble

显示它包括转储之前定义的所有命令。

luatex 手册警告说这是内部哈希表,由于范围和其他问题,并非所有命令都可能已定义或可从 tex 访问。

相关内容