Problems for Indic Typography...

John Hudson's picture

Back in August, there was a discussion on the OpenType developer list (subject: ' and in Indic scripts?') regarding Indic shaping engines limiting layout input and context to individual clusters, preventing contextual interaction across syllable boundaries. Although some concerns were raised about possible impact on existing fonts if this behaviour were to change, I believe this is a minor an unproven concern vs. the clear problems raised for Indic typography by this limitation.

I have prepared a discussion paper -- i.e. a paper to prompt discussion -- illustrating some of the problems that occur in Indian typography that cannot be resolved without cross-cluster layout interaction. This paper is available here:

http://www.tiro.com/John/Problems_for_Indic_Typography.pdf

Although I will likely draw attention to this paper in other forums, it would be helpful if discussion were conducted on the OpenType developer list (on the grounds that most of the relevant software implementors will see it there). Subscription information here:

http://www.microsoft.com/typography/otspec/otlist.htm

John Hudson's picture

Erratum:
(subject: ' and in Indic scripts?')
should read
(subject: 'init and fina in Indic scripts?')

Rob O. Font's picture

You mean ISO/IEC 14496-22:2009 has to be changed?

John Hudson's picture

Currently, ISO/IEC 14496-22:2009 (the OFF standard within the MPEG standard) makes no implementation recommendations for Indic script layout. The Microsoft Indic font specifications are not part of the ISO standard; indeed, the OFF/OTF specifications notoriously are not OTL implementation specifications, but only font format specifications.

The Microsoft Indic font specifications, which do specify layout behaviour for the scripts, probably do need to be changed to explicitly account for cross-cluster lookup interaction. My reading of the current specifications is that they don't explicitly prohibit it, and implementors have simply presumed that because the cluster is the basic unit of script shaping anything beyond the cluster can be ignored, whereas, I am arguing, this is clearly not the case after basic shaping has been done. Yesterday, I spent some time testing a new build of the open source Harfbuzz layout engine, and am pleased to report that it does not impose this limitation. So I think a change to the Indic specs would involve adding some specific wording regarding this behaviour, rather than changing existing wording.

Changing existing layout engines is a tougher nut to crack, especially if the makers are concerned about the affect on existing fonts and documents. I suppose we could do the classic sfnt data compatibility manoeuvre and define an OS/2 bit as a flag for new fonts and engines meaning 'Allow cross-cluster lookup interaction in Indic script layout'.

jcrippen's picture

Tangential point: Nice use of Brill in your paper.

Rob O. Font's picture

This is a really cool issue for us, and I'll feel sorry for you if you only ever have a "classic" way to deal with it John.

John Hudson's picture

Update:

I've been testing a new build of the Harfbuzz layout engine, which works perfectly with cross-cluster lookup interaction. Harfbuzz is not as widely deployed as the MS and Adobe layout engines, and not as critical for my clients, but it is a good demonstration that what I am asking for is possible and, so far as I can tell, not difficult to implement.

Adobe have test fonts, and are looking at this issue.

Syndicate content Syndicate content