Abgesetzte Mathematik braucht oft mehr als eine Zeile. Man bricht eine lange Formel auf mehrere Zeilen um, richtet Gleichheitszeichen aus, nummeriert jede Zeile fortlaufend und verweist spaeter darauf; fast die gesamte Technik dafuer stellt das Paket amsmath bereit. Diese Seite behandelt das nummerierte equation, die Ausrichtungsumgebungen align, gather, multline und split, das stueckweise cases und die Steuerung von Nummern (\notag, \tag, subequations). Die Grundlagen von Inline- und Display-Mathematik stehen in “Math mode basics”; hier geht es eine Ebene tiefer um mehrere Zeilen und Nummerierung.
Zuerst amsmath laden
Jede Umgebung auf dieser Seite ausser equation wird vom amsmath package bereitgestellt. Eine Zeile in der Praeambel genuegt. Fuer jedes neue Dokument, das ueberhaupt Mathematik verwendet, ist das Laden von amsmath der De-facto-Standard: Es bringt Display-Umgebungen, Ausrichtung und Nummernsteuerung zusammen.
\usepackage{amsmath}amsmath erweitert die Display-Formelstrukturen von LaTeX erheblich. Neben der Umgebung equation (die es schon in einfachem LaTeX gibt) fuegt es align und align*, gather und gather*, multline und multline*, alignat und alignat*, flalign und flalign* sowie split hinzu. Innerhalb dieser Umgebungen duerfen Sie keine Leerzeile lassen; eine Leerzeile gilt als Absatzumbruch und erzeugt einen Fehler. Formelnummern links erhalten Sie mit \usepackage[leqno]{amsmath}, rechts (Standard in horizontaler Schrift) mit [reqno], und linksbuendige Displays mit der Option [fleqn].
Eine nummerierte Einzelzeile — equation
Der Ausgangspunkt fuer Display-Mathematik ist die equation environment. Sie setzt ihren Inhalt in eine eigene Zeile und fuegt am rechten Rand (Standard bei horizontaler Schrift) automatisch eine fortlaufende Nummer hinzu. Die Nummer wird vom Zaehler equation verwaltet; mit \label{…} koennen Sie sie im Text ueber \ref{…} oder \eqref{…} referenzieren (Details dazu folgen unten). Wenn Sie schlicht keine Nummer wollen, verwenden Sie das sternmarkierte equation*; es entspricht LaTeX displaymath (\[ … \]) und erzeugt ein unnummeriertes Display.
\begin{equation}
\label{eq:euler}
e^{i\pi} + 1 = 0
\end{equation}Die Ausgabe setzt Eulers Identitaet zentriert in eine eigene Zeile, mit einer Nummer wie (1) am rechten Rand dieser Zeile (die Nummer ist die laufende Nummer im Dokument, also nicht unbedingt 1). equation gibt einer Formelzeile genau eine Nummer. Fuer eine Formel, die nicht in eine Zeile passt, oder fuer mehrere auszurichtende Formeln verwenden Sie die Ausrichtungsumgebungen unten. Die Grundlagen von \[ … \] und unnummerierten Displays stehen auf der Schwesterseite “Math mode basics.”
Mehrere Zeilen ausrichten — align und gather
Um mehrere Formeln untereinander zu setzen, ist die align-Umgebung das Arbeitspferd. Trennen Sie die Zeilen mit \\ und setzen Sie ein & an die Stelle, die ausgerichtet werden soll. Ueblicherweise steht & direkt vor einer Relation wie einem Gleichheits- oder Ungleichheitszeichen, damit diese Relationen vertikal fluchten. Entscheidend ist, & vor die Relation zu setzen (das spaeter besprochene veraltete eqnarray setzt es dahinter und verdirbt dadurch den Abstand). align nummeriert jede Zeile; das sternmarkierte align* setzt keine Nummern.
\begin{align}
(x + y)^2 &= x^2 + 2xy + y^2 \\
(x - y)^2 &= x^2 - 2xy + y^2
\end{align}Die Ausgabe stapelt die beiden Formeln vertikal, wobei beide Gleichheitszeichen exakt an derselben horizontalen Position stehen, und setzt am rechten Rand jeder Zeile eine Nummer. Das Material links von & (die linke Seite) wird rechtsbuendig, das Material rechts davon (die rechte Seite) linksbuendig gesetzt, sodass beide Seiten sauber am Gleichheitszeichen zusammentreffen. Setzen Sie kein \\ nach der letzten Zeile; das wuerde unerwuenschten Abstand erzeugen.
align kann auch mehrere Formeln nebeneinander setzen. Das & dient sowohl als Ausrichtungsmarke als auch als Spaltentrenner: Sie wechseln zwischen “& vor der Relation” und “& vor der naechsten Formel.” Anders gesagt wird jede Formel als “rechtsbuendiger Teil & Relation mit linksbuendigem Teil” geschrieben, und ein weiteres & trennt sie von der naechsten Formel.
\begin{align}
x &= y & X &= Y & a &= b + c \\
x' &= y' & X' &= Y' & a' &= b \\
x + x' &= y + y' & X + X' &= Y + Y' & a'b &= c'b
\end{align}Die Ausgabe setzt drei Formelpaare in drei Spalten ueber die Seite, richtet die Gleichheitszeichen innerhalb jeder Spalte aus und nummeriert jede Zeile einmal. amsmath fuegt zwischen den Spalten automatisch einen festen Abstand ein.
Wenn Sie dagegen keine Ausrichtung brauchen und mehrere Formeln nur zentriert setzen wollen, verwenden Sie die gather-Umgebung. In gather gibt es keine Ausrichtung mit &; jede Zeile wird unabhaengig zentriert. Zeilen werden mit \\ getrennt und jede erhaelt eine Nummer (gather* fuer keine). Eine Zeile in gather kann bei Bedarf selbst ein unten beschriebenes split enthalten, um eine Formel ueber mehrere Zeilen zu brechen.
\begin{gather}
a^2 + b^2 = c^2 \\
e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!}
\end{gather}Die Ausgabe zentriert die beiden Formeln jeweils in ihrer eigenen Zeile (ihre Symbole werden nicht miteinander ausgerichtet) und setzt am rechten Rand jeder Zeile eine Nummer. Als Merksatz: align “richtet an der Relation aus”, waehrend gather “nur zentriert stapelt”.
Eine lange Formel umbrechen — multline und split
Zwei Umgebungen brechen eine einzelne Formel, die nicht in eine Zeile passt: multline und split. Beide unterscheiden sich von align/gather, weil sie eine Nummer fuer diese eine Formel vergeben.
multline richtet nicht aus. Stattdessen setzt es die erste Zeile linksbuendig und die letzte rechtsbuendig, waehrend mittlere Zeilen zentriert werden. Zeilen werden mit \\ getrennt. Die Nummer fuer die gesamte Formel erscheint auf der letzten Zeile (mit der Option leqno auf der ersten). Da multline einer Formel eine Nummer gibt, duerfen Sie einzelne Zeilen nicht mit \notag ausblenden. Um eine mittlere Zeile auf eine Seite zu schieben, verwenden Sie \shoveleft{…} oder \shoveright{…} und uebergeben die ganze Zeile (aber nicht das folgende \\) als Argument. Die unnummerierte Form ist multline*.
\begin{multline}
a + b + c + d + e + f \\
+ g + h + i + j + k + l + m + n
\end{multline}Die Ausgabe bricht die lange Summe auf zwei Zeilen um: Der erste Teil a + … + f steht linksbuendig, die Fortsetzung + g + … + n rechtsbuendig, und die gesamte Formel erhaelt eine Nummer. Eine mittlere Zeile wuerde zentriert. multline verwendet kein Ausrichtungs-&; Sie markieren nur die Umbruchstellen mit \\.
Wenn die umbrochenen Zeilen ausgerichtet werden sollen, verwenden Sie split. Wie align richtet split an & aus, erlaubt aber nur eine Ausrichtungsspalte (ein & pro Zeile) und hat selbst keine Nummer. Man setzt es in eine nummerierte Struktur wie equation (oder align/gather), die dann eine Nummer fuer das Ganze liefert. split kann nicht innerhalb von multline verwendet werden.
\begin{equation}
\label{eq:cosh}
\begin{split}
\cosh x &= \frac{e^x + e^{-x}}{2} \\
&= 1 + \frac{x^2}{2!} + \frac{x^4}{4!} + \cdots
\end{split}
\end{equation}Die Ausgabe bricht eine Formel auf zwei Zeilen um, richtet die Gleichheitszeichen beider Zeilen aus und erhaelt die von equation gelieferte eine Nummer (standardmaessig vertikal zentriert). split ist das Standardwerkzeug, um die Zeilen einer umbrochenen Formel am Gleichheitszeichen auszurichten, als Gegenstueck zu multline (das nicht ausrichtet). Der Inhalt von split sollte den gesamten Koerper der umschliessenden Struktur ausfuellen; nur ausgabelose Befehle wie \label duerfen daneben stehen.
| Umgebung | Formeln / Nummern | Ausrichtung | Hauptzweck |
|---|---|---|---|
equation | Eine / eine | Nein | Eine einzelne Display-Zeile |
align | Viele / pro Zeile | Ja, bei & | Stapeln und an Relationen ausrichten |
gather | Viele / pro Zeile | Nein (jede zentriert) | Zentriert stapeln, ohne Ausrichtung |
multline | Eine / eine | Nein (links→rechts) | Eine lange Formel umbrechen, ohne Ausrichtung |
split | Eine / keine (Host liefert) | Eine &-Spalte | Zeilen einer Formel ausrichten |
Fallweise Definitionen — cases
Um eine Funktion fallweise zu definieren, verwenden Sie die cases-Umgebung. Links wird automatisch eine grosse Klammer { gesetzt; in jeder Zeile trennt ein & den “Wert” von der “Bedingung”, und Zeilen werden mit \\ getrennt. Woerter in der Bedingung (“if …” usw.) wuerden im Mathematikmodus kursiv und zu eng gesetzt; umschliessen Sie sie daher mit \text{…}, damit sie aufrecht und korrekt gespationiert erscheinen. cases selbst hat keine Nummer und wird daher meist in equation gesetzt, damit das Ganze eine Nummer erhaelt.
\begin{equation}
|x| =
\begin{cases}
x & \text{if } x \ge 0, \\
-x & \text{if } x < 0.
\end{cases}
\end{equation}Die Ausgabe zeigt links eine grosse Klammer und rechts daneben zwei Zeilen: x (Bedingung “if x ≥ 0”) und −x (Bedingung “if x < 0”), dazu eine Nummer von equation. Sowohl die Wertspalte als auch die Bedingungsspalte werden linksbuendig gesetzt. Beachten Sie, dass cases seinen Inhalt im text style (kompakter Groesse) setzt; fuer grosse Brueche verwenden Sie die dcases-Umgebung aus dem Paket mathtools, die im display style setzt.
Nummern steuern — \notag, \tag, subequations
In nummerierten Umgebungen wie align und gather wird jede Zeile automatisch nummeriert. amsmath bietet Moeglichkeiten, dies zeilenweise anzupassen.
- Die Nummer einer einzelnen Zeile entfernen: Setzen Sie
\notag(oder das Synonym\nonumber) vor das\\dieser Zeile.\notagkann nicht ausserhalb einer Display-Umgebung verwendet werden. - Eine Nummer selbst setzen oder ueberschreiben:
\tag{…}setzt den angegebenen Inhalt als Nummer anstelle der automatischen Nummer (Klammern werden automatisch ergaenzt).\tag*{…}fuegt keine Klammern hinzu und gibt den Text wortwoertlich aus. - Zusammengehoerige Formeln als 1a, 1b, … gruppieren: Werden sie in
subequationseingeschlossen, erhalten die inneren Formeln Nummern wie (1a), (1b), …, also die Elternnummer plus Buchstabe.
\begin{align}
y &= (x + 1)^2 \notag \\
&= x^2 + 2x + 1 \\
E &= mc^2 \tag{$\star$}
\end{align}In dieser Ausgabe ist die erste Zeile dank \notag unnummeriert, die zweite traegt wie gewohnt ihre automatische Nummer, und die dritte erhaelt (⋆) anstelle der automatischen Nummer. Durch Kombination von \notag und \tag koennen Sie Zwischenzeilen einer Herleitung unnummeriert lassen und nur die Schlusszeile nummerieren.
Um zusammengehoerige Formeln unter einer Nummer zu sammeln, schliessen Sie sie in subequations ein. Wenn die vorherige nummerierte Formel (4) war, werden die Formeln in der Gruppe zu (4a), (4b), (4c), …. Ein \label direkt nach \begin{subequations} verweist auf die Elternnummer (4), nicht auf das Kind (4a).
\begin{subequations}
\label{eq:max}
\begin{align}
\nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \label{eq:gauss} \\
\nabla \cdot \mathbf{B} &= 0
\end{align}
\end{subequations}Die Ausgabe richtet die beiden Formeln am Gleichheitszeichen aus und nummeriert sie als (4a) und (4b), also Elternnummer plus Buchstabe (die Elternnummer ist die laufende Nummer im Dokument). \eqref{eq:gauss} ergibt dann (4a), waehrend \eqref{eq:max} (4) fuer die gesamte Gruppe ergibt.
Zurueckverweisen — \label und \eqref
Markieren Sie eine nummerierte Formel mit \label{…}, dann koennen Sie sie im Text ueber ihre Nummer zitieren. \ref{…} gibt die Nummer selbst zurueck (z. B. 3.2), waehrend amsmaths \eqref{…} die Klammern ergaenzt und (3.2) liefert. Die Klammern von \eqref werden unabhaengig von der Umgebungsschrift immer aufrecht gesetzt, deshalb ist \eqref fuer Formelverweise praktisch. In einer mehrzeiligen Umgebung setzen Sie \label in die Zeile, deren Nummer Sie wollen (bei align pro Zeile, bei subequations pro Kindformel).
式~\eqref{eq:euler} より $e^{i\pi} = -1$ が従う。
By~\eqref{eq:euler}, we have $e^{i\pi} = -1$.Die Ausgabe fuegt beispielsweise “By equation (1), …” in den Fliesstext ein, also die Nummer der mit \label{eq:euler} markierten Formel in Klammern. Zum Aufloesen von Verweisen kompiliert man wegen der Querverweise normalerweise zweimal. Die allgemeinen Mechanismen von \ref/\label werden auf der Seite “Cross-references” behandelt. Um die Nummerierung pro Kapitel oder Abschnitt zurueckzusetzen (also (1.1), (2.1), … zu erhalten), schreiben Sie \numberwithin{equation}{section} in die Praeambel. Das Aussehen der Nummer selbst steuert der Befehl \theequation; in article ist die Vorgabe \arabic{equation}, in book/report \thechapter.\arabic{equation} (Kapitelnummer plus laufende Nummer). Um das Format direkt zu aendern, redefinieren Sie es etwa mit \renewcommand{\theequation}{\thesection.\arabic{equation}}.
eqnarray vermeiden
Aeltere Dokumente verwenden fuer mehrzeilige Mathematik manchmal eqnarray (und eqnarray*). Diese Umgebung ist aelter als amsmath, sollte heute aber nicht mehr verwendet werden. Ihr schlimmster Fehler ist der Abstand um Relationen: eqnarray fuegt auf beiden Seiten eines Gleichheitszeichens unnatuerlich breite Abstaende ein, die nicht zu den anderen Mathematikumgebungen passen. Schlimmer noch: Bei langen Zeilen kann die Formelnummer den Text ueberdrucken, und \qedhere aus Theorem-Paketen funktioniert darin nicht.
Sowohl das offizielle amsmath-Handbuch als auch die LaTeX-Referenz empfehlen, eqnarray zu vermeiden und stattdessen align (zum Ausrichten mehrerer Formeln) oder equation + split (zum Umbrechen einer einzelnen Formel) zu verwenden. Achten Sie auch auf die Position von &: Die align-Familie setzt & vor die Relation, waehrend eqnarray es danach setzt; das ist ein Grund fuer den falschen Abstand. Fuer neue Arbeiten sollten Sie ohne Zoegern die amsmath-Umgebungen verwenden.