array

Aus goLaTeX

array ist die im LaTeX-Kern definierte Umgebung für tabellenartige Konstrukte im Mathematik Modus.

Verwendung

Syntax

\begin{array}[vertikale Ausrichtung]{Spaltendeklaration}Körper\end{array}

Parameter

[vertikale Ausrichtung]
Der optionale Parameter bestimmt die vertikale Ausrichtung des Arrays. In der Voreinstellung, also bei Weglassen des gesamten optionalen Parameters wird der gesamte Array vertikal zentriert. Daneben werden folgende Angaben für vertikale Ausrichtung interpretiert:
t
Die Grundlinie der obersten Zeile des Arrays wird mit der aktuellen Grundlinie (außerhalb des Arrays) ausgerichtet.
b
Die Grundlinie der untersten Zeile des Arrays wird mit der aktuellen Grundlinie (außerhalb des Arrays) ausgerichtet.
Alle unbekannten Angaben werden dagegen wie die Voreinstellung interpretiert.
{Spaltendeklaration}
Die gesamte Spaltendeklaration setzt sich aus Einzeldeklarationen für die einzelnen Spalten und Spaltenzwischenräumen zusammen. Folgende Einzeldeklarationen sind im LaTeX-Kern definiert:
l
Die Spalte wird linksbündig ausgerichtet. Ihre Breite richtet sich nach dem breitesten Element in der Spalte.
c
Die Spalte wird horizontal zentriert. Ihre Breite richtet sich nach dem breitesten Element in der Spalte.
r
Die Spalte wird rechtsbündig ausgerichtet. Ihre Breite richtet sich nach dem breitesten Element in der Spalte.
p{Breite}
Textspalte der angegebenen Breite. Der Text wird im Blocksatz automatisch umbrochen.
|
Spaltentrenner, der eine (durchgehende) vertikale Linie zwischen zwei Spalten oder vor der ersten oder nach der letzten Spalte erzeugt.
@{Spaltentrennung}
Statt des normalen Spaltenzwischenraums (siehe \arraycolsep) wird der als Spaltentrennung angegebene Code ausgeführt.
*{Anzahl}{Spaltendeklaration}
Die Spaltendeklaration wird entsprechend der angegebenen Anzahl wiederholt. Dabei darf die Spaltendeklaration selbst erneut *-Deklarationen enthalten.
Bei Verwendung des Pakets array stehen weitere Spaltentrenner zur Verfügung und können weitere Einzeldeklarationen für Spalten definiert werden. Diverse Pakete wie siunitx machen davon Gebrauch.
Körper
Der Inhalt des Arrays. Ein Array ist in Zeilen und Spalten aufgeteilt. Die Zeilen werden mit \\[Abstand] voneinander getrennt. Der optionale Abstand stellt dabei eine Vergrößerung des normalen Abstandes nach der Zeile dar. Innerhalb einer Zeile werden die Spalten mit & voneinander getrennt.

Beschreibung

In der Regel dient der Befehl dazu, um im mathematischen Modus eine Matrix oder ähnliche Konstrukte zu setzen (siehe das Beispiel).

Es sei darauf hingewiesen, dass als Zeilentrenner statt \\[Abstand] auch die Sternform \\*[Abstand] möglich ist, diese jedoch normalerweise keine Rolle spielt, weil im mathematischen Modus ohnehin kein Seitenumbruch zwischen den Zeilen einer array-Umgebung möglich ist. Trotzdem spielt die reine Möglichkeit der Verwendung der Sternform eine Rolle. Will man nämlich am Anfang der nächsten Zeile per * ein Asterisk setzen, so muss verhindert werden, dass dieses Zeichen als Teil des Zeilentrenners missdeutet wird. Dies ist beispielsweise per \relax vor dem Asterisk möglich.

Es sei an dieser Stelle auch noch einmal explizit darauf hingewiesen, dass der Inhalt einer p-Spalte immer im Textmodus gesetzt wird. Das kann man einerseits dafür nutzen, wenn man in einem Array tatsächlich eine Textspalte einfügen will. Andererseits erschwert es, die Definition von mathematischen Arrays mit festen Spaltenbreiten.

Für die Eingabe von Matrizen bieten übrigens die Pakete amsmath und mathtools erweiterte Möglichkeiten.

Fehlermeldungen

Missing $ inserted.
Wird diese Fehlermeldung für \begin{array} gemeldet, so wurde fälschlich versucht, die Umgebung im Textmodus zu verwenden. In der Regel wird die Fehlermeldung dann erneut für \end{array} gemeldet. In diesem Fall sollte die gesamte Umgebung mit einer mathematischen Umgebung also beispielsweise $…$ oder \[…\] umschlossen werden.
Die Fehlermeldung tritt auch auf, wenn man versucht, innerhalb einer p-Spalte mathematische Befehle zu verwenden. In diesem Fall, ist innerhalb der Spalte zunächst in den mathematischen Modus zu wechseln (in der Regel mit $…$).

