Category : EmTeX is a TeX/LaTeX document editor
Archive   : DVIPS54.ZIP
Filename : AFM2TFM.DOC

 
Output of file : AFM2TFM.DOC contained in archive : DVIPS54.ZIP




AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



NNAAMMEE
afm2tfm - convert Adobe font metrics to TeX font metrics

SSYYNNOOPPSSIISS
afm2tfm _f_o_o_1[._a_f_m] [ --ee _r_a_t_i_o ] [ --ss _s_l_a_n_t ] [ --tt _f_o_o_2[._t_f_m]
] [ --vv _b_a_r[._v_p_l] | --VV _b_a_r[._v_p_l] ] [ _f_o_o_3[._t_f_m] ]

DDEESSCCRRIIPPTTIIOONN
PostScript fonts are (or should be) accompanied by font
metric files such as TTiimmeess--RRoommaann..aaffmm,, which describes the
characteristics of the font called Times-Roman. To use such
fonts with TeX, we need TFM files that contain similar
information. The command

afm2tfm Times-Roman.afm Times-Roman.tfm

(which can be reduced to simply

afm2tfm Times-Roman

by taking default shortcuts) will create the necessary file
TTiimmeess--RRoommaann..ttffmm,, which can then be moved to the directory
where TeX normally looks for font metric information. The
PostScript conversion program ddvviippss will also treat Times-
Roman as a resident PostScript font if you include the line

Times-Roman

in the file _p_s_f_o_n_t_s._m_a_p.

The file names used in this manual page are not consistent
with the new font naming scheme implemented by Karl Berry;
please refer to the main ddvviippss..tteexx documentation for the
correct names to use.

PostScript fonts have a different encoding scheme from that
of plain TeX. Although both schemes are based on ASCII, spe-
cial characters such as ligatures and accents are handled
quite differently. Therefore we obtain best results by using
a "virtual font" interface, which makes TeX act as if the
PostScript font had a standard TeX encoding. Such a virtual
font can be obtained, for example, by the command

afm2tfm Times-Roman -v times

or, more fully, by:

afm2tfm Times-Roman.afm -v times.vpl Times-Roman.tfm

This produces two outputs, namely the "virtual property
list" file ttiimmeess..vvppll and the TeX font metric file TTiimmeess--
Roman.tfm. The latter file describes an "actual font" on



Printed 11/25/90 9 August 1990 1






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



which the virtual font is based.

If you wish to specify a different TFM file name than the
default, you can use the -t option; this will override any
default TFM file name that would be calculated from the
input file name.

To use the font in TeX, you should first run

vptovf times.vpl times.vf times.tfm

then install the file ttiimmeess..vvff in the directory for virtual
fonts and install ttiimmeess..ttffmm in the directory for TeX font
metrics. (You can also make more complex virtual fonts by
editing ttiimmeess..vvppll first.) Once this has been done, you're
all set. You can use code like this in TeX henceforth:

\font\myfont=times at 10pt
\myfont
Hello, I am being typeset in Times-Roman.


Note that there are two fonts, one actual (`Times-Roman',
which is analogous to a raw piece of hardware) and one vir-
tual (`times', which has typesetting knowhow added). You
could also say `\font\TR=Times-Roman at 10pt' and typeset
directly with that, but then you would have no ligatures or
kerning, and you would have to use Adobe character positions
for special letters like \ae. The virtual font called ttiimmeess
not only has ligatures and kerning, and most of the standard
accent conventions of TeX, it also has a few additional
features not present in the Computer Modern fonts. For exam-
ple, it includes all the Adobe characters (such as the Pol-
ish ogonek and the French guillemots). It also allows you to
type 58 accented letters from `Aacute' to `zcaron' as if
they were ligatures --- namely as `acute' followed by `A',
etc., where you can get `acute' (\char 19) by defining a
suitable control sequence. (The 58 constructed characters
are found in the AFM file, and constructed as specified by
Adobe; you may wish to adjust the spacing and/or add addi-
tional accent combinations by editing the VPL file.) The
only things you lose from ordinary TeX text fonts are the
dotless j (which can be hacked into the VPL file with
literal PostScript specials if you have the patience) and
uppercase Greek letters (which just don't exist unless you
buy them separately).

These fonts can be scaled to any size. Go wild! Note, how-
ever, that using PostScript fonts does use up the printer's
virtual memory and it does take time. You may find down-
loading the Computer Modern fonts to be faster than using
the built-in PostScript fonts!



Printed 11/25/90 9 August 1990 2






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



OOPPTTIIOONNSS
Special effects are also obtainable, with commands such as

afm2tfm Times-Roman -s .167 -v timessl Times-Slanted

which create ttiimmeessssll..vvppll and TTiimmeess--SSllaanntteedd..ttffmm.. To use this,
proceed as above but put the line

Times-Slanted "/Times-Roman .167 SlantFont"

into _p_s_f_o_n_t_s._m_a_p. Then TTiimmeess--SSllaanntteedd will act as if it were
a resident font, although it is actually constructed from
Times-Roman by PostScript hackery. (It's an oblique version
of Times-Roman, obtained by slanting everything 1/6 to the
right.) Similarly, you can get an extended font by

afm2tfm Times-Extended -e 1.2 -v timesx Times-Extended

and by recording the pseudo-resident font

Times-Extended "/Times-Roman 1.2 ExtendFont"

The command line switches are:

--ee _r_a_t_i_o
All characters are stretched horizontally by the stated
_r_a_t_i_o; if it is less than 1.0, you get a condensed
font.

--ss _s_l_a_n_t
All characters are slanted to the right by the stated
_s_l_a_n_t; if it is negative, the letters slope to the left
(or they might be upright if you start with an italic
font).

--vv _f_i_l_e[._v_p_l]
Generate a virtual property list (VPL) file as well as
a TFM file.

--VV _f_i_l_e[._v_p_l]
Same as -v, but the virtual font generated is a caps-
and-small-caps font obtained by scaling uppercase
letters by .8 to typeset lowercase. This font handles
accented letters and retains proper kerning.


NNOONN--RREESSIIDDEENNTT PPOOSSTTSSCCRRIIPPTT FFOONNTTSS
If you want to use a non-printer-resident PostScript font
for which you have a .pfb file (an Adobe Type 1 font pro-
gram), you can make it act like a resident font by putting a
`<' sign and the name of the .pfb file just after the font
name in the _p_s_f_o_n_t_s._m_a_p file entry. For example,



Printed 11/25/90 9 August 1990 3






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



StoneInformal
will cause ddvviippss to include StoneInformal.pfb in your docu-
ment as if it were a header file, whenever the pseudo-
resident font StoneInformal is used in a document. Simi-
larly, you can generate transformed fonts and include lines
like

StoneInformal-Condensed
in _p_s_f_o_n_t_s._m_a_p, in which case StoneInformal.pfb will be
loaded whenever StoneInformal-Condensed is used. (Each
header file is loaded at most once per document. The .pfb
files should be installed in the config directory with the
other header files.)


FFOONNTT AALLIIAASSEESS
Some systems don't handle files with long names well---MSDOS
and TWENEX are two notable examples. For this reason, ddvviippss
will accept an alias for such fonts. Such an alias should
be the first word on the _p_s_f_o_n_t_s._m_a_p line. For instance, if
we wanted the name _p_t_m_r to be used for _T_i_m_e_s-_R_o_m_a_n since our
computer can't handle long names, we would use the following
line in our _p_s_f_o_n_t_s._m_a_p file:

ptmr Times-Roman

The TFM file must have the name _p_t_m_r._t_f_m.

The parsing of the _p_s_f_o_n_t_s._m_a_p file should be explained to
eliminate all confusion. Each line is separated into words,
where words are separated by spaces or tabs. If a word
begins with a double quote, however, it extends until the
next double quote or the end of the line. If a word starts
with a less than character, it is treated as a font header
file (or downloaded PostScript font). If a word starts with
a double quote, it is special instructions on how to gen-
erate that font. Otherwise it is a name. The first such
name is always the name TeX uses for the font and is also
the name of the TFM file. If there is another name word,
that name is used as the PostScript name; if there is only
one name word, it is used for both the TeX name and the
PostScript name.

Note that the aliases also register the full PostScript
name, so the single line

ptmr Times-Roman

would allow ddvviippss to `find' the _p_t_m_r font as well as the
_T_i_m_e_s-_R_o_m_a_n font.



Printed 11/25/90 9 August 1990 4






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



Incidentally, many font files (e.g., in the Adobe Type
Library) include more characters internally than you can
access directly without making a few changes. These charac-
ters typically have code -1 in the afm file and no
corresponding "constructed character" (CC) specification.
For example, in Adobe Garamond there are Eth and eth, Thorn
and thorn, plus things like copyright and onehalf, plus 58
accented letters Aacute thru zcaron (with accents over caps
much better looking than you can get from constructed
accents). To use these characters, give them character codes
between 0 and 255 in the afm file, and build the correspond-
ing EncodingVector (instead of StandardEncoding) in the pfb
file. Then afm2tfm will generate a vpl file that includes
accented characters as ligatures, as explained above; for
example, `Aacute' will be accessible as `acute' followed by
`A' (as well as by its character code in the virtual font).

FFIILLEESS
_p_s_f_o_n_t_s._m_a_p in the config directory used by dvips (update
this).
../_a_f_m/_M_a_k_e_f_i_l_e in the dvips sources (look at this for exam-
ples).

SSEEEE AALLSSOO
dvips(1), tex(1), vptovf(1)

BBUUGGSS
An option to add letterspacing to the virtual font was
rejected by Knuth because it would make the fi and fl liga-
tures break the normal rhythmic pattern.

AAUUTTHHOORRSS
Tomas Rokicki and Don Knuth






















Printed 11/25/90 9 August 1990 5






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



NNAAMMEE
afm2tfm - convert Adobe font metrics to TeX font metrics

SSYYNNOOPPSSIISS
afm2tfm _f_o_o_1[._a_f_m] [ --ee _r_a_t_i_o ] [ --ss _s_l_a_n_t ] [ --tt _f_o_o_2[._t_f_m]
] [ --vv _b_a_r[._v_p_l] | --VV _b_a_r[._v_p_l] ] [ _f_o_o_3[._t_f_m] ]

DDEESSCCRRIIPPTTIIOONN
PostScript fonts are (or should be) accompanied by font
metric files such as TTiimmeess--RRoommaann..aaffmm,, which describes the
characteristics of the font called Times-Roman. To use such
fonts with TeX, we need TFM files that contain similar
information. The command

afm2tfm Times-Roman.afm Times-Roman.tfm

(which can be reduced to simply

afm2tfm Times-Roman

by taking default shortcuts) will create the necessary file
TTiimmeess--RRoommaann..ttffmm,, which can then be moved to the directory
where TeX normally looks for font metric information. The
PostScript conversion program ddvviippss will also treat Times-
Roman as a resident PostScript font if you include the line

Times-Roman

in the file _p_s_f_o_n_t_s._m_a_p.

The file names used in this manual page are not consistent
with the new font naming scheme implemented by Karl Berry;
please refer to the main ddvviippss..tteexx documentation for the
correct names to use.

PostScript fonts have a different encoding scheme from that
of plain TeX. Although both schemes are based on ASCII, spe-
cial characters such as ligatures and accents are handled
quite differently. Therefore we obtain best results by using
a "virtual font" interface, which makes TeX act as if the
PostScript font had a standard TeX encoding. Such a virtual
font can be obtained, for example, by the command

afm2tfm Times-Roman -v times

or, more fully, by:

afm2tfm Times-Roman.afm -v times.vpl Times-Roman.tfm

This produces two outputs, namely the "virtual property
list" file ttiimmeess..vvppll and the TeX font metric file TTiimmeess--
Roman.tfm. The latter file describes an "actual font" on



Printed 11/25/90 9 August 1990 1






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



which the virtual font is based.

If you wish to specify a different TFM file name than the
default, you can use the -t option; this will override any
default TFM file name that would be calculated from the
input file name.

To use the font in TeX, you should first run

vptovf times.vpl times.vf times.tfm

then install the file ttiimmeess..vvff in the directory for virtual
fonts and install ttiimmeess..ttffmm in the directory for TeX font
metrics. (You can also make more complex virtual fonts by
editing ttiimmeess..vvppll first.) Once this has been done, you're
all set. You can use code like this in TeX henceforth:

\font\myfont=times at 10pt
\myfont
Hello, I am being typeset in Times-Roman.


Note that there are two fonts, one actual (`Times-Roman',
which is analogous to a raw piece of hardware) and one vir-
tual (`times', which has typesetting knowhow added). You
could also say `\font\TR=Times-Roman at 10pt' and typeset
directly with that, but then you would have no ligatures or
kerning, and you would have to use Adobe character positions
for special letters like \ae. The virtual font called ttiimmeess
not only has ligatures and kerning, and most of the standard
accent conventions of TeX, it also has a few additional
features not present in the Computer Modern fonts. For exam-
ple, it includes all the Adobe characters (such as the Pol-
ish ogonek and the French guillemots). It also allows you to
type 58 accented letters from `Aacute' to `zcaron' as if
they were ligatures --- namely as `acute' followed by `A',
etc., where you can get `acute' (\char 19) by defining a
suitable control sequence. (The 58 constructed characters
are found in the AFM file, and constructed as specified by
Adobe; you may wish to adjust the spacing and/or add addi-
tional accent combinations by editing the VPL file.) The
only things you lose from ordinary TeX text fonts are the
dotless j (which can be hacked into the VPL file with
literal PostScript specials if you have the patience) and
uppercase Greek letters (which just don't exist unless you
buy them separately).

These fonts can be scaled to any size. Go wild! Note, how-
ever, that using PostScript fonts does use up the printer's
virtual memory and it does take time. You may find down-
loading the Computer Modern fonts to be faster than using
the built-in PostScript fonts!



Printed 11/25/90 9 August 1990 2






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



OOPPTTIIOONNSS
Special effects are also obtainable, with commands such as

afm2tfm Times-Roman -s .167 -v timessl Times-Slanted

which create ttiimmeessssll..vvppll and TTiimmeess--SSllaanntteedd..ttffmm.. To use this,
proceed as above but put the line

Times-Slanted "/Times-Roman .167 SlantFont"

into _p_s_f_o_n_t_s._m_a_p. Then TTiimmeess--SSllaanntteedd will act as if it were
a resident font, although it is actually constructed from
Times-Roman by PostScript hackery. (It's an oblique version
of Times-Roman, obtained by slanting everything 1/6 to the
right.) Similarly, you can get an extended font by

afm2tfm Times-Extended -e 1.2 -v timesx Times-Extended

and by recording the pseudo-resident font

Times-Extended "/Times-Roman 1.2 ExtendFont"

The command line switches are:

--ee _r_a_t_i_o
All characters are stretched horizontally by the stated
_r_a_t_i_o; if it is less than 1.0, you get a condensed
font.

--ss _s_l_a_n_t
All characters are slanted to the right by the stated
_s_l_a_n_t; if it is negative, the letters slope to the left
(or they might be upright if you start with an italic
font).

--vv _f_i_l_e[._v_p_l]
Generate a virtual property list (VPL) file as well as
a TFM file.

--VV _f_i_l_e[._v_p_l]
Same as -v, but the virtual font generated is a caps-
and-small-caps font obtained by scaling uppercase
letters by .8 to typeset lowercase. This font handles
accented letters and retains proper kerning.


NNOONN--RREESSIIDDEENNTT PPOOSSTTSSCCRRIIPPTT FFOONNTTSS
If you want to use a non-printer-resident PostScript font
for which you have a .pfb file (an Adobe Type 1 font pro-
gram), you can make it act like a resident font by putting a
`<' sign and the name of the .pfb file just after the font
name in the _p_s_f_o_n_t_s._m_a_p file entry. For example,



Printed 11/25/90 9 August 1990 3






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



StoneInformal
will cause ddvviippss to include StoneInformal.pfb in your docu-
ment as if it were a header file, whenever the pseudo-
resident font StoneInformal is used in a document. Simi-
larly, you can generate transformed fonts and include lines
like

StoneInformal-Condensed
in _p_s_f_o_n_t_s._m_a_p, in which case StoneInformal.pfb will be
loaded whenever StoneInformal-Condensed is used. (Each
header file is loaded at most once per document. The .pfb
files should be installed in the config directory with the
other header files.)


FFOONNTT AALLIIAASSEESS
Some systems don't handle files with long names well---MSDOS
and TWENEX are two notable examples. For this reason, ddvviippss
will accept an alias for such fonts. Such an alias should
be the first word on the _p_s_f_o_n_t_s._m_a_p line. For instance, if
we wanted the name _p_t_m_r to be used for _T_i_m_e_s-_R_o_m_a_n since our
computer can't handle long names, we would use the following
line in our _p_s_f_o_n_t_s._m_a_p file:

ptmr Times-Roman

The TFM file must have the name _p_t_m_r._t_f_m.

The parsing of the _p_s_f_o_n_t_s._m_a_p file should be explained to
eliminate all confusion. Each line is separated into words,
where words are separated by spaces or tabs. If a word
begins with a double quote, however, it extends until the
next double quote or the end of the line. If a word starts
with a less than character, it is treated as a font header
file (or downloaded PostScript font). If a word starts with
a double quote, it is special instructions on how to gen-
erate that font. Otherwise it is a name. The first such
name is always the name TeX uses for the font and is also
the name of the TFM file. If there is another name word,
that name is used as the PostScript name; if there is only
one name word, it is used for both the TeX name and the
PostScript name.

Note that the aliases also register the full PostScript
name, so the single line

ptmr Times-Roman

would allow ddvviippss to `find' the _p_t_m_r font as well as the
_T_i_m_e_s-_R_o_m_a_n font.



Printed 11/25/90 9 August 1990 4






AFM2TFM(1) Pyramid OSx Operating System AFM2TFM(1)



Incidentally, many font files (e.g., in the Adobe Type
Library) include more characters internally than you can
access directly without making a few changes. These charac-
ters typically have code -1 in the afm file and no
corresponding "constructed character" (CC) specification.
For example, in Adobe Garamond there are Eth and eth, Thorn
and thorn, plus things like copyright and onehalf, plus 58
accented letters Aacute thru zcaron (with accents over caps
much better looking than you can get from constructed
accents). To use these characters, give them character codes
between 0 and 255 in the afm file, and build the correspond-
ing EncodingVector (instead of StandardEncoding) in the pfb
file. Then afm2tfm will generate a vpl file that includes
accented characters as ligatures, as explained above; for
example, `Aacute' will be accessible as `acute' followed by
`A' (as well as by its character code in the virtual font).

FFIILLEESS
_p_s_f_o_n_t_s._m_a_p in the config directory used by dvips (update
this).
../_a_f_m/_M_a_k_e_f_i_l_e in the dvips sources (look at this for exam-
ples).

SSEEEE AALLSSOO
dvips(1), tex(1), vptovf(1)

BBUUGGSS
An option to add letterspacing to the virtual font was
rejected by Knuth because it would make the fi and fl liga-
tures break the normal rhythmic pattern.

AAUUTTHHOORRSS
Tomas Rokicki and Don Knuth






















Printed 11/25/90 9 August 1990 5