考虑以下代码:
\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}