Listen können verschachtelt sein. Sie schreiben einfach eine andere Listenumgebung in den Körper eines \item eines itemize oder enumerate. LaTeX zählt die Verschachtelungstiefe (die Ebene) für Sie und ändert die Beschriftung am Kopf jeder Zeile automatisch mit dieser Tiefe. Sie können auch Typen mischen – zum Beispiel eine nummerierte Liste in einer Liste mit Aufzählungszeichen. Es gibt jedoch eine Grenze: Sowohl itemize als auch enumerate verschachteln bis zu vier Ebenen tief. Auf dieser Seite erfahren Sie, wie Sie verschachteln, welche Standardbezeichnungen es auf jeder Ebene gibt, wie Sie Typen mischen und was zu tun ist, wenn Sie mehr als vier Ebenen benötigen.
So verschachteln Sie
Sie erstellen eine verschachtelte Liste, indem Sie einfach eine Listenumgebung innerhalb des Hauptteils des \item einer anderen Liste platzieren. Schreiben Sie ein neues \begin{itemize} … \end{itemize} (oder enumerate) nach einem der äußeren \items. Die innere Liste „gehört“ dann zu diesem äußeren Eintrag und LaTeX passt die Beschriftung und Einrückung automatisch an die Tiefe an. Es ist kein spezieller Befehl oder eine spezielle Option erforderlich.
\begin{itemize}
\item 果物
\begin{itemize}
\item りんご
\item みかん
\end{itemize}
\item 野菜
\end{itemize}Hier befinden sich „Obst“ und „Gemüse“ auf Ebene 1 und „Apfel“ und „Orange“ darunter auf Ebene 2. Die innere Liste muss vor der äußeren \end geschlossen werden (Umgebungen müssen sauber verschachtelt sein). Die Einrückung dient nur Ihrer eigenen Lesbarkeit und hat keinen Einfluss auf die Ausgabe – die Ebene wird ausschließlich durch die Verschachtelungsstruktur \begin/\end bestimmt.
Standardbeschriftungen nach Ebene
Die Beschriftung (die Markierung oder Zahl am Kopf jeder Zeile) ändert sich automatisch mit der Ebene. Für itemize sind die Standardeinstellungen: Ebene 1 ein durchgezogenes Aufzählungszeichen •, Ebene 2 ein fetter Endstrich –, Ebene 3 ein Sternchen * und Ebene 4 ein zentrierter Punkt ·. Jeder lebt in einem Befehl – \labelitemi, \labelitemii, \labelitemiii und \labelitemiv (die i / ii / iii / iv sind römische Ziffern, die die Ebene benennen).
Für enumerate lauten die Standardwerte: Ebene 1 „1.“, Ebene 2 „(a)“, Ebene 3 „i.“ und Ebene 4 „A.“ Diese Formate existieren in \labelenumi bis \labelenumiv, während die Zahlen selbst von vier Zählern gehalten werden, enumi bis enumiv. In der folgenden Tabelle sind beide Standardsätze aufgeführt.
| Ebene | itemize (Markierung) | itemize-Befehl | enumerate (Nummer) | Aufzählungsbefehl | |
|---|---|---|---|---|---|
Level 1 | 1 | • Aufzählungszeichen | \labelitemi | 1. | \labelenumi |
Level 2 | 2 | – Gedankenstrich (fett) | \labelitemii | (a) | \labelenumii |
Level 3 | 3 | * Sternchen | \labelitemiii | i. | \labelenumiii |
Level 4 | 4 | · zentrierter Punkt | \labelitemiv | A. | \labelenumiv |
Einige Dokumentklassen legen andere Standardwerte fest, aber die Standardklassen (article und Freunde) verwenden die oben genannten Werte. Wie jeder enumerate-Zähler *gedruckt* wird, wird von \theenumi bis \theenumiv bestimmt; Standardmäßig sind dies \arabic{enumi}, \alph{enumii}, \roman{enumiii} bzw. \Alph{enumiv} (das umgebende „.“ und die Klammern werden durch die Befehle \labelenum… hinzugefügt). Die kombinierte Zahl, die angezeigt wird, wenn ein Element mit \label/\ref referenziert wird, wird aus dem übergeordneten Zähler erstellt: Um eine Referenz der Ebene 2 beispielsweise wie „2.1“ lesen zu lassen, definieren Sie sie mit dem übergeordneten \theenumi als Präfix neu – \renewcommand{\theenumii}{\theenumi.\arabic{enumii}}.
Listentypen mischen
Verschachtelte Listen müssen nicht vom gleichen Typ sein. Sie können ein enumerate in ein itemize, ein itemize in ein enumerate usw. einfügen. Die Ebene (Tiefe) wird unabhängig vom Typ gezählt: Die Bezeichnung wird dadurch ausgewählt, wie viele Listen tief Sie von außen sind. Wenn Sie also einen enumerate in ein Element eines itemize (Ebene 1) einfügen, befindet sich dieser enumerate auf Ebene 2 und erhält daher „(a) (b) …“.
Der entscheidende Punkt ist, dass die „vier Ebenen“-Grenze für itemize und enumerate getrennt pro Umgebungstyp gezählt wird. Für itemize gibt es nur vier Etikettensätze und für enumerate vier, sodass die Etiketten ausgehen, wenn eine fünfte Liste desselben Typs in der Verschachtelungskette erscheint. Selbst in einem gemischten Stapel löst das Erreichen einer fünften Ebene eines einzelnen Typs den unten beschriebenen Fehler aus. Darüber hinaus haben Listen *beliebigen* Typs insgesamt eine Obergrenze von sechs verschachtelten Ebenen: LaTeX behält nur sechs Sätze von Listenformatierungsparametern (Einrückung, Elementtrennung usw.) bei, sodass eine siebte verschachtelte Liste – selbst wenn Typen gemischt werden – immer noch mit demselben Too deeply nested-Fehler anhält.
Ein gemischtes Beispiel mit drei Ebenen
Hier ist ein dreistufiges Beispiel, das Typen mischt. Die äußerste Liste ist ein enumerate (Ebene 1) mit nummerierten Schritten; Darin listet ein itemize (Stufe 2) die Zutaten als Aufzählungszeichen auf; und darin gibt ein weiterer enumerate (Ebene 3) die nummerierten Unterschritte der Vorbereitung an.
\begin{enumerate}
\item 生地を作る
\begin{itemize}
\item 小麦粉
\item 水
\begin{enumerate}
\item 半分を加えて混ぜる
\item 残りを少しずつ加える
\end{enumerate}
\end{itemize}
\item 寝かせる
\end{enumerate}In der Ausgabe befinden sich „Teig herstellen“ und „Ruhen lassen“ im enumerate der Ebene 1, daher sind sie mit „1“ nummeriert. und „2.“ Darunter befinden sich „Mehl“ und „Wasser“ im itemize der Ebene 2, daher tragen sie den fetten Endstrich –. Der innerste enumerate, eingebettet in „Water“, befindet sich auf Ebene 3, daher sind seine Einträge standardmäßig die römischen Ziffern „i“. und „ii.“ Auch bei gemischten Typen gilt durchgehend die gleiche Regel: Die Bezeichnung wird immer dadurch bestimmt, wie viele Ebenen tief diese Liste von außen liegt.
Über vier Ebenen hinausgehen und Bezeichnungen ändern
Das Verschachteln von itemize oder enumerate auf fünf oder mehr Ebenen löst den Fehler Too deeply nested aus. Dies liegt daran, dass Standard-LaTeX nur vier Etikettensätze pro Typ bereitstellt und bei den einfachen Standardumgebungen dies die Obergrenze darstellt. Wenn Sie eine tiefere Verschachtelung benötigen oder die Beschriftungen pro Ebene sauber und auf einmal ändern möchten, ist das Paket enumitem die Standardlösung.
Laden Sie enumitem und Sie können die maximale Verschachtelungstiefe mit \setlistdepth{<integer>} erhöhen. Legen Sie dann die Beschriftung und Formatierung für eine bestimmte Ebene fest, indem Sie den Typ und die Ebene benennen – zum Beispiel \setlist[itemize,5]{...}. Wenn Sie stattdessen nur die Bezeichnung einer Ebene innerhalb der üblichen vier ändern möchten, reicht es aus, den entsprechenden Befehl mit \renewcommand neu zu definieren.
% 階層ごとに記号・番号を再定義(標準環境のまま)
\renewcommand{\labelitemii}{$\diamond$} % itemize 第 2 階層 → 菱形
\renewcommand{\labelenumii}{\theenumii)} % enumerate 第 2 階層 → a) b) ...Dieses Beispiel ändert die Level-2-Markierung von itemize in eine Raute (⋄) und die Level-2-Beschriftung von enumerate in die Form „a)“, „b)“. Wenn Sie einen einheitlichen Stil über viele Listen hinweg wünschen, ist die Benennung über die Optionen von enumitem (z. B. label=) einfacher zu verwalten als diese manuelle Neudefinition. Einzelheiten finden Sie unter den folgenden Links.