Bevor man daran denkt, die Wirkung des Sterns aufzuheben, sollte man sich in der Anleitung der verwendeten Klassen und Pakete nachschauen, ob es nicht eine Möglichkeit gibt, statt der nicht nummerierten Überschriften, nummerierte zu verwenden. So bieten beispielsweise die KOMA-Script-Klassen Optionen, um Abbildungs- und Tabellenverzeichnis oder das Literaturverzeichnis zu nummerieren. Darüber hinaus gibt wird vielleicht auch eine Möglichkeit geboten, den Befehl zum Setzen der Überschrift umzudefinieren.
Wenn das nicht der Fall ist, bietet sich tatsächlich an, die entsprechende Anweisung kurzzeitig so umzudefinieren, dass die Sternvariante die Normalvariante verwendet. Neben der Methode, die Clemens – eher zur globalen Verwendung – beschrieben hat, kommt dafür auch ein weiterer Trick in Frage:
\documentclass{book}
\usepackage{blindtext}
\newcommand*{\deactivatestaronce}[1]{%
\expandafter\def\expandafter#1\expandafter*\expandafter{%
\expandafter\def\expandafter#1\expandafter{#1}#1}%
}
\begin{document}
\tableofcontents
\deactivatestaronce\chapter
\listoffigures
\blinddocument
\end{document}
Der Trick daran ist, dass die entsprechende Anweisung – im Beispiel `\chapter` – von `\deactivatestaronce` als Anweisung mit einem nicht vorhandenen begrenzten Argument definiert wird, wobei der Stern die Begrenzung darstellt. Das bedeutet, dass TeX bereits beim Lesen von `\chapter` den Stern wegwirft. Innerhalb der neuen Definition der Anweisung wird diese dann mit wiederum mit ihrer bisherigen Bedeutung definiert, wofür die vielen `\expandafter` notwendig sind. Zum Schluss wird dann die wiederhergestellte Anweisung aufgerufen.
Allerdings ist das oft nur die halbe Miete. Bei den Gliederungsbefehlen für Verzeichnisse wird nämlich oftmals noch ein `\@mkboth`, ein `\markboth` oder ein `\markright` ausgeführt, um einen Kolumnentitel zu erzeugen. Diese ist dann ohne Nummer. Im Beispiel bekäme so das Abbildungsverzeichnis ab der zweiten Seite den Kolumnentitel »LIST OF FIGURES« obwohl eigentlich »CHAPTER 1. LIST OF FIGURES« gewünscht wird. Dieses Problem wäre mit einer weiteren Anweisung zu lösen:
\documentclass{book}
\usepackage{blindtext}
\newcommand*{\deactivatestaronce}[1]{%
\expandafter\def\expandafter#1\expandafter*\expandafter{%
\expandafter\def\expandafter#1\expandafter{#1}#1}%
}
\begin{document}
\tableofcontents
\deactivatestaronce\chapter
\listoffigures
\chaptermark{\listfigurename}
\blinddocument
\end{document}
Allerdings erzeugt das nicht sowohl auf linken und rechten, sondern wie bei anderen Kapiteln auch nur auf linken Seiten einen Kolumnentitel. Es funktioniert in dieser Form auch nur für die `\chapter`-Ebene.
Wendet man – unsinniger Weise – den Befehl `\deactivatestarone\chapter` im Beispiel auch für `\tableofcontents` an, so ergibt sich als weiteres Problem, dass das Argument von `\chapter*` innerhalb von `\tableofcontents` bei der Klasse `book` nicht nur aus der Überschrift besteht. Es wird auch ein Aufruf von `\@mkboth` in dem Argument selbst getätigt. Das führt im Inhaltsverzeichnis zu einem verfälschten Eintrag, der einen weiteren Eingriff erforderlich macht:
\documentclass{book}
\usepackage{blindtext}
\newcommand*{\deactivatestaronce}[1]{%
\expandafter\def\expandafter#1\expandafter*\expandafter{%
\expandafter\def\expandafter#1\expandafter{#1}#1}%
}
\begin{document}
\deactivatestaronce\chapter
\makeatletter\let\@mkboth\@gobbletwo\makeatother
\tableofcontents
\makeatletter\let\@mkboth\markboth\makeatother
\deactivatestaronce\chapter
\listoffigures
\chaptermark{\listfigurename}
Page of \listfigurename.\clearpage% Nur zu Demozwecken
Page of \listfigurename.% Nur zu Demozwecken
\blinddocument
\end{document}
Sollte `\@mkboth` auch für `\chaptermark` verwendet werden, so wäre auch hier nach der Rückdefinition von `\@mkboth` ein `\chaptermark{\contentsname}` erforderlich.
Wie ich hier gezeigt habe, ist es also keineswegs immer damit getan, die Sternversion eines Befehls durch seine Normalform zu ersetzen. Vielmehr sind teilweise weitere Maßnahmen bezüglich des Befehlsarguments oder bezüglich des Kolumnentitels notwendig. Welche das sind, hängt nicht nur vom jeweiligen Befehl, sondern auch von Klassen und Paketen ab. Daher noch einmal der Hinweis, dass man unbedingt prüfen sollte, ob die jeweilige Klasse oder das jeweilige Paket bereits eine saubere Konfigurationsmöglichkeit für diesen Zweck bietet.
bietet. Sollte das nicht der Fall sein, ist auch die Verwendung von Zusatzpaketen wie [`tocbibind`][1] in Erwägung zu ziehen. Das genannte Paket fügt beispielsweise für die Standklassen verschiedene Verzeichnisse in das Inhaltsverzeichnis ein.
[1]: http://www.ctan.org/pkg/tocbibind