Indic Support in SQUEAK

Boris Gaertner Boris.Gaertner at
Tue May 16 05:08:52 UTC 2006

"Noname Myname" <gcdart_squeak at> wrote:
> I believe that True Type Font Support in Already there in SQUEAK.
Yes, some support for True Type Fonts is available, but it is
still incomplete.

> After seeing the Open Type specifications by microsoft and adobe , 
> I think that to extended Support to Open Type fonts , is it just 
> nessacary to  extract the extra tables present in the Open Type
> font ( not CFF format ).
Right. However, the extraction of the more advanced tables 
I find the specification for the tables GSUB, GPOS and GDEF quite
difficult to follow. For indian scripts, you will certainly need full
support for GSUB. In the "OpenTypeViewer" that you can
download from SqueakMap you will find incomplete support for
the GSUB table, but the subtables for contextual substitution
are not read - the application is still incomplete.
> There was one Open Type font reader implemented, which
> failed to work on Indian Languages ( mangal.ttf , latha.ttf
> provided by microsoft ). Wat Xactly is the problem ?

> More Over , Even if i extract all the tables how xacty 
> shud i implement the script shaping ? 
> that is wer shud i implement it ?
For several reasons this is the hard part of the exercise:
1. The Open Type Format is very flexible and allows for
a considerable difference in script shaping. You may not
assume that two different TTF fonts for, say, Devanagari,
will contain the same or similar glyph substitution rules.
2.  For script shaping support, you will have to rewrite
most of the text formatting and display machinery. 
For text formatting and display the following classes
cooperate (always with subclasses included):
 Text, DisplayText, Paragraph, NewParagraph,
CharacterScanner, AbstractFont, TextStyle, TextLine,

3. I think that for script shaping you will have to implement
a structure that maintains both a string of stored codepoints
and a string that maintains the indices of the shaped glyphs
to display. The mapping between these two strings is not a
one-to-one mapping; due to script shaping several
codepoints may merge into one display glyph, a ligature.

 Greetings, Boris

More information about the Squeak-dev mailing list