我的计算机上安装了 Fira Code 字体,但我无法像使用其他变体一样使用 fontconfig 来定位其粗体变体。这fc-match
给了我:
$ fc-match "Fira Code"
FiraCode_Regular.otf: "Fira Code" "Regular"
$ fc-match "Fira Code Light"
FiraCode_Light.otf: "Fira Code" "Light"
$ fc-match "Fira Code Medium"
FiraCode_Medium.otf: "Fira Code" "Medium"
$ fc-match "Fira Code Bold"
NotoSans-Regular.ttc: "Noto Sans" "Regular"
Noto Sans 是我的后备字体,我认为这意味着它Fira Code Bold
与我的任何字体都没有任何匹配。但是,如果我使用
运行,它确实会匹配正确的。 fc-match
Fira Code:Bold
$ fc-match "Fira Code:Bold"
FiraCode_Bold.otf: "Fira Code" "Bold"
下列的这个问题30-fira-code-bold.conf
,我创建了一个名为inside 的文件,~/.config/fontconfig/conf.d/
其中包含以下内容:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test name="family"><string>Fira Code</string></test>
<test name="weight" compare="more_eq"><const>bold</const></test>
<edit name="family" mode="assign" binding="strong"><string>Fira Code Bold</string></edit>
</match>
</fontconfig>
然后我运行fc-cache -rv
并注销,但如果我运行,它仍然会显示 Noto Sans $ fc-match "Fira Code Bold"
。我注意到的唯一区别是,即使我跑步,它也会显示 Noto Sans $ fc-match "Fira Code:Bold"
;所以基本上我现在无法以任何方式针对 Fira Code 的粗体变体。
我正在运行 Archlinux,如果它可以帮助的话,这是以下输出fc-list
:
$ fc-list "Fira Code" | egrep -o 'FiraCode.*'
FiraCode_Medium.otf: Fira Code,Fira Code Medium:style=Medium,Regular
FiraCode_Light.otf: Fira Code,Fira Code Light:style=Light,Regular
FiraCode_Regular.otf: Fira Code:style=Regular
FiraCode_Bold.otf: Fira Code:style=Bold
谁能告诉我如何使用“Fira Code Bold”定位 Fira Code Bold?
答案1
通过从其他 fontconfig 文件进行测试,似乎有效的正确配置文件如下:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="pattern">
<test qual="any" name="family">
<string>Fira Code Bold</string>
</test>
<edit name="family" binding="same" mode="prepend">
<string>Fira Code</string>
</edit>
<edit name="weight" binding="same" mode="prepend">
<const>bold</const>
</edit>
</match>
</fontconfig>