测试旧式数字字体功能(使用 fontspec)

测试旧式数字字体功能(使用 fontspec)

使用XeLaTeXfontspec,我想测试当前选定的字体是否具有旧式数字(我在主字体中使用,但在 sans 字体中没有)。根据文档fontspec,应该可以使用 进行测试\fontspec_if_feature:nTF。旧式数字的 Open Type 功能称为onum。因此,以下代码应该可以完成这项工作:

\documentclass{minimal}

\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Numbers=OldStyle]{Linux Libertine O}
\setsansfont[]{Linux Biolinum O}

\ExplSyntaxOn
\def\testforonum{\fontspec_if_feature:nTF{onum}{yes}{no}}
\ExplSyntaxOff

\begin{document}

Test 123. Old style: \testforonum

\textsf{Test 123. Old style: \testforonum}

\end{document}

但是,在两种情况下,结果都是“是”。有人知道为什么吗?

答案1

但两种字体都有旧式数字,因此测试是正确的。如果我使用 Arial,我会得到“否”。如果您想测试旧式数字是否已被活性 您可能需要检查列表\l_fontspec_rawfeatures_sclist

相关内容