Font configuration (Русский)/Examples (Русский)
Основная статья: Настройка шрифтов.
Настройки могут варьироваться в значительной степени. Пожалуйста, приводите примеры настроек Fontconfig с объяснением того, что они делают.
Хинтованные шрифты
~/.config/fontconfig/fonts.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="font"> <edit mode="assign" name="antialias"> <bool>true</bool> </edit> <edit mode="assign" name="embeddedbitmap"> <bool>false</bool> </edit> <edit mode="assign" name="hinting"> <bool>true</bool> </edit> <edit mode="assign" name="hintstyle"> <const>hintslight</const> </edit> <edit mode="assign" name="lcdfilter"> <const>lcddefault</const> </edit> <edit mode="assign" name="rgba"> <const>rgb</const> </edit> </match> </fontconfig>
Отключение хинтинга для курсивных или жирных шрифтов
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="font"> <edit mode="assign" name="autohint"> <bool>true</bool> </edit> <edit mode="assign" name="hinting"> <bool>false</bool> </edit> <edit mode="assign" name="lcdfilter"> <const>lcddefault</const> </edit> <edit mode="assign" name="hintstyle"> <const>hintslight</const> </edit> <edit mode="assign" name="antialias"> <bool>true</bool> </edit> <edit mode="assign" name="rgba"> <const>rgb</const> </edit> </match> <match target="font"> <test name="pixelsize" qual="any" compare="more"> <double>15</double> </test> <edit mode="assign" name="lcdfilter"> <const>lcdlight</const> </edit> <edit mode="assign" name="hintstyle"> <const>hintnone</const> </edit> </match> <match target="font"> <test name="weight" compare="more"> <const>medium</const> </test> <edit mode="assign" name="hintstyle"> <const>hintnone</const> </edit> <edit mode="assign" name="lcdfilter"> <const>lcdlight</const> </edit> </match> <match target="font"> <test name="slant" compare="not_eq"> <double>0</double> </test> <edit mode="assign" name="hintstyle"> <const>hintnone</const> </edit> <edit mode="assign" name="lcdfilter"> <const>lcdlight</const> </edit> </match> </fontconfig>
Включение сглаживания (anti-aliasing) только для больших шрифтов или определённых шрифтов
Некоторые пользователи предпочитают более чёткое отображение, которого anti-aliasing не позволяет добиться:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="font"> <edit name="antialias" mode="assign"> <bool>false</bool> </edit> </match> <match target="font"> <test name="size" qual="any" compare="more"> <double>12</double> </test> <edit name="antialias" mode="assign"> <bool>true</bool> </edit> </match> <match target="font"> <test name="pixelsize" qual="any" compare="more"> <double>16</double> </test> <edit name="antialias" mode="assign"> <bool>true</bool> </edit> </match> </fontconfig>
Также можно отключить сглаживание только для тех шрифтов, которые хорошо смотрятся без сглаживания. Смотрите Font configuration (Русский)/Examples (Русский)/No anti-aliasing (Русский).
Отключение жирного шрифта
Для случаев, когда шрифт в жирном начертании выглядит плохо, а отключить жирный шрифт в приложении невозможно (st, например).
... <match target="pattern"> <test qual="any" name="family"> <string>Envy Code R</string> </test> <test name="weight" compare="more"> <const>medium</const> </test> <edit name="weight" mode="assign" binding="same"> <const>medium</const> </edit> </match> ...
Отключение лигатур для моноширинных шрифтов
Это предотвращает уменьшение ширины некоторых сочетаний букв, таких как "ffi", на некоторых моноширинных шрифтах. Для добавления дополнительных шрифтов необходимо продублировать весь блок <match>
.
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <description>Disable ligatures for monospaced fonts to avoid ff, fi, ffi, etc. becoming only one character wide</description> <match target="font"> <test name="family" compare="eq" ignore-blanks="true"> <string>Nimbus Mono PS</string> </test> <edit name="fontfeatures" mode="append"> <string>liga off</string> <string>dlig off</string> </edit> </match> </fontconfig>
Для некоторых других шрифтов также может потребоваться отключение других функций вроде calt
и/или clig
.
Проверить работоспособность можно с помощью такой команды:
$ echo -e "| worksheet |\n| buffering |\n| difficult |\n| finishing |\n| different |\n| efficient |" | pango-view --font="Nimbus Mono PS" /dev/stdin
Некоторые программы (например, Firefox) не поддерживают тег fontfeatures
, поэтому для них замена шрифта на другой является единственным вариантом. Подробности смотрите в разделе Настройка шрифтов#Установка шрифтов по умолчанию или резервных шрифтов.
fontfeatures
поддерживаются.Шрифты по умолчанию
Для согласованности шрифтов все приложения должны быть настроены на использование псевдонимов serif, sans-serif и monospace, которые сопоставляются с конкретными шрифтами на уровне fontconfig. Параметры и примеры описаны в статье Metric-compatible fonts.
Стандартные имена
Стандартными именами (standard names) являются псевдонимы serif
, sans-serif
и monospace
. Установка пользовательских значений для этих псевдонимов изменит шрифты по умолчанию в большинстве приложений, в том числе sway, alacritty и firefox. В данном примере предпочтение отдается gnu-free-fonts для всего, кроме моноширинных шрифтов, для которых предпочтительнее Source Code Pro
.
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <alias> <family>serif</family> <prefer><family>FreeSerif</family></prefer> </alias> <alias> <family>sans-serif</family> <prefer><family>FreeSans</family></prefer> </alias> <alias> <family>monospace</family> <prefer><family>Source Code Pro</family></prefer> </alias> </fontconfig>
Арабский
Пример fonts.conf, в котором указан шрифт по умолчанию для арабского языка и сохранены шрифты западного стиля для латинских букв. Для работы приведенного ниже примера вам потребуется либо ttf-arabeyes-fontsAUR, либо noto-fonts. Вы также можете установить любые другие арабские шрифты и соответственно изменить название шрифта в соответствии с вашими предпочтениями.
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <!-- Шрифт по умолчанию для арабского языка (нет шаблона fc-match) --> <match> <test compare="contains" name="lang"> <string>ar</string> </test> <edit mode="prepend" name="family"> <string>Tholoth</string> </edit> </match> </fontconfig>
Приведённый выше пример должен работать в большинстве приложений, но некоторые приложения, например Chromium, не поддерживают тест на соответствие языку. Если вы обнаружите, что некоторые приложения не используют выбранные вами шрифты, вы можете использовать приведённый ниже псевдоним и предпочтительные теги, которые, похоже, работают.
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <!-- Резервные шрифты в порядке предпочтения --> <alias> <family>sans-serif</family> <prefer> <family>Noto Sans</family> <family>Open Sans</family> <family>Droid Sans</family> <family>Roboto</family> <family>Tholoth</family> <family>Noto Sans Arabic</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>Noto Serif</family> <family>Droid Serif</family> <family>Roboto Slab</family> <family>Tholoth</family> <family>Noto Sans Arabic</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Noto Sans Mono</family> <family>Inconsolata</family> <family>Droid Sans Mono</family> <family>Roboto Mono</family> </prefer> </alias> </fontconfig>
Японский
Пример fonts.conf, в котором также указан шрифт по умолчанию для японской локали (ja_JP) и сохранены шрифты западного стиля для латинских букв.
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <!-- Шрифт по умолчанию (нет шаблона fc-match) --> <match> <edit mode="prepend" name="family"> <string>Noto Sans</string> </edit> </match> <!-- Шрифт по умолчанию для локали ja_JP (нет шаблона fc-match) --> <match> <test compare="contains" name="lang"> <string>ja</string> </test> <edit mode="prepend" name="family"> <string>Noto Sans CJK JP</string> </edit> </match> <!-- Шрифт sans-serif по умолчанию --> <match target="pattern"> <test qual="any" name="family"> <string>sans-serif</string> </test> <!--<test qual="any" name="lang"><string>ja</string></test>--> <edit name="family" mode="prepend" binding="same"> <string>Noto Sans</string> </edit> </match> <!-- Шрифты serif по умолчанию --> <match target="pattern"> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="same"> <string>Noto Serif</string> </edit> <edit name="family" mode="append" binding="same"> <string>IPAPMincho</string> </edit> <edit name="family" mode="append" binding="same"> <string>HanaMinA</string> </edit> </match> <!-- Шрифты monospace по умолчанию --> <match target="pattern"> <test qual="any" name="family"> <string>monospace</string> </test> <edit name="family" mode="prepend" binding="same"> <string>Noto Sans Mono</string> </edit> <edit name="family" mode="append" binding="same"> <string>Inconsolatazi4</string> </edit> <edit name="family" mode="append" binding="same"> <string>IPAGothic</string> </edit> </match> <!-- Резервные шрифты в порядке предпочтения --> <alias> <family>sans-serif</family> <prefer> <family>Noto Sans</family> <family>Open Sans</family> <family>Droid Sans</family> <family>Ubuntu</family> <family>Roboto</family> <family>NotoSansCJK</family> <family>Source Han Sans JP</family> <family>IPAPGothic</family> <family>VL PGothic</family> <family>Koruri</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>Noto Serif</family> <family>Droid Serif</family> <family>Roboto Slab</family> <family>IPAPMincho</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Noto Sans Mono</family> <family>Inconsolatazi4</family> <family>Ubuntu Mono</family> <family>Droid Sans Mono</family> <family>Roboto Mono</family> <family>IPAGothic</family> </prefer> </alias> </fontconfig>
Китайский
~/.config/fontconfig/fonts.conf или /etc/fonts/local.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="font"> <edit name="embeddedbitmap" mode="assign"> <bool>false</bool> </edit> </match> <match> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Noto Serif</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Roboto</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>monospace</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>DejaVu Sans Mono</string> </edit> </match> <match> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="prepend"> <string>Source Han Serif CN</string> </edit> </match> <match> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend"> <string>Source Han Sans CN</string> </edit> </match> <match> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="prepend"> <string>Noto Sans Mono CJK SC</string> </edit> </match> <!--Windows & Linux Chinese fonts. --> <match target="pattern"> <test qual="any" name="family"> <string>WenQuanYi Zen Hei</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Sans CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>WenQuanYi Micro Hei</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Sans CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>WenQuanYi Micro Hei Light</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Sans CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>Microsoft YaHei</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Sans CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>SimHei</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Sans CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>SimSun</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Serif CN</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>SimSun-18030</string> </test> <edit name="family" mode="assign" binding="same"> <string>Source Han Serif CN</string> </edit> </match> </fontconfig>
Китайский с Noto Fonts
Apply Noto Fonts while replacing Microsoft Fonts with WenQuanYi Micro Hei
~/.config/fontconfig/fonts.conf или /etc/fonts/local.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="font"> <edit name="embeddedbitmap" mode="assign"> <bool>false</bool> </edit> </match> <match> <test qual="any" name="family"> <string>serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Noto Serif</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Noto Sans</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>monospace</string> </test> <edit name="family" mode="prepend" binding="strong"> <string>Noto Sans Mono</string> </edit> </match> <match> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="prepend"> <string>Noto Serif CJK SC</string> </edit> </match> <match> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="prepend"> <string>Noto Sans CJK SC</string> </edit> </match> <match> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="prepend"> <string>Noto Sans Mono CJK SC</string> </edit> </match> <!--WenQuanYi Zen Hei -> WenQuanYi Micro Hei --> <match target="pattern"> <test qual="any" name="family"> <string>WenQuanYi Zen Hei</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>WenQuanYi Zen Hei Lite</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei Lite</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>WenQuanYi Zen Hei Mono</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei Mono</string> </edit> </match> <!--Microsoft YaHei, SimHei, SimSun -> WenQuanYi Micro Hei --> <match target="pattern"> <test qual="any" name="family"> <string>Microsoft YaHei</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>SimHei</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>SimSun</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei</string> </edit> </match> <match target="pattern"> <test qual="any" name="family"> <string>SimSun-18030</string> </test> <edit name="family" mode="assign" binding="same"> <string>WenQuanYi Micro Hei</string> </edit> </match> </fontconfig>
CJK, но с предпочтением других латинских шрифтов
Нужен noto-fonts-cjk.
Вы можете заменить PT Serif
/Roboto
/Cascadia Code PL
на предпочитаемые вами serif
/sans-serif
/monospace
шрифты.
~/.config/fontconfig/fonts.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <!-- Шрифт serif по умолчанию --> <alias binding="strong"> <family>serif</family> <prefer> <family>PT Serif</family> </prefer> </alias> <!-- Шрифт sans-serif по умолчанию --> <alias binding="strong"> <family>sans-serif</family> <prefer> <family>Roboto</family> </prefer> </alias> <!-- Шрифт monospace по умолчанию --> <alias binding="strong"> <family>monospace</family> <prefer> <family>Cascadia Code PL</family> </prefer> </alias> <!-- Шрифт system-ui по умолчанию --> <alias binding="strong"> <family>system-ui</family> <prefer> <family>Roboto</family> </prefer> </alias> <!-- Serif CJK --> <!-- Шрифт serif по умолчанию для случаев, когда атрибут "lang" отсутствует --> <!-- Можете изменить этот шрифт на нужный вам вариант языка --> <match target="pattern"> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK SC</string> </edit> </match> <!-- Японский --> <!-- "lang=ja" или "lang=ja-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ja</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK JP</string> </edit> </match> <!-- Корейский --> <!-- "lang=ko" или "lang=ko-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ko</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK KR</string> </edit> </match> <!-- Китайский --> <!-- "lang=zh" или "lang=zh-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK SC</string> </edit> </match> <!-- "lang=zh-hans" или "lang=zh-hans-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hans</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK SC</string> </edit> </match> <!-- "lang=zh-hant" или "lang=zh-hant-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK TC</string> </edit> </match> <!-- Совместимость --> <!-- "lang=zh-cn" или "lang=zh-cn-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-cn</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK SC</string> </edit> </match> <!-- "lang=zh-tw" или "lang=zh-tw-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-tw</string> </test> <test name="family"> <string>serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Serif CJK TC</string> </edit> </match> <!-- Sans CJK --> <!-- Шрифт sans-serif по умолчанию для случаев, когда атрибут "lang" отсутствует --> <!-- Можете изменить этот шрифт на нужный вам вариант языка --> <match target="pattern"> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- Японский --> <!-- "lang=ja" или "lang=ja-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ja</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK JP</string> </edit> </match> <!-- Корейский --> <!-- "lang=ko" или "lang=ko-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ko</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK KR</string> </edit> </match> <!-- Китайский --> <!-- "lang=zh" или "lang=zh-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- "lang=zh-hans" или "lang=zh-hans-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hans</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- "lang=zh-hant" или "lang=zh-hant-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK TC</string> </edit> </match> <!-- "lang=zh-hant-hk" или "lang=zh-hant-hk-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant-hk</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK HK</string> </edit> </match> <!-- Совместимость --> <!-- "lang=zh-cn" или "lang=zh-cn-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-cn</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- "lang=zh-tw" или "lang=zh-tw-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-tw</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK TC</string> </edit> </match> <!-- "lang=zh-hk" или "lang=zh-hk-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hk</string> </test> <test name="family"> <string>sans-serif</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK HK</string> </edit> </match> <!-- Mono CJK --> <!-- Шрифт monospace по умолчанию для случаев, когда атрибут "lang" отсутствует --> <!-- Можете изменить этот шрифт на нужный вам вариант языка --> <match target="pattern"> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK SC</string> </edit> </match> <!-- Японский --> <!-- "lang=ja" или "lang=ja-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ja</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK JP</string> </edit> </match> <!-- Корейский --> <!-- "lang=ko" или "lang=ko-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ko</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK KR</string> </edit> </match> <!-- Китайский --> <!-- "lang=zh" или "lang=zh-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK SC</string> </edit> </match> <!-- "lang=zh-hans" или "lang=zh-hans-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hans</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK SC</string> </edit> </match> <!-- "lang=zh-hant" или "lang=zh-hant-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK TC</string> </edit> </match> <!-- "lang=zh-hant-hk" или "lang=zh-hant-hk-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant-hk</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK HK</string> </edit> </match> <!-- Совместимость --> <!-- "lang=zh-cn" или "lang=zh-cn-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-cn</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK SC</string> </edit> </match> <!-- "lang=zh-tw" или "lang=zh-tw-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-tw</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK TC</string> </edit> </match> <!-- "lang=zh-hk" или "lang=zh-hk-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hk</string> </test> <test name="family"> <string>monospace</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans Mono CJK HK</string> </edit> </match> <!-- System UI CJK --> <!-- Шрифт system-ui по умолчанию для случаев, когда атрибут "lang" отсутствует --> <!-- Можете изменить этот шрифт на нужный вам вариант языка --> <match target="pattern"> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- Японский --> <!-- "lang=ja" или "lang=ja-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ja</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK JP</string> </edit> </match> <!-- Корейский --> <!-- "lang=ko" или "lang=ko-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>ko</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK KR</string> </edit> </match> <!-- Китайский --> <!-- "lang=zh" или "lang=zh-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- "lang=zh-hans" или "lang=zh-hans-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hans</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- "lang=zh-hant" или "lang=zh-hant-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK TC</string> </edit> </match> <!-- "lang=zh-hant-hk" или "lang=zh-hant-hk-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hant-hk</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK HK</string> </edit> </match> <!-- Совместимость --> <!-- "lang=zh-cn" или "lang=zh-cn-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-cn</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK SC</string> </edit> </match> <!-- "lang=zh-tw" или "lang=zh-tw-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-tw</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK TC</string> </edit> </match> <!-- "lang=zh-hk" или "lang=zh-hk-*" --> <match target="pattern"> <test name="lang" compare="contains"> <string>zh-hk</string> </test> <test name="family"> <string>system-ui</string> </test> <edit name="family" mode="append" binding="strong"> <string>Noto Sans CJK HK</string> </edit> </match> </fontconfig>
Альтернативные наборы стилей для шрифтов
Некоторые шрифты поставляются с альтернативными наборами стилей для символов благодаря функции OpenType.
Обычно эти стилистические наборы называются ss0x
и содержат небольшие изменения отдельных символов.
Здесь показано, как изменить ноль с точкой по умолчанию на ноль с косой чертой для моноширинной версии ttf-ibm-plex.
~/.config/fontconfig/fonts.conf
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd"> <fontconfig> <match target="font"> <test name="fontformat" compare="not_eq"> <string /> </test> <test name="family"> <string>IBM Plex Mono</string> </test> <edit name="fontfeatures" mode="assign_replace"> <string>ss03</string> </edit> </match> </fontconfig>
Смотрите What are "Stylistic Sets?" для более подробной информации.