Mit \\, \newline oder linebreak kann man einen Zeilenumbruch innerhalb eines Absatzes vornehmen. Worin unterscheiden sich diese Befehle?

gefragt 25 Mär '14, 16:06

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

(25 Mär '14, 16:10) cgnieder

Dann haben wir einen noch konkreten Beitrag zum Verlinken, prima!

(25 Mär '14, 16:12) stefan ♦♦

\newline

\newline ist für einen Absatz, was \newpage für das Dokument ist: es fügt innerhalb eines Absatzes einen Zeilenumbruch hinzu, ohne den Absatz zu beenden. Man braucht es so gut wie gar nicht. (Manchmal, wenn auch selten, ist es aber durchaus nützlich.)


\linebreak

Die Rolle von \linebreak ist mit der von \pagebreak vergleichbar: es hat ein optionales Argument, in dem durch einen Parameter die Dringlichkeit des Zeilenumbruchs angegeben werden kann:

  • 0: Hier ist gut, muss aber nicht umbrochen werden (penalty: 0),
  • 1: Hier wäre es ganz schön, aber Du findest bestimmt was besseres (penalty: -51, eigentlich -\@lowpenalty)
  • 2: Her wäre es schon ganz passend, die Zeile umzubrechen (penalty: -151, eigentlich -\@medpenalty)
  • 3: Hier würde ein Zeilenumbruch richtig gut passsen, aber wenn Du was noch besseres weißt... (penalty: -301, eigentlich -\@highpenalty)
  • 4: Mache auf jeden Fall hier einen Zeilenumbruch (penalty: -10000, Voreinstellung)

Es gibt übrigens auch \nolinebreak, das ebenfalls ein optionales Argument hat, dem man die gleichen Werte geben kann. Die Bedeutung gilt entsprechend für die Vermeidung eines Zeilenumbruchs.

Es gibt einen weiteren signifikanten Unterschied zu \newline im Blocksatz: die Zeile vor dem Umbruch wird noch bis zum Rand gestreckt:

Open in writeLaTeX
\documentclass{article}
\usepackage{showframe}
\begin{document}

Hier ist eine Zeile, die jetzt bald umbrochen werden soll, und zwar
hier:\newline hier geht es in der n\"achsten Zeile weiter.

Hier ist eine Zeile, die jetzt bald umbrochen werden soll, und zwar
hier:\linebreak hier geht es in der n\"achsten Zeile weiter.

\end{document}

alt text

Im Gegensatz zu \newline und dem gleich noch vorgestellten \\ setzen \linebreak und \nolinebreak im wesentlichen nur eine Penalty für den Umbruch und funktionieren intern damit sehr verschieden zu ersteren.


\\

Das Makro \\ hat keine feste Definition, seine Definition hängt von der Umgebung ab, in der es eingesetzt wird. Es hat aber in der Regel immer die gleiche Bedeutung: mache hier einen Zeilenumbruch. Die Definition in einem normalen Absatz ist eine andere als etwa die in einer tabular oder einer von amsmath's Umgebungen wie align.

In aller Regel ist \\ einem \newline vorzuziehen, obwohl sie auf den ersten Blick die gleiche Wirkung haben: Nicht nur Tabellen, auch Befehle wie \centering, \raggedright und \raggedleft definieren \\ auf passende Weise um (eine Tatsache, über die man beim Setzen von Tabellen immer wieder stolpert, siehe etwa Ist es möglich, X-Spalten linksbündig auszurichten oder Zentrierung in mehrzeiligen p Spalten). Das heißt etwa, dass \newline in der center-Umgebung nicht wie erwartet funktioniert (die Zentrierung der Zeile vor dem Umbruch stimmt nicht mehr), während \\ wie gewohnt klappt.

Normalerweise hat \\ aber immer ein optionales Argument, mit dem ein zusätzlicher vertikaler Abstand eingefügt werden kann:

Open in writeLaTeX
\documentclass{article}
\usepackage{showframe}
\begin{document}

Hier ist eine Zeile, die jetzt bald umbrochen werden soll, und zwar
hier:\\ hier geht es in der n\"achsten Zeile weiter.

Hier ist eine Zeile, die jetzt bald umbrochen werden soll, und zwar
hier:\\[1ex] hier geht es in der n\"achsten Zeile weiter.

\begin{tabular}{l}
  Text \\
  Text \\[1ex]
  Text
\end{tabular}

\end{document}

alt text

In normalem Text hat es außerdem noch eine Stern-Variante, \\*, die einen möglichen Seitenumbruch an dieser Stelle verhindert. (Die Sternversion gibt es auch in einer tabular, hat dort aber keine Wirkung.) Auch die Sternvariante hat übrigens das optionale Argument: \\*[<länge>].

Oftmals dürfen zwischen Befehl und optionalem Argument auch Leerzeichen sein, was zu überraschenden Fehlermeldungen führen kann. Das Minimalbeispiel

Open in writeLaTeX
\documentclass{article}
\begin{document}

\begin{tabular}{l}
  Text \\
  Text \\
  [Text]
\end{tabular}

\end{document}

führt zum Fehler

Open in writeLaTeX
! Missing number, treated as zero.
<to be read again> 
                   T
l.7   [Text]

Darum erlaubt zum Beispiel amsmath in seinen Umgebungen keine Leerzeichen zwischen Befehl und optionalem Argument. In obigem Beispiel kann man den Fehler vermeiden, indem man etwa nach dem zweiten \\ noch ein \relax oder ein \empty hinzufügt

Permanenter link

beantwortet 25 Mär '14, 19:59

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 13 Jul '14, 15:21

esdd's gravatar image

esdd
17.7k254256

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:

×117
×52
×44

gestellte Frage: 25 Mär '14, 16:06

Frage wurde gesehen: 121,132 Mal

zuletzt geändert: 13 Jul '14, 15:21