W3C home > Mailing lists > Public > www-style@w3.org > December 1997

Re: Font-adjust: a CSS enhancement proposal

From: Bert Bos <bert@w3.org>
Date: Fri, 19 Dec 1997 20:22:25 +0100
To: www-style@w3.org
Message-ID: <349AC971.E73E26A5@w3.org>
Todd Fahrner wrote:

> http://www.verso.com/agitprop/fontadjust/

I think this is a very interesting proposal, but I have some questions
and worries.

Say you specify:

    font-family: Times New Roman, Bembo, Garamond, serif;
    font-size-adjust: 1.72

This is the "wrong" font-size-adjust, because Times New Roman should
have 2.17. (Nothing will break, as far as I can see, but if fonts are
substituted, they will not have the same x-height as the Times would
have had: they will be too large)

Such a mismatch can easily happen, if somebody overrides the
font-family, but doesn't also specify the font-size-adjust.

It is hard to specify the font-size-adjust: first you need to find out
what the x-height is, then you need to calculate the ratio em/ex.

Maybe the font-size-adjust should be combined with another property,
such as font-size, so you cannot forget it:

    font-size: 12pt 1.72;    /* Specify desired size and z ratio */
    font-size: 12pt none;    /* Specify one size, no adjust */
    font-size: 12pt;         /* Same as "12pt none" */

There is a also the problem of scripts or fonts that don't have an
x-height. Something reasonable has to be defined for Hebrew or Japanese.



The goal of line-height-adjust is to adjust the leading: more leading if
the substituted font has a smaller z, and less leading if the
substituted font has a larger z. But I don't think the proposal actually
achieves that: I don't see what the difference is between 'none' and
'normal.'

In CSS, you can specify line-height as an absolute value (14pt, 13px,
etc), as a font-relative value (1.2em, 4ex), or as a factor (1.2). The
last two will be relative to the size of the actual font, not the
specified font-size.

In other words, the line-height can depend on the em or the ex, but
never on the z.

One way to fix this, is to say that the value 'normal' means that the
line-height will be adjusted to: actual-font-size +
(specified-line-height - actual-font-size)*(z/z')

This will shrink the leading if the substituted font has a larger z, and
vice versa. However, I doubt if the result will actually be better than
without any adjustment. The required amount of leading is probably not a
linear function of the z. In which case this is a lot of work with
little or no gain.



I also have doubts about font-weight-adjust: the assumption seems to be
that a larger font-size means thicker strokes. But the larger font has
the same x-height as the smaller one had, so it is reasonable to expect
that it also has equally thick strokes. The ascenders and descenders are
longer, but I don't think they contribute to the blackness.

In other words, I think a weight adjustment is not necessary. (Or at
least, it doesn't depend on the z, and we have no other measures to work
with).



Bert
-- 
  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/people/bos/                              W3C/INRIA
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 (0)4 93 65 76 92            06902 Sophia Antipolis Cedex, France
  +33 (0)4 92 38 76 92 (<--- after 5 Jan 1998)
Received on Friday, 19 December 1997 14:22:49 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:53:53 GMT