为什么连字符会使组合重音符号孤立?

为什么连字符会使组合重音符号孤立?

在测试一个包时,我正在编写一个映射希腊文的程序包测试代码Unicode,我发现 Babel 和 Polyglossia 中都存在一个错误,它们在 XeTeX 或 LuaTeX 下运行。这些软件包会很乐意在基本字符和其组合重音符之间插入连字符点,从而使下一行边缘的重音符孤立。这些 MWE 使用预组合和分解形式的规范等效字符重现了该错误。

\documentclass{article}
\usepackage[greek.ancient]{babel}
\usepackage{fontspec}

\babelfont{rm}[Ligatures={Common,Discretionary}]{Libertinus Serif}
\pagestyle{empty}

\begin{document}
\parbox{0pt}{
Hyphenate: % The first word in a paragraph is unhyphenated.
^^^^1faf^^^^03a9^^^^0314^^^^0342^^^^0345
}
\end{document}

Libertinus Serif 示例

\documentclass{article}
\usepackage{polyglossia}

\setdefaultlanguage[variant=ancient]{greek}

\setmainfont{Libertinus Serif}[Ligatures={Common, Discretionary}, Script=Greek]
\pagestyle{empty}

\begin{document}
\parbox{0pt}{
Hyphenate: % The first word in a paragraph is unhyphenated.
^^^^1faf^^^^03a9^^^^0314^^^^0342^^^^0345
}
\end{document}

Libertinus Serif 示例

如果我加载,该错误​​不会消失\babelprovide[import=el-poluton]{greek}

一种解决方法是将所有字符转换为预组合的 NFC 格式,但这违反了Unicode 标准“规范等价性是指表示相同抽象字符的字符或字符序列之间的基本等价性,当正确显示时,它们应该始终具有相同的视觉外观和行为。”(这现已纳入主文档本身的第 3.6、3.11 节和其他部分。)

相关内容