Ich habe einen Fall, wo ein langes Wort über den Rand steht, da es nicht umgebrochen wird. Deshalb habe ich mit hyphenation{} eine entsprechende Umbruchdefinition vorgenommen -- doch leider ändert sich nichts. An den Umlauten liegt es schon mal nicht (wenn man die ö's durch o's ersetzt, passiert das gleiche).

Wo liegt der Fehler?

Open in writeLaTeX
\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\hyphenation{Bor-der-line-Per-sön-lich-keits-stö-rung Bor-der-line Per-sön-lich-keits-stö-rung}

\usepackage{blindtext}

\begin{document}

\blindtext

Im Rahmen der Aussagekompetenz ist zu überprüfen, ob die Borderline-Persönlichkeitsstörung von Tanja~S. die Fähigkeit zur Schilderung korrekter Aussagen einschränkt.

\end{document}

Fehlender Umbruch bei "Borderline-Persönlichkeitsstörung"

gefragt 26 Feb '14, 14:45

Andr%C3%A9's gravatar image

André
986232836
Akzeptiert-Rate: 33%

1

@André Trenne mit "= statt Bindestrich, siehe: Was muss ich tun, damit Silbentrennung bei Wörtern mit Bindestrichen funktioniert?. Hervorragendes Minimalbeispiel übrigens!

