5. Использование шрифтов type 1 с системой X11
Пред. |  | След.

## 5. Использование шрифтов type 1 с системой X11

X11 может использовать файлы шрифтов в формате `.pfa` или `.pfb`. Шрифты для X11 располагаются в различных подкаталогах в `/usr/X11R6/lib/X11/fonts`. На каждый файл со шрифтом имеется ссылка по его X11-имени в файле `fonts.dir` в каждом таком каталоге.

Существует каталог по имени `Type1`. Самым простым способом добавить новый шрифт заключается в помещении его в этот каталог. Но лучше хранить все новые шрифты в отдельном каталоге и использовать символические ссылки для добавляемых шрифтов. Это позволяет легко управлять отдельными добавляемыми шрифтами, не путая их с изначально поставляемыми. Например:

Создаем каталог для файлов шрифтов `%` `mkdir -p /usr/local/share/fonts/type1` `%` `cd /usr/local/share/fonts/type1` Помещаем сюда файлы .pfa, .pfb и .afm Кому-то может потребоваться хранить здесь также сопроводительные файлы и документацию к шрифтам `%` `cp /cdrom/fonts/atm/showboat/showboat.pfb .` `%` `cp /cdrom/fonts/atm/showboat/showboat.afm .` Обновление индексного файла со ссылками на файлы шрифтов `%` `echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX`

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

-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 | | | | | | | | | | | | \ \ | | | | | \ \ \ \ \ \ \ +----+- набор символов | | | | \ \ \ \ \ \ \ +- средняя ширина | | | | \ \ \ \ \ \ +- spacing | | | \ \ \ \ \ \ +- разрешение по вертикали | | | \ \ \ \ \ +- разрешение по горизонтали | | | \ \ \ \ +- пунктов | | | \ \ \ +- пиксел | | | \ \ \ foundry family weight slant width additional style

Для каждого нового файла шрифтов необходимо создать новое имя. Если у вас есть какая-либо информация из сопроводительной документации к шрифту, то она может служить основой для создания имени. Если информации нет, то можно получить некоторую информацию от использования программы strings(1) над файлом шрифта. Например:

`%` `strings showboat.pfb | more` %!FontType1-1.0: Showboat 001.001 %%CreationDate: 1/15/91 5:16:03 PM %%VMusage: 1024 45747 % Generated by Fontographer 3.1 % Showboat 1991 by David Rakowski. Alle Rechte Vorbehalten. FontDirectory/Showboat known{/Showboat findfont dup/UniqueID known{dup /UniqueID get 4962377 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 12 dict begin /FontInfo 9 dict dup begin /version (001.001) readonly def /FullName (Showboat) readonly def /FamilyName (Showboat) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -106 def /UnderlineThickness 16 def /Notice (Showboat 1991 by David Rakowski. Alle Rechte Vorbehalten.) readonly def end readonly def /FontName /Showboat def --stdin--

Пользуясь этой информацией, можно составить возможное имя:

-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1

Компонентами нашего имени являются:

Foundry

  Давайте называть все новые шрифты `type1`.

Family

  Имя шрифта.

Weight

  Normal, bold, medium, semibold, и так далее. Из результата работы команды strings(1) похоже, что этот шрифт имеет ширину medium.

Slant

  roman, italic, oblique, и так далее. Так как ItalicAngle равен нулю, то будет использоваться roman.

Width

  Normal, wide, condensed, extended, и так далее. Пока это не будет проверено, предполагаем normal.

Дополнительный стиль

  Обычно опускается, но он будет указывать, что в шрифте есть декоративные заглавные буквы.

Spacing

  proportional или monospaced. Используется proportional, потому что isFixedPitch равен false.

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

…-normal-r-normal-…-p-…

в качестве имени, а затем использовать xfontsel(1) для его проверки и изменения имени на основе того, как выглядит шрифт.

Итак, завершая наш пример:

Делаем шрифт доступным для X11 `%` `cd /usr/X11R6/lib/X11/fonts/Type1` `%` `ln -s /usr/local/share/fonts/type1/showboat.pfb .` Редактируем файлы fonts.dir and fonts.scale, добавляя строку, описывающую шрифт и увеличивая количество шрифтов в первой строке. `%` `ex fonts.dir :1p 25 :1c 26 . :$a showboat.pfb -type1-showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1 . :wq` `fonts.scale` идентичен `fonts.dir`… `%` `cp fonts.dir fonts.scale` Указываем X11, что произошли изменения `%` `xset fp rehash` Проверяем новый шрифт `%` `xfontsel -pattern -type1-*`

Справочная информация: xfontsel(1), xset(1), The X Windows System in a Nutshell, O'Reilly & Associates.

Пред. |  | След.
4. Настройка виртуальной консоли на режим работы 80x60 | Начало | 6. Использование шрифтов type 1 с пакетом Ghostscript

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.