如果在字体前加载了 polyglossia,selnolig 会将 en 和 em 破折号转换为连字符

如果在字体前加载了 polyglossia,selnolig 会将 en 和 em 破折号转换为连字符

考虑以下代码:

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainfont{Stix Two Text}
\usepackage{selnolig}

\begin{document}
-- ---
\end{document}

其中输出是-- ---,而不是短破折号和长破折号。

但是,如果我在 polyglossia 之前加载字体,则输出将如预期的那样:– —

我不太了解 TeX 及其相关软件的内部工作原理,有人能告诉我这是怎么回事吗?在字体之后加载 polyglossia 通常是最佳做法吗?或者这仅仅是 selnolig 的问题?

答案1

polyglossia 强制默认渲染器为 harfbuzz,而 selnolig 不适用于此渲染器。在 polyglossia 之前加载字体是可以的,或者您可以强制使用节点渲染器:

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainfont{Stix Two Text}[Renderer=Node]

\usepackage{selnolig}

\begin{document}
-- ---
\end{document}   

相关内容