
Elrespuestas a esta preguntamencione comandos como \@author
y \@director
y latex.ltx está lleno de ellos. Sin embargo, cuando lo uso \@author
en mi documento, simplemente muestra la palabra "autor". ¿Qué significan los @
nombres de comando?
Respuesta1
Al @
principio del nombre de un comando es una forma común de implementar unespacio de nombres privado,es decir, definir comandos que están ocultos para el usuario. Por lo tanto, el usuario no puede modificarlos sin querer. Este es un cinturón de seguridad.
El identificador de un comando (el texto que sigue al \
carácter) debe ser una secuencia de letras. La idea de TeX de qué carácter es una letra o no está definida por la tabla decódigos de gato,que se puede reconfigurar en tiempo de ejecución.
A muchos paquetes les resulta útil definirprivadomacros a las que el usuario no puede acceder fácilmente, evitando así que el usuario las modifique o utilice sin darse cuenta. Esto se logra con catcodes de la siguiente manera:
- Dispóngalo de modo que
@
tenga el código cat de una letra. - Defina macros privadas, teniendo la letra
@
en sus nombres. - Dispóngalo de modo que
@
ya no tenga el código cat de una letra.
Cuando el código del usuario toma el control del flujo de ejecución después del paso 3, no puede interactuar inadvertidamente con macros que tengan una @
en su nombre.