在 ConTeXt 中设置后备字体

在 ConTeXt 中设置后备字体

如何在 ConTeXt 中将表情符号字体设置为后备?

MWE 基本上遵循contextgarden/simplefonts指示:

\definefontfamily [main] [serif] [Minion Pro]
\definefallbackfamily[main] [serif] [Noto Emoji] [range=emoticon,force=yes]

Noto Emoji 是 Google 提供的免费表情符号字体,可在 SIL 下获取:https://github.com/googlei18n/noto-emoji/tree/master/fonts

作业日志报告:

selectfont > 由于未找到文件,因此忽略了字体“main”样式“rm”所请求的后备字体“Noto Emoji”。

命令mtxrun --script font --list noto显示:

notoemoji notoemoji /home/user/fonts/NotoEmoji-Regular.ttf

我已经将错误追溯到http://source.contextgarden.net/tex/context/base/mkiv/font-sel.luaselectfont.definefallbackfamily我不太熟悉,无法猜测这里可能存在什么问题。

[编辑]顺便说一句:context --version返回:ConTeXt Process Management 0.63current version: 2017.01.27 14:39;它也在 MacTeX 版本上展示2016.10.22 10:43

[编辑]最新的 ConTeXt 独立版似乎存在一些差异,因此我怀疑可能存在“边缘”问题。无论如何,这里有一个完整的 MWE:

% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = ConTeXt (LuaTeX)
\enabletrackers[selectfont.register,selectfont.files,selectfont.alternatives]
\definefontfamily [main] [serif] [Minion Pro]
\definefallbackfamily[main] [serif] [Noto Emoji] [range=emoticon,force=yes]
\setupbodyfont[main]

\starttext
  Hello.  Some valid Noto Emoji:  

答案1

要设置后备字体\definefontfamily,请将所有\definefallbackfamily设置放在主字体之前。必须使用正确的参数作为range键。对于您的情况,请使用miscellaneoussymbolsdingbats(可能还有其他几个):

\definefallbackfamily [mainface] [serif] [Noto Emoji] [range={miscellaneoussymbols,dingbats}]
\definefontfamily     [mainface] [serif] [Minion Pro]

\setupbodyfont[mainface]

\starttext
Noto Emoji symbols: \utfchar{"26F5} \utfchar{"2712}
\stoptext

Noto Emoji 作为 Minion Pro 的后备字体

另一个例子是,定义Gentium Plus作为希腊字体的字体后备系列,您可以使用:

\definefallbackfamily [mainface] [serif] [Gentium Plus] [range=greekandcoptic]

\definefontfallback有关字符范围的更多详细信息。

答案2

尝试使用其他命名方式,例如

\definefallbackfamily[main] [serif] [Noto Emoji Regular] [range=emoticon,force=yes]

或这个

\definefallbackfamily[main] [serif] [file: NotoEmoji-Regular.ttf] [range=emoticon,force=yes]

编辑 那这个怎么样?(即使没有“常规”)

  \definefallbackfamily[main] [serif] [notoemojiregular] [range=emoticon,force=yes]

相关内容