 |
Index for Section 5 |
|
 |
Alphabetical listing for D |
|
 |
Bottom of page |
|
DtStdInterfaceFontNames(5)
CDE
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:
· 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 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:
· 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:
· 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
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
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 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 size
number of
pixels
size as % of 1024
height
point size on 100 DPI
screen
xxs 0.98% 7.2
10
12 1.12% 8.7
xs
14 1.37% 10.1
s
1.66% 12.3
m
17
20 1.95% 14.6
l
23 2.25% 16.6
xl
26 2.54% 18.8
xxl
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 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
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.
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.
SEE ALSO
dtstyle(1), dtterm(1), DtStdAppFontNames(5)
 |
Index for Section 5 |
|
 |
Alphabetical listing for D |
|
 |
Top of page |
|