如何在Windows上为Pango字符串中的特殊字符设置回退字体



我的应用程序使用Pango、Cairo和GTK3显示字符串。其中一些字符串包含一些特殊字符,包括一个不在Unicode基本平面中的字符。在Linux上,这只是起作用,但在Windows上,它找不到特殊字符,而是显示未知字符框。

我使用Roboto作为文本,但它不包括这些字符。使用我在这里发现的一个技巧,我发现在Linux上,底层的fontconfig库会故障转移到Symbolica或STIX。

FC_DEBUG=4 pango视图-q-t"{character}"2>&1|grep-o’族:"[^"]+'|剪切-c 10-|尾部-n 1

我试过在Windows机器上安装这些字体,但没有什么乐趣。

我的Windows机器正在运行Mingw-w64,它附带了包含fontconfig文件的/etc/fonts,但它们似乎没有做正确的事情。不幸的是,pango-view似乎没有注意到那里的FC_DEBUG环境变量,所以我不知道它在做什么。

我如何告诉Windows上的fontconfig在哪里可以获得Roboto没有提供的代码点的字形?

更新:我已经将有问题的字符串的AttrFallback设置为True,以防Pango版本在Linux和Windows上对此有不同的处理。仍然没有运气。

我仍然不知道为什么这在Windows和Linux中的工作方式不同,但答案隐藏在Pango.FontDescription.set_family文档中:

在pango的某些用法中。FontDescription,也可以在此字段中使用逗号分隔的家族名称列表。

当我在逗号分隔的列表中添加所需的回退字体时,它起到了作用。

相关内容

  • 没有找到相关文章

最新更新