[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Justification (was Re: Unicode Font Maker)



Mete Kural wrote:
Hello Gregg,

By <TATWEEL> you mean the Unicode codepoint 0640 Arabic Tatweel?

Well, yes and no. I think there is a reasonable practical motivation for 0640, which is that sometimes you have a font that isn't spaced quite right for your monitor (or printer) so you need some way to tell it to spread the characters out a bit. Ideally the editor could do that, but in practice that would require pretty sophisticated logic that your average plaintext editor developer is not likely to implement. Hence the usefulness of TATWEEL.


However, this problem also occurs between non-tied characters; hence the idea that TATWEEL should take inking based on context.

Using 0640 Tatweel in Arabic text on a regular basis is a
non-starter.

But in practice it is common. It has caused problems for me in translating. I use a nice little tool from http://www.heartsome.net that allows for reuse of translated segments (I believe .po editors do this too to some extent; heartsome's stuff uses standard XML, however.) I discovered that tatweels, which are generally undetectable by the eye, often prevent a new segment from matching an already translated segment, so I have to normalize the text before hitting the database. Eventually they will probably allow tatweels to be ignored in matching.


I suspect that editors will always want the ability to stretch things out, for purely personal aesthetic preferences.

Tatweel is a typographic feature, it shouldn't be
encoded in raw text. But a rendering engine could perhaps make use of
it by pre-processing raw encoded text and inserting tatweels where
desired before sending it to be rendered.

That's an interesting design idea. Basically use a process to insert tatweels to indicate allowed stretching based on some kind of policy (e.g. it's ok to stretch at the end of a word but not the beginning) and then the compositor does the rest. So you'd get a nice separation of functionality.


-g