Fonts (Russian)

From ArchWiki

Jump to: navigation, search
Article summary
Установка и настройка шрифтов в Arch Linux.
Доступно на следующих языках
English
Italiano
繁體中文
Español}
Русский
См. также
MS Fonts
Xorg Font Configuration (Русский)

Contents

Установка шрифтов

Основной каталог размещения шрифтов:

  • /usr/share/fonts

Шрифты, расположенные в этих каталогах, будут доступны всем пользователям системы. Однако, установка в эти каталоги требует привилегий суперпользователя. Если у вас нет таких полномочий — Вы можете установить шрифты в каталог:

  • ~/.fonts

Все шрифты, находящиеся в ~/.fonts будут доступны только его владельцу.

Установка шрифтов при помощи менеджера пакетов Pacman

Просмотреть все доступные для установки шрифты можно командой:

$ pacman -Ss fonts

Установить необходимый шрифт можно командой pacman -S <имя-пакета>. Например:

# pacman -S ttf-dejavu

Эта команда установит шрифт Bitstream Vera в каталог /usr/share/fonts/TTF.

Ручная установка шрифтов

Для установки шрифтов вручную необходимо:

  • Скачать необходимые шрифты
  • Создать каталог хранения шрифтов, установленных вручную. Например:
# mkdir /usr/share/fonts/TTFmisc
  • Скопировать/разархивировать в него необходимые шрифты
  • Создать/пересоздать список псевдонимов для имён шрифтов, который необходим X-серверу:
# cd /usr/share/fonts/TTFmisc
# rm ./fonts.scale
# mkfontscale
  • Создать/пересоздать список имён шрифтов в данном каталоге и файлов, в которых они содержатся (необходим X-серверу):
# cd /usr/share/fonts/TTFmisc
# rm ./fonts.dir
# mkfontdir
  • Пересоздать файлы описания fonts.cache-NN для каталогов со шрифтами:
# fc-cache -fv

Рекомендации по выбору шрифтов

В качестве основного шрифта рабочего окружения можно рекомендовать либо Droid Fonts, либо Bitstream Vera Fonts, либо Red Hats Liberation Fonts. Однако стоит заметить, что начертание некоторых букв шрифта Red Hats Liberation Fonts на данный момент желает быть лучше, поэтому его, в отличии от Bitstream Vera Fonts, необходимо устанавливать вручную, а не из репозитория.

Установка Droid Fonts

Настоятельно советую присмотреться к этому шрифту - очень симпатичный.

Установка:

$ yaourt -S ttf-droid

Настройка:

Для полной интеграции этого шрифта в систему необходимо подредактировать два файла следующим образом:

Файл /etc/fonts/conf.avail/45-latin.conf:

<!--
  Serif faces
-->
	<alias>
		<family>Droid Serif</family>		<!-- ДОБАВИТЬ ЭТУ СТРОЧКУ -->
		<family>Bitstream Vera Serif</family>
		<family>DejaVu Serif</family>
		<family>Liberation Serif</family>
		<family>Times New Roman</family>
		<family>Times</family>
...
	</alias>
<!--
  Sans-serif faces
-->
	<alias>
		<family>Droid Sans</family>		<!-- ДОБАВИТЬ ЭТУ СТРОЧКУ -->
		<family>Bitstream Vera Sans</family>
		<family>DejaVu Sans</family>
		<family>Liberation Sans</family>
		<family>Arial</family>
...
	</alias>
<!--
  Monospace faces
 -->
 	<alias>
		<family>Droid Sans Mono</family>	<!-- ДОБАВИТЬ ЭТУ СТРОЧКУ -->
		<family>Bitstream Vera Sans Mono</family>
		<family>DejaVu Sans Mono</family>
		<family>Liberation Mono</family>
...
	</alias>
...

Файл /etc/fonts/conf.avail/60-latin.conf - аналогично предыдущему.

Обратите внимание на то, что порядок следования строк между тэгами <alias>...</alias> влияет на выбор того или иного шрифта системой. Так если у Вас установлены Droid Sans Mono и DejaVu Sans Mono, то в этом примере Droid Sans Mono будет иметь бОльший приоритет для моноширинных шрифтов.

Примечание: После обновления/переустановки пакета fontconfig файлы 45-latin.conf и 60-latin.conf будут переписаны, и Вам нужно будет заново добавить в них вышеуказанные строки. Можно создать копии этих файлов, внести в них нужные изменения и создать символические ссылки на них:

# ln -s /etc/fonts/conf.avail/<имя-копии-файла-45-latin>.conf /etc/fonts/conf.d/46-latin.conf
# ln -s /etc/fonts/conf.avail/<имя-копии-файла-45-latin>.conf /etc/fonts/conf.d/61-latin.conf