Beispiele

\documentclass{article}
\usepackage[ngerman]{babel}
\begin{document}
\section{Die Einheitsmatrix}
Die Einheitsmatrix ist eine quadratische Matrix, mit Einselementen auf der
Hauptdiagonale und Nullelementen abseits der Hauptdiagonalen. Beispiel:
\[
  I_4=\left( \begin{array}{cccc}
               1 & 0 & 0 & 0 \\
               0 & 1 & 0 & 0 \\
               0 & 0 & 1 & 0 \\
               0 & 0 & 0 & 1
             \end{array} \right)
\]
\end{document}

Das Beispiel veranschaulicht die Verwendung einer Matrix mit vier Zeilen und vier Spalten. Die Spaltendeklaration cccc hätte dabei auch als *{4}{c} (und sogar verkürzt als *4c) oder *{2}{cc} (oder verkürzt als *2{cc}) geschrieben werden können. Die Spalten sind jeweils horizontal zentriert. Deutlich wird dies, wenn beispielsweise die 1 durch 111 ersetzt wird. Durch Ersetzen einzelner c-Spalten in der Spaltendeklaration durch l oder r kann dann auch die linksbündige oder rechtsbündige Ausrichtung getestet werden:

\documentclass{article}
\usepackage[ngerman]{babel}
\begin{document}
\section{Die Einheitsmatrix}
Das folgende ist keine Einheitsmatrix:
\[
  M_3=\left( \begin{array}{lcr}
               111 & 0 & 0 \\
               0 & 111 & 0 \\
               \relax* & 0 & 111 \\
             \end{array} \right)
\]
\end{document}

An diesem Beispiel wurde auch das Einfügen eines * in der ersten Spalte demonstriert. Lässt man \relax an dieser Stelle weg, verschwindet das Asterisk-Zeichen in der Ausgabe, weil es als Teil von \\* interpretiert wird.

Ändert man dagegen die vertikale Ausrichtung der array-Umgebung, so ergibt sich ein zunächst vielleicht überaschendes Bild:

\documentclass{article}
\usepackage[ngerman]{babel}
\begin{document}
\section{Die Einheitsmatrix}
Die Einheitsmatrix ist eine quadratische Matrix, mit Einselementen auf der
Hauptdiagonale und Nullelementen abseits der Hauptdiagonalen. Beispiele:
\begin{eqnarray*}
  I_4 &=& \left( \begin{array}[t]{cccc}
                   1 & 0 & 0 & 0 \tabularnewline
                               0 & 1 & 0 & 0 \\
                   0 & 0 & 1 & 0 \\
                   0 & 0 & 0 & 1
                 \end{array} \right)\\
  I_4 &=& \left( \begin{array}[b]{cccc}
                   1 & 0 & 0 & 0 \tabularnewline
                               0 & 1 & 0 & 0 \\
                   0 & 0 & 1 & 0 \\
                   0 & 0 & 0 & 1
                 \end{array} \right)\\
\end{eqnarray*}
\end{document}

In der Darstellung erscheint die Matrix innerhalb der Klammern nach unten bzw. oben verschoben. Dies ist jedoch korrekt, da \left(…\right) die Klammern immer zentriert zur Grundlinie setzt. Da nun die Grundlinie innerhalb der Matrix an der oberen bzw. unteren Zeile ausgerichtet ist, erscheint der Inhalt relativ zu den Klammern verschoben. Das vermutlich erwartete Bild ergibt sich nur ohne die Klammer:

\documentclass{article}
\begin{document}
\begin{eqnarray*}
  I_4 &=& \begin{array}[t]{cccc}
                   1 & 0 & 0 & 0 \tabularnewline
                               0 & 1 & 0 & 0 \\
                   0 & 0 & 1 & 0 \\
                   0 & 0 & 0 & 1
                 \end{array} \right)\\
  I_4 &=& \begin{array}[b]{cccc}
                   1 & 0 & 0 & 0 \tabularnewline
                               0 & 1 & 0 & 0 \\
                   0 & 0 & 1 & 0 \\
                   0 & 0 & 0 & 1
                 \end{array} \right)\\
\end{eqnarray*}
\end{document}

Verwandte Umgebungen

tabular, matrix (Paket amsmath), pmatrix (Paket amsmath), bmatrix (Paket amsmath), Bmatrix (Paket amsmath), vmatrix (Paket amsmath), Vmatrix (Paket amsmath), smallmatrix (Paket amsmath), psmallmatrix (Paket mathtools), bsmallmatrix (Paket mathtools), Bsmallmatrix (Paket mathtools), vsmallmatrix (Paket mathtools), Vsmallmatrix (Paket mathtools), cases (Paket amsmath), dcases (Paket mathtools), rcases (Paket mathtools), drcases (Paket mathtools)

Verweise

Die Umgebung array ist in den LaTeX-Quellen in Datei lttab.dtx definiert und in source2e.pdf dokumentiert.

Links

array, amsmath, mathtools