
Tenho dificuldade em acertar a hifenização em siglas longas com regras de hifenização definidas pelo usuário ao tentar evitar quebras de linha entre as formas longa e curta.
\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}
Como pode ser visto no MWP, em certos casos a composição termina em hboxes lotados mesmo sem o espaço inseparável e a hifenização manual. Definir \hyphenpenalty=0
no preâmbulo também não ajuda, mesmo resultado.
O que estou perdendo aqui?
A rigor, estou usando o glossaries
pacote em meu documento real com formatação de acrônimo ajustada, incluindo o espaço inseparável antes do formato abreviado: \renewcommand{\acrfullformat}[2]{#1~(#2)}
substituí essas partes por texto simples para o MWP, pois o resultado é o mesmo. Caso alguém saiba de uma solução baseada em glossaries
para resolver esse problema.
Responder1
Supondo que você não queira uma pausa, (ACM)
adicionar mais pontos de hifenização (ou reduzir a penalidade por hifenização) não ajudará. Você precisa permitir que o espaço em branco se estique para permitir que a linha seja preenchida depois de quebrada.
\begin{document}\setlength\emergencystretch{1.5em}
não produz linhas muito cheias (embora as linhas produzidas sejam um pouco espaçadas)