Один из способов, который мне подходит, - это отредактировать файл ~/.fonts.conf
(я использую Firefox 57.0.1 в Xubuntu 18.04, и он все еще не использует настройки хинтинга в XFCE, как некоторые другие ответы на SuperUser указал, например, Как переопределить веб-шрифты в Firefox?).
Чтобы "отключить хинтинг для определенного шрифта" в ~/.fonts.conf
, вы можете захотеть установить 2 тега соответствия по порядку (порядок важен , потому что правила кажутся сверху вниз), один включив подсказки шрифтов для всех подсказок, а второй отключив подсказки для определенных шрифтов (в моем случае, Noto Sans Mono CJK SC
, Noto Sans CJK SC
и Noto Sans
):
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font"> <!-- This match tag sets the -->
<edit mode="assign" name="hintstyle"> <!-- default for all fonts: -->
<const>hintslight</const> <!-- Turn On Slight Hint -->
</edit>
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font"> <!-- This match tag sets -->
<test name="family" qual="any"> <!-- the exception for the -->
<string>Noto Sans Mono CJK SC</string> <!-- fonts that do not need -->
<string>Noto Sans CJK SC</string> <!-- hinting -->
<string>Noto Sans</string>
</test>
<edit mode="assign" name="hintstyle">
<const>hintnone</const>
</edit>
<edit mode="assign" name="hinting">
<bool>false</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcdlight</const>
</edit>
</match>
</fontconfig>
Чтобы убедиться, что настройки вступили в силу, вы можете использовать команду fc-match
и проверить ее результаты:
fc-match -s -v mono | grep hinting
Вы увидите много шрифтов с Hint, установленным в "True", но "Noto Sans Mono CJK SC", установленным в "False":
$ fc-match -s -v mono | grep hinting
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: False(w) <-- This one is for Noto Sans Mono CJK SC
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
hinting: True(w)
...
Надеюсь, что это может быть полезно!