DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats)
NAME [Toc] [Back]
DtStdInterfaceFontNames - CDE Standard Interface Font Names
DESCRIPTION [Toc] [Back]
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.
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 [Toc] [Back]
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 [Toc] [Back]
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
- 1 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
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 [Toc] [Back]
These standard names are available using the X Window System XLFD font
naming scheme. There are three aspects to the standard names:
+ The underlying font on each system, or X server platform, to
which a standard name is mapped, typically will be different on
each system.
+ 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.
+ 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 systemdependent
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:
+ FOUNDRY is dt
+ 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:
- 2 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
+ WEIGHT_NAME is either medium or bold
+ SLANT is always r
+ SETWIDTH_NAME is always normal
+ 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)
+ 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
+ The numeric fields ( PIXEL_SIZE, POINT_SIZE, RESOLUTION_X,
RESOLUTION_Y, and AVERAGE_WIDTH) must contain the same values as
the underlying font.
+ 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 [Toc] [Back]
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:
+ a medium weight of an interface system font, preferably
proportionally spaced (but mono-spaced is acceptable if
appropriate for the locale)
+ a medium weight of an interface user font, always mono-spaced
+ 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 [Toc] [Back]
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
- 3 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
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 handtuned
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 [Toc] [Back]
Using these values, the XLFD pattern
-dt-interface*-*
logically matches the full set of CDE 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:
- 4 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
-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 [Toc] [Back]
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
- 5 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
``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
12801024
Display
named size number of
pixels size as % of 1024 height point size on 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:
+ The names must be fully specified XLFD names, without wild
cards.
+ 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.
+ 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
- 6 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
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.
+ 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).
+ 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 [Toc] [Back]
There is no default mapping of these interface names to X11R5 fonts;
the mapping is implementation-specific.
USAGE [Toc] [Back]
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:
- 7 - Formatted: January 24, 2005
DtStdInterfaceFontNames(file formats) DtStdInterfaceFontNames(file formats) [Toc] [Back]
-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.
NOTES [Toc] [Back]
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.
SEE ALSO [Toc] [Back]
dtstyle(1), dtterm(1), DtStdAppFontNames(5)
- 8 - Formatted: January 24, 2005 [ Back ] |