使用 \lowercase

使用 \lowercase

如果我写:

\documentclass[a4paper]{report}

\begin{document}
\lowercase{Norma}
\end{document}

我在输出中得到了“norma”,并按我的要求将其小写。但是,如果我写:

\documentclass[a4paper]{report}
\expandafter\def\csname mw@mu\endcsname{Norma}

\begin{document}
\lowercase{\csname mw@mu\endcsname}
\end{document}

我得到的是“Norma”,带有大写字母,这是我不想要的。我尝试在\noexpand前面加上\lowercase,并在周围\lowercase加上\expandafters,但无济于事:大写字母始终在那里。我该如何解决这个问题?

答案1

命令\lowercase不会\uppercase扩展其内容;它们只是转换其参数中的字符标记并将标记列表放回到输入流中。

在您的代码中,可能发生大小写变化的是m w @ mu;事实上,如果你尝试

\lowercase{\csname MW@MU\endcsname}

你会得到相同的结果

\lowercase{\csname mw@mu\endcsname}

为了使示例更简单:

\def\Norma{Norma}
\lowercase{\Norma}

将打印

诺玛

因为符号标记不受 的影响\lowercase。如果你真的想把 的扩展小写,\Norma你必须说

\lowercase\expandafter{\Norma}

但只有第一个标记会被扩展,后面的其他标记不会被扩展。对于给出的宏,\csname您需要

\lowercase\expandafter\expandafter\expandafter{\csname mw@mu\endcsname}

相关内容