On Sat, Sep 13, 2014 at 02:22:24PM +0700, Martin Hosken wrote:
> Dear Simon,
> 
> >        if (FT_Set_Char_Size(uds->ft_face,f->pointSize * 64.0, 0, 0, 0))
> >          return 0;
> > 
> 
> >     What also confuses me is that the result is very font-specific. SIL 
> > fonts are 
> > squashed. Times and Optima render perfectly: Pango and Harfbuzz equivalent. 
> > Adobe Garamond Pro and Caslon Pro are horrible, with some very strange 
> > inter-glyph spacing; in particular there is too much space after every 
> > letter 
> > "a", and too little after an "s".
> 
> I think I have what the problem is. I'm not sure what the best solution is.
> 
> The SIL fonts have horizontal device metrics, and you are basically getting 
> back hinted positioning, due to it thinking you are working on a 1dpi screen 
> or somesuch. This gives you hinted positioning that looks really funny in a 
> pdf.
> 
> The key code inside hb-ft.cc is:
> 
>   hb_font_set_scale (font,
>                      (int) (((uint64_t) ft_face->size->metrics.x_scale * 
> (uint64_t) ft_face->units_per_EM + (1<<15)) >> 16),
>                      (int) (((uint64_t) ft_face->size->metrics.y_scale * 
> (uint64_t) ft_face->units_per_EM + (1<<15)) >> 16));
> 
> since it is the scale that is passed to graphite make_font as the ppem value. 
> Off the top of my head, I'm not sure how you could set an appropriate 
> metrics.x_scale to get the rendering you want at an appropriate ppem that 
> gets scaled back to points for you.
> 
> I'm wondering if using the font scale rather than the font ppem is the right 
> answer in the graphite integration code. Anyone got any thoughts?

I don't use the hb-ft in XeTeX but my own FreeType font functions so
that I can load the glyphs with FT_LOAD_NO_SCALE to avoid hinting, then
I call:

  hb_font_set_scale(m_hbFont, m_unitsPerEM, m_unitsPerEM);
  hb_font_set_ppem(m_hbFont, 0, 0);

to do away with no device adjustments since neither hinting nor device
correction make any sense at PDF generation time (IMO).

Regards,
Khaled
_______________________________________________
HarfBuzz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/harfbuzz

Reply via email to