我正在使用字体丰廷准备文档时,在使用自由连字时遇到了问题。常规字体支持自由连字,但粗体和斜体变体不支持。当我打开该功能时,应该使用粗体或斜体自由连字的地方会出现空白。
如何实现在使用常规字体时使用自由连字符,而使用不支持自由连字符的字体时不使用自由连字符?
我使用以下命令来启用该功能。
\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}