Suche
Du befindest dich hier:
Startseite
»
was_machen_die_befehle_makeatletter_und_makeatother
Neue
T
e
X
-FAQ
**Eine ältere Version des Dokuments wurde geladen!** Beim Speichern wird eine neue Version des Dokuments mit diesem Inhalt erstellt.
Dateiauswahl
====== Was machen \makeatletter und \makeatother? ====== Alle Zeichen in LaTeX besitzen einen Kategoriecode (category code, catcode). Insgesamt gibt es 16 catcodes, wobei z.B. normalen Buchstaben (a-z,A-Z) den catcode 11 erhalten. Sonderzeichen wie ''\'' (catcode 0) oder ''{'' (catcode 1) und eben auch ''@'' (catcode 12) werden daher nicht als normale Buchstaben behandelt und dürfen somit vom normalen Benutzer nicht in Makros verwendet werden. Deshalb sind z.B. Makronamen wie ''\foo123'' oder ''\foo!'' normalerweise ungültig (allerdings gibt es Wege, solche Makronamen zu erzeugen, z.B. mit ''\csname … \endcsname''). In Klassen- (.cls) und Stildateien (.sty) hat ''@'' jedoch den catcode 11 und somit sind Makros wie z.B. ''\@foo'' zulässig. Dies erlaubt, dass solche Definitionen vom normalen Benutzer geschützt/versetckt werden um z.B. ein versehentliches Überschreiben eines Makros zu verhindern. Manchmal ergibt sich jedoch dennoch der Bedarf, interne Klassen- oder Stilmakros in der eigenen Datei zu modifizieren. Dazu möchte man nicht immer gleich eine eigene Klassen- oder Stildatei anlegen, sondern die Änderung direkt im eigenen Dokument vornehmen (meist in der Präambel). Dafür können dann folgende Befehle verwendet werden: <code latex> \makeatletter % ändert @ catcode von 12 zu 11 ---Definition-- \makeatother % ändert @ catcode zurück von 11 zu 12 </code> ''makeatletter'' bedeutet dabei "mache das @ zu einem normalen Buchstaben", ''makeatother'' "gebe dem @ wieder die spezielle Funktion" Ein Beispiel ist das Ändern der Position von Gleitobjekten auf sonst leeren Seiten: <code latex> \makeatletter \setlength{\@fptop}{0pt} % Gleitobjekt oben statt mittig auf sonst leerer Seite \makeatother </code> Vollständigkeitshalber hier noch eine Liste aller catcodes und ihrer Bedeutungen: ^ Code ^ Bedeutung ^ Beispiel ^ | 0|Escapesymbol, Befehlsanfang |''\'' | | 1|Beginn einer Gruppe |''{'' | | 2|Ende einer Gruppe |''}'' | | 3|Anfang und Ende des Inline-Mathemodus |''$'' | | 4|Tabulatorzeichen (in Tabellen) |''&'' | | 5|Zeilenende (in der Eingabe) | | | 6|Parametersymbol in Makros |''#'' | | 7|mathematische Hochstellung |''^'' | | 8|mathematische Tiefstellung |''_'' | | 9|zu ignorierendes Zeichen | | | 10|Leerzeichen | | | 11|Buchstaben |A-Za-z | | 12|sonstiges Zeichen (alles, was nicht in 1–11 und 13–15 genannt ist) | ''@'', ''!'' | | 13|aktives Zeichen | ''~'' | | 14|Kommentarbeginn | ''%'' | | 15|ungültiges bzw. nicht erlaubtes Zeichen | |
Speichern
Spamschutz: Wie heißt der deutschsprachige TeX-Verein? (5 Kleinbuchstaben)
Dieses Feld bitte leer lassen
Vorschau
Abbrechen
Zusammenfassung
Hinweis: Durch das Bearbeiten dieser Seite gibst du dein Einverständnis, dass dein Inhalt unter der folgenden Lizenz veröffentlicht wird:
CC Attribution-Share Alike 4.0 International
Seite anzeigen
Ältere Versionen
Anmelden
Übersicht
Links hierher
RSS feed
Impressum