Der Titel ist bereits meine Frage.

Daraus resultiert natürlich, wenn man meine Frage mit ja beantworten kann. Welchen Befehl muss man einfügen, um einen Zeilenumbruch zu erzwingen?

gefragt 01 Aug '13, 08:55

Bettina's gravatar image

Bettina
65541923
Akzeptiert: 83%

bearbeitet 21 Feb, 06:02

saputello's gravatar image

saputello
18.4k22352

1

Das hängt vom Typ der Zelle ab. Also mache ein vollständiges Beispiel.

(01 Aug '13, 10:04) Ulrike Fischer

Die Frage ist ohne VM 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 sind hingegen vertikale Boxen (vlg. \parbox). Das gilt auch für den Spaltentyp X des tabularx-Pakets, 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:

Open in Online-Editor
\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:

Open in Online-Editor
\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 oder eine \parbox mit fester Breitenangabe an Stelle einer tabular in einer solchen Spalte verwenden.

Um tabularx mit longtable kombinieren zu können, benötigt man übrigens zusätzliche Pakete wie ltxtable oder das überlegene tabu. Bei letzterem ist leider unklar, wie die Entwicklung in Zukunft weiter gehen wird. Deshalb empfehle ich eher 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.

Permanenter link

beantwortet 01 Aug '13, 13:24

saputello's gravatar image

saputello
18.4k22352

bearbeitet 27 Mär '15, 06:10

  • \\ bewirkt in Tabellen einen Umbruch der Tabellenzeile, nicht innerhalb der Zelle.
  • \newline hat in einfachen Zellen vom Typ l, c oder r keinen Effekt.
  • \newline bricht innerhalb einer Zelle um, wenn sie eine Absatz-Zelle ist, also beispielsweise vom Typ p.

Zusammengefasst brauchst Du also einen Spaltentyp, der Absatzzellen bringt (wie p oder mit dem array-Paket auch m oder b), und den Befehl \newline.

Permanenter link

beantwortet 01 Aug '13, 10:18

stefan's gravatar image

stefan ♦♦
5.8k12134

1

Vorsicht: Wenn man gleichzeitig beispielsweise Zentrierung mit \centering verwenden will, bewirkt \newline nicht unbedingt, was man erwartet:

\documentclass{article}
\usepackage{array,longtable}
\begin{document}
\begin{longtable}{>{\centering}p{.5\linewidth}l}
Das \newline sieht \newline seltsam \newline aus & Richtig?\\
\end{longtable}
\end{document}

Gleichzeitig ist \\ dann nicht mehr zwingend das Ende einer Tabellenzeile. \tabularnewline ist hingegen immer das Ende einer Tabellenzeile.

(01 Aug '13, 13:07) saputello
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×185
×31
×31
×18

Frage gestellt: 01 Aug '13, 08:55

Frage wurde angeschaut: 45,058 Mal

Zuletzt aktualisiert: 21 Feb, 06:02