在 MiKTeX 2.9 和 Win7Pro 下使用 XeLaTeX 的字体规范

在 MiKTeX 2.9 和 Win7Pro 下使用 XeLaTeX 的字体规范

我有几个关于 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}

相关内容