Firefox Linux: Available Monospace Font ignored and falls back to the 3rd font on font-family font stack
On GitHub page, the code block is styled with
> font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;
I have SFMono installed on the system, however, Liberation Mono is used instead.
If I update the CSS value to
> font-family: SF Mono;
Or
> font-family: SF Mono,Consolas,Liberation Mono,Menlo,Courier,monospace;
It would work properly.
What is wrong with my setup?
Below are 2 command outputs:
$ fc-match -s 'SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace' | head -2
SFMono-Regular.otf: "SF Mono" "Regular"
DroidSans.ttf: "Droid Sans" "Regular"
$ fc-match -s 'SFMono-Regular' | head -2
SFMono-Regular.otf: "SF Mono" "Regular"
DroidSans.ttf: "Droid Sans" "Regular"
글쓴이 mz_experience 수정일시
선택된 해결법
I think this doesn't work for the same reason "Arial Bold" doesn't work: Firefox only wants the font family name and not a specific face name or file name.
Perhaps Github accidentally used the font's file name instead of the font name, or they meant to create an @font rule defining what "SFMono-Regular" refers to, but that got lost in the shuffle somewhere. Your guess is as good as mine.
문맥에 따라 이 답변을 읽어주세요 👍 0모든 댓글 (4)
Do other browsers understand this font name? If so, maybe they are considering the font's file name or stopping at the hyphen.
jscher2000 said
Do other browsers understand this font name? If so, maybe they are considering the font's file name or stopping at the hyphen.
It seems not, I have tried Chromium, same behavior. However, I believe Firefox should use fontconfig, and the command output shows the font is properly installed and should match. Picture 2 and 3 shows it working. Why "SFMono-Regular" would cause issue?
선택된 해결법
I think this doesn't work for the same reason "Arial Bold" doesn't work: Firefox only wants the font family name and not a specific face name or file name.
Perhaps Github accidentally used the font's file name instead of the font name, or they meant to create an @font rule defining what "SFMono-Regular" refers to, but that got lost in the shuffle somewhere. Your guess is as good as mine.
I think you are properly right, I ended up created an alias for "SFMono-Regular" in fontconfig, then it started to work.
<alias> <family>SFMono-Regular</family> <prefer><family>SF Mono</family> </prefer> </alias>