View | Details | Raw Unified | Return to bug 14206
Collapse All | Expand All

(-)article.sgml (-590 / +666 lines)
Lines 23-287 Link Here
23
 -->
23
 -->
24
24
25
<article>
25
<article>
26
  <artheader>
27
    <title>Fonts and FreeBSD</title>
28
29
    <subtitle>A Tutorial</subtitle>
30
31
    <authorgroup>
32
      <author>
33
	<firstname>Dave</firstname>
34
35
	<surname>Bodenstab</surname>
36
37
	<affiliation>
38
	  <address>
39
	    <email>imdave@synet.net</email>
40
	  </address>
41
	</affiliation>
42
      </author>
43
    </authorgroup>
44
45
    <pubdate>Wed Aug  7, 1996</pubdate>
46
47
    <abstract>
48
      <para>This document contains a description of the various font
49
	files that may be used with FreeBSD and the syscons driver,
50
	X11, Ghostscript and Groff.  Cookbook examples are provided
51
	for switching the syscons display to 80x60 mode, and for using
52
	type 1 fonts with the above application programs.</para>
53
    </abstract>
54
  </artheader>
55
56
  <sect1>
57
    <title>Introduction</title>
58
59
    <para>There are many sources of fonts available, and one might ask
60
      how they might be used with FreeBSD.  The answer can be found by
61
      carefully searching the documentation for the component that one
62
      would like to use.  This is very time consuming, so this
63
      tutorial is an attempt to provide a shortcut for others who
64
      might be interested.</para>
65
  </sect1>
66
67
  <sect1>
68
    <title>Basic terminology</title>
69
70
    <para>There are many different font formats and associated font
71
      file suffixes.  A few that will be addressed here are:</para>
72
73
    <variablelist>
74
      <varlistentry>
75
	<term><filename>.pfa</>, <filename>.pfb</></term>
76
77
	<listitem>
78
	  <para>Postscript type 1 fonts.  The
79
	    <filename>.pfa</filename> is the
80
	    <emphasis>A</emphasis>scii form and
81
	    <filename>.pfb</filename> the <emphasis>B</emphasis>inary
82
	    form.</para>
83
	</listitem>
84
      </varlistentry>
85
86
      <varlistentry>
87
	<term><filename>.afm</></term>
88
89
	<listitem>
90
	  <para>The font metrics associated with a type 1 font.</para>
91
	</listitem>
92
      </varlistentry>
93
94
      <varlistentry>
95
	<term><filename>.pfm</></term>
96
97
	<listitem>
98
	  <para>The printer font metrics associated with a type 1
99
	    font.</para>
100
	</listitem>
101
      </varlistentry>
102
103
      <varlistentry>
104
	<term><filename>.ttf</></term>
105
106
	<listitem>
107
	  <para>A TrueType font</para>
108
	</listitem>
109
      </varlistentry>
110
111
      <varlistentry>
112
	<term><filename>.fot</></term>
113
114
	<listitem>
115
	  <para>An indirect reference to a TrueType font (not an
116
	    actual font)</para>
117
	</listitem>
118
      </varlistentry>
119
120
      <varlistentry>
121
	<term><filename>.fon</>, <filename>.fnt</></term>
122
123
	<listitem>
124
	  <para>Bitmapped screen fonts</para>
125
	</listitem>
126
      </varlistentry>
127
    </variablelist>
128
129
    <para>The <filename>.fot</filename> file is used by Windows as
130
      sort of a symbolic link to the actual TrueType font
131
      (<filename>.ttf</filename>) file.  The <filename>.fon</filename>
132
      font files are also used by Windows.  I know of no way to use
133
      this font format with FreeBSD.</para>
134
  </sect1>
135
136
  <sect1>
137
    <title>What font formats can I use?</title>
138
139
    <para>Which font file format is useful depends on the application
140
      being used.  FreeBSD by itself uses no fonts.  Application
141
      programs and/or drivers may make use of the font files.  Here is
142
      a small cross reference of application/driver to the font type
143
      suffixes:</para>
144
145
    <variablelist>
146
      <varlistentry>
147
	<term>Driver</term>
148
149
	<listitem>
150
	  <variablelist>
151
	    <varlistentry>
152
	      <term>syscons</term>
153
154
	      <listitem>
155
		<para><filename>.fnt</></para>
156
	      </listitem>
157
	    </varlistentry>
158
	  </variablelist>
159
	</listitem>
160
      </varlistentry>
161
162
      <varlistentry>
163
	<term>Application</term>
164
165
	<listitem>
166
	  <variablelist>
167
	    <varlistentry>
168
	      <term>Ghostscript</term>
169
170
	      <listitem>
171
		<para><filename>.pfa</filename>,
172
		  <filename>.pfb</filename>,
173
		  <filename>.ttf</filename></para>
174
	      </listitem>
175
	    </varlistentry>
176
177
	    <varlistentry>
178
	      <term>X11</term>
179
180
	      <listitem>
181
		<para><filename>.pfa</filename>,
182
		  <filename>.pfb</filename></para>
183
	      </listitem>
184
	    </varlistentry>
185
186
	    <varlistentry>
187
	      <term>Groff</term>
188
189
	      <listitem>
190
		<para><filename>.pfa</filename>,
191
		  <filename>.afm</filename></para>
192
	      </listitem>
193
	    </varlistentry>
194
195
	    <varlistentry>
196
	      <term>Povray</term>
197
198
	      <listitem>
199
		<para><filename>.ttf</filename></para>
200
	      </listitem>
201
	    </varlistentry>
202
	  </variablelist>
203
	</listitem>
204
      </varlistentry>
205
    </variablelist>
206
207
    <para>The <filename>.fnt</filename> suffix is used quite
208
      frequently.  I suspect that whenever someone wanted to create a
209
      specialized font file for their application, more often than not
210
      they chose this suffix.  Therefore, it is likely that files with
211
      this suffix are not all the same format; specifically, the
212
      <filename>.fnt</filename> files used by syscons under FreeBSD
213
      may not be the same format as a <filename>.fnt</filename> file
214
      one encounters in the MSDOS/Windows environment.  I have not
215
      made any attempt at using other <filename>.fnt</filename> files
216
      other than those provided with FreeBSD.</para>
217
  </sect1>
218
219
  <sect1>
220
    <title>Setting a virtual console to 80x60 line mode</title>
221
222
    <para>First, a 8x8 font must be loaded.
223
      <filename>/etc/sysconfig</filename> should contain the
224
      lines:</para>
225
226
<informalexample>
227
<programlisting>
228
# Choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default)
229
font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt
230
</programlisting>
231
</informalexample>
232
233
    <para>The command to actually switch the mode is
234
      &man.vidcontrol.1:</para>
