hpftodit(1)                 General Commands Manual                hpftodit(1)

Name
       hpftodit - create font description files for use with groff and grolj4

Synopsis
       hpftodit [-aqs] [-i n] tfm-file map-file font-description

       hpftodit -d tfm-file [map-file]

       hpftodit --help

       hpftodit -v
       hpftodit --version

Description
       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
              m u c1 c2 ... [# comment]
       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.

       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   #   # number sign
       or
              3   0023   # sh   # number sign
       whereas in
              3   0023   sh #   # number sign
       the first “#” is interpreted as the beginning of the comment.

       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)).

Options
       --help displays a usage message, while -v and --version show version
       information; all exit afterward.

       -a     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.

       -d     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 printed.

              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.

       -q     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.

       -s     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 reversed.

Files
       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/DESC
              describes the lj4 output device.

       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/F
              describes the font known as F on device lj4.

       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/generate/Makefile
              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.

       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/generate/special.awk
              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.

       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/generate/special.map
       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/generate/symbol.map
       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/generate/text.map
       /opt/homebrew/Cellar/groff/1.23.0_1/share/groff/1.23.0/font/devlj4/generate/wingdings.map
              map MSL indices and HP Unicode PUA assignments to groff special
              character identifiers.

See also
       groff(1), groff_diff(1), grolj4(1), groff_font(5)

groff 1.23.0                      5 July 2023                      hpftodit(1)