Теперь после обновления/переустановки пакета fontconfig достаточно будет пересоздать символические ссылки на эти два файла так, как описано выше.
Не будет лишним после этого проверить разницу между файлами пакета и Вашими.

Установка Bitstream Vera Fonts

# pacman -S ttf-dejavu

Установка Red Hats Liberation Fonts

# mkdir /usr/share/fonts/TTFmisc
# cd /usr/share/fonts/TTFmisc
# wget -O ./liberation-fonts.tar.gz https://bugzilla.redhat.com/attachment.cgi?id=290976 
# tar -xf ./liberation-fonts.tar.gz
# cp ./liberation-fonts/*.ttf ./
# rm -R ./liberation-fonts/
# rm -R liberation-fonts.tar.gz
# mkfontscale
# mkfontdir

Установка шрифтов Microsoft®

Так как в пакете ttf-ms-fonts присутствуют некоторые шрифты, начертание которых на данный момент оставляет желать лучшего, можно воспользоваться альтернативным вариантом их установки, который заключается в выборочной инсталляции только необходимых шрифтов.

Необходимые шрифты Вы можете скачать на этой странице веб-сайта SourceForge.net

Не рекомендуется скачивать шрифт Arial, т.к. Red Hats Liberation Fonts, загруженный с сайта Red Hat Bugzilla, имеет схожее начертание и более чёткие линии.

После того, как Вы скачали все необходимые exe-файлы — из них нужно извлечь шрифты в соответствующую папку (напр., /usr/share/fonts/TTFmisc):

# cabextract -F *.TTF -d /usr/share/fonts/TTFmisc <имя-пакета>.exe
# cd /usr/share/fonts/TTFmisc
# mkfontscale
# mkfontdir

Шрифты с включенным LCD фильтром

"LCD" пакеты

Установка:

Удалите оригинальные пакеты:

# pacman -Rd libxft cairo

Установите патченные пакеты из AUR (с использованием пакета yaourt):

$ yaourt -S fontconfig-lcd
$ yaourt -S cairo-lcd
# pacman -S libxft-lcd

Перезапустите Xorg (Ctrl+Alt+Backspace)

Удаление:

# pacman -Rd libxft-lcd cairo-lcd fontconfig-lcd
# pacman -S libxft cairo

"LCD" пакеты c патчами Ubuntu

Установка:

Процесс установки этих пакетов несколько отличается от вышеописанных. Для быстрой и успешной инсталляции все действия должны производиться в такой последовательности:

$ yaourt -S freetype2-ubuntu

НО! После сборки пакета отказаться от его установки.

Файл будет сохранён в папке /tmp/yaourt-tmp-<имя-пользователя>

Теперь его нужно установить, предварительно удалив конфликтующий пакет:

# pacman -Rd freetype
# pacman -U /tmp/yaourt-tmp-<имя-пользователя>/freetype2-ubuntu-<...>.pkg.tar.gz

Аналогично устанавливаются остальные пакеты. Порядок установки пакетов должен быть таким:

 1. freetype2-ubuntu
 2. fontconfig-ubuntu
 3. libxft-ubuntu
 4. cairo-ubuntu

Конфигурация

Общие понятия

Настройки, касающиеся отрисовки шрифтов в Xorg, находятся в:

  • папке /etc/fonts
  • файле /etc/X11/Xresources (содержимое ниже)

Содержимое /etc/fonts:

  • папка conf.avail - содержит доступные файлы конфигураций
  • папка conf.d - содержит символические ссылки на файлы конфигураций (из папки /etc/fonts/conf.d), определяющие параметры шрифтов (отрисовка, замена одних шрифтов другими и т.д.)
  • файл fonts.dtd
  • файл fonts.conf

Например, для применения автохинтинга шрифтов Free Type необходимо создать в папке /etc/fonts/conf.d символическую ссылку на файл /etc/fonts/conf.avail/10-autohint.conf:

# ln -s /etc/fonts/conf.avail/10-autohint.conf /etc/fonts/conf.d/10-autohint.conf

Примечание: В настоящее время не все шрифты с автохинтингом выглядят приемлемо, поэтому рекомендуется его использовать либо для отрисовки шрифтов малого размера, либо не использовать вообще.

Как можно заметить, для файлов конфигурации применяется следующий формат именования:

<xx>-<sometext>.conf, где:

<sometext> - любой текст, описывающий параметры, находящиеся в этом файле (напр.: "hinting-full");

<xx> - двузначное число от 00 до 99, влияет на позицию файла при сортировке по имени, а, соответственно, и на его приоритет: чем больше число - тем выше приоритет.

Например: если в дирректории будут находится два файла с именами 11-hinting-slight.conf (применение слабого сглаживания) и 10-hinting-medium.conf (применение среднего сглаживания), то файл 11-hinting-slight.conf "перекроет" файл 10-hinting-medium.conf и при отрисовке шрифтов будет использоваться слабое сглаживание.

