Comment 18 for bug 1283194

Revision history for this message
David Mathog (mathog) wrote :

That appears to be a font bug.

I obtained a copy of what seems to be a slightly different version of this font here:

  http://www.fontpalace.com/font-download/Affair/

The capital Q in this one did not have the issue you posted, instead of a long tail it turns up and stays only just below the base line. However, the capital R and Z glyphs still have very long tails which get cut off vertically.

Using the ft_example.c program in libTERE from

   http://sourceforge.net/projects/libtere/

as:

  ./ft_example affair

it shows that the font bounding box is:

Face Ascender: 926
Face Descender: -345
Face Bbox: xMin -1140 xMax 4186 yMin -1034 yMax 1584

and those letter's Cboxes are:

letter:R advance = 2304 cbox xMin -483 xMax 4784 yMin -1661 yMax 2976
letter:Z advance = 1408 cbox xMin -1821 xMax 9978 yMin -1667 yMax 2979

but

   http://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_FaceRec

says:

 bbox The font bounding box. Coordinates are expressed in font
            units (see units_per_EM). The box is large enough to contain
            any glyph from the font. Thus, bbox.yMax can be seen as the
            `maximal ascender', bbox.yMin as the `minimal descender',
            and the maximal glyph width is given by
            `bbox.xMax-bbox.xMin' (not to be confused with the maximal
            _advance_width_). Only relevant for scalable formats.

Additionally here:

  http://www.freetype.org/freetype2/docs/tutorial/step2.html

it says about the descender:

descender
    The descender is the vertical distance from the horizontal baseline to the lowest ‘character’ coordinate in a font face.
    Unfortunately, font formats don't define the descender in a uniform way. For some formats, it represents the descent of
    all capital latin characters (without accents), for others it is the ascent of the lowest accented character, and finally,
   other formats define it as being equal to bbox.yMin. This field is negative for values below the baseline.

So this is a font error because the yMin of the Cbox of these fonts goes below the descender and outside (below) the face bounding box's yMin. For inkscape it is the former of these problems that causes causing those long flourishes to be truncated.