|
Name | Description | Limitations | Files | See also | COLOPHON |
|
|
|
lj4_font(5) File Formats Manual lj4_font(5)
lj4_font - groff fonts for use with devlj4
Nominally, all Hewlett-Packard LaserJet 4-series and newer
printers have the same internal fonts: 45 scalable fonts and one
bitmapped Lineprinter font. The scalable fonts are available in
sizes between 0.25 points and 999.75 points, in 0.25-point
increments; the Lineprinter font is available only in 8.5-point
size.
The LaserJet font files included with groff assume that all
printers since the LaserJet 4 are identical. There are some
differences between fonts in the earlier and more recent printers,
however. The LaserJet 4 printer used Agfa Intellifont technology
for 35 of the internal scalable fonts; the remaining 10 scalable
fonts were TrueType. Beginning with the LaserJet 4000-series
printers introduced in 1997, all scalable internal fonts have been
TrueType. The number of printable glyphs differs slightly between
Intellifont and TrueType fonts (generally, the TrueType fonts
include more glyphs), and there are some minor differences in
glyph metrics. Differences among printer models are described in
the PCL 5 Comparison Guide and the PCL 5 Comparison Guide Addendum
(for printers introduced since approximately 2001).
LaserJet printers reference a glyph by a combination of a
256-glyph symbol set and an index within that symbol set. Many
glyphs appear in more than one symbol set; all combinations of
symbol set and index that reference the same glyph are equivalent.
For each glyph, hpftodit(1) searches a list of symbol sets, and
selects the first set that contains the glyph. The printing code
generated by hpftodit is an integer that encodes a numerical value
for the symbol set in the high byte(s), and the index in the low
byte. See groff_font(5) for a complete description of the font
file format; symbol sets are described in greater detail in the
PCL 5 Printer Language Technical Reference Manual.
Two of the scalable fonts, Symbol and Wingdings, are bound to
256-glyph symbol sets; the remaining scalable fonts, as well as
the Lineprinter font, support numerous symbol sets, sufficient to
enable printing of more than 600 glyphs.
The metrics generated by hpftodit assume that the DESC file
contains values of 1200 for res and 6350 for unitwidth, or any
combination (e.g., 2400 and 3175) for which
res × unitwidth = 7620000. Although HP PCL 5 LaserJet printers
support an internal resolution of 7200 units per inch, they use a
16-bit signed integer for cursor positioning; if devlj4 is to
support U.S. ledger paper (11 in × 17 in; in = inch), the maximum
usable resolution is 32767 ÷ 17, or 1927 units per inch, which
rounds down to 1200 units per inch. If the largest required paper
size is less (e.g., 8.5 in × 11 in, or A5), a greater res (and
lesser unitwidth) can be specified.
Font metrics for Intellifont fonts were provided by Tagged Font
Metric (TFM) files originally developed by Agfa/Compugraphic. The
TFM files provided for these fonts supported 600+ glyphs and
contained extensive lists of kerning pairs.
To accommodate developers who had become accustomed to TFM files,
HP also provided TFM files for the 10 TrueType fonts included in
the LaserJet 4. The TFM files for TrueType fonts generally
included less information than the Intellifont TFMs, supporting
fewer glyphs, and in most cases, providing no kerning information.
By the time the LaserJet 4000 printer was introduced, most
developers had migrated to other means of obtaining font metrics,
and support for new TFM files was very limited. The TFM files
provided for the TrueType fonts in the LaserJet 4000 support only
the Latin 2 (ISO 8859-2) symbol set, and include no kerning
information; consequently, they are of little value for any but
the most rudimentary documents.
Because the Intellifont TFM files contain considerably more
information, they generally are preferable to the TrueType TFM
files even for use with the TrueType fonts in the newer printers.
The metrics for the TrueType fonts are very close, though not
identical, to those for the earlier Intellifont fonts of the same
names. Although most output using the Intellifont metrics with
the newer printers is quite acceptable, a few glyphs may fail to
print as expected. The differences in glyph metrics may be
particularly noticeable with composite parentheses, brackets, and
braces used by eqn(1). A script, located in /usr/local/share/
groff/1.23.0/font/devlj4/generate, can be used to adjust the
metrics for these glyphs in the special font “S” for use with
printers that have all TrueType fonts.
At the time HP last supported TFM files, only version 1.0 of the
Unicode standard was available. Consequently, many glyphs lacking
assigned code points were assigned by HP to the Private Use Area
(PUA). Later versions of the Unicode standard included code
points outside the PUA for many of these glyphs. The HP-supplied
TrueType TFM files use the PUA assignments; TFM files generated
from more recent TrueType font files require the later Unicode
values to access the same glyphs. Consequently, two different
mapping files may be required: one for the HP-supplied TFM files,
and one for more recent TFM files.
/usr/local/share/groff/1.23.0/font/devlj4/DESC
describes the lj4 output device.
/usr/local/share/groff/1.23.0/font/devlj4/F
describes the font known as F on device lj4.
/usr/local/share/groff/1.23.0/font/devlj4/generate/Makefile
is a make(1) script that uses hpftodit(1) to prepare the
foregoing font description files from HP TFM data; in can
be used to regenerate the groff font descriptions in the
event the TFM files are updated.
/usr/local/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/local/share/groff/1.23.0/font/devlj4/generate/special.map
/usr/local/share/groff/1.23.0/font/devlj4/generate/symbol.map
/usr/local/share/groff/1.23.0/font/devlj4/generate/text.map
/usr/local/share/groff/1.23.0/font/devlj4/generate/wingdings.map
map MSL indices and HP Unicode Private Use Area assignments
to groff special character identifiers.
groff(1), hpftodit(1), grolj4(1), groff_font(5)
This page is part of the groff (GNU troff) project. Information
about the project can be found at
⟨http://www.gnu.org/software/groff/⟩. If you have a bug report for
this manual page, see ⟨http://www.gnu.org/software/groff/⟩. This
page was obtained from the project's upstream Git repository
⟨https://git.savannah.gnu.org/git/groff.git⟩ on 2025-08-11. (At
that time, the date of the most recent commit that was found in
the repository was 2025-08-09.) If you discover any rendering
problems in this HTML version of the page, or you believe there is
a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
[email protected]
groff 1.23.0.rc1.1931-35c9b 5 February 2022 lj4_font(5)