Добавить в избранное | Сделать стартовой страницей

Большая Linux библиотека для пользователей OS Linux и ПО для нее
Есть что сказать? Нужен совет? Посети наш форум.


-


Антиалиазинг и шрифты в Qt.

Автор : Lars Knoll, [email protected]
Перевод : Андрей Черепанов, [email protected]

<>Это небольшое руководство описывает, что необходимо для правильной поддержки шрифтов в приложениях Qt, работающих под X11. В основном оно будет интересно дистрибуторам или людям, самим настраивающим шрифты под Unix. Это неполное руководство, и вам придется самому разобраться в некоторых деталях, лишь вскользь упомянутых в данном очерке.

Содержание

  • Получение эффекта сглаженных (antialiased) шрифтов на XFree86 c Qt и KDE
  • Настройка вида рабочего стола без сглаженных шрифтов
    • Растровые шрифты на X11
    • Добавление векторных шрифтов к путям ваших шрифтов
    • Использование шрифтов TTF
  • Использование шрифтов TTF и шрифтов PostScript для печати в KDE
  • Где найти шрифты TTF в Интернете ?
    • Где найти шрифты для различных кодировок, отличных от latin ?
  • Ресурсы Web

Получение эффекта сглаженных шрифтов на XFree86 c Qt и KDE

Для получения эффекта сглаживания шрифтов на вашем рабочем столе X11 необходимо проделать следующее. Имейте в виду, что поддержка сглаживания в X11 является все ещё экспериментальной и может оказаться недоступной для некоторых видеокарт в силу отсутствия драйверов.

Для начала необходимо убедиться в том, что:

  • В вашей системе установлен freetype2.
  • Ваша версия XFree86 >= 4.0.2, причем рекомендуется последняя версия из CVS.
  • Драйвер XFree для вашей видеокарты поддерживает расширение rendering.
    Информация о поддержке этого расширения графическими платами, к сожалению, все ещё неполна. Точно его поддерживает Matrox (эта плата - единственная из всех, на которых реализовано аппаратное ускорение). Как я слышал, драйверы для NVidia все ещё разрабатываются, однако скоро будут доступны.
  • Информацию по другим драйверам см. на сайте XFree86.
Если у вас все это имеется, вы можете проверить, доступно ли расширение rendering, просмотрев вывод команды xdpyinfo и найдя строку RENDER в списке расширений.

Если она присутствует, вам понадобится версия Qt-2.3.0 или более поздняя, собранная с поддержкой Xft. Если вы собираете Qt самостоятельно, добавьте параметр -xft при запуске configure.

Кроме того, вам необходимы truetype шрифты для полного раскрытия всей мощи расширения Xft на X11. См. п.4 этого руководства для ссылок на ресурсы шрифтов в Интернете. truetype шрифты Microsoft, доступные в Интернете, очень хорошего качества и послужат хорошей отправной точкой.

Загрузив шрифтов из Сети, вы должны будете добавить их к путям каталогов векторных шрифтов в файле XftConfig в /usr/X11R6/lib/X11.

Теперь установите переменную окружения QT_XFT в true и запустите любое приложение Qt (например, designer). Если все прошло успешно, вы увидите сглаженные шрифты.

Если вы запускаете KDE и не получили сглаженных шрифтов на вашем рабочем столе, попробуйте удалить файл ~/.kde/share/config/kdefonts.

Настройка вида рабочего стола без сглаженных шрифтов

Растровые шрифты на X11

Стандартная поставка X11 включает в себя набор растровых шрифтов. К сожалению, настройка по умолчанию позволяет Х-серверу масштабировать эти шрифты. При масштабировании растровые шрифты выглядят отвратительно, и первое, что надо сделать - запретить Х-серверу масштабировать эти шрифты. Это можно сделать, исправив файл XF86Config.

Замените все строки с указанием путей к каталогам, содержащим растровые шрифты, например:

    FontPath "/usr/X11R6/lib/X11/fonts/75dpi"

на

    FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"

Теперь вы более не увидите отвратительных масштабированных растровых шрифтов на вашем экране.

Добавление векторных шрифтов к путям ваших шрифтов

Существует множество бесплатных векторных шрифтов, которые можно скачать и использовать. Некоторые из них распространяются с X11 и ghostscript. Векторные шрифты из поставки X11 автоматически включаются в пути к вашим шрифтам, поэтому вам не стоит беспокоиться о них. Но, возможно, вам нужно будет добавить шрифты PostScript, входящие в поставку ghostscript, к списку ваших векторных шрифтов.

