FONT(6)                                                   FONT(6)

     NAME
          font, subfont - external format for fonts and subfonts

     SYNOPSIS
          #include <libg.h>

     DESCRIPTION
          Fonts and subfonts are described in cachechars(2).

          External fonts are described by a plain text file that can
          be read using rdfontfile. The format of the file is a header
          followed by any number of subfont range specifications.  The
          header contains two numbers: the height and the ascent, both
          in pixels.  The height is the inter-line spacing and the
          ascent is the distance from the top of the line to the base-
          line.  These numbers are chosen to display consistently all
          the subfonts of the font.  A subfont range specification
          contains two or three numbers and a file name.  The numbers
          are the inclusive range of characters covered by the sub-
          font, with an optional starting position within the subfont,
          and the file name names an external file suitable for
          rdsubfontfile. The minimum number of a covered range is
          mapped to the specified starting position (default zero) of
          the corresponding subfont.  If the subfont file name does
          not begin with a slash, it is taken relative to the direc-
          tory containing the font file.  Each field must be followed
          by some white space.  Each numeric field may be C-format
          decimal, octal, or hexadecimal.

          External subfonts are represented in a more rigid format
          that can be read and written using rdsubfontfile and
          wrsubfontfile (see subfalloc(2)). The format for subfont
          files is: a bitmap containing character images, followed by
          a subfont header, followed by character information.  The
          bitmap has the format for external bitmap files described in
          bitmap(6). The subfont header has 3 decimal strings: n,
          height, and ascent.  Each number is right-justified and
          blank padded in 11 characters, followed by a blank.  The
          character info consists of n+1 6-byte entries, each giving
          the Fontchar x (2 bytes, low order byte first), top, bottom,
          left, and width.  The x field of the last Fontchar is used
          to calculate the bitmap width of the previous character; the
          other fields in the last Fontchar are irrelevant.

          Note that the convention of using the character with value
          zero (NUL) to represent characters of zero width (see
          bitblt(2)) means that fonts should have, as their zeroth
          character, one with non-zero width.

     FILES

     Page 1                       Plan 9            (printed 11/10/24)

     FONT(6)                                                   FONT(6)

          /lib/font/bit/*  font directories

     SEE ALSO
          graphics(2), bitblt(2), cachechars(2), subfalloc(2)

     Page 2                       Plan 9            (printed 11/10/24)