如果我有一个字母/字符,我可以使用\number
反引号命令输出其 ASCII 值:
*\typeout{\number`a}
97
如果我有“97”,并且想在终端中显示“a”,该怎么办?我想到了\char
- 但请注意\char
排版,它不会输出到终端(根据评论删除了\char"97
十六进制用法):
*\typeout{\char97}
\char 97
这里应该使用什么正确的命令?
答案1
{\uccode`A=97
\uppercase{\typeout{== A ==}}}
将输出字符代码为 97 的字符
答案2
如果您有十六进制值而不是 ASCII 码值,则可以使用^^61
来表示a
。十六进制数字必须是小写(对于字母 af)。如果您只有 ASCII 码数字,则必须构建自己的表格(如果您想将此类输出与其他材料混合)或使用\uccode
David 的巧妙技巧,但后者实际上无法与其他任何东西很好地混合。构建此类表格的一种简单方法是
\makeatletter
\def\asciichar#1{\@nameuse{ascii@\number#1}}
\@namedef{ascii@97}{a}
\@namedef{ascii@98}{b} ... % and all the others
\makeatother
您可以添加一些安全检查来查看内部命令是否实际定义等等。