26
235
27
<artheader>
28
<title>Fonts and FreeBSD</title>
29
<subtitle>A Tutorial</subtitle>
30
31
<authorgroup>
32
<author>
33
<firstname>Dave</firstname>
34
<surname>Bodenstab</surname>
35
<affiliation>
36
<address><email>imdave@synet.net</email></address>
37
</affiliation>
38
</author>
39
</authorgroup>
40
41
<pubdate>Wed Aug  7, 1996</pubdate>
42
43
<abstract><para>This document contains a description of the various
44
font files that may be used with FreeBSD and the syscons driver, X11,
45
Ghostscript and Groff. Cookbook examples are provided for switching
46
the syscons display to 80x60 mode, and for using type 1 fonts with
47
the above application programs.</para></abstract>
48
49
</artheader>
50
51
<sect1>
52
<title>Introduction</title>
53
54
<para>There are many sources of fonts available, and one might ask
55
how they might be used with FreeBSD. The answer can be found by
56
carefully searching the documentation for the component that one
57
would like to use. This is very time consuming, so this tutorial is
58
an attempt to provide a shortcut for others who might be
59
interested.</para>
60
61
</sect1>
62
63
<sect1>
64
<title>Basic terminology</title>
65
66
<para>There are many different font formats and associated font file
67
suffixes. A few that will be addressed here are:
68
</para>
69
<variablelist>
70
71
<varlistentry><term><filename>.pfa</>, <filename>.pfb</></term>
72
73
<listitem><para>Postscript type 1 fonts.  The <filename>.pfa</filename> is the
74
<emphasis>A</emphasis>scii form and <filename>.pfb</filename> the
75
<emphasis>B</emphasis>inary form.</para></listitem>
76
77
</varlistentry>
78
79
<varlistentry><term><filename>.afm</></term>
80
81
<listitem><para>The font metrics associated with a type 1
82
font.</para></listitem>
83
84
</varlistentry>
85
86
<varlistentry><term><filename>.pfm</></term>
87
88
<listitem><para>The printer font metrics associated with a type 1
89
font.</para></listitem>
90
91
</varlistentry>
92
93
<varlistentry><term><filename>.ttf</></term>
94
95
<listitem><para>A TrueType font</para></listitem>
96
97
</varlistentry>
98
99
<varlistentry><term><filename>.fot</></term>
100
101
<listitem><para>An indirect reference to a TrueType font (not an
102
actual font)</para></listitem>
103
104
</varlistentry>
105
106
<varlistentry><term><filename>.fon</>, <filename>.fnt</></term>
107
108
<listitem><para>Bitmapped screen fonts</para></listitem>
109
110
</varlistentry>
111
</variablelist>
112
  
113
<para>The <filename>.fot</filename> file is used by Windows as sort
114
of a symbolic link to the actual TrueType font
115
(<filename>.ttf</filename>) file.  The <filename>.fon</filename> font
116
files are also used by Windows. I know of no way to use this font
117
format with FreeBSD.</para>
118
119
</sect1>
120
121
<sect1>
122
<title>What font formats can I use?</title>
123
124
<para>Which font file format is useful depends on the application
125
being used. FreeBSD by itself uses no fonts.  Application programs
126
and/or drivers may make use of the font files.  Here is a small cross
127
reference of application/driver to the font type suffixes:</para>
128
129
<variablelist>
130
<varlistentry><term>Driver</term>
131
<listitem>
132
<variablelist>
133
<varlistentry><term>syscons</term>
134
<listitem>
135
<para><filename>.fnt</></para>
136
  
137
</listitem>
138
</varlistentry>
139
</variablelist>
140
  
141
</listitem>
142
</varlistentry>
143
144
<varlistentry><term>Application</term>
145
146
<listitem>
147
<variablelist>
148
<varlistentry><term>Ghostscript</term>
149
<listitem>
150
<para><filename>.pfa</filename>, <filename>.pfb</filename>, <filename>.ttf</filename></para>
151
  
152
</listitem>
153
</varlistentry>
154
155
<varlistentry><term>X11</term>
156
157
<listitem>
158
<para><filename>.pfa</filename>, <filename>.pfb</filename></para>
159
  
160
</listitem>
161
</varlistentry>
162
163
<varlistentry><term>Groff</term>
164
165
<listitem>
166
<para><filename>.pfa</filename>, <filename>.afm</filename></para>
167
  
168
</listitem>
169
</varlistentry>
170
171
<varlistentry><term>Povray</term>
172
173
<listitem>
174
<para><filename>.ttf</filename></para>
175
  
176
</listitem>
177
</varlistentry>
178
</variablelist>
179
  
180
</listitem>
181
</varlistentry>
182
</variablelist>
183
  
184
<para>The <filename>.fnt</filename> suffix is used quite frequently. 
185
I suspect that whenever someone wanted to create a specialized font
186
file for their application, more often than not they chose this
187
suffix.  Therefore, it is likely that files with this suffix are not
188
all the same format; specifically, the <filename>.fnt</filename>
189
files used by syscons under FreeBSD may not be the same format as a
190
<filename>.fnt</filename> file one encounters in the MSDOS/Windows
191
environment.  I have not made any attempt at using other
192
<filename>.fnt</filename> files other than those provided with
193
FreeBSD.</para>
194
195
</sect1>
196
197
<sect1>
198
<title>Setting a virtual console to 80x60 line mode</title>
199
200
<para>First, a 8x8 font must be loaded. 
201
<filename>/etc/sysconfig</filename> should contain the lines:
202
</para>
203
<informalexample>
204
<programlisting># Choose font 8x8 from /usr/share/syscons/fonts/* (or NO for default)
205
font8x8=/usr/share/syscons/fonts/cp437-8x8.fnt</programlisting>
206
</informalexample>
207
  
208
<para>The command to actually switch the mode is
209
&man.vidcontrol.1:
210
</para>
211
<informalexample>
212
<screen>bash$ <userinput>vidcontrol VGA_80x60</userinput></screen>
213
</informalexample>
214
  
215
<para>Various screen orientated programs, such as
216
&man.vi.1, must be able to
217
determine the current screen dimensions.  These can be set with
218
&man.stty.1;:
219
</para>
220
<informalexample>
221
<screen>bash$ <userinput>stty crt rows 60 columns 80</userinput></screen>
222
</informalexample>
223
  
224
<para>To make this more seamless, one can embed these commands in the
225
startup scripts so it takes place when the system boots.  One way to
226
do this is:
227
</para>
228
<orderedlist>
229
230
<listitem>
231
<para>Modify <filename>/etc/sysconfig</filename> as above</para>
232
</listitem>
233
234
<listitem>
235
<para>Add to <filename>/etc/rc.local</filename>:
236
</para>
237
<informalexample>
236
<informalexample>
238
<programlisting>for tty in /dev/ttyv?
237
<screen>
238
bash$ <userinput>vidcontrol VGA_80x60</userinput>
239
</screen>
240
</informalexample>
241
242
    <para>Various screen orientated programs, such as &man.vi.1, must
243
      be able to determine the current screen dimensions.  These can
244
      be set with &man.stty.1;:</para>
245
246
<informalexample>
247
<screen>
248
bash$ <userinput>stty crt rows 60 columns 80</userinput>
249
</screen>
250
</informalexample>
251
252
    <para>To make this more seamless, one can embed these commands in
253
      the startup scripts so it takes place when the system boots.
254
      One way to do this is:</para>
255
256
    <orderedlist>
257
      <listitem>
258
	<para>Modify <filename>/etc/sysconfig</filename> as
259
	  above</para>
260
      </listitem>
261
262
      <listitem>
263
	<para>Add to <filename>/etc/rc.local</filename>:</para>
264
265
<informalexample>
266
<programlisting>
267
for tty in /dev/ttyv?
239
do
268
do
240
  vidcontrol VGA_80x60 &lt;$tty &gt;/dev/null 2&gt;&amp;1
269
  vidcontrol VGA_80x60 &lt;$tty &gt;/dev/null 2&gt;&amp;1
241
done</programlisting>
270
done
271
</programlisting>
242
</informalexample>
272
</informalexample>
243
</listitem>
273
      </listitem>
274
275
      <listitem>
276
	<para>Add to <filename>/etc/profile</filename>:</para>
