页次: 1
情况是这样的:
这是我字体的配置文件: https://pastebin.com/8rd9H7Mp
我通过 alias 给 monospace字体设置了一个优先级,Hack Nerd Mono Font 在 Noto Sans Mono CJK SC前面
但是当我在终端执行 fc-match monospace 时,它的返回的字体却是 Noto Sans Mono CJK SC,而不是 Hack Nerd Font Mono.
请问一下是我哪里配置的有问题吗?
最近编辑记录 Bryan2333 (2023-04-29 23:23:40)
离线
🙃具体我也不太清楚要怎么弄,不过可以参照https://wiki.archlinux.org/title/Font_c … on/Chinese的内容,先添加一个
<match target="pattern">
<test qual="any" name="family">
<string>monospace</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>DejaVu Sans Mono</string>
</edit>
</match>
然后再设置zh-cn以及另外的locale的字体
<match>
<test name="lang" compare="contains">
<string>zh</string>
</test>
<test name="family">
<string>monospace</string>
</test>
<edit name="family" mode="prepend">
<string>Noto Sans Mono CJK SC</string>
</edit>
</match>
然后关于 prefer 的设置,我发现在我 link 文件 09-texlive-fonts.conf 到 /etc/fonts/conf.d 之后,可能会影响 prefer 的设置,特别是 waybar 上面基于 fontawesome 的字符显示,会以某些 texlive 字体的字符进行显示。。但是如果我添加 prefer 的内容到 ~/.config/fontconfig/fonts.conf 就能让这个 prefer 的设置生效,比如
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>HarmonyOS Sans SC</family>
<family>Font Awesome 6 Free</family>
</prefer>
</alias>
</fontconfig>
但同样的内容放到 /etc/fonts/local.conf 就会被前面所说的 texlive 字体文件影响。。
最近编辑记录 BRS5672023 (2023-04-28 09:15:51)
离线
感谢你的回复,我一下添加
<match>
<test qual="any" name="family">
<string>Noto Sans Mono CJK SC</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>Hack Nerd Font Mono</string>
</edit>
</match>
后,就正常了。
离线
感谢你的回复,我一下添加
<match> <test qual="any" name="family"> <string>Noto Sans Mono CJK SC</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Hack Nerd Font Mono</string> </edit> </match>
后,就正常了。
但这个做法不是把 noto sans mono cjk sc 给替换成 hack nerd font mono 这个字体吗?那你这么做显示 CJK 等宽字符不会出问题吗?
离线
这个的话,我也要有考虑过。但是结合个人的使用情况来说,我遇到CJK等宽字符的情况非常少,这个可以暂时不管。
最近编辑记录 Bryan2333 (2023-04-28 09:21:34)
离线
你把那一大波语言特定的设置放到后边试试?
离线
你把那一大夫语言特定的设置放到后边试试?
试了一下,没用。
离线
我又花了点时间配置字体文件,刚才的那个问题解决了。现在有遇到了新的奇怪问题。
理论上来说,我在终端执行 fc-match serif:charset=7300:lang=ja ,返回的字体应该是 Noto Serif CJK JP 才对,但是却返回了 Noto Serif CJK SC。
然而我将命令改成了env LANG=ja_JP.UTF-8 fc-match serif:charset=7300:lang=ja 后,它就返回了 Noto Serif CJK JP。
这是什么问题导致的?
离线
你自己开 FC_DEBUG 看匹配的过程吧。你配置的这些字体我都没有所以无法复现。
离线
字体配置文件终于弄好了,同时解决了monospace字体匹配和CJK字体匹配的问题。
离线
页次: 1