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 1
\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 1 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:

\newcommand{\datum}{\text{ 1. April}}
\newcommand{\scherz}{\text{ Scherz für den \datum}}
\text{Das ist kein} \scherz!

\newcommand{\lx}{\fbox{\LaTeX}}
\text{Hallo } \lx

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:

\newcommand{\shac}[1]{\shabox{ \centering \textsc{ #1 } }}
\shac{Hallo Welt!}

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:

\newcommand{\shaC}[2][5cm]{ \shabox{\parbox{#1}{ \centering  \textsc{ #2 } }} }
\shaC{Hallo Welt!}

\newcommand{\shaC}[2][5cm]{ \shabox{\parbox{#1}{ \centering \textsc{ #2 } }} }
\shaC[10cm]{Hallo Welt!}

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 …