具体来说,F加我斜体字的末端是F撞到了抑扬符的顶部(其他字体也有同样的问题,但结果更丑陋)。我想通过使用 GentiumPlus 用户可选功能“低调变音符号”(lopr
最新版本(版本 1.510)中的功能 ID 代码,1054
在以前的版本中)来改善这种情况——根据最新版本的gentiumPlus 功能.pdf,显然只能在字体包中在线获得下载-- 具有值1=true
和0=false
,如在中更正的SIL 技术说明针对此字体)。
这将产生一个蹲式抑扬符,应该错过碰撞F。
SIL 页面上有关 GentiumPlus 新功能的其他说明似乎表示此功能可用作 Graphite 和 OpenType 功能,由于我希望能够在 LuaLaTeX 和 XeLaTeX 中执行此操作,因此我想使用 OpenType,因为 LaTeX 不支持 Graphite(除非通过 Fontspec 后门在字体功能文件中包含 Graphite 指令,如帖子中所述)这里,但在 Fontspec 手册中没有提到,其中假设它仅用于 OpenType 功能)。
现在如果我正在正确阅读 Fontspec 文档,并且如果我确实知道这是 OpenType 的一个特性,我可以用\addICUfeature
(在 XeLaTeX 中)添加这个特性或者\addopentypefeature
(在 LuaLaTeX 中)添加该特性。Fonspec 手册(第 43 页)给出的语法(使用命令名称的 XeLaTeX 版本)如下
\newICUfeature{<feature>}{<option>}{<feature tag>}
附示例(使用 LuaLaTeX 版本)
\newopentypefeature{Style}{NoLocalForms}{-locl}
与同一页面上的语法和用法进行比较\addAATfeature
,很明显和<feature>
是<option>
出现在=
参数中的右侧和左侧的名称,例如\addfontfeatures
,而<feature tag>
在这种情况下将是+lopr
,假设前缀的加号/减号用作开启或关闭开关。
但我似乎没有正确完成这项工作。我曾猜测<feature>
和<option>
只是用户创建的描述性名称,就像\newcommand
。我使用的是
\newICUfeature{GentiumPlusFeatures}{LowProfile}{+lopr}
在序言中,对于激活命令(我将其与组合脱字符组合在一起,紧跟在无点的 i 后面),我使用了
fı{\addfontfeature{GentiumPlusFeatures=LowProfile}\char"0302}
我的文档成功编译,没有停止,但结果在视觉上与组合字符相同没有命令,以及原始的 i-circumflex 字符。日志显示了"icu-feature-not-exist-in-font"
带有解释的fontspec 警告
OpenType feature 'GentiumPlusFeatures=LowProfile' (+lopr) not available for
font 'GentiumPlus-R.ttf' with script 'Latin' and language 'Default'.
最后,我尝试补充Renderer=ICU
论点\addfontfeatures
,就像一篇可能相关的帖子所建议的那样这里但结果没有改变。(我猜想Renderer=ICU
一旦对其余部分进行了更正,仍然是必要的,但也不知道这Renderer=ICU
是否会在 LuaLaTeX 中起作用)。
更新:我尝试用字段和Low-profile diacritics
中的名称替换,以便通过使用这些以及(加上试用版本和),我现在只使用字体文档的确切语言,但仍然没有成功。<feature>
True
<option>
+lopr
-lopr
lopr
我已经尽我所能自己解决这个问题了,希望真正有专业知识的人能够在几秒钟内检查并修复它。我知道这是一件小事……就像阑尾里的葡萄籽一样。
答案1
首先,这里有一个误解,LaTeX 作为宏包既不支持 OpenType 也不支持 Graphite,这也不是它的职责,这些应该由底层引擎支持。用于使用现代字体和功能的 LaTeX 包fontspec
确实支持 Graphite,但这是一种相当基本的支持。字体功能文件是 LuaTeX 特有的功能,并且仅适用于 OpenType,它们与 LaTeX 或 Graphite 无关。
您想要的功能是 Graphite 功能,因此它们不适用于 LuaTeX。
您不能使用\newICUfeature
其中任何一个,因为它将强制检查 OpenType 功能,并且由于fontspec
没有提供命令,因此您可以使用接受任意输入的\newgraphitefeature
通用命令:\newfontfeature
\documentclass{article}
\usepackage{fontspec}
\newfontfeature{LowDiacritics}{Low-profile diacritics=True}
\newfontfeature{HighDiacritics}{Low-profile diacritics=False}
\begin{document}
\fontspec[Renderer=Graphite,LowDiacritics]{Gentium Plus}
èáä fî
\fontspec[Renderer=Graphite,HighDiacritics]{Gentium Plus}
èáä fî
\end{document}
这里我使用了描述性的功能名称,因为所有版本的 XeTeX 都支持它们。最新版本可以使用数字 ID 或 4 个字母的标签。