如何在Windows上的Pango字符串中为特殊字符设置后备字体?

时间:2018-11-13 16:23:27

标签: windows mingw-w64 pango fontconfig

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

我使用的是Roboto作为文字,但其中不包含这些字符。我使用技巧found here发现,在Linux上,基础fontconfig库故障转移到SymbolicaSTIX

  

FC_DEBUG = 4 pango-view -q -t'{character}'2>&1 | grep -o'family:“ [^”] +'|切-c 10- |尾-n 1

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

我的Windows计算机正在运行Mingw-w64,该AttrFallback/etc/fonts一起包含fontconfig文件,但是它们似乎做的不正确。不幸的是,pango-view似乎并没有注意那里的FC_DEBUG环境变量,所以我不知道它在做什么。

如何告诉Windows上的fontconfig在哪里可以获取Roboto不提供的代码点的字形?

更新:我已经将有问题的字符串上的{{3}}设置为True,以防万一Pango版本在Linux和Windows上以不同的方式对待它。还是没有运气。

1 个答案:

答案 0 :(得分:1)

我仍然不知道为什么这在Windows和Linux中会有所不同,但是答案却隐藏在Pango.FontDescription.set_family文档中:

  

在pango.FontDescription的某些用法中,也可以在此字段中使用逗号分隔的姓氏列表。

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