# info > HPFTODIT

---
type: CommandReference
command: hpftodit
mode: man
section: 1
source: man-pages
---

## Quick Reference
- `hpftodit tfm-file map-file output-font` — create a groff -Tlj4 font description file
- `hpftodit -d tfm-file` — dump TFM file information to standard output
- `hpftodit -s tfm-file map-file output-font` — create a special font file (searched for missing glyphs)
- `hpftodit -i 50 tfm-file map-file output-font` — generate italic corrections for oblique fonts
- `hpftodit -a tfm-file map-file output-font` — include all TFM characters not in the map file
- `hpftodit -q - tfm-file map-file` — write font file to stdout, suppress warnings

## Name
hpftodit — create font description files for use with groff -Tlj4

## Synopsis
shell
hpftodit [-aqs] [-i n] tfm-file map-file output-font
hpftodit -d tfm-file [map-file]
hpftodit --help
hpftodit -v|--version
## Options
- `-a` — include all glyphs from the TFM file not listed in the map file. Unicode-named glyphs get names `uXXXX`; others become unnamed `---`. Limited control: use only as a last resort.
- `-d` — dump TFM file information to stdout (glyph list, symbol sets, tags). map-file is optional; output-font is ignored.
- `-q` — suppress warnings about map-file characters not found in the TFM file. Useful when sending output to stdout.
- `-s` — mark the font as special. Changes symbol set search order (mathematical before text sets). Special fonts are searched for missing glyphs.
- `-i n` — generate italic correction, left italic correction, and subscript correction for each character. `n` is thousandths of an em added to natural optical corrections. Usually 50 for italic/oblique fonts.
- `-v`, `--version` — print version and exit.

Map file format: each line is `m u c1 c2 ... [# comment]` where `m` is MSL number, `u` a Unicode value (uppercase hex, no prefix), and `c1 c2...` are groff character names. Unicode values for composites are decomposed (e.g., `00C0` → `0041_0300`). Unnamed glyphs use `uXXXX` or `---`. Blank lines and `#`-only lines are ignored. `#` inside a line starts a comment unless it is the first groff name. Example:
3   0023   #   # number sign
or
3   0023   # sh   # number sign
## See Also
[groff(1)](http://localhost/phpMan.php/man/groff/1/markdown), [groff_diff(1)](http://localhost/phpMan.php/man/groffdiff/1/markdown), [grolj4(1)](http://localhost/phpMan.php/man/grolj4/1/markdown), [groff_font(5)](http://localhost/phpMan.php/man/grofffont/5/markdown), [lj4_font(5)](http://localhost/phpMan.php/man/lj4font/5/markdown)