Fontconfig를 사용하여 글꼴 모음의 가중치 중 하나에 별칭을 어떻게 추가합니까?

Fontconfig를 사용하여 글꼴 모음의 가중치 중 하나에 별칭을 어떻게 추가합니까?

내 컴퓨터에 Fira Code 글꼴이 설치되어 있지만 다른 변형과 마찬가지로 글꼴 구성을 사용하여 굵은 글꼴을 대상으로 지정할 수 없습니다. 이것은 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내 글꼴과 일치하는 항목이 없다는 의미라고 생각합니다. 그러나
using 을 실행하면 올바른 것과 일치합니다. fc-matchFira Code:Bold

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

다음과 같은이 문제30-fira-code-bold.conf~/.config/fontconfig/conf.d/, 다음 내용으로 inside라는 파일을 만들었습니다 .

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

다른 글꼴 구성 파일에서 테스트하면 작동하는 것으로 보이는 올바른 구성 파일은 다음과 같습니다.

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

관련 정보