Шрифты как в Windows HowTo

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску

Оригинал статьи находится тут. Я лишь чуть изменил ее с учетом Mandriva 2008.

dOO2nB <a href="http://riiwnyfvxwzj.com/">riiwnyfvxwzj</a>, [url=http://jzwcqbdlwbiu.com/]jzwcqbdlwbiu[/url], [link=http://defplznzxrlu.com/]defplznzxrlu[/link], http://uuxiyrfktxze.com/

Получение шрифтов TrueType

В Mandriva это можно сделать, если, конечно, есть раздел с Windows, из "Настройка Компьютера" ==> "Система" ==> "Управление, удаление и добавление шрифтов. Импортирование шрифтов Windows"

В статье это описано так:
Некоторые дистрибутивы, такие как SuSE, имеют небольшие скрипты для загрузки пакета Windows Core Font. Если Вы владелец CD с Windows, на нем есть программы позволяющие извлечь файлы шрифтов из архивов .cab. Если Вы используете двойную загрузку как я, примонтируйте раздел с Windows и скопируйте папку со шрифтами в Вашу домашнюю директорию. Это необязательно, но необходимо, если Вы планируете удалить раздел с Windows.

Теперь мы должны добавить шрифты TrueType в Linux. Обычно в Linux шрифты располагаются в /usr/X11R6/lib/X11/fonts. Быстрый взгляд на xorg/XF86Config сообщит Вам следующее:

# FontPath "/usr/X11R6/lib/X11/fonts/local"
# FontPath "/usr/X11R6/lib/X11/fonts/CID"
# FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/TTF"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/opt/kde/share/fonts"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"
FontPath "/usr/local/share/fonts"
FontPath "/usr/X11R6/lib/X11/fonts"
FontPath "/usr/local/share/fonts/TTF" #<-- строка создана менеджером шрифтов KDE
FontPath "/usr/share/fonts"
FontPath "/usr/share/fonts/default"

В моем случае шрифты TrueType находятся в каталоге TTF. В Вашем они могут находиться в каталоге fonts или создайте сами каталог TTF. Вы можете также добавить каталог ~/fonts, если не хотите, чтобы шрифты распространялись на всю систему, но я обычно устанавливаю их для всей системы. Если Вы не создавали новый каталог для шрифтов, убедитесь, что добавили строку FontPath, чтобы указать, где X могут их найти.

Простейший путь установить новые шрифты - использовать менеджер шрифтов KDE в Центре управления в разделе "Системные установки". Перейдите в администраторский режим (для установки шрифтов для всей системы) и щелкните на директорию TTF в дереве каталогов. Щелкните "Добавить шрифты" в панели инструментов. Укажите на каталог со шрифтами Windows и выберите все шрифты, которые желаете добавить:

Arial, Comic Sans MS, Courier New, Tahoma, Times New Roman и Verdana

как минимум. Конечно, Вы можете добавить, все, которые хотите. Если Вы используете этот путь, шрифты будут установлены в каталог /usr/local/share/fonts/TTF и путь к нему будет создан в xorg.conf как в листинге выше. Мы сделали это в первую очередь, так как перекомпиляция freetype2 может нарушить работу мереджера шрифтов KDE - это все всемя случалось у меня в KDE 3.2.x.

Во время правки xorg.conf убедитесь, что 100dpi-шрифты находятся выше 75dpi-шрифтов.

DPI - точек на дюйм

Window использует по умолчанию 96 dpi. Linux - 75 или 81. Вот почему шрифты в Linux всегда такие маленькие по сравнению с теми же самыми шрифтами в Windows при одинаковом размере экрана и шрифтов. В зависимости от Вашей ситуации мы должны сделать следующие шаги, чтобы заставить Linux работать при 96 dpi.

Если Вы сначала загружаетесь в консоль (runlevel 3) и используете startx для запуска Х-ов, отредактируйте скрипт /usr/X11/bin/startx. В зависимости от дистрибутива, это может быть символьная ссылка.

userclientrc=$HOME/.xinitrc
userserverrc=$HOME/.xserverrc
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
defaultclient=/usr/X11R6/bin/xterm
defaultserver=/usr/X11R6/bin/X
defaultclientargs=""
defaultserverargs="-dpi 96" #<--- обратите внимание
clientargs=""
serverargs=""

Просто добавьте "-dpi 96" к строке defaultserverargs= и все. Теперь, каждый раз, как Вы запускаете startx, Вы будете загружаться с разрешением 96x96 dpi, что можно проверить командой в терминале после того, как Х-ы запустятся:

xdpyinfo | grep resolution

Если Вы автоматически стартуете X-Window через KDM или GDM, Вам нужно отредактировать xorg.conf or XF86Config. Это немного посложнее. Мы должны использовать переменную DisplaySize и она будет разная для каждого размера экрана.

Для того чтобы выбрать правильный размер шрифтов, размер дисплея должен быть установлен для предпочитаемого DPI. В секции "Monitor" пропишите размер дисплея в миллиметрах:

Section "Monitor"
   ...
 DisplaySize 336 252 # 96 DPI @ 1280x960
   ...
EndSection

Формула, рассчитывающая значение DisplaySize такова Ширина x 25.4 / DPI и Высота x 25.4 / DPI. Например, если вы запускаете Xorg с разрешением 1024x768 и хотите DPI, равное 96, используйте 1024 x 25.4 / 96 и 768 x 25.4 / 96. Округлённые значения приведены ниже.

# calc: (x|y)pixels * 25.4 / dpi
# DisplaySize 168 126 # 96 DPI @ 640x480
# DisplaySize 210 157 # 96 DPI @ 800x600
# DisplaySize 269 201 # 96 DPI @ 1024x768
# DisplaySize 302 227 # 96 DPI @ 1152x864
# DisplaySize 336 252 # 96 DPI @ 1280x960
# DisplaySize 336 269 # 96 DPI @ 1280x1024 (соотношение сторон не 4:3)
# DisplaySize 420 315 # 96 DPI @ 1600x1200

Для nVidia драйверов вы, возможно, захотите отключить автоматическое определение DPI и поставить его вручную. Существует также более простой способ настройки DPI на этих картах. Любая или обе из следующих строк могут быть вставлены в секцию Device для вашей nVidia карты.

Option   "UseEdidDpi" "false"
Option   "DPI" "96 x 96"

Результат может быть проверен с помощью следующей команды, которая должна вернуть 96x96 точек на дюйм, если вы установили DPI на 96.

xdpyinfo | grep -B1 dot

Перекомпилировать Freetype2 для задействования интерпретатора байт-кодов

Загрузите исходные тексты с http://www.freetype.org/ Загружаем и распаковываем архив (я всегда компилирую в/tmp) и читаем docs/TRUETYPE.

 Это TRUETYPE readme из пакета исходников freetype2:

How to enable the TrueType native hinter if you need it
--------------------------------------------------------
..Бла-бла-бла, тут неинтересно (прим. переводчика)
--------------------------------------------------------
- откройте файл "include/freetype/config/ftoption.h"
- найдите строку:
 /* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
и замените
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
Это должно быть сделано до компиляции программы

Лучше и не объяснишь.

Прежде чем компилировать и устанавливать вероятно Вы захотите удалить ранее установленный пакет. Я видел, это советуют в других документах, но я не вижу в этом особой необходимости. Библиотека freetype в Slackware находится в составе пакетов X-Window и не может быть удалена одна.

Вы можете начать компиляцию.

Итак, начнем...

./configure --prefix=/usr

Я использую этот префикс для Slackware, Вам он может не понадобиться. Если libfreetype находится в /usr/lib, то все в порядке. Прочтите ./configure --help чтобы узнать установки по умолчанию.

make
sudo make install
sudo ldconfig

Если Вы в KDE, запустите Панель управления и разделе Внешний вид/Шрифты оставьте сглаживание шрифтов, но исключите диапазон от 0.0pt до 14.0 или 15.0pt. Замените все шрифты на Arial или Verdana размером 9 или 10 pt и перезапустите X-Window. Вы должны увидеть огромную разницу, как шрифты отрисовываются без сглаживания (при этом размере).

Приложения GTK2 (Gimp Tool Kit) в KDE

Приложения типа Mozilla, Gnumeric, Gaim, Abiword, Blufish, Pan являются приложениями GTK2. При использовании их в KDE они не будут следовать установкам шрифтов и размеров, которые Вы установили, пока Вы не создадите скрытый файл в Вашей домашней директории. Создайте текстовый файл, назовите его .gtkrc-2.0 и добавьте в него следующую строку:

gtk-font-name = "Verdana 9"
или другой шрифт, который Вы выбрали в KDE.

Это все. Надеюсь, я ничего не забыл.

Другие ссылки по теме:

- http://mysite.verizon.net/vze8992v
- http://convexhull.com/mandrake_fonts.html
- http://avi.alkalay.net/linux/docs/font-howto/Font.html
- http://distributions.linux.com/howtos/Font-HOWTO/fix.shtml

Дополнение

Если вы используете KDM, то можно задать плотность пикселей и не высчитывая вручную геометрию экрана. Для этого редактируем файл kdmrc (в Gentoo он находится в /usr/kde/3.5/share/config/kdm/, в вашем дистрибутиве смотрите размещение KDE). Находим следующую секцию:

           [X-:*-Core]
           AllowNullPasswd=true
           AllowShutdown=All
           NoPassEnable=false
           NoPassUsers=
           ServerArgsLocal=-nolisten tcp -dpi 96 #<-- обратите внимание.
           ServerCmd=/usr/bin/X -br

Это особенно полезно будет на "живых" CD, если вы собираете свой или "затачиваете под себя" чужой - ведь вы же не знаете, на каком мониторе с каким разрешением вы будете его запускать.

Я не использую XDM, GDM и Entrance, но наверняка и в их конфигах есть подобная строка.