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, 14:55

Bettina's gravatar image

Bettina
665181923
Akzeptiert-Rate: 25%

bearbeitet 21 Feb '16, 12:02

saputello's gravatar image

saputello
11.1k174365

1

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

(01 Aug '13, 16: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, 19:24

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 27 Mär '15, 11: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, 16:18

stefan's gravatar image

stefan ♦♦
18.3k163148
Akzeptiert-Rate: 49%

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, 19:07) saputello
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×256
×45
×39
×20

gestellte Frage: 01 Aug '13, 14:55

Frage wurde gesehen: 114,059 Mal

zuletzt geändert: 21 Feb '16, 12:02