I have a ­ hyphenator using Liang's algorithm as a YUI3 module if you're interested.
I have a ­ hyphenator using Liang's algorithm as a YUI3 module if you're interested.
I just wish we could get 300dpi displays for our computers already, and stop worrying about the pixel grid. But, we're going to need some better techniques for resolution independent UIs before that happens. In particular, you will probably actually need better hinting for vector based UI graphics, so that the same vector graphics that can be used for high resolution displays can also be used for lower resolution displays while still looking good.
I would be very much interested in an open-source hyphenator (I'm aware of some other JavaScript implementations of Liang's algorithm) as I was planning to either use an existing one or to implement it myself.
I’m not sure too many people especially object to adjustments of 2-3% to inter-letter space or letter widths.
Another problem is ligatures. Where adjusting inter-letter spacing is possible, it usually needs to be applied uniformly across at least a whole word to work well. If you are writing the word "difficult", and the "ffi" is rendered using a ligature to avoid awkward clashes, then how do you adjust the spacing for that? You could keep the ligature, but then the inter-letter spacing isn't uniform across the whole word. Alternatively, you could break the ligature, but that could restore the undesirable clashes between the "f", "f" and "i" that the ligature was designed to prevent. To avoid that, you would have to open up the inter-letter spacing so much that the letters no longer clash, which is probably far too obvious in most fonts to be a useful effect.