Примечание: В файле /etc/fonts/conf.d/README Вы можете более подробно узнать о префиксном нумеровании, применяемого для этих файлов.

Рекомендации по настройке

Здесь приведено содержимое конфигурационных файлов/каталогов, так или иначе влияющих на начертание шрифтов в системе.

Файл /etc/X11/Xresources :

Xft.dpi: 96
! hintnone, hintslight, hintmedium, hintfull
Xft.hintstyle: hintfull
Xft.hinting: true
! lcdnone, lcddefault, lcdlight, lcdlegacy
Xft.lcdfilter: lcddefault
Xft.rgba: rgb

Каталог /etc/fonts/conf.d/ :

lrwxrwxrwx 1 root root   31 Апр  9 10:48 10-antialias.conf -> ../conf.avail/10-antialias.conf
lrwxrwxrwx 1 root root   42 Апр 17 13:18 10-hinting-full.conf -> /etc/fonts/conf.avail/10-hinting-full.conf
lrwxrwxrwx 1 root root   29 Апр  9 10:48 10-hinting.conf -> ../conf.avail/10-hinting.conf
lrwxrwxrwx 1 root root   43 Апр  8 18:17 10-sub-pixel-rgb.conf -> /etc/fonts/conf.avail/10-sub-pixel-rgb.conf
lrwxrwxrwx 1 root root   51 Апр 17 13:14 11-lcd-filter-lcddefault.conf -> /etc/fonts/conf.avail/11-lcd-filter-lcddefault.conf
...
lrwxrwxrwx 1 root root   41 Апр  9 10:49 45-latin.conf -> /etc/fonts/conf.avail/45-latin.conf-droid
...
lrwxrwxrwx 1 root root   41 Апр  9 10:49 60-latin.conf -> /etc/fonts/conf.avail/60-latin.conf-droid
...
lrwxrwxrwx 1 root root   34 Апр  8 18:18 99-misc.conf -> /etc/fonts/conf.avail/99-misc.conf

Файл /etc/fonts/conf.d/10-antialias.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--  Use the Antialiasing --> 
  <match target="font">
    <edit name="antialias" mode="assign"><bool>true</bool></edit>
  </match>
</fontconfig>

Файл /etc/fonts/conf.d/10-hinting-full.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--  Use Full Hinting --> 
  <match target="font">
    <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
  </match>
</fontconfig>

Файл /etc/fonts/conf.d/10-hinting.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--  Use Hinting --> 
  <match target="font">
    <edit name="hinting" mode="assign"><bool>true</bool></edit>
  </match>
</fontconfig>

Файл /etc/fonts/conf.d/10-sub-pixel-rgb.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--  Enable sub-pixel rendering --> 
  <match target="font">
    <edit name="rgba" mode="assign"><const>rgb</const></edit>
  </match>
</fontconfig>

Файл /etc/fonts/conf.d/11-lcd-filter-lcddefault.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- conf.d/lcd-filter-lcddefault.conf -->
<fontconfig>
<!--  Use lcddefault as default for LCD filter -->
  <match target="font">
    <edit mode="assign" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>
</fontconfig>

Файл /etc/fonts/conf.d/45-latin.conf-droid :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
  Mark common families with their generics so we'll get
  something reasonable
-->

<!--
  Serif faces
 -->
	<alias>
		<family>Droid Serif</family>
		<family>Bitstream Vera Serif</family>
		<family>DejaVu Serif</family>
		<family>Liberation Serif</family>
		<family>Times New Roman</family>
		<family>Times</family>
		<family>Nimbus Roman No9 L</family>
		<family>Luxi Serif</family>
		<family>Thorndale AMT</family>
		<family>Thorndale</family>
		<default><family>serif</family></default>
	</alias>
<!--
  Sans-serif faces
 -->
	<alias>
		<family>Droid Sans</family>
		<family>Bitstream Vera Sans</family>
		<family>DejaVu Sans</family>
		<family>Liberation Sans</family>
		<family>Arial</family>
		<family>Helvetica</family>
		<family>Verdana</family>
		<family>Albany AMT</family>
		<family>Albany</family>
		<family>Nimbus Sans L</family>
		<family>Luxi Sans</family>
		<default><family>sans-serif</family></default>
	</alias>
<!--
  Monospace faces
 -->
 	<alias>
		<family>Droid Sans Mono</family>
		<family>Bitstream Vera Sans Mono</family>
		<family>DejaVu Sans Mono</family>
		<family>Liberation Mono</family>
		<family>Courier New</family>
		<family>Courier</family>
		<family>Andale Mono</family>
		<family>Luxi Mono</family>
		<family>Cumberland AMT</family>
		<family>Cumberland</family>
		<family>Nimbus Mono L</family>
		<default><family>monospace</family></default>
	</alias>
