\hyphenation{...} 列表未使用

\hyphenation{...} 列表未使用

我正在使用 xelatex,但无法找出为什么我没有从我创建的列表中获取连字符。这是因为我的字体(Brill)的原因吗?因为我使用了 Times New Roman,它可以显示连字符。谁该为此负责呢?

这是我的最小例子:

\documentclass[12pt,a5paper]{memoir}
\usepackage[text={10.9982cm,17.01800cm},centering]{geometry}
\usepackage{polyglossia}
\setmainlanguage{english}
\setdefaultlanguage[variant=british]{english}
\setmainfont[Numbers=Lining,Ligatures=TeX]{Brill}
\hyphenation{Sat-chi-dā-nanda-tīr-tha Kriṣṇā-nan-da-tīr-tha Agni-mū-rdha Swāmi-gal}

\begin{document}

2. After him, Sadānandatīrtha Swāmi, and then Satchidānandatīrtha Swāmi
became pontiffs of the Maṭha. The third one was Śri Agnimūrdha
Kriṣṇānandatīrtha Swāmigal; since sparks of fire used to fly from his
head when he became angry, he came to be known as Agnimūrdha. (Iti.,  p 9).

\end{document}

输出 这里

答案1

我认为这里的字体变化可能只是个幌子:它显示了问题,因为它改变了文本的宽度,但实际上并不是导致问题的原因。XeTeX 出于某种原因不能很好地显示“Satchidānandatīrtha”中的连字符点,但如果你尝试使用 LuaTeX,你会发现,按照你给出的示例,你会得到

Satchidān-an-datīrtha

不是您要求的。接下来发生的事情是,对于非常窄的 Brill,这些行都不够靠近行尾,TeX 无法将它们用作断点。结果​​是没有出现连字符,行溢出。

如果您\hyphenation在文档开头之后移动或删除该\setdefaultlanguage行,则一切正常:您设置的所有连字符点均有效。因此,发生的事情是,您在设置自定义连字符后更改了语言((美国)“英语”改为“英国”):这些是特定于语言的,因此您设置的连字符不适用于您的文本!我想令人惊讶的是,重置发生在文档的开头,而不是像您预期的那样,在您使用命令时\setdefaultlanguage

答案2

使用包babel代替polyglossia

\documentclass[12pt,a5paper]{memoir}
\usepackage{fontspec}
\setmainfont[Numbers=Lining,Ligatures=TeX]{Brill}
\usepackage[english,british]{babel}
\usepackage[text={10.9982cm,17.01800cm},centering]{geometry}

\hyphenation{Sat-chi-dā-nanda-tīr-tha Kriṣṇā-nan-da-tīr-tha Agni-mū-rdha Swāmi-gal}

\begin{document}

2. After him, Sadānandatīrtha Swāmi, and then Satchidānandatīrtha Swāmi
became pontiffs of the Maṭha. The third one was Śri Agnimūrdha
Kriṣṇānandatīrtha Swāmigal; since sparks of fire used to fly from his
head when he became angry, he came to be known as Agnimūrdha. (Iti.,  p 9).

\end{document}

在此处输入图片描述

相关内容