我仍在熟悉 XeLaTeX 和fontspec
软件包。我想访问 OpenType 功能LineFinal
或WordFinal
使用 Adobe 的 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
,而且它们确实工作正常。Rare
TeX
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 中没有falt
或fina
功能。这可以解释为什么你所做的没有效果。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}
对于我希望使用的每个替代字形,依此类推。这样,更容易调用替代字形来“模拟”WordFinal
或LineFinal
过程,只需在单词、句子或段落末尾调用\af
、\df
、等:\ef
笔记
我确实尝试使用包RawFeature
中的选项fontspec
来加载“风格集”。
对于 AGPPro,以下是可用的:
ss01 Stylistic Set 1
ss02 Stylistic Set 2
ss03 Stylistic Set 3
ss04 Stylistic Set 4
但是它们都没有嵌入WordFinal
或LineFinal
功能。