使用 LuaLaTeX,我想利用功能文件/lua 代码来调整某些字形对的字距,请参阅下面的 MWE。
由于我的字距调整可能不适合字体的不同样式/粗细,我想知道:是否可以仅将调整应用于特定的字体样式/粗细,例如仅适用于\normalfont
?
MWE:使用 \normalfont 时我想要字形“A”和“V”但不使用斜体。
第一个版本适用于旧版本的LuaTeX;第二个版本适用于新版本,例如TeXLive 2016。
第一个版本:
\documentclass[ngerman,parskip=full]{scrartcl}
\usepackage{fontspec}
\usepackage[ngerman]{babel}
\usepackage{filecontents}
\begin{filecontents*}{mykern.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;
feature kern {
pos \A \V -100;
} kern;
\end{filecontents*}
\setmainfont[FeatureFile=mykern.fea,Ligatures=TeX]{Linux Libertine O}
\begin{document}
AV \textit{AV}
\end{document}
第二版本:
\documentclass[ngerman,parskip=full]{scrartcl}
\usepackage{fontspec}
\usepackage[ngerman]{babel}
\directlua{
fonts.handlers.otf.addfeature {
name = "ktest",
{
type = "kern",
data = {
["A"] = { ["V"] = -1000 },
}
},
"extra kerns"
}
}
\setmainfont[RawFeature=+ktest,Ligatures=TeX]{Linux Libertine O}
\begin{document}
AV \textit{AV}
\end{document}
答案1
您可以使用将UprightFeatures
效果仅限制于直立字体。
\documentclass{article}
\usepackage{fontspec}
\directlua{
fonts.handlers.otf.addfeature {
name = "ktest",
{
type = "kern",
data = {
["A"] = { ["V"] = -1000 },
}
},
"extra kerns"
}
}
\setmainfont[UprightFeatures={RawFeature=+ktest},Ligatures=TeX]{Linux Libertine O}
\begin{document}
\noindent AV\par
\noindent \textit{AV}
\end{document}