从 ConTeXt 中的 EBGaramond 字体获取特征

从 ConTeXt 中的 EBGaramond 字体获取特征

我想在 ConTeXt 中使用 EBGaramond 字体“历史”功能,就像我在 LaTeX 中使用它们一样,但没有成功。我认为我的 ConTeXt 中缺少了某些东西,但我看不出是什么。我举了 2 个例子来说明我想要什么。LaTeX(工作)示例:

\documentclass[fontsize=8pt]{scrbook}

\usepackage{fontspec}

\defaultfontfeatures{Contextuals=Alternate,Numbers=OldStyle,RawFeature={+ss02,+cv01,+cv03,+dlig}}

\setmainfont[RawFeature={+ss02,+cv01,+cv03,+ss05,+dlig,+cv91},Ligatures=Historic]{EBGaramond12-Regular.otf}

\begin{document}

session
univers
Que
Quelconque
Joseph
¶

\end{document}

ConTexT(部分不起作用)示例:

\enableregime[utf]
\language[fr] % french hyphenation

\definefontfeature[oldstyle][calt=yes,onum=yes,ss02=yes,cv01=yes,cv03=yes,ss05=yes,dlig=yes,cv91=yes,hlig=yes,liga=yes]

\definefontfamily[mainfont][serif][EBGaramond][features=oldstyle]
\setupbodyfont[mainfont, 8pt]

\starttext

session
univers
Que
Quelconque
Joseph
¶

\stoptext

从 pdf 输出中,我看到 s 没有转换为长 s,前导 u 没有转换为 v,中间 v 没有转换为 u,并且 Q 没有长尾。但是 J (+cv03) 和 pilcrow (+cv91) 显示正确。

使用 XeTeX 和 LuaTeX 构建 LaTeX 示例会产生相同的输出。

答案1

您的代码没有任何问题(除了 \enableregime,它已过时但不会造成任何损害)。但是,它不起作用 - 我不知道为什么。当您逐个定义和添加字体功能时,它们确实有效(这可能是上下文字体加载机制的一个错误,我记得列表中多次提到了 ebgaramond 字体)。所以我的示例是:

\definefontfeature[f:cv01] [cv01=yes]
\definefontfeature[f:cv03] [cv03=yes]
\definefontfeature[f:cv91] [cv91=yes]
\definefontfeature[f:calt] [calt=yes]
\definefontfeature[f:dlig] [dlig=yes]
\definefontfeature[f:hlig] [hlig=yes]
\definefontfeature[f:liga] [liga=yes]
\definefontfeature[f:onum] [onum=yes]
\definefontfeature[f:ss02] [ss02=yes]
\definefontfeature[f:ss05] [ss05=yes]

\definefontfamily [mytest] [serif] [EBGaramond]
\setupbodyfont [mytest,14pt]

\startTEXpage
{\addff{f:cv01} \addff{f:cv03} \addff{f:cv91} \addff{f:calt}\addff{f:onum} \addff{f:ss02} \addff{f:ss05} \addff{f:dlig} \addff{f:hlig} \addff{f:liga}

official fist fiction

session

univers

Que

Quelconque

Joseph

¶}
\stopTEXpage 

这使:

在此处输入图片描述

我想这正是您所期望的。但是,我同意关于这些功能的评论:它们是不错的玩具,适合展示这些东西,但您不会想用它们进行任何严肃的语言排版;这些规则有太多例外。

相关内容