是否可以从 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 访问。