如何在 XeLaTeX 上向 Garamond Premier Pro 添加 LineFinal (falt) 或 WordFinal (fina) 功能?

如何在 XeLaTeX 上向 Garamond Premier Pro 添加 LineFinal (falt) 或 WordFinal (fina) 功能?

我仍在熟悉 XeLaTeX 和fontspec软件包。我想访问 OpenType 功能LineFinalWordFinal使用 Adob​​e 的 Garamond Premier Pro 字体。

例如,我想在结束一行或一个段落时获得以下内容:

在此处输入图片描述

因此我尝试添加选项Contextuals=WordFinal但却\setmainfont得到以下结果:

在此处输入图片描述

控制台显示如下:

*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Contextuals=WordFinal' (+fina) not available for font
* 'Garamond Premier Pro/BI' with script 'Latin' and language 'Default'.
*************************************************

这通常不会困扰我,因为相同的警告会出现在或选项上Historic,而且它们确实工作正常。RareTeX Ligatures

以下是用于测试的 MWE:

\documentclass{book}
\usepackage[urw-garamond]{mathdesign}
\usepackage[francais]{babel}
\usepackage[no-math]{fontspec}
\usepackage{amsmath}
\setmainfont[Ligatures={Rare,TeX,Historic}, Contextuals=WordFinal]{Garamond Premier Pro}

\begin{document}
It's easy to be polite.\smallskip

Next paragraph starts here.
\end{document}

为了获得第一张图片的“e.end”,polite我写了这个,而不是直接写polit\XeTeXglyph249,这样效果很好。但如果每次都要这样做,那就太乏味了……有简单的解决方案吗?

编辑1

看来 AGPPro 既不具备fina也不具备这些功能。在终端上falt使用以下方法检查:otfinfo -f

$ otfinfo -f /Library/Fonts/Garamond\ Premier\ Pro/GaramondPremrPro.otf 

aalt    Access All Alternates
c2sc    Small Capitals From Capitals
calt    Contextual Alternates
case    Case-Sensitive Forms
cpsp    Capital Spacing
dlig    Discretionary Ligatures
dnom    Denominators
frac    Fractions
hist    Historical Forms
kern    Kerning
liga    Standard Ligatures
lnum    Lining Figures
numr    Numerators
onum    Oldstyle Figures
ordn    Ordinals
ornm    Ornaments
pnum    Proportional Figures
salt    Stylistic Alternates
sinf    Scientific Inferiors
size    Optical Size
smcp    Small Capitals
ss01    Stylistic Set 1
ss02    Stylistic Set 2
ss03    Stylistic Set 3
ss04    Stylistic Set 4
subs    Subscript
sups    Superscript
tnum    Tabular Figures
zero    Slashed Zero

有什么解决办法吗?

如果我至少可以在段落末尾使用该功能,我就会满足(因为它们可能是我实际使用该功能的唯一地方)。

答案1

总结一下我对你的问题在评论中的回答:

1.字体附带的技术规格或手册应包含字体的功能列表以及如何使用它们。此列表在此处例如,Garamond Premier Pro 中没有faltfina功能。这可以解释为什么你所做的没有效果。fontspec无法执行超出字体功能的操作。

2.您正在寻找的词尾形式可能可以通过不同的功能标签。考虑使用 Minion 的这个示例:

\documentclass{scrartcl}
\usepackage{fontspec}

\setmainfont[StylisticSet=2]{Minion Pro}

\begin{document}
politee
\end{document}

在此处输入图片描述

尽你所能从 Minion Pro 的功能文件中可以看出,这并不是智能的线- 您想要的结束替换。

feature ss02 {
    ignore sub @END_OFF' @WORD;
    sub @END_OFF' by @END_ON;
} ss02;

3.每当 fontspec 让您无法访问本应可用的功能时,RawFeature它可能会有所帮助。除了字体的文档外,Eddie Kohler 的字体文档otfinfo也是一个有用的工具,可用于检查字体具有哪些功能以及它们的标签是什么。

4.使用 Lua,fontspec 能够使用 OpenType 功能文件。您可以您可以自己添加自定义替换规则和其他内容。

5.使用 OpenType 字体可以完成一些奇特的事情。并非所有 TeX 引擎都可以完成所有这些任务。fontspec 手册分别提供了有关 Xe 和/或 Lua 中可能实现的功能的信息。不过,在选择引擎时,其他因素可能比访问行尾的便利性更重要subs.除此之外——你想要的奇特程度越高,系统就越有可能其他比 TeX 将是更好的选择,因为在我看来,花哨并不在 TeX 设计的应用程序之列。

答案2

根据一些评论、论坛中其他答案的内容以及对排版的一些研究,我发现我想要的功能只能在特定情况下使用。这些情况并不多见,所以我提出的解决方案只能在需要时使用。

此解决方案涉及\XeTeXglyph函数,该函数可用于访问无法使用键盘专门输入的特定字形。这当然意味着XeLaTeX需要使用编译。(或者我错了?)。

我在序言中添加了以下命令:

\newcommand{\af}{\XeTeXglyph247}
\newcommand{\df}{\XeTeXglyph248}
\newcommand{\ef}{\XeTeXglyph249}
\newcommand{\hf}{\XeTeXglyph250}
\newcommand{\mf}{\XeTeXglyph251}
\newcommand{\nf}{\XeTeXglyph252}

对于我希望使用的每个替代字形,依此类推。这样,更容易调用替代字形来“模拟”WordFinalLineFinal过程,只需在单词、句子或段落末尾调用\af\df、等:\ef

在此处输入图片描述

笔记

我确实尝试使用包RawFeature中的选项fontspec来加载“风格集”。

对于 AGPPro,以下是可用的:

ss01    Stylistic Set 1
ss02    Stylistic Set 2
ss03    Stylistic Set 3
ss04    Stylistic Set 4

但是它们都没有嵌入WordFinalLineFinal功能。

相关内容