Como posso realmente forçar os pontos de hifenização de uma palavra?

Como posso realmente forçar os pontos de hifenização de uma palavra?

Tento fazer o XeLaTeX hifenizar a palavra alemã "Sicherheitsbeauftragter". Tentei vários valores para xin \tolerance=xe instâncias de \hyphenation{Si-cher-heits-be-auf-trag-ter}. Nada funcionou. MWE:

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{german}
\usepackage{array}
\usepackage{ragged2e}
\hyphenation{Si-cher-heits-be-auf-trag-ter} 
\begin{document}
\begin{tabular}{>{\RaggedRight}p{7.7em}@{|}}
Sicherheitsbeauftragter\\
Technischer Leiter
\end{tabular}
\end{document}

Captura de tela da hifenização não funciona

Também tentei babelem vez de poliglossia e pdfLaTeXem vez de XeLaTeX mas, exceto como o "|" olha, não há diferença.

Responder1

\hspace{0pt}logo before Sicherheitsbeauftragterpermite que o TeX quebre a palavra, porque o TeX não hifeniza a primeira palavra em um parágrafo. (AFAIK isso tornou a implementação mais fácil e em inglês com muitas palavras curtas, não foi um grande problema.)

Como \hspaceinsere um ponto de interrupção neste local, isso pode ser evitado \nobreakno modo horizontal:

\leavevmode\nobreak\hspace{0pt}Sicherheitsbeauftragter

Ou a forma de estrela \hspacepode ser usada:

\hspace*{0pt}Sicherheitsbeauftragter

Isso pode ser automatizado (veja o comentário de Herbert) na descrição da coluna:

\begin{tabular}{>{\RaggedRight\hspace*{0pt}}p{7.7em}@{|}}

Responder2

Você também pode sugerir locais para hifenização usando \-. O seguinte funciona para mim.

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{german}
\usepackage{array}
\usepackage{ragged2e}
\begin{document}
\begin{tabular}{>{\RaggedRight}p{7.7em}@{|}}
Sicherheits\-be\-auf\-tragter\\
Technischer Leiter
\end{tabular}
\end{document}

informação relacionada