Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

27 Mär '15, 11:10

saputello's gravatar image

saputello
11.1k174365

Die Frage ist ohne [VM](http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses) etwas zu allgemein gestellt. Grundsätzlich ist eine `longtable` auch nur eine `tabular`. Bezüglich der Spaltentypen gilt also alles, was für `tabular` gilt auch für `longtable`. Die Spaltentypen `l`, `c` und `r` sind horizontale Boxen (vgl. `\mbox`). Das bedeutet, dass Zeilenumbrüche darin ignoriert werden. Der Spaltentype `p`, ebenso wie die Spaltentypen `m` und `b` des [`array`-Pakets][1] sind hingegen vertikale Boxen (vlg. `\parbox`). Das gilt auch für den Spaltentyp `X` des [`tabularx`-Pakets][2], der letztlich in der Voreinstellung ein `p`-Typ ist. In diesen sind nicht nur automatische, sondern alle Arten von manuellen Umbrüchen möglich. Also sowohl `\linebreak` als auch `\newline`, `\par` und Leerzeilen. Gibt man einen Ausrichtungsbefehl wie `\centering`, `\raggedright` oder `\flushleft` mit an, so wird `\\` außerdem zum Neue-Zeile-Befehl dieser Ausrichtungen. Das kollidiert dann in der letzten Spalte ggf. mit der Bedeutung *Ende der Tabellenzeile*. Dies kann man entweder dadurch lösen, dass man für das Ende der Tabellenzeile die Anweisung `\tabularnewline` verwendet, oder dass man mit `\arraybackslash` die Bedeutung von `\\` wieder dahingehend ändert. Allerdings fehlt einem dann ggf. der Neue-Zeile-Befehl, der keineswegs in allen Fällen mit `\newline` identisch ist. Benötigt man nur ausnahmsweise einen Umbruch in einer normalen `l`-, `r`- oder `c`-Spalte, so kann man auch einfach eine Tabelle in der Zelle verwenden. Das ist beispielsweise für Tabellenüberschriften ein gangbarer Weg: \documentclass{article} \begin{document} \begin{tabular}{rlr} \textbf{\begin{tabular}{@{}c@{}}Laufende\\Nummer\end{tabular}} & \textbf{\begin{tabular}{@{}c@{}}Das\\hier\end{tabular}} & \textbf{\begin{tabular}{@{}c@{}}Das\\dort\end{tabular}} \\ 1 & ja & nein \\ 2 & doch & oder \\ 6 & geht & so \\ \end{tabular} \end{document} Über das optionale Argument von `tabular` kann man dabei auch die vertikale Ausrichtung beeinflussen: \documentclass{article} \begin{document} \begin{tabular}{rlr} \textbf{\begin{tabular}[b]{@{}c@{}}Laufende\\Nummer\end{tabular}} & \textbf{\begin{tabular}[t]{@{}c@{}}Das\\hier\end{tabular}} & \textbf{\begin{tabular}{@{}c@{}}Dort\\da\\dann\end{tabular}} \\ 1 & ja & nein \\ 2 & doch & oder \\ 6 & geht & so \\ \end{tabular} \end{document} Alternativ kann man auch eine `varwidth`-Umgebung des [gleichnamigen Pakets][3] oder eine `\parbox` mit fester Breitenangabe an Stelle einer `tabular` in einer solchen Spalte verwenden. Um [`tabularx`][4] mit [`longtable`][5] kombinieren zu können, benötigt man übrigens zusätzliche Pakete wie [`ltxtable`][6] oder das überlegene [`tabu`][7]. Bei letzterem ist leider unklar, wie die Entwicklung in Zukunft weiter gehen wird. Deshalb empfehle ich eher [`ltablex`](http://www.ctan.org/pkg/ltablex). Dieses Paket hat außerdem den Vorteil, dass es die Anpassung der Breite an die maximal notwendige Breite einer Spalte bietet. Diese Voreinstellung ist aber auch einfach abschaltbar. [1]: http://www.ctan.org/pkg/array [2]: http://www.ctan.org/pkg/tabularx [3]: http://www.ctan.org/pkg/varwidth [4]: http://www.ctan.org/pkg/array [5]: http://www.ctan.org/pkg/longtable [6]: http://www.ctan.org/pkg/ltxtable [7]: http://www.ctan.org/pkg/tabu
Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

27 Mär '15, 11:06

saputello's gravatar image

saputello
11.1k174365

Die Frage ist ohne [VM](http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses) etwas zu allgemein gestellt. Grundsätzlich ist eine `longtable` auch nur eine `tabular`. Bezüglich der Spaltentypen gilt also alles, was für `tabular` gilt auch für `longtable`. Die Spaltentypen `l`, `c` und `r` sind horizontale Boxen (vgl. `\mbox`). Das bedeutet, dass Zeilenumbrüche darin ignoriert werden. Der Spaltentype `p`, ebenso wie die Spaltentypen `m` und `b` des [`array`-Pakets][1] sind hingegen vertikale Boxen (vlg. `\parbox`). Das gilt auch für den Spaltentyp `X` des [`tabularx`-Pakets][2], der letztlich in der Voreinstellung ein `p`-Typ ist. In diesen sind nicht nur automatische, sondern alle Arten von manuellen Umbrüchen möglich. Also sowohl `\linebreak` als auch `\newline`, `\par` und Leerzeilen. Gibt man einen Ausrichtungsbefehl wie `\centering`, `\raggedright` oder `\flushleft` mit an, so wird `\\` außerdem zum Neue-Zeile-Befehl dieser Ausrichtungen. Das kollidiert dann in der letzten Spalte ggf. mit der Bedeutung *Ende der Tabellenzeile*. Dies kann man entweder dadurch lösen, dass man für das Ende der Tabellenzeile die Anweisung `\tabularnewline` verwendet, oder dass man mit `\arraybackslash` die Bedeutung von `\\` wieder dahingehend ändert. Allerdings fehlt einem dann ggf. der Neue-Zeile-Befehl, der keineswegs in allen Fällen mit `\newline` identisch ist. Benötigt man nur ausnahmsweise einen Umbruch in einer normalen `l`-, `r`- oder `c`-Spalte, so kann man auch einfach eine Tabelle in der Zelle verwenden. Das ist beispielsweise für Tabellenüberschriften ein gangbarer Weg: \documentclass{article} \begin{document} \begin{tabular}{rlr} \textbf{\begin{tabular}{@{}c@{}}Laufende\\Nummer\end{tabular}} & \textbf{\begin{tabular}{@{}c@{}}Das\\hier\end{tabular}} & \textbf{\begin{tabular}{@{}c@{}}Das\\dort\end{tabular}} \\ 1 & ja & nein \\ 2 & doch & oder \\ 6 & geht & so \\ \end{tabular} \end{document} Alternativ kann man auch eine `varwidth`-Umgebung des [gleichnamigen Pakets][3] oder eine `\parbox` mit fester Breitenangabe an Stelle einer `tabular` in einer solchen Spalte verwenden. Um [`tabularx`][4] mit [`longtable`][5] kombinieren zu können, benötigt man übrigens zusätzliche Pakete wie [`ltxtable`][6] oder das überlegene [`tabu`][7]. Bei letzterem ist leider unklar, wie die Entwicklung in Zukunft weiter gehen wird. wird. Deshalb empfehle ich eher [`ltablex`](http://www.ctan.org/pkg/ltablex). Dieses Paket hat außerdem den Vorteil, dass es die Anpassung der Breite an die maximal notwendige Breite einer Spalte bietet. Diese Voreinstellung ist aber auch einfach abschaltbar. [1]: http://www.ctan.org/pkg/array [2]: http://www.ctan.org/pkg/tabularx [3]: http://www.ctan.org/pkg/varwidth [4]: http://www.ctan.org/pkg/array [5]: http://www.ctan.org/pkg/longtable [6]: http://www.ctan.org/pkg/ltxtable [7]: http://www.ctan.org/pkg/tabu
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

01 Aug '13, 19:45

saputello's gravatar image

saputello
11.1k174365

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

01 Aug '13, 19:24

saputello's gravatar image

saputello
11.1k174365