The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Настройка шрифтов в Linux (font rus x11 xorg dpi truetype ttf xfs gnome kde)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: font, rus, x11, xorg, dpi, truetype, ttf, xfs, gnome, kde,  (найти похожие документы)
From: Poor Fred Date: Sun, 16 Feb 2008 17:02:14 +0000 (UTC) Subject: Настройка шрифтов в Linux Оригинал: http://www.linuxforum.ru/index.php?showtopic=12690 Оригинал на английском здесь Время от времени я вижу сообщения от пользователей, жалующихся на то, что их шрифты выглядят уродливо и желающих знать, как их можно улучшить. Часто люди ищут шрифты со сглаживанием как в 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 Если Вы автоматически стартуете 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. Вы должны увидеть огромную разницу, как шрифты отрисовываются без сглаживания (при этом размере). Приложения 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, но наверняка и в их конфигах есть подобная строка.

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
 
  • 1, a55, 06:22, 09/02/2009 [ответить] [смотреть все]
  • +/
    Архиполезная статья, большое спасибо.
     
  • 2, dm2003, 22:06, 30/05/2012 [ответить] [смотреть все]
  • +/
    Я вот так добавлял шрифты из Windows. А то были проблемы с отображением нормальных шрифтов в электронных таблицах, которые были созданы в Excel, а открывались в LibreOffice.
    http://softhelp.org.ua/?p=524
    http://softhelp.org.ua/?p=204
     
  • 3, Владимир, 22:51, 18/07/2012 [ответить] [смотреть все]
  • +/
    срочно нужна помощь !! поставил шрифты из винды в Ubuntu 12.....после перезапуска браузера перестали отображаться шрифты вообще ...прямые линии вместо текста ....можно ли как-нибудь вернуть все в состояние до установки шрифтов ? может удалить их ? или возможна какая-нибудь настройка для нормальной работы ...
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor