hpftodit - create font description files for use with groff
|[-aqs] [-i n] tfm-file
|-d tfm-file [map-file]
hpftodit creates a font description file for use with a
Hewlett-Packard LaserJet 4-series (or newer) printer with the
grolj4(1) output driver of groff(1), using data from an HP
tagged font metric (TFM) file. tfm-file is the name of the font's TFM
file; Intellifont and TrueType TFM files are supported, but symbol set TFM
files are not. map-file is a file giving the groff special
character identifiers for glyphs in the font; this file should consist of a
sequence of lines of the form
where m is a decimal integer giving the glyph's MSL (Master Symbol List)
number, u is a hexadecimal integer giving its Unicode character code,
and c1, c2, ... are its groff glyph names (see
groff_char(7) for a list). The values can be separated by any number of
spaces and/or tabs. The Unicode value must use uppercase hexadecimal digits
A–F, and must lack a leading “0x”,
“u”, or “U+”. Unicode values
corresponding to composite glyphs are decomposed; that is
“u00C0” becomes “u0041_0300”. A
glyph without a groff special character identifier may be named
uXXXX if the glyph corresponds to a Unicode value, or as an
unnamed glyph “---”. If the given Unicode value is in the
Private Use Area (PUA) (0xE000–0xF8FF), the glyph is included as an
unnamed glyph. Refer to groff_diff(1) for additional information about
unnamed glyphs and how to access them.
m u c1 c2 ... [# comment]
Blank lines and lines beginning with “#” are
ignored. A “#” following one or more groff names
begins a comment. Because “#” is a valid groff
name, it must appear first in a list of groff names if a comment is
included, as in
3 0023 # sh # number sign
the first “#” is interpreted as the beginning of the
3 0023 sh # # number sign
Output is written in groff_font(5) format to
font-description, a file named for the intended groff font
name; if this operand is “-”, the font description is
written to the standard output stream.
If the -i option is used, hpftodit automatically
will generate an italic correction, a left italic correction, and a
subscript correction for each glyph (the significance of these parameters is
explained in groff_font(5)).
--help displays a usage message, while -v and
--version show version information; all exit afterward.
- Include glyphs in the TFM file that are not included in map-file. A
glyph with corresponding Unicode value is given the name uXXXX; a
glyph without a Unicode value is included as an unnamed glyph
“---”. A glyph with a Unicode value in the Private Use Area
(0xE000–0xF8FF) is also included as an unnamed glyph.
- This option provides a simple means of adding Unicode-named and unnamed
glyphs to a font without including them in the map file, but it affords
little control over which glyphs are placed in a regular font and which
are placed in a special font. The presence or absence of the -s
option has some effect on which glyphs are included: without it, only the
“text” symbol sets are searched for matching glyphs; with
it, only the “mathematical” symbol sets are searched.
Nonetheless, restricting the symbol sets searched isn't very
selective—many glyphs are placed in both regular and special fonts.
Normally, -a should be used only as a last resort.
- Dump information about the TFM file to the standard output stream; use
this to ensure that a TFM file is a proper match for a font, and that its
contents are suitable. The information includes the values of important
TFM tags and a listing (by MSL number for Intellifont TFM files or by
Unicode value for TrueType TFM files) of the glyphs included in the TFM
file. The unit of measure “DU” for some tags indicates
design units; there are 8782 design units per em for Intellifont
fonts, and 2048 design units per em for TrueType fonts. Note that
the accessibility of a glyph depends on its inclusion in a symbol set;
some TFM files list many glyphs but only a few symbol sets.
- The glyph listing includes the glyph index within the TFM file, the MSL or
Unicode value, and the symbol set and character code that will be used to
print the glyph. If map-file is given, groff names are given
for matching glyphs. If only the glyph index and MSL or Unicode value are
given, the glyph does not appear in any supported symbol set and cannot be
- With the -d option, map-file is optional, and
output-font is ignored if given.
- -i n
- Generate an italic correction for each glyph so that its width plus its
italic correction is equal to n thousandths of an em plus the
amount by which the right edge of the glyphs's bounding box is to the
right of its origin. If a negative italic correction would result, use a
zero italic correction instead.
- Also generate a subscript correction equal to the product of the tangent
of the slant of the font and four fifths of the x-height of the font. If a
subscript correction greater than the italic correction would result, use
a subscript correction equal to the italic correction instead.
- Also generate a left italic correction for each glyph equal to n
thousandths of an em plus the amount by which the left edge of the
glyphs's bounding box is to the left of its origin. The left italic
correction may be negative.
- This option normally is needed only with italic or oblique fonts; a value
of 50 (0.05 em) usually is a reasonable choice.
- Suppress warnings about glyphs in the map file that were not found in the
TFM file. Warnings never are given for unnamed glyphs or by glyphs named
by their Unicode values. This option is useful when sending the output of
hpftodit to the standard output stream.
- Add the special directive to the font description file, affecting
the order in which HP symbol sets are searched for each glyph. Without
this option, the “text” sets are searched before the
“mathematical” symbol sets. With it, the search order is
- describes the lj4 output device.
- describes the font known as F on device lj4.
- is a make(1) script that uses hpftodit(1) to prepare the
groff font description files above from HP TFM data; in can be used
to regenerate them in the event the TFM files are updated.
- is an awk(1) script that corrects the Intellifont-based height
metrics for several glyphs in the S (special) font for TrueType CG
Times used in the HP LaserJet 4000 and later.
- map MSL indices and HP Unicode PUA assignments to groff special