BASH Programming - Введение

       

Установка шрифтов для X Window


Прежде всего, вы должны достать шрифты, содержащие изображения кириллических символов в соответствующих местах. Следует отметить, что все современные дистрибутивы имеют KOI8-R шрифты, более-менее пригодные для использования, так что если xlsfonts не показывает их, то они просто не установлены или не включены в X Font Path.

X Window включила набор KOI8-R шрифтов, разработанных , еще в конце 1995 года. Эти шрифты являются также частью XFree86.

Некоторые дистрибутивы (как правило, очень старые) могут не включать кириллические шрифты для X Window -- в этом случае их придется устанавливать самим.

Подробнее о шрифтах для X-window и о том, где их можно найти, смотрите в разделе .

Более современную коллекцию шрифтов для X windows можно взять у по адресу .

Поэтому вам следует проверить, установлены ли эти шрифты в вашей системе. Спросите системного администратора, или, если вы сами являетесь администратором, проверьте вашу систему сами, а именно:

  • Выполните 'xlsfonts | grep koi8'. Если в результате выполнения команды появится список шрифтов, то ваш X сервер уже знает об их существовании.
  • Или наберите

    find / -name crox\*.pcf\*

    для того, чтобы найти местоположение шрифтов кириллицы в системе. Вы должны будете сделать эти шрифты доступными для X сервера, как -- я объясню ниже.

  • Если вы не нашли таких шрифтов в вашей системе, то вы должны установить их сами:

  • Скачайте соответствующий набор шрифтов. Подробнее о шрифтах для X-window и о том где их можно найти можно посмотреть в разделе .
  • Теперь, когда у вас есть шрифты, создайте для них каталог. Помещение новых шрифтов в уже существующий каталог шрифтов является, мягко говоря, не очень хорошей идеей. Поместите их, например, в /usr/lib/X11/fonts/cyrillic для настройки всей системы или просто создайте каталог у себя только для персонального пользования.
  • Если новые шрифты поставляются в формате BDF ( файлы *.bdf), то вы должны скомпилировать их. Для каждого шрифта выполните:

    bdftopcf -o <font>.pcf <font>.bdf

    Можете сжать их с помощью программы gzip




    (очень старые X сервера не поддерживает сжатые шрифты):
    gzip *.pcf
    Если же вы все-таки хотите поместить новые шрифты в уже существующий каталог шрифтов, то вы должны "срастить" старый и новый файлы с именем fonts.alias в том случае, естественно, если они оба существуют.

  • В каждом каталоге шрифтов для X должен быть список шрифтов, находящихся в нем. Этот список хранится в файле fonts.dir. Вы не должны создавать этот список вручную. Вместо этого выполните:
    cd "директория где лежат шрифты" mkfontdir .
  • Теперь надо сделать этот каталог шрифтов известным для X сервера. Здесь у вас есть ряд возможностей:

    • Общесистемная настройка для XFree86. Если вы используете эту версию X Window, то добавьте новый каталог к списку каталогов в файле XF86Config. Чтобы найти его расположение, просмотрите, что скажет startx при запуске (в Redhat этот файл обычно находится в /etc/X11). Более подробно смотрите man XF86Config (4/5).

    • Общесистемная настройка через xinit. Добавьте новый каталог к файлу запуска xinit. Более подробно смотрите xinit(1x).

    • Персональная настройка. У вас есть специальный файл для запуска X Window -- ~/.xinitrc (им также может быть ~/.Xclients или ~/.xsession, для пользователей GNOME специальным файлом запуска обычно является ~/.gnomerc). Добавьте следующие команды в этот файл:

    • xset +fp <новый каталог шрифтов>
      xset fp rehash
      Обратите внимание на ключ '+fp' -- это означает, что новые шрифты будут добавлены в начале списка каталогов со шрифтами. То есть, если прикладная программа запрашивает, скажем, шрифт fixed, то будет подставлен fixed font с кириллическими символами, чего мы и добивались. Если нужно установить шрифты в нескольких кодировках, то команда xset +fp с предпочтительной кодировкой должна быть после других.
    • Теперь перезапустите X Window. Если вы все сделали правильно, то тесты, описанные в начале раздела, будут пройдены успешно. Также поиграйте с xfontsel (1x), чтобы удостовериться в возможности выбирать шрифты кириллицы.



    • Чтобы заставить X клиента использовать шрифты кириллицы, вы должны установить соответствующий X ресурс. Например, я делаю кириллический шрифт заданным по умолчанию в моем ~/.Xdefaults:
      *font: 6x13
      Так как мои шрифты кириллицы идут первыми в списке поиска шрифтов (смотри вывод программы 'xset q'), то они и подставляются, если программа требует какой-либо шрифт с именем, совпадающем с каким-либо из шрифтов, лежащих в кириллической директории.
      Вот простые примеры. Если вы хотите научить соответствующий X клиент пользоваться кириллическим шрифтом, то вы должны узнать тип ресурса, который вам надо изменить (это можно сделать, используя editres (1x)) и определить его или в базе данных ресурсов, или в командной строке. Например,
      $ xterm -font '-cronyx-*-bold-*-*-*-19-*-*-*-*-*-*-*'
      -- запустит xterm с несколько уродливым шрифтом;
      $ xfontsel -xrm '*quitButton.font: -*-times-*-*-*-*-13-*-*-*-*-*-koi8-*'
      -- установит Cyrillic Times шрифт для кнопки Quit программы xfontsel.

      Содержание раздела