Ich habe Schwierigkeiten, die Silbentrennung bei langen Akronymen mit benutzerdefinierten Silbentrennungsregeln richtig hinzubekommen, wenn ich versuche, Zeilenumbrüche zwischen der Lang- und der Kurzform zu vermeiden.
\documentclass{article}
\usepackage{showframe}
\hyphenation{mi-cros-co-py}
\begin{document}
\paragraph{Long Text} This is some text abcdefgh Acronym Containing Microscopy~(ACM).
\paragraph{Longer Text} This is some text abcdefgh Acronym Containing Microscopy~(ACM).
\paragraph{Even Longer Text} This is some text abcdefgh Acronym Containing Microscopy~(ACM).
\paragraph{Another try} Let's try manual hyphenation.
\paragraph{Long Text} This is some text abcdefgh Acronym Containing Mi\-cros\-co\-py~(ACM).
\paragraph{Longer Text} This is some text abcdefgh Acronym Containing Mi\-cros\-co\-py~(ACM).
\paragraph{Even Longer Text} This is some text abcdefgh Acronym Containing Mi\-cros\-co\-py~(ACM).
\paragraph{Another try} Let's also skip the non-breaking space.
\paragraph{Long Text} This is some text abcdefgh Acronym Containing Mi\-cros\-co\-py (ACM).
\paragraph{Longer Text} This is some text abcdefgh Acronym Containing Mi\-cros\-co\-py (ACM).
\paragraph{Even Longer Text} This is some text abcdefgh Acronym Containing Mi\-cros\-co\-py (ACM).
\end{document}

Wie aus dem MWP ersichtlich, führt der Satz in bestimmten Fällen auch ohne geschütztes Leerzeichen und manuelle Silbentrennung zu überfüllten hboxes. \hyphenpenalty=0Auch das Setzen in der Präambel hilft nicht, gleiches Ergebnis.
Was übersehe ich hier?
Genau genommen verwende ich das glossariesPaket in meinem aktuellen Dokument mit angepasster Akronymformatierung, einschließlich des geschützten Leerzeichens vor der Kurzform: \renewcommand{\acrfullformat}[2]{#1~(#2)}Ich habe diese Teile für das MWP durch einfachen Text ersetzt, da das Ergebnis dasselbe ist. Nur für den Fall, dass jemand eine Lösung kennt, die auf diesem basiert, glossariesum dieses Problem zu lösen.
Antwort1
Angenommen, Sie möchten keinen Zeilenumbruch, (ACM)dann hilft es nicht, mehr Trennstellen hinzuzufügen (oder die Strafe für die Silbentrennung zu reduzieren). Sie müssen den Leerraum so ausdehnen, dass die Zeile nach dem Zeilenumbruch ausgefüllt werden kann.
\begin{document}\setlength\emergencystretch{1.5em}
erzeugt keine übervollen Zeilen (obwohl die erzeugten Zeilen etwas abstehend sind)



