我使用 xetex 和 fontspec 来处理这样的自定义字体:
\usepackage{fontspec}
\setmainfont{AGaramondPro}[Path = fonts/garamond/,%
BoldFont = *-Bold.otf,
BoldItalicFont = *-BoldItalic.otf,
ItalicFont = *-Italic.otf,
UprightFont = *-Regular.otf,
RawFeature={%
+onum % odd style figures
}]
\newfontfamily{\special}[Path = fonts/garamond/,%
BoldFont = *-Bold.otf,
BoldItalicFont = *-BoldItalic.otf,
ItalicFont = *-Italic.otf,
UprightFont = *-Regular.otf,
RawFeature={+c2sc,+scmp}]{AGaramondPro}
我一直问自己是否可以将它干燥,所以我只定义一次字体。
上面的字体只是一个例子。我还有其他字体,我想为所有实例启用/禁用某些 RawFeatures,而无需到处复制粘贴...
所以目标是我可以做类似的事情
lorem {\ttfamily ipsum \special{dolor} amet}
然后dolor
设置为 Garamond 小写字母,而不是单声道。
答案1
您可以将重复的代码移动到一个文件中,GaramondPro.fontspec
然后多次加载并进行修改。文档给出了示例包含My Charis.fontspec
以下行:
\defaultfontfeatures[My Charis]
{
Extension = .ttf ,
UprightFont = CharisSILR,
BoldFont = CharisSILB,
ItalicFont = CharisSILI,
BoldItalicFont = CharisSILBI,
% <any other desired options>
}