Re: [шревты][мыло][LCD]Как побороть?

Автор dr_tarr, 06 Января 2009, 17:16

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

dr_tarr

HowTo Шрифты лучше, чем в Windows

Оригинал здесь
Перевод: Poor Fred.

Время от времени я вижу сообщения от пользователей, жалующихся на то, что их шрифты выглядят уродливо и желающих знать, как их можно улучшить. Часто люди ищут шрифты со сглаживанием как в Apple/OSX.

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

Любой может подтвердить, что включение сглаживания шрифтов в Linux дает довольно-таки паршивые результаты. Но эта ситуация может быть изменена кардинально, что я и пытался показать здесь. Эти снимки экрана призваны показать несколько вещей:

* хорошо отрисованные несглаженные шрифты;
* слаженность KDE- и GTK2-приложений
* читаемые терминальные шрифты
* четкие и хорошо отрисованные шрифты во всех браузерах.

Итак, мой "HowTo Шрифты лучше, чем в Windows ". Надеюсь, он кому-нибудь поможет.

Первым делом несколько предупреждений:

1. Некоторые действия, которые я посоветую, могут вступить в противоречие с законом той местности, где вы живете. Также потребуется установка шрифтов, на которые, я надеюсь, вы имеете права, т.к. заплатили за них, покупая Windows или компьютер с предустановленным Windows.
2. Перекомпиляция freetype2 может повлечь за собой некоторые нежелательные эффекты, как то:

    a. падение менеджера шрифтов в KDE 3.2.x (не замечено в KDE 3.3.1);
    b. изменение метода сглаживания шрифтов в Fluxbox. На Blackbox не будет оказано никакого эффекта, т.к. он не использует сглаживание вообще. Вероятно, это легко поправимо, но с тех пор, как я не использую его, мне все равно;
    c. возможно, изменение сглаживания шрифтов может плохо подействовать на KDE/Gnome. Это довольно-таки маловероятно, но я это упоминаю, так как об этом говорят, например, в ньюсгруппах SuSE;


3. Я не проверял это на всех дистрибутивах. Мои снимки сделаны на Slackware-current, использующем Xorg, KDE 3.3.1, Gnome 2.6, freetype 2.1.9, ядро 2.4.27. Ранее я выполнял это на SuSE 8.2, slackware 9.1, slackware 8.1 и попробую на Debian. Я слышал, что "byte code interpreter" уже активизирован в Debian, так что я не думаю, что будет какая-нибудь разница.

Ну ладно, достаточно лирических отступлений.

Шаг 1: Выбор размера монитора.

Обычно размер выбирается в зависимости от монитора/видеокарты и Ваших личных предпочтений. У меня 19-дюймовый ViewSonic, которых хорошо показывает при размере 1280x1024 @ 75hz. 17-дюймовые мониторы обычно имеют размер 1024x768. Отредактируйте Ваш XF86Config или xorg.config для задания желаемого размера и частоты развертки Вашего монитора (если не знаете как - man xorg.conf). Пока не обращайте внимания на слишком мелкие шрифты, над ними мы поработаем позже, при задании dpi.

Шаг 2: Что делает Windows?
Windows делает три вещи, которые мы хотим заставить делать Linux: 1. Использовать хорошее качество отображения шрифтов. 2. Использовать подходящее dpi (dots per inch - точек на дюйм). 3. BYTE_CODE_INTERPRETER.

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

Некоторые дистрибутивы, такие как 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 в Центре управления в разделе "Системн&#

Vicpo

HowTo Шрифты лучше, чем в Windows

Оригинал здесь
Перевод: Poor Fred.

Время от времени я вижу сообщения от пользователей, жалующихся на то, что их шрифты выглядят уродливо и желающих знать, как их можно улучшить. Часто люди ищут шрифты со сглаживанием как в Apple/OSX.

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

Любой может подтвердить, что включение сглаживания шрифтов в Linux дает довольно-таки паршивые результаты. Но эта ситуация может быть изменена кардинально, что я и пытался показать здесь. Эти снимки экрана призваны показать несколько вещей:

* хорошо отрисованные несглаженные шрифты;
* слаженность KDE- и GTK2-приложений
* читаемые терминальные шрифты
* четкие и хорошо отрисованные шрифты во всех браузерах.

Итак, мой "HowTo Шрифты лучше, чем в Windows ". Надеюсь, он кому-нибудь поможет.

Первым делом несколько предупреждений:

1. Некоторые действия, которые я посоветую, могут вступить в противоречие с законом той местности, где вы живете. Также потребуется установка шрифтов, на которые, я надеюсь, вы имеете права, т.к. заплатили за них, покупая Windows или компьютер с предустановленным Windows.
2. Перекомпиляция freetype2 может повлечь за собой некоторые нежелательные эффекты, как то:

    a. падение менеджера шрифтов в KDE 3.2.x (не замечено в KDE 3.3.1);
    b. изменение метода сглаживания шрифтов в Fluxbox. На Blackbox не будет оказано никакого эффекта, т.к. он не использует сглаживание вообще. Вероятно, это легко поправимо, но с тех пор, как я не использую его, мне все равно;
    c. возможно, изменение сглаживания шрифтов может плохо подействовать на KDE/Gnome. Это довольно-таки маловероятно, но я это упоминаю, так как об этом говорят, например, в ньюсгруппах SuSE;


3. Я не проверял это на всех дистрибутивах. Мои снимки сделаны на Slackware-current, использующем Xorg, KDE 3.3.1, Gnome 2.6, freetype 2.1.9, ядро 2.4.27. Ранее я выполнял это на SuSE 8.2, slackware 9.1, slackware 8.1 и попробую на Debian. Я слышал, что "byte code interpreter" уже активизирован в Debian, так что я не думаю, что будет какая-нибудь разница.

