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 sep‐
       arated 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  Uni‐
       code  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  sub‐
       script 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  Uni‐
              code 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 sub‐
              script 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
       /usr/share/groff/1.23.0/font/devlj4/DESC
              describes the lj4 output device.

       /usr/share/groff/1.23.0/font/devlj4/F
              describes the font known as F on device lj4.

       /usr/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.

       /usr/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.

       /usr/share/groff/1.23.0/font/devlj4/generate/special.map
       /usr/share/groff/1.23.0/font/devlj4/generate/symbol.map
       /usr/share/groff/1.23.0/font/devlj4/generate/text.map
       /usr/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                                              31 March 2024                                               hpftodit(1)