244
277
245
<listitem>
246
<para>Add to <filename>/etc/profile</filename>:
247
</para>
248
<informalexample>
278
<informalexample>
249
<programlisting>TTYNAME=`basename \`tty\``
279
<programlisting>
280
TTYNAME=`basename \`tty\``
250
if expr "$TTYNAME" : 'ttyv' &gt;/dev/null
281
if expr "$TTYNAME" : 'ttyv' &gt;/dev/null
251
then
282
then
252
  stty crt rows 60 columns 80
283
  stty crt rows 60 columns 80
253
fi</programlisting>
284
fi
285
</programlisting>
254
</informalexample>
286
</informalexample>
255
</listitem>
287
      </listitem>
288
    </orderedlist>
289
290
    <para>References: &man.stty.1;, &man.vidcontrol.1;.</para>
291
  </sect1>
292
293
  <sect1>
294
    <title>Using type 1 fonts with X11</title>
295
296
    <para>X11 can use either the <filename>.pfa</filename> or the
297
      <filename>.pfb</filename> format fonts.  The X11 fonts are
298
      located in various subdirectories under
299
      <filename>/usr/X11R6/lib/X11/fonts</filename>.  Each font file
300
      is cross referenced to its X11 name by the contents of the
301
      <filename>fonts.dir</filename> file in each directory.</para>
302
303
    <para>There is already a directory named <filename>Type1</>.  The
304
      most straight forward way to add a new font is to put it into
305
      this directory.  A better way is to keep all new fonts in a
306
      separate directory and use a symbolic link to the additional
307
      font.  This allows one to more easily keep track of ones fonts
308
      without confusing them with the fonts that were originally
309
      provided.  For example:</para>
256
310
257
</orderedlist>
258
  
259
<para>References:
260
&man.stty.1;,
261
&man.vidcontrol.1;.</para>
262
263
</sect1>
264
265
<sect1>
266
<title>Using type 1 fonts with X11</title>
267
268
<para>X11 can use either the <filename>.pfa</filename> or the
269
<filename>.pfb</filename> format fonts.  The X11 fonts are located in
270
various subdirectories under
271
<filename>/usr/X11R6/lib/X11/fonts</filename>.  Each font file is
272
cross referenced to its X11 name by the contents of the
273
<filename>fonts.dir</filename> file in each directory.</para>
274
275
<para>There is already a directory named <filename>Type1</>. The most
276
straight forward way to add a new font is to put it into this
277
directory.  A better way is to keep all new fonts in a separate
278
directory and use a symbolic link to the additional font.  This
279
allows one to more easily keep track of ones fonts without confusing
280
them with the fonts that were originally provided.  For
281
example:
282
</para>
283
<informalexample>
311
<informalexample>
284
<screen><lineannotation>Create a directory to contain the font files</>
312
<screen>
313
<lineannotation>Create a directory to contain the font files</>
285
bash$ <userinput>mkdir -p /usr/local/share/fonts/type1</>
314
bash$ <userinput>mkdir -p /usr/local/share/fonts/type1</>
286
bash$ <userinput>cd /usr/local/share/fonts/type1</>
315
bash$ <userinput>cd /usr/local/share/fonts/type1</>
287
316
Lines 292-307 Link Here
292
bash$ <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</>
321
bash$ <userinput>cp /cdrom/fonts/atm/showboat/showboat.afm .</>
293
322
294
<lineannotation>Maintain an index to cross reference the fonts</>
323
<lineannotation>Maintain an index to cross reference the fonts</>
295
bash$ <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat &gt;&gt;INDEX</></screen>
324
bash$ <userinput>echo showboat - InfoMagic CICA, Dec 1994, /fonts/atm/showboat &gt;&gt;INDEX</>
325
</screen>
296
</informalexample>
326
</informalexample>
297
  
327
298
<para>Now, to use a new font with X11, one must make the font file
328
    <para>Now, to use a new font with X11, one must make the font file
299
available and update the font name files.  The X11 font names look
329
      available and update the font name files.  The X11 font names
300
like:
330
      look like:</para>
301
</para>
331
302
<informalexample>
332
<informalexample>
303
<screen>-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
333
<screen>
304
     |        |      |    |   |     |  | | | | | |    \    \ 
334
-bitstream-charter-medium-r-normal-xxx-0-0-0-0-p-0-iso8859-1
335
     |        |      |    |   |     |  | | | | | |    \    \
305
     |        |      |    |   |     \  \ \ \ \ \ \     +----+- character set
336
     |        |      |    |   |     \  \ \ \ \ \ \     +----+- character set
306
     |        |      |    |   \      \  \ \ \ \ \ +- average width
337
     |        |      |    |   \      \  \ \ \ \ \ +- average width
307
     |        |      |    |    \      \  \ \ \ \ +- spacing
338
     |        |      |    |    \      \  \ \ \ \ +- spacing
Lines 310-327 Link Here
310
     |        |      |      \	  \	 \  \ +- points
341
     |        |      |      \	  \	 \  \ +- points
311
     |        |      |       \     \	  \  +- pixels
342
     |        |      |       \     \	  \  +- pixels
312
     |        |      |        \     \	   \
343
     |        |      |        \     \	   \
313
  foundry  family  weight   slant  width  additional style</screen>
344
  foundry  family  weight   slant  width  additional style
345
</screen>
314
</informalexample>
346
</informalexample>
315
  
347
316
<para>A new name needs to be created for each new font.  If you have
348
    <para>A new name needs to be created for each new font.  If you
317
some information from the documentation that accompanied the font,
349
      have some information from the documentation that accompanied
318
then it could serve as the basis for creating the name.  If there is
350
      the font, then it could serve as the basis for creating the
319
no information, then you can get some idea by using
351
      name.  If there is no information, then you can get some idea by
320
&man.strings.1; on the font
352
      using &man.strings.1; on the font file.  For example:</para>
321
file.  For example:
353
322
</para>
323
<informalexample>
354
<informalexample>
324
<screen>bash$ <userinput>strings showboat.pfb | more</>
355
<screen>
356
bash$ <userinput>strings showboat.pfb | more</>
325
%!FontType1-1.0: Showboat 001.001
357
%!FontType1-1.0: Showboat 001.001
326
%%CreationDate: 1/15/91 5:16:03 PM
358
%%CreationDate: 1/15/91 5:16:03 PM
327
%%VMusage: 1024 45747
359
%%VMusage: 1024 45747
Lines 345-431 Link Here
345
 1991 by David Rakowski.  Alle Rechte Vorbehalten.) readonly def
377
 1991 by David Rakowski.  Alle Rechte Vorbehalten.) readonly def
346
end readonly def
378
end readonly def
347
/FontName /Showboat def
379
/FontName /Showboat def
348
--stdin--</screen>
380
--stdin--
381
</screen>
349
</informalexample>
382
</informalexample>
350
  
351
<para>Using this information, a possible name might be:
352
</para>
353
<informalexample>
354
<screen>-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1</screen>
355
</informalexample>
356
  