Ну ладно, достаточно лирических отступлений.

Шаг 1: Выбор размера монитора.

Обычно размер выбирается в зависимости от монитора/видеокарты и Ваших личных предпочтений. У меня 19-дюймовый ViewSonic, которых хорошо показывает при размере 1280x1024 @ 75hz. 17-дюймовые мониторы обычно имеют размер 1024x768. Отредактируйте Ваш XF86Config или xorg.config для задания желаемого размера и частоты развертки Вашего монитора (если не знаете как - man xorg.conf). Пока не обращайте внимания на слишком мелкие шрифты, над ними мы поработаем позже, при задании dpi.

Шаг 2: Что делает Windows?
Windows делает три вещи, которые мы хотим заставить делать Linux: 1. Использовать хорошее качество отображения шрифтов. 2. Использовать подходящее dpi (dots per inch - точек на дюйм). 3. BYTE_CODE_INTERPRETER.

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

Некоторые дистрибутивы, такие как 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-шрифтов.

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

Window использует по умолчанию 96 dpi. Linux - 75 или 81. Вот почему шрифты в Linux всегда такие маленькие по сравнению с теми же самыми шрифтами в Windows при одинаковом размере экрана и шрифтов. В зависимости от Вашей ситуации мы должны сделать следующие шаги, чтобы заставить Linux работать при 96 dpi.
a) Если Вы сначала загружаетесь в консоль (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

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

# Any number of monitor sections may be present

Section "Monitor"

Identifier "My Monitor"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

HorizSync 31 - 86

# HorizSync 30-64 # multisync
# HorizSync 31.5, 35.2 # multiple fixed sync frequencies
# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

VertRefresh 50-180
Option "dpms"
DisplaySize 337.5 270.0  #<--- обратите внимание
EndSection

Опция DisplaySize 337.5 270.0 заставляет X-Window загрузиться с разрешением 96x96 dpi при размере экрана 1280x1024. Переменная задается
Код
DisplaySize X Y


где

Код
X = ширина_экрана_в_пикселях * 25.4 / желаемый_dpi
Y = высота_экрана_в_пикселях * 25.4 / желаемый_dpi


c) Если Вы используете Gnome, то даже если мы выполнили предыдущие шаги, этого недостаточно. Идем в Gnome/Desktop Prefs/Fonts/Details и изменяем опцию DPI вверху страницы на 96. Если даже Вы не используете Gnome, но применяете демон gnome-setting для переноса оформления из Gnome в KDE, или просто используете приложения из Gnome, такие, как evolution, Вам необходимо выполнить это действие, т.к. они могут привнести настройки dpi в KDE и сделать отображение шрифтов неустойчивым.

ОК, мы имеем TrueType шрифты и (или) dpi установлено на 96x96. Теперь нам нужно

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

Загрузите исходные тексты с http://www.freetype.org/.

Возможно это не особая проблема, но я всегда стараюсь устанавливать версию ту же, что стоит в системе. Например, до недавнего времени в Слаке стояла версия 2.1.8 и хотя уже вышла 2.1.9 я тем не менее перекомпилировал именно 2.1.8. Мне кажется, чем меньше переменных, тем меньше проблем. Загружаем и распаковываем архив (я всегда компилирую в /tmp) и читаем README.

Это TRUETYPE readme из пакета исходников freetype2:
How to enable the TrueType native hinter if you need it
--------------------------------------------------------
Бла-бла-бла, тут неинтересно (прим. переводчика)
--------------------------------------------------------

- откройте файл "include/freetype/config/ftoption.h"

- найдите строку:

#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER

- замените на:

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

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

Еще одна вещь, которую нам надо сделать перед установкой - проверить символические ссылки.
steve@peggyo:~$ cd /usr/lib
steve@peggyo:/usr/lib$ ls -la libfreetype*
-rw-r--r-- 1 root root 2431914 2004-11-11 00:28 libfreetype.a
-rwxr-xr-x 1 root root 816 2004-11-11 00:28 libfreetype.la*
lrwxrwxrwx 1 root root 20 2004-11-11 00:28 libfreetype.so -> libfreetype.so.6.3.7*
lrwxrwxrwx 1 root root 20 2004-11-11 00:28 libfreetype.so.6 -> libfreetype.so.6.3.7*
-rwxr-xr-x 1 root root 415008 2004-06-05 17:48 libfreetype.so.6.3.5* (<-старая)
-rwxr-xr-x 1 root root 1521734 2004-11-11 00:28 libfreetype.so.6.3.7*
steve@peggyo:/usr/lib$

Это полезно, если Вы будете обновлять библиотеки и хотите проверить, что линки указывают на новые. А также, если планируете удалить старые библиотеки перед компиляцией новых и хотите убедиться, что новые линки были созданы. Если нет, то листинг старых укажет Вам, что делать.

Убедитесь, что новые пакеты с исходными текстами установлены, так что Вы можете начать компиляцию.

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

./configure --prefix=/usr
Я использую этот префикс для Slackware, Вам он может не понадобиться. Если libfreetype находится в /usr/lib, то все в порядке. Прочтите ./configure --help чтобы узнать установки по умолчанию.
make
Побежали строчки. Сообщения типа "blah blah violates strict antialiasing rules yada yada" можете игнорировать.

Зарегистрируйтесь root'ом:

su -
make install

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

Вы должны увидеть огромную разницу, как шрифты отрисовываются без сглаживания (при этом размере).

Шаг 3: Приложения 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, но наверняка и в их конфигах есть подобная строка.


Источник здесь

Vicpo


dr_tarr

Настроил. Спасибо за помощь, Vicpo.