Como alias um dos pesos de uma família de fontes com fontconfig?

5

Eu tenho a fonte Fira Code instalada no meu computador, mas não consigo segmentar sua variante em negrito usando o fontconfig da mesma maneira que faço com suas outras variantes. Aqui está o que o fc-match me dá:

$ 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 é minha fonte substituta, o que significa que Fira Code Bold não tem nenhuma correspondência com nenhuma das minhas fontes.
No entanto, ele corresponde ao caminho certo se eu executar fc-match com Fira Code:Bold .

$ fc-match "Fira Code:Bold"
FiraCode_Bold.otf: "Fira Code" "Bold"

Seguindo esta questão , criei um arquivo chamado 30-fira-code-bold.conf dentro de ~/.config/fontconfig/conf.d/ com o seguinte conteúdo:

<?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>

e, em seguida, corri fc-cache -rv e efetuei o logout, mas ele ainda me oferece Noto Sans se eu executar $ fc-match "Fira Code Bold" . A única diferença que notei é que isso me dá Noto Sans mesmo se eu executar $ fc-match "Fira Code:Bold" ; Então, basicamente, eu não posso direcionar a variante ousada do código Fira de alguma forma agora.

Estou executando o Archlinux, se puder ajudar, e esta é a saída de 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

Alguém pode me dizer como posso segmentar o Fira Code Bold usando "Fira Code Bold"?

    
por brainplot 15.09.2017 / 10:07

1 resposta

5

Ao testar outros arquivos fontconfig, o arquivo de configuração correto que parece estar funcionando é o seguinte:

<?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>
    
por 15.09.2017 / 12:49