Eu tenho uma macro:
\newcommand{\sEmph}[1]{\textbf{\textcolor{NavyBlue}{#1}}}
Então eu posso fazer:
Some text is in \sEmph{blue}, and some in black.
com este resultado:
Mas se eu omitir os colchetes apenas a letra b fica azul, assim:
Some text is in \sEmph blue, and some in black.
P:Existe uma maneira de fazer minha macro funcionar com palavrassem utilizaraparelho ortodôntico?
Responder1
Você pode ir
\def\zz#1 {\textcolor{blue}{#1} }
então \zz
tem seu argumento delimitado por um espaço
\zz word like this
fará com que word
fique azul, mas deve ser delimitado por um espaço explícito.
\zz word\ like this
faria word\ like
azul e
... \zz word}..
gerará um erro.
Um dos principais objetivos de design do LaTeX é fornecer sintaxe consistente para todos os comandos, argumentos obrigatórios em {}
argumentos opcionais, []
etc., portanto, o LaTeX não fornece suporte real para esses argumentos delimitados e geralmente é uma má ideia usá-los no nível superior do documento.
Responder2
Uma solução fácil é a seguinte:
\def\sEmph#1+{\textbf{\textcolor{NavyBlue}{#1}}}
, mas você deve usar o caractere + para finalizar a palavra. Se você precisar que o (La)TeX reconheça palavras como sequências de letras terminadas por qualquer não-letra, é muito mais complicado.