Unicode-шрифты в KDE: mini-HOWTO

Информация для людей, использующих TreuType шрифты (через freetype в XFree 4.x), но не использующих antialiasing по тем или иным соображениям (например, мне не нравится, как выглядит antialiased текст).

Вы могли видеть, что при отображении в konqueror русских web страниц (как в кодировке koi8-r, так и в кодировке windows-1251) вместо длинного тире и некоторых других символов все-таки возникают вопросительные знаки. Это связано с тем, что для отображения страниц используется шрифт в кодипровке koi8-r (страницы в 1251 предварительно перекодируются), а такие символы отсутствуют в кодировке koi8-r и поэтому Qt заменяет их на вопросительные знаки. Однако, в наиболее широко используемых TTF шрифтах - например, шрифтах из Woindows - символы таки присутствуют. Для того, чтобы они отображались правильно, нужно объявить шрифты не как koi8-r, а как iso10646-1 (т.е. юникод).

Freetype позволяет один и тот же ttf файл подключить с несколькими кодировками. Например, в файле fonts.dir в каталоге с TTF шрифтами могла быть строка times.ttf -ttf-times-medium-r-normal--0-0-0-0-p-0-koi8-r Тогда шрифт, находящийся в файле times.ttf доступен, становится доступен в X под указанным XLFD-именем и рассматривается как шрифт с кодировкой koi8-r. Если добавить в fonts.dir строку times.ttf -ttf-times-medium-r-normal--0-0-0-0-p-0-iso10646-1 то тот файл times.ttf породит еще один шрифт, доступный в X, но имеющий кодировку Unicode.

После того, как X серверу станут доступны ttf шрифты в unicode, легко заставить KDE использовать для отображения русских текстов именно их. Тогда вопросики вместо длинных тире исчезнут. Для этого в файле $KDEDIR/share/config/charsets (который в зависимости от дистрибутива может быть расположен и где-то еще, например в Debian это /etc/kde2/charsets) в разделе

[charsetsForEncoding]
следует указать
koi8-r=unicode
koi8-u=unicode
iso 8859-5=unicode
cp 1251=unicode
Можно оставить и старые варианты, но тогда unicode надо подставить на первое место.

Надеюсь, что эта информация окажется полезной. Если есть вопросы, со мной можно связаться по адресу yoush@cs.msu.su