Home --> Software Design Issues --> Tutorial on Fonts for Indian Languages.
  Font Tutorial- Encoding concepts  
A tutorial on Fonts for Indian Languages: Section-2

Fonts for Indian languages/scripts

   Fonts are inherently proprietary in nature and tend to be incompatible across computer systems as well as applications. Today, it appears that very few non Roman fonts are available for practical use which are supported under all the important platforms.  This has imposed fairly severe restrictions in respect of web displays of Indian Language text on account of the totally arbitrary approach to designing the fonts. True, these fonts were not designed with the idea of text processing but more for getting good printouts and displays. However when we use the same for web pages, we run into many incompatibilities. 

  In editors and word processors, the internal representation of text is the ASCII code of the letter displayed and these codes happen to be the same as the numeric codes assigned to the glyph locations in the font featuring  the letters.  When it comes to fonts for Indian languages, the display has to be built up with more than one glyph for many aksharas and hence the internal representation of the aksharas is purely a function of where the glyphs for the aksharas are located within the font. Thus, one faces the problem that, the stored text is not in a format that can be viewed on different computer systems because, the encoding standard may not be supported in each system. Also, glyph codes are the choice of the font designer and will bear no relationship to the ordering of the aksharas in our scripts.  Thus, linguistic processing of the stored text is a formidable task, being font dependent even for the same script. 

 The crux of the problem in respect of Indian language fonts is best illustrated through an example. Xdvng is a popular font for Devanagari that follows the ISO-8859-1 encoding. Sanskrit_1.2 is a beautiful font for Devanagari which is available only for the Windows platform. Shown below are the glyphs present in each of the fonts. Sanskrit_1.2 provides for many more glyphs and includes some Vedic symbols as well. 

 The tables show glyphs from 32 to 255. Each row has sixteen glyphs. The first image corresponds to the Xdvng font and the second, sanskrit_1.2. 

Glyphs included in the Xdvng font.
Glyphs included in the Sanskrit_1.2 font.
  Clearly the ascii strings required to display Devanagari text differ for different fonts. Also, there are some aksharas which may be displayed in Sanskrit_1.2 but not in Xdvng. One would also notice that the number of glyphs required to display an akshara depend on the akshara (or samyuktakshara) and thus a variable number of bytes is required to represent each akshara. This is in contrast with the western alphabet where one letter is displayed through just one glyph. 
 One will observe that the placement of the glyphs in these fonts is influenced by the need to make the mapping between the transliterated string and the Devanagari display fairly straightforward. This will probably allow data entry using word processors somewhat intuitive for the basic consonants and vowels. Also it may be noticed that these fonts do not provide for any punctuation marks. While it may be argued that manuscripts in Indian languages never really used any punctuation, the situation today warrants the use of at least the comma, question mark, exclamation mark, semicolon and the quote besides the period. 

  Designing a font for Devanagari (for that matter any Indian script) is at best a compromise in respect of samyuktaksharas and the punctuation desired.

  The phonetic aspect of Indian languages generally compacts a lot of information in a displayed akshara. A complex conjunct may contain as many as four consonants and a vowel but may be displayed as a unique shape with just one specially designed glyph. Thus, no matter how best we attempt to design fonts for our languages, we are beset with the problem of having to deal with text in terms of multiple byte representations for the aksharas. Text processing with variable number of bytes for each unit of information, is a nightmarish proposition and it is precisely for this reason that we have not seen general applications supporting Indian language user interfaces which work in a universal manner on all computer systems. 

  The solution to one akshara-one glyph for Indian languages lies in the adoption of sixteen bit codes for the aksharas. We will then have a set of more than 10000 different codes for our languages where each code is exactly 16 bits and represents one akshara or Samyuktakhsara (a syllable). Also, if we can have fonts developed to accommodate that many glyphs (as is the case with Japanese characters), then a one to one correspondence between the akshara and its glyph will be possible.  The only difficulty today is that no computer system will look at a 16 bit character code, index into a 16 bit font and display the glyph.  Unicode, though claimed to be a sixteen bit code, provides only a few hundreds of codes for most language and is therefore not suited to this requirement. In respect of Chinese, Japanese and Korean, Unicode does indeed support a fixed 16 bit code for each character (about 24000 of them) but the problem of large number of aksharas in our languages has never been properly addressed by Unicode. 

Back to Contents


The concept of the font

Font encoding

Fonts for Indian languages/scripts

Problems in designing fonts for our languages/scripts

Unicode fonts for Indian languages

Fonts as used in web pages

In summary

Encodings used in the fonts shown at the left.

The encoding used here is  IS0 LATIN-8859-1. However, there are minor variations in the location of four glyphs which may not really belong to the 8859-1 scheme. 

Please observe the variety needed in respect of the matras since they have to be positioned differently depending on the nature of the consonant, i.e., with the vertical stroke in the middle, or vertical stroke to the right etc.

The encoding used here is Windows Latin 1252 and as we can see, there are many more glyphs supported. The glyphs in locations between 128 and 160 will not render properly on other systems, especially on a Macintosh. This font is not as rich in matras as the Xdvng, a consequence of careful design of the base glyphs.

A new standard (proposed) for designing fonts for Indian Scripts. This is referred to as Indian Standard Font Code. Mostly CDAC, Pune seems to be pushing this idea forward for DTP in Indian languages.

Acharya Logo
Text in Brahmi script at the Gate of the Great Stupa at Sanchi. The text records the donation of the pillar by a desciple of Arya Kshudra. The text reads "aya chuDasa atevAsino balamitasa dAnam thabho". More information about the Brahmi script is presented under Languages and Scripts.

Today is Feb. 21, 2020
Local Time: 14 18 17

| Home | Design issues | Online Resources | Learn Sanskrit | Writing Systems | Fonts |
| Downloads | Unicode, ISCII | SW for the Disabled | Linguistics | Contact us |
Last updated on 10/24/12     Best viewed at 800x600 or better