hyphenrules 环境不再适用于 polyglossia

hyphenrules 环境不再适用于 polyglossia

在最近的一次更新之后,hyphenrules环境在使用时会导致错误polyglossia。几年来,我一直用它来指定语言中某些单词的连字符。这是一个 MWE:

\documentclass{article}
%\usepackage{fontspec}

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\setotherlanguage{german}

\begin{hyphenrules}{german}
\hyphenation{Ü-ber-lief-er-ung}
\end{hyphenrules}

\begin{document}
Test
\end{document}

使用 TeX Live 2016(完全更新),XeLaTeX 排版了此文档。使用 TeX Live 2017(截至今天),它失败了,如下所示:

! Undefined control sequence.
<argument> ...nguageshorthands {none}\bbl@ifunset 
                                                  {\bbl@tempf hyphenmins}{\s...
l.11 \begin{hyphenrules}{german}

我做错了什么吗?当我搜索有关 的信息时hyphenrules,我发现的所有内容都与 有关。 是否应该用 以另一种方式指定 的babel语言?\hyphenationpolyglossia

或者这是一个polyglossia错误?如果是这样,那么就会有三个错误影响我的文档,而且距离上次发布已经过去了很长时间。我可能会考虑将我的长文档转换为babel

答案1

你可以使用基本选项加载 babel 来获取核心定义:

\documentclass{article}
\usepackage[base]{babel}
\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\setotherlanguage{german}

\begin{hyphenrules}{german}
\hyphenation{Ü-ber-lief-er-ung}
\end{hyphenrules}

\textwidth=3mm
\begin{document}
Überlieferung Überlieferung Überlieferung Überlieferung

\selectlanguage{german}
Überlieferung Überlieferung Überlieferung Überlieferung


\end{document}

相关内容