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


Features for the Telugu script

The features listed below have been defined to create the basic forms for the languages that are supported on Telugu systems. Regardless of the model an application chooses for supporting layout of complex scripts, Uniscribe requires a fixed order for executing features within a run of text to consistently obtain the proper basic form. This is achieved by calling features one-by-one in the standard order listed below.

The order of the lookups within each feature is also very important. For more information on lookups and defining features in OpenType fonts, see Encoding feature information in the OpenType font development section.

The standard order for applying Telugu features encoded in OpenType fonts:

Feature Feature function Layout operation Required
Language based forms:
akhn Akhand ligature GSUB X
blwf Below-base form GSUB X
Conjuncts & typographical forms:
abvs Above-base substitution GSUB X
blws Below-base substitution GSUB X
psts Post-base substitution GSUB X
Halant forms:
haln Halant form substitution GSUB X
Positioning features:
abvm Above-base mark positioning GPOS
blwm Below-base mark positioning GPOS
dist Distances GPOS
       
[GSUB = glyph substitution, GPOS = glyph positioning]


Descriptions and examples of above features


Akhand

Feature Tag: "akhn"

This feature creates an akhand ligature glyph from two consonants in nominal forms separated by a halant:

Cf + H + Cf -> Af

The input context for the akhand feature always consists of the full form of the consonant.

Example of the Akhand feature applied:


Below-base form

Feature Tag: "blwf"

Applying this feature produces below-base forms of consonants.

Kf + H -> Ks

The input context for the 'below-base form' feature must always consist of the full form of the consonant + Halant.

The feature 'below-base form' is applied to consonants having below-base forms and following the base consonant.

If a ligature is required between the vattu glyph and the preceding consonant, it will be handled by the feature 'Below base Substitutions'.

As a user types each character, the text-processing application will reshape the glyph or glyph cluster, which is displayed, as illustrated below.

The "blwf" feature applied:


Conjuncts and typographical forms

Feature Tags: "abvs", "blws", "psts"

All previous features have dealt with language features only, dedicated to forming glyph shapes dictated by the languages. The remaining shaping features cover optional features.

These optional features range from those that will exist in every font to rare typographical ornaments. It is important to stress that all features operate only within one orthographic syllable.

Since the language features do not limit typographical processing , Uniscribe passes the entire syllable to the OTL Services library. Uniscribe does not strictly specify the format of lookup tables to use or their inputs, allowing for context-dependent processing of any of the conjuncts and forms below.

The OTL Services library processes the syllable "left to right", executing lookups in the order that they are specified in the font. First, pre-base substitutions will be handled, then below-base, above-base and then post-base substitutions.

Therefore a font developer should first take care of all ligatures to the left of the base glyph and then working to the right, substite below-bases, above-bases and then finally post-base elements. The lookups in the font should be ordered in the same way.

With every new element and feature, the following operations should be considered, as appropriate, in this order:

  • Ligatures with the base glyph
  • Ligatures with preceding (in the canonical syllable form below) elements, and
  • Contextual forms of the element

At every feature step, one should take into account all ligatures and forms that were produced by previous steps.

In general, at this point the syllable being shaped will have one of the following forms:

For Telugu:

{Kh} + Kf + [Mabove] + [Mbelow] + [Mpost] + {Ks} +

{Kp} + [LMpost] + [VMpost]

(Out of Mabove, Mbelow, Mpost and LMpost different combinations can be present)


In the absence of a vowel we have

{Kh} + Kf + [V] + H


Finally, a syllable with independent vowel will look like

VO + [VM1] + [SM]


Above-base substitutions

Feature Tag: "abvs"

Above-base Matra ligatures

This feature produces the correct typographic shape when an above-base matra forms a ligature with the base glyph.

The "abvs" feature applied:

Above-Base Stress and Tone Marks

This feature produces the correct form of signs above the base glyph. These signs include the udatta, acute and grave depending on context.


Below-base substitutions

Feature Tag: "blws"

Below-base consonant conjuncts

This feature produces conjuncts of the base glyph with below-base consonants. For example,

Kf + {Ks} -> Lf

Specific context-dependent forms or below-base consonants are handled by this lookup as well.

The "blws" feature applied:

Below-base Matra substitutions

This feature produces matra ligatures with the base consonants. For example,

Kf + Msub -> Ligature

Lf + Msub -> Ligature

In the presence of below-base consonants, the below-base matra can be used for a ligature with them or change shape as well.

Below-base Stress and Tone Marks

This feature can also be used to contextually produce the correct form of signs like anudatta.


Post-base substitutions

Feature Tag: "psts"

Post-base Matra ligatures

This feature produces the correct typographic shape when a post-base matra forms a ligature with the base glyph.

Post-base vowel modifiers

This feature can be used to produce different forms of post-base vowel modifiers, one among them is the visarga.


Halant form of consonants

Feature Tag: "haln"

This feature produces the halant form of the base glyph in syllables ending with a halant.

Kf + H -> Khalant

Lf + H -> Lhalant

Halant forms can also be created by positioning the halant as a below-base mark on the base glyph.

This feature is applied only on the base glyph and the following halant.

"Halant Form of Consonant" feature applied:


Above-base marks

Feature Tag: "abvm"

This feature positions all above-base marks on the base glyph or the post-base matra. The best method for encoding this feature in an OpenType font is to use a chaining context positioning lookup that triggers mark-to-base and mark-to-mark attachments for below-base marks.

"Above-base marks" feature applied (shaded box)


Below-base marks

Feature Tag: "blwm"

This feature positions all below-base marks on the base glyph. The best method for encoding this feature in an OpenType font is to use a chaining context positioning lookup that triggers mark-to-base and mark-to-mark attachments for below-base marks.

"Below-base marks" feature applied (shaded box)


Distances

Feature Tag: "dist"

This feature covers all other positioning lookups defining various distances between glyphs, such as kerning between pre- and post-base elements (like Visarga) and the base glyph.



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

 

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