CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
18.08.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Окружение :: Шрифты

Шрифтовой терминатор: пакет terminus-fonts

Как говорилось в предыдущих интермедиях, пополнение личной коллекции консольных шрифтов - насущная задача для пользователя BSD-систем. Для и пользователю Linux отнюдь не помешает расширить свой репертуар. Для него это особенно актуально в связи с распространением UTF-8 - штатно поддерживающие эту кодировку шрифты во всех известных мне дистрибутивах Linux (например, из семейства LatArCyrHeb) производят впечатление вполне отвратительное.

И потому эта интермедия посвящается замечательному пакету terminus-fonts. Он - болгарского происхождения, автор его - Dimitar Toshkov Zhekov (затрудняюсь транскирибировать с языка братьев-славян) и проживает здесь: http://www.is-vn.bg/hamster/jimmy-en.html в виде архива tar.gz объемом около 100 Кбайт. Его можно найти также в портах FreeBSD и в портежах Gentoo, вероятно, и в других системах. Для FreeBSD, в частности, он доступен и в качестве бинарного пакета. Впрочем, использовать последний я не рекомендовал бы - почему-то в него не вошли собственно консольные шрифты (а только шрифты для X-терминала). Так что лучше получить "авторский экземпляр" пакета и установить его самостояткльно. Или уж, на худой конец, скачать мою подборку кириллических шрифтов для syscons, включающую и уже готовые шрифты из описываемого пакета. Кстати, кириллические шрифты для Linux-консоли можно выудить рядом.

Пакет terminus-fonts - не просто шрифтовой набор, а универсальный инструмент для генерации терминальных шрифтов любого назначения. Он включает в себя:

  • шрифтовые файлы базовой гарнитуры в формате BDF (Bitmap Distribution Format) нормального и полужирного начертания, высотой от 14 до 24 пикселей, в кодировке Unicode;
  • набор скриптов для преобразования их в шрифтовые файлы различных используемых Unix-консолями и X-терминалами форматов;
  • make-файлы для соответствующих преобразований;
  • необходимые дополнительные данные, в частности, unimap-таблицы для преобразования 8-битных кодировок в Unicode;
  • файлы документации на английском и болгарском языках.

В README-файлах дается исчерпывающее описание того, как обращаться с пакетов. И потому я лишь кратко опишу доступные возможности. И так, базовые bdf-шрифты могут быть преобразованы в шрифтовые файлы следующих форматов:

  • raw-формат, в котором шрифтовой файл содержит только бинарные данные; этот формат используется для вывода в консольных драйверах BSD-семейства (syscons FreeBSD и DragonFlyBSD, pcvt и wscons, применяемые в OpenBSD и NetBSD);
  • psf-формат, включающий, кроме собственно шрифтовых данных, заголовок и psf-сигнатуру с дополнительной информацией о шрифте; это - основной формат вывода в Linux-консоли;
  • pcf-формат для вывода на X-терминалах.

Генерация шрифтовых файлов осуществляется командой make с указанием соответствующей цели, например,

$ make raw

для создания raw-файлов,

$ make psf

и

$ make pcf

для psf- и pcf-форматов, соответственно. Кроме того, командой

$ make txt

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

Какой бы формат шрифта ни был избран для компиляции, в итоге генерируется три "шрифтоначертания" - ter-*n ("нормальное"), ter-*b (полужирное) и ter-*f (для использования в консоли с Frame Buffer). Размеры матрицы образовавшихся шрифтов зависят от выходного формата: raw-шрифты имет матрицы 14 и 16 пикселей по вертикали, срдеи шрифтов для Linux-консоли представлены также матрицы 20, 24, 28 и 32 пикселя (правда, их нет в представлении для Frame Buffer).

Каждое шрифтоначертание автоматически генерируется в нескольких кодировках: ISO8859-1/2/5/9/15/16, Windows-1250/1251/1252/1254, IBM-437/852/855/866, KOI8-R/U/E/F, Bulgarian-MIK, Paratype-PT154/PT254 и Macintosh-Ukrainian. Поскольку все шрифты - более чем 500-символьные, для Linux-консоли и X-терминала можно подобрать любые сочетания кодировок ввода и вывода.

Интересно, что для BSD-консоли шрифты с традиционной для нее кодировкой вывода CP866 сами собой не образуются. Однако их при желании можно изготовить из шрифтов Linux-консоли способом, описанным ранее. Или - просто отказаться от использования DOS-кодировки, ограничившись выводом в KOI8. Ведь одна из причин применения CP866 на выводе - низкое качество KOI-шрифтов, - теперь отпадает, а с разрывами в рамках псевдографических программ я, например, вполне готов примириться. Тем более, что их и не видно...

Ибо качество консольных шрифтов исключительно высокое. При этом их внешний вид и читабельность не ухудшаются при нестандартной плотности знаков. Правда, их вариации для X-терминалов именно в терминале выглядят достаточно непривычно. Однако для текстового режима - пожалуй, ничего лучше не придумаешь. Главное же - варианты шрифтов для Frame Buffer в графической консоли (что Linux, что DragonFlyBSD) выглядят просто замечательно.

Правда, на использование шрифтов terminus-fonts во FreeBSD (и в DragonFlyBSD), что и на самодельные шрифты, описанные ранее. Будучи представлены в чистом raw-формате, они не могут ни быть встроенными в ядро систем, ни использоваться с программой src2png. Однако для повседневной жизни в консоли лучше их трудно что-либо придумать.




Комментарии

аноним, Sun Aug 12 04:30:37 2007:
какая разница? Славянин или нет, хромает или нет... Может ещё размер члена спросите? Автору респект, спасибо за статью. Помогло.
аноним, Sat Jul 28 20:54:32 2007:
Его имя "Димитър Тошков Жеков"
аноним, Mon Jul 16 23:42:56 2007:
Похоже, автор сам "брат-славянин", ибо орфография хромает заметненько %)

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds