思源字体(简中 SC)的粗细(字重 weight):
Sans:
black > bold > medium > regular(默认) > 其他更细的
(想设为默认)
Serif:
black > bold > semibold > medium > regular(默认) > 其他更细的
(想设为默认)
我想要做的是:
让 Sans 的 medium、和 Serif 的 semibold 成为默认字重
替代 regular 的默认地位
通过 fontconfig 设置,确实能让fc-match
所显示的默认 style 为我想要的 weight
<match>
<test qual="any" name="family" compare="contains">
<string>Noto Sans SC</string>
</test>
<edit name="style" mode="assign_replace" binding="strong">
<string>bold</string>
</edit>
<edit name="weight" mode="assign_replace" binding="strong">
<const>heavy</const>
</edit>
</match>
但是,许多软件虽然接受 fontconfig 的默认字形(family),却忽略所设置的默认字重(即,软件取了思源字体后,仍然要以 regular 作为默认渲染)。失败
目前的 workaround:
思源不同粗细是在 SUSE 上是在分开的包里(即分开的文件中)的
故,删掉 regular 包,让任意软件不得不以 semibold 或 medium 作为默认
但,这样永远无法用 regular(比如想要在 LibreOffice 中用时)
有什么真正的解决方案没 ?
不需要删掉 regular 包的那种
自己想到的:
1.(失败)通过 fontconfig 造出假字体,指向Noto Sans SC Medium
已尝试如下
<test qual="any" name="family">
<string>My Fake Sans Font Name</string>
</test>
<edit name="file" mode="assign_replace" binding="strong">
<string>/usr/share/fonts/truetype/NotoSansSC-Medium.otf</string>
</edit>
fc-match
显示,假字体匹配成功,
但,仍然会被软件忽略字重,变回 regular。失败
-
修改 otf 文件,进行重头到尾彻底重命名、字重修改。以后便使用这个改过的 otf 字体
这个估计可以,但是,总觉得这不是一个很舒服的方案