For the record, the fix that works for me is to change the
#ifdef...#else...#endif block beginning at line 179 of file
SplashFTFont.cc as follows:
// if we have the FT2 bytecode interpreter, autohinting won't be used
// MS: actually, disregard bytecode setting, as it yields poor results anyway
// #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
// if (FT_Load_Glyph(ff->face, gid,
// aa ? FT_LOAD_NO_BITMAP : FT_LOAD_DEFAULT)) {
// return gFalse;
// }
//#else
// FT2's autohinting doesn't always work very well (especially with
// font subsets), so turn it off if anti-aliasing is enabled; if
// anti-aliasing is disabled, this seems to be a tossup - some fonts
// look better with hinting, some without, so leave hinting on
if (FT_Load_Glyph(ff->face, gid,
aa ? FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP : FT_LOAD_DEFAULT)) {
return gFalse;
}
//#endif
[sorry if I don't generate a patch---I still haven't learned how to do so...]
In other words, I force autohinting off if anti-aliasing is enabled,
regardless of whether or not Freetype was compiled with the bytecode
interpreted on (which, in Ubuntu, it is).
Notice that this compile-time checking that poppler does explains why
this bug is hard to trace. Even if you recompile Freetype without the
BC on, it still won't matter, as poppler is compiled against the
"standard" Ubuntu distribution with BC enabled.
For the record, the fix that works for me is to change the ..#else. ..#endif block beginning at line 179 of file
#ifdef.
SplashFTFont.cc as follows:
// if we have the FT2 bytecode interpreter, autohinting won't be used OPTION_ BYTECODE_ INTERPRETER Glyph(ff- >face, gid, Glyph(ff- >face, gid,
: FT_LOAD_DEFAULT)) {
// MS: actually, disregard bytecode setting, as it yields poor results anyway
// #ifdef TT_CONFIG_
// if (FT_Load_
// aa ? FT_LOAD_NO_BITMAP : FT_LOAD_DEFAULT)) {
// return gFalse;
// }
//#else
// FT2's autohinting doesn't always work very well (especially with
// font subsets), so turn it off if anti-aliasing is enabled; if
// anti-aliasing is disabled, this seems to be a tossup - some fonts
// look better with hinting, some without, so leave hinting on
if (FT_Load_
aa ? FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP
return gFalse;
}
//#endif
[sorry if I don't generate a patch---I still haven't learned how to do so...]
In other words, I force autohinting off if anti-aliasing is enabled,
regardless of whether or not Freetype was compiled with the bytecode
interpreted on (which, in Ubuntu, it is).
Notice that this compile-time checking that poppler does explains why
this bug is hard to trace. Even if you recompile Freetype without the
BC on, it still won't matter, as poppler is compiled against the
"standard" Ubuntu distribution with BC enabled.
M
--
Marciano Siniscalchi