MakeLowercase 有模态命令吗?

MakeLowercase 有模态命令吗?

类比于问题我一直在想什么是对\lowercase?( ...和,或和等,它们似乎也是文本块命令,如所解释的\bfseries\textbf
uppercase\MakeLowercaseMakeUppercase这里

是否存在“开关”/“声明”/“模态命令”(这里的正确术语是什么?它们之间有区别吗?)可以让人们将某些内容转换为小写/大写,就像使用例如一样\scshape,即,不是作为带花括号的文本块命令?或者如何创建这样的命令?我在论坛上找不到任何线索。

答案1

确实没有这样的命令。

如果你有一个充当开关的命令,比如字体更改,\bfseries那么很容易制作一个接受参数并在本地组中应用原始命令的命令,所以\textbf(简化一点)只是

\def\textbf#1{{\bfseries #1}}

然而,反过来做就比较难了。\MakeUppercase是一个包装器\edef\uppercase并且这两个原语都需要一个{}要操作的标记的分隔列表。

您可以将大写字母和小写字母作为模式切换\scshape,因为这种字体形状很常见,但是大多数字体集中都没有全大写字体。 \uppercase(and so \MakeUppercase) 不是字体更改,而是标记级别转换,例如,将参数中的每个标记替换为指定的替换aA相反,如果使用全大写字体,则a仍然是a(ASCII/Unicode 十六进制 61),但会使用看起来像这样的字形A当渲染时。

答案2

如果需要,你可以将这样的控制序列定义为宏。以下代码定义了\lowc

\def\lowc{\expandafter\lowercaseA\expandafter{\iffalse}\fi}
\long\def\lowercaseA#1{\lowercase{#1}\egroup}

Test: {\bf TEXT \lowc AHA UFF}

\bye

相关内容