4 янв. 2010 г.

Общесистемная настройка шрифтов

Мне не нравится то, как по умолчанию выглядят шрифты в Ubuntu. Напротив, мне нравится, как выглядят шрифты Monotype, используемые маленькой фирмой, производящей мягкие окна.

Команда
$ aptitude install ttf-mscorefonts-installer
с последующей доводкой напильником gnome-appearance-properties (Система → Параметры → Внешний вид → Шрифты), решает проблему лишь частично — в firefox, например, также необходимо указать три варианта шрифта, причем, желательно, для каждого языка.

Кроме того, шрифтовые предпочтения других пользователей обслуживаемых мною машин совпадают с моими. Соответственно, хочется назначить начертания шрифтов глобально.

Для исполнения этого желания достаточно использовать пару файлов:

  • /etc/fonts/local.conf для общесистемных настроек;
  • ~/.fonts.conf для настроек пользовательских.

Содержимое этих файлов прекрасно описано здесь, однако свою версию /etc/fonts/local.conf я приведу:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!-- Настройки отображения шрифтов по умолчанию -->
<match target="font">
  <edit mode="assign" name="rgba"><const>none</const></edit>
  <edit mode="assign" name="hinting"><bool>false</bool></edit>
  <edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
  <edit mode="assign" name="antialias"><bool>true</bool></edit>
  <edit mode="assign" name="autohint"><bool>false</bool></edit>
</match>
<!-- Включить hinting, выключить antialias для мелких шрифтов -->
<match target="font">
  <test compare="less_eq" name="pixelsize" qual="any"><double>17</double></test>
  <edit mode="assign" name="hinting"><bool>true</bool></edit>
  <edit mode="assign" name="antialias"><bool>false</bool></edit>
</match>
<!-- Включить antialias для полужирных шрифтов среднего размера -->
<match target="font">
  <test compare="more_eq" name="pixelsize" qual="any"><double>15</double></test>
  <test name="weight" compare="more"><const>medium</const></test>
  <edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>
<!-- Назначить предпочтения в семействах шрифтов
(шрифты Monotype предпочтительнее всех) -->
<alias>
  <family>serif</family>
  <prefer>
    <family>Times New Roman</family>
    <family>Liberation Serif</family>
    <family>DejaVu Serif</family>
    <family>Thorndale AMT</family>
    <family>Luxi Serif</family>
    <family>Nimbus Roman No9 L</family>
    <family>Times</family>
  </prefer>
</alias>
<alias>
<family>sans-serif</family>
  <prefer>
    <family>Arial</family>
    <family>Liberation Sans</family>
    <family>DejaVu Sans</family>
    <family>Verdana</family>
    <family>Helvetica</family>
    <family>Albany AMT</family>
    <family>Luxi Sans</family>
    <family>Nimbus Sans L</family>
  </prefer>
</alias>
<alias>
  <family>sans</family>
  <prefer>
    <family>Arial</family>
    <family>Liberation Sans</family>
    <family>DejaVu Sans</family>
    <family>Verdana</family>
    <family>Helvetica</family>
    <family>Albany AMT</family>
    <family>Luxi Sans</family>
    <family>Nimbus Sans L</family>
  </prefer>
</alias>
<alias>
  <family>monospace</family>
  <prefer>
    <family>Courier New</family>
    <family>Liberation Mono</family>
    <family>DejaVu Sans Mono</family>
    <family>Cumberland AMT</family>
    <family>Luxi Mono</family>
    <family>Nimbus Mono L</family>
    <family>Courier</family>
  </prefer>
</alias>
</fontconfig>

За способ включения сглаживания у полужирных шрифтов спасибо жижеюзеру sb0y.

UPD: Добавляю ссылки на отличное описание опций и виртуозный пример управления отображением шрифтов.