lj4_font(5) — Linux manual page
lj4_font(5) File Formats Manual lj4_font(5)
Name
lj4_font - groff fonts for use with devlj4
Description
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.
Limitations
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.
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.
See also
groff(1), hpftodit(1), grolj4(1), groff_font(5)
COLOPHON
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 2024-06-14. (At
that time, the date of the most recent commit that was found in
the repository was 2024-06-10.) 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
man-pages@man7.org