“\uppercase{a\lowercase{bC}}” 在 TeX 中生成“Abc”吗?

“\uppercase{a\lowercase{bC}}” 在 TeX 中生成“Abc”吗?

在 TeX 中,\uppercase{a\lowercase{bC}}生成的Abc不是ABC,为什么?据我所知,TeX 会先运行内层组,然后再运行外层组,所以我认为应该是ABC,甚至\uppercase{a\expandafter{\lowercase{bC}}}不能改为bcBC你能告诉我原因吗?

答案1

\uppercase和原\lowercase语被定义为将输入的标记转换为适当的大小写映射输出。它们执行扩展并且它们本身不可扩展(因此例如\expandafter{\lowercase{ABC}}与 相同{\lowercase{ABC}})。

可以在执行扩展的宏中实现大小写更改改变大小写,或者完全避免使用和\uppercase\lowercase这就是expl3in 的作用\text_uppercase:n——你得到了“类似函数”的结果,但这是设计选择等级。

答案2

你的假设是错误的。TeX 从 开始\uppercase,因此它将内容物送下去,胃就会反流

A\lowercase{BC}

在输入流中,因为该\uppercase操作仅作用于字符标记。因此,执行完 also 之后的最终结果\lowercase

Abc

已经输入了。

相关内容