중괄호 없이 매크로를 호출할 때 전체 단어를 매크로 인수로 사용

중괄호 없이 매크로를 호출할 때 전체 단어를 매크로 인수로 사용

매크로가 있습니다.

\newcommand{\sEmph}[1]{\textbf{\textcolor{NavyBlue}{#1}}}

그러면 다음과 같이 할 수 있습니다.

Some text is in \sEmph{blue}, and some in black.

이 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

그러나 중괄호를 생략하면 다음과 같이 문자 b만 파란색이 됩니다.

Some text is in \sEmph blue, and some in black.

여기에 이미지 설명을 입력하세요

큐:매크로가 단어에 대해 작동하도록 하는 방법이 있나요?사용하지 않고바지 멜빵?

답변1

당신은 갈 수 있습니다

\def\zz#1 {\textcolor{blue}{#1} }

\zz인수는 공백으로 구분됩니다 .

\zz word like this

파란색 으로 표시되지만 word명시적인 공백으로 구분되어야 합니다.

 \zz word\ like this

word\ like파란색을 만들 것이고

... \zz word}..

오류가 발생합니다.

{}LaTeX의 주요 설계 목표는 모든 명령, 선택적 인수 의 필수 인수 등에 일관된 구문을 제공하는 것입니다 []. 따라서 LaTeX는 이러한 구분 인수에 대한 실제 지원을 제공하지 않으며 일반적으로 문서의 최상위 수준에서 이를 사용하는 것은 좋지 않습니다.

답변2

쉬운 해결책은 다음과 같습니다. \def\sEmph#1+{\textbf{\textcolor{NavyBlue}{#1}}}단, 단어를 종료하려면 + 문자를 사용해야 합니다. 단어를 문자가 아닌 문자로 끝나는 문자열로 인식하기 위해 (La)TeX가 필요한 경우 훨씬 더 복잡합니다.

관련 정보