控制 fontspec 以在一个文档中对不同字体使用某些字体功能

控制 fontspec 以在一个文档中对不同字体使用某些字体功能

我正在使用字体丰廷准备文档时,在使用自由连字时遇到了问题。常规字体支持自由连字,但粗体和斜体变体不支持。当我打开该功能时,应该使用粗体或斜体自由连字的地方会出现空白。

如何实现在使用常规字体时使用自由连字符,而使用不支持自由连字符的字体时不使用自由连字符?

我使用以下命令来启用该功能。

\fontspec[RawFeature={+liga, +dlig, +frac}]{Fontin}

答案1

我没有 Fontin,但下面的方法似乎有效

\fontspec[RawFeature={+liga,+dlig},
  ItalicFeatures={RawFeature={-liga,-dlig}},
  BoldFeatures={RawFeature={-liga,-dlig}}]{Linux Libertine O}

答案2

我认为 Fontin 字体或 fontspec 包加载此字体的方法可能存在一些错误。以下 MWE 显示无法正确显示 Fontin Regular 的“常规”连字符——fi、fl 和 ffi。有趣的是,现在 Fontin Sans Regular 字体的“Ligatures=Tex”选项或任何这些命令都存在这样的问题。(如果这很重要:我在运行 MacOSX 10.6.8 的 iMac 上运行 TeXLive 2011。)

\documentclass{article}
\usepackage{fontspec}

%% ligatures in Fontin Regular: fi, fl, ffi
\newcommand{\ligstringa}{fish fly difficult} 
%% additional ligated glyphs in Fontin Sans Regular: ff, ffl, fj
\newcommand{\ligstringb}{baffle shelfful fjord}
%% two common TeX Ligatures: -- (en-dash), --- (em-dash)
\newcommand{\ligstringt}{-- ---}

\begin{document}
\setmainfont [Ligatures = {Common,TeX}] {Fontin Regular}
\ligstringa \ligstringt

\setmainfont [Ligatures = {NoCommon}] {Fontin Regular}
\ligstringa \ligstringt

\setmainfont [Ligatures = {Common,TeX}] {Fontin Sans Regular}
\ligstringa \ligstringt ligstringb

\setmainfont [Ligatures = {NoCommon}] {Fontin Sans Regular}
\ligstringa \ligstringt \ligstringb

\end{document}

同样,我似乎也无法在 Fontin Italic、Bold 和 SmallCaps 字体中使用连字。

还有一件事:当我在 Apple 的 Pages 程序中打开 Fontin Regular 时,我没有遇到打开(和关闭)字形的问题。这让我怀疑问题可能出在 xelatex 而不是字体本身。

答案3

通过采纳 egreg 的建议,我现在已经回答了一半我的问题。这现在可以防止粗体和斜体字体的自由连字。问题的下一部分是小型大写字母。 fontin 系列有点奇怪,因为您必须加载小型大写字母,如下所示。这意味着 SmallCapsFeatures 命令不起作用,并且在自由连字应该出现的地方出现间隙。有什么想法如何控制它?

    \fontspec[SmallCapsFont = Fontin SmallCaps,
    UprightFeatures={RawFeature={+liga,+dlig}},
    ItalicFeatures={RawFeature={-liga,-dlig}},
    BoldFeatures={RawFeature={-liga,-dlig}},
    SmallCapsFeatures={RawFeature={-liga,-dlig}}]{Fontin}

相关内容