単語のハイフネーション ポイントを強制するにはどうすればよいでしょうか?

単語のハイフネーション ポイントを強制するにはどうすればよいでしょうか?

XeLaTeX でドイツ語の単語「Sicherheitsbeauftragter」をハイフンでつなぐようにしてみました。のx\tolerance=xのインスタンスの にいくつかの値を試しましたが\hyphenation{Si-cher-heits-be-auf-trag-ter}、何も機能しませんでした。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}

ハイフネーションが機能していないスクリーンショット

babelまた、polyglossia の代わりに やの代わりにも試してみましたが 、「|」の見た目以外pdfLaTeXは違いはありません。XeLaTeX

答え1

\hspace{0pt}right before を使用すると、SicherheitsbeauftragterTeX は段落の最初の単語をハイフンで区切らないため、単語を分割できます。(私の知る限り、これにより実装が容易になり、短い単語が多い英語ではそれほど問題にはなりませんでした。)

この場所にブレークポイントが挿入されるため、水平モードでは\hspaceこれを回避できます。\nobreak

\leavevmode\nobreak\hspace{0pt}Sicherheitsbeauftragter

または、 の星形を\hspace使用することもできます。

\hspace*{0pt}Sicherheitsbeauftragter

これは列の説明で自動化できます (Herbert のコメントを参照)。

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

答え2

を使用してハイフネーションの場所を提案することもできます\-。私の場合は次の方法がうまくいきます。

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

関連情報