Palabra completa como argumento de macro cuando se llama a la macro sin llaves

Palabra completa como argumento de macro cuando se llama a la macro sin llaves

Tengo una macro:

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

Entonces puedo hacer:

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

con este resultado:

ingrese la descripción de la imagen aquí

Pero si omito las llaves solo la letra b es azul, así:

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

ingrese la descripción de la imagen aquí

P:¿Hay alguna manera de hacer que mi macro funcione con palabras?sin uso¿tirantes?

Respuesta1

Se puede ir

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

entonces \zztiene su argumento delimitado por un espacio

\zz word like this

se volverá wordazul, pero debe estar delimitado por un espacio explícito.

 \zz word\ like this

haría word\ likeazul y

... \zz word}..

generará un error.

Un objetivo principal del diseño de LaTeX es brindar una sintaxis consistente a todos los comandos, argumentos obligatorios en {}argumentos opcionales, []etc., por lo que LaTeX no brinda soporte real para estos argumentos delimitados y generalmente es una mala idea usarlos en el nivel superior del documento.

Respuesta2

Una solución fácil es la siguiente: \def\sEmph#1+{\textbf{\textcolor{NavyBlue}{#1}}}, pero debes usar el carácter + para terminar la palabra. Si necesita (La)TeX para reconocer palabras como cadenas de letras terminadas en cualquier otra cosa que no sea una letra, es mucho más complicado.

información relacionada