Установка фонтов для WYSIWYG-приложений в Linux представляет собой относительно сложную задачу. Она обычно решается в три этапа:
Однако решение этой проблемы для большинства WYSIWYG-приложений существует. Оно заключается в том, что создается некоторый механизм для преобразования экранных фонтов в принтерные фонты (это основная идея; кроме того, используется группировка фонтов в семейства, включающие варианты bold, italic и roman). К сожалению, не существует стандартного способа сделать это преобразование. Представляется, что стандарты управления фонтами, которые определяли бы и механизм для преобразования экранных фонтов в принтерные фонты, существенно упростили бы установку фонтов для WYSIWYG-приложений , потому что все приложения могли бы использовать единую системную конфигурацию, а не специфичную для каждого отдельного приложения.
Существует два пути установки фонтов для Applixware. Первый метод заключается в использовании FontTastic, "частного" сервера фонтов Applixware. Второй метод предполагает редактирование собственного перечня каталогов фонтов Applixware, чтобы подключить фонты, уже установленные в системе. Установка через фонт-сервер более удобна, но установленные таким образом фонты могут использоваться принтером только при разрешении 300 dpi.
FontTastic предоставляет легкий способ осуществить установку фонтов. Для того, чтобы установить новые шрифты, просто сделайте следующее:
Этот метод посложнее, но дает лучший результат. Я рекомендую использовать этот метод для тех фонтов, которые по-настоящему важны, и для тех, которые Вы часто используете. Снова надо пройти несколько шагов:
Как это сделать, было объяснено в предыдущей секции
Это тоже объяснено в предыдущей секции
Это последний шаг в обеспечении доступа к фонтам из Applix и требующий больше всего времени. Файл fontmap.dir находится в подкаталоге axdata/fontmetrics структуры каталогов applix. Основная цель данного шага - сказать applix, какой экранный фонт идет с каким контурным фонтом. В общем случае это очень нетривиальная проблема, потому что экранные фонты не всегда расположены на том же компьютере, на котором установлено приложение.
Мы опишем как добавить фонты к fontmap.dir. В приводимом ниже примере мы добавляем фонт Baskerville Italic.
Slant = 1а если вариантом bold, то строку
Weight = 1Если это вариант одновременно bold И italic, мы добавляем обе строки. В нашем примере мы должны добавить только строку
Slant = 1
ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1"Screen name - это имя, которое X-сервер использует для фонта. Можно получить список имен фонтов, содержащих подстроку ``bask'', по команде
xlsfonts|grep -i bask
MetricsFile = /usr/share/fonts/misc/baskvli.afm Type1FontFileName = /usr/share/fonts/misc/baskvli.pfbЕсли Вы добавляете фонт TrueType, Вы можете использовать
ttf2pt1
для того, чтобы сгенерировать afm
-файл :
ttf2pt1 -A foo.ttf - > foo.afm(или установить пакет ttfutils и использовать
ttf2afm
).
Затем Вы используете что-то вроде:
MetricsFile = /usr/share/fonts/misc/foo.afmНЕ включайте директиву
Type1FontFileName
-- пусть
ghostscript позаботится об этом.Все ! В результате после добавления целого семейства фонтов Вы должны получить что-то такое:
FontRecord = Baskerville-Normal Family = Baskerville ScreenName = "-paradise-baskerville-medium-r-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Normal MetricsFile = /usr/share/fonts/misc/baskvl.afm Type1FontFileName = /usr/share/fonts/misc/baskvl.pfb FontRecord = Baskerville-Normal-Italic Family = Baskerville Slant = 1 ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Normal-Italic MetricsFile = /usr/share/fonts/misc/baskvli.afm Type1FontFileName = /usr/share/fonts/misc/baskvli.pfb FontRecord = Baskerville-Bold Family = Baskerville Weight = 1 ScreenName = "-paradise-baskerville-bold-r-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Bold MetricsFile = /usr/share/fonts/misc/baskvlb.afm Type1FontFileName = /usr/share/fonts/misc/baskvlb.pfb FontRecord = Baskerville-Bold-Italic Family = Baskerville Weight = 1 Slant = 1 ScreenName = "-paradise-baskerville-bold-i-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Bold-Italic MetricsFile = /usr/share/fonts/misc/baskvlbi.afm Type1FontFileName = /usr/share/fonts/misc/baskvlbi.pfb
С помощью конфигурационного файла можно сделать большее. В самом конфигурационном файле содержится глоссарий, в котором объясняется формат этого файла.
Мы здесь рассматриваем только Star Office 5.0. Процедура для Star Office
5.1 аналогична, но утилита называется spadmin
, а не
psetup
. Стоит упомянуть, что
страница Джона
Мак-Лафлина (John McLaughlin) является великолепным источником
информации по этому вопросу и что написанное ниже во многом основано на
его материалах.
Поработав как со Star Office 5.0, так и с 5.1, я обнаружил, что в Star Office 5.1 легче добавить новые фонты. Мне не удалось добавить true type фонты в Star Office 5.0, в Star Office 5.1 это оказалось немного проще.
Неплохо до начала редактирования сделать резервную копию
Вашей конфигурации, чтобы ненароком не испортить ее окончательно.
Модификация фонтов окажет влияние на несколько файлов в xp3
.
Вы обязательно должны сделать резервную копию файла xp3/psstd.fonts
.
Я рекомендую пойти дальше и сделать резервную копию всего каталога
xp3
. Вы можете для этого перейти в каталог Star Office и
выполнить команду
tar cvzf xp3.tgz xp3Для того, чтобы впоследствии восстановить файлы из резервной копии, удалите каталог
xp3
и распакуйте архив:
rm -rf xp3 tar xvzf xp3.tgz
Добавление фонтов Type1 к Star Office осуществляется относительно просто.
Если Вы хотите использовать в Star Office 5.0 имеющиеся фонты TrueType,
лучше всего конвертировать их в формат Type1, а затем воспользоваться изложенной
здесь процедурой.
Если Вы используете Star Office 5.1, Вы можете воспользоваться процедурой
инсталляции фонтов TrueType (хотя это немного сложнее).
Во-первых, как и всегда, надо сделать фонты доступными для X и
ghostscript. После того, как это сделано, фонт должен быть установлен в
Star Office, для чего используется утилита psetup
.
Процедура следующая:
Добавление к Star Office фонтов TrueType не так тривиально, но возможно. После долгой работы и многих часов разглядывания страницы Джона Мак-Лафлина (John McLaughlin) я, наконец, добился того, что они заработали в Star Office 5.1. Замечу, что они все же не работают с версией 5.0. Следующие рекомендации применимы, если Вы печатаете через ghostscript:
afm
-файлы для фонтов, которые Вы хотите добавить.
Используйте
ttf2pt1 -A foo.ttf - > foo.afmчтобы создать
afm
-файлы.
ttf2afm
. Преимущество этого способа
в том, что Вы сможете конвертировать за один раз несколько файлов, например
ttf2afm *.ttf
pfb
, соответствующие каждому
ttf
-файлу. Вы можете их создать с помощью команды
touch foo.pfbStar Office использует эти файлы только для печати. И, включив фонт в файл PPD, Вы обманываете Star Office, заставляя его считать, что фонты имеются в Вашем принтере (хотя в действительности они в подсистеме вывода изображений ghostscript - ghostscript's rendering system). Тем самым Вы обходите необходимость использовать эти файлы. Кажется для Star Office требуется, чтобы существовали только файлы
pfb
, чтобы установить фонт.
spadmin
и установить фонт(ы).foobar.ttf
, а соответствующий
afm
-файл имеет имя foobar.afm
, Вы должны использовать
имя "foobar" для фонта в PPD-файле. Запись должна выглядеть примерно так:
*Font cloistrk: Standard "(001.002)" Standard ROM
С другой стороны, если Вы не используете при печати ghostscript,
Вы должны действовать другим образом. В этом случае, не надо пытаться заставить
Star Office думать, что Ваш принтер имеет фонты, ибо фактически в ROM принтера
фонтов НЕТ, так что хотя gv
будет корректно отображать
postscript-файлы, Ваш принтер не способен будет распечатать их.
Если у Вас postscript-принтер, главные различия в следующем:
touch foo.pfb
создать пустые
pfb
-файлы. Вы должны иметь pfb
-файлы
postscript-фонта типа Type42. Фонт Type42 - это в действительности "TrueType фонт для принтера".
Вы не замечаете фонтов Type42, даже если используете их, потому что
большинство приложений используют их прозрачно. Для создания файлов фонтов
Type42 используйте утилиту
ttfps.
ttfps foo.ttf foo.pfb
Существует несколько подводных камней. Иногда Star Office может не
выбрать экранный фонт, который Вы хотите. Поэтому стоит проверить
xp3/psstd.fonts
и, возможно, отредактировать его,
чтобы убедиться, что Star Office действительно использует экранный фонт,
который Вы имели в виду. Кроме того, Star Office не может корректно
обрабатывать проблемы с конфигурацией. Если с конфигурацией что-то не
в порядке, то вполне возможно, что текстовый процессор даже не запустится.
Именно поэтому мы рекомендовали Вам сделать резервную копию
каталога xp3
.
Если Вы хотите установить в Star Office фонты TrueType, Вам, возможно,
необходимо узнать, как Star Office с ними работает. Когда Вы запускаете
spadmin
или psetup
, происходит следующее:
pfb
-файлы
контуров в Вашем каталоге xp3/pssoftfonts
.afm
копируется в каталог xp3/fontmetrics/afm/
xp3/psstd.fonts
добавляется одна запись. Этот
файл хранит имена всех экранных фонтов, используемых
Star Office (в частности, в нем задаются имена файлов контуров для
экранных фонтов).
Вот почему нужно создать резервную копию всего каталога xp3
-
только в этом случае можно будет легко вернуть Star Office к чистой
конфигурации.
По этому вопросу пока ничего нет. Web-страница Рода Смита (Rod Smith) представляет собой хороший источник информации по установке фонтов в Word Perfect.