マクロが中括弧なしで呼び出された場合、マクロ引数として単語全体が使用されます。

マクロが中括弧なしで呼び出された場合、マクロ引数として単語全体が使用されます。

マクロがあります:

\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 で単語を非文字で終了する文字列として認識させる必要がある場合は、はるかに複雑になります。

関連情報