![具体来说,关于数字样式,尝试理解 otfinfo 输出以便随后与 fontspec 一起使用](https://linux22.com/image/415675/%E5%85%B7%E4%BD%93%E6%9D%A5%E8%AF%B4%EF%BC%8C%E5%85%B3%E4%BA%8E%E6%95%B0%E5%AD%97%E6%A0%B7%E5%BC%8F%EF%BC%8C%E5%B0%9D%E8%AF%95%E7%90%86%E8%A7%A3%20otfinfo%20%E8%BE%93%E5%87%BA%E4%BB%A5%E4%BE%BF%E9%9A%8F%E5%90%8E%E4%B8%8E%20fontspec%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.png)
首先举个例子。我有 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
因此,我可以看到onum
andlnum
但看不到pnum
or tnum
。现在,通过反复试验(参见下面的 MWE),我可以确定实际上内衬数字是表格形式(等宽),而旧式数字是成比例的。
但是onum
(oldstyle)与(lining)在逻辑上是独立lnum
的(我相信,也许这是我误解的核心)。也就是说,字体可以提供以下四种可能性中的任何一种,例如pnum
tnum
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}