
Orespostas para esta perguntamencione comandos como \@author
e \@director
, e latex.ltx está cheio deles. Porém, quando uso \@author
no meu documento, ele apenas exibe a palavra "autor". O que significam os @
nomes dos comandos?
Responder1
O @
início de um nome de comando é uma maneira comum de implementar umespaço para nome privado,isto é, para definir comandos que estão ocultos ao usuário. O usuário não pode, portanto, modificá-los inadvertidamente. Este é um cinto de segurança.
O identificador de um comando – o texto após o \
caractere – deve ser uma sequência de letras. A ideia do TeX de qual caractere é uma letra ou não é definida pela tabela decódigos de gato,que pode ser reconfigurado em tempo de execução.
Muitos pacotes acham útil definirprivadomacros que não podem ser facilmente acessadas pelo usuário, evitando assim que o usuário as modifique ou utilize inadvertidamente. Isso é conseguido com catcodes da seguinte maneira:
- Organize de forma que
@
tenha o código de gato de uma carta. - Defina macros privadas, tendo a letra
@
em seus nomes. - Organize para que
@
não tenha mais o código de gato de uma carta.
Quando o código do usuário assume o controle do fluxo de execução após a etapa 3, ele não pode interagir inadvertidamente com macros que tenham um @
no nome.