Pango-WARNING **:无法加载字体无法加载字体 "Times Not-Rotated 18",退回到 "Sans Not-Rotated 10px",预计输出会很丑

Pango-WARNING **: couldn't load font ouldn't load font "Times Not-Rotated 18", falling back to "Sans Not-Rotated 10px", expect ugly output

我正在尝试 运行 package/software “KUPDAP(京都大学等离子体扩散分析包)”,可以从 http://space.rish.kyoto-u.ac.jp/software/ 下载(下载可执行文件(Windows)).这是一个winrar文件。解压后,可以看到名为“kupdap”的文件。如果我点击那个,一个 window 会像这样出现:

如果稍等片刻或点击关闭,则windows变为:

在此 GUI 中,我可以提供我的数据。但问题是在后台看到的 - 在命令提示符中,出现错误消息“(kupdap.exe:12988)Pango-WARNING **:无法加载字体无法加载字体“Times Not-旋转 18”,回落到“Sans Not-Rotated 10px”,期待丑陋的输出”。因此,该程序不是 运行ning。 老实说,我从来没有听说过pango。我猜测它与系统中的字体有关。我还附上了我系统中字体(不是全部)的屏幕截图:

我已经阅读了此处列出的一些文章:https://github.com/lovell/sharp/issues/1162,但这些事情让我头疼。

谁能帮我找出问题所在以及如何解决? BTB,我用的是Windows10.

提前致谢。

问题是 kupdap 使用的是硬编码为 Times 的默认字体。下面的代码片段是从 kupdap_source\visual\main1.c 中的 main 函数的开头复制的:

int main(int argc, char *argv[]){
  GtkWidget *window, *vbox;
  PangoFontDescription *p;
  
  p = pango_font_description_from_string("Times 18"); // <--- this is what triggers error
  gtk_init(&argc, &argv);

  // create credit
  GtkWidget *credit;
  credit =  gtk_about_dialog_new();

但是,默认 Windows 安装没有名为 Times 的字体,这就是导致 Pango-WARNING 的原因。有一种常用的 Times New Roman 字体,但是 pango 似乎在进行精确的字符串匹配,并忽略了它。

可能的解决方法:

  • 在源代码中将"Times 18"更改为"Times New Roman 18"(或其他有效的字体名称)并重建程序;

  • 在Windows中安装一个名为Times的字体,以便pango找到它;

  • hex-edit kupdap.exe 二进制文件,并将唯一出现的文本 Times 替换为已安装的另一种字体的 5 个字母名称,例如Arial.