使用XeLaTeX
和fontspec
,我想测试当前选定的字体是否具有旧式数字(我在主字体中使用,但在 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