X logical font description

Jump to: navigation, search
The xfontsel program allows the user to view the glyphs of a font

X logical font description (XLFD) is a font standard used by the X Window System. Modern X software typically relies on the newer Fontconfig system instead, but XLFDs are still supported in current X window implementations for compatibility with legacy software.

XLFD is intended to support:

  • unique, descriptive font names that support simple pattern matching
  • multiple font vendors, arbitrary character sets, and encodings
  • naming and instancing of scalable and polymorphic fonts
  • transformations and subsetting of fonts
  • independence of X server and operating or file system implementations
  • arbitrarily complex font matching or substitution
  • extensibility

One prominent XLFD convention is to refer to individual fonts including any variations using their unique FontName. It comprises a sequence of fourteen hyphen-prefixed, X-registered fields:

  1. FOUNDRY: Type foundry - vendor or supplier of this font
  2. FAMILY_NAME: Typeface family
  3. WEIGHT_NAME: Weight of type
  4. SLANT: Slant (upright, italic, oblique, reverse italic, reverse oblique, or "other")
  5. SETWIDTH_NAME: Proportionate width (e.g. normal, condensed, narrow, expanded/double-wide)
  6. ADD_STYLE_NAME: Additional style (e.g. (Sans) Serif, Informal, Decorated)
  7. PIXEL_SIZE: Size of characters, in pixels; 0 (Zero) means a scalable font
  8. POINT_SIZE: Size of characters, in tenths of points
  9. RESOLUTION_X: Horizontal resolution in dots per inch (DPI), for which the font was designed
  10. RESOLUTION_Y: Vertical resolution, in DPI
  11. SPACING: monospaced, proportional, or "character cell"
  12. AVERAGE_WIDTH: Average width of characters of this font; 0 means scalable font
  13. CHARSET_REGISTRY: Registry defining this character set
  14. CHARSET_ENCODING: Registry's character encoding scheme for this set

The following sample is for a 75-dpi, 12-point, Charter font:

-bitstream-charter-medium-r-normal--12-120-75-75-p-68-iso8859-1[65 70 80_90]

(which also tells the font source that the client is interested only in characters 65, 70, and 80-90.)