Шрифты как в Windows HowTo: различия между версиями
Misha (обсуждение | вклад) (Новая: Статья написана по материалам [http://www.opennet.ru/base/X/font_as_windows.txt.html статьи] ==Что мы хотим== Время от времени я...) |
Misha (обсуждение | вклад) (→DPI - точек на дюйм) |
||
Строка 56: | Строка 56: | ||
Результат может быть проверен с помощью следующей команды, которая должна вернуть 96x96 точек на дюйм, если вы установили DPI на 96. | Результат может быть проверен с помощью следующей команды, которая должна вернуть 96x96 точек на дюйм, если вы установили DPI на 96. | ||
<pre>xdpyinfo | grep -B1 dot</pre> | <pre>xdpyinfo | grep -B1 dot</pre> | ||
+ | ==Перекомпилировать Freetype2 для задействования интерпретатора байт-кодов== | ||
+ | Загрузите исходные тексты с http://www.freetype.org/ Загружаем и распаковываем архив (я всегда компилирую в | ||
+ | /tmp) и читаем docs/TRUETYPE. | ||
+ | <pre> Это 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 | ||
+ | Это должно быть сделано до компиляции программы</pre> | ||
+ | Лучше и не объяснишь. | ||
+ | |||
+ | Прежде чем компилировать и устанавливать вероятно Вы захотите удалить ранее установленный пакет. Я видел, это советуют в других документах, но я не вижу в этом особой необходимости. Библиотека freetype в Slackware находится в составе пакетов X-Window и не может быть удалена одна. | ||
+ | |||
+ | Вы можете начать компиляцию. | ||
+ | |||
+ | Итак, начнем... | ||
+ | <pre>./configure --prefix=/usr</pre> | ||
+ | Я использую этот префикс для Slackware, Вам он может не понадобиться. Если libfreetype находится в /usr/lib, то все в порядке. Прочтите ./configure --help чтобы узнать установки по умолчанию. | ||
+ | <pre>make | ||
+ | sudo make install | ||
+ | sudo ldconfig</pre> | ||
+ | Если Вы в 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 и добавьте в него следующую строку: | ||
+ | <pre>gtk-font-name = "Verdana 9"</pre> | ||
+ | или другой шрифт, который Вы выбрали в KDE.<br/> | ||
+ | Это все. Надеюсь, я ничего не забыл. | ||
+ | |||
+ | Другие ссылки по теме: | ||
+ | |||
+ | - http://mysite.verizon.net/vze8992v<br/> | ||
+ | - http://convexhull.com/mandrake_fonts.html<br/> | ||
+ | - http://avi.alkalay.net/linux/docs/font-howto/Font.html<br/> | ||
+ | - http://distributions.linux.com/howtos/Font-HOWTO/fix.shtml<br/> | ||
+ | ==Дополнение== | ||
+ | Если вы используете KDM, то можно задать плотность пикселей и не высчитывая вручную геометрию экрана. Для этого редактируем файл kdmrc (в Gentoo он находится в /usr/kde/3.5/share/config/kdm/, в вашем дистрибутиве смотрите размещение KDE). Находим следующую секцию: | ||
+ | <pre> [X-:*-Core] | ||
+ | AllowNullPasswd=true | ||
+ | AllowShutdown=All | ||
+ | NoPassEnable=false | ||
+ | NoPassUsers= | ||
+ | ServerArgsLocal=-nolisten tcp -dpi 96 #<-- обратите внимание. | ||
+ | ServerCmd=/usr/bin/X -br | ||
+ | </pre> | ||
+ | Это особенно полезно будет на "живых" CD, если вы собираете свой или "затачиваете под себя" чужой - ведь вы же не знаете, на каком мониторе с каким разрешением вы будете его запускать. | ||
+ | |||
+ | Я не использую XDM, GDM и Entrance, но наверняка и в их конфигах есть подобная строка. |
Версия 15:47, 5 декабря 2007
Статья написана по материалам статьи
Содержание
Что мы хотим
Время от времени я вижу сообщения от пользователей, жалующихся на то, что их шрифты выглядят уродливо и желающих знать, как их можно улучшить. Часто люди ищут шрифты со сглаживанием как в Apple/OSX. Мне тоже не нравилось, что шрифты выглядят расплывчато и хотелось напрячь глаза, чтобы изображение выглядело более четко. Поэтому надо было что-то предпринять, чтобы шрифты выглядели в точности как в Windows.
Любой может подтвердить, что включение сглаживания шрифтов в Linux дает довольно-таки паршивые результаты. Но эта ситуация может быть изменена кардинально, что я и пытался показать [29]здесь. Эти снимки экрана призваны показать несколько вещей:
- хорошо отрисованные несглаженные шрифты;
- слаженность KDE- и GTK2-приложений
- читаемые терминальные шрифты
- четкие и хорошо отрисованные шрифты во всех браузерах.
Выбор размера монитора.
Обычно размер выбирается в зависимости от монитора/видеокарты и Ваших личных предпочтений. У меня 19-дюймовый ViewSonic, которых хорошо показывает при размере 1280x1024 @ 75hz. 17-дюймовые мониторы обычно имеют размер 1024x768. Отредактируйте Ваш XF86Config или xorg.config для задания желаемого размера и частоты развертки Вашего монитора (если не знаете как - man xorg.conf). Пока не обращайте внимания на слишком мелкие шрифты, над ними мы поработаем позже, при задании dpi.
Что делает Windows?
- Использовать хорошее качество отображения шрифтов.
- Использовать подходящее dpi (dots per inch - точек на дюйм).
- BYTE_CODE_INTERPRETER.
Получение шрифтов TrueType
В Mandriva это можно сделать, если, конечно, есть раздел с Windows, из "Настройка Компьютера" ==> "Система" ==> "Управление, удаление и добавление шрифтов. Импортирование шрифтов Windows"
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, но наверняка и в их конфигах есть подобная строка.