diff options
Diffstat (limited to 'ru_RU.KOI8-R/articles/fonts/article.xml')
-rw-r--r-- | ru_RU.KOI8-R/articles/fonts/article.xml | 961 |
1 files changed, 961 insertions, 0 deletions
diff --git a/ru_RU.KOI8-R/articles/fonts/article.xml b/ru_RU.KOI8-R/articles/fonts/article.xml new file mode 100644 index 0000000000..f66fad9820 --- /dev/null +++ b/ru_RU.KOI8-R/articles/fonts/article.xml @@ -0,0 +1,961 @@ +<?xml version="1.0" encoding="koi8-r" standalone="no"?> +<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN" + "../../../share/sgml/freebsd42.dtd" [ +<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//RU" "../../share/sgml/entities.ent"> +%entities; +]> + +<!-- + The FreeBSD Russian Documentation Project + + $FreeBSD$ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/fonts/article.xml,v 1.5 2005/12/06 17:56:24 gad Exp $ + + Original revision: r38183 +--> + +<!-- Recently, I wanted to figure out how to use some additional fonts that + I had accumulated. I finally figured out *how to do it* from the various + man pages and documentation. Since it might be of use to other users, + and I didn't see any reference to this topic in the FAQ or handbook, I + thought I'd try my hand at a simple cookbook tutorial addressing the + use of fonts. I have included my unanswered questions at the end of + the document. + + Anyway, here's what I put together. This is my present understanding of + fonts and how to use them with FreeBSD. I am sure that there are errors or + misunderstandings, but it contains enough valid information to allow the + use of additional fonts with Ghostscript, X11 and Groff. This is my first + attempt to write anything along the lines of a tutorial/FAQ, so I am sure + it is pretty raw. There are probably better ways to do some of this stuff, + and I would welcome being corrected. + --> + +<!-- The section "Setting a virtual console to 80x60 line mode" was + updated to reflect changes in FreeBSD system configuration + files by Mark Ovens <mark@ukug.uk.FreeBSD.org> 27/5/00 + --> + +<article lang="ru"> + <articleinfo> + <title>Шрифты и FreeBSD</title> + + <subtitle>Пособие</subtitle> + + <authorgroup> + <author> + <firstname>Dave</firstname> + + <surname>Bodenstab</surname> + + <affiliation> + <address> + <email>imdave@synet.net</email> + </address> + </affiliation> + </author> + </authorgroup> + + <pubdate>7 августа 1996</pubdate> + + <legalnotice id="trademarks" role="trademarks"> + &tm-attrib.freebsd; + &tm-attrib.adobe; + &tm-attrib.apple; + &tm-attrib.linux; + &tm-attrib.microsoft; + &tm-attrib.opengroup; + &tm-attrib.general; + </legalnotice> + + <releaseinfo>$FreeBSD$</releaseinfo> + + <abstract> + <para>Этот документ содержит описание различных файлов шрифтов, которые + могут использоваться с FreeBSD и драйвером системной консоли, системой + <application>X11</application>, программами <application>Ghostscript</application> + и <application>Groff</application>. Даются реально работающие + примеры по переключению экрана системной консоли в режим 80x60 и + использованию файлов шрифтов формата Type 1 с перечисленными выше + прикладными программами.</para> + </abstract> + </articleinfo> + + <sect1 id="intro"> + <title>Введение</title> + + <para>Существует много мест, где можно найти файлы шрифтов, но встает + вопрос о возможных способах их использования с FreeBSD. Ответ может быть + найден в результате тщательного изучения документации по тем компонентам, + которые вы собираетесь использовать. На это тратится очень много + времени, и это пособие является попыткой дать готовые ответы для тех, кто + заинтересуется такими вопросами.</para> + </sect1> + + <sect1 id="terminology"> + <title>Основные термины</title> + + <para>Имеется множество различных форматов файлов шрифтов и соответствующих + окончаний имен файлов. Здесь обсуждаются лишь следующие из них:</para> + + <variablelist> + <varlistentry> + <term><filename>.pfa</filename>, <filename>.pfb</filename></term> + + <listitem> + <para>Файлы шрифтов &postscript; type 1. Файлы + <filename>.pfa</filename> являются текстовым ( + <emphasis>A</emphasis>scii) представлением, а + <filename>.pfb</filename> - двоичным + (<emphasis>B</emphasis>inary).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.afm</filename></term> + + <listitem> + <para>Параметры (метрики) соответствующих шрифтов типа type 1.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.pfm</filename></term> + + <listitem> + <para>Метрики для принтеров соответствующих шрифтов типа type + 1.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.ttf</filename></term> + + <listitem> + <para>Файл шрифтов &truetype;</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.fot</filename></term> + + <listitem> + <para>Неявная ссылка на файл шрифтов TrueType (реальной информации о + шрифте здесь не содержится)</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><filename>.fon</filename>, <filename>.fnt</filename></term> + + <listitem> + <para>Файлы экранных шрифтов с побитным представлением</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Файлы <filename>.fot</filename> используются в &windows; в качестве + некой символической ссылки на файл со шрифтом в формате &truetype; + (<filename>.ttf</filename>). Файлы шрифтов <filename>.fon</filename> + также используются в &windows;. Мне неизвестно, как можно использовать + этот формат шрифтов во FreeBSD.</para> + </sect1> + + <sect1 id="font-formats"> + <title>Какие форматы файлов шрифтов я могу использовать?</title> + + <para>То, файл шрифтов какого формата будет полезен, зависит от + используемого приложения. Сама по себе FreeBSD шрифтов не использует. + Прикладные программы и/или драйверы могут использовать файлы шрифтов. + Вот краткий справочник по типам файлов шрифтов и + приложениям/драйверам:</para> + + <variablelist> + <varlistentry> + <term>Драйвер</term> + + <listitem> + <variablelist> + <varlistentry> + <term>syscons</term> + + <listitem> + <para><filename>.fnt</filename></para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + + <varlistentry> + <term>Приложение</term> + + <listitem> + <variablelist> + <varlistentry> + <term><application>Ghostscript</application></term> + + <listitem> + <para><filename>.pfa</filename>, + <filename>.pfb</filename>, + <filename>.ttf</filename></para> + </listitem> + </varlistentry> + + <varlistentry> + <term><application>X11</application></term> + + <listitem> + <para><filename>.pfa</filename>, + <filename>.pfb</filename></para> + </listitem> + </varlistentry> + + <varlistentry> + <term><application>Groff</application></term> + + <listitem> + <para><filename>.pfa</filename>, + <filename>.afm</filename></para> + </listitem> + </varlistentry> + + <varlistentry> + <term><application>Povray</application></term> + + <listitem> + <para><filename>.ttf</filename></para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + + <para>Окончание <filename>.fnt</filename> используется достаточно часто. Я + полагаю, что когда кто-нибудь собирается создать файл шрифтов для своего + приложения, чаще всего выбирается именно это окончание. Поэтому файлы с + таким окончанием не все имеют одинаковый формат; в частности, формат + файлов <filename>.fnt</filename>, используемых драйвером syscons во + FreeBSD, может отличаться от формата файлов <filename>.fnt</filename>, + встречающихся в &ms-dos;/&windows;. Я даже не пытался использовать другие + файлы <filename>.fnt</filename>, кроме тех, что поставляются с + FreeBSD.</para> + </sect1> + + <sect1 id="virtual-console"> + <title>Настройка виртуальной консоли на режим работы 80x60</title> + + <para>Во-первых, должен быть загружен шрифт размера 8x8. Для этого файл + <filename>/etc/rc.conf</filename> должен содержать строчку (измените в + ней имя файла со шрифтом на соответствующий вашей локализации):</para> + + <informalexample> + <programlisting>font8x8="iso-8x8" # font 8x8 from /usr/share/syscons/fonts/* (or NO).</programlisting> + </informalexample> + + <para>Команда для переключения режимов называется &man.vidcontrol.1;:</para> + + <informalexample> + <screen>&prompt.user; <userinput>vidcontrol VGA_80x60</userinput></screen> + </informalexample> + + <para>Различные программы, ориентированные на работу с экраном, такие, как + &man.vi.1;, должны уметь определять текущие размеры экрана. Так как это + делается через вызовы <command>ioctl</command> к драйверу консоли + (такому, как &man.syscons.4;), то размеры будут определяться + правильно.</para> + + <para>Чтобы это проходило более гладко, можно включить эти команды в + скрипты начальной загрузки, чтобы они выполнялись при запуске системы. + Чтобы это сделать, добавьте такую строчку в + <filename>/etc/rc.conf</filename></para> + + <informalexample> + <programlisting> + allscreens_flags="VGA_80x60" # Set this vidcontrol mode for all virtual screens + </programlisting> + </informalexample> + + <para>Справочная информация: &man.rc.conf.5;, &man.vidcontrol.1;.</para> + </sect1> + + <sect1 id="type1-fonts-x11"> + <title>Использование шрифтов type 1 с системой <application>X11</application></title> + + <para><application>X11</application> может использовать файлы шрифтов в формате + <filename>.pfa</filename> или <filename>.pfb</filename>. Шрифты для <application>X11</application> + располагаются в различных подкаталогах в + <filename>/usr/X11R6/lib/X11/fonts</filename>. На каждый файл со шрифтом + имеется ссылка по его <application>X11</application>-имени в файле <filename>fonts.dir</filename> в + каждом таком каталоге.</para> + + <para>Существует каталог по имени <filename>Type1</filename>. Самым + простым способом добавить новый шрифт заключается в помещении его в этот + каталог. Но лучше хранить все новые шрифты в отдельном каталоге и + использовать символические ссылки для добавляемых шрифтов. Это позволяет + легко управлять отдельными добавляемыми шрифтами, не путая их с + изначально поставляемыми. Например:</para> + + <informalexample> + <screen> +<lineannotation>Создаем каталог для файлов шрифтов</lineannotation> +&prompt.user; <userinput>mkdir -p /usr/local/share/fonts/type1</userinput> +&prompt.user; <userinput>cd /usr/local/share/fonts/type1</userinput> + +<lineannotation>Помещаем сюда файлы .pfa, .pfb и .afm</lineannotation> +<lineannotation>Кому-то может потребоваться хранить здесь также</lineannotation> +<lineannotation>сопроводительные файлы и документацию к шрифтам</lineannotation> +&prompt.user; <userinput>cp /cdrom/fonts/atm/showboat/showboat.pfb .</userinput> +&prompt.user; <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</userinput> + +<lineannotation>Обновление индексного файла со ссылками на файлы шрифтов</lineannotation> +&prompt.user; <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat >>INDEX</userinput></screen> + </informalexample> + + <para>Теперь, чтобы использовать новый шрифт с <application>X11</application>, нужно дать доступ к + файлу шрифтов и обновить файлы и именами шрифтов. Имена шрифтов в <application>X11</application> + выглядят следующим образом:</para> + + <informalexample> + <screen> +-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1 + | | | | | | | | | | | | \ \ + | | | | | \ \ \ \ \ \ \ +----+- набор символов + | | | | \ \ \ \ \ \ \ +- средняя ширина + | | | | \ \ \ \ \ \ +- spacing + | | | \ \ \ \ \ \ +- разрешение по вертикали + | | | \ \ \ \ \ +- разрешение по горизонтали + | | | \ \ \ \ +- пунктов + | | | \ \ \ +- пиксел + | | | \ \ \ + foundry family weight slant width additional style</screen> + </informalexample> + + <para>Для каждого нового файла шрифтов необходимо создать новое имя. Если + у вас есть какая-либо информация из сопроводительной документации к + шрифту, то она может служить основой для создания имени. Если информации + нет, то можно получить некоторую информацию от использования программы + &man.strings.1; над файлом шрифта. Например:</para> + + <informalexample> + <screen> +&prompt.user; <userinput>strings showboat.pfb | more</userinput> +%!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--</screen> + </informalexample> + + <para>Пользуясь этой информацией, можно составить возможное имя:</para> + + <informalexample> + <screen>-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</screen> + </informalexample> + + <para>Компонентами нашего имени являются:</para> + + <variablelist> + <varlistentry> + <term>Foundry</term> + + <listitem> + <para>Давайте называть все новые шрифты + <literal>type1</literal>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Family</term> + + <listitem> + <para>Имя шрифта.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Weight</term> + + <listitem> + <para>Normal, bold, medium, semibold, и так далее. Из результата + работы команды &man.strings.1; похоже, что этот шрифт имеет ширину + <emphasis>medium</emphasis>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Slant</term> + + <listitem> + <para><emphasis remap="bf">r</emphasis>oman, <emphasis + remap="bf">i</emphasis>talic, <emphasis + remap="bf">o</emphasis>blique, и так далее. Так как + <emphasis>ItalicAngle</emphasis> равен нулю, то будет + использоваться <emphasis>roman</emphasis>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Width</term> + + <listitem> + <para>Normal, wide, condensed, extended, и так далее. Пока это не + будет проверено, предполагаем <emphasis>normal</emphasis>.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Дополнительный стиль</term> + + <listitem> + <para>Обычно опускается, но он будет указывать, что в шрифте есть + декоративные заглавные буквы.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term>Spacing</term> + + <listitem> + <para>proportional или monospaced. Используется + <emphasis>proportional</emphasis>, потому что + <emphasis>isFixedPitch</emphasis> равен false.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Все эти имена произвольны, но нужно стараться следовать существующим + соглашениям. В программе для <application>X11</application> на шрифт ссылаются по имени с + применением шаблонов, так что в выбираемом имени это должно учитываться. + Можно начать с простого использования + + <informalexample> + <screen>…-normal-r-normal-…-p-… + </screen> + </informalexample> + + в качестве имени, а затем использовать &man.xfontsel.1; для его проверки + и изменения имени на основе того, как выглядит шрифт.</para> + + <para>Итак, завершая наш пример:</para> + + <informalexample> + <screen> +<lineannotation>Делаем шрифт доступным для X11</lineannotation> +&prompt.user; <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</userinput> +&prompt.user; <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput> + +<lineannotation>Редактируем файлы fonts.dir and fonts.scale, добавляя строку, +описывающую шрифт и увеличивая количество шрифтов в первой строке.</lineannotation> +&prompt.user; <userinput>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</userinput> + +<lineannotation><filename>fonts.scale</filename> идентичен +<filename>fonts.dir</filename>…</lineannotation> +&prompt.user; <userinput>cp fonts.dir fonts.scale</userinput> + +<lineannotation>Указываем X11, что произошли изменения</lineannotation> +&prompt.user; <userinput>xset fp rehash</userinput> + +<lineannotation>Проверяем новый шрифт</lineannotation> +&prompt.user; <userinput>xfontsel -pattern -type1-*</userinput></screen> + </informalexample> + + <para>Справочная информация: &man.xfontsel.1;, &man.xset.1;, <citetitle>The + X Windows System in a Nutshell</citetitle>, <ulink + url="http://www.ora.com/">O'Reilly & Associates</ulink>.</para> + </sect1> + + <sect1 id="type1-fonts-ghostscript"> + <title>Использование шрифтов type 1 с пакетом Ghostscript</title> + + <para><application>Ghostscript</application> ссылается на шрифт через свой файл + <filename>Fontmap</filename>. Он должен быть подправлен так же, как + и файл <filename>fonts.dir</filename> в случае <application>X11</application>. <application>Ghostscript</application> может + использовать файлы шрифтов в форматах <filename>.pfa</filename> или + <filename>.pfb</filename>. Взяв шрифт из предыдущего примера, его можно + использовать с <application>Ghostscript</application> вот так:</para> + + <informalexample> + <screen> +<lineannotation>Помещаем файл со шрифтом в каталог со шрифтами Ghostscript</lineannotation> +&prompt.user; <userinput>cd /usr/local/share/ghostscript/fonts</userinput> +&prompt.user; <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</userinput> + +<lineannotation>Редактируем Fontmap, чтобы Ghostscript знал о шрифте</lineannotation> +&prompt.user; <userinput>cd /usr/local/share/ghostscript/4.01</userinput> +&prompt.user; <userinput>ex Fontmap +:$a +/Showboat (showboat.pfb) ; % From CICA /fonts/atm/showboat +. +:wq</userinput> + +<lineannotation>Используем Ghostscript для проверки шрифта</lineannotation> +&prompt.user; <userinput>gs prfont.ps</userinput> +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/share/ghostscript/fonts/tir_____.pfb... + /1899520 581354 1300084 13826 0 done. +GS><userinput>Showboat DoFont</userinput> +Loading Showboat font from /usr/local/share/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><userinput>quit</userinput></screen> + </informalexample> + + <para>Справочная информация: <filename>fonts.txt</filename> из дистрибутива + <application>Ghostscript 4.01</application></para> + </sect1> + + <sect1 id="type1-fonts-groff"> + <title>Использование шрифтов в формате type 1 с программой Groff</title> + + <para>Теперь, когда новый шрифт может быть использован как с <application>X11</application>, так и в + <application>Ghostscript</application>, как использовать его с программой <application>groff</application>? Во-первых, так как + мы имеем дело со &postscript;-шрифтами формата type 1, то подходящим + устройством <application>groff</application> является <emphasis>ps</emphasis>. Для каждого шрифта, + который может использоваться программой <application>groff</application>, должен быть создан файл + шрифта. Имя шрифта для <application>groff</application> является просто именем файла из каталога + <filename>/usr/share/groff_font/devps</filename>. В нашем примере + файлом шрифта может быть + <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>. Файл должен + быть создан с помощью утилит, поставляемых с программой <application>groff</application>.</para> + + <para>Первой утилитой является <command>afmtodit</command>. Обычно она не + устанавливается, так что она должна быть получена из дистрибутива с + исходными текстами. Я обнаружил, что нужно изменить первую строку файла, + что я делал так:</para> + + <informalexample> + <screen> +&prompt.user; <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</userinput> +&prompt.user; <userinput>ex /tmp/afmtodit.pl +:1c +#!/usr/bin/perl -P- +. +:wq</userinput></screen> + </informalexample> + + <para>Эта утилита создаст файл шрифтов для <application>groff</application> из файла метрик (с + окончанием <filename>.afm</filename>). Продолжая с нашим + примером:</para> + + <informalexample> + <screen> +<lineannotation>Многие файлы <filename>.afm</filename> в формате Mac +… строки разделены символом ^M. Нам нужно преобразовать их в +разделитель ^J в стиле &unix;</lineannotation> +&prompt.user; <userinput>cd /tmp</userinput> +&prompt.user; <userinput>cat /usr/local/share/fonts/type1/showboat.afm | + tr '\015' '\012' >showboat.afm</userinput> + +<lineannotation>Теперь создаем файл шрифтов groff</lineannotation> +&prompt.user; <userinput>cd /usr/share/groff_font/devps</userinput> +&prompt.user; <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</userinput></screen> + </informalexample> + + <para>Теперь к шрифту можно обращаться по имени SHOWBOAT.</para> + + <para>Если в системе для управления принтерами используется программа + <application>Ghostscript</application>, то больше ничего делать не нужно. Однако, если используются + настоящие &postscript;-принтеры, то для использования шрифта его нужно + загрузить в принтер (если только в принтере шрифт showboat не встроен или + не имеется на диске со шрифтами). Последний шаг заключается в создании + загружаемого шрифта. Утилита <command>pfbtops</command> используется для + создания шрифта в формате <filename>.pfa</filename>, а файл для + <filename>загрузки</filename> изменяется для указания нового шрифта. + Файл для <filename>загрузки</filename> должен ссылаться на внутреннее имя + шрифта. Оно может быть легко определено из файла шрифтов groff, как + это показывается здесь:</para> + + <informalexample> + <screen> +<lineannotation>Создание файла шрифта <filename>.pfa</filename></lineannotation> +&prompt.user; <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb >showboat.pfa</userinput></screen> + </informalexample> + + <para>Конечно, если файл <filename>.pfa</filename> уже имеется, для его + использования создаем символическую ссылку на него.</para> + + <informalexample> + <screen> +<lineannotation>Получение внутреннего имени шрифта</lineannotation> +&prompt.user; <userinput>fgrep internalname SHOWBOAT</userinput> +internalname Showboat + +<lineannotation>Указываем утилите groff, что шрифт должен быть загружен</lineannotation> +&prompt.user; <userinput>ex download +:$a +Showboat showboat.pfa +. +:wq</userinput></screen> + </informalexample> + + <para>Для тестирования шрифта:</para> + + <informalexample> + <screen> +&prompt.user; <userinput>cd /tmp</userinput> +&prompt.user; <userinput>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</userinput> +&prompt.user; <userinput>groff -Tps example.t >example.ps</userinput> + +<lineannotation>Для использования с ghostscript/ghostview</lineannotation> +&prompt.user; <userinput>ghostview example.ps</userinput> + +<lineannotation>Для его печати</lineannotation> +&prompt.user; <userinput>lpr -Ppostscript example.ps</userinput></screen> + </informalexample> + + <para>Справочная информация: + <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>, + &man.groff.font.5;, &man.groff.char.7;, &man.pfbtops.1;.</para> + </sect1> + + <sect1 id="convert-truetype"> + <title>Преобразование файлов шрифтов TrueType в формат groff/PostScript для + использования с groff</title> + + <para>Потенциально это требует некоторых усилий, просто потому что зависит + некоторых утилит, которые в качестве части системы не устанавливаются. + Это:</para> + + <variablelist> + <varlistentry> + <term><command>ttf2pf</command></term> + + <listitem> + <para>Утилита для преобразования TrueType в PostScript. Она + позволяет преобразовать шрифт TrueType в метрику шрифта в текстовом + формате (файл <filename>.afm</filename>).</para> + + <para>Доступна по адресу <ulink + url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/"></ulink>. + Замечание: Эти файлы являются PostScript-программами и должны быть + скачаны на диск щелчком на ссылке при нажатой клавише + <keycap>Shift</keycap>. В противном случае для их просмотра ваш + браузер может попытаться запустить программу + <application>ghostview</application>.</para> + + <para>Интерес представляют следующие файлы:</para> + + <itemizedlist> + <listitem> + <para><filename>GS_TTF.PS</filename></para> + </listitem> + + <listitem> + <para><filename>PF2AFM.PS</filename></para> + </listitem> + + <listitem> + <para><filename>ttf2pf.ps</filename></para> + </listitem> + </itemizedlist> + + <para>Смесь верхнего/нижнего регистров присутствует из-за того, что + эти файлы предназначены и для DOS. <filename>ttf2pf.ps</filename> + использует остальные с именами в верхнем регистре, так что при + переименовании это нужно учитывать. (На самом деле + <filename>GS_TTF.PS</filename> и <filename>PFS2AFM.PS</filename> + предположительно являются частью дистрибутива <application>Ghostscript</application>, но их + легко использовать как отдельные утилиты. В поставку FreeBSD они + не включены.) Вы можете также установить их в каталог + <filename>/usr/local/share/groff_font/devps</filename>(?).</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><command>afmtodit</command></term> + + <listitem> + <para>Создает файлы шрифтов для использования с программой <application>groff</application> из + текстовых файлов с метриками шрифта. Она обычно располагается в + каталоге <filename>/usr/src/contrib/groff/afmtodit</filename> и + для ее использования требуется проделать некоторую работу.</para> + + <note> + <para>Если вы избегаете работать в дереве + <filename>/usr/src</filename>, просто скопируйте содержимое + вышеупомянутого каталога во временный рабочий каталог.</para> + </note> + + <para>Во рабочем каталоге вам нужно построить утилиту. Просто + введите такую команду:</para> + + <screen> +<prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput> + </screen> + + <para>Вам может также потребоваться скопировать + <filename>/usr/contrib/groff/devps/generate/textmap</filename> в + <filename>/usr/share/groff_font/devps/generate</filename>, если его + только уже не существует.</para> + </listitem> + </varlistentry> + </variablelist> + + <para>Как только эти утилиты готовы, вы можете начать:</para> + + <orderedlist> + <listitem> + <para>Создайте файл <filename>.afm</filename> по такой команде:</para> + + <screen> +<prompt>%</prompt> <userinput>gs <optional>-dNODISPLAY</optional> <optional>-q</optional> -- ttf2pf.ps <replaceable>TTF_name</replaceable> <optional><replaceable>PS_font_name</replaceable> <optional><replaceable>AFM_name</replaceable></optional></optional></userinput> + </screen> + + <para>Здесь <replaceable>TTF_name</replaceable> обозначает ваш файл со + шрифтом TrueType, <replaceable>PS_font_name</replaceable> является + именем для файла <filename>.pfa</filename>, + <replaceable>AFM_name</replaceable> задает имя для файла + <filename>.afm</filename>. Если вы не укажете имена выходных файлов, + для форматов <filename>.pfa</filename> или <filename>.afm</filename>, + то по умолчанию будут использоваться имена, получаемые из имени файла + со шрифтом TrueType.</para> + + <para>При этом также будет создан файл <filename>.pfa</filename>, + текстовый файл с метриками PostScript-шрифта + ((<filename>.pfb</filename> для двоичного представления). Это не + не обязательно, но может быть (я думаю) полезным для сервера + шрифтов.</para> + + <para>Например, для преобразования шрифта 30f9 Barcode с именами файлов + по умолчанию, воспользуйтесь следующей командой:</para> + + <screen> +<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput> +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. + </screen> + + <para>Если вы хотите, чтобы преобразованные шрифты сохранялись в файлы + <filename>A.pfa</filename> and <filename>B.afm</filename>, то + выдайте такую команду:</para> + + <screen> +<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput> +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. + </screen> + </listitem> + + <listitem> + <para>Создайте PostScript-файл для <application>groff</application>:</para> + + <para>Смените текущий каталог на + <filename>/usr/share/groff_font/devps</filename> для облегчения + запуска упоминаемых далее программ. Для этого вам может понадобиться + иметь привилегии администратора системы. (Или, если вы избегаете + здесь работать, обязательно посмотрите файлы + <filename>DESC</filename>, <filename>text.enc</filename> и + <filename>generate/textmap</filename> в этом каталоге.)</para> + + <screen> +<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \ + generate/textmap <replaceable>PS_font_name</replaceable></userinput> + </screen> + + <para>Здесь <filename>file.afm</filename> является файлом + <replaceable>AFM_name</replaceable>, созданным программой + <command>ttf2pf.ps</command> выше, а + <replaceable>PS_font_name</replaceable> является именем шрифта, + используемым в той команде, так же, как и имя, которое будет + использовать утилита &man.groff.1; для ссылки на этот шрифт. + Например, полагая, что вы использовали первую команду + <command>tiff2pf.ps</command> выше, то шрифт 3of9 Barcode может быть + создан при помощи такой команды:</para> + + <screen> +<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \ + generate/textmap 3of9</userinput> + </screen> + + <para>Проверьте, что полученный файл + <replaceable>PS_font_name</replaceable> (к примеру, + <filename>3of9</filename> из примера выше) расположен в каталоге + <filename>/usr/share/groff_font/devps</filename>, скопировав или + перенеся его сюда.</para> + + <para>Заметьте, что если <filename>ttf2pf.ps</filename> назначает + имя шрифта, используя один из найденных в файле шрифта TrueType, а + вы хотите использовать другое имя, то вы должны отредактировать файл + <filename>.afm</filename> до запуска команды + <command>afmtodit</command>. Это имя к тому же должно + совпадать с тем, что используется в файле Fontmap, если вы + собираетесь перенаправлять вывод &man.groff.1; утилите + &man.gs.1;.</para> + </listitem> + </orderedlist> + </sect1> + + <sect1 id="truetype-for-other-programs"> + <title>Можно ли использовать шрифты в формате TrueType с другими + программами?</title> + + <para>Формат TrueType используется в Windows, Windows 95 и на компьютерах + Macintosh. Он достаточно популярен и в этом формате имеется большое + количество шрифтов.</para> + + <para>К сожалению, я знаю лишь несколько программ, которые могут + использовать этот формат: на ум приходят <application>Ghostscript</application> и <application>Povray</application>. Его + поддержка в программе <application>Ghostscript</application>, согласно документации, находится в + зачаточном состоянии и получаемый результат хуже того, что получается при + использовании шрифтов type 1. Программа <application>Povray</application> версии 3 также может + использовать шрифты TrueType, но я очень сомневаюсь, что много кто + создает документы как последовательность анимированных страниц + :-).</para> + + <para>Такая весьма печальная ситуация может вскоре измениться. В рамках + проекта <ulink url="http://www.freetype.org/">FreeType Project</ulink> + в настоящее время разрабатывается полезный набор инструментов для работы + с FreeType:</para> + + <itemizedlist> + <listitem> + <para>Сервер шрифтов <command>xfsft</command> для <application>X11</application> может работать и + со шрифтами TrueType, и с обычными шрифтами. Хотя в настоящее время + он еще находится в стадии отладки, но его уже можно использовать. + Посмотрите <ulink + url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">страницу + Juliusz Chroboczek</ulink>, чтобы получить более полную информацию. + Указания по переносу на FreeBSD можно найти на странице <ulink + url="http://math.missouri.edu/~stephen/software/">Стивена + Монтгомери</ulink> (Stephen Montgomery), посвященной программному + обеспечению.</para> + </listitem> + + <listitem> + <para><application>xfstt</application> является еще одним сервером шрифтов для + <application>X11</application>, доступный по адресу <ulink + url="ftp://sunsite.unc.edu/pub/Linux/X11/fonts"></ulink>.</para> + </listitem> + + <listitem> + <para>Программа, которая называется <command>ttf2bdf</command>, может + генерировать BDF-файлы, которые можно использовать в системе X + Window, из файлов шрифтов TrueType. Выполнимые файлы Linux могут + находиться по адресу <ulink + url="ftp://crl.nmsu.edu/CLR/multiling/General"></ulink>.</para> + </listitem> + + <listitem> + <para>и другие …</para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="obtaining-additional-fonts"> + <title>Где можно найти дополнительные шрифты?</title> + + <para>Много шрифтов можно найти в сети Интернет. Они либо абсолютно + бесплатны, либо условно-бесплатны. Кроме того, продается много недорогих + компакт-дисков, содержащих много шрифтов. Вот некоторые адреса Интернет + (на август 1996):</para> + + <itemizedlist> + <listitem> + <para><ulink url="http://www.simtel.net/"></ulink></para> + </listitem> + + <listitem> + <para><ulink url="http://www.freshmeat.net"></ulink></para> + </listitem> + + <listitem> + <para>Сгрузите шрифты, поставляемые с Коллекцией Портов в + каталоге <filename>x11-fonts/</filename></para> + </listitem> + </itemizedlist> + </sect1> + + <sect1 id="additional-questions"> + <title>Дополнительные вопросы</title> + + <itemizedlist> + <listitem> + <para>Для чего предназначены файлы <filename>.pfm</filename>?</para> + </listitem> + + <listitem> + <para>Можно ли получить файл <filename>.afm</filename> из файла + <filename>.pfa</filename> или <filename>.pfb</filename>?</para> + </listitem> + + <listitem> + <para>Как получить файлы преобразования символов <application>groff</application> для + PostScript-шрифтов с нестандартными названиями символов?</para> + </listitem> + + <listitem> + <para>Можно ли настроить xditview и устройства devX?? на работу всех + новых шрифтов?</para> + </listitem> + + <listitem> + <para>Хорошо бы иметь примеры использования шрифтов TrueType с + программами <application>Povray</application> и <application>Ghostscript</application>.</para> + </listitem> + </itemizedlist> + </sect1> +</article> |