具体来说,关于数字样式,尝试理解 otfinfo 输出以便随后与 fontspec 一起使用

具体来说,关于数字样式,尝试理解 otfinfo 输出以便随后与 fontspec 一起使用

首先举个例子。我有 Monotype Baskerville Pro 字体。这是otfinfo其 Regular 字体的输出:

$ otfinfo -f ~/Library/Fonts/BaskervilleMTPro-Regular.otf 
aalt    Access All Alternates
c2sc    Small Capitals From Capitals
case    Case-Sensitive Forms
dnom    Denominators
frac    Fractions
kern    Kerning
liga    Standard Ligatures
lnum    Lining Figures
numr    Numerators
onum    Oldstyle Figures
ordn    Ordinals
salt    Stylistic Alternates
sinf    Scientific Inferiors
smcp    Small Capitals
ss01    Stylistic Set 1
sups    Superscript

因此,我可以看到onumandlnum但看不到pnumor tnum。现在,通过反复试验(参见下面的 MWE),我可以确定实际上内衬数字是表格形式(等宽),而旧式数字是成比例的。

但是onum(oldstyle)与(lining)在逻辑上是独立lnum的(我相信,也许这是我误解的核心)。也就是说,字体可以提供以下四种可能性中的任何一种,例如pnumtnum

             Lining    Oldstyle
Proportional    ✔︎          ✔︎
Tabular         ✔︎          ✘

但是如果字体确实提供了三种替代数字样式,那么输出会是什么样子otfinfo

现在我只是使用以下测试文档并查看输出是什么以及日志中有什么,但我确信有更好的方法。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Baskerville MT Pro}%  <— replace with font of your choice

\begin{document}

\section{Proportional Oldstyle}

{\addfontfeatures{Numbers={Proportional,OldStyle}}
11223344\\
99999999}

\section{Tabular Oldstyle}

{\addfontfeatures{Numbers={Monospaced,OldStyle}}
11223344\\
99999999}

\section{Proportional Lining}

{\addfontfeatures{Numbers={Proportional,Lining}}
11223344\\
99999999}

\section{Tabular Lining}

{\addfontfeatures{Numbers={Monospaced,Lining}}
11223344\\
99999999}

\end{document}

相关内容