\소문자 사용

\소문자 사용

내가 쓴다면 :

\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앞에 를 넣고 s 로 \lowercase둘러싸려고 했지만 아무 소용이 없었습니다. 대문자는 항상 거기에 있습니다. 이 문제를 어떻게 해결합니까?\lowercase\expandafter

답변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}

관련 정보