Zeilenumbruch innerhalb eines Worts an vorgegebener Stelle

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Zeilenumbruch innerhalb eines Worts an vorgegebener Stelle

von Luke » Mo 6. Nov 2017, 11:56

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

von Gast » Mo 6. Nov 2017, 10:45

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.

von markusv » Mo 6. Nov 2017, 10:38

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}

von Luke » Mo 6. Nov 2017, 10:17

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

von Gast » Mo 6. Nov 2017, 09:49

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.

von Gast » Mo 6. Nov 2017, 09:47

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.

Zeilenumbruch innerhalb eines Worts an vorgegebener Stelle

von Luke » Mo 6. Nov 2017, 09:39

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

Nach oben