Für den Satz von Tabellen gibt es standardmäßig 3 Umgebungen, die dies ermöglichen. Weitere Umgebungen mit zusätzlichen Möglichkeiten sind über Zusatzpakete verfügbar.
Die Syntax der Umgebungen ist
Syntax Tabellenumgebungen
\begin{array}[pos]{sp_form} ... Zeilen ... \end{array}
\begin{tabular}[pos]{sp_form} ... Zeilen ... \end{tabular}
\begin{tabular*}{breite}[pos]{sp_form} ... Zeilen ... \end{tabular*}
Die array-Umgebung kann nur im mathematischen Modus verwendet werden und wird insbesondere für Matrizen verwendet. Syntax und Bedeutung der Parameter sind jedoch wie die der Tabellenumgebungen.
Grundsätzlich sind die Tabellenumgebungen wie folgt aufgebaut:
tabular*-Umgebung kann die Gesamtbreite der Tabelle angegeben werden. Bei den anderen beiden Tabellenumgebungen wird diese dynamisch von LaTeX anhand des Inhalts und der Spaltendefinitionen selbst bestimmt. Wird eine Breite angegeben, so sollte nach dem ersten Eintrag der Spaltendefinition (sp_form) @{\extracolsep{\fill} oder @{\extracolsep\fill} eingefügt werden.*{5}{|c}| äquivalent mit |c|c|c|c|c|.
Der Inhalt einer Tabelle wird innerhalb der Tabellenumgebung definiert. Hierbei werden einzelne Tabellenzeilen durch \\ getrennt, die einzelnen Zellen einer Zeile werden durch ein &-Zeichen voneinander getrennt. Hierdurch ist es auch möglich, Tabellenzeilen über mehrere Zeilen in der Quelldatei einzutragen und hier eine übersichtlichere Darstellung zu erreichen. Die Tabellenzeilen sollten so viele Spalten enthalten, wie sie in den Umgebungsparametern definiert wurden - die Spalten können auch leer sein (d.h. zwischen den & existiert kein Text, der von LaTeX gesetzt wird). Andernfalls werden vertikale Linien nicht vollständig gezeichnet.
Innerhalb einer Zelle geänderte Einstellungen (z.B. Schrifttyp) hat keinen Einfluß auf die anderen Zellen.
Zusätzlich zum Text können noch weitere Steuerungsbefehle für den Satz einer Tabelle per Zeile definiert werden:
\\) vorkommen. Wird dieses Kommando zweimal hintereinander angegeben, so wird eine Doppellinie gezeichnet.l, c oder r annehmen. Zusätzlich können @-Zusätze (siehe oben) sowie vertikale Linien eingefügt werden. Eine num = 1 kann dazu verwendet werden, um eine Zelle anders wie den Rest der Zelle zu formatieren. Dieses Kommando darf nur am Beginn einer Zeile oder direkt nach einem Spaltentrennzeichen (&) angegeben werden.Für den Stil einer Tabelle gibt es mehrere Einstellungsmöglichkeiten, die global oder innerhalb einer Umgebung modifiziert werden können (jedoch nicht innerhalb einer Tabellenumgebung). Die Einstellmöglichkeiten sind:
\tabcolsep: halbe Breite zwischen Spalten in tabular- und tabular*-Umgebungen. \arraycolsep: wie \tabcolsep, nur für die array-Umgebung.\doublerulesep: Abstand von Doppellinien.\arrayrulewidth: Dicke der Linien einstellen.
Diese 4 Einstellungsmöglichkeiten können über eine \setlength-Erklärung modifiziert werden.
Zusätzlich gibt es noch das Kommando \arraystretch, womit der Zeilenabstand in der Tabelle bestimmt wird. Soll dies geändert werden, muß das Kommando redefiniert werden. Als Kommandoinhalt wird ein Faktor angegeben, der mit dem normalen Zeilenabstand multipliziert wird.
Für die Tabellenumgebungen gibt es mehrere Erweiterungen, die die Funktionalität des Tabellensatzes vervollständigen und eine größere Spannbreite an Formatierungsmöglichkeiten bieten. Einige diese Erweiterungen sollen im Folgenden vorgestellt werden.
Dieses Paket von Frank Mittelbach erweitert die Möglichkeiten der Spaltenformatierungen für die tabular-, tabular*- und array-Umgebungen. Die Positionierungs- und Breitenangaben bleiben dabei unverändert.
Neu hinzugekommen sind die folgenden Spaltenformatierungsparameter:
m{breite}: Wie der Spaltenformatierungsparameter p, nur daß hier der Text mittig in vertikaler Richtung ausgerichtet wird.b{breite}: Wie der Spaltenformatierungsparameter p, nur daß hier der Text vertikal an der untersten Zeile ausgerichtet wird.>{erkl}: Die angegebene Erklärung (erkl) wird vor jedem Spalteneintrag gesetzt und kann neben normalen Text auch Befehlsfolgen enthalten. Kann direkt vor einer l-, c-, r-, p{…}-, m{…}- oder b{…}- Spaltenausrichtungsformatierungsangabe angegeben werden.<{erkl}: Die angegebene Erklärung (erkl) wird nach jedem Spalteneintrag gesetzt und kann neben normalen Text auch Befehlsfolgen enthalten. Kann direkt nach einer l-, c-, r-, p{…}-, m{…}- oder b{…}- Spaltenausrichtungsformatierungsangabe angegeben werden.!{erkl}: Die angegebene Erklärung (erkl) wird zwischen benachbarten Spalten eingefügt, ohne den zusätzlichen Spaltenzwischenraum zu entfernen.Geändert wurden die folgenden Parameter:
| und ||: Fügt eine vertikale Linie/vertikale Doppellinie ein vergrößert den Spaltenzwischenraum um die Breite der Linie/der Doppellinie.Neu hinzugekommen ist noch eine Längenerklärung:
\extrarowheight: dieser Abstand wird der Zeilenhöhe hinzugefügt. Bei horizontalen Trennlinien passiert es, daß die Oberlänge der Buchstaben zu nah an die darüberliegende Trennlinie herankommen. Ein Zusatzabstand von 1pt kann dies beheben.Ebenso ist ein neues Kommando hinzugekommen, mit dem eigene Spaltenformatierungen definiert werden können.
\newcolumntype{typenkennung}{definition}
Hiermit ist es möglich, komplexere und häufiger verwendete Spaltenformatierungen einen eigenen Namen zu geben und diese einfacher zu verwenden. Die typenkennung kann dann als Spaltenformatierungsparameter verwendet werden und wird durch definition ersetzt. Die definition kann dabei alles enthalten, was an Spaltenformatierungsparameter gültig ist. Dabei ist definition nicht nur auf eine Spaltenformatierung für eine Spalte beschränkt, sie kann auch Spaltenformatierungen für mehrere Spalten enthalten.
Bei der vertikalen Ausrichtung der Tabelle mit dem Parameter pos können sowohl bei der Standard LaTeX-Tabelle wie auch bei Verwendung von array.sty Fehlpositionierungen auftreten, wenn die Tabelle mit einer horizontalen Linie beginnt bzw. endet. Dieses Problem wird durch array.sty durch die beiden neuen Kommandos \firsthline und \lasthline behoben, wenn anstelle der einleitenden bzw. abschließenden \hline-Befehle diese durch die neuen Kommandos ersetzt werden.
Dieses Paket von David Carlisle bietet die Möglichkeit, Spalten mit Dezimalzahlen nach dem Dezimaltrennzeichen auszurichten. Hierfür stellt dieses Paket einen neuen Spaltenformatierungsparameter D mit der Syntax
D{eingabe_zeichen}{ausgabe_zeichen}{dezimal_stellen}
bereit.
Der Vorteil, Eingabe- und Ausgabezeichen anzugeben, ist offensichtlich. Eingabedaten (z.B. Meßwerte, Daten aus anderen Programmen), die ein anderes Dezimaltrennzeichen verwenden, können ohne Modifikation der Eingabedaten in die richtige Dezimalformatierung für das Ausgabedokument umgewandelt werden. Mit der Verwendung von eigenen Spaltendefinitionen über \newcolumntype kann dies auch zentral im Dokument durchgeführt werden.
Dieses Paket ist ebenfalls von David Carlisle und Erweitert die Erstellung von Feldstrukturen mit der array-Umgebung. Hierfür wird die Syntax der array-Umgebung wie folgt verändert:
\begin{array}[pos] lkl{sp_form}rkl ... Zeilen ... \end{array}
Dabei ist lkl bzw. rkl ein linkes bzw. rechtes Klammersymbol, was zusätzlich eingefügt wird. Die Wirkung dieser veränderten array-Umgebung ist identisch zu
\left lkl \begin{array}[pos]{sp_form} ... Zeilen ... \end{array} \right rkl
mit der array-Standardumgebung.
Paket von David Carlisle für erweiterte Einfach- und Doppelumrandungen innerhalb von Tabellen und Feldern. Für array- und tabular-Umgebungen wird der Befehl
\hhline{lform}
definiert, der die Formatierung der Linienstruktur für Spalten- und Zwischenspalten mittels dem Parameter lform ermöglicht. Für lform stehen die folgenden Parameter für die Linien zur Verfügung:
=: horizontale Doppellinie von der Breite der zugehörigen Spalte;-: horizontale Einfachlinie von der Breite der zugehörigen Spalte;~: Unterdrückung der horizontalen Linienstruktur für die zugehörige Spalte;|: vertikale Linie zwischen zwei Spalten mit der Höhe der horizontalen Doppellinie.:: unsichtbare vertikale Linie zwischen zwei Spalten mit der Höhe der horizontalen Doppellinie.#: horizontales Doppelliniensegment mit der Breite einer vertikalen Doppellinie.t: obere Linie eines horizontalen Doppelliniensegments mit der Breite einer vertikalen Doppellinie.b: untere Linie eines horizontalen Doppelliniensegments mit der Breite einer vertikalen Doppellinie.*: mit *{n}{format} wird das Format format n-mal wiederholt.
Paket von David Carlisle für Tabellen mit einer vorgegebenen Breite. Mit der Standardumgebung tabular* kann zwar bereits die Tabellenbreite vorgegeben werden, jedoch wird die Breite der Spalten in der tabularx-Umgebung, um die Tabellenbreite zu erreichen, anders bestimmt. Die Syntax der Umgebung ist
Syntax ''tabularx''-Umgebung
\begin{tabularx}{breite}[pos]{sp_form} ... Zeilen ... \end{tabularx}
Tabellen-Parameter
X. Dieser setzt die Spalte in Absatzform (wie der Parameter p bzw. m und b aus array.sty), jedoch muß hierbei keine Breite angegeben werden, sondern es wird soviel Breite hierfür verwendet, wie noch zur Verfügung steht, um die vorgegebene Tabellenbreite zu verwenden. Werden in sp_form mehrere X-Formatierungsparameter eingefügt, so wird die noch verbleibende Breite gleichmäßig auf alle X-Spalten aufgeteilt.
Da tabularx.sty explizit array.sty einließt, muß array.sty für die Verwendung von tabularx.sty vorhanden sein. Die Erweiterungen aus ''array.sty'' können auch in der tabularx-Umgebungen verwendet werden. Hiermit kann beispielsweise über die Spaltenformatierung >{\raggedright\arraybackslash}X die Spalte linksbündig gesetzt werden (\arraybackslash ist notwendig, da \raggedright den Zeilenendebefehl umdefiniert und es sonst zu einem Bearbeitungsfehler kommt). Wird häufiger eine bestimmte Spaltenformatierung benötigt, kann diese ebenfalls über \newcolumntype (siehe ''array.sty'') zentral definiert werden.
Mit der Vorspannerklärung \tracingtabularx werden die berechneten Breiten der Tabellenspalten am Bildschirm und in der Logdatei ausgegeben.
Paket von David Carlisle um (lange) Tabellen auf mehrere Seiten zu verteilen, also einen Seitenumbruch innerhalb von Tabellen zu ermöglichen.