![TeX mouth 中的标记列表](https://linux22.com/image/265212/TeX%20mouth%20%E4%B8%AD%E7%9A%84%E6%A0%87%E8%AE%B0%E5%88%97%E8%A1%A8.png)
是否可以获取来自 TeX“mouth”的标记列表?如果我理解正确:在 mouth 中,所有宏、条件和特殊操作(如 \the 和 \input)都会被展开,然后进入“stomach”。
答案1
这个问题相当不明确。TeX 的宏处理器不像(比如说)C 预处理器,所有宏扩展都先进行,然后将扩展的源传递给编译器。在 TeX 中,宏只是根据需要进行扩展,并与不可扩展的赋值交错,这可以改变未来宏扩展的结果。
因此,不可能将乳胶文档扩展为仅由 TeX 基元组成。
可以强制扩展以下标记,直到下一个标记不可扩展,以便您可以检查该不可扩展的标记,但这可能不是您想要的。
答案2
据我所知,Knuth 没有使用正式的语言技术来解析 TeX,只是使用了临时方法。我怀疑这样的列表是否正式存在(几年前他脑子里只有几十个零散的事实……),恐怕要得到它,你必须仔细梳理、耐心等待,还要有 TeX 源代码的副本。
(尽管如此,我还是希望证明我错了。)