357
<para>The components of our name are:
358
</para>
359
<variablelist>
360
361
<varlistentry><term>Foundry</term>
362
<listitem>
363
<para>Lets just name all the new fonts <literal>type1</>.</para>
364
</listitem>
365
</varlistentry>
366
367
<varlistentry><term>Family</term>
368
<listitem>
369
<para>The name of the font.</para>
370
</listitem>
371
</varlistentry>
372
373
<varlistentry><term>Weight</term>
374
<listitem>
375
<para>Normal, bold, medium, semibold, etc.  From the
376
<citerefentry><refentrytitle>strings</><manvolnum>1</></> output
377
above, it appears that this font has a weight of
378
<emphasis>medium</emphasis>.</para>
379
</listitem>
380
</varlistentry>
381
382
<varlistentry><term>Slant</term>
383
<listitem>
384
<para><emphasis remap=bf>r</emphasis>oman, <emphasis
385
remap=bf>i</emphasis>talic, <emphasis remap=bf>o</emphasis>blique,
386
etc.  Since the <emphasis>ItalicAngle</emphasis> is zero,
387
<emphasis>roman</emphasis> will be used.</para>
388
</listitem>
389
</varlistentry>
390
391
<varlistentry><term>Width</term>
392
<listitem>
393
<para>Normal, wide, condensed, extended, etc.  Until it can be examined,
394
the assumption will be <emphasis>normal</emphasis>.</para>
395
</listitem>
396
</varlistentry>
397
398
<varlistentry><term>Additional style</term>
399
<listitem>
400
<para>Usually omitted, but this will indicate that
401
the font contains decorative capital letters.</para>
402
</listitem>
403
</varlistentry>
404
405
<varlistentry><term>Spacing</term>
406
<listitem>
407
<para>proportional or monospaced.  <emphasis>Proportional</emphasis>
408
is used since <emphasis>isFixedPitch</emphasis> is false.</para>
409
</listitem>
410
</varlistentry>
411
412
</variablelist>
413
  
414
<para>All of these names are arbitrary, but one should strive to be
415
compatible with the existing conventions.  A font is referenced by
416
name with possible wild cards by an X11 program, so the name chosen
417
should make some sense. One might begin by simply using
418
<informalexample>
419
<screen>&hellip;-normal-r-normal-&hellip;-p-&hellip;</screen>
420
</informalexample>
421
as the name, and then use
422
<citerefentry><refentrytitle>xfontsel</><manvolnum>1</></> to examine it
423
and adjust the name based on the appearance of the font.</para>
424
383
425
<para>So, to complete our example:
384
    <para>Using this information, a possible name might be:</para>
426
</para>
385
427
<informalexample>
386
<informalexample>
428
<screen><lineannotation>Make the font accessible to X11</>
387
<screen>
388
-type1-Showboat-medium-r-normal-decorative-0-0-0-0-p-0-iso8859-1
389
</screen>
390
</informalexample>
391
392
    <para>The components of our name are:</para>
393
394
    <variablelist>
395
      <varlistentry>
396
	<term>Foundry</term>
397
398
	<listitem>
399
	  <para>Lets just name all the new fonts
400
	    <literal>type1</>.</para>
401
	</listitem>
402
      </varlistentry>
403
404
      <varlistentry>
405
	<term>Family</term>
406
407
	<listitem>
408
	  <para>The name of the font.</para>
409
	</listitem>
410
      </varlistentry>
411
412
      <varlistentry>
413
	<term>Weight</term>
414
415
	<listitem>
416
	  <para>Normal, bold, medium, semibold, etc.  From the
417
	    <citerefentry><refentrytitle>strings</><manvolnum>1</></>
418
	    output above, it appears that this font has a weight of
419
	    <emphasis>medium</emphasis>.</para>
420
	</listitem>
421
      </varlistentry>
422
423
      <varlistentry>
424
	<term>Slant</term>
425
426
	<listitem>
427
	  <para><emphasis remap=bf>r</emphasis>oman, <emphasis
428
	      remap=bf>i</emphasis>talic, <emphasis
429
	      remap=bf>o</emphasis>blique, etc.  Since the
430
	    <emphasis>ItalicAngle</emphasis> is zero,
431
	    <emphasis>roman</emphasis> will be used.</para>
432
	</listitem>
433
      </varlistentry>
434
435
      <varlistentry>
436
	<term>Width</term>
437
438
	<listitem>
439
	  <para>Normal, wide, condensed, extended, etc.  Until it can
440
	    be examined, the assumption will be
441
	    <emphasis>normal</emphasis>.</para>
442
	</listitem>
443
      </varlistentry>
444
445
      <varlistentry>
446
	<term>Additional style</term>
447
448
	<listitem>
449
	  <para>Usually omitted, but this will indicate that the font
450
	    contains decorative capital letters.</para>
451
	</listitem>
452
      </varlistentry>
453
454
      <varlistentry>
455
	<term>Spacing</term>
456
457
	<listitem>
458
	  <para>proportional or monospaced.
459
	    <emphasis>Proportional</emphasis> is used since
460
	    <emphasis>isFixedPitch</emphasis> is false.</para>
461
	</listitem>
462
      </varlistentry>
463
    </variablelist>
464
465
    <para>All of these names are arbitrary, but one should strive to
466
      be compatible with the existing conventions.  A font is
467
      referenced by name with possible wild cards by an X11 program,
468
      so the name chosen should make some sense.  One might begin by
469
      simply using
470
471
<informalexample>
472
<screen>
473
&hellip;-normal-r-normal-&hellip;-p-&hellip;
474
</screen>
475
</informalexample>
476
477
      as the name, and then use
478
      <citerefentry><refentrytitle>xfontsel</><manvolnum>1</></> to
479
      examine it and adjust the name based on the appearance of the
480
      font.</para>
481
482
    <para>So, to complete our example:</para>
483
484
<informalexample>
485
<screen>
486
<lineannotation>Make the font accessible to X11</>
429
bash$ <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</>
487
bash$ <userinput>cd /usr/X11R6/lib/X11/fonts/Type1</>
430
bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</>
488
bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</>
431
489
Lines 449-477 Link Here
449
bash$ <userinput>xset fp rehash</>
507
bash$ <userinput>xset fp rehash</>
450
508
451
<lineannotation>Examine the new font</>
509
<lineannotation>Examine the new font</>
452
bash$ <userinput>xfontsel -pattern -type1-*</></screen>
510
bash$ <userinput>xfontsel -pattern -type1-*</>
511
</screen>
453
</informalexample>
512
</informalexample>
454
  
513
455
<para>References:
514
    <para>References: &man.xfontsel.1;, &man.xset.1;, <citetitle>The X
456
&man.xfontsel.1;,
515
	Windows System in a Nutshell</>, <ulink
457
&man.xset.1;,
516
	URL="http://www.ora.com/">O'Reilly &amp;
458
<citetitle>The X Windows System in a Nutshell</>, <ulink
517
	Associates</ulink>.</para>
459
URL="http://www.ora.com/">O'Reilly &amp; Associates</ulink>.</para>
518
  </sect1>
460
519
461
</sect1>
520
  <sect1>
462
521
    <title>Using type 1 fonts with Ghostscript</title>
463
<sect1>
522
464
<title>Using type 1 fonts with Ghostscript</title>
523
    <para>Ghostscript references a font via its <filename>Fontmap</>
465
524
      file.  This must be modified in a similar way to the X11
466
<para>Ghostscript references a font via its <filename>Fontmap</>
525
      <filename>fonts.dir</filename> file.  Ghostscript can use either
467
file.  This must be modified in a similar way to the X11
526
      the <filename>.pfa</filename> or the <filename>.pfb</filename>
468
<filename>fonts.dir</filename> file.  Ghostscript can use either the
527
      format fonts.  Using the font from the previous example, here is
469
<filename>.pfa</filename> or the <filename>.pfb</filename> format
528
      how to use it with Ghostscript:</para>
