在 XeTeX 中访问特定的替代字形

在 XeTeX 中访问特定的替代字形

我正在尝试使用 Minion Pro Italic 字体,具体来说,我想使用带有开口尾巴的斜体“g” - 而不是默认的两层版本。

我发现它被定义为替代西里尔字符“uni0434.ital”。我尝试添加 [Style=Italic] 和不同的替代值、不同的脚本和语言选项,但它总是告诉我该功能不可用,而是显示默认的“0434 字符。

有没有什么办法可以使用这个角色?非常感谢。

答案1

LuaLaTeX 可以为 Open Type 字体添加虚拟功能。由于只交换字形(不交换字符),因此查找和复制在 PDF 查看器中仍应按预期工作。不过,我没有测试过。

% !TEX TS-program = LuaLaTeX
\begin{filecontents}{test.fea}
languagesystem DFLT dflt;
languagesystem latn dflt;

feature test {
  sub g by uni0434.ital;
} test;
\end{filecontents}
\documentclass{minimal}
\usepackage{fontspec}
\setmainfont[FeatureFile=test.fea,RawFeature=+test;]{Minion Pro}
\begin{document}
g \textit{g} \textbf{g \textit{g}} \textsc{g}
\end{document}

答案2

您正在寻找的字形在字体中没有分配 Unicode 代码点,但您可以通过字形 ID 获取它,在本例中为 1843(至少在我的 Minion Pro 特定版本中如此,在其他版本中可能有所不同)。命令是\XeTeXglyph1843

例如,您可以使用 Mac 上的 FontBook(鼠标悬停时显示工具提示)来查看 ID。

例子:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Minion Pro Italic}

\begin{document}

\Huge
G – g – \XeTeXglyph1843

\end{document}

结果:

在此处输入图片描述

但是,正如其他人提到的,这实际上不是拉丁字母 g。实际上,有一个你想要的形状的 Unicode 代码点,它是‘拉丁小写字母 G’ (U+0261)。但是 Minion Pro 没有这个代码点的字形,所以你只是运气不好。

相关内容