O que significa “@” no início de um nome de comando?

O que significa “@” no início de um nome de comando?

Orespostas para esta perguntamencione comandos como \@authore \@director, e latex.ltx está cheio deles. Porém, quando uso \@authorno 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:

  1. Organize de forma que @tenha o código de gato de uma carta.
  2. Defina macros privadas, tendo a letra @em seus nomes.
  3. 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.

informação relacionada