我怎样才能真正强制单词的连字点?

我怎样才能真正强制单词的连字点?

我尝试让 XeLaTeX 用连字符连接德语单词“Sicherheitsbeauftragter”。我尝试了xin\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}

连字不起作用的屏幕截图

我也尝试了babelpolyglossia 和 来代替,pdfLaTeX但除了XeLaTeX “|”的外观不同之外,没有任何区别。

答案1

\hspace{0pt}前面的Sicherheitsbeauftragter允许 TeX 断开单词,因为 TeX 不会对段落中的第一个单词进行连字符连接。(据我所知,这使得实现更容易,而且在英语中有很多短词,这不是什么大问题。)

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

相关内容