[comp.windows.x] More Re: Re default font id

kap121@ztivax.UUCP (Thomas Oeser) (01/03/89)

In article #2716 (please excuse this delay, I spent some free days and have 
not yet read the 276 "new" articles droped in ...) David Rosenthal writes:

	... Anyone who wants a font which has ISO Latin 1 encoding but doesn't
	care about other characteristics should consult the R3 document about
	font naming, ...


I fully conform with David's opinion. Even more, I think, in distributed
environments we should generally move from using `unknown' defaults to
`expressing our intents and requirements'. What does this mean?

Every application should announce those properties of an entity, it is 
interested in (e.g., in the case of a font the metrics and the sans serif 
style may be important for a particular implementation). Other properties may 
be left unspecified. It is the task of the receiving/remote/server/... system to
fulfill the specified properties of an entity as best as possible. This does
imply, that supportive systems  m u s t  provide means of expressing those 
`intents'.

This mechanism is easily visible and understandable, if the entity (or should I
better say resource?) is a font. In this case we should think of a `font
reference' in a very general sense:

	- it may be a unique name in the world, by which we express the intent,
	that we want to use exactly this particular font and nothing else;

	- it may be a list of specified properties from the standardized(!!)
	set of properties a font may have and such reducing the number of 
	choices for a font to use at a specific instance of our application.

    BTW, the encoding of the font may be such a property as well. Even
    more, why do we bind the encoding to the font? The same set of character 
    shapes, character metrics, general font attributes, etc. should be 
    available for several encodings. I.e., a mapping should exist, that
    translates the code referring to a particular meaning (e.g., code xxx to
    `capital letter A') to a character shape description, of which the font 
    designer thinks of to be able to represent this meaning (e.g., for a font 
    consisting of smaller and larger capital letters only the larger one may
    represent the meaning `capital letter A').

The font referencing techniques described in the new R3 documents (I have not
yet got them...) seem to go in that direction. Anyway, I is worthwhile to 
compare them with the ongoing work for an ISO standard in that area (ISO 9541,
Font and Character Information Interchange). It is a multi-part standard
dealing with

	- the encoding independend referencing of character shape descriptions,
	metrics descriptions, etc.
	
	- the attributes available for a font as a whole;
	
	- the attributes available for each individual character;
	
	- etc.
	
It is currently at a state of a Draft International Standard. In particular,
part 5 `Font attributes and character' model may be very interesting, when 
looking at the set of standardized font properties. There are also intentions
to provide means for specifying mappings from the several encoding standards
(ISO 646 (old style), ISO 8859 (new style), ISO 6937 (to make CCITT happy)...)
to the character image descriptions in a font.

But there are more areas, where we should move to the method of specifying our
intents and requirements. Another example is the use of color. In this area most
people think in terms of absolute colors (e.g., by names like `black',
`white', `read', etc. or by RGB values or indices pointing to RGB values in
color maps that were created by specifying RGB values). In additon, there are
currently sophisticated mechanisms to map colors to a reduced colour space
(i.e. 256 colurs to 16, or colors to greyscale). But all this applies really
to `real wolrd images' only (e.g. photographs). In this case the most important
intent is to reproduce the image as close as possible to the original value.
In other cases we use colors in a quite different sense and it is not so
important to reproduce it as close as possible (therefore all the mechanisms
fail more or less :-) ):

	- to highlight something;
	- to generate a composite area;
	- to focus on specific areas;
	- etc.

Therefore, for referencing colors there should also similar means as there are
for fonts (BTW, this would remove a lot of problems with applications going
from grey scale displays to color displays and vice versa). Some examples for
doing so are:

	- to introduce some abstract named values (i.e., `foreground' and
	`background') as valid color values;

	- to allow the specification of relationships of colours with respect
	to other colors (e.g. `color1 should be contrasting color to
	color2' or `color1 should be lighter than colour2', `color1 should be
	of same hue as color 2 but different in lightness and/or luminance',
	etc.);

	- to allow specification of a `color use' property (e.g. flashlight
	color, fading color, etc.).

We may think of applying this to areas of output primitive attributes, too.
Sometimes we want simply two different lines, not concerning whether they
are different in style or thickness. But ese idears may go to far, since all
systems are able to create lines of different styles or thicknesses, are they...

Why do I have posted these statements into this newsgroup? Simply because X is
a network transparent system, where several servers and machines of different 
features may be accessed by the same application. In addition, by using the
X window system applications become highly portable. All this forces the
application programmers to think of how they can write their applications
without knowing the target systems they should running on, thus using e.g. the
principle of specifying those properties of entities, that are important for
their applications. But this principle should be supported generally on those
systems and not only for fonts.


Thomas Oeser


ARPA:  kap121@ztivax.siemens.com
UUCP:  kap121@ztivax.uucp (may work only in Europe...)
Mail:  Siemens AG, K Sys Ap 121 , Otto-Hahn-Ring 6, D-8000 Munich, West Germany
Phone: + 49 89 636 47537 (office)
       + 49 89 672227 (private, for those who have to think of 9 hours time 
		       difference...)

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (01/04/89)

    Even
    more, why do we bind the encoding to the font? The same set of character 
    shapes, character metrics, general font attributes, etc. should be 
    available for several encodings.

Right.  With the R3 font naming scheme, it is certainly possible for
a server to synthesize fonts on the fly based on the character set
part of the name, taking a base set of glyphs and constructing an
appropriate index array.

    Anyway, I is worthwhile to 
    compare them with the ongoing work for an ISO standard in that area
    (ISO 9541, Font and Character Information Interchange).

We are definitely aware of 9541.  Jim Flowers of DEC, who authored the
X font naming proposal, is actively involved in the 9541 work.

    It is currently at a state of a Draft International Standard.

It was rejected as an IS in summer 1988, but is being reworked.  Part of
it has been split off as a separate DIS, 10036.

    In particular,
    part 5 `Font attributes and character' model may be very interesting, when 
    looking at the set of standardized font properties.

Jim Flowers has been making recommendations in this area, so that 9541 provides
reasonable support in the X (or other bitmap font) environment.  To the extent
that a real encoding comes out of this work, we will consider making it a
supported format in our distribution.