XFCE4 デスクトップを備えた Debian システムで Iceweasel ブラウザー (Firefox 派生) を使用しています。
~/.config/fontconfig/fonts.conf でカスタム フォント置換を定義していません。
これは、fc-match が現在教えてくれることです。
lone@debian:~$ fc-match "Liberation Mono"
n022003l.pfb: "Nimbus Mono L" "Regular"
lone@debian:~$ fc-match Courier
n022003l.pfb: "Nimbus Mono L" "Regular"
lone@debian:~$ fc-match monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
したがって、HTML がある場合、「Liberation Mono」フォントを使用すると、「Courier」を使用した場合と同じ結果が得られるはずです。しかし、以下のスクリーンショットでわかるように、そうではありません (JSFiddle: http://jsfiddle.net/8L3rmyxn/ )。
「Inspect Element」をクリックすると、実際に使用されているフォントが見つかりました。
CSS で 'Liberation Mono' を使用するテキストの場合、ブラウザーは代わりに 'DejaVu Serif' を使用しますが、これは fc-math の出力と一致しません。
CSS で「Courier」を使用するテキストの場合、ブラウザは fc-match の出力と一致する「Nimbus Mono L」を使用します。
CSS で「monospace」を使用するテキストの場合、ブラウザは「DejaVu Sans Mono」を使用します。これは、fc-match の出力と一致しています。
質問
'Liberation Mono' フォントの場合、ブラウザーが 'Nimbus Mono L' を使用せず、代わりに 'DejaVu Serif' フォントを使用するのはなぜですか?
既知の解像度
この問題を解決する方法を知っていることに注意してください。~/.config/fontconfig/fonts.conf で明示的に 'Liberation Mono' のエイリアスを定義すると、目的の結果が得られます。つまり、'Liberation Mono' フォントのテキストと 'Courier' フォントのテキストは同じように表示されます。
lone@debian:~$ cat ~/.config/fontconfig/fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>Liberation Mono</family>
<prefer><family>Nimbus Mono L</family></prefer>
</alias>
</fontconfig>
lone@debian:~$ fc-match "Liberation Mono"
n022003l.pfb: "Nimbus Mono L" "Regular
質問、もう一度
しかし、私の疑問は残ります。fonts.conf でこの明示的なエイリアスがないと、CSS で 'Liberation Mono' フォントを指定すると、ブラウザーは 'Nimbus Mono L' を使用せず、代わりに 'DejaVu Serif' フォントを使用しfc-match "Liberation Mono"
ます。 fonts.confでエイリアスを定義したかどうかに関係なく?