470
fonts.  Using the font from the previous example, here is how to use
529
471
it with Ghostscript:
472
</para>
473
<informalexample>
530
<informalexample>
474
<screen><lineannotation>Put the font in Ghostscript's font directory</>
531
<screen>
532
<lineannotation>Put the font in Ghostscript's font directory</>
475
bash$ <userinput>cd /usr/local/share/ghostscript/fonts</>
533
bash$ <userinput>cd /usr/local/share/ghostscript/fonts</>
476
bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</>
534
bash$ <userinput>ln -s /usr/local/share/fonts/type1/showboat.pfb .</>
477
535
Lines 497-542 Link Here
497
&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
555
&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
498
&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
556
&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
499
&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
557
&gt;&gt;showpage, press &lt;return&gt; to continue&lt;&lt;
500
GS&gt;<userinput>quit</></screen>
558
GS&gt;<userinput>quit</>
559
</screen>
501
</informalexample>
560
</informalexample>
502
  
561
503
<para>References: <filename>fonts.txt</filename> in the Ghostscript
562
    <para>References: <filename>fonts.txt</filename> in the
504
4.01 distribution</para>
563
      Ghostscript 4.01 distribution</para>
505
564
  </sect1>
506
</sect1>
565
507
566
  <sect1>
508
<sect1>
567
    <title>Using type 1 fonts with Groff</title>
509
<title>Using type 1 fonts with Groff</title>
568
510
569
    <para>Now that the new font can be used by both X11 and
511
<para>Now that the new font can be used by both X11 and Ghostscript,
570
      Ghostscript, how can one use the new font with groff?  First of
512
how can one use the new font with groff?  First of all, since we are
571
      all, since we are dealing with type 1 postscript fonts, the
513
dealing with type 1 postscript fonts, the groff device that is
572
      groff device that is applicable is the <emphasis>ps</emphasis>
514
applicable is the <emphasis>ps</emphasis> device. A font file must be
573
      device.  A font file must be created for each font that groff
515
created for each font that groff can use.  A groff font name is just
574
      can use.  A groff font name is just a file in
516
a file in <filename>/usr/share/groff_font/devps</filename>.  With our
575
      <filename>/usr/share/groff_font/devps</filename>.  With our
517
example, the font file could be
576
      example, the font file could be
518
<filename>/usr/share/groff_font/devps/SHOWBOAT</filename>.  The file
577
      <filename>/usr/share/groff_font/devps/SHOWBOAT</filename>.  The
519
must be created using tools provided by groff.</para>
578
      file must be created using tools provided by groff.</para>
520
579
521
<para>The first tool is <command>afmtodit</>.  This is not normally
580
    <para>The first tool is <command>afmtodit</>.  This is not
522
installed, so it must be retrieved from the source distribution.  I
581
      normally installed, so it must be retrieved from the source
523
found I had to change the first line of the file, so I did:
582
      distribution.  I found I had to change the first line of the
524
</para>
583
      file, so I did:</para>
584
525
<informalexample>
585
<informalexample>
526
<screen>bash$ <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</>
586
<screen>
587
bash$ <userinput>cp /usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.pl /tmp</>
527
bash$ <userinput>ex /tmp/afmtodit.pl
588
bash$ <userinput>ex /tmp/afmtodit.pl
528
:1c
589
:1c
529
#!/usr/bin/perl -P-
590
#!/usr/bin/perl -P-
530
.
591
.
531
:wq</></screen>
592
:wq</>
593
</screen>
532
</informalexample>
594
</informalexample>
533
  
595
534
<para>This tool will create the groff font file from the metrics file
596
    <para>This tool will create the groff font file from the metrics
535
(<filename>.afm</filename> suffix.) Continuing with our
597
      file (<filename>.afm</filename> suffix.) Continuing with our
536
example:
598
      example:</para>
537
</para>
599
538
<informalexample>
600
<informalexample>
539
<screen><lineannotation>Many <filename>.afm</> files are in Mac format&hellip ^M delimited lines
601
<screen>
602
<lineannotation>Many <filename>.afm</> files are in Mac format&hellip ^M delimited lines
540
We need to convert them to unix style ^J delimited lines</>
603
We need to convert them to unix style ^J delimited lines</>
541
bash$ <userinput>cd /tmp</>
604
bash$ <userinput>cd /tmp</>
542
bash$ <userinput>cat /usr/local/share/fonts/type1/showboat.afm |
605
bash$ <userinput>cat /usr/local/share/fonts/type1/showboat.afm |
Lines 544-576 Link Here
544
607
545
<lineannotation>Now create the groff font file</>
608
<lineannotation>Now create the groff font file</>
546
bash$ <userinput>cd /usr/share/groff_font/devps</>
609
bash$ <userinput>cd /usr/share/groff_font/devps</>
547
bash$ <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</></screen>
610
bash$ <userinput>/tmp/afmtodit.pl -d DESC -e text.enc /tmp/showboat.afm generate/textmap SHOWBOAT</>
611
</screen>
548
</informalexample>
612
</informalexample>
549
  
613
550
<para>The font can now be referenced with the name SHOWBOAT.</para>
614
    <para>The font can now be referenced with the name
551
  
615
      SHOWBOAT.</para>
552
<para>If ghostscript is used to drive the printers on the system,
616
553
then nothing more needs to be done.  However, if true postscript
617
    <para>If ghostscript is used to drive the printers on the system,
554
printers are used, then the font must be down loaded to the printer
618
      then nothing more needs to be done.  However, if true postscript
555
in order for the font to be used (unless the printer happens to have
619
      printers are used, then the font must be down loaded to the
556
the showboat font built in or on an accessible font disk.) The final
620
      printer in order for the font to be used (unless the printer
557
step is to create a down loadable font. The <command>pfbtops</> tool
621
      happens to have the showboat font built in or on an accessible
558
is used to create the <filename>.pfa</filename> format of the font,
622
      font disk.) The final step is to create a down loadable font.
559
and the <filename>download</> file is modified to reference the new
623
      The <command>pfbtops</> tool is used to create the
560
font.  The <filename>download</> file must reference the internal
624
      <filename>.pfa</filename> format of the font, and the
561
name of the font.  This can easily be determined from the groff font
625
      <filename>download</> file is modified to reference the new
562
file as illustrated:
626
      font.  The <filename>download</> file must reference the
563
</para>
627
      internal name of the font.  This can easily be determined from
628
      the groff font file as illustrated:</para>
629
564
<informalexample>
630
<informalexample>
565
<screen><lineannotation>Create the <filename>.pfa</> font file</>
631
<screen>
632
<lineannotation>Create the <filename>.pfa</> font file</>
566
bash$ <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb &gt;showboat.pfa</></screen>
633
bash$ <userinput>pfbtops /usr/local/share/fonts/type1/showboat.pfb &gt;showboat.pfa</></screen>
567
</informalexample>
634
</informalexample>
568
<para>
635
569
Of course, if the <filename>.pfa</filename> file is already
636
    <para>Of course, if the <filename>.pfa</filename> file is already
570
available, just use a symbolic link to reference it.
637
      available, just use a symbolic link to reference it.</para>
571
</para>
638
572
<informalexample>
639
<informalexample>
573
<screen><lineannotation>Get the internal font name</>
640
<screen>
641
<lineannotation>Get the internal font name</>
574
bash$ <userinput>fgrep internalname SHOWBOAT</>
642
bash$ <userinput>fgrep internalname SHOWBOAT</>
575
internalname Showboat
643
internalname Showboat
576
644
Lines 579-591 Link Here
579
:$a
647
:$a
580
Showboat      showboat.pfa
648
Showboat      showboat.pfa
581
.
649
.
582
:wq</></screen>
650
:wq</>
651
</screen>
583
</informalexample>
652
</informalexample>
584
  
