使用 \小寫

使用 \小寫

如果我寫:

\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}

相關內容