系列内字体名称错误

系列内字体名称错误

我正在运行 Kubuntu 18.04.4。

昨天我购买了完整的 Vinque(由 Ray Larabie 开发)字体系列,该字体系列包含 7 种粗细,每种都有匹配的斜体(列表按粗细升序排列):

  • 超轻文克vinque_ul.otf
  • Vinque Ultra Light Italicvinque_ul_it.otf
  • 特淡红酒vinque_el.otf
  • Vinque 超轻斜体vinque_el_it.otf
  • 文克莱特vinque_lt.otf
  • Vinque 浅斜体vinque_lt_it.otf
  • 半光vinque_sl.otf
  • Vinque Semi Light Italicvinque_sl_it.otf
  • 文克常规vinque_rg.otf
  • Vinque 常规斜体vinque_rg_it.otf
  • Vinque 半粗体vinque_sb.otf
  • Vinque Semi Bold Italicvinque_sb_it.otf
  • 文克·博尔德vinque_bd.otf
  • Vinque 粗体斜体vinque_bd_it.otf

有 TrueType 文件,但问题似乎与文件格式无关。

尝试从 Dolphin 卸载并安装所有这些软件几次,结果都显示一条消息,提示其中一个软件已安装。每次安装一两个,我可以安装 10 个,不会发生冲突。

于是我查看了fc-scan这些.otf文件,发现了一些有趣的东西。有些权重是重复的,有些与定义的权重常量不匹配字体配置

我已经与 Ray 联系修复了粗细值问题,这样我就可以安装全部 14 种字体:

$ fc-list|grep -i Vinque
/usr/local/share/fonts/v/vinque_lt_it.otf: Vinque,Vinque Lt:style=Light Italic,Italic
/usr/local/share/fonts/v/vinque_rg.otf: Vinque,Vinque Rg:style=Regular
/usr/local/share/fonts/v/vinque_bd.otf: Vinque,Vinque Rg:style=Bold
/usr/local/share/fonts/v/vinque_sb_it.otf: Vinque,Vinque Sb:style=SemiBold Italic,Italic
/usr/local/share/fonts/v/vinque_sb.otf: Vinque,Vinque Sb:style=SemiBold,Regular
/usr/local/share/fonts/v/vinque_el.otf: Vinque,Vinque El:style=ExtraLight,Regular
/usr/local/share/fonts/v/vinque_ul.otf: Vinque,Vinque Ul:style=UltraLight,Regular
/usr/local/share/fonts/v/vinque_lt.otf: Vinque,Vinque Lt:style=Light,Regular
/usr/local/share/fonts/v/vinque_sl_it.otf: Vinque,Vinque Sl:style=SemiLight Italic,Italic
/usr/local/share/fonts/v/vinque_el_it.otf: Vinque,Vinque El:style=ExtraLight Italic,Italic
/usr/local/share/fonts/v/vinque_ul_it.otf: Vinque,Vinque Ul:style=UltraLight Italic,Italic
/usr/local/share/fonts/v/vinque_rg_it.otf: Vinque,Vinque Rg:style=Italic
/usr/local/share/fonts/v/vinque_sl.otf: Vinque,Vinque Sl:style=SemiLight,Regular
/usr/local/share/fonts/v/vinque_bd_it.otf: Vinque,Vinque Rg:style=Bold Italic

但是,我看到的kfontview“* Light”粗细名称并没有反映这些字体:“Light”、“Semi Light”、“Extra Light”和“Ultra Light”都被称为“Light”(Italic 正确附加到斜体字体)。字体管理器系统设置小程序中有 4 个“Light、Light Italic”对,而预览面板正确显示了 14 种不同的字体。

fc-scan以下是所有 Light 字体的过滤输出,按权重升序重新排序,并将派生名称添加为注释:

$ for F in `ls -1 vinque*l*.otf`; do echo $F;fc-scan $F|grep -iP '(vinque|style|slant|weight|width\b)'; done;
vinque_ul.otf # wrongly named "Vinque, Light"
    family: "Vinque"(s) "Vinque Ul"(s)
    style: "UltraLight"(s) "Regular"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueUl-Regular"(s)
    slant: 0(i)(s)
    weight: 45(i)(s)
    width: 100(i)(s)
    file: "vinque_ul.otf"(s)
    postscriptname: "VinqueUl-Regular"(s)
vinque_ul_it.otf # wrongly named "Vinque, Light Italic"
    family: "Vinque"(s) "Vinque Ul"(s)
    style: "UltraLight Italic"(s) "Italic"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueUl-Italic"(s)
    slant: 100(i)(s)
    weight: 45(i)(s)
    width: 100(i)(s)
    file: "vinque_ul_it.otf"(s)
    postscriptname: "VinqueUl-Italic"(s)
vinque_el.otf # wrongly named "Vinque, Light"
    family: "Vinque"(s) "Vinque El"(s)
    style: "ExtraLight"(s) "Regular"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueEl-Regular"(s)
    slant: 0(i)(s)
    weight: 47(i)(s)
    width: 100(i)(s)
    file: "vinque_el.otf"(s)
    postscriptname: "VinqueEl-Regular"(s)
vinque_el_it.otf # wrongly named "Vinque, Light Italic"
    family: "Vinque"(s) "Vinque El"(s)
    style: "ExtraLight Italic"(s) "Italic"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueEl-Italic"(s)
    slant: 100(i)(s)
    weight: 47(i)(s)
    width: 100(i)(s)
    file: "vinque_el_it.otf"(s)
    postscriptname: "VinqueEl-Italic"(s)
vinque_lt.otf # correctly named "Vinque, Light"
    family: "Vinque"(s) "Vinque Lt"(s)
    style: "Light"(s) "Regular"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueLt-Regular"(s)
    slant: 0(i)(s)
    weight: 50(i)(s)
    width: 100(i)(s)
    file: "vinque_lt.otf"(s)
    postscriptname: "VinqueLt-Regular"(s)
vinque_lt_it.otf # correctly named "Vinque, Light Italic"
    family: "Vinque"(s) "Vinque Lt"(s)
    style: "Light Italic"(s) "Italic"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueLt-Italic"(s)
    slant: 100(i)(s)
    weight: 50(i)(s)
    width: 100(i)(s)
    file: "vinque_lt_it.otf"(s)
    postscriptname: "VinqueLt-Italic"(s)
vinque_sl.otf # wrongly named "Vinque, Light"
    family: "Vinque"(s) "Vinque Sl"(s)
    style: "SemiLight"(s) "Regular"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueSl-Regular"(s)
    slant: 0(i)(s)
    weight: 55(i)(s)
    width: 100(i)(s)
    file: "vinque_sl.otf"(s)
    postscriptname: "VinqueSl-Regular"(s)
vinque_sl_it.otf # wrongly named "Vinque, Light Italic"
    family: "Vinque"(s) "Vinque Sl"(s)
    style: "SemiLight Italic"(s) "Italic"(s)
    stylelang: "en"(s) "en"(s)
    fullname: "VinqueSl-Italic"(s)
    slant: 100(i)(s)
    weight: 55(i)(s)
    width: 100(i)(s)
    file: "vinque_sl_it.otf"(s)
    postscriptname: "VinqueSl-Italic"(s)

这些名字是如何fontconfig得来的远远超出了我的知识范围,就连 Ray 也感到困惑。

字体本身需要做哪些改变才能使整个字体系列正确命名?

或者,是否可以通过文件强制正确的名称/etc/fonts/conf.d/(这似乎不是正确的解决方案)?

相关内容