Я пытаюсь заставить XeLaTeX переносить немецкое слово "Sicherheitsbeauftragter". Я пробовал несколько значений для x
in \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
вместо полиглоссии и pdfLaTeX
вместо , XeLaTeX
но за исключением того, как выглядит "|", разницы нет.
решение1
\hspace{0pt}
непосредственно перед этим Sicherheitsbeauftragter
позволяет TeX разбить слово, поскольку TeX не переносит первое слово в абзаце. (Насколько мне известно, это упростило реализацию, и в английском языке с его множеством коротких слов это не было большой проблемой.)
Поскольку \hspace
в этом месте вставляется точка останова, этого можно избежать, выполнив \nobreak
в горизонтальном режиме:
\leavevmode\nobreak\hspace{0pt}Sicherheitsbeauftragter
\hspace
Или можно использовать звездную форму :
\hspace*{0pt}Sicherheitsbeauftragter
Это можно автоматизировать (см. комментарий Герберта) в описании столбца:
\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}