PANOSE: An Ideal Typeface
Matching System for the Web

Author: Robert Stevahn
Date: 4/22/96
Revision: 1.01

Introduction

This document describes the PANOSE Typeface Matching System and proposes its use as a World Wide Web document standard.

PANOSE is the industry-standard font classification and matching system. It greatly reduces many of the font replacement problems arising from missing fonts and incompatible font names, particularly in cross-platform environments. PANOSE is used by many popular software vendors. PANOSE Partners include Lotus, Corel and Adobe.

PANOSE is particularly well suited to the World Wide Web, given the Web's emphasis on flexibility in document display, rather than on strict document layout conformance. PANOSE is now owned by Hewlett Packard Co., as a result of its recent acquisition of ElseWare Corp. While PANOSE is currently a commercial standard, HP is actively working to place it into the hands of an appropriate standards body.


Contents

  • Introduction
  • PANOSE Overview
  • PANOSE on the World Wide Web
  • PANOSE Partners
  • PANOSE History and Future
  • PANOSE Architecture
  • Glossary
  • References
  • Fine Print

  • PANOSE Overview

    PANOSE provides a trademark-free, objective, multi-platform mechanism for selecting and replacing fonts in documents. The system contains three main components.

    PANOSE numbers

    The key to the PANOSE system is the PANOSE Typeface Classification Number, a compact 10-byte description of a font's critical visual characteristics, such as contrast, weight, and serif style. PANOSE numbers are stored in TrueType fonts from many leading font foundries, and in files created by PANOSE-aware applications. The ten classification attributes are:

    1. Family Kind The Family Kind digit is used to trigger additional, as yet undeveloped, extensions to the PANOSE classification system. In the current incarnation of PANOSE a large amount of information is stored for text and display faces for the purposes of font matching and replacement. Script and decorative fonts receive little classification, but enough to separate them from the text and display faces as well as from each other.
    2. Serif Style This digit describes the appearance of the serifs used in a font design and groups them into one of 14 general categories. Serif and sans serif faces are classified within this digit.
    3. Weight The Weight digit classifies the appearance of a font's stem thickness in relation to its height. It offers ten gradations, ranging from Very Light to Extra Black.
    4. Proportion The Proportion digit describes the relative proportions of the characters in the font. Distinguishes Monospaced from Proportional, Modern from Old Style, and Extended from Condensed.
    5. Contrast The Contrast digit describes the ratio between the thickest and narrowest points on the letter 'O.' The uppercase 'O' is used because it is generally of higher contrast than the other characters of the alphabet.
    6. Stroke Variation The Stroke Variation digit further details the contrast trait by describing the kind of transition that occurs as the stem thickness changes on rounded glyph shapes.
    7. Arm Style The Arm Style digit describes diagonal stems and the termination of open rounded letterforms. The uppercase 'A' and 'C,' along with other relevant characters, are used for this classification.
    8. Letterform The Letterform digit differentiates between normal and oblique fonts and describes the roundness of the character shapes.
    9. Midline The Midline digit describes the placement of the midline and the treatment of diagonal stem apexes.
    10. X-height The X-height digit describes the relative height of lowercase characters and the treatment of uppercase glyphs with diacritical marks.

    PANOSE Classification Procedures

    Classification Procedures are objective measurement techniques used to assign a PANOSE number to a font. Hewlett Packard's PANOSE Classification Guide, "The Grey Book," helps font vendors assign PANOSE numbers to their library. Hewlett Packard Co. also provides type classification and verification services. The following diagrams demonstrate some of the objective measurements used in assigning PANOSE numbers.

    PANOSE Mapper software

    The PANOSE Mapper software determines the closest possible font match on any given system by comparing the PANOSE numbers of the requested and available fonts. The individual PANOSE digits are compared, weighted by their typographic importance, and summed to provide a numerical visual distance. Typographic importance is derived by assigning weights to each digit; for example, a font's weight (regular, bold, demibold, etc.) is more important than its contrast (difference between thick and thin strokes).

    The PANOSE Mapper includes a database of registered PANOSE numbers for most common font names. This allows accurate replacements should a document only provide the missing font's name, or request a font without an embedded PANOSE number.


    PANOSE on the World Wide Web

    With the advent of Cascading Style Sheets, font selection and replacement has become an important issue for Web designers and User Agents alike.

    From the W3C CSS1 Working Draft of 20-Feb-96:

    " Unfortunately, there exists no well-defined and universally accepted taxonomy for classifying fonts, and terms that apply to one font family may not be appropriate for others. ... This specification suggests a liberal terminology for describing fonts, and a level of detail similar to common desktop publishing applications."

    PANOSE is a well defined and well accepted taxonomy for both font classification and font selection and replacement. The font replacement strategy embodied in the CSS1 Working Draft consists of a designer-specified list of font names, with reserved terms for generic font types. This places a considerable burden on the designer, and will often not result in best-case font replacement. It is also User Agent- and platform-dependent. Again, from the Working Draft:

    "Ideally, the style sheet designer should specify only one font, and the font manager should return the best alternative (perhaps by taking visual similarity, visual quality and performance into account). Unfortunately, current rendering environments do not offer this level of service, and it is beyond the style sheet mechanism to do so. Therefore, a prioritized list of alternative families can be supplied. This practice poses one problem: the UA must be able to determine if a font selection has been successful or not to know how far it should proceed in the list. One example: if the style sheet asks for 'Univers' and the window system is smart enough to suggest 'Helvetica' (which looks almost identical) as a replacement, is this a success or failure? This specification leaves the answer undefined for now."

    PANOSE addresses exactly this problem. It allows the style sheet designer to specify only a single font and returns the best alternative based on objective visual qualities. It obviates the need for a prioritized list of alternative families (which are only supported by the "font-family" tag, not the "font" tag). It also gives User Agents a platform-independent definition of "success" in font replacement.

    Implementation

    Although we will of course leave the implementation of PANOSE support to the appropriate entity, one could imagine simply appending an ASCII representation of the PANOSE number to the font name in appropriate style sheet properties, as follows:

    P {font-family: 'Times New Roman#2263545234'}
    BODY {font: 12pt/14pt 'Times New Roman#2263545234' small-caps}
    

    PANOSE digits can have values between 0 and 15, so a hexadecimal ASCII (0-9, A-F) representation would work quite well.

    This type of scheme could also work well with Microsoft Internet Explorer's face attribute extension to the FONT element, although to provide backward compatibility it may be necessary to use their font list feature like this:

    <FONT face="Times New Roman,#2263545234">Times New Roman or the next best thing.</FONT>
    

    The font-family style sheet property could also support PANOSE via the font list, but the font list has the disadvantage of being incompatible with the font property:

    P {font-family: 'Times New Roman' #2263545234}
    

    Perhaps the font property itself could be extended to support PANOSE, the disadvantage being a different syntax than that used with font-family and face:

    Value: font-size[/line-height]? font-family font-weight? font-style? panose? 
    

    font-weight and font-style

    The font-weight attribute described in the CSS1 Working Draft works very nicely with PANOSE. While PANOSE's Weight classification is a superset of the one described in the Working Draft, a mapping between the two is straightforward. PANOSE can also easily work with the relative weight feature (e.g. +1).

    The italic/oblique aspect of the font-style attribute is also easily handled by PANOSE. Small-caps, on the other hand, is outside the scope of PANOSE 1.0, which considers small caps to be a stylistic variant.

    Key Benefits

    Key PANOSE benefits for the World Wide Web include:

    As a simple, fast, small industry standard with a sound technical basis, PANOSE is an appropriate technology for the World Wide Web.

    Business Issues

    As mentioned in the Introduction, PANOSE is currently a commercial standard owned by Hewlett Packard Co. PANOSE Partners have licensed the technology from Hewlett Packard Co. What does this mean for the World Wide Web? If adopted as a World Wide Web standard, the PANOSE technology would currently have to be licensed by each User Agent that wants to support PANOSE (unless they want to create their own equivalent to the Core Mapper Services and MAI). Hewlett Packard Co. is not interested in profiting from PANOSE, and will negotiate licenses on a time and materials basis.


    PANOSE Partners

    Current PANOSE Partners include Adobe Corp. (PageMaker), AGFA, Bitstream Inc., Caere Corp., Corel Corp. (CorelDRAW), Hewlett Packard Co. (FontSmart), Lotus Development Corp. (Word Pro), Microsoft Corp., No Hands Inc. (Common Ground).


    PANOSE History and Future

    1988: Red Book

    In 1998, A Manual of Comparative Typography, by Benjamin Bauermeister, was published by Van Nostrand Reinhold Company Inc. (ISBN 0-442-21187-2). This initial version of the PANOSE system was comprised of seven classification categories and was based on subjective visual parameters.

    1990: Microsoft interested

    Microsoft was interested in PANOSE as a trademark-free method of mapping between its Monotype fonts and the PostScript 35.

    1990: objective classification

    The Weight category was added, and the Arm Style category was split off from the Stroke Variation category, bringing the number of classification categories to 9. Objective classification criteria were also added at this time.

    1991: stylistic derivatives (Latin)

    The Family Kind category was added, completing the PANOSE 1.0 definition.

    1992: kanji support

    Kanji is not supported by current PANOSE tools, but some work has been done both on classifying kanji typefaces and on "transliteral mapping," which, for example, given a kanji font, suggests the most appropriate Latin typeface to use with it. Transliteral Mapping could also be used to match between, say, decorative or script faces and text equivalents.

    1993: Mapper Application Interface

    The Mapper Application Interface (MAI) was developed.

    1993: PANOSE 2.0

    PANOSE 2.0 is a second generation PANOSE architecture which is the basis for Hewlett Packard's Infinifont font synthesis technology. It stores actual measurement data rather than bucketing it, which allows the matching system to use mathematical distance rather than penalty tables. It would be better capable of driving an Adobe Multiple Master font, although PANOSE 1.0 can also deal with morphable fonts by means of the "any" value in PANOSE digits. PANOSE 2.0 is not complete as a font matching and replacement technology, but is an obvious next step for future PANOSE development.

    PANOSE Today

    Today, PANOSE continues to enjoy broad support across both the software and type industries. We continue to classify significant numbers of fonts, and continue to negotiate PANOSE licenses with software vendors. PANOSE remains a key part of Hewlett Packard's font matching and substitution strategy.

    The Future of PANOSE

    Hewlett Packard hopes to find a standards body interested in making PANOSE an open standard. The Unicode Consortium is one such possibility. It would be up to this body to continue development of PANOSE. The work done on PANOSE 2.0 so far would be a good starting point for a second generation font matching and replacement system.

    Hewlett Packard continues to rely on PANOSE technology for current and future products. Although we prefer to make PANOSE an open standard, we will continue to develop and support it both for our own use and for use by PANOSE Partners as long as the need exists.


    PANOSE Architecture

    The PANOSE Mapper software consists of the Core Mapper Services, which contains the actual PANOSE mapper, and the Mapper Application Interface (MAI), which provides additional services for developers.

    As shown in the accompanying illustration, the application or operating system requests a font match from the MAI, which first looks for an exact name match to the request. If none is found, it scans its exception database for custom overrides provided by the user. If there is no override, it uses the Core Mapper Services to locate the best substitute. A results dialog box shows the user the closest matching font and provides the option to change the suggested replacement (stored in the exceptions database). We should point out that, while any PANOSE implementation would probably want to make use of the Core Mapper Services, use of the MAI is optional.

    The MAI provides a user interface for all components of the PANOSE mapping algorithm:

    The MAI includes sample Windows and Macintosh dialogs, database services for retrieving PANOSE numbers, and an API that makes it simple to integrate PANOSE mapping into an application or operating system. All code is ANSI 'C'.


    Glossary

    Condensed
    A kind of milk, or a font with narrower letters than in the normal treatment. Often used to fit headlines in a relatively small space.
    CSS1
    Cascading Style Sheets, Level 1, a W3C style sheet specification.
    Decorative
    A decorative font is a particularly fanciful rendition of the Latin alphabet, such as Bitstream's Flintstones or Winter Holiday fonts. This corresponds to the CSS1 Working Draft's "Fantasy" generic font family name.
    Diacritical marks
    Marks added to letters to indicate a specific phonetic value, as in Á (A acute) and Ö (O umlaut).
    Display
    A display font is one designed for use primarily at larger sizes, as in headlines.
    Extended
    An extended font contains letters which are wider than they are tall.
    Family
    A font family is a collection of closely related typefaces. Most typical font families include bold and italic or oblique treatments in addition to the normal treatment.
    Foundry
    A type or font foundry is a company that produces type. The term "foundry" harkens back to the days of metal type.
    Glyph
    A glyph is a specific rendition of a character. The term "character" indicates a more abstract notion than does the term "glyph." For example, the 'A' glyph of Helvetica is quite distinct from the 'A' glyph of Times New Roman, but the character 'A' is the same in either case.
    Kanji
    Generically used to describe the pictographic symbols used in Chinese, Japanese and Korean. Specifically used to refer to the Japanese set of Chinese-derived pictographs.
    Latin
    The Latin alphabet is the set of characters used by most modern western languages. Contrast with kanji, Greek and Cyrillic.
    MAI
    Mapper Application Interface, the PANOSE programming and user interface component.
    Mapper Application Interface
    The PANOSE programming and user interface component.
    Midline
    The midline is the horizontal stroke of letters such as 'A' and 'H,' or the middle horizontal stroke of the 'E.'
    Modern
    Modern typefaces lose the strict geometric design that characterizes Old Style fonts, resulting in less varied widths.
    Monospaced
    A font whose letters all have identical width, such as Courier, is a monospaced font.
    Oblique
    Slanting or sloping. An oblique font is one which is slanted to the right. Italic fonts are generally both oblique and more calligraphic than upright or Roman fonts. "Italic" implies oblique, while the reverse is not true.
    Old Style
    Old Style typefaces are distinguished by the strictly geometric proportions of their letters, based on three basic shapes: the square, circle and triangle. Typically, an Old Style 'E' will be half the width of the 'O.'
    PANOSE
    The industry-standard font classification and matching technology.
    Pictorial
    As used in PANOSE, a pictorial font is a font made up of pictorial symbols, such as Zapf Dingbats or Wingdings. These are frequently called "Pi fonts" in the type industry.
    Proportional
    A font whose letters have varying widths, such as Times Roman, is a proportional font.
    Sans Serif
    A sans serif font is a font, such as Helvetica, which contains no serifs.
    Script
    Script fonts look like cursive handwriting, such as Zapf Chancery, Coronet, etc. This corresponds to the CSS1 Working Draft's "Cursive" generic font family name.
    Serif
    A serif is a fine line or other small decorative flourish positioned on the ends of the main strokes of the letters, as in Times Roman.
    Stem
    The principal strokes of a letter as in 'I' or in 'H' (which has two).
    Text
    A text font is one designed for use in normal blocks of text. Contrast with display fonts.
    TrueType
    A ubiquitous font format initially developed by Apple Computer, Inc., popularized by Apple and Microsoft, and supported by most font foundries and many software and hardware vendors.
    X-height
    The x-height is the height of the lowercase letters in relation to the uppercase letters. A font with a large x-height has relatively large lowercase letters.

    References

    A Manual of Comparative Typography, Benjamin Bauermeister, Van Nostrand Reinhold, 1988. ISBN 0-442-21187-2.

    PANOSE Classification Guide, Version 1.2, Hewlett Packard Co., 1992

    Cascading Style Sheets, level 1, W3C Working Draft, 20-Feb-96


    Fine Print

    Copyright ©1996, Hewlett Packard Co. All rights reserved. FontSmart, Infinifont and PANOSE are registered trademarks of Hewlett Packard Co. Other software and typeface names are trademarks or registered trademarks of their respective holders and are used here for identification only.