我希望能够添加(或删除)字体形状的功能。
我已经阅读了fontspec
包装手册的第三章第 3 章,标题为不同字体形状具有不同的特征。因此可以使用BoldFeatures
,ItalicFeatures
等等,这解决了我的这些字体形状的问题。
但是,如果我定义了自定义字体形状怎么办?例如,我创建了一个半粗体字体;我该如何定义类似SemiboldFeatures
或 的内容SemiboldItalicFeatures
?
例如寻找的定义ItalicFeatures
并没有多大帮助......
\@@_keys_define_code:nnn {fontspec-preparse} {ItalicFeatures}
{
\clist_put_right:Nn \l_@@_fontfeat_it_clist {#1}
}
例子:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{LibertinusSerif}[FontFace={sb}{n}{Font=*-Semibold}, FontFace={sb}{it}{Font=*-SemiboldItalic}]
\begin{document}
firefly \textit{firefly}\quad
{\addfontfeatures{ItalicFeatures={Ligatures=CommonOff}} firefly \textit{firefly}}
firefly {\fontseries{sb}\fontshape{it}\selectfont firefly}\quad
{\addfontfeatures{SemiboldItalicFeatures={Ligatures=CommonOff}} firefly {\fontseries{sb}\fontshape{it}\selectfont firefly}}
\end{document}
事实上,我需要这样的功能,因为我想在某些特定于字体的半粗体变体的上下文中应用字距调整。
不过,我认为它在其他环境和其他字体(例如具有多种变体的 Arial)中也会很有用。
答案1
我不认为
\addfontfeatures{ItalicFeatures={Ligatures=CommonOff}
作品。
无论如何,您可以在声明以下内容后指定您想要的功能Font
:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{LibertinusSerif}[
UprightFont=*-Regular,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
FontFace={sb}{n}{Font=*-Semibold,Ligatures=CommonOff},
FontFace={sb}{it}{Font=*-SemiboldItalic,Ligatures=CommonOff},
]
\begin{document}
With ligatures
firefly \textit{firefly}
Without ligatures
{\addfontfeatures{Ligatures=CommonOff} firefly \textit{firefly}}
Without ligatures
{\fontseries{sb}\fontshape{n}\selectfont firefly}
{\fontseries{sb}\fontshape{it}\selectfont firefly}
\end{document}