Microsoft Typography | Developer information | Specifications | OpenType font development
Indic OpenType Specification | Terms | Shaping | Features | Other | Appendix

Appendix A: Writing system tags

Features are encoded according to both a designated script and language system. There are different language systems, for example, defined for the Hindi, Sanskrit, and Marathi languages, although they all use the Devanagari script.

Currently, the Uniscribe engine only supports the "default" language for each script. However, font developers may want to build language specific features which are supported in other applications and will be supported in future Microsoft OpenType implementations.

* NOTE: It is strongly recommended to include the "dflt" language tag in all OpenType fonts because it defines the basic script handling for a font. The "dflt" language system is used as the default if no other language specific features are defined or if the application does not support that particular language. If the "dflt" tag is not present for the script being used, the font may not work in some applications.

The following tables list the registered tag names for scripts and language systems.

Registered tags for Indic scripts Registered tags for Indic language systems
Script tag Script Language system tag Language
"beng" Bengali "dflt" *default script handling
"ASM " Assamese
"BEN " Bengali
"MNI " Manipuri
"deva" Devanagari "dflt" *default script handling
"HIN " Hindi
"KSH " Kashmiri
"KOK " Konkani
"MAR " Marathi
"NEP " Nepali
"SAN " Sanskrit
"SND " Sindhi
"gujr" Gujarati "dflt" *default script handling
"GUJ " Gujarati
"guru" Gurmukhi (Punjabi) "dflt" *default script handling
"PAN " Gurmukhi (Punjabi)
"knda" Kannada "dflt" *default script handling
"KAN " Kannada
"mylm" Malayalam "dflt" *default script handling
"MAL " Malayalam (Old Style)
"MLR " Malayalam (Reformed)
"orya" Oriya "dflt" *default script handling
"ORI " Oriya
"taml" Tamil "dflt" *default script handling
"TAM " Tamil
"telu" Telugu "dflt" *default script handling
"TEL " Telugu

Note: both the script and language tags are case sensitive (script tags should be lowercase, language tags are all caps) and must contain four characters (ie. you must add a space to the three character language tags).

Appendix B: Consonant forms

The following table shows all consonant forms that Uniscribe recognizes. For example, if a consonant is marked as having a post-base form and is the last consonant in a syllable, Uniscribe will apply the "pstf" feature to it, etc.

In the table, consonants that have a reph form are marked with "R", below-base form with "B", and post-base form with "P". All consonants are expected to have a half form, which can be a combination of the full form and a virama (halant).

Consonant Language System
Ka B B
Kha B B
Ga B B
Gha B B
Nga B B
Ca B B
Cha B B
Ja B B
Jha B B
Nya B B
Tta B B B
Ttha B B
Dda B B
Ddha B B
Nna B B B
Ta B B B
Tha B B B
Da B B B
Dha B B
Na B B B
Pa B B
Pha B B
Ba B B B B
Bha B B B
Ma B B B
Ya P B P P P P B
Ra R,B R,B R,B R,B RP P* R,B B B
La B B B B B
Lla B B B
Va B P P - B B
Sha B B
Ssa B B
Sa B B
Ha B B B

* Will be reordered at syllable start.

Appendix C: MANGAL.TTF, a sample OpenType layout font

The MANGAL OpenType font is available to licensed users of VOLT, Microsoft's Visual OpenType Layout Tool. It is provided for illustration only, and may not be altered or redistributed.

MANGAL supports the characters and features in the Unicode Standard, which is a superset of the ISCII-1988 standard. The same Unicode character code layout is followed for nine Indian scripts: Bengali, Devanagari, Gurumukhi (Punjabi), Gujarati, Kannada, Oriya, Malayalam, Tamil and Telugu.

MANGAL is a Windows 2000 system font. MANGAL contains layout information and glyphs to support all of the required features for the scripts and languages supported. The font contains 679 glyphs, most of which are specified in the Unicode Standard.

Many shaped glyph forms (such as ligatures) have no Unicode encoding. These glyphs have id's in the font, and applications can access these glyphs by "running" the layout features which depend on these glyphs. An application can also identify non-Unicode glyphs contained in the font by traversing the OpenType layout tables, or using the layout services for purely informational purposes.

MANGAL contains three OpenType Layout tables: GSUB (glyph substitution), GPOS (glyph positioning), and GDEF (glyph definition, distinguishing base glyphs, ligatures, classes of mark glyphs, etc.).

Go to the VOLT community Web site to download this sample font. Please be sure to read the end user license agreement that accompanies the download.

this page was last updated December 2001
© 2001 Microsoft Corporation. All rights reserved. Terms of use.
comments to the MST group: how to contact us


Indic OpenType Specification | Terms | Shaping | Features | Other | Appendix
Microsoft Typography | Developer information | Specifications | OpenType font development