\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でみました\expandafterが、効果はありませんでした。常に大文字が表示されています。これを修正するにはどうすればよいでしょうか?

答え1

コマンドは内容を展開せ\lowercase\uppercase、引数内の文字トークンを変換し、トークン リストを入力ストリームに戻すだけです。

コード内で大文字と小文字の変更の可能性があるのはm w @ mとですu。実際、

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

関連情報