处理字体有点令人望而生畏,通常对我来说太难了,所以我限制自己做几件事。我使用 Duffner 的 EB Garamond——他的原始版本来自他的网站我对以下输出有点困惑:
\documentclass{scrartcl}
\usepackage{fontspec}
\directlua
{fonts.handlers.otf.addfeature
{
name = "ktest",
type = "kern",
data = {
["t"] = { ["«"] = -80},
["f_t"] = { ["«"] = -100},
["i"] = { ["«"] = -120},
["f_i"] = { ["«"] = -300},
["f"] = { ["«"] = -300},
["ı"] = { ["«"] = -300},
}
}
}
\setmainfont{EBGaramond}
[
Path=./EBGaramond-0.016/otf/,
UprightFont=*12-Regular,
RawFeature=+calt;+ktest,
]
\begin{document}
t« fft« ft« i« fi« f« ff«
\end{document}
Duffner 的 EB Garamond 有漂亮的连字符英尺和傅里叶变换,但不知何故,它们对通过字体功能进行的操作没有反应;ff只需添加字体功能即可更改连字F,但情况不同英尺和菲. 尝试通过以下方式直接到达字形t正如在 FontForge 中寻找它时所称的,它什么也不做。
这里发生了什么,我该如何调整字距«和英尺«?
答案1
ft 和 fft 可能看起来像连字,但实际上并非如此:在此字体中,它们实际上是 f
/ff
后面跟着一个特殊的t
。因此,您必须为此 t 变体设置字距:
\documentclass{scrartcl}
\usepackage{fontspec}
\directlua
{fonts.handlers.otf.addfeature
{
name = "ktest",
type = "kern",
data = {
["t.f_"] = { ["«"] = -300},
["f_t"] = { ["«"] = 1000}, %to demonstrate the f_t ligature
}
}
}
\setmainfont{EBGaramond}
[
Path=./EBGaramond-0.016/otf/,
UprightFont=*12-Regular,
RawFeature={+calt;+ktest;}
]
\begin{document}\pagestyle{empty}
ft« fft«
\char983114 « % this is the real ft ligature,
\end{document}