在我正在编写的调试包中,我需要分析输入流中的任意标记。可能的结果是什么\meaning<token>
?
- 宏观:(
(\protected) (\long) (\outer) macro:#1#2->...#1...#2...
确切的特征是?的存在->
) - 字符(隐式或显式):
the letter A
或begin-group character {
等。 - 原始的,例如,
\relax
\toks23
,\char"12
,\count0
, 和别的?
可能还有很多其他类型我不知道...... select font cmr10
?数学字符?盒子?
如果有一份完整的列表就好了。此外,也欢迎提供一些关于如何解析含义并从中提取有用信息的提示。
答案1
该文件的输出列出了我能想到的所有内容。(已编辑(三次)回应评论。)
\catcode`\>=\active
\long\def>#1{\immediate\write0{\meaning#1.}}
>\bgroup
>\egroup
>@
\catcode`\@=11
>@ >$ >& ># >^ >_
>\z@
>\z@skip
\newmuskip\bar >\bar
>\mscount
>\toks@
% outer macros must be handled specially
\edef\foo{\meaning\newbox}\immediate\write0{\foo.}
\long\def\longm#1{Blah #1} >\longm
\long\outer\def\olongm#1{Blah #1}
\edef\foo{\meaning\olongm}\immediate\write0{\foo.}
>\relax % Example of a TeX primitive
>\voidb@x
>\intop
>\tenrm
>\undefined
% See the comments for remarks on these five:
>\topmark
>\firstmark
>\botmark
>\splitfirstmark
>\splitbotmark
\end
答案2
这又是一个需要研究程序代码的问题,我想说:模块§296 是起点,然后你必须遵循打印命令尽管 TeX spaghetti 代码。不幸的是,后一个例程在整个代码中被分割,或多或少是整个代码(或者更确切地说,它被分割成 40 个部分)。如果您拥有 TeX 源代码的打印版本,那么 §227 就是您的朋友,它是开始的地方。这样,您将找到诸如end of alignment template
等等之类的东西。