Почему браузер использует Courier вместо Consolas для "font-family: Consolas, Courier", хотя Consolas доступен через замену fonts-conf?

Я использую браузер Iceweasel (ребрендинг Firefox) на Debian с XFCE4.

Я определил правило псевдонима в моем ~/.config/fontconfig/fonts.conf.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>Consolas</family>
        <prefer><family>DejaVu Sans Mono</family></prefer>
    </alias>
</fontconfig>

Выход из fc-match подтверждает, что Consolas теперь будет заменен как DejaVu Sans Mono,

lone@debian:~$ fc-match Consolas
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
lone@debian:~$ fc-match Courier
n022003l.pfb: "Nimbus Mono L" "Regular"

Теперь посмотрите следующий вывод в браузере для JSFiddle: http://jsfiddle.net/yyvgcw02/.

Снимок экрана выше показывает, что браузер правильно использовал DejaVu Sans Mono за Consolas а также Nimbus Mono L за Courier,

Тем не менее, я ожидал его использовать DejaVu Sans Mono за Consolas, Courier также, но вышеприведенный вывод показывает, что он использовал Nimbus Mono L снова для Consolas, Courier?

Почему не использовать DejaVu Sans Mono за Consolas, Courier даже если Consolas появляется первым в списке и шрифт для него, т.е. DejaVu Sans Mono, есть в системе?

Даже следующий ~ /.config / fontconfig / fonts.conf не имеет никакого эффекта. Выход из fc-match и вывод в браузере остается тем же со следующей конфигурацией.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match>
        <test name="family"><string>Consolas</string></test>
        <edit name="family"><string>DejaVu Sans Mono</string></edit>
    </match>
</fontconfig>

Известное решение

Вот решение, которое работает для меня. Если я добавлю binding="strong" приписать edit пометьте, как показано ниже в ~ /.config / fontconfig / fonts.conf, тогда браузер использует DejaVu Sans Mono за font-family: Consolas, Courier как показано на скриншоте ниже.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match>
        <test name="family"><string>Consolas</string></test>
        <edit name="family" binding="strong"><string>DejaVu Sans Mono</string></edit>
    </match>
</fontconfig>

Вопрос

Я хочу понять, почему binding="strong" необходимо, чтобы браузер мог использовать DejaVu Sans Mono за font-family: Consolas, Courier на Debian?

Даже без binding="strong", fc-match Consolas выводил DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book" но почему браузер не смог использовать DejaVu Sans Mono в таком случае?

0 ответов

Другие вопросы по тегам