
DerAntworten auf diese FrageErwähnen Sie Befehle wie \@author
und \@director
, und latex.ltx ist voll davon. Wenn ich jedoch \@author
in meinem Dokument verwende, wird nur das Wort „Autor“ ausgegeben. Was bedeuten die @
Befehlsnamen in?
Antwort1
Der @
am Anfang eines Befehlsnamens ist eine übliche Methode zur Implementierung einesprivater Namespace,d.h., Befehle zu definieren, die vor dem Benutzer verborgen sind. Der Benutzer kann sie daher nicht versehentlich ändern. Dies ist ein Sicherheitsgurt.
Der Bezeichner eines Befehls – der Text nach dem \
Zeichen – muss eine Buchstabenfolge sein. TeXs Vorstellung davon, welches Zeichen ein Buchstabe ist und welches nicht, wird durch die Tabelle derKatzencodes,die zur Laufzeit neu konfiguriert werden können.
Viele Pakete finden es nützlich, zu definierenPrivatMakros, auf die der Benutzer nicht leicht zugreifen kann, sodass der Benutzer sie nicht versehentlich ändern oder verwenden kann. Dies wird mit Catcodes auf folgende Weise erreicht:
- Ordnen Sie es so an, dass
@
der Catcode einen Buchstaben hat. - Definieren Sie private Makros,
@
deren Namen den Buchstaben enthalten. - Ordnen Sie es so an, dass
@
der Catcode eines Buchstabens nicht mehr vorhanden ist.
Wenn der Benutzercode nach Schritt 3 die Kontrolle über den Ausführungsfluss übernimmt, kann er nicht versehentlich mit Makros interagieren, die ein @
im Namen haben.