Das LaTeX multirow Paket (Version 2.4) wird beim Satz von mehrzeiligen Tabellenzellen verwendet.[1] Durch das Paket ist es nun möglich innerhalb von Tabellen nicht nur Spalten, sondern auch Zeilen zusammen zufassen. Diese zwei Varianten können darüber hinaus auch kombiniert werden, sodass mehrere Spalten zusammen mit mehreren Zeilen zu einer neuen Zelle zusammengefasst werden können.
Das Paket wird mit \usepackage{multirow} eingebunden, es fügt keine weiteren Pakete mit ein.
Das Paket hat die folgenden zwei Optionen: debug und longtable.
Wenn die Option debug gesetzt wird, werden Informationen über die mehrzeilige Zelle(n) innerhalb der Tabelle(n) in die log Datei geschrieben. Dabei ist zu beachten, dass durch das Einfügen der Option der LaTeX Kompilier eine Fehlermeldung bringt, auch wenn es keinen Fehler an der Stelle gibt. es handelt sich also eher um einen Hinweis, dass der debug Modus aktiviert ist.
Durch den Befehl \multirowdebugfalse wird der debug Modus ab der Stelle an der Befehl gesetzt wurde wieder deaktiviert. Mit dem Befehl \multirowdebugtrue wird der debug Modus wieder aktiviert. Die Befehle sind dann interessant, wenn es mehrere verschiedene Tabellen gibt die multirow verwenden. Durch die Verwendung der Befehle lässt sich die Anzahl der Hinweismeldungen des Kompiliers reduzieren.
Wenn neben dem multirow Paket auch das longtable Paket verwendet wird sollte die Option longtable (\usepackage[longtable]{multirow}) gesetzt werden da es sonst zu Problemen mit dem cline Befehl kommen kann.
Der \multirow Befehl fasst mehrere Zeilen einer Spalte zusammen. Sollen mehrere Zeilen von mehreren Spalten zusammengefasst werden, wird zusätzlich der \multicolumn Befehl benötigt.
Der Befehl hat drei verpflichtende Angaben, die Anzahl der Zeilen, die Breite der Spalte und den Inhalt der neuen Zelle.
\multirow{Anzahl der Zeilen}{Breite der Spalte}{Inhalt der Zelle}
Anzahl der Zeilen
Bei Anzahl der Zeilen wird festgelegt über wie viele Zeilen die Zellen reichen soll. Dabei sollte darauf gedacht werden, dass in dieser Spalte keine weiteren Einträge vorhanden.
Breite der Spalte
Hier kann zwischen einer selbst gesetzten festen Breite, zum Beispiel 2 cm und den Werten * und = gewählt werden.
Wird eine feste Breite gewählt, erfolgt auch ein Zeilenumbruch in der Zelle.
Wenn als Breite * gewählt wird, wird die Breite des Inhaltes als Breite verwendet. Wenn der Inhalt breiter ist als die Spalte in der er gesetzt wird, wird der Inhalt über seine Spalte hinaus in die benachbarten Spalten geschrieben.
Bei Spalten bei den die Breite bekannt ist wie zum Beispiel bei p{...} Spalten oder X Spalten in der tabularx oder L,C,R oder J Spalten in der tabulary Umgebung kann das = gewählt werden.
Inhalt der Zelle
Wie sich der Inhalt verhält hängt davon ab wie die Breite der Spalte festgelegt wurde.
Im Fall, dass eine fixe Breite gesetzt wurde, wird der Inhalt in eine parbox mit dieser Breite gesetzt, dadurch kann hier ein manueller Zeilenumbruch mit verwendet werden.
Im Fall, dass als Breite * gesetzt wurde, kann mehrzeiliger Inhalt innerhalb einer tabular oder array Umgebung gesetzt werden.
Im Fall, dass als Breite = gesetzt wurde, wird der Inhalt in eine parbox mit Breite der Spalte gesetzt. Funktioniert aber nur bei den oben genannten p, X, L, C, R und J Spalten zuverlässig.
Beispiel: \multirow{3}{*}{Inhalt}
Es gibt drei Optionen für den multirow Befehl, vertikale Ausrichtung, Zellenanpassung, Finetuning.
vertikale Ausrichtung
Standardmäßig wird der Inhalt beziehungsweise die Box einer multirow vertikal zentriert [c] ausgerichtet. Daneben gibt es noch die zwei weiteren Option [t] und [b], wobei [t] für die Ausrichtung nach oben (top) und [b] für die Ausrichtung nach unten (bottom) steht.
Zellenanpassung mit bigstruts
Hier kann die Anzahl der Zeilen in denen der Befehl \bigstrut verwendet wird angegeben werden. Der Befehl sorgt für einen »Extrabereich« über und unter dem Text in der entsprechenden Zeile. Die Verwendung des Befehls setzt voraus, dass auch das bigstrut Paket mit eingebunden wird.
Finetuning mit vmove
Über vmove Option kann die Höhe beziehungsweise die Platzierung des Inhaltes der multirow Zelle durch die Angabe einer Länge verändert werden. Ein negativer Wert senkt die Höhe, ein positiver Wert hebt die Höhe an.
Beispiel: \multirow[c]{2}[2]{*}[-10pt]{Inhalt}
Die zwei Befehle multicolumn und multirow lassen sich auch kombinieren, sodass eine Tabellenzelle gesetzt werden kann, die sowohl mehrere Zeilen wie auch mehrere Spalten umfasst.
Dabei ist aber darauf zu achten, dass sich der multirow Befehl innerhalb des multicolumn Befehls befindet, wie im nachfolgenden Beispiel gezeigt wird.
Eingabe:
\begin{tabular}{|ccc|c|} \hline BBB & CCC & DDD & AAA\\ \hline \multicolumn{3}{|c|}{\multirow{2}{*}{multicolumn \& multirow}}& AAA \\ \cline{4-4} & & & AAA \\ \hline BBB & CCC & DDD & AAA\\ \hline \end{tabular}Ausgabe:
Das multirow Paket kann nicht nur mit der Standardtabellen Umgebung tabular verwendet werden, sondern auch mit einer Vielzahl der anderen Tabellenpakete die es für LaTeX gibt. Wie zum Beispiel mit tabularx, tabulary, booktabs und anderen.