Matrizen, Vektoren und jede gitterartig gesetzte Mathematik werden entweder mit den Matrixumgebungen des Pakets amsmath (pmatrix und Verwandte) oder mit der allgemeineren array-Umgebung gesetzt. Beide fühlen sich gleich an: Einträge werden zeilenweise mit & getrennt und mit \\ in die nächste Zeile gebracht. Sie unterscheiden sich aber darin, welche Klammern sie hinzufügen und wie frei sich die Ausrichtung steuern lässt. Diese Seite geht die Matrixumgebungen und ihre Einsatzzwecke durch, zeigt array für eigene Spaltenausrichtung und Linien, erklärt erweiterte Matrizen und behandelt die Punkte \cdots, \vdots, \ddots, die in einer Matrix „und so weiter“ bedeuten.
Die Matrixumgebungen von amsmath
Am einfachsten setzt man eine Matrix mit den Matrixumgebungen des Pakets amsmath; nach \usepackage{amsmath} in der Präambel stehen sie bereit. Alle werden im Mathematikmodus benutzt. Einträge werden innerhalb einer Zeile mit & getrennt, Zeilen mit \\ beendet. Der einzige Unterschied zwischen den Umgebungen ist der Delimiter um die Matrix; der Inhalt wird jeweils gleich geschrieben.
Die Namen folgen einem Muster. Der Anfangsbuchstabe benennt den Delimiter: p für parentheses, b für brackets, v für vertical bar. Die groß beginnenden Formen Bmatrix und Vmatrix liefern die „stärkeren“ geschweiften Klammern beziehungsweise Doppelstriche. Das einfache matrix fügt gar keinen Delimiter hinzu.
| Umgebung | Hinzugefügter Delimiter | Typische Verwendung |
|---|---|---|
matrix | keiner | Basis, wenn du eigene Delimiter ergänzt |
pmatrix | runde Klammern ( ) | Die häufigsten Matrizen und Spaltenvektoren |
bmatrix | eckige Klammern [ ] | Matrizen in der eckigen Konvention |
Bmatrix | geschweifte Klammern { } | Wenn geschweifte Klammern gewünscht sind |
vmatrix | einfache Striche | | | Determinanten |
Vmatrix | Doppelstriche ‖ ‖ | Normen |
smallmatrix | keiner (kompakt) | Eine kleine Matrix im laufenden Text |
Das folgende Beispiel setzt denselben 2×2-Inhalt mit pmatrix, bmatrix und vmatrix. Leerzeichen und Zeilenumbrüche um \\ beeinflussen die Ausgabe nicht; du kannst die Quelle also gut lesbar formatieren.
\[
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\quad
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\quad
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}
\]Die Ausgabe zeigt drei zentrierte 2×2-Matrizen in einer eigenen Zeile, getrennt durch \quad: die erste in runden Klammern, die zweite in eckigen Klammern, die dritte mit senkrechten Strichen als Determinante. Die Einträge sind zentriert, und a, b, c, d werden als Variablen kursiv gesetzt.
Beachte, dass Einträge in den Matrixumgebungen immer zentriert sind; rechts- oder linksbündige Spalten lassen sich dort nicht verlangen. Wenn du die Ausrichtung selbst wählen musst, verwende die unten beschriebene array-Umgebung oder die Sternvarianten (pmatrix*, bmatrix* usw.) aus dem Paket mathtools. Diese Formen nehmen ein optionales Argument [r], [c] oder [l] und richten alle Spalten entsprechend aus, etwa \begin{pmatrix*}[r] … \end{pmatrix*}.
Die Spaltengrenze (MaxMatrixCols)
Standardmäßig erlauben die Matrixumgebungen von amsmath höchstens 10 Spalten. Der Grund ist, dass der Zähler MaxMatrixCols anfänglich auf 10 steht. Versuchst du eine Matrix mit elf oder mehr Spalten zu setzen, erscheint ein Fehler wegen zu vieler Spalten.
Wenn du mehr brauchst, erhöhst du die Grenze mit \setcounter{MaxMatrixCols}{n}. Um zum Beispiel bis zu 20 Spalten zu erlauben, schreibe Folgendes. Größere Werte bedeuten mehr Arbeit für LaTeX, aber auf heutigen TeX-Systemen hat ein Wert um 20 praktisch kaum Auswirkungen. Um den Originalzustand wiederherzustellen, setze den Wert zurück auf 10.
\setcounter{MaxMatrixCols}{20}
\[
\begin{pmatrix}
a_{1} & a_{2} & \cdots & a_{12}
\end{pmatrix}
\]Diese Grenze betrifft nur die Matrixumgebungen von amsmath, nicht die als Nächstes beschriebene array-Umgebung; bei array listest du in der Spaltenspezifikation einfach so viele Spalten auf, wie du brauchst.
Die array-Umgebung
Die array-Umgebung ist ein allgemeines Gitter, in dem du Ausrichtung und Linien selbst wählst. Sie ist das Mathematikmodus-Gegenstück zur Texttabellen-Umgebung tabular und kann nur im Mathematikmodus verwendet werden, etwa innerhalb von \[ \] oder einer equation-Umgebung. Einträge werden wie bei tabular mit & und \\ getrennt, aber jeder Eintrag wird als Mathematik im Textstil gesetzt.
Die array-Umgebung verlangt eine Spaltenspezifikation. Du schreibst pro Spalte einen Ausrichtungsbuchstaben, etwa {ccc}: l für linksbündig, c für zentriert, r für rechtsbündig. Ein | zwischen den Buchstaben zeichnet an dieser Stelle eine vertikale Linie. {l|c|r} bedeutet also drei Spalten: links, Linie, zentriert, Linie, rechts.
array fügt selbst keinen Delimiter hinzu. Soll es als Matrix in Klammern stehen, schließe es von Hand in \left( … \right) ein, oder etwa in \left[ … \right]. Da \left und \right den Delimiter auf die Höhe ihres Inhalts dehnen, umspannen die Klammern auch bei vielen Zeilen sauber die ganze Matrix. Das ist die manuelle Fassung dessen, was die amsmath-Matrixumgebungen intern für dich erledigen.
\[
\left(\begin{array}{rrr}
1 & -2 & 3 \\
0 & 5 & -1 \\
4 & 0 & 2
\end{array}\right)
\]Die Ausgabe ist eine 3×3-Matrix in runden Klammern. Weil die Spaltenspezifikation {rrr} lautet, ist jede Spalte rechtsbündig; negative Einträge wie -2 und -1 richten sich rechts aus und lassen sich sauber lesen. Entscheidend ist: Anders als pmatrix, das immer zentriert, lässt array die Ausrichtung wählen.
Erweiterte Matrizen (mit Linie)
Bei einer erweiterten Matrix, wie sie ein lineares Gleichungssystem darstellt, möchte man oft mitten in der Matrix eine vertikale Linie. amsmath-Umgebungen wie bmatrix nehmen keine Spaltenspezifikation an und können daher keine solche Linie zeichnen; das | in einer array-Spaltenspezifikation kann es. Gib eine Spezifikation mit | zwischen Koeffizientenspalten und rechter Seite an, etwa {cc|c}, und umschließe alles mit \left[ … \right].
\[
\left[\begin{array}{cc|c}
1 & 2 & 5 \\
3 & 4 & 6
\end{array}\right]
\]Die Ausgabe ist eine erweiterte Matrix in eckigen Klammern: zwei Zeilen mit einer vertikalen Linie zwischen zweiter und dritter Spalte. 1 2 / 3 4 links ist die Koeffizientenmatrix, 5 / 6 rechts der Linie ist die Konstantenspalte. Weil \left[ und \right] die Klammern auf die Höhe des Inhalts strecken, bleibt das auch bei mehr Zeilen stabil.
Für dasselbe mit runden Klammern wechselst du zu \left( … \right); für geschweifte Klammern zu \left\{ … \right\}. Das Paket mathtools bietet außerdem knappere Schreibweisen für solche erweiterten Matrizen.
Punkte in Matrizen (…, ⋮, ⋱)
Für eine allgemeine n×n-Matrix brauchst du Auslassungspunkte, die „und so weiter“ bedeuten. LaTeX stellt vier Varianten mit unterschiedlicher Richtung bereit; welche du nimmst, hängt davon ab, wo sie in der Matrix stehen. Alle sind Mathematikmodus-Befehle.
\cdots— waagerechte Punkte auf mittlerer Höhe (⋯), um Einträge in einer Zeile auszulassen. Sie stehen auf der Höhe von+und=und passen daher zu einer horizontalen Folge.\vdots— vertikale Punkte (⋮), um Einträge in einer Spalte auszulassen.\ddots— diagonale, nach rechts unten laufende Punkte (⋱), für Auslassungen entlang der Hauptdiagonale.\ldotsund das kontextabhängige\dots— waagerechte Punkte auf der Grundlinie (…), für Zahlen- oder Indexfolgen. Innerhalb einer Matrix sieht\cdotsmeist besser aus.
Standardmäßig setzt man \cdots für horizontale Auslassungen, \vdots für vertikale und \ddots für diagonale, jeweils als Eintrag der Matrix. Unten steht die klassische Schreibweise einer allgemeinen n×n-Matrix mit pmatrix.
\[
A =
\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{pmatrix}
\]Die Ausgabe ist eine m×n-Matrix in runden Klammern. In der ersten, zweiten und letzten Zeile füllt \cdots in der dritten Spalte die Lücke zwischen a_{12} und a_{1n} mit waagerechten Punkten auf mittlerer Höhe; in der dritten Zeile liefern \vdots vertikale Punkte in den Spalten, während \ddots an der Diagonalposition nach rechts unten laufende Punkte setzt. Zusammen zeigen sie, dass Zeilen und Spalten entsprechend weitergehen. Indizes wie a_{11} werden mit _ tiefgestellt.
Um eine ganze Zeile mit Punkten zu füllen, spannt \hdotsfor{n} aus amsmath die angegebenen n Spalten mit einer Reihe waagerechter Punkte auf.
Kleine Matrizen im Fließtext (smallmatrix)
Setzt man pmatrix und Ähnliches in Inline-Mathematik, also in $ … $ im laufenden Text, wächst die Zeilenhöhe stark und der Zeilenabstand wird unruhig. Um eine kleine Matrix in den Textfluss einzubetten, verwende amsmaths smallmatrix-Umgebung. Sie setzt die Einträge klein und kompakt und verändert die Zeilenhöhe kaum.
smallmatrix fügt selbst keinen Delimiter hinzu; wenn du einen brauchst, umschließe es von Hand, etwa mit \bigl( … \bigr). Du kannst auch \left( \right) verwenden, aber inline stören die festen Größen \bigl und \bigr den Zeilenabstand oft weniger.
回転行列 $\bigl(\begin{smallmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{smallmatrix}\bigr)$ を考える。Das setzt eine kleine 2×2-Rotationsmatrix in runden Klammern innerhalb einer Textzeile, ohne die Zeilenhöhe stark zu stören. \cos und \sin werden als aufrechte Funktionsnamen gesetzt.