528 lines
33 KiB
Text
528 lines
33 KiB
Text
---
|
||
title: Шрифты и FreeBSD
|
||
subtitle: Пособие
|
||
authors:
|
||
- author: Dave Bodenstab
|
||
email: imdave@synet.net
|
||
releaseinfo: "$FreeBSD$"
|
||
trademarks: ["freebsd", "adobe", "apple", "linux", "microsoft", "opengroup", "general"]
|
||
---
|
||
|
||
= Шрифты и FreeBSD
|
||
:doctype: article
|
||
:toc: macro
|
||
:toclevels: 1
|
||
:icons: font
|
||
:sectnums:
|
||
:sectnumlevels: 6
|
||
:source-highlighter: rouge
|
||
:experimental:
|
||
:toc-title: Содержание
|
||
:part-signifier: Часть
|
||
:chapter-signifier: Глава
|
||
:appendix-caption: Приложение
|
||
:table-caption: Таблица
|
||
:figure-caption: Рисунок
|
||
:example-caption: Пример
|
||
|
||
[.abstract-title]
|
||
Аннотация
|
||
|
||
Этот документ содержит описание различных файлов шрифтов, которые могут использоваться с FreeBSD и драйвером системной консоли, системой X11, программами Ghostscript и Groff. Даются реально работающие примеры по переключению экрана системной консоли в режим 80x60 и использованию файлов шрифтов формата Type 1 с перечисленными выше прикладными программами.
|
||
|
||
'''
|
||
|
||
toc::[]
|
||
|
||
[[intro]]
|
||
== Введение
|
||
|
||
Существует много мест, где можно найти файлы шрифтов, но встает вопрос о возможных способах их использования с FreeBSD. Ответ может быть найден в результате тщательного изучения документации по тем компонентам, которые вы собираетесь использовать. На это тратится очень много времени, и это пособие является попыткой дать готовые ответы для тех, кто заинтересуется такими вопросами.
|
||
|
||
[[terminology]]
|
||
== Основные термины
|
||
|
||
Имеется множество различных форматов файлов шрифтов и соответствующих окончаний имен файлов. Здесь обсуждаются лишь следующие из них:
|
||
|
||
[.filename]#.pfa#, [.filename]#.pfb#::
|
||
Файлы шрифтов PostScript(R) type 1. Файлы [.filename]#.pfa# являются текстовым ( __A__scii) представлением, а [.filename]#.pfb# - двоичным (__B__inary).
|
||
|
||
[.filename]#.afm#::
|
||
Параметры (метрики) соответствующих шрифтов типа type 1.
|
||
|
||
[.filename]#.pfm#::
|
||
Метрики для принтеров соответствующих шрифтов типа type 1.
|
||
|
||
[.filename]#.ttf#::
|
||
Файл шрифтов TrueType(R)
|
||
|
||
[.filename]#.fot#::
|
||
Неявная ссылка на файл шрифтов TrueType (реальной информации о шрифте здесь не содержится)
|
||
|
||
[.filename]#.fon#, [.filename]#.fnt#::
|
||
Файлы экранных шрифтов с побитным представлением
|
||
|
||
Файлы [.filename]#.fot# используются в Windows(R) в качестве некой символической ссылки на файл со шрифтом в формате TrueType(R) ([.filename]#.ttf#). Файлы шрифтов [.filename]#.fon# также используются в Windows(R). Мне неизвестно, как можно использовать этот формат шрифтов во FreeBSD.
|
||
|
||
[[font-formats]]
|
||
== Какие форматы файлов шрифтов я могу использовать?
|
||
|
||
То, файл шрифтов какого формата будет полезен, зависит от используемого приложения. Сама по себе FreeBSD шрифтов не использует. Прикладные программы и/или драйверы могут использовать файлы шрифтов. Вот краткий справочник по типам файлов шрифтов и приложениям/драйверам:
|
||
|
||
Драйвер::
|
||
|
||
vt:::
|
||
[.filename]#.hex#
|
||
|
||
syscons:::
|
||
[.filename]#.fnt#
|
||
|
||
Приложение::
|
||
|
||
Ghostscript:::
|
||
[.filename]#.pfa#, [.filename]#.pfb#, [.filename]#.ttf#
|
||
|
||
X11:::
|
||
[.filename]#.pfa#, [.filename]#.pfb#
|
||
|
||
Groff:::
|
||
[.filename]#.pfa#, [.filename]#.afm#
|
||
|
||
Povray:::
|
||
[.filename]#.ttf#
|
||
|
||
Окончание [.filename]#.fnt# используется достаточно часто. Я полагаю, что когда кто-нибудь собирается создать файл шрифтов для своего приложения, чаще всего выбирается именно это окончание. Поэтому файлы с таким окончанием не все имеют одинаковый формат; в частности, формат файлов [.filename]#.fnt#, используемых драйвером syscons во FreeBSD, может отличаться от формата файлов [.filename]#.fnt#, встречающихся в MS-DOS(R)/Windows(R). Я даже не пытался использовать другие файлы [.filename]#.fnt#, кроме тех, что поставляются с FreeBSD.
|
||
|
||
[[virtual-console]]
|
||
== Настройка виртуальной консоли на режим работы 80x60
|
||
|
||
Во-первых, должен быть загружен шрифт размера 8x8. Для этого файл [.filename]#/etc/rc.conf# должен содержать строчку (измените в ней имя файла со шрифтом на соответствующий вашей локализации):
|
||
|
||
[.programlisting]
|
||
....
|
||
font8x8="iso-8x8" # font 8x8 from /usr/shared/syscons/fonts/* (or NO).
|
||
....
|
||
|
||
Команда для переключения режимов называется man:vidcontrol[1]:
|
||
|
||
[source,shell]
|
||
....
|
||
% vidcontrol VGA_80x60
|
||
....
|
||
|
||
Различные программы, ориентированные на работу с экраном, такие, как man:vi[1], должны уметь определять текущие размеры экрана. Так как это делается через вызовы `ioctl` к драйверу консоли (такому, как man:syscons[4]), то размеры будут определяться правильно.
|
||
|
||
Чтобы это проходило более гладко, можно включить эти команды в скрипты начальной загрузки, чтобы они выполнялись при запуске системы. Чтобы это сделать, добавьте такую строчку в [.filename]#/etc/rc.conf#
|
||
|
||
[.programlisting]
|
||
....
|
||
|
||
allscreens_flags="VGA_80x60" # Set this vidcontrol mode for all virtual screens
|
||
....
|
||
|
||
Справочная информация: man:rc.conf[5], man:vidcontrol[1].
|
||
|
||
[[type1-fonts-x11]]
|
||
== Использование шрифтов type 1 с системой X11
|
||
|
||
X11 может использовать файлы шрифтов в формате [.filename]#.pfa# или [.filename]#.pfb#. Шрифты для X11 располагаются в различных подкаталогах в [.filename]#/usr/X11R6/lib/X11/fonts#. На каждый файл со шрифтом имеется ссылка по его X11-имени в файле [.filename]#fonts.dir# в каждом таком каталоге.
|
||
|
||
Существует каталог по имени [.filename]#Type1#. Самым простым способом добавить новый шрифт заключается в помещении его в этот каталог. Но лучше хранить все новые шрифты в отдельном каталоге и использовать символические ссылки для добавляемых шрифтов. Это позволяет легко управлять отдельными добавляемыми шрифтами, не путая их с изначально поставляемыми. Например:
|
||
|
||
[source,shell]
|
||
....
|
||
|
||
Создаем каталог для файлов шрифтов
|
||
% mkdir -p /usr/local/shared/fonts/type1
|
||
% cd /usr/local/shared/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 выглядят следующим образом:
|
||
|
||
[source,shell]
|
||
....
|
||
-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
|
||
| | | | | | | | | | | | \ \
|
||
| | | | | \ \ \ \ \ \ \ +----+- набор символов
|
||
| | | | \ \ \ \ \ \ \ +- средняя ширина
|
||
| | | | \ \ \ \ \ \ +- spacing
|
||
| | | \ \ \ \ \ \ +- разрешение по вертикали
|
||
| | | \ \ \ \ \ +- разрешение по горизонтали
|
||
| | | \ \ \ \ +- пунктов
|
||
| | | \ \ \ +- пиксел
|
||
| | | \ \ \
|
||
foundry family weight slant width additional style
|
||
....
|
||
|
||
Для каждого нового файла шрифтов необходимо создать новое имя. Если у вас есть какая-либо информация из сопроводительной документации к шрифту, то она может служить основой для создания имени. Если информации нет, то можно получить некоторую информацию от использования программы man:strings[1] над файлом шрифта. Например:
|
||
|
||
[source,shell]
|
||
....
|
||
% 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--
|
||
....
|
||
|
||
Пользуясь этой информацией, можно составить возможное имя:
|
||
|
||
[source,shell]
|
||
....
|
||
-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
|
||
....
|
||
|
||
Компонентами нашего имени являются:
|
||
|
||
Foundry::
|
||
Давайте называть все новые шрифты `type1`.
|
||
|
||
Family::
|
||
Имя шрифта.
|
||
|
||
Weight::
|
||
Normal, bold, medium, semibold, и так далее. Из результата работы команды man:strings[1] похоже, что этот шрифт имеет ширину __medium__.
|
||
|
||
Slant::
|
||
__r__oman, __i__talic, __o__blique, и так далее. Так как _ItalicAngle_ равен нулю, то будет использоваться __roman__.
|
||
|
||
Width::
|
||
Normal, wide, condensed, extended, и так далее. Пока это не будет проверено, предполагаем __normal__.
|
||
|
||
Дополнительный стиль::
|
||
Обычно опускается, но он будет указывать, что в шрифте есть декоративные заглавные буквы.
|
||
|
||
Spacing::
|
||
proportional или monospaced. Используется __proportional__, потому что _isFixedPitch_ равен false.
|
||
|
||
Все эти имена произвольны, но нужно стараться следовать существующим соглашениям. В программе для X11 на шрифт ссылаются по имени с применением шаблонов, так что в выбираемом имени это должно учитываться. Можно начать с простого использования
|
||
|
||
[source,shell]
|
||
....
|
||
...-normal-r-normal-...-p-...
|
||
....
|
||
|
||
в качестве имени, а затем использовать man:xfontsel[1] для его проверки и изменения имени на основе того, как выглядит шрифт.
|
||
|
||
Итак, завершая наш пример:
|
||
|
||
[source,shell]
|
||
....
|
||
Делаем шрифт доступным для X11
|
||
% cd /usr/X11R6/lib/X11/fonts/Type1
|
||
% ln -s /usr/local/shared/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-*
|
||
....
|
||
|
||
Справочная информация: man:xfontsel[1], man:xset[1], The X Windows System in a Nutshell, http://www.ora.com/[O'Reilly & Associates].
|
||
|
||
[[type1-fonts-ghostscript]]
|
||
== Использование шрифтов type 1 с пакетом Ghostscript
|
||
|
||
Ghostscript ссылается на шрифт через свой файл [.filename]#Fontmap#. Он должен быть подправлен так же, как и файл [.filename]#fonts.dir# в случае X11. Ghostscript может использовать файлы шрифтов в форматах [.filename]#.pfa# или [.filename]#.pfb#. Взяв шрифт из предыдущего примера, его можно использовать с Ghostscript вот так:
|
||
|
||
[source,shell]
|
||
....
|
||
Помещаем файл со шрифтом в каталог со шрифтами Ghostscript
|
||
% cd /usr/local/shared/ghostscript/fonts
|
||
% ln -s /usr/local/shared/fonts/type1/showboat.pfb .
|
||
|
||
Редактируем Fontmap, чтобы Ghostscript знал о шрифте
|
||
% cd /usr/local/shared/ghostscript/4.01
|
||
% ex Fontmap
|
||
:$a
|
||
/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat
|
||
.
|
||
:wq
|
||
|
||
Используем Ghostscript для проверки шрифта
|
||
% gs prfont.ps
|
||
Aladdin Ghostscript 4.01 (1996-7-10)
|
||
Copyright (C) 1996 Aladdin Enterprises, Menlo Park, CA. All rights
|
||
reserved.
|
||
This software comes with NO WARRANTY: see the file PUBLIC for details.
|
||
Loading Times-Roman font from /usr/local/shared/ghostscript/fonts/tir_____.pfb...
|
||
/1899520 581354 1300084 13826 0 done.
|
||
GS>Showboat DoFont
|
||
Loading Showboat font from /usr/local/shared/ghostscript/fonts/showboat.pfb...
|
||
1939688 565415 1300084 16901 0 done.
|
||
>>showpage, press <return> to continue<<
|
||
>>showpage, press <return> to continue<<
|
||
>>showpage, press <return> to continue<<
|
||
GS>quit
|
||
....
|
||
|
||
Справочная информация: [.filename]#fonts.txt# из дистрибутива Ghostscript 4.01
|
||
|
||
[[type1-fonts-groff]]
|
||
== Использование шрифтов в формате type 1 с программой Groff
|
||
|
||
Теперь, когда новый шрифт может быть использован как с X11, так и в Ghostscript, как использовать его с программой Groff? Во-первых, так как мы имеем дело со PostScript(R)-шрифтами формата type 1, то подходящим устройством Groff является __ps__. Для каждого шрифта, который может использоваться программой Groff, должен быть создан файл шрифта. Имя шрифта для Groff является просто именем файла из каталога [.filename]#/usr/shared/groff_font/devps#. В нашем примере файлом шрифта может быть [.filename]#/usr/shared/groff_font/devps/SHOWBOAT#. Файл должен быть создан с помощью утилит, поставляемых с программой Groff.
|
||
|
||
Первой утилитой является `afmtodit`. Обычно она не устанавливается, так что она должна быть получена из дистрибутива с исходными текстами. Я обнаружил, что нужно изменить первую строку файла, что я делал так:
|
||
|
||
[source,shell]
|
||
....
|
||
% cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp
|
||
% ex /tmp/afmtodit.pl
|
||
:1c
|
||
#!/usr/bin/perl -P-
|
||
.
|
||
:wq
|
||
....
|
||
|
||
Эта утилита создаст файл шрифтов для Groff из файла метрик (с окончанием [.filename]#.afm#). Продолжая с нашим примером:
|
||
|
||
[source,shell]
|
||
....
|
||
Многие файлы .afm в формате Mac
|
||
... строки разделены символом ^M. Нам нужно преобразовать их в
|
||
разделитель ^J в стиле UNIX(R)
|
||
% cd /tmp
|
||
% cat /usr/local/shared/fonts/type1/showboat.afm |
|
||
tr '\015' '\012' >showboat.afm
|
||
|
||
Теперь создаем файл шрифтов groff
|
||
% cd /usr/shared/groff_font/devps
|
||
% /tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT
|
||
....
|
||
|
||
Теперь к шрифту можно обращаться по имени SHOWBOAT.
|
||
|
||
Если в системе для управления принтерами используется программа Ghostscript, то больше ничего делать не нужно. Однако, если используются настоящие PostScript(R)-принтеры, то для использования шрифта его нужно загрузить в принтер (если только в принтере шрифт showboat не встроен или не имеется на диске со шрифтами). Последний шаг заключается в создании загружаемого шрифта. Утилита `pfbtops` используется для создания шрифта в формате [.filename]#.pfa#, а файл для [.filename]#загрузки# изменяется для указания нового шрифта. Файл для [.filename]#загрузки# должен ссылаться на внутреннее имя шрифта. Оно может быть легко определено из файла шрифтов groff, как это показывается здесь:
|
||
|
||
[source,shell]
|
||
....
|
||
Создание файла шрифта .pfa
|
||
% pfbtops /usr/local/shared/fonts/type1/showboat.pfb >showboat.pfa
|
||
....
|
||
|
||
Конечно, если файл [.filename]#.pfa# уже имеется, для его использования создаем символическую ссылку на него.
|
||
|
||
[source,shell]
|
||
....
|
||
Получение внутреннего имени шрифта
|
||
% fgrep internalname SHOWBOAT
|
||
internalname Showboat
|
||
Указываем утилите groff, что шрифт должен быть загружен
|
||
% ex download
|
||
:$a
|
||
Showboat showboat.pfa
|
||
.
|
||
:wq
|
||
....
|
||
|
||
Для тестирования шрифта:
|
||
|
||
[source,shell]
|
||
....
|
||
% cd /tmp
|
||
% cat >example.t <<EOF
|
||
.sp 5
|
||
.ps 16
|
||
This is an example of the Showboat font:
|
||
.br
|
||
.ps 48
|
||
.vs (\n(.s+2)p
|
||
.sp
|
||
.ft SHOWBOAT
|
||
ABCDEFGHI
|
||
.br
|
||
JKLMNOPQR
|
||
.br
|
||
STUVWXYZ
|
||
.sp
|
||
.ps 16
|
||
.vs (\n(.s+2)p
|
||
.fp 5 SHOWBOAT
|
||
.ft R
|
||
To use it for the first letter of a paragraph, it will look like:
|
||
.sp 50p
|
||
\s(48\f5H\s0\fRere is the first sentence of a paragraph that uses the
|
||
showboat font as its first letter.
|
||
Additional vertical space must be used to allow room for the larger
|
||
letter.
|
||
EOF
|
||
% groff -Tps example.t >example.ps
|
||
|
||
Для использования с ghostscript/ghostview
|
||
% ghostview example.ps
|
||
|
||
Для его печати
|
||
% lpr -Ppostscript example.ps
|
||
....
|
||
|
||
Справочная информация: [.filename]#/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man#, man:groff_font[5], man:groff_char[7], man:pfbtops[1].
|
||
|
||
[[convert-truetype]]
|
||
== Преобразование файлов шрифтов TrueType в формат groff/PostScript для использования с groff
|
||
|
||
Потенциально это требует некоторых усилий, просто потому что зависит некоторых утилит, которые в качестве части системы не устанавливаются. Это:
|
||
|
||
`ttf2pf`::
|
||
Утилита для преобразования TrueType в PostScript. Она позволяет преобразовать шрифт TrueType в метрику шрифта в текстовом формате (файл [.filename]#.afm#).
|
||
+
|
||
Доступна по адресу http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/[http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/]. Замечание: Эти файлы являются PostScript-программами и должны быть скачаны на диск щелчком на ссылке при нажатой клавише kbd:[Shift]. В противном случае для их просмотра ваш браузер может попытаться запустить программу ghostview.
|
||
+
|
||
Интерес представляют следующие файлы:
|
||
|
||
** [.filename]#GS_TTF.PS#
|
||
** [.filename]#PF2AFM.PS#
|
||
** [.filename]#ttf2pf.ps#
|
||
+
|
||
Смесь верхнего/нижнего регистров присутствует из-за того, что эти файлы предназначены и для DOS. [.filename]#ttf2pf.ps# использует остальные с именами в верхнем регистре, так что при переименовании это нужно учитывать. (На самом деле [.filename]#GS_TTF.PS# и [.filename]#PFS2AFM.PS# предположительно являются частью дистрибутива Ghostscript, но их легко использовать как отдельные утилиты. В поставку FreeBSD они не включены.) Вы можете также установить их в каталог [.filename]#/usr/local/shared/groff_font/devps#(?).
|
||
|
||
`afmtodit`::
|
||
Создает файлы шрифтов для использования с программой Groff из текстовых файлов с метриками шрифта. Она обычно располагается в каталоге [.filename]#/usr/src/contrib/groff/afmtodit# и для ее использования требуется проделать некоторую работу.
|
||
+
|
||
[NOTE]
|
||
====
|
||
Если вы избегаете работать в дереве [.filename]#/usr/src#, просто скопируйте содержимое вышеупомянутого каталога во временный рабочий каталог.
|
||
====
|
||
+
|
||
Во рабочем каталоге вам нужно построить утилиту. Просто введите такую команду:
|
||
+
|
||
[source,shell]
|
||
....
|
||
# make -f Makefile.sub afmtodit
|
||
....
|
||
+
|
||
Вам может также потребоваться скопировать [.filename]#/usr/contrib/groff/devps/generate/textmap# в [.filename]#/usr/shared/groff_font/devps/generate#, если его не существует.
|
||
|
||
Как только эти утилиты готовы, вы можете начать:
|
||
|
||
. Создайте файл [.filename]#.afm# по такой команде:
|
||
+
|
||
[source,shell]
|
||
....
|
||
% gs -dNODISPLAY -q -- ttf2pf.ps TTF_name PS_font_name AFM_name
|
||
....
|
||
+
|
||
Здесь _TTF_name_ обозначает ваш файл со шрифтом TrueType, _PS_font_name_ является именем для файла [.filename]#.pfa#, _AFM_name_ задает имя для файла [.filename]#.afm#. Если вы не укажете имена выходных файлов, для форматов [.filename]#.pfa# или [.filename]#.afm#, то по умолчанию будут использоваться имена, получаемые из имени файла со шрифтом TrueType.
|
||
+
|
||
При этом также будет создан файл [.filename]#.pfa#, текстовый файл с метриками PostScript-шрифта (([.filename]#.pfb# для двоичного представления). Это не не обязательно, но может быть (я думаю) полезным для сервера шрифтов.
|
||
+
|
||
Например, для преобразования шрифта 30f9 Barcode с именами файлов по умолчанию, воспользуйтесь следующей командой:
|
||
+
|
||
[source,shell]
|
||
....
|
||
% gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf
|
||
Aladdin Ghostscript 5.10 (1997-11-23)
|
||
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved.
|
||
This software comes with NO WARRANTY: see the file PUBLIC for details.
|
||
Converting 3of9.ttf to 3of9.pfa and 3of9.afm.
|
||
....
|
||
+
|
||
Если вы хотите, чтобы преобразованные шрифты сохранялись в файлы [.filename]#A.pfa# and [.filename]#B.afm#, то выдайте такую команду:
|
||
+
|
||
[source,shell]
|
||
....
|
||
% gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B
|
||
Aladdin Ghostscript 5.10 (1997-11-23)
|
||
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA. All rights reserved.
|
||
This software comes with NO WARRANTY: see the file PUBLIC for details.
|
||
Converting 3of9.ttf to A.pfa and B.afm.
|
||
....
|
||
|
||
. Создайте PostScript-файл для Groff:
|
||
+
|
||
Смените текущий каталог на [.filename]#/usr/shared/groff_font/devps# для облегчения запуска упоминаемых далее программ. Для этого вам может понадобиться иметь привилегии администратора системы. (Или, если вы избегаете здесь работать, обязательно посмотрите файлы [.filename]#DESC#, [.filename]#text.enc# и [.filename]#generate/textmap# в этом каталоге.)
|
||
+
|
||
[source,shell]
|
||
....
|
||
% afmtodit -d DESC -e text.enc file.afm \
|
||
generate/textmap PS_font_name
|
||
....
|
||
+
|
||
Здесь [.filename]#file.afm# является файлом _AFM_name_, созданным программой `ttf2pf.ps` выше, а _PS_font_name_ является именем шрифта, используемым в той команде, так же, как и имя, которое будет использовать утилита man:groff[1] для ссылки на этот шрифт. Например, полагая, что вы использовали первую команду `tiff2pf.ps` выше, то шрифт 3of9 Barcode может быть создан при помощи такой команды:
|
||
+
|
||
[source,shell]
|
||
....
|
||
% afmtodit -d DESC -e text.enc 3of9.afm \
|
||
generate/textmap 3of9
|
||
....
|
||
+
|
||
Проверьте, что полученный файл _PS_font_name_ (к примеру, [.filename]#3of9# из примера выше) расположен в каталоге [.filename]#/usr/shared/groff_font/devps#, скопировав или перенеся его сюда.
|
||
+
|
||
Заметьте, что если [.filename]#ttf2pf.ps# назначает имя шрифта, используя один из найденных в файле шрифта TrueType, а вы хотите использовать другое имя, то вы должны отредактировать файл [.filename]#.afm# до запуска команды `afmtodit`. Это имя к тому же должно совпадать с тем, что используется в файле Fontmap, если вы собираетесь перенаправлять вывод man:groff[1] утилите man:gs[1].
|
||
|
||
[[truetype-for-other-programs]]
|
||
== Можно ли использовать шрифты в формате TrueType с другими программами?
|
||
|
||
Формат TrueType используется в Windows, Windows 95 и на компьютерах Macintosh. Он достаточно популярен и в этом формате имеется большое количество шрифтов.
|
||
|
||
К сожалению, я знаю лишь несколько программ, которые могут использовать этот формат: на ум приходят Ghostscript и Povray. Его поддержка в программе Ghostscript, согласно документации, находится в зачаточном состоянии и получаемый результат хуже того, что получается при использовании шрифтов type 1. Программа Povray версии 3 также может использовать шрифты TrueType, но я очень сомневаюсь, что много кто создает документы как последовательность анимированных страниц :-).
|
||
|
||
Такая весьма печальная ситуация может вскоре измениться. В рамках проекта http://www.freetype.org/[FreeType Project] в настоящее время разрабатывается полезный набор инструментов для работы с FreeType:
|
||
|
||
* Сервер шрифтов `xfsft` для X11 может работать и со шрифтами TrueType, и с обычными шрифтами. Хотя в настоящее время он еще находится в стадии отладки, но его уже можно использовать. Посмотрите http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/[страницу Juliusz Chroboczek], чтобы получить более полную информацию. Указания по переносу на FreeBSD можно найти на странице http://math.missouri.edu/~stephen/software/[Стивена Монтгомери] (Stephen Montgomery), посвященной программному обеспечению.
|
||
* xfstt является еще одним сервером шрифтов для X11, доступный по адресу link:ftp://sunsite.unc.edu/pub/Linux/X11/fonts[ftp://sunsite.unc.edu/pub/Linux/X11/fonts].
|
||
* Программа, которая называется `ttf2bdf`, может генерировать BDF-файлы, которые можно использовать в системе X Window, из файлов шрифтов TrueType. Выполнимые файлы Linux могут находиться по адресу link:ftp://crl.nmsu.edu/CLR/multiling/General[ftp://crl.nmsu.edu/CLR/multiling/General].
|
||
* и другие ...
|
||
|
||
[[obtaining-additional-fonts]]
|
||
== Где можно найти дополнительные шрифты?
|
||
|
||
Много шрифтов можно найти в сети Интернет. Они либо абсолютно бесплатны, либо условно-бесплатны. В добавок, множество шрифтов находится в категории [.filename]#x11-fonts/# Коллекции Портов.
|
||
|
||
[[additional-questions]]
|
||
== Дополнительные вопросы
|
||
|
||
* Для чего предназначены файлы [.filename]#.pfm#?
|
||
* Можно ли получить файл [.filename]#.afm# из файла [.filename]#.pfa# или [.filename]#.pfb#?
|
||
* Как получить файлы преобразования символов Groff для PostScript-шрифтов с нестандартными названиями символов?
|
||
* Можно ли настроить xditview и устройства devX?? на работу всех новых шрифтов?
|
||
* Хорошо бы иметь примеры использования шрифтов TrueType с программами Povray и Ghostscript.
|