OPENTYPE RENDERING OF COMPLEX SCRIPTS

Several scripts covered by Fixedsys Excelsior require Opentype tables which define behaviors for rendering: Arabic, N’Ko, Tamil and Thaana. I have also included some opentype features for Latin. In Windows, this sort of complex rendering is performed by something called Uniscribe. Uniscribe has limitations.

1. ARABIC

Arabic is a right-to-left script where the letters connect to one another. Because some characters only join to characters before them and not after them, your computer needs to be able to tell which are which (the opentype rules don’t cover this part -- Unicode does). Uniscribe is aware of which are which generally but may fail to use the correct shaping rules of letters which are newer additions to Unicode. Most people will have no problems with this, however.

2. N’KO

N’Ko works like Arabic -- right-to-left with joining characters -- but all N’Ko characters join on both sides. That means that, compared to Arabic, it is actually very simple. It uses vowel marks but they are simple, too, because they do not stack and N’Ko letters do not vary greatly in height. However, N’Ko is a recent addition to Unicode and Uniscribe is not yet aware of it at all. Neither is charactermap, which will not show the N’Ko range at all. However, Fixedsys 3 is fully prepared for proper display of N’Ko and as soon as Uniscribe is updated to support it, this will work fine. In the meantime, you could compose N’Ko text backwards using the presentation forms (in the private use range) but this would be very awkward for anything more than short phrases.

3. TAMIL

Tamil is the only Indic script in Fixedsys Excelsior. As far as Indic scripts go, it is fairly simple, but Indic scripts are without any doubt far more complex than any other kind, in terms of font design. Tamil has numerous ligatures and some vowels are typed after consonants but visually appear before them (or on both sides of them). Much of this behavior is controlled by Uniscribe, and Uniscribe only recently added Tamil support. If you have not updated your Uniscribe since the version in Windows XP SP2, Tamil will completely fail for you -- but you can obtain a more recent version by (for example) installing Microsoft Volt (free) and grabbing it from the ‘extras’ folder. With a current Uniscribe installed, Tamil will render fine except for one rare letter, sha, which is a grantha character not yet supported by Uniscribe. Likewise, the ligature sri (sha+halant+ra+ii) will not appear. Sha and sri will work as soon as Uniscribe adds support. By the way, I worked very hard on this addition. Please let me know what you think.

4. THAANA

Thaana does not need opentype functions at all in a monospace font because it is simple to make combining signs (vowel marks in this instance) by using the traditional method (non-spacing glyphs). Unfortunately, Uniscribe /believes/ that Thaana needs Opentype, and if your font doesn’t include opentype features for Thaana, it will refuse to display it! So I included them despite being redundant / a pain. No matter to you, though: Thaana works fine.

5. OTHER SCRIPTS

FSEX3 also introduces Thai, which is complex enough to warrant including opentype features in many fonts. Indeed, it would allow a more ideal presentation of stacking marks. But I am pretty sure the method I have followed is adequate for a screenfont. Please let me know if I am mistaken. I don’t think the marks will collide, but I know very little about which character combos are legal in the Thai language.

Pahawh Hmong, encoded in the private use range until it is added to Unicode proper, also uses combining marks, but no stacking, and will render perfectly. Tengwar technically uses combining marks but who really cares? Most won’t work right here. Also, I have not included points for Hebrew or Arabic.

☚ Back to Fixedsys Information Main