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 надо подставить
на первое место.
Надеюсь, что эта информация окажется полезной. Если есть
вопросы, со мной можно связаться по адресу [email protected]