Ein Bereich zwischen \begin{...} und \end{...} heißt Umgebung. Damit grenzt man einen Abschnitt des Dokuments ab und wendet auf alles darin ein bestimmtes Verhalten oder eine Formatierung an. Fast jede LaTeX-Struktur, etwa Listen, abgesetzte Gleichungen, Abbildungen, Tabellen und Zitate, hat diese Form. Diese Seite erklärt, was Umgebungen sind, wie sie verschachtelt werden, welche häufig vorkommen und wie man eigene definiert.
Was eine Umgebung ist
Eine Umgebung ist ein abgegrenzter Block, der mit \begin{name} beginnt und mit \end{name} endet; sie wendet eine bestimmte Wirkung auf ihren Inhalt an. Eine center-Umgebung zentriert ihren Inhalt, eine itemize-Umgebung macht daraus eine Aufzählung. Die entscheidende Regel lautet: Der Name am Anfang muss exakt zum Namen am Ende passen. Man kann \begin{center} nicht mit \end{flushleft} schließen.
\begin{center}
この段落は中央に寄ります。
\end{center}Ebenso wichtig: Eine Umgebung bildet implizit eine Gruppe, also einen lokalen Gültigkeitsbereich. Änderungen an Schrift oder Abständen innerhalb der Umgebung werden bei \end{...} zurückgenommen und laufen nicht nach außen weiter. Wenn etwa quote Einzug und Ränder verändert, ist der umgebende Text nach dem Verlassen wieder normal. Eine Umgebung besitzt also dieselbe Begrenzung wie eine Klammergruppe { ... }.
Das Dokument selbst ist eigentlich ebenfalls eine Umgebung: \begin{document} … \end{document}. Daraus folgt unmittelbar die Grundregel, dass der gesamte Haupttext innerhalb der document-Umgebung steht.
Wie Umgebungen verschachtelt werden
Umgebungen können verschachtelt werden, müssen aber in umgekehrter Reihenfolge geschlossen werden. Wenn man innerhalb von \begin{a} ein \begin{b} öffnet, schließt man zuerst innen mit \end{b} und danach außen mit \end{a}: also \begin{a}\begin{b}...\end{b}\end{a}.
\begin{quote}
引用の中に箇条書きを置く例:
\begin{itemize}
\item 一つ目
\item 二つ目
\end{itemize}
\end{quote}Die Bereiche dürfen sich dagegen nicht überlappen, etwa als \begin{a}\begin{b}...\end{a}\end{b}. Das ist einer der häufigsten LaTeX-Fehler und führt zu Meldungen wie \begin{...} ended by \end{...}: geöffnete und geschlossene Umgebung passen nicht zusammen. In langen Dokumenten hilft Einrückung, die Paare sichtbar zu machen und vergessene oder falsche \end-Zeilen zu vermeiden.
Häufige Umgebungen
Standard-LaTeX stellt viele Umgebungen für verschiedene Zwecke bereit. Die wichtigsten sind unten nach ihrer Rolle gruppiert. Details haben jeweils eigene Seiten; gemeinsam ist allen dieselbe \begin- / \end-Form.
| Gruppe | Umgebungen | Aufgabe | |
|---|---|---|---|
text | Text | center, flushleft, flushright, quote, quotation, verbatim | Zentrierung, links- und rechtsbündiger Satz, Zitate, wörtliche Ausgabe |
lists | Listen | itemize, enumerate, description | Aufzählungen, nummerierte Listen und Beschreibungslisten |
math | Mathematik | equation, align | Abgesetzte Gleichung; mehrere ausgerichtete Gleichungen |
floats | Gleitobjekte | figure, table | Abbildungen und Tabellen an geeignete Stellen gleiten lassen |
tabular | Tabellen | tabular | Eine Tabelle aus Zeilen und Spalten setzen |
quote und quotation rücken Zitate beide ein; quotation rückt zusätzlich die erste Zeile jedes Absatzes ein und eignet sich für längere, mehrabsätzige Zitate. Die verbatim-Umgebung gibt ihren Inhalt in Festbreitenschrift genau wie eingegeben aus und behandelt selbst Sonderzeichen wie \ und { wörtlich statt als Befehle. Das ist praktisch für Quellcode.
Manche Umgebungen nehmen Argumente. tabular verlangt eine Spaltenspezifikation: Direkt nach \begin{tabular} gibt man wie in \begin{tabular}{cc} die Ausrichtung jeder Spalte an (c zentriert, l links, r rechts). In der Tabelle trennt & die Spalten, jede Zeile endet mit \\.
\begin{tabular}{cc}
名前 & 役割 \\
TeX & 組版エンジン \\
LaTeX & 文書フォーマット \\
\end{tabular}Viele Umgebungen besitzen außerdem eine Sternform, bei der ein * an den Namen angehängt wird. Die Umgebung align nummeriert beispielsweise jede Zeile, während \begin{align*} … \end{align*} die unnummerierte Variante ist. Ebenso liefert equation* eine abgesetzte Gleichung ohne Nummer.
Eigene Umgebungen definieren
Wenn dieselbe Kombination von Formatierungen im Dokument wiederkehrt, kann man mit \newenvironment eine eigene Umgebung definieren. Danach ruft man sie unter dem eigenen Namen mit \begin / \end auf. Die Syntax lautet wie folgt ([nargs] und [default] sind optional):
\newenvironment{名前}[nargs][default]{開始時のコード}{終了時のコード}- name — der Name der neuen Umgebung (ohne Backslash; er darf nicht mit
endbeginnen). - nargs — die Anzahl der Argumente (0–9), im Text als
#1,#2, … verwendet. - default — macht das erste Argument optional und setzt diesen Wert als Vorgabe.
- begin-code — wird bei
\begin{name}ausgeführt; hier können Argumente wie#1verwendet werden. - end-code — wird bei
\end{name}ausgeführt; hier dürfen Argumente wie#1nicht verwendet werden.
Als Beispiel definieren wir eine important-Umgebung, die einen Hinweis in einem gerahmten Block hervorhebt. Das Überschriftswort soll als optionales Argument übergeben werden können, mit der Vorgabe „Important“. Weil ein default angegeben ist, erhält #1 dieses Argument.
\newenvironment{important}[1][重要]{%
\begin{quote}\noindent\textbf{#1:}\itshape
}{%
\end{quote}%
}
% 使い方
\begin{important}
締め切りは厳守してください。
\end{important}
\begin{important}[注意]
バックアップを忘れずに。
\end{important}Die erste Verwendung setzt die Vorgabe „重要:“ (Important:) in die Überschrift; die zweite übergibt [注意] für „注意:“ (Note:) und setzt jeweils den folgenden Text kursiv. Beachten Sie, dass der begin-code \begin{quote} öffnet und der end-code das passende \end{quote} schließt. Da die Umgebung selbst eine Gruppe ist, wird die Wirkung von \itshape (Kursivschrift) bei \end{important} automatisch zurückgenommen und erreicht den umgebenden Text nicht.
Um eine vorhandene Umgebung neu zu definieren, verwendet man \renewenvironment. Die Syntax entspricht \newenvironment, gilt aber für einen Namen, der bereits definiert ist; ein undefinierter Name ist ein Fehler. Umgekehrt meldet \newenvironment einen Fehler, wenn der Name schon existiert. Sowohl \newenvironment als auch \renewenvironment besitzen Sternformen, die sich darin unterscheiden, wie sie Leerzeichen am Ende von Argumenten behandeln.
So gehen Enden nicht verloren
In langen Dokumenten tritt ein Umgebungsfehler oft nicht an der Stelle auf, an der er entstanden ist, sondern erst Seiten später in der Nähe von \end{document}. Gewöhnen Sie sich daher an, unmittelbar nach dem Öffnen einer Umgebung auch die schließende Zeile zu schreiben und dann den Inhalt einzufügen. Verschachtelte Blöcke sollten um zwei oder vier Leerzeichen eingerückt werden, damit die Quelle zeigt, was worin steckt: ein tabular in einem figure, ein itemize in einem quote usw.
\begin{figure}
\centering
\begin{tabular}{ll}
入力 & 出力 \\
source & PDF \\
\end{tabular}
\caption{処理の対応}
\end{figure}Wenn ein Fehler auftritt, verlassen Sie sich nicht nur auf die Zeile \begin{...} ended by \end{...} im Log. Schneiden Sie die gerade hinzugefügte Umgebung auf ein Minimalbeispiel zurück. Wenn Tabelle, Abbildung, Gleichung oder Liste zunächst als kleines Fragment kompiliert, bevor sie in die Hauptdatei zurückkommt, lassen sich ein fehlendes \end und ein paketspezifisches Problem voneinander trennen.
Umgebungen als semantische Teile wählen
Eine Umgebung ist nicht nur ein optischer Kasten; sie benennt einen Teil des Manuskripts. Verwenden Sie quote für Zitate, itemize für Aufzählungen, tabular für das Tabellenraster und figure oder table für gleitendes Material, das später Beschriftungen, Nummern, Verweise und Verzeichnisse braucht. Wenn center nur wegen der Optik oder quote nur für zusätzliche Ränder gewählt wird, wird die Rolle des Blocks in langen Dokumenten unklar.
- Der Block ist ein Zitat — verwenden Sie
quoteoderquotationund nennen Sie die Quelle im Text oder in einer Fußnote. - Der Block ist eine logische Liste — verwenden Sie
itemize,enumerateoderdescription; simulieren Sie keine Aufzählung mit\\. - Eine Abbildung oder Tabelle braucht Nummern und Verweise — setzen Sie
\captionund\labelinfigureodertable. - Ein eigener Block wiederholt sich oft — benennen Sie ihn mit
\newenvironment, statt lokale Formatierungsbefehle zu kopieren.