Каталог шрифтов ghostscript уже содержит файлы fonts.dir, fonts.scale и fonts.alias, поэтому вам нужно только добавить этот каталог к путям шрифтов в файле XF86Config.

Тем не менее, хочу предупредить, что некоторые из масштабируемых шрифтов PostScript выглядят довольно плохо на экране, и их не следует включать в список шрифтов. Если у вас есть шрифты, которые выглядят грубовато в Qt/KDE, вам, пожалуй, стоит удалить строки с описанием этого шрифта из файлов font.*.

Использование шрифтов TTF

Существует ряд высококачественных шрифтов, которые вы можете бесплатно скачать из Интернета. Большинство из них являются шрифтами TTF, и вы можете установить X-сервер,поддерживающий эти шрифты, или использовать сервер шрифтов TrueType.

Большинство современных дистрибутивов Linux поставляются с X-сервером, который уже поддерживает шрифты TTF. Если вы используете коммерческий Unix или старую систему, X-сервер может не поддерживать такие шрифты, и вам необходимо будет установить сервер шрифтов TTF.

Вы можете взять сервер шрифтов TTF на http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/

Дополнительно вам необходима программа ttmkfontdir для создания файла fonts.dir ваших шрифтов TTF. Если она еще не установлена, возьмите её на http://www.joerg-pommnitz.de/TrueType/xfsft.html.

Теперь вы можете работать с шрифтами TTF и скачать эти великолепные шрифты из Интернета. Посмотрите четвертый пункт, в нем написано, где их можно взять в Интернете. Скачайте понравившиеся шрифты и скопируйте их в подкаталог ttf в каталоге /usr/X11R6/lib/X11/fonts. Затем запустите программу ttmkfontdir в этом каталоге и перенаправьте её вывод в файл fonts.dir.

Добавьте этот каталог к путям шрифтов в файле XF86Config (если ваш сервер может напрямую работать с файлами TTF) или сделайте его доступным для сервера шрифтов (xfsft или xfstt).

Использование шрифтов truetype и шрифтов PostScript для печати в KDE

Qt 2.3.0 и более поздние версии могут использовать шрифты truetype и шрифты PostScript, для улучшения качества печати. Это будет сделано автоматически, если шрифты truetype найдены, или если используется расширение rendering X11.

Это не получится с сервером шрифтов, поскольку он не извещает систему о том, где на жестком диске хранятся шрифты. В этом случае добавьте пути к шрифтам postscript либо в файл конфигурации X-сервера, XF86Config, либо временно командой xset +fp /path/to/your/fonts/. Чтобы использовать шрифты truetype без сервера шрифтов, нужно, чтобы X-сервер поддерживал их напрямую.

Где найти шрифты TTF в Интернете ?

Большинство из тех шрифтов, которые доступны в Интернете, поддерживают только латиницу. Зайдя на сайты, которые указаны в конце этого руководства, вы найдете тысячи таких шрифтов. Но, к сожалению, 90% из них служат для специальных целей или плохого качества.

Первый ресурс, о котором стоит упомянуть, - каталог шрифтов Windows c:\windows\fonts (если они у вас установлены). Там вы найдете много шрифтов великолепного качества, которые удовлетворят ваши потребности.

Если у вас нет Windows, вы можете скачать эти шрифты прямо с сайта Microsoft. "Основные шрифты для Web" является коллекцией высококачественных шрифтов для скачивания, на которые ориентируются много вебмастеров. Хотя их лицензия не вполне ясна, тем не менее, вы можете скачать их бесплатно для личного использования.

Основные шрифты используют набор символов WGL4, который включает в себя символы латиницы, кириллицы, греческого, турецкого языков и (частично) иврита. Взять их можно с http://www.microsoft.com/truetype/fontpack/. Примечание: версия этих шрифтов для win3.1 может быть распакована unzip. Версии .exe для win95-2000 могут быть распакованы утилитой cabextract. И если вы используете дистрибутив Debian, вы можете скачать и установить их командой `apt-get msttcorefonts`. http://www.hclrss.demon.co.uk/unicode/fonts.html

Другой набор шрифтов вы, возможно, уже имеете на своей машине, - это набор шрифтов lucida, идущий с JRE (java runtime environment). Версия JRE от IBM включает дополнительные шрифты, которые содержат большинство раскладок Unicode.

