Zeilenumbruch innerhalb eines Worts an vorgegebener Stelle

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Luke

Zeilenumbruch innerhalb eines Worts an vorgegebener Stelle

Beitrag von Luke »

Hallo,

ich suche nach einer Möglichkeit, einen Zeilenumbruch innerhalb eines Worts an einer bestimmten Stelle zu erzwingen. Der Umbruch soll also zu 100% an der vorgegeben Stelle sein, nicht an einer anderen.

Der Hintergrund ist der, dass ich eine Überschrift habe, wo mir der standardmäßige Zeilenumbruch nicht gefällt, weil dann nur 3 Buchstaben in der zweiten Zeile stehen, siehe Minimalbeispiel:
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\section{Dieser Text füllt eine Zeile. Industrieanlagenbau.}
\end{document}
Keines der zur Verfügung stehenen Silbentrennungsmethoden liefert das gewünschte Ergebnis. Weder 'Industrie\-anlagenbau', noch 'Industrie"-anlagenbau', 'Industrie"=anlagenbau', 'Industrie""anlagenbau' oder 'Industrie"~anlagenbau'.

Hat jemand eine Idee?

Gruß Luke

Gast

Beitrag von Gast »

Ist es das, was du suchst?
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
\section{Dieser Text füllt eine Zeile. Industrie-\newline anlagenbau.}
\end{document}
Ich habe einfach ein
\newline
an der gewünschten Trennstelle eingefügt.

Gast

Beitrag von Gast »

Die Standardklassen setzen die Überschriften (unsinniger Weise) im Blocksatz. Erlaubt man im Blocksatz eine Trennung nur an einer ganz bestimmten stelle, erreicht TeX damit aber keinen sauberen Blocksatz, so trennt es ggf. gar nicht und erzeugt stattdessen eine overfull \hbox. Man kann das mit einem harten Umbruch umgehen:
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ragged2e}
\begin{document}
\section[{Dieser Text füllt eine Zeile. Industrieanlagenbau.}]{Dieser Text füllt eine Zeile. Industrie-\\anlagenbau.}
\end{document}
Das optionale Argument ist hier wichtig! Anderenfalls muss man nicht nur den harten Umbruch mit \protect schützen, er landet dann ggf. auch ungewollt im Inhaltsverzeichnis und im Kolumnentitel. In letzterem wird er zwar in der Voreinstellung der Standardklassen ignoriert, aber das - bleibt natürlich erhalten.

Luke

Beitrag von Luke »

Hallo,

danke für die sehr schnellen Antworten. Das funktioniert echt schonmal super.

Wie kann ich denn das ganze auch mitten in einem normalen Text machen, also nicht in der Überschrift?
Das Problem ist nämlich, dass mit dieser Methode (\\ bzw. \newline) der Blocksatz verlassen wird. Es wird also nicht, wie ich es gerne hätte, Leerraum zwischen den Worten eingefügt, sodass 'Industrie-' am Zeilenende steht.
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Industrieanlagenbau.

Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Industrie-\\anlagenbau.
\end{document}
Das sieht durch das fehlende Blocksatzverhalten nicht to toll aus.

Gruß
Luke

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Wenn die Worttrennung für das ganze Dokument gelten soll, kannst du dies auch per \hyphenation{} festlegen.
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\hyphenation{Industrie-anlagenbau}
\begin{document}
\tableofcontents
\section{Dieser Text füllt eine Zeile. Oder nicht. Industrieanlagenbau.}
Dieser Text füllt keine Zeile.

Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Dieser Text füllt eine Zeile. Industrieanlagenbau.
\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Im gezeigten Fall funktioniert es, nur diese Trennstelle zu setzen. Wenn das nicht genügt, lautet die Antwort dagegen: Am besten gar nicht. In dem Fall wirst Du sonst nämlich zwangsläufig Lochfraß¹ bekommen. Wenn also ein einfacher Industrie\-anlagenbau (ggf. unter zusätzlicher Verwendung üblicher Maßnahmen gegen overfull \hbox) nicht funktioniert, dann probier gar nicht erst, diesen Umbruch zu erzwingen.


1 Als Lochfraß wird hier Blocksatz bezeichnet, bei dem deutlich zu viel Leerraum zwischen den Wörtern vorhanden ist. Ein solcher Blocksatz ist nicht nur deutlich schwerer zu lesen, er zerstört auch den einheitlichen Graueindruck und wirkt einfach nur hässlich und unprofessionell.

Luke

Beitrag von Luke »

Vielen Dank für die Vorschläge, es funktioniert wie gewünscht. Danke auch für die hilfreichen Tipps, ich werde sie auf jedenfall im weiteren Verlauf meiner LaTeX-Tätigkeiten berücksichtigen.

Gruß Luke

Antworten