在最近的一次更新之后,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
语言?\hyphenation
polyglossia
或者这是一个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}