我有几个关于 XeLaTeX 和 fontspec 的问题。鉴于:
EBGaramond12-SC.otf:Family: EB Garamond 12 SC
EBGaramond12-SC.otf:Subfamily: SC
EBGaramond12-SC.otf:Full name: EB Garamond 12 Regular SmallCaps
EBGaramond12-SC.otf:PostScript name: EBGaramond12-SC
EBGaramond12-SC.otf:Preferred family: EB Garamond
EBGaramond12-SC.otf:Preferred subfamily: 12 SC Regular
使用命令行获得otfinfo -i -q EBG*.*
。我的第一个问题是使用哪个名称\fontspec
?根据经验,我知道Postscript name
可以使用。但在我读过的许多例子中,我看到了带有嵌入空格的名称。由于我可以检索,因此这主要是为了澄清我的知识而提出的。总之,指定字体名称时什么有效?
我的第二个问题再次与 XeLaTeX 相关\fontspec
(并延伸到 XeLaTeX)。实际上,我的所有 PostScript 字体都缺少必需的表格信息。各种字符字形都存在,但没有表格。那么,这是否意味着尝试使用没有标签onum
(Oldstyle Figures)的字体意味着我会在日志文件中收到有关缺少功能的警告?同时缺少 Oldstyle Figures?顺便说一句,我知道这不是 EBGaramond 的问题。
我的最后一个问题是首选样式问题(惯用用法)。人们更喜欢短标签规范还是长名称规范\fontspec
?使用onum
还是“老式数字”?
答案1
如果字体作为系统字体安装,则使用它的最佳方式是使用Preferred family
:
\fontspec{EB Garamond}
对于 EB Garamond,fontspec
它还会为您检测当前文本大小的正确字体,据开发商称:
字体在其名称中包含设计尺寸,在其表中包含尺寸信息,因此知道如何处理它们的软件(例如 Xe 和 LuaLaTeX)会自动使用适当的字体。
最好的选择是手动指定文件,例如:
\fontspec
[ Extension = .otf ,
Path = /path/to/eb/garamond ,
UprightFont = *-Regular ,
ItalicFont = *-Italic ]
{EBGaramond12}
但是,这需要在 EB Garamond 的 8pt 和 12pt 变体之间手动选择。EB Garamond 还以常规字体和斜体字体存储了小型大写字母。
回答你的第二个问题:当你尝试使用该功能时,你只会在日志文件中收到警告:如果你使用\oldstylenums
没有该功能的字体,onum
你会在日志中收到警告,并且你的数字将保持正常。
最后:我认为您应该使用 fontspec 选项。例如:
\fontspec
[ Numbers = {Tabular,OldStyle} ,
Ligatures = TeX ]
{EB Garamond}
代替:
\fontspec
[RawFeature=+onum;+tnum;+liga]
{EB Garamond}