Developing fonts > Specifications

Developing OpenType Fonts
for Gurmukhi Script:

Please note: Microsoft's OpenType font specifications for Indic scripts have been revised. This version is for reference purposes only. An updated version of the Gurmukhi specification can be found here.

Appendix A: Writing System Tags

Features are encoded according to both a designated script and language system. 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 the Gurmukhi script Registered tags for Gurmukhi language systems
Script tag Script Language system tag Language
"guru" Gurmukhi (Punjabi) "dflt" *default script handling
"PAN " Gurmukhi (Punjabi)

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, below-base form and post-base form will have a check mark in those columns. All consonants are expected to have a half form, which can be a combination of the full form and a virama (halant).

Consonant Unicode codepoint Reph form Below-base form Post-base form
Ka U+0A15
Kha U+0A16
Ga U+0A17
Gha U+0A18
Nga U+0A19
Ca U+0A1A
Cha U+0A1B
Ja U+0A1C
Jha U+0A1D
Nya U+0A1E
Tta U+0A1F
Ttha U+0A20
Dda U+0A21
Ddha U+0A22
Nna U+0A23
Ta U+0924
Tha U+0A25
Da U+0A26
Dha U+0A27
Na U+0A28
Nnna U+0A29
Pa U+0A2A
Pha U+0A2B
Ba U+0A2C
Bha U+0A2D
Ma U+0A2E
Ya U+0A2F X
Ra U+0A30 X
Rra U+0A31
La U+0A32
Lla U+0A33
Llla U+0A34
Va U+0A35 X
Sha U+0A36
Ssa U+0A37
Sa U+0A38
Ha U+0A39 X

introduction | shaping engine | features | appendices

Top of page