freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] Vert advance on line break


From: Werner LEMBERG
Subject: Re: [ft] Vert advance on line break
Date: Thu, 29 Jan 2009 20:51:05 +0100 (CET)

> * Distance (scaled distance) between two successive baselines should
> be face->size->metrics->height.  This is the nominal height of the
> line, in 26.6 format, and _is scaled_ to the current size of the
> face.  The unscaled (font units) value is in face->size->height.

Yes, in case you are not interested to produce a customized layout for
typesetting purposes.

> * line gap = height - (ascender - descender)

Yes.  `descender' is negative in the above formula if it is below the
baseline.

> * The line gap is the space between the lines, where "nothing" is
> * written (except with strange fonts, etc).

Yes.

> * The "physical" height of the line (the area where most letters
> would be expected) is (ascent - descent).

If the global ascender and descender values are set correctly, this is
always true.

> Conclusion:
> If I want an "exact" space of, say, 1.5 lines between each two lines
> (no matter what the font design says) then I should ignore the FT2
> height and use the following:
> 
>   my line gap               = (ascender - descender) * 1.5
>   my height (baseline diff) = (ascender - descender) + my line gap

Exactly.  On the other hand, you might assume that a 10pt font (this
is, whatever the font returns if you select 10pt as the rendering
size) really fits into 10pt vertically -- at least more or less.  In
case this is not true it is arguable that the font is buggy.  Under
this assumption you have the choice of selecting a baseline distance
independently of the font.  TeX, for example, uses this approach; it
applies a factor 1.2 by default to get the baseline distance; for good
typography it is often useful to increase this factor up to 20%.  So
you could say:

  baseline diff = document font size
                  * default baseline factor (1.2)
                  * document specific adjustment (1 .. 1.2 normally)


    Werner




reply via email to

[Prev in Thread] Current Thread [Next in Thread]