<!--
  Fantasy faces
 -->
 	<alias>
		<family>Impact</family>
		<family>Copperplate Gothic Std</family>
		<family>Cooper Std</family>
		<family>Bauhaus Std</family>
		<default><family>fantasy</family></default>
	</alias>
<!--
  Cursive faces
  -->
	<alias>
		<family>ITC Zapf Chancery Std</family>
		<family>Zapfino</family>
		<family>Comic Sans MS</family>
		<default><family>cursive</family></default>
	</alias>
</fontconfig>

Файл /etc/fonts/conf.d/60-latin.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<alias>
		<family>serif</family>
		<prefer>
			<family>Droid Serif</family>
			<family>DejaVu Serif</family>
			<family>Bitstream Vera Serif</family>
			<family>Times New Roman</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>Droid Sans</family>
			<family>DejaVu Sans</family>
			<family>Bitstream Vera Sans</family>
			<family>Verdana</family>
			<family>Arial</family>
			<family>Albany AMT</family>
			<family>Luxi Sans</family>
			<family>Nimbus Sans L</family>
			<family>Helvetica</family>
			<family>Lucida Sans Unicode</family>
			<family>BPG Glaho International</family> <!-- lat,cyr,arab,geor -->
			<family>Tahoma</family> <!-- lat,cyr,greek,heb,arab,thai -->
		</prefer>
	</alias>
	<alias>
		<family>monospace</family>
		<prefer>
			<family>Droid Sans Mono</family>
			<family>DejaVu Sans Mono</family>
			<family>Bitstream Vera Sans Mono</family>
			<family>Andale Mono</family>
			<family>Courier New</family>
			<family>Cumberland AMT</family>
			<family>Luxi Mono</family>
			<family>Nimbus Mono L</family>
			<family>Courier</family>
		</prefer>
	</alias>
<!--
  Fantasy faces
 -->
 	<alias>
		<family>fantasy</family>
		<prefer>
			<family>Impact</family>
			<family>Copperplate Gothic Std</family>
			<family>Cooper Std</family>
			<family>Bauhaus Std</family>
		</prefer>
	</alias>
<!--
  Cursive faces
  -->
	<alias>
		<family>cursive</family>
		<prefer>
			<family>ITC Zapf Chancery Std</family>
			<family>Zapfino</family>
			<family>Comic Sans MS</family>
		</prefer>
	</alias>
</fontconfig>

Файл /etc/fonts/conf.d/99-misc.conf :

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <!-- Enable sub-pixel rendering -->
    <match target="font">
	<test qual="all" name="rgba">
	    <const>unknown</const>
	</test>
	<edit name="rgba" mode="assign">
	    <const>rgb</const>
	</edit>
    </match>

    <!--Enable Autohint-->
    <match target="font">
	<test name="size" compare="less_eq">
	    <double>8</double>
	</test>
	<edit name="autohint" mode="assign">
	    <bool>true</bool>
	</edit>
    </match>

    <!-- Change hintstyle to hintslight for bold fonts-->
    <!-- except small (till 9th size) -->
    <match target="font">
	<!--<test name="weight" compare="more_eq">
	    <const>medium</const>
	</test>-->
	<test name="size" compare="more">
	    <double>10</double>
	</test>
	<edit name="hintstyle" mode="assign">
	    <const>hintslight</const>
	</edit>
    </match>

    <!-- Disable Anti Aliasing for Tahoma ()-->
    <!--<match target="font">
	<test name="family">
	    <string>Tahoma</string>
	</test>
	<test compare="less" name="size" qual="any">
	    <double>12</double>
	</test>
	<edit mode="assign" name="antialias">
	    <bool>false</bool>
	</edit>
    </match>-->
    
    <!-- Autohint for Tahoma (bold 6th size) -->
    <match target="font">
	<test name="family">
	    <string>Tahoma</string>
	</test>
	<test name="size" compare="eq">
	    <double>6</double>
	</test>
	<test name="weight" compare="more_eq">
	    <const>medium</const>
	</test>
	<edit name="autohint" mode="assign">
	    <bool>true</bool>
	</edit>
    </match>
</fontconfig>

Примечание: Рекомендации по настройке характерны для системы, в которой установлены следующие пакеты:

cairo-ubuntu
    Cairo vector graphics library, with Ubuntu's LCD rendering patches
fontconfig-ubuntu
    A library for configuring and customizing font access, with Ubuntu's LCD rendering patches
freetype2-ubuntu
    TrueType font rendering library, with Ubuntu's LCD rendering patches
libxft-ubuntu
    FreeType-based font drawing library for X, with Ubuntu's LCD rendering patches
ttf-droid
    A font created by Ascender Corporation for use by the Open Handset Alliance platform, Android.

Внешние ссылки

Personal tools