Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
DtStdInterfaceFontNames(file formats)	 DtStdInterfaceFontNames(file formats)

       DtStdInterfaceFontNames -- XCDE Standard	Interface Font Names

       The  XCDE  Standard  Interface Font Names are a set of generic X	Window
       System font names, needed by the	XCDE 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  XCDE  systems, and they should be provided in any X	server product
       on which	XCDE 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.

       XCDE  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-XCDE  ven-
       dors if those vendors so	desire.	Therefore, there are a standard	set of
       ``generic'' font	names and sizes	that each XCDE vendor makes  available
       on  their  XCDE 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  XCDE  Standard  Interface  Font Names described here allow clients
       making up the XCDE desktop, such	as dtterm(1) and a single set  of  de-
       fault fonts in their app-defaults files,	without	concern	for the	system
       or X server on which XCDE is running. (The  XCDE	 Standard  Application
       Font Names, described in	DtStdAppFontNames(5), provide a	similar	mecha-
       nism for	applications running on	the XCDE desktop.)

       Interface fonts are designed by user interface experts for  the	narrow
       purpose	of making the menus, labels and	fields of a graphical user in-
       terface 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 XCDE 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  de-
       signs,  styles and weights and are used for emphasis, cross-references,
       section headers,	and so forth.

       Common font names are required to prevent  XCDE	clients	 such  as  dt-
       term(1)	from  needing  different app-defaults files on each system. In
       addition, any X server or X terminal vendor may ensure  that  the  XCDE
       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  re-
       search  that  has examined the readability of various fonts on the dis-
       play screens in use today and found that	many fine adjustments (for ex-
       ample,  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.	Cogni-
       tive research has shown that this distinction is	important for the  us-
       ability	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 underly-
	     ing 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  XCDE or X server vendor implementing this specification must pro-
       vide full XLFD names for	the standard names, mapped to system-dependent
       underlying  fonts,  so  that the	XLFD patterns used in XCDE application
       app-defaults files will always match one	of the full  XLFD  names  pro-

       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, RESO-
	     LUTION_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 XCDE 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 XCDE
       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  at-
       tribute	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 propor-
	     tionally 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 re-

   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 in-
       terface	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 XCDE 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 XCDE 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  re-
       quired 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 specifica-
       tion for	these fonts, since whether the underlying font these names are
       mapped  to  is  serif  or  sans serif is	not specified by XCDE, and the
       match must work for all XLFD names provided by XCDE system  vendors  or
       other X server vendors.

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


       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 XCDE Standard	Interface Font Names can also be  rep-
       resented, 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
       XCDE  Standard Interface	Names for Latin-1 locales on all XCDE, or com-
       plying 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	under-
       lying  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  XCDE  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  sys-
       tem'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 de-
       velopment 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 XCDE	desktop	usable with a range of point sizes ef-
       fectively means,	in addition to legibility for the user,	that the vari-
       ous XCDE	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 re-
       flect current usage, but	also in	percentage of monitor height. This al-
       lows  them  to  remain  appropriate as technological evolution improves
       display resolution and monitor size (for	 example,  wall-mounted	 moni-
       tors).  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:

       Range	of
       Named Sizes
       on	 a
       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:

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

	     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  ex-
	     ample,  xxs) and, if appropriate, either the serif	or sans	desig-
	     nation, 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 exam-
	     ple,  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  dis-
	     cussed 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:


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


       Their  respective  standard names would be implemented on their systems

       -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 XCDE	Mapping	of the Standard	Interface Font Names
       There  is  no  default mapping of these interface names to X11R5	fonts;
       the mapping is implementation-specific.

       A XCDE desktop client developer will code a single app-defaults file to
       specify font resources for their	client and use it across all XCDE sys-
       tems.  Since  the  FOUNDRY,   FAMILY_NAME,   WEIGHT_NAME,   SLANT   and
       SETWIDTH_NAME  fields of	the standard names are the same	across differ-
       ent systems, these values can be	used in	the resource specification  in
       the   app-defaults   file.  However,  other  fields  (  ADD_STYLE_NAME,
       AGE_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 XCDE	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 XCDE 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 XCDE desktop will	be more	difficult to use, vis-
       ually, than if its expected font	names were available.

       There  is  no requirement on a XCDE system or X server vendor to	imple-
       ment 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  dif-
       ferent XCDE or X	server systems.

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

					 DtStdInterfaceFontNames(file formats)


Want to link to this manual page? Use this URL:

home | help