>>>> "-BP" == William M Perry
<wmperry(a)aventail.com> writes:
> No, it's not possible. There are four problems:
> (1) The face properties may overspecify the font on any given
> system (eg, color on a mono system, family on a TTY); in such a
> case the face system will have to choose a compromise font.
> The user should be able to override this arbitrary choice
> directly.
> (2) The face properties may underspecify the font, in which
> case the face system makes an arbitrary choice. Again, the
> user should be able to override.
-BP> Neither of these should ever happen with proper property
-BP> merging. The default font would ALWAYS be fully specified.
-BP> Either by the user or by a combination of the user and
-BP> window-system-specific defaults.
I don't understand. Of course the default font would always be
exactly specified, and so would every font actually used to display
text. My point is that our face model cannot possibly account for all
font properties, e.g. those in use by future intergalactic alien
allies, and therefore although the face system would resolve both
under- and over-determined specs, the user might not like the outcome.
(The main problem is that the maintainer of the font handler in
question might not be able or willing to change the abstract face
system, _especially if it involves an API or face model change_.)
If so, the user could specify the font explicitly, but that's not very
friendly or general. We should provide direct access via Lisp to
underlying font models, however ugly, and not force the user to fully
specify the font. Surely _Custom_ should avoid using those whenever
possible, and maybe even override or redirect user attempts to use
font properties when a corresponding face property is available.
At the moment, Custom doesn't even understand non-Latin fonts AFAICT
(although it now leaves them alone, a VAST improvement over the days
when it simply nuked them). I use Custom for faces only because it's
my responsibility as a beta tester, not because it's useful. And even
so every time I touch Options | Size or Options | Font, I am _forced_
to spend time in *scratch* setting my non-iso8859-1 fonts. Until that
kind of thing gets resolved, it is premature to think we can properly
_test_, let alone _define_, a "font model" of universal applicability.
Eg, what are the relevant properties for Arabic fonts? Devanagari?
Korean Hangul? AFAIK digital fontography in those cultures is not at
all developed; we're going to be hearing from them for years, maybe
decades, to come.
I'm all for defining a better face model, and nobody in their right
mind should tell you you have to handle Asian fonts before
implementing it. But please leave me access to a higher level
interface than `Emacs*fontSet: $XLFD_SPEC' for my Japanese fonts. Eg,
an 'x-font-property-hints-list property on the face.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."