Am 29. Oktober 1675 schrieb Leibniz in einem Manuskript ∫. Es ist ein langes s – der Anfangsbuchstabe von summa, „Summe“, senkrecht gedehnt –, und die Form sagt bis heute, was das Integralzeichen ursprünglich war: ein Zeichen fürs Aufsummieren. Das Summenzeichen Σ stammt von Euler, aus Kapitel I seiner Institutiones calculi differentialis von 1755. In LaTeX verhalten sich diese beiden Geschwisterzeichen jedoch recht verschieden: In einer abgesetzten Formel stapelt \sum seinen Bereich über und unter das Zeichen, \int behält ihn an der Seite. Diese Asymmetrie steht in der Definition von \int selbst. Diese Seite behandelt die großen Operatoren – \sum, \prod, \int, \oint, \bigcup und die übrigen –, wie Limits angefügt werden, wie man sie mit \limits und \nolimits verschiebt, wie man mit \substack eine mehrzeilige Bedingung schreibt und wie man mit \DeclareMathOperator einen eigenen Operator deklariert.
Was ein großer Operator ist – und warum Limits keine Indizes sind
Ein großer Operator ist ein Symbol, das TeX der Klasse \mathop zugeordnet hat. \sum, \prod, \int und \bigcup gehören dazu, und diese Zugehörigkeit bringt zwei Eigenschaften mit. Erstens wechselt das Zeichen je nach umgebendem Stil zwischen einer großen und einer kleinen Glyphe. Zweitens wird eine angehängte Tief- oder Hochstellung nicht als gewöhnlicher Index, sondern als Limit behandelt. Das i in x_i sitzt nur rechts unten am Buchstaben; das k=0 und das n in \sum_{k=0}^{n} können direkt unter und über dem Symbol gestapelt werden. Welche der beiden Formen erscheint, hängt vom Stil und von der Art des Symbols ab – das Thema der folgenden Abschnitte.
Die Kernsymbole sind in Standard-LaTeX eingebaut – genauer gesagt in das zugrunde liegende TeX – und brauchen kein weiteres Paket. Die Mehrfachintegrale \iint und \iiint, der mehrzeilige Index \substack und das operatordefinierende \DeclareMathOperator benötigen dagegen das Paket amsmath. Da amsmath der De-facto-Standard ist, gehört \usepackage{amsmath} schlicht aus praktischen Gründen in die Präambel, sobald ernsthaft Mathematik gesetzt wird.
\sum und \prod: Der Bereich steht oben und unten – oder daneben
In einer abgesetzten Formel oben und unten, im Fließtext daneben. Die Summe ist \sum, das Produkt \prod, das Koprodukt \coprod; den Bereich gibt man mit Tiefstellung _ und Hochstellung ^ an. Setzt man \sum_{k=0}^{n} a_k in \[ … \], erscheint das Σ groß, k=0 direkt darunter und n direkt darüber. Dieselbe Formel mit $ … $ in den Text eingebettet lässt das Σ schrumpfen, k=0 und n stapeln sich rechts daneben. Die gemessenen Boxen machen den Unterschied deutlich: im Display 14,54521pt breit, 16,51393pt hoch und 13,02782pt tief – hoch und schmal; im Text 25,6008pt breit, 8,04175pt hoch und 3,00005pt tief – niedrig und breit. Hoch heißt gestapelt, breit heißt daneben.
% displayed: limits stack above and below
\[
\sum_{k=0}^{n} a_k = a_0 + a_1 + \dots + a_n,
\qquad \prod_{k=1}^{n} k = n!
\]
% inline: the same sum keeps its limits at the side
The series $\sum_{k=0}^{n} a_k$ fits inside the line.Dieser Wechsel zwischen oben/unten und daneben ist das an den Stil gekoppelte Standardverhalten. Die sogenannten Sum-Klasse-Zeichen – Summe, Produkt, Koprodukt und Verwandte – stapeln ihre Limits nur im Display-Stil über und unter das Zeichen, im Textstil stehen sie daneben; amsmath nennt dieses Schema displaylimits. Es ist eine gut gewählte Voreinstellung, die den Zeilenabstand nicht unnötig auseinandertreibt. Umfasst der Bereich nur einen Teil, schreibt man nur diesen; man kann auch eine Bedingung als untere Grenze setzen, etwa \sum_{i \in S}. Zu beachten: alles, was länger als ein Token ist, gehört in { }. Schreibt man \sum_k=1, wird nur das k tiefgestellt, und =1 rutscht rechts neben das Zeichen.
Grenzen über das Integral setzen – warum \int gleich \intop\nolimits ist
Das Integralzeichen \int behält seine Grenzen auch in einer abgesetzten Formel an der Seite. Dieser Unterschied zur Summe ist kein Zufall, sondern steht unmittelbar in der Definition. Die Zeilen 253–254 von LaTeX’ fontmath.ltx lauten \DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52} und anschließend \DeclareRobustCommand\int{\intop\nolimits}. Mit anderen Worten: \int ist die Integralglyphe \intop mit angeklebtem \nolimits – die mathematische Konvention ist in den Befehl eingebrannt. Die Zeilen 260–261 geben \oint dieselbe Gestalt: \ointop\nolimits. Umgekehrt ergibt sich daraus ein Notausgang: Verwendet man die nackte Glyphe \intop oder \ointop direkt, gilt wieder die Voreinstellung der Sum-Klasse. Die Messung bestätigt es – ein abgesetztes \int_0^1 ist 14,48615pt breit und 15,65013pt hoch, \intop_0^1 dagegen 10,00002pt breit, 21,12231pt hoch und 15,789pt tief. Das eine breitet sich seitwärts aus, das andere streckt sich nach oben.
\[
\int_{0}^{\infty} e^{-x}\,dx = 1,
\qquad \oint_{C} \mathbf{F}\cdot d\mathbf{r},
\qquad \intop_{0}^{1} x^2\,dx
\]Ein Mehrfachintegral lässt sich auch durch Wiederholen des Zeichens als \int\int setzen, doch der Abstand zwischen den Zeichen wirkt schlaff. amsmath bietet eigene Befehle mit engerem Abstand: das doppelte \iint, dreifache \iiint, vierfache \iiiint sowie \idotsint, das Punkte zwischen zwei Integralzeichen setzt (∫⋯∫). Die Verengung ist messbar – im Display ist \int\int 21,66666pt breit, \iint 16,66678pt. Das sind genau 5pt, ein halbes Geviert bei 10pt. \iiint ergab 23,33354pt, \iiiint 30,0003pt und \idotsint 34,9999pt. Wer die in der Physik üblichen geschlossenen Flächen- und Volumenintegrale braucht, findet im Paket esint unter anderem \oiint (geschlossene Fläche), \varoiint, \sqint, \sqiint, \ointclockwise, \ointctrclockwise und \fint. \oiiint gehört nicht dazu – für ein dreifach geschlossenes Integral muss ein anderes Schriftpaket herhalten. Ohne Zusatz kennt LaTeX nur \oint.
% preamble: \usepackage{amsmath}
\[
\iint_{D} f(x,y)\,dx\,dy,
\qquad \iiint_{V} f\,dV,
\qquad \iiiint f, \qquad \idotsint_{A} f\,dV
\]\limits und \nolimits: die Position erzwingen
Um die Voreinstellung zu überschreiben, schreibt man hinter den Operator \limits (oben und unten erzwingen) oder \nolimits (an die Seite erzwingen). Soll eine Summe im Fließtext ihre Grenzen stapeln, schreibt man \sum\limits_{k=1}^{n}; sollen die Grenzen über und unter einem abgesetzten Integral stehen, \int\limits_0^1. Wie der vorige Abschnitt zeigte, ist Letzteres dasselbe wie das nackte \intop – gemessen kommen beide auf 10,00002pt Breite, 21,12231pt Höhe und 15,789pt Tiefe. Um zur stilgekoppelten Voreinstellung zurückzukehren, dient \displaylimits.
% force limits above and below inside running text
The partial sum $\sum\limits_{k=1}^{n} k$ sits in the line.
% force limits above and below on a displayed integral
\[
\int\limits_{0}^{1} x^2\,dx = \frac{1}{3}
\]Für die Platzierung gilt eine Regel. \limits muss auf ein \mathop folgen; andernfalls bricht der Lauf ab mit ! Limit controls must follow a math operator. (TeX ergänzt I'm ignoring this misplaced \limits or \nolimits command.). Sowohl x\limits^2 als auch \frac{1}{2}\limits lösen das aus. Verbreitet ist allerdings die Annahme, hinter den Indizes geschrieben sei es ein Fehler – das stimmt nicht. \sum_{k=1}\limits^{n} übersetzt anstandslos und ergibt gemessen exakt dieselbe Box wie \sum\limits_{k=1}^{n}: 14,54521pt breit, 16,51393pt hoch, 13,02782pt tief. Das unmittelbar vorangehende Atom ist eben weiterhin der Operator. Dennoch ist unmittelbar hinter dem Operator für Lesende wie für einen selbst klarer – daraus sollte die Gewohnheit werden. Folgen mehrere von \limits, \nolimits und \displaylimits aufeinander, gewinnt das letzte: \sum\limits\nolimits_{k=1}^{n} landete an der Seite, \sum\nolimits\limits_{k=1}^{n} oben und unten. Von dieser Regel gibt es eine Ausnahme: Nach einem Funktionsnamen wie \log oder \lim wird \limits stillschweigend ignoriert, sobald amsmath geladen ist – amsopn.sty verschluckt es mit \@ifnextchar\limits{\nolimits\@gobble}, ohne Fehler und ohne Warnung. Gemessen: ohne amsmath beträgt die Tiefe von \log\limits_{k}x 9,4722pt, mit amsmath bleibt sie bei 2,44443pt – genau wie bei einfachem \log_{k}x. Für einen Index unter einem Funktionsnamen ist \DeclareMathOperator* das richtige Mittel.
Wer die Linie für ein ganzes Dokument ändern will, greift statt zum Einzelbefehl zu den Paketoptionen von amsmath. Die Zeilen 46–49 von amsmath.sty deklarieren intlimits, nointlimits, sumlimits und nosumlimits, und das \ExecuteOptions in Zeile 92–93 setzt die Voreinstellung auf nointlimits, sumlimits – genau das bisher beschriebene Verhalten. Mit \usepackage[intlimits]{amsmath} stapelt jedes abgesetzte Integral im Dokument seine Grenzen über und unter das Zeichen. Ausprobiert misst ein abgesetztes \int_0^1 dann 10,00002pt Breite, 21,12231pt Höhe und 15,789pt Tiefe und stimmt damit mit \intop_0^1 überein. Umgekehrt rückt nosumlimits auch die Summengrenzen an die Seite. Bevor man \limits über einzelne Formeln verstreut, lohnt sich diese Entscheidung auf Dokumentebene.
| Symbol / Befehl | Display-Stil | Textstil |
|---|---|---|
\sum, \prod, \bigcup | oben und unten gestapelt | an der rechten Seite |
\int, \oint, \iint | an der rechten Seite (ein \nolimits steckt in der Definition) | an der rechten Seite |
\intop, \ointop | oben und unten gestapelt (die nackte Glyphe, ohne \nolimits) | an der rechten Seite |
\limits | erzwingt oben und unten; direkt hinter den Operator setzen | erzwingt oben und unten |
\nolimits | erzwingt die Seite; direkt hinter den Operator setzen | erzwingt die Seite |
\displaylimits | zurück zur stilgekoppelten Voreinstellung (gestapelt) | zurück zur stilgekoppelten Voreinstellung (an der Seite) |
Die \lim-Familie: aufrechte Namen mit der Bedingung darunter
\lim (Grenzwert), \limsup (Limes superior) und \liminf (Limes inferior) sind Operatoren, die wie Funktionsnamen aufrecht, in Antiqua gesetzt werden; ihre Indizes verhalten sich jedoch nach Art der Sum-Klasse: im Display steht der Index direkt darunter, inline rechts unten. \limsup und \liminf erscheinen als zwei Wörter, „lim sup“ und „lim inf“, mit passendem Abstand dazwischen. \sup, \inf, \max und \min gehören zur selben Familie und setzen einen Index darunter (die Funktionsnamen sind auch auf der eigenen Seite „Grundlagen des Mathematikmodus“ gesammelt). Der Pfeil → ist \to, unendlich ist \infty.
\[
\lim_{n \to \infty} \frac{1}{n} = 0,
\qquad \limsup_{n \to \infty} a_n \ge \liminf_{n \to \infty} a_n,
\qquad \sup_{x \in X} f(x)
\]Die \bigcup-Familie: einem Binäroperator big voranstellen
Auch die in Mengenlehre, Logik und Algebra gebräuchlichen n-ären Operatoren haben große Varianten, genau wie \sum. Die Benennung ist mechanisch: Man nimmt den Namen des entsprechenden Binäroperators und stellt big voran. Zur binären Vereinigung \cup (A ∪ B) gehört die Variante variabler Größe \bigcup. Alle gehören zur Sum-Klasse, stapeln ihre Grenzen also im Display über und unter das Zeichen und setzen sie inline an die Seite. Gemessen ist ein abgesetztes \bigcup_{i=1}^{n} 12,95433pt breit, 16,51393pt hoch und 12,79865pt tief – nahezu dieselbe hohe, schmale Box wie bei \sum.
| Befehl | Bedeutung | Binäres Gegenstück |
|---|---|---|
\bigcup | Vereinigung (n-är) | \cup (∪) |
\bigcap | Durchschnitt (n-är) | \cap (∩) |
\bigsqcup | disjunkte Vereinigung | \sqcup (⊔) |
\biguplus | Multimengen-Vereinigung | \uplus (⊎) |
\bigvee | logisches ODER / Supremum | \vee (∨) |
\bigwedge | logisches UND / Infimum | \wedge (∧) |
\bigoplus | direkte Summe (Plus im Kreis) | \oplus (⊕) |
\bigotimes | Tensorprodukt (Mal im Kreis) | \otimes (⊗) |
\bigodot | Punkt im Kreis (n-är) | \odot (⊙) |
\[
\bigcup_{i=1}^{n} A_i, \qquad
\bigcap_{i \in I} A_i, \qquad
V = \bigoplus_{k} V_k
\]Zwei Zeilen Bedingungen unter der Summe: \substack und subarray
Man setzt \substack{…} aus amsmath als Ganzes an die Stelle des Index. Jede mit \\ getrennte Zeile wird zentriert gestapelt, sodass sich etwa „0 ≤ i ≤ m“ und „0 < j < n“ zweizeilig direkt unter das Σ setzen lassen. Hinter die letzte Zeile gehört kein \\. Für linksbündige Zeilen dient die allgemeinere Umgebung subarray: \begin{subarray}{l} … \end{subarray}. {l} steht für linksbündig, {c} für zentriert; Zeilen werden wie bei \substack mit \\ umbrochen. Tatsächlich lautet die Definition von \substack schlicht \subarray{c}…\endsubarray – beide sind dieselbe Mechanik mit verschiedenen Gesichtern. Klammern oder Linien über und unter einem Symbol – \overbrace, \underbrace, \overline – sind eine andere Frage und stehen auf der eigenen Seite „Über- und Unterschriften“. Hier geht es ausschließlich um die Grenzen eines Operators.
% preamble: \usepackage{amsmath}
\[
\sum_{\substack{0 \le i \le m \\ 0 < j < n}} P(i,j)
\qquad
\sum_{\begin{subarray}{l} i \in \Lambda \\ 0 < j < n \end{subarray}} P(i,j)
\]argmax selbst definieren – was der Stern in \DeclareMathOperator* bewirkt
Der Stern entscheidet, ob die Bedingung direkt darunter oder rechts unten steht. Wenn ein Operatorname gebraucht wird, den die Standardliste nicht kennt – argmax, argmin, esssup –, aufrecht gesetzt und mit dem Index direkt darunter wie bei \lim, deklariert man ihn einmal in der Präambel mit \DeclareMathOperator* aus amsmath und ruft ihn im Text als kurzen Befehl auf. Ohne Stern sitzt der Index rechts unten am Namen. Die Messung zeigt es: Die Box von \operatorname*{argmax}_{\theta} ist 9,4722pt tief – sie wächst nach unten –, während das sternlose \operatorname{argmax}_{\theta} 37,05215pt breit und nur 2,44443pt tief ist, also nach rechts wächst. Für den Einzelfall lässt sich auch direkt \operatorname{rank} schreiben, ganz ohne Deklaration (oder \operatorname*{…}, um die Grenze darunter zu setzen).
% in the preamble:
\usepackage{amsmath}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator{\rank}{rank}
% in the body:
\[
\hat{\theta} = \argmax_{\theta} L(\theta),
\qquad \rank A \le n,
\qquad \sideset{}{'}\sum_{n} a_n
\]Für den Namenstext gelten eigene Konventionen: Ein Bindestrich - wird als gewöhnlicher Textbindestrich gesetzt (nicht als Minuszeichen), ein Sternchen * als hochgestellter Textstern (nicht als zentrierter binärer Stern). Das \, in arg\,max ist der schmale Abstand, der die beiden Wörter trennt. Funktionsnamen setzt man mit \DeclareMathOperator oder \mathrm, nicht mit \text{…}; dann wird der Abstand ringsum automatisch angepasst, und sie bleiben auch in kursivem Umfeld wie einer Theorem-Umgebung aufrecht. Und schließlich: Sollen an den vier Ecken eines Sum-Klassen-Zeichens Indizes stehen – etwa ein Strich (′) an einer Summe –, bietet amsmath \sideset. \sideset{}{'}\sum_{n} a_n setzt rechts oben am Σ einen Strich und lässt die Grenze weiterhin darunter. Das erste Argument bestimmt die beiden linken Ecken, das zweite die beiden rechten; innerhalb jedes Arguments schreibt man _{unten}^{oben}. Zu beachten: Es funktioniert nur bei Zeichen der Sum-Klasse.