之前花了不少时间看 Linux 中字体配置的文章,也把实践经验做了记录。最近碰到有些特殊情况需要处理。比如电子发票中常见的 CourierNewPSMT 和 STSong-Light-UniGB-UCS2-H 这两个字体。虽然都知道是 Courier 和“宋体”,但是之前的配置无法覆盖到这两个字体的情况。
下面的方法都涉及到编辑字体配置文件,需要参考前面的文章。这里假设直接编辑用户的字体配置文件 ~/.config/fontconfig/fonts.conf
。
对于 CourierNewPSMT,可以使用 Courier New 字体来替代,
<match> <test name="family"><string>CourierNewPSMT</string></test> <edit name="family" mode="assign" binding="strong"> <string>Courier New</string> </edit> </match>
对于 STSong-Light-UniGB-UCS2-H 则不行。时候 fc-match
的时候会将“STSong-Light-UniGB-UCS2-H”解析为“STSong\-Light\-UniGB\-UCS2\-H”。所以修改为下面的方式来匹配它,
<match> <test name="family" compare="contains"><string>STSong</string></test> <edit name="family" mode="assign" binding="strong"> <string>Adobe Song Std</string> </edit> </match>
这里摸索出来的方法感觉不够优雅,如果有朋友知道好的方法,还请留言分享,提前感谢 :)©
本文发表于水景一页。永久链接:<https://cnzhx.net/blog/linux-fonts-couriernewpsmt-and-stsong-light-unigb-ucs2-h/>。转载请保留此信息及相应链接。
引用通告: Okular打开中文PDF时中文字体的显示问题 | 水景一页