DtStdInterfaceFontNames(5)

DtStdInterfaceFontNames - CDE Standard Interface Font Names

Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.19.

     NAME
          DtStdInterfaceFontNames - CDE Standard Interface Font Names

     SYNOPSIS
          The CDE Standard Interface Font Names are a set of generic X
          Window System font names, needed by the CDE GUI itself, that
          are used for user interface elements such as button labels,
          window titles and text fields.  These names, for seven sizes
          of two typefaces, must exist on all CDE systems, and they
          should be provided in any X server product on which CDE
          applications are expected to run.  Seven sizes of a third
          typeface are recommended.  They are typically mapped to
          existing fonts on the system using the font alias mechanism,
          although this method is not required.

     DESCRIPTION
          CDE 1.0 does not come with a common set of fonts on all
          systems, and it must be able to run on X servers and X
          terminals from non-CDE vendors if those vendors so desire.
          Therefore, there are a standard set of ``generic'' font
          names and sizes that each CDE vendor makes available on
          their CDE systems and that X server vendors may make
          available on their X servers and terminals.  The names map
          to existing fonts on each vendor's system and may vary from
          vendor to vendor.

          The CDE Standard Interface Font Names described here allow
          clients making up the CDE desktop, such as dtterm(1) and a
          single set of default fonts in their app-defaults files,
          without concern for the system or X server on which CDE is
          running.  (The CDE Standard Application Font Names,
          described in DtStdAppFontNames(5), provide a similar
          mechanism for applications running on the CDE desktop.)

        Background
          Interface fonts are designed by user interface experts for
          the narrow purpose of making the menus, labels and fields of
          a graphical user interface highly readable.  They are
          usually finely hand-tuned bitmapped fonts, intended for use
          on visual displays only and not on printers, and many of the
          glyphs have been specially modified for this purpose.
          Interface fonts can be contrasted with application fonts,
          which are the fonts used within an application running on
          the CDE desktop.  Interface fonts come in a restricted set
          of styles and are used for short strings of text, whereas
          application fonts usually come in a variety of designs,
          styles and weights and are used for emphasis, cross-
          references, section headers, and so forth.

        Rationale
          Common font names are required to prevent CDE clients such
          as dtterm(1) from needing different app-defaults files on
          each system.  In addition, any X server or X terminal vendor
          may ensure that the CDE desktop can run on their X server by
          mapping these standard names to fonts of the corresponding
          style on their individual X systems.

          Interface fonts are needed because of user interface and
          cognitive research that has examined the readability of
          various fonts on the display screens in use today and found
          that many fine adjustments (for example, for centering,
          baseline, height and alignment) must be made to characters
          in a font to make them clear, distinguishable and consistent
          when used for the interface objects of a GUI.  And by using
          hand-tuned interface fonts for the GUI objects, the desktop
          can achieve a very clean, crisp visual appearance.

          Interface fonts are broken into 2 categories:  system and
          user.  Cognitive research has shown that this distinction is
          important for the usability and readability of GUIs.  System
          fonts are those used when the system is presenting
          information to the user (for example, in buttons).  User
          fonts are those used for text that a user enters into the
          system (for example, for a text field or terminal emulator).

        XLFD Field Values for the Standard Interface Font Names
          These standard names are available using the X Window System
          XLFD font naming scheme.  There are three aspects to the
          standard names:

             o The underlying font on each system, or X server
               platform, to which a standard name is mapped, typically
               will be different on each system.

             o The standard name itself, a full XLFD name mapped to
               the underlying font, may be different on each system in
               some of the XLFD fields.  However, most of the fields
               are the same from system to system, allowing the
               patterns (described next) to be the same.

             o The font resource pattern containing the * wildcards,
               used in app-defaults files, which will match the full
               XLFD name of the standard name, is the same across all
               systems, for a given use in an app-defaults file.

          Each CDE or X server vendor implementing this specification
          must provide full XLFD names for the standard names, mapped
          to system-dependent underlying fonts, so that the XLFD
          patterns used in CDE application app-defaults files will
          always match one of the full XLFD names provided.

          The Standard Interface Font Names are identified by the
          presence of the following XLFD field name values:

             o FOUNDRY is dt

             o FAMILY_NAME is either interface system or interface
               user (there is a single space between the two words in
               each family name)

          In addition, the other fields of the XLFD names defining the
          standard names are constrained as follows:

             o WEIGHT_NAME is either medium or bold

             o SLANT is always r

             o SETWIDTH_NAME is always normal

             o SPACING is p or m (it must be m for interface user
               fonts, and should be p for interface system fonts,
               although m is acceptable)

             o ADD_STYLE_NAME contains both a nominal size value in
               the range xxs to xxl (see below), as well as either
               sans for sans serif fonts or serif for serif, if
               appropriate for the underlying font

             o The numeric fields (PIXEL_SIZE, POINT_SIZE,
               RESOLUTION_X, RESOLUTION_Y, and AVERAGE_WIDTH) must
               contain the same values as the underlying font.

             o CHARSET_REGISTRY and CHARSET_ENCODING are not
               specified; the standard names may be implemented for
               any CDE locale.

          Although the sans and serif values in the ADD_STYLE_NAME
          field are not required by the XLFD font convention, they are
          always part of the CDE Standard Font Names when the
          underlying fonts are characterized as serif or sans serif.
          However, this document imposes no restriction on whether the
          interface fonts are serif or sans serif.  The relevant
          attribute must be coded in the ADD_STYLE_NAME field.  Thus,
          for example, the standard names for Japanese fonts, which
          are not characterized as being serif or sans serif, would
          not include this designation in the ADD_STYLE_NAME field.

        Restricted Set of Styles Available
          Unlike the Standard Application Font Names, only a limited
          set of styles is available in the Standard Interface Font
          Names.  The styles available represent the minimum set
          currently considered necessary for the desktop GUI needs:

             o a medium weight of an interface system font, preferably
               proportionally spaced (but mono-spaced is acceptable if
               appropriate for the locale)
             o a medium weight of an interface user font, always
               mono-spaced

             o a bold weight of an interface user font, always mono-
               spaced (the standard font names for this generic
               typeface are recommended if available for the targeted
               fonts and locale, but are not required)

        Named Set of Point Sizes Available
          In addition, the set of seven point sizes for each of the
          three styles that are part of this document are ``named''
          point sizes, using string values in the ADD_STYLE_NAME
          field.  Thus, XLFD patterns matching these names match a
          size based on the named size, not on a numeric size, even
          though the latter does exist in the XLFD name.  These named
          sizes are used because the exact size of an interface font
          is less important than its nominal size, and implementation
          differences for the hand-tuned interface fonts do not allow
          common numeric point sizes to be assured across systems.
          The seven nominal sizes are as follows:

             xxs   extra extra small

             xs    extra small

             s     small

             m     medium

             l     large

             xl    extra large

             xxl   extra extra large

          The goal of these named sizes is to provide enough fonts so
          that both the variety of display monitor sizes and
          resolutions that CDE will run on, and the range of user
          preferences for comfortably reading button labels, window
          titles and so forth, can be accommodated in the GUI.  Thus,
          both the smallest size, xxs, and the largest size, xxl, are
          meant to be reasonable sizes for displaying and viewing the
          CDE desktop on common displays and X terminals; they are not
          meant to imply either hard-to-read fine print or headline-
          sized display type.

          These named size values must occur first in the
          ADD_STYLE_NAME field, before any use of the values serif or
          sans (one of which is always required when the underlying
          font can be so characterized) and before any other
          additional stylistic attribute that might be appropriate.
          This is important when specifying wild-carded patterns in a
          resource specification for these fonts, since whether the
          underlying font these names are mapped to is serif or sans
          serif is not specified by CDE, and the match must work for
          all XLFD names provided by CDE system vendors or other
          X server vendors.

        Example XLFD Patterns for the Standard Names
          Using these values, the XLFD pattern

               -dt-interface*-*

          logically matches the full set of XCDE Standard Interface
          Font Names.  (Note that no specific X server behavior is
          implied).

          The full set of 21 CDE Standard Interface Font Names can
          also be represented, in a more meaningful way, as follows:

               -dt-interface system-medium-r-normal-*-*-*-*-*-*-*-iso8859-1
               -dt-interface user-medium-r-normal-*-*-*-*-*-m-*-iso8859-1
               -dt-interface user-bold-r-normal-*-*-*-*-*-m-*-iso8859-1

          The full set of patterns, usable in app-defaults files, for
          all seven sizes for the system font, for example, is:

               -dt-interface system-medium-r-normal-xxs*-*-*-*-*-*-*-iso8859-1
               -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-iso8859-1
               -dt-interface system-medium-r-normal-s*-*-*-*-*-*-*-iso8859-1
               -dt-interface system-medium-r-normal-m*-*-*-*-*-*-*-iso8859-1
               -dt-interface system-medium-r-normal-l*-*-*-*-*-*-*-iso8859-1
               -dt-interface system-medium-r-normal-xl*-*-*-*-*-*-*-iso8859-1
               -dt-interface system-medium-r-normal-xxl*-*-*-*-*-*-*-iso8859-1

          These patterns could be used in a resource file and will
          match the full CDE Standard Interface Names for Latin-1
          locales on all CDE, or complying X server, systems.

          Note in these wild-carded XLFD names that the ADD_STYLE_NAME
          field has a pattern, such as xxs*, and that the pattern is
          partly a string (xxs) and partly the pattern-matching
          character *.  The full XLFD name this pattern matches-the
          XLFD name implementing the Standard Interface name-will
          often contain sans or serif in the field, after the xxs and
          a space, and so the * is essential to match that sans or
          serif string (and any additional style attribute string that
          might be in the underlying name).  Note also that the
          SPACING field is wild-carded in the pattern for the system
          font, since either p or m may appear in the standard name
          being matched.

        Implementation of Font Names
          Each CDE system vendor and X server vendor provides mappings
          of its own fonts to XLFD names as described by this
          document.  The actual XLFD names will vary from system to
          system, just as the fonts they are mapped to, since they
          contain some of the same values as the XLFD name of the
          underlying font.  What does not vary is the behavior:  the
          common patterns in which only specified fields are used will
          match each system's standard names.  This is guaranteed by
          the field specifications given earlier.

          There is no precise specification of how the named sizes xxs
          to xxl are mapped to sizes of underlying fonts in each
          system or X server product, although each size must be equal
          to or larger than the previous size.  Nonetheless, some
          guidelines are appropriate.

          Interface fonts have been developed because of human factors
          research on visual clarity of text on displays, and this has
          been done in the context of the display technology typically
          available today, mostly in the 100 dots per inch (DPI)
          range.  That, and the use of standard point sizes (10, 12,
          14, 18) in the graphics arts, have resulted in the
          development in the industry of hand-tuned bitmapped fonts
          for a set of ``pixel heights'' that are likely to be used
          for these standard names.  However, making the CDE desktop
          usable with a range of point sizes effectively means, in
          addition to legibility for the user, that the various CDE
          applications fit ``appropriately'' on the screen using those
          point sizes.  This means, for example, that two application
          windows can appear side by side on a typical display or that
          a certain number of buttons can appear across the screen.

          Thus, these guidelines are expressed not only in pixel
          sizes, to reflect current usage, but also in percentage of
          monitor height.  This allows them to remain appropriate as
          technological evolution improves display resolution and
          monitor size (for example, wall-mounted monitors).  The
          ideal set of sizes would form a linear progression from the
          smallest (xxs) to the largest (xxl), although this is not
          achievable.  The basic guideline is that the xxs font should
          be, in pixels, no less than 0.9% of the height of the
          display resolution, in pixels; the xxl font should be no
          more than 2.6% of the height.

          As an approximate example that does not represent any
          existing mapping of fonts to a display, this table shows how
          the named sizes might map to real bitmapped fonts of a given
          pixel size, and how large those sizes are in percentage and
          point size terms:

             _____________________________________________________
             |                                                    |
             |Sample Range of Named Sizes on a 1280x1024 Display  |
             |____________________________________________________|
             |named |  number   |   size as %    | point size on  |
             |size  | of pixels | of 1024 height | 100 DPI screen |
             |______|___________|________________|________________|
             |xxs   |    10     |     0.98%      |       7.2      |
             |xs    |    12     |     1.12%      |       8.7      |
             |s     |    14     |     1.37%      |      10.1      |
             |m     |    17     |     1.66%      |      12.3      |
             |l     |    20     |     1.95%      |      14.6      |
             |xl    |    23     |     2.25%      |      16.6      |
             |xxl   |    26     |     2.54%      |      18.8      |
             |______|___________|________________|________________|

          Thus, the following requirements are placed on each
          implementation of the Standard Interface Font Names:

             o The names must be fully specified XLFD names, without
               wild cards.

             o The WEIGHT_NAME, SLANT, SETWIDTH_NAME, SPACING,
               CHARSET_REGISTRY and CHARSET_ENCODING fields must
               contain valid values as defined previously and must
               match those in the underlying font.

             o The ADD_STYLE_NAME field must contain both a named size
               (for example, xxs) and, if appropriate, either the
               serif or sans designation, whichever matches the
               underlying font; any additional words about the style
               of the underlying font, if defined for the underlying
               font, must also be used.  The named size must be first
               in the field, and must be separated from any following
               word in the field with a blank.

             o The named sizes xxs through xxl must be mapped to fonts
               that are progressively larger than or equal to the
               previous one in the list.  Thus, several standard names
               with adjacent sizes (for example, xxs and xs) may be
               mapped to the same font (for example, if there is not
               enough variety in sizes in the underlying fonts).

             o The implemented names should attempt to meet the
               guidelines discussed in the previous paragraph and
               table.

          For example, system A is assumed to be using the following
          sans serif font for the extra small system font:

               -bitstream-swiss-medium-r-normal--11-90-85-85-p-81-iso8859-1

          System B is using the following serif font for the extra
          small system font:

               -vendorb-ersatz-medium-r-normal-Expert-8-80-75-75-m-72-iso8859-1

          Their respective standard names would be implemented on
          their systems as:

          -dt-interface system-medium-r-normal-xssans-11-90-85-85-p-81-iso8859-1
          -dt-interface system-medium-r-normal-xsserif Expert-8-80-75-75-m-72-iso8859-1

          Defined this way, both names will match the single XLFD
          pattern used in a common app-defaults file:

               -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-iso8859-1

        Default CDE Mapping of the Standard Interface Font Names
          There is no default mapping of these interface names to
          X11R5 fonts; the mapping is implementation-specific.

     USAGE
          A CDE desktop client developer will code a single app-
          defaults file to specify font resources for their client and
          use it across all CDE systems.  Since the FOUNDRY,
          FAMILY_NAME, WEIGHT_NAME, SLANT and SETWIDTH_NAME fields of
          the standard names are the same across different systems,
          these values can be used in the resource specification in
          the app-defaults file.  However, other fields
          (ADD_STYLE_NAME, PIXEL_SIZE, POINT_SIZE, RESOLUTION_X,
          RESOLUTION_Y, SPACING and AVERAGE_WIDTH) will vary across
          systems, and so must be wild-carded in the resource
          specification (ADD_STYLE_NAME is partially wild-carded).  As
          was shown in the previous example:

               -dt-interface system-medium-r-normal-xs*-*-*-*-*-*-*-iso8859-1

          is an XLFD pattern, used in a single resource specification,
          that matches a single standard name on different CDE or
          X server platforms.  (And if the last 2 fields,
          CHARSET_REGISTRY and CHARSET_ENCODING, were wild-carded,
          then the pattern could work across locales as well.)  Note
          that the named size (xs in this example) is part of the
          pattern, but the serif/sans serif designation is not; this
          is required to obtain the desired nominal size (whatever it
          may be in the mapped font), while still matching either
          serif or sans serif in the standard name.

          Note that if a CDE desktop application tries to open a font
          using one of these standard names, and the X server does not
          know about these names, the application will usually fall
          back on using the fixed and variable font aliases that are
          typically provided in all X servers.  When this happens, the
          CDE desktop will be more difficult to use, visually, than if
          its expected font names were available.

     SEE ALSO
          dtstyle(1), dtterm(1), DtStdAppFontNames(5)

     NOTES
          There is no requirement on a CDE system or X server vendor
          to implement these standard names in a particular way.
          Several mechanisms are possible:  duplicate font files with
          altered naming attributes, X11R5 font aliases, or vendor-
          specific mechanisms.  The only requirement is that an XLFD
          pattern, written with attributes taken from the set that
          define the standard names, can be successfully used to open
          a font with the Xlib function XLoadFont; and, specifically,
          the Xlib function XListFonts need NOT return the same XLFD
          name for the pattern on different CDE or X server systems.