Список хороших шрифтов для различных языков доступен на

Стоит еще упомянуть о шрифте bistream cyberbit. Лицензия вроде бы позволяет включать его в дистрибутивы (но не кивайте на меня, а проверьте сами), и в нем есть большинство раскладок Unicode-2.1. Вы можете найти их на любом зеркале FTP-сервера Netscape.

Набор шрифтов для латиницы, кириллицы и, частично, иврита являются частью поставки OpenOffice. Вы можете взять их из CVS openoffice в каталоге extras/wnt/source/fonts/.

Где найти шрифты для различных кодировок, отличных от latin ?

Найти хорошие бесплатные шрифты для кодировок, отличных от latin1, обычно очень трудно, а в некоторых случаях просто невозможно, поэтому ниже я укажу известные мне ресурсы для получения таких шрифтов. Возможно, список неполный, поэтому если вы знаете местонахождение шрифтов для различных кодировок, сообщите мне, и я добавлю их в список.

Я указываю адреса расположения только тех шрифтов, которые являются бесплатными и, по-видимому, могут быть включены в дистрибутивы. Некоторые другие шрифты, такие как Microsoft webfonts, могут быть теми самыми шрифтами, которые вы ищете, но они не указаны в списке ввиду того, что их лицензия ограничивает их свободное распространение.

Поддерживающие большинство раскладок Unicode
Bitstream Cyberbit: ftp://ftp.netscape.com/pub/communicator/extras/fonts/windows/
Японский
Бесплатные шрифты, которые я знаю - wadalab gothic и mincho (postscript) могут быть найдены по адресу: ftp://ftp.ipl.t.u-tokyo.ac.jp/Font/ Примечания по поводу преобразования их в формат Type0 (необходимый для поддержки в ghostscript) находятся по адресу: http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/kanji.html
Китайский (упрощенный и традиционный):
Мне известны только два шрифта. Они находятся по адресу http://trolls.troll.no/~lars/fonts/
Корейский:
Я слышал, что бесплатные корейские шрифты доступны по адресу: ftp://ftp.cair-archive.kaist.ac.kr/pub/hangul/fonts/munhwa-fonts, но я давно не проверял этот архив. Я буду признателен любым новым сведениям об этих шрифтах.
Некоторые азиатские шрифты PostScript находятся по адресу http://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobeИх лицензия не вполне ясна, и устанавливать их достаточно утомительно. У меня получилось использовать их в ghostscript, но не в X11. Хотя в принципе это должно быть возможно.
Грузинский
Некоторые грузинские truetype шрифты могут быть найдены по адресу: http://www.redrival.com/giasher/download.htm
Шрифты с поддержкой латиницы и кириллицы:
Целый набор шрифтов для латиницы, кириллицы и, частично, иврита являются частью поставки OpenOffice. Вы можете получить их из CVS openoffice в каталоге extras/wnt/source/fonts/. См. сайт openoffice для дополнительной информации.
Арабский
Мне известны только шрифты bitstream cyberbit (см. выше) и некоторые растровые шрифты:
Arabic Newspaper и ClearlyU по адресу http://crl.nmsu.edu/~mleisher/arabic24.html
Иврит:
Microsoft web fonts частично содержат иврит, так же как и часть шрифтов openoffice. Кроме того, JRE от IBM также содержат иврит.
Много этих шрифтов находится по адресу: http://user.dtcc.edu/~berlin/font/hebrew.htm некоторые растровые шрифты можно найти по адресу: http://elmar.co.il/wwh/wwh/xfiles/H.fonts/index.en.html http://sunsite.unc.edu/pub/Linux/X11/fonts/hebxfonts-0.2.tgz"
Греческий:
ftp://ftp.rhrz.uni-bonn.de/pub/institute/evtheol/milan.zip ftp://ftp.rhrz.uni-bonn.de/pub/institute/evtheol/greekofc.zip
Тамильский:
http://www.geocities.com/avarangal/tamilunicode.html
Тайский:
http://software.thai.net/tis-620/courierthai.html
Античный греческий, иврит и коптский:
http://rosetta.atla-certr.org/TC/fonts/

Ресурсы Web

Прочие FAQ для Unix/X11:
http://www.cs.ruu.nl/wais/html/na-dir/internationalization/font-faq.html
Сайты для поиска truetype шрифтов для специфических кодировок:
http://user.dtcc.edu/~berlin/fonts.html
http://www.sil.org/computing/fonts/