¿Cómo puedo realmente forzar los puntos de separación de palabras de una palabra?

¿Cómo puedo realmente forzar los puntos de separación de palabras de una palabra?

Intento hacer que XeLaTeX separe con guiones la palabra alemana "Sicherheitsbeauftragter". Probé varios valores para xin \tolerance=xy instancias de \hyphenation{Si-cher-heits-be-auf-trag-ter}. Nada funcionó. 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 pantalla de separación de palabras que no funciona

También probé babelen lugar de poliglosia y pdfLaTeXen lugar de XeLaTeX pero excepto por cómo "|" Mira, no hay diferencia.

Respuesta1

\hspace{0pt}justo antes Sicherheitsbeauftragterpermite a TeX dividir la palabra, porque TeX no separa con guiones la primera palabra de un párrafo. (AFAIK, esto facilitó la implementación y en inglés, con muchas palabras cortas, no fue un gran problema).

Dado que las \hspaceinserciones tienen un punto de interrupción en este lugar, esto se puede evitar \nobreaken modo horizontal:

\leavevmode\nobreak\hspace{0pt}Sicherheitsbeauftragter

\hspaceO se puede utilizar la forma de estrella :

\hspace*{0pt}Sicherheitsbeauftragter

Esto se puede automatizar (ver el comentario de Herbert) en la descripción de la columna:

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

Respuesta2

También puedes sugerir lugares para la separación de palabras usando \-. Lo siguiente funciona para mí.

\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}

información relacionada