A tutorial on Fonts for Indian
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.
included in the Xdvng font.
in the Sanskrit_1.2 font.
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.
concept of the font
Fonts for Indian languages/scripts
in designing fonts for our languages/scripts
fonts for Indian languages
as used in web pages
used in the fonts shown at the left.
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.
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
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.
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.