Zähler und Makros¶
In LaTeX können gibt es einige (Zähl-)Variablen, die standardmäßig genutzt werden können; zudem können nach Belieben eigene Variablen definiert werden. Ebenso können eigenen Anweisungen („Makros“) definiert werden, so dass beispielsweise sich häufig wiederholende Text-Formatierungen mit geringerem Aufwand erreichen lassen.
Zähler-Variablen¶
Alle Zähler-Variablen, die von LaTeX verwendet werden, haben Standard-Namen;
diese wiederum haben entsprechende LaTeX-Anweisungen, welche die jeweiligen
Zähler-Werte ausgeben. Um beispielsweise innerhalb eines LaTeX-Dokuments den
Wert eines Zählers mit dem Namen number
auszugeben, genügt an dieser Stelle
ein Aufruf von \thenumber
.
Verwendungszweck | Zähler-Variablen |
Kapiteleinteilung | part , chapter , section , subsection , subsubsection ,
paragraph , subparagraph |
Seiten-Nummerierung | page |
Aufzählungs-Nummerierung | enumi , enumii , enumiii , enumiv |
Sonstige Nummerierungen | figure , table , footnote , equation |
Sämtliche in der obigen Tabelle aufgelistete Zähler haben zu Beginn eines
Dokuments den Wert Null und beim Aufruf der Anweisung, das die Numerierung
erzeugt, vor der Ausgabe um 1
erhöht. Eine Ausnahme hierbei bildet der
Zähler page
; dieser hat zu Beginn des Dokuments den Wert Eins und wird stets
nach einer Ausgabe automatisch erhöht.
Die Anpassung der Zähler wird von LaTeX weitgehend automatisch vorgenommen.
Beispielsweise wird durch die Anweisung \section{}
die Zähler-Variable
section
um 1
erhöht; zugleich wird dadurch die Zähler-Variable
subsection
wieder auf 0
gesetzt.
Manuell können folgende Anweisungen genutzt werden, um die jeweilgen Zähler zu beeinflussen:
Anweisung | Beschreibung |
\newcounter{name} |
Definition eines neuen Zählers |
\setcounter{name}{Wert} |
Wertzuweisung (bisheriger Wert wird überschrieben) |
\addtocounter{name}{wert} |
Addition eines Werts zum aktuellen Zählerwert |
\stepcounter{name} |
Erhöhung des Zählerwerts um |
\roman{name} |
Umschalten des Zählers auf römische Ziffern |
\arabic{name} |
Umschalten des Zählers auf arabische Ziffern |
\alph{name} |
Umschalten des Zählers auf Kleinbuchstaben |
\Alph{name} |
Umschalten des Zählers auf Großbuchstaben |
Beispielsweise kann die \setcounter{}
-Anweisung genutzt werden, um die
Seitennummerierung im laufenden Dokument zu ändern (beispielsweise wieder bei
beginnen zu lassen).
Makros definieren¶
Mit \newcommand{}
kann man in LaTeX eigene Anweisungen („Makros“)
definieren. Die allgemeine Syntax hierzu lautet:
\newcommand{\Anweisungsname}[Parameter-Anzahl][Voreinstellungen]{Inhalt}
Der Anweisungsname sowie der eigentliche Inhalt sind Pflichtangaben. Kommt die selbst definierte Anweisung ohne weitere Parameter aus, so können die übrigen angaben weggelassen werden:
Beispiel:
% Neue Anweisungen definieren:
\newcommand{\datum}{ 1. April}
\newcommand{\scherz}{Scherz für den \datum}
\newcommand{\lx}{\fbox{\LaTeX}}
% Anweisung nutzen:
Das ist kein \scherz!
Hallo \lx
Ergebnis:
Gibt man bei der Definition eines Makros eine bestimmte Anzahl (maximal 9) an
Parametern an, so muss auch beim Aufruf des Makros genau diese Anzahl an
Parametern angegeben werden. Innerhalb der Makro-Definition werden die Parameter
mit #1
, #2
usw. bezeichnet:
Beispiel:
% In der Präambel:
% \usepackage{shadow}
% Neue Anweisung mit _einem_ Parameter definieren:
\newcommand{\shac}[1]{\shabox{ \centering \textsc{ #1 } }}
% Anweisung nutzen:
\shac{Hallo Welt!}
Ergebnis:
Möchte man ein Makro definieren, das neben einem Pflicht-Parameter auch einen
optionalen Parameter hat, so kann man für diesen einen Standard-Wert festlegen.
Innerhalb der Makro-Definition wird der optionale Parameter automatisch mittels
#1
bezeichnet.
Beispiel:
% In der Präambel:
% \usepackage{shadow}
% Neue Anweisung mit Pflicht- und optionalem Parameter definieren:
\newcommand{\shaC}[2][5cm]{ \shabox{\parbox{#1}{ \centering \textsc{ #2 } }} }
% Anweisung nutzen:
\shaC{Hallo Welt!} \\
\shaC[10cm]{Hallo Welt!}
Ergebnis:
Sollte eine mathematische Formel innerhalb der Makro-Definition vorkommen, so
sollte diese unbedingt mit der Anweisung \ensuremath{Formel}
umschlossen
werden. Hierdurch wird sichergestellt, dass das Makro korrekt abläuft,
unabhängig davon, ob das Makro im Mathe-Modus aufgerufen wird oder nicht.
… to be continued …