(26 Feb '14, 14:53) stefan ♦♦

@Stefan Innerhalb von \hyphenation{} ergibt das jede Menge Fehlermeldungen bei mir: Not a letter \hyphenation{Bor"

(26 Feb '14, 14:59) André
1

@André Ich meinte, im Text schreiben: Borderline"=Persönlichkeitsstörung.

(26 Feb '14, 15:17) stefan ♦♦

@Stefan Das hätte ich auch gekonnt ;). Ich würde das schon gern global definieren, da ich dieses Wort (wie auch weitere) häufig benötige und ich mir dann keine Gedanken darum machen muss ...

(26 Feb '14, 15:23) André

@André Ergänze bitte den Teil mit der globalen Definition aus Deinem letzten Kommentar in der Frage.

(26 Feb '14, 17:52) Speravir

@Speravir Die globale Definition ergibt sich allein daraus, dass ich die Trennung in der Präambel mit \hyphenation{} vornehme. Da gibt es also nichts zu ergänzen. ;)

(27 Feb '14, 08:43) André
1

@Andrè Es explizit zu schreiben schadet aber nie.

(27 Feb '14, 20:31) Speravir
Ergebnis 5 von 7 show 2 more comments

Dann erlaube ich mir mal aus der Empfehlung von @Speravir die Antwort vollständig zu machen: Gemäß Why can words with hyphen char not be hyphenated? muss der Code \hyphenchar\font=\string"7F eingefügt werden und dann läuft das Beispiel mit anständiger Trennung (und global definiert) durch:

Open in writeLaTeX
\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\hyphenchar\font=\string"7F
\hyphenation{Bor-der-line-Per-sön-lich-keits-stö-rung}

\usepackage{blindtext}

\begin{document}

\blindtext

Im Rahmen der Aussagekompetenz ist zu überprüfen, ob die Borderline-Persönlichkeitsstörung von Tanja~S. die Fähigkeit zur Schilderung korrekter Aussagen einschränkt.

\end{document}

alt text

Permanenter link

beantwortet 27 Feb '14, 08:53

Andr%C3%A9's gravatar image

André
986232836
Akzeptiert-Rate: 33%

bearbeitet 27 Feb '14, 10:46

2

Ich hab in meiner Antwort jetzt mal mögliche Schwachstellen dieser Methode aufgezählt, derer Du Dir zumindest bewusst sein solltest, wenn Du die Methode anwenden willst

(27 Feb '14, 12:48) cgnieder

@André +100 für die sehr gute Frage und angeregte interessante Bearbeitung hier von allen! Hab es aufmerksam und mitdenkend verfolgt.

(27 Feb '14, 20:54) Student

Noch eine Verständnisfrage:

hyphencharfont=string"7F

hat die Zahl 7 etwas zu bedeuten? Also Silbentrennung erst ab Wörtern mit 7 Buchstaben?

(27 Sep '16, 19:06) Steineklopfer

@Steineklopfer: "7F ist hexadezimal für 127. Das \string wurde vermutlich angegeben. damit das " nicht versehentlich als shorthand interpretiert wird, was aber gar (dank babel) nicht der Fall wäre, weshalb es hier auch überflüssig ist und \hyphenchar\font="7F ebenfalls funktioniert. Früher mit dem Paket ngerman waren solche Tricks noch notwendig.

BTW: Bitte achte auch in Kommentaren auf korrektes Markdown. Mit `\hyphenchar\font=\string"7F` wird auch korrekt \hyphenchar\font=\string"7F angezeigt, so dass wir nicht raten müssen, an welchen Stellen \ fehlen.

(27 Sep '16, 19:34) saputello

Wenn TeX einen Bindestrich in einem Wort sieht, glaubt es, dass nur dort getrennt werden darf. Um das zu umgehen, gibt es ja extra die babel-Shortcuts. In \hyphenation{} zeigt ein - allerdings eine mögliche Trennstelle an und fungiert nicht als Bindestrich. Die Eingabe

Open in writeLaTeX
\hyphenation{Bor-der-line-Per-sön-lich-keits-stö-rung}

sagt (La)TeX denn auch, wie das Wort „BorderlinePersönlichkeitsstörung“ (also zusammen geschrieben) getrennt werden darf. Ich bin mir nicht hundertprozentig sicher, aber soweit ich weiß, gibt es (mit pdfLaTeX und XeLaTeX) keine Möglichkeit, - als erlaubten Buchstaben in \hyphenation einzugeben.1

Wenn man allerdings bereit ist, LuaLaTeX zu verwenden, oder es sowieso schon verwendet, dann gibt man anstelle des Bindestrichs in \hyphenation ein = ein:

Open in writeLaTeX
% arara: lualatex
\documentclass[12pt]{scrreprt}
\usepackage{fontspec}
\usepackage[ngerman]{babel}

\hyphenation{
  Bor-der-line=Per-sön-lich-keits-stö-rung
}

\usepackage{blindtext}

\begin{document}

\blindtext

Im Rahmen der Aussagekompetenz ist zu überprüfen, ob die
Borderline-Persönlichkeitsstörung von Tanja~S. die Fähigkeit zur Schilderung
korrekter Aussagen einschränkt.

\end{document}

Die mit pdfLaTeX empfohlene und von uns allen verwendete Option ist es, das babel-Shortcut "= im Text an entsprechender Stelle einzusetzen:

Open in writeLaTeX
\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\hyphenation{
  Bor-der-line
  Per-sön-lich-keits-stö-rung
}

\usepackage{blindtext}

\begin{document}

\blindtext

Im Rahmen der Aussagekompetenz ist zu überprüfen, ob die
Borderline"=Persönlichkeitsstörung von Tanja~S. die Fähigkeit zur Schilderung
korrekter Aussagen einschränkt.

\end{document}

Wenn das - wie Du sagst - ein Wort ist, dass Du oft eingeben musst, lohnt es sich in diesem Fall vielleicht, ein Makro zu definieren, das die wiederkehrende Eingabe erleichtert:

Open in writeLaTeX
\documentclass[12pt]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\hyphenation{
  Bor-der-line
  Per-sön-lich-keits-stö-rung
}

\usepackage{blindtext}

\shorthandon{"}
\newcommand\BPS{Borderline"=Persönlichkeitsstörung}

\begin{document}

\blindtext

Im Rahmen der Aussagekompetenz ist zu überprüfen, ob die \BPS\ von
Tanja~S. die Fähigkeit zur Schilderung korrekter Aussagen einschränkt.

\end{document}

Wie @Speravir in Kommentaren verlinkt hat, kann man (La)TeX dazu bringen, Verbundwörter automatisch trennbar zu machen, indem man \hyphenchar verändert. \hyphenchar ist das Zeichen der Schrift, das als Trennzeichen verwendet wird und ist in der Regel -. Wenn (La)TeX nun in einem Wort das Zeichen entdeckt, das \hyphenchar entspricht, dann unterdrückt es Trennung in diesem Verbundwort.

Durch

Open in writeLaTeX
\hyphenchar\font=\string"7F

und Verwendung von \usepackage[T1]{fontenc} ändert man \hyphenchar für \font, so dass die direkte Eingabe von - nicht mehr als Trennzeichen sondern als beliebiges Zeichen wahrgenommen wird. \font ist ein Register, das den Kontrollsequenznamen der aktuellen Schrift enthält.

(T1-kodierte Schriften haben lt. egreg in der Position 0x7F ein Zeichen, das wie ein Bindestrich aussieht; Ich habe allerdings das Gefühl, dass das nicht für alle Schriften gelten muss.)

Einen Nachteil sollte man nicht verschweigen: für Stellen wie ne-Per gibt es keine Trennmuster, so dass jetzt an dieser Stelle (- ist ja jetzt nicht mehr das Trennzeichen) unter Umständen nicht mehr getrennt wird:

Open in writeLaTeX
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\hyphenchar\font=\string"7F
\begin{document}

\parbox{1pt}{In Baden-W\"urttemberg}% keine Trennung zwischen `den-Wür'
\medskip

\parbox{1pt}{die Borderline-Pers\"onlichkeitsst\"orung}% hier geht's

\end{document}

alt text

Das bedeutet: auch mit dieser Methode muss man sein Dokumment am Ende nach Overfull Boxen durchsuchen und die Bindestriche dann doch wieder mit dem babel-Shortcut "= eingeben...

Noch etwas muss man bedenken: man hat den \hyphenchar nur für die Grundschrift geändert! Wenn man im letzten Beispiel vor den beiden \parboxen ein \sffamily setzt, sieht man, dass dort immer noch nur am Bindestrich umbrochen wird. (Ändern auf fett mit \bfseries tut's auch...) Man müsste den \hyphenchar also mindestens auch für die anderen verwendeten Schriften und Schriftserien ändern, wenn man sich halbwegs auf das neue Verhalten verlassen will.


  1. Allerdings lasse ich mich gerne eines besseren belehren... wild ins Blaue hineingeraten: spielt \hyphenchar vielleicht eine Rolle, die man ausnützen könnte?
Permanenter link

beantwortet 26 Feb '14, 21:21

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 19 Okt '14, 15:18

Als Ergänzung: Adequate hyphenation of words already containing a hyphen. Edit: Oooh … mein … Gott … also, ääh, Enrico „egreg“ Gregorio in seiner Antwort: Why can words with hyphen char not be hyphenated?. Füge \hyphenchar\font=\string"7F in Andrés Beispielcode ein (\hyphenation… deaktiviert) und es funktioniert!

(27 Feb '14, 04:23) Speravir

@Speravir Danke: ich hab was dazu in meine Antwort aufgenommen

(27 Feb '14, 12:48) cgnieder

@Clemens Sehr gut auch Deine Ergänzungen, die mir zum Teil so noch gar nicht bewusst geworden waren.

(27 Feb '14, 17:12) Speravir

Ich nehme mal an, dass mit \defaulthyphenchar=127 die gleichen Nebenwirkungen auftreten können.

(27 Feb '14, 17:37) Thorsten
1

@Thomas solange 127 jeweils der alternative Bindestrich ist, würde man damit zumindest das Problem lösen, dass man \hyphenchar für jede Schriftserie setzen muss. Das Problem mit der fehlenden Trennunsmustern bleibt natürlich bestehen. Mit \defaulthyphenchar=127 (am besten vor Laden von fontenc funktioniert das MWE auch mit \bfseries et al.

(27 Feb '14, 19:11) cgnieder

Mit LuaLaTeX ist es am einfachsten, siehe überarbeitete Antwort

(28 Feb '14, 20:33) cgnieder
Ergebnis 5 von 6 show 1 more comments
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:

×5

gestellte Frage: 26 Feb '14, 14:45

Frage wurde gesehen: 52,066 Mal

zuletzt geändert: 27 Sep '16, 19:37