653
585
<para>To test the font:
654
    <para>To test the font:</para>
586
</para>
655
587
<informalexample>
656
<informalexample>
588
<screen>bash$ <userinput>cd /tmp</>
657
<screen>
658
bash$ <userinput>cd /tmp</>
589
bash$ <userinput>cat &gt;example.t &lt;&lt;EOF
659
bash$ <userinput>cat &gt;example.t &lt;&lt;EOF
590
.sp 5
660
.sp 5
591
.ps 16
661
.ps 16
Lines 618-633 Link Here
618
bash$ <userinput>ghostview example.ps</>
688
bash$ <userinput>ghostview example.ps</>
619
689
620
<lineannotation>To print it</>
690
<lineannotation>To print it</>
621
bash$ <userinput>lpr -Ppostscript example.ps</></screen>
691
bash$ <userinput>lpr -Ppostscript example.ps</>
692
</screen>
622
</informalexample>
693
</informalexample>
623
  
694
624
<para>References:
695
    <para>References:
625
<filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>,
696
      <filename>/usr/src/gnu/usr.bin/groff/afmtodit/afmtodit.man</filename>,
626
&man.groff.font.5;,
697
      &man.groff.font.5;, &man.groff.char.7;, &man.pfbtops.1;.</para>
627
&man.groff.char.7;, 
698
  </sect1>
628
&man.pfbtops.1;.</para>
629
  
630
</sect1>
631
699
632
  <sect1>
700
  <sect1>
633
    <title>Converting TrueType fonts to a groff/postscript format for
701
    <title>Converting TrueType fonts to a groff/postscript format for
Lines 635-657 Link Here
635
703
636
    <para>This potentially requires a bit of work, simply because it
704
    <para>This potentially requires a bit of work, simply because it
637
      depends on some utilities that are not installed as part of the
705
      depends on some utilities that are not installed as part of the
638
      base system. They are:</para>
706
      base system.  They are:</para>
639
707
640
    <variablelist>
708
    <variablelist>
641
      <varlistentry>
709
      <varlistentry>
642
	<term><command>ttf2pf</command></term>
710
	<term><command>ttf2pf</command></term>
643
711
644
	<listitem>
712
	<listitem>
645
	  <para>TrueType to postscript convertsion utilities. This
713
	  <para>TrueType to postscript convertsion utilities.  This
646
	    allows conversion of a TrueType font to an ascii font
714
	    allows conversion of a TrueType font to an ascii font
647
	    metric (<filename>.afm</filename>) file.</para>
715
	    metric (<filename>.afm</filename>) file.</para>
648
	  
716
649
	  <para>Currently available at <ulink
717
	  <para>Currently available at <ulink
650
	    url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf</ulink>.
718
	      url="http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf/">http://sunsite.icm.edu.pl/pub/GUST/contrib/BachoTeX98/ttf2pf</ulink>.
651
	    Note: These files are postscript programs and must be
719
	    Note: These files are postscript programs and must be
652
	    downloaded to disk by holding down the
720
	    downloaded to disk by holding down the
653
	    <keycap>Shift</keycap> key when clicking on the
721
	    <keycap>Shift</keycap> key when clicking on the link.
654
	    link. Otherwise, your browser may try to launch
722
	    Otherwise, your browser may try to launch
655
	    <application>ghostview</application> to view them.</para>
723
	    <application>ghostview</application> to view them.</para>
656
724
657
	  <para>The files of interest are:</para>
725
	  <para>The files of interest are:</para>
Lines 673-680 Link Here
673
	  <para>The funny upper/lower case is due to their being
741
	  <para>The funny upper/lower case is due to their being
674
	    intended also for DOS shells.
742
	    intended also for DOS shells.
675
	    <filename>ttf2pf.ps</filename> makes use of the others as
743
	    <filename>ttf2pf.ps</filename> makes use of the others as
676
	    upper case, so any renaming must be consistent with
744
	    upper case, so any renaming must be consistent with this.
