我之前收到过帮助使 fi 和 fl 连字符与 Berling 字体兼容现在我发现自己尝试使用 Gill Alt One MT 字体做同样的事情。同样的方法似乎不起作用。使用:
languagesystem DFLT dflt ;
languagesystem latn dflt ;
feature kern {
pos f h 500;
} kern;
feature liga {
sub f i by f_i;
sub f l by f_l;
} liga;
我得到:
!LuaTeX error (file ./gillsans.TTF): Invalid glyph index (gid 251)
==> Fatal error occurred, no output PDF file produced!
它要么是 fi,要么是 fl,但 gid 251 很奇怪。假设 gid 代表字形索引,我不明白 251 是从哪里来的。字形位于位置 109 和 110,就像 Berling 字体的情况一样。
我也尝试过Script=Default
调用setmainfont
,但似乎只是忽略了功能文件,因为字距调整也停止工作了。我又一次不知所措了。我还能尝试什么?
答案1
首先:我很惊讶 Gill Alt One MT 的文件名竟然只是 gillsans.ttf……
第二:f + i 和 f + l 连字的名称是不总是f_i 和 f_l。在 Monotype 字体中,它们可能是 fi 和 fl。因此,您应该尝试:
feature liga {
sub f i by fi;
sub f l by fl;
} liga;
或者在 fontforge 中打开 TTF 文件(或在其上运行 ttf2afm)并检查名称。