"Stephen J. Turnbull" <turnbull(a)sk.tsukuba.ac.jp> writes:
>>>>> "-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.
I meant that with a fully specified font, there would be no 'arbitrary'
choices involved. Although some things from the default face wouldn't
necessarily make sense if you've changed charsets, etc. Hrm.
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_.)
This is why I put in the font-maximum-slippage, and planned on adding more
before I decided it was wasted effort to try and do this in lisp. There
should definitely be appropriate variables to control the selection,
including the '#%!@ you always use my default face' that Emacs/W3 allows
you to do now.
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.
Isn't a lot of this taken care of by the charset hints right now? I'm
tired and getting a bit lost, so forgive me if I misremember. :)
-Bill P.