677
	    this. (Actually, <filename>GS_TTF.PS</filename> and
745
	    (Actually, <filename>GS_TTF.PS</filename> and
678
	    <filename>PFS2AFM.PS</filename> are supposedly part of the
746
	    <filename>PFS2AFM.PS</filename> are supposedly part of the
679
	    ghostscript distribution, but it's just as easy to use
747
	    ghostscript distribution, but it's just as easy to use
680
	    these as an isolated utility.  FreeBSD doesn't seem to
748
	    these as an isolated utility.  FreeBSD doesn't seem to
Lines 689-695 Link Here
689
757
690
	<listitem>
758
	<listitem>
691
	  <para>Creates font files for use with groff from ascii font
759
	  <para>Creates font files for use with groff from ascii font
692
	    metrics file. This usually resides in the directory,
760
	    metrics file.  This usually resides in the directory,
693
	    <filename>/usr/src/contrib/groff/afmtodit</filename>, and
761
	    <filename>/usr/src/contrib/groff/afmtodit</filename>, and
694
	    requires some work to get going.</para>
762
	    requires some work to get going.</para>
695
763
Lines 700-711 Link Here
700
	      location.</para>
768
	      location.</para>
701
	  </note>
769
	  </note>
702
770
703
	  <para>In the work area, you'll need to make the
771
	  <para>In the work area, you'll need to make the utility.
704
	    utility. Just type:</para>
772
	    Just type:</para>
705
773
706
	  <screen>
774
<screen>
707
<prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput>
775
<prompt>#</prompt> <userinput>make -f Makefile.sub afmtodit</userinput>
708
	  </screen>
776
</screen>
709
777
710
	  <para>You may also need to copy
778
	  <para>You may also need to copy
711
	    <filename>/usr/contrib/groff/devps/generate/textmap</filename>
779
	    <filename>/usr/contrib/groff/devps/generate/textmap</filename>
Lines 724-732 Link Here
724
	<para>Create the <filename>.afm</filename> file by
792
	<para>Create the <filename>.afm</filename> file by
725
	  typing:</para>
793
	  typing:</para>
726
794
727
	<screen>
795
<screen>
728
<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>
796
<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>
729
	</screen>
797
</screen>
730
798
731
	<para>Where, <replaceable>TTF_name</replaceable> is your
799
	<para>Where, <replaceable>TTF_name</replaceable> is your
732
	  TrueType font file, <replaceable>PS_font_name</replaceable>
800
	  TrueType font file, <replaceable>PS_font_name</replaceable>
Lines 739-770 Link Here
739
807
740
	<para>This also produces a <filename>.pfa</filename> file, the
808
	<para>This also produces a <filename>.pfa</filename> file, the
741
	  ascii postscript font metrics file
809
	  ascii postscript font metrics file
742
	  (<filename>.pfb</filename> is for the binrary form). This
810
	  (<filename>.pfb</filename> is for the binrary form).  This
743
	  won't be needed, but could (I think) be useful for a
811
	  won't be needed, but could (I think) be useful for a
744
	  fontserver.</para>
812
	  fontserver.</para>
745
813
746
	<para>For example, to convert the 30f9 Barcode font using the
814
	<para>For example, to convert the 30f9 Barcode font using the
747
	  default file names, use the following command:</para>
815
	  default file names, use the following command:</para>
748
816
749
	<screen>
817
<screen>
750
<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput>
818
<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf</userinput>
751
Aladdin Ghostscript 5.10 (1997-11-23)
819
Aladdin Ghostscript 5.10 (1997-11-23)
752
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
820
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
753
This software comes with NO WARRANTY: see the file PUBLIC for details.
821
This software comes with NO WARRANTY: see the file PUBLIC for details.
754
Converting 3of9.ttf to 3of9.pfa and 3of9.afm.
822
Converting 3of9.ttf to 3of9.pfa and 3of9.afm.
755
	</screen>
823
</screen>
756
824
757
	<para>If you want the converted fonts to be stored in
825
	<para>If you want the converted fonts to be stored in
758
	  <filename>A.pfa</filename> and <filename>B.afm</filename>,
826
	  <filename>A.pfa</filename> and <filename>B.afm</filename>,
759
	  then use this command:</para>
827
	  then use this command:</para>
760
828
761
	<screen>
829
<screen>
762
<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput>
830
<prompt>%</prompt> <userinput>gs -dNODISPLAY -- ttf2pf.ps 3of9.ttf A B</userinput>
763
Aladdin Ghostscript 5.10 (1997-11-23)
831
Aladdin Ghostscript 5.10 (1997-11-23)
764
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
832
Copyright (C) 1997 Aladdin Enterprises, Menlo Park, CA.  All rights reserved.
765
This software comes with NO WARRANTY: see the file PUBLIC for details.
833
This software comes with NO WARRANTY: see the file PUBLIC for details.
766
Converting 3of9.ttf to A.pfa and B.afm.
834
Converting 3of9.ttf to A.pfa and B.afm.
767
	</screen>
835
</screen>
768
      </listitem>
836
      </listitem>
769
837
770
      <listitem>
838
      <listitem>
Lines 772-805 Link Here
772
840
773
	<para>Change directories to
841
	<para>Change directories to
774
	  <filename>/usr/share/groff_font/devps</filename> so as to
842
	  <filename>/usr/share/groff_font/devps</filename> so as to
775
	  make the following command easier to execute. You'll
843
	  make the following command easier to execute.  You'll
776
	  probably need root priviledges for this. (Or, if you're
844
	  probably need root priviledges for this.  (Or, if you're
777
	  paranoid about working there, make sure you reference the
845
	  paranoid about working there, make sure you reference the
778
	  files <filename>DESC</filename>,
846
	  files <filename>DESC</filename>,
779
	  <filename>text.enc</filename> and
847
	  <filename>text.enc</filename> and
780
	  <filename>generate/textmap</filename> as being in this
848
	  <filename>generate/textmap</filename> as being in this
781
	  directory.)</para>
849
	  directory.)</para>
782
850
783
	<screen>
851
<screen>
784
<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \
852
<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc file.afm \
785
	    generate/textmap <replaceable>PS_font_name</replaceable></userinput>
853
	    generate/textmap <replaceable>PS_font_name</replaceable></userinput>
786
	</screen>
854
</screen>
787
855
788
	<para>Where, <filename>file.afm</filename> is the
856
	<para>Where, <filename>file.afm</filename> is the
789
	  <replaceable>AFM_name</replaceable> created by
857
	  <replaceable>AFM_name</replaceable> created by
790
	  <command>ttf2pf.ps</command> above, and
858
	  <command>ttf2pf.ps</command> above, and
791
	  <replaceable>PS_font_name</replaceable> is the font name
859
	  <replaceable>PS_font_name</replaceable> is the font name
792
	  used from that command, as well as the name that
860
	  used from that command, as well as the name that
793
	  &man.groff.1;
861
	  &man.groff.1; will use for references to this font.  For
794
	  will use for references to this font. For example, assuming
862
	  example, assuming you used the first
795
	  you used the first <command>tiff2pf.ps</command> command
863
	  <command>tiff2pf.ps</command> command above, then the 3of9
796
	  above, then the 3of9 Barcode font can be created using the
864
	  Barcode font can be created using the command:</para>
797
	  command:</para>
798
865
799
	<screen>
866
<screen>
800
<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \
867
<prompt>%</prompt> <userinput>afmtodit -d DESC -e text.enc 3of9.afm \
801
                 generate/textmap 3of9</userinput>
868
                 generate/textmap 3of9</userinput>
802
	</screen>
869
</screen>
803
870
804
	<para>Ensure that the resulting
871
	<para>Ensure that the resulting
805
	  <replaceable>PS_font_name</replaceable> file (e.g.,
872
	  <replaceable>PS_font_name</replaceable> file (e.g.,
Lines 814-950 Link Here
814
	  <filename>.afm</filename> file prior to running
881
	  <filename>.afm</filename> file prior to running
815
	  <command>afmtodit</command>.  This name must also match the
882
	  <command>afmtodit</command>.  This name must also match the
816
	  one used in the Fontmap file if you wish to pipe
883
	  one used in the Fontmap file if you wish to pipe
817
	  &man.groff.1; into
884
	  &man.groff.1; into &man.gs.1;.</para>
818
	  &man.gs.1;.</para>
819
      </listitem>
885
      </listitem>
820
    </orderedlist>
886
    </orderedlist>
821
  </sect1>
887
  </sect1>
822
888
823
<sect1>
889
  <sect1>
824
<title>Can TrueType fonts be used with other programs?</title>
890
    <title>Can TrueType fonts be used with other programs?</title>
891
892
    <para>The TrueType font format is used by Windows, Windows 95, and
893
      Mac's.  It is quite popular and there are a great number of
894
      fonts available in this format.</para>
895
896
    <para>Unfortunately, there are few applications that I am aware of
897
      that can use this format: Ghostscript and Povray come to mind.
898
      Ghostscript's support, according to the documentation, is
899
      rudimentary and the results are likely to be inferior to type 1
900
      fonts.  Povray version 3 also has the ability to use TrueType
901
      fonts, but I rather doubt many people will be creating documents
902
      as a series of raytraced pages :-).</para>
903
904
    <para>This rather dismal situation may soon change.  The <ulink
905
	url="http://www.freetype.org/">FreeType Project</ulink> is
906
      currently developing a useful set of FreeType tools:</para>
907
908
    <itemizedlist>
909
      <listitem>
910
	<para>The <command>xfsft</command> font server for X11 can
911
	  serve TrueType fonts in addition to regular fonts.  Though
912
	  currently in beta, it is said to be quite useable.  See
913
	  <ulink
914
	    url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">Juliusz
915
	    Chroboczek's page</ulink> for further information.
916
	  Porting instructions for FreeBSD can be found at <ulink
917
	    url="http://math.missouri.edu/~stephen/software/">Stephen
918
	    Montgomery's software page</ulink>.</para>
919
      </listitem>
920
921
      <listitem>
922
	<para><command>xfstt</command> is another font server for X11,
923
	  available under <ulink url="
924
	    ftp://sunsite.unc.edu/pub/Linux/X11/fonts">
925
	    ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.</para>
926
      </listitem>
927
928
      <listitem>
929
	<para>A program called <command>ttf2bdf</command> can produce
930
	  BDF files suitable for use in an X environment from TrueType
931
	  files.  Linux binaries are said to be available from <ulink
932
	    url="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.</para>
933
      </listitem>
934
935
      <listitem>
936
	<para>For people requiring the use of Asian TrueType fonts,
937
	  the <command>XTT</command> font server may be worth a look.
938
	  Information about <command>XTT</command> can be found at
939
	  URL: <ulink
940
	    url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.</para>
941
      </listitem>
942
943
      <listitem>
944
	<para>and others &hellip;</para>
945
      </listitem>
946
    </itemizedlist>
947
948
    <para>The <ulink
949
	url="http://www.freetype.org/projects.htm">FreeType Projects
950
	page </ulink> is a good starting point for information on
951
      these and other free TrueType projects.</para>
952
  </sect1>
953
954
  <sect1>
955
    <title>Where can additional fonts be obtained?</title>
956
957
    <para>Many fonts are available on the Internet.  They are either
958
      entirely free, or are share-ware.  In addition, there are many
959
      inexpensive CDROMs available that contain many fonts.  Some
960
      Internet locations (as of August 1996) are:</para>
961
962
    <itemizedlist>
963
      <listitem>
964
	<para><ulink
965
	    url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink>
966
	  (Formerly CICA)</para>
967
      </listitem>
968
969
      <listitem>
970
	<para><ulink
971
	    url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink></para>
972
      </listitem>
973
974
      <listitem>
975
	<para><ulink
976
	    url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink></para>
977
      </listitem>
978
979
      <listitem>
980
	<para><ulink
981
	    url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink></para>
982
      </listitem>
983
984
      <listitem>
985
	<para><ulink
986
	    url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink></para>
987
      </listitem>
988
989
      <listitem>
990
	<para><ulink
991
	    url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink></para>
992
      </listitem>
993
    </itemizedlist>
994
  </sect1>
995
996
  <sect1>
997
    <title>Additional questions</title>
998
999
    <itemizedlist>
1000
      <listitem>
1001
	<para>What use are the <filename>.pfm</filename> files?</para>
1002
      </listitem>
1003
1004
      <listitem>
1005
	<para>Can one generate the <filename>.afm</filename> file from
1006
	  a <filename>.pfa</filename> or
1007
	  <filename>.pfb</filename>?</para>
1008
      </listitem>
825
1009
826
<para>The TrueType font format is used by Windows, Windows 95, and
1010
      <listitem>
827
Mac's.  It is quite popular and there are a great number of
1011
	<para>How to generate the groff character mapping files for
828
fonts available in this format.</para>
1012
	  postscript fonts with non-standard character names?</para>
829
1013
      </listitem>
830
<para>Unfortunately, there are few applications that I am aware of
1014
831
that can use this format: Ghostscript and Povray come to mind.  
1015
      <listitem>
832
Ghostscript's support, according to the documentation, is rudimentary 
1016
	<para>Can xditview and devX?? devices be setup to access all
833
and the results are likely to be inferior to type 1 fonts.
1017
	  the new fonts?</para>
834
Povray version 3 also has the ability to use TrueType fonts, but 
1018
      </listitem>
835
I rather doubt many people will be creating documents as a series of 
1019
836
raytraced pages :-).</para>
1020
      <listitem>
837
1021
	<para>It would be good to have examples of using TrueType
838
<para>This rather dismal situation may soon change.  
1022
	  fonts with povray and ghostscript.</para>
839
The <ulink url="http://www.freetype.org/">FreeType Project</ulink> 
1023
      </listitem>
840
is currently developing a useful set of FreeType tools:
1024
    </itemizedlist>
841
</para>
1025
  </sect1>
842
<itemizedlist>
843
<listitem>
844
<para>The <command>xfsft</command> font server for X11 can serve 
845
TrueType fonts in addition to regular fonts.  Though currently in 
846
beta, it is said to be quite useable.  See <ulink 
847
url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">Juliusz 
848
Chroboczek's page</ulink> for further information.  Porting instructions
849
for FreeBSD can be found at <ulink 
850
url="http://math.missouri.edu/~stephen/software/">Stephen Montgomery's
851
software page</ulink>.
852
</para>
853
</listitem>
854
<listitem>
855
<para><command>xfstt</command> is another font
856
server for X11, available under <ulink 
857
url=" ftp://sunsite.unc.edu/pub/Linux/X11/fonts">
858
ftp://sunsite.unc.edu/pub/Linux/X11/fonts</ulink>.
859
</para>
860
</listitem>
861
<listitem><para>A program called <command>ttf2bdf</command> can produce
862
BDF files suitable for use in an X environment from TrueType files.  Linux
863
binaries are said to be available from <ulink 
864
url="ftp://crl.nmsu.edu/CLR/multiling/General">ftp://crl.nmsu.edu/CLR/multiling/General/</ulink>.
865
</para>
866
</listitem>
867
<listitem>
868
<para>
869
For people requiring the use of Asian TrueType fonts, the
870
<command>XTT</command> font server may be worth a look.  Information about 
871
<command>XTT</command> can be found at URL: <ulink 
872
url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html">http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/study/freebsd-at-random/x-tt/index-en.html</ulink>.
873
</para>
874
</listitem>
875
<listitem>
876
<para>and others &hellip;</para>
877
</listitem>
878
</itemizedlist>
879
<para>
880
The 
881
<ulink url="http://www.freetype.org/projects.htm">FreeType Projects page
882
</ulink> is a good starting point for information on these and other
883
free TrueType projects.
884
</para>
885
</sect1>
886
887
<sect1>
888
<title>Where can additional fonts be obtained?</title>
889
890
<para>Many fonts are available on the Internet.  They are either
891
entirely free, or are share-ware.  In addition, there are many
892
inexpensive CDROMs available that contain many fonts.  Some Internet
893
locations (as of August 1996) are:
894
</para>
895
<itemizedlist>
896
897
<listitem><para><ulink
898
url="ftp://ftp.winsite.com">ftp://ftp.winsite.com</ulink> (Formerly
899
CICA)</para></listitem>
900
901
<listitem><para><ulink
902
url="http://www.simtel.net/simcgi-bin/dosfind.cgi">http://www.simtel.net/simcgi-bin/dosfind.cgi</ulink></para></listitem>
903
904
<listitem><para><ulink
905
url="ftp://ftp.coast.net/">ftp://ftp.coast.net/</ulink></para></listitem>
906
907
<listitem><para><ulink
908
url="http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html">http://af-pc-plloyd.ecel.uwa.edu.au/fonts/index.html</ulink></para></listitem>
909
910
<listitem><para><ulink
911
url="http://www.esselte.com/letraset/index.html">http://www.esselte.com/letraset/index.html</ulink></para></listitem>
912
913
<listitem><para><ulink
914
url="http://www.inil.com/users/elfring/esf.htm">http://www.inil.com/users/elfring/esf.htm</ulink></para></listitem>
915
916
</itemizedlist>
917
  
918
</sect1>
919
920
<sect1>
921
<title>Additional questions</title>
922
923
<itemizedlist>
924
925
<listitem>
926
<para>What use are the <filename>.pfm</filename> files?</para>
927
</listitem>
928
929
<listitem>
930
<para>Can one generate the <filename>.afm</filename> file from a <filename>.pfa</filename> or <filename>.pfb</filename>?</para>
931
</listitem>
932
933
<listitem>
934
<para>How to generate the groff character mapping files for postscript fonts
935
with non-standard character names?</para>
936
</listitem>
937
938
<listitem>
939
<para>Can xditview and devX?? devices be setup to access all the new fonts?</para>
940
</listitem>
941
942
<listitem>
943
<para>It would be good to have examples of using TrueType fonts with povray and
944
ghostscript.</para>
945
</listitem>
946
947
</itemizedlist>
948
  
949
</sect1>
950
</article>
1026
</article>

Return to bug 14206