From: Tomas Frydrych (tomasfrydrych@yahoo.co.uk)
Date: Sat Oct 25 2003 - 15:55:23 EDT
Bug 5619 (and several duplicates) concerns non-joining of Arabic
letters: where in the script letters are supposed to be joined
without a gap, we now have small white gaps between them; this did
not use to be the case up to 1.99.1, and is caused by rounding errors
in the graphics classes. It is a fairly serious problem, which I
think needs to be addressed, but that will require revisiting some of
the old issues.
I think the only solution to this particular problem is to ensure
that the lu->du conversion rounds down. This would not affect zooming
as long as the zoom factor is applied _after_ the rounding, not
before it, but unfortunately, systematic truncation of character
widths leads to serious cumulative errors over the width of a line,
which we are well familiar with from the past, and which need to be
avoided.
So I have the following suggestion: we systematically truncate
character widths and then compensate for the cumulative error by
inflating spaces on the line. We basically have the mechanism in
place, since that is how we do justification, and so relatively
little code should be needed for this.
(The only other solution I can think of is to avoid upwards rounding
selectivly for such characters with which it matters. While it would
be doable, it would me much more messy and computationally
intensive.)
Anyway, I would appreciate some comments or alternative solutions.
Tomas
This archive was generated by hypermail 2.1.4 : Sat Oct 25 2003 - 15:58:25 EDT