Использование TTF в Linux

Данная информация не претендует ни на особую полноту, ни на изящество предлагаемого решения – если у Вас есть дополнения/поправки – напишите мне об этом.


Любой, кто использовал Windows95/98, сразу же вспомнит, что True Type – это хорошее изобретение, особенно отдельно от «операционных систем от MicroSoft (R, tm, C, что-там-еще)» ;)

Итак – поехали:

  • TTF шрифты
    • либо берем их с ближайшей машины с windows, (но при этом очень важно, чтобы windows был как минимум OSR2, и шрифты были Unicode);
    • либо идем на MicroSoft TrueType download page и берем понравившиеся шрифты. Второе предпочтительнее, ибо легально, законно, да и шрифты там посвежее…
  • X-TrueType server
    • Берем замечательную программу xfstt-0.9.10 (готовый .rpm), или ее же в исходниках , собираем или устанавливаем.
      • При установке .rpm требует библиотеку libstdc++.so.2.9 , которая (как правило) не входит в стандартную поставку Linux. Не беда – достаточно сделать симлинк на libstdc++.so.2.8.0 (ln -s /usr/lib/libstdc++.so.2.8.0 /usr/lib/libstdc++.so.2.9). Если у Вас нет и libstdc++.so.2.8.0 – то установите ее, файл libstdc++-2.8.0-14.i386.rpm входит в поставку RedHat 5.2, или же его можно взять вот здесь .
      • При сборке xfstt из исходников, кроме вышеупомянутой libstdc++-2.8.0 , понадобится еще и libstdc++-devel-2.8.0 , которую можно взять здесь , или найти в дистрибутиве RedHat 5.2
    • После установки xfstt я рекомендую прочитать идущую с ним документацию – там описываются все действия, необходимые для настройки системы под нормальную работу с ttf. Если же читать все-таки лень – то ниже перечислены уж совсем обязательные моменты ;)
  • Необходимые настройки:
    • Создать директорию /usr/ttfonts, и положить туда все .ttf
    • Проверить, работает ли xfstt, набрав xfstt –sync , результатом чего должна быть строка типа «syncing …files in directory, …files sync», и в директории /usr/ttfonts должны появиться два файла ttname.dir и ttinfo.dir . Если все происходит так – то ура, осталось совсем малость – прописать fontpath, запустить xfstt и после чего – X.
    • Пропишите fontpath – добавьте в файл /etc/X11/X86Config строку FontPath «unix/:7100″
    • Запустите xfstt – xfstt &
    • Запустите X
  • В Х-ах:
    • Запустите xfontsel , выберите fndry , и посмотрите – есть ли там пункт ttf ? Если да – то все работает ок, и можно переходить к тонкой настройке xfstt.
      • Выйдите из Х-ов.
      • Выключите xsftt – ps ax|grep xfstt , kill (xfstt’s pid) или /etc/rc.d/init.d/xfstt stop
      • В директории /etc/rc.d/init.d есть файл xfstt – это скрипт запуска xfstt при загрузке системы. Отредактируйте его следующим образом:
        В строку запуска ($XFSTT –dir $TTFONTS) добавьте
        –encoding windows-1251,koi8-r,iso8859-1 –res 120
        ,
        в которой «–encoding» означает выбор кодировок для фонтов, а «–res» – разрешение, в котором фонты будут представлены. По умолчанию, X-server представляет фонты в разрешении 72dpi, что слишком мелко. Я рекомендую устанавливать –res 96 для разрешений до 1024х768, и –res 120 для более высоких разрешений.
      • Запустите xfstt – /etc/rc.d/init.d/xfstt start
      • Запустите X
      • Готово. ;)
      • Теперь можно запустить нетскейп, указать ему использовать TTF шрифты – и сходить, скажем, на Microsoft WWlive CSS demo , ей-богу красиво…

      • Если Вы решили положить .TTF в директорию, отличную от /usr/ttfonts – тогда отредактируйте в скрипте /etc/rc.d/init.d/xfstt параметр $TTFONTS , но при этом помните, что в этом случае все манипуляции с xfstt вроде xfstt –sync , если Вы поставили еще пару десятков шрифтов, и хотите убедиться, что они доступны для сервера, Вам необходимо будет проводить, указывая xfstt директорию со шрифтами:
        xfstt –dir /your/path/to/ttf –(command)
        Злая бед причина заключена в том, что директория /usr/ttfonts определена в самой программе xsftt, и для изменения этого параметра необходимо пересобрать программу, изменив значение TTFONTDIR в файле xfstt.cpp