我正在运行 Kubuntu 18.04.4。
昨天我购买了完整的 Vinque(由 Ray Larabie 开发)字体系列,该字体系列包含 7 种粗细,每种都有匹配的斜体(列表按粗细升序排列):
- 超轻文克
vinque_ul.otf
- Vinque Ultra Light Italic
vinque_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 Italic
vinque_sl_it.otf
- 文克常规
vinque_rg.otf
- Vinque 常规斜体
vinque_rg_it.otf
- Vinque 半粗体
vinque_sb.otf
- Vinque Semi Bold Italic
vinque_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/
(这似乎不是正确的解决方案)?