正在加载 Unicode 连字模式

正在加载 Unicode 连字模式

软件包的文档hyph-utf8指出:

由于 Babel 的 hyphen.cfg 是以 XeLaTeX 格式构建的,因此无需加载 Babel 或 Polyglossia 即可使用连字模式。

xelatex然而,在这个最小的例子上运行:

\documentclass{article}
\usepackage{lipsum}
\makeatletter
\language=\l@latin
\makeatother
\hyphenrules{latin}
\begin{document}
\lipsum
\end{document}

产生以下错误:

./test.tex:6: Undefined control sequence.
<argument> ...{\languagename }\languageshorthands 
                                                  {none}\expandafter \ifx \c...
l.6 \hyphenrules{latin}

? 

问题是什么?

答案1

按照文档说明,\hyphenrules禁用语言简写(有些主题成群出现,这很奇怪:就在昨天,我与 Javier 讨论了连字符规则是否应该这样做,因为它会影响法语间距等问题),因此它仅适用于提供定义的包\languageshorthands。您可以添加一个虚拟定义:

\documentclass{article}
\usepackage{lipsum}
\providecommand\languageshorthands[1]{}%
\hyphenrules{latin}
\begin{document}
\lipsum
\end{document}

但是您的示例中不需要 hyphenrules 命令。该\language命令已经更改了连字模式,但我建议使用它,\bbl@patterns因为它包含考虑字体编码的代码:

\documentclass{article}
\usepackage{lipsum}


\begin{document}
\makeatletter
%\language=\l@english% 
\bbl@patterns{english}
\makeatother

\showhyphens{testing}

\makeatletter
%\language=\l@ngerman%
\bbl@patterns{ngerman} 
\makeatother

\showhyphens{testing}
\end{document}

相关内容