Looking for:
Devnagri hindi font for windows 10
You can find the fonts for FREE and All the fonts are clear and readable. You can download Top Hindi Fonts (Devanagari, Nepali, Sanskrit and Marathi Font). Downloading and installation of Hindi fonts. INSTRUCTIONS. Download. Click to download; Press save in the download window and specify a path. Download Free devnagri lipi hindi fonts setup for windows 10 free download Fonts for Windows and Mac. Browse by popularity, category or alphabetical.
How to change the default font for displaying Devanagari/Hindi on – Microsoft Community.Devanagari Hindi font download | font Devanagari
It can. Download an input method editor only for Win2k and WinXP. Once you download it, unzip it, and install. Click OK, OK. You may be asked to reboot. The workaround for now is to type in Notepad and copy paste to the outlook express window. If anybody knows the reason or fix for this please let us know.
You can download the takhti editor to type in devangari. It comes with its own keymap file, which is phonetic by default, and you also have the option to change it to suit your needs. It will also work on Win and Win XP. You should be able to view Devanagari content now. Now you can view the content on this website:. Reading and writing Hindi on Windows Tips to view this website and other electronic content, ie text, mail, news, web pages in Hindi, Konkani, Marathi, Nepali, Sanskrit and other languages using the devanagari script, on these operating systems:.
It may not be able to find the font because: The font is not installed on the machine, in which case, you can get any one of the fonts and copy it to your Windows Fonts folder or WinNT Fonts folder as the case may be. You should now have the font in this folder. The script-encoding-font mapping is not set in the browser. Choose devanagari from the list and click on any one of the fonts that appear in the box es below.
If no fonts appear in the list happens sometimes come out anyway, refresh the Hindi page. You should be able to see it now. Dependent vowels are referred to as “matras” in Sanskrit. They are always depicted in combination with a single consonant, or with a consonant cluster. The greatest variation among different Indian scripts is found in the rules for attaching dependent vowels to base characters. Information in this document relates primarily to the new implementation model.
Old behavior may be mentioned in comments about compatibility. Nukta – A combining character that alters the way a preceding consonant or matra is pronounced. OpenType tag – 4-byte identifier for script, language system or feature in the font. Post-base form of consonants – A variant form of a consonant that appears to the right of the base glyph. A consonant that takes a post-base form is preceded by the consonant s forming the base glyph plus a halant virama.
Post-base forms are usually spacing glyphs. Pre-base form of consonants – A variant form of a consonant that appears to the left of the base glyph. Note that most pre-base consonant forms are logically as well as visually before the base consonant. Half forms are examples of this kind of pre-base form.
In some scripts, though, a pre-base Ra may logically follow the base consonant that is, it follows it phonetically and in the character sequence of the text , even though it is presented visually before the base. The shaping engine detects such cases dynamically using the ‘pref’ feature and re-orders the pre-base-form glyph as needed.
Rakaar – The below-base form of “Ra” in Devanagari, which forms a ligature with most preceding consonant s. If the preceding consonant has a half form, then the consonant-rakaar combination, typically also has a half form. Reph – The above-base form of the letter “Ra” that is used in Devanagari when “Ra” is the first consonant in the syllable and is not the base consonant. Shaping Engine – Code responsible for shaping input, classified to a particular script. Split Matra – A matra that is decomposed into pieces for rendering.
Usually the different pieces appear in different positions relative to the base. For instance, part of the matra may be placed at the beginning of the cluster and another part at the end of the cluster. Syllable – A single unit of Indic text processing. Shaping of Indic text is performed independently for each syllable. Process of identifying boundaries of each syllable is described below. Vattu Rakar – A below-base form of a consonant.
Pre-base form 2. The base consonant 3. Above-base form reph 4. Post-base matra 5. The descriptions which follow will help font developers understand the rationale for the Devanagri feature encoding model and help application developers better understand how layout clients can divide responsibilities with operating system functions. The shaping engine divides the text into syllable clusters and identifies character properties. Character properties are used in parsing syllables and identifying its parts, in determining proper character or glyph reordering and in OpenType feature application.
Properties for each character are divided into two types: static properties and dynamic properties. Static properties define basic characteristics that do not change from font to font: character type consonant, matra, vedic sign, etc. Dynamic properties are font dependent and are retrieved by the shaping engine as the font is loaded. These properties affect shaping and reordering behavior.
In the new implementation model, consonant conjoining behavior is a dynamic property. Fonts define dynamic properties for consonants through implementing standard features. Consonant types and corresponding feature tags that the shaping engine reads from the font are:. This is done for each consonant. If these two glyphs form a ligature, with no additional glyphs in context, this means the consonant has the corresponding form.
Note that a font may be implemented to re-order a Ra to pre-base position only in certain syllables and display it as a below-base or post-base form otherwise. This means that the Pre-base-form classification is not mutually exclusive with either Below-base-form or Post-base-form classifications.
However, all classifications are determined as described above using context-free substitutions. Font-dependent character classification only defines consonant types. Reordering positions, however, are fixed for each character class.
The following steps should be repeated while there are characters left in the input sequence. All shaping operations are done on a syllable-by-syllable basis, independent from other characters. The consonant parts include all associated halants and nuktas. All parts are optional, except the main consonant. Also, a font may be implemented to re-order a Ra to pre-base position only in certain syllables and display it as a below-base or post-base form otherwise.
Thus, final determination of whether an occurrence of Ra in a specific syllable can be treated as a pre-base reordering Ra can be made only after the ‘pref’ feature has been applied to that syllable.
This information will then be used to determine the reordering behavior of the reph or any matras, vowel modifiers or stress marks. All other elements are classified by their position relative to the base: pre-base half forms and reordering pre-base Ra forms , below-base, above-base and post-base. Once the Indic shaping engine has analyzed the cluster as described above, it creates and manages a buffer of appropriately reordered elements glyphs representing the cluster, according to several rules described below.
The OpenType lookups in an Indic font must be written to match glyph sequences after re-ordering has occurred. OpenType fonts should not have substitutions that attempt to perform the re-ordering. If a font developer attempted to encode such reordering information in an OpenType font, they would need to add a huge number of many-to-many glyph mappings to cover the general algorithms that a shaping engine will use.
All characters from a string are first mapped to their nominal glyphs using the cmap lookup. The shaping engine then proceeds to shape substitute the glyphs using GSUB lookups. The features for localized forms and basic shaping forms are applied one at a time to the cluster or a relevant portion of the cluster.
The results after basic shaping forms features have been applied impact the final syllable analysis in terms of final designation of Ra as a pre-base reordering form and final reordering positions for reph and matras. Next, the features for presentation forms are applied to the entire cluster simultaneously.
Note: since the presentation form features are applied simultaneously over the entire cluster, several features are operationally equivalent to a single feature.
Multiple features are provided as an aid for font developers to organize the lookups they implement. Note: final reordering occurs after features for basic shaping forms have been applied and before features for presentation forms are applied.
Font developers must consider the effects of initial reordering before any features are applied and final reordering after basic shaping forms features have applied when they create GSUB feature and lookup tables. These predefined features are described and illustrated in the Features section and are applied in the order below. The shaping engine next processes the GPOS glyph positioning table, applying features concerned with positioning.
All features are applied simultaneously to the entire cluster. The font developer must consider the effects of re-ordering when creating the GPOS feature and lookup tables i. Commonly, a feature is required for dealing with the base glyph and one of the post-base, pre-base, above-base or below-base elements. Since it is not possible to reorder ALL of these elements next to the base glyph, we need to skip over the elements “in the middle” reordering-wise. The solution is to assign different mark attachment classes to different elements of the syllable and positional forms, and in any given lookup work with one mark type only.
For example, in above-base substitutions we need only consider above-base elements most of the time. Then, different attachment classes should be assigned to different marks depending on their position with respect to the base. For example, after the shaping engine has re-ordered elements within the cluster, matras will always occur before syllable modifier sign such as the candrabindu.
In an actual sequence, though, potentially some other mark glyph, such as nukta, may occur between the matra and the candrabindu. Thus, when processing the matra and candrabindu, you may need to allow for the possibility that some other mark glyph s may occur between them. In that way, a match will occur whether or not a mark from another class is present. Otherwise, the lookup would fail to apply. If Process ALL was used and another mark glyph followed the matra, this positioning lookup would fail to apply.
This example comes from the Devanagari font Mangal. Combining marks and signs that do not occur in conjunction with a valid base are considered invalid. Shaping engine implementations may adopt different strategies for how invalid marks are handled.
For example, a shaping engine implementation might treat an invalid mark as a separate cluster and display the stand-alone mark positioned on some default base glyph, such as a dotted circle. See Fallback Rendering in section 5. Shaping engine implementations may vary somewhat with regard to what sequences are or are not considered valid.
For instance, some implementations may impose a limit of at most one above-base vowel mark while others may not. If this character is not supported in the font, such implementations will display invalid signs on the missing glyph shape white box. The Indic-specific behavior retains the general behavior that ZWJ requests connection between text elements while ZWNJ inhibits connection between text elements. The following example illustrates some of these behaviors:. Just as the ZWJ can be used to display a half form in isolation, it can also be used to display a mark, sub- or post-base form in isolation.
Unlike the stand-alone half form, however, sequences to display them must begin with a no-break space NBSP. This is because mark glyphs must combine with a base glyph: to appear in isolation, a NBSP must be provided as a base. The features listed below have been defined to create the basic forms for the languages that are supported on Devanagari systems. Regardless of the model an application chooses for supporting layout of complex scripts, the shaping engine requires a fixed order for executing features within a run of text to consistently obtain the proper basic form.
The features of the basic shaping forms are applied one at a time to the cluster or portion of the cluster. The result impacts the analysis in terms of the conjoining behavior and final reordering.
The features of the presentation forms are applied next, to the entire cluster simultaneously. Mandatory features must always be applied; the discretionary presentation-forms features listed should be applied by default, but can be suppressed by a client normally at the discretion of the user.
The order of the lookups within each feature is also very important. For more information on lookups and defining features in OpenType fonts, see the Encoding section of the OpenType Font Development document.
Many of the registered features described and illustrated in this document are based on the Microsoft OpenType font Mangal Mangal. Mangal contains layout information and glyphs to support all of the required features for the Devanagari script and language systems supported.
Instructions for obtaining the Mangal font are given in the Appendix of this document. The illustrations in the following examples show the result of that particular feature being applied. Features must be written to match glyph sequences after re-ordering has occurred. Note that the input context for a feature may be the result of a previous feature having already been applied. This feature is used in association with OpenType language system tags to trigger lookups that will select alternate glyphs needed for language-specific typographic conventions.
The ‘locl’ should not be used in association with the default language system, but only used with other language system tags. See the Appendix of this document for language system tags associated with the Devanagari script. The nukta alters the way a preceding consonant or vowel is pronounced. The most common nukta forms have been defined as separate characters in Unicode with their own code points.
All consonants, as well as akhand forms should have an associated nukta form. Note – Rather than using substitution, nukta forms can also be created by positioning the nukta as a below-base mark on the base glyph using the ‘blwm’ positioning feature. The input context for the nukt feature always consists of the full form of the consonant. The half form of nukta consonants will be substituted using the half feature. Nukta feature applied substitutes Ka-nukta pre-composed glyph:.
An akhand is a required consonant ligatures that may appear anywhere in the syllable, and may or may not involve the base glyph. There are 2 Akhand ligatures in Devanagari.
The input context for the akhand feature always consists of the full form of the consonant. The half forms of Akhand ligatures will be called later in the half feature. Because the akhand feature is applied early in the sequence of features and is applied over the entire cluster, it can also be used to create certain forms that must take priority in particular contexts over forms that would be created during subsequent feature application. Applying this feature substitutes the Reph glyph.
Reph feature substitutes the mark glyph form of Ra. After final reordering, positioning is adjusted in the ‘abvm’ GPOS feature:. Reph feature applied with multiple consonants.
Note: reph is re-ordered to position on the 1st main consonant:. Applying this feature substitutes a consonant-rakaar below-base Ra ligature or an akhand-rakaar ligature. For consonants that do not form a ligature with the rakaar, the ‘rkrf’ feature may also be used to substitute a pre-composed glyph for the consonant plus rakaar. Note: the rakaar forms feature is required specifically for those scripts in which a half-form of a consonant-rakaar ligature can occur.
This includes Devanagari and Gujarati scripts. It is not used for the other Indic scripts. The half forms of rakaar ligatures should be substituted using the half feature.
The ‘rkrf’ feature applied to substitute the rakaar form of Ka:. For consonants that do not form a ligature with the rakaar like the Cha the ‘rkrf’ feature may also be used to substitute a pre-composed glyph for the consonant plus rakaar combination:. This feature substitutes the below-base forms of Consonants like the Ra in Devanagari aka ‘rakaar’ when the rakaar does not form a ligature with the preceding consonant. If the rakaar and preceding consonant do form a ligature, it should be substituted in the previous feature ‘rkrf’.
Halant plus Ra preceded by a consonant which does not form a ‘rkrf’ ligature substitutes the rakaar form:. Applying this feature substitutes half forms – forms of consonants used in the pre-base position. Consonants that have a half form should be listed in the ‘half’ feature. Devanagari has distinctly shaped half forms for most of the consonants as well as nukta and Akhand glyphs. Note – the result of listing a consonant in the half feature whether it has a true half form or not will affect the re-ordering and positioning of the reph and pre-pended matras.
See illustration in the Introduction section of this document. Example 1 – Half feature substitutes half form of Ka:. Example 2 – Half feature applied to multiple consonants:. Example 3 – Half feature used to substitute half form of Ta-Nukta:. Example 4 – Half form of Akhand ligature KaSsa :. Example 5 – Half feature applied to Da, produces ‘halant’ form of Da since it has no distinct half form shape: remember listing the Da in the half feature will cause it to behave like a half form for purposes of re-ordering.
The ‘vatu’ feature can be used to substitute a ligature of a full or half form consonant plus a below-base vattu rakaar mark. This feature was needed in earlier implementations to combine rakaar with both full and half forms It is not useful, however, for newer implementations that distinguish consonants that do not have half forms from other consonants, for purposes of re-ordering the reph and pre-pended matras.
In Devanagari, this feature is not required if the ‘rkrf’ feature is used, however it is still supported for backward compatibility with existing fonts.
Example; the ‘vatu’ feature used in earlier implementations of the shaping engine to substitute a ligature of consonant full or half form plus vattu rakaar , which now should be created using the ‘rkrf’ and ‘half’ features. Apply feature ‘cjct’ to substitute conjunct forms where the first consonant in the consonant-cluster pair does not have a half form. This feature allows for control over re-ordering of reph and pre-pended matras in case of consonants that do not take half forms yet do form conjunct ligatures in combination with certain following consonants.
After the glyphs have been reordered, the presentation lookups are applied to provide the best typographic rendering of the text. The features of the presentation forms are applied to the entire cluster simultaneously, executing lookups within each feature in the order that they are specified in the font.
The pres, abvs, blws, psts and haln features are all mandatory for software implementations: they are required for correct script behaviour and none should ever be treated as discretionary. Because of this and because they are all applied simultaneously over entire clusters, they are not functionally different: a set of lookups could be divided between these features or grouped together under one of them with no difference in effect.
These multiple features are provided, however, as an aid to the font developer for organizing lookups based on the combinations of glyphs they apply to. There are no specific requirements on how each should be used; the examples provided below illustrate typical usage, however. This feature is used to substitute pre-base consonant conjuncts made with half forms, the type most common in Devanagari.
The resulting conjunct can be in full or half form. See examples This feature is also used to select typographically correct forms of the I-Matra. For example, a font can have several versions of the I-Matra to be used in context with different consonant bases or clusters.
In addition the ‘pres’ feature can contain pre-composed ligatures of the I-matra with certain bases. Example 5 – The ‘pres’ feature is also used to substitute variations of the I-Matra based on context:. Note; in this example ‘glyph groups’ listing consonants with similar widths, have been used for substitution context. This feature is used for glyph substitutions involving above-base marks. Such substitutions might be used to select contextual forms of marks, to create mark-mark ligatures, or to create mark-base ligatures.
Specific context-dependent forms or below-base consonants are handled by this lookup as well. Example 1- contextual ‘abvs’ substitution; used to select smaller candrabindu, when preceded by vowel short E. Note- the positioning of the ligature matra is done in the ‘abvm’ feature:. This feature is used for glyph substitutions involving below-base marks or consonants. Such substitutions can be used to create conjuncts of base glyphs with below-base consonants, below mark ligatures or below mark-base ligatures.
Specific context-dependent forms are handled by this lookup as well. Example 3- ‘blws’ substitution used to create below-mark to base conjunct:. This feature is used to substitute post-base consonants or matras.
Such substitutions can be used to create conjuncts of base glyphs with post-base consonants or post-base matra ligatures. It can also be used to specify contextual alternates of post-base forms.
Example 1- contextual ‘psts’ substitution; used to select alternate form of vowel Ii, when preceded by a Ka. Example 2 – contextual ‘psts’ substitution; Using MS Volt, different shapes of the vowel Ii are substituted based on the context.
Note; in this example ‘glyph groups’ with similar widths are used for the context:.
Devnagri hindi font for windows 10.Devanagari Regular
Download an input method editor only for Win2k and WinXP. Once you download it, unzip it, and install. Click OK, OK. You may be asked to reboot. The workaround for now is to type in Notepad and copy paste to the outlook express window.
If anybody knows the reason or fix for this please let us know. You can download the takhti editor to type in devangari. It comes with its own keymap file, which is phonetic by default, and you also have the option to change it to suit your needs. It will also work on Win and Win XP. You should be able to view Devanagari content now. Now you can view the content on this website:. Reading and writing Hindi on Windows Tips to view this website and other electronic content, ie text, mail, news, web pages in Hindi, Konkani, Marathi, Nepali, Sanskrit and other languages using the devanagari script, on these operating systems:.
It may not be able to find the font because: The font is not installed on the machine, in which case, you can get any one of the fonts and copy it to your Windows Fonts folder or WinNT Fonts folder as the case may be.
You should now have the font in this folder. The script-encoding-font mapping is not set in the browser. Choose devanagari from the list and click on any one of the fonts that appear in the box es below. If no fonts appear in the list happens sometimes come out anyway, refresh the Hindi page. You should be able to see it now. If not, close the browser windows and reopen them, if even that doesn’t work, reboot and try again. All consonants, as well as akhand forms should have an associated nukta form.
Note – Rather than using substitution, nukta forms can also be created by positioning the nukta as a below-base mark on the base glyph using the ‘blwm’ positioning feature. The input context for the nukt feature always consists of the full form of the consonant. The half form of nukta consonants will be substituted using the half feature. Nukta feature applied substitutes Ka-nukta pre-composed glyph:. An akhand is a required consonant ligatures that may appear anywhere in the syllable, and may or may not involve the base glyph.
There are 2 Akhand ligatures in Devanagari. The input context for the akhand feature always consists of the full form of the consonant. The half forms of Akhand ligatures will be called later in the half feature. Because the akhand feature is applied early in the sequence of features and is applied over the entire cluster, it can also be used to create certain forms that must take priority in particular contexts over forms that would be created during subsequent feature application.
Applying this feature substitutes the Reph glyph. Reph feature substitutes the mark glyph form of Ra. After final reordering, positioning is adjusted in the ‘abvm’ GPOS feature:. Reph feature applied with multiple consonants. Note: reph is re-ordered to position on the 1st main consonant:. Applying this feature substitutes a consonant-rakaar below-base Ra ligature or an akhand-rakaar ligature. For consonants that do not form a ligature with the rakaar, the ‘rkrf’ feature may also be used to substitute a pre-composed glyph for the consonant plus rakaar.
Note: the rakaar forms feature is required specifically for those scripts in which a half-form of a consonant-rakaar ligature can occur. This includes Devanagari and Gujarati scripts. It is not used for the other Indic scripts. The half forms of rakaar ligatures should be substituted using the half feature. The ‘rkrf’ feature applied to substitute the rakaar form of Ka:.
For consonants that do not form a ligature with the rakaar like the Cha the ‘rkrf’ feature may also be used to substitute a pre-composed glyph for the consonant plus rakaar combination:. This feature substitutes the below-base forms of Consonants like the Ra in Devanagari aka ‘rakaar’ when the rakaar does not form a ligature with the preceding consonant.
If the rakaar and preceding consonant do form a ligature, it should be substituted in the previous feature ‘rkrf’. Halant plus Ra preceded by a consonant which does not form a ‘rkrf’ ligature substitutes the rakaar form:.
Applying this feature substitutes half forms – forms of consonants used in the pre-base position. Consonants that have a half form should be listed in the ‘half’ feature. Devanagari has distinctly shaped half forms for most of the consonants as well as nukta and Akhand glyphs.
Note – the result of listing a consonant in the half feature whether it has a true half form or not will affect the re-ordering and positioning of the reph and pre-pended matras. See illustration in the Introduction section of this document.
Example 1 – Half feature substitutes half form of Ka:. Example 2 – Half feature applied to multiple consonants:. Example 3 – Half feature used to substitute half form of Ta-Nukta:. Example 4 – Half form of Akhand ligature KaSsa :.
Example 5 – Half feature applied to Da, produces ‘halant’ form of Da since it has no distinct half form shape: remember listing the Da in the half feature will cause it to behave like a half form for purposes of re-ordering. The ‘vatu’ feature can be used to substitute a ligature of a full or half form consonant plus a below-base vattu rakaar mark.
This feature was needed in earlier implementations to combine rakaar with both full and half forms It is not useful, however, for newer implementations that distinguish consonants that do not have half forms from other consonants, for purposes of re-ordering the reph and pre-pended matras. In Devanagari, this feature is not required if the ‘rkrf’ feature is used, however it is still supported for backward compatibility with existing fonts.
Example; the ‘vatu’ feature used in earlier implementations of the shaping engine to substitute a ligature of consonant full or half form plus vattu rakaar , which now should be created using the ‘rkrf’ and ‘half’ features.
Apply feature ‘cjct’ to substitute conjunct forms where the first consonant in the consonant-cluster pair does not have a half form. This feature allows for control over re-ordering of reph and pre-pended matras in case of consonants that do not take half forms yet do form conjunct ligatures in combination with certain following consonants. After the glyphs have been reordered, the presentation lookups are applied to provide the best typographic rendering of the text.
The features of the presentation forms are applied to the entire cluster simultaneously, executing lookups within each feature in the order that they are specified in the font.
The pres, abvs, blws, psts and haln features are all mandatory for software implementations: they are required for correct script behaviour and none should ever be treated as discretionary. Because of this and because they are all applied simultaneously over entire clusters, they are not functionally different: a set of lookups could be divided between these features or grouped together under one of them with no difference in effect.
These multiple features are provided, however, as an aid to the font developer for organizing lookups based on the combinations of glyphs they apply to. There are no specific requirements on how each should be used; the examples provided below illustrate typical usage, however. This feature is used to substitute pre-base consonant conjuncts made with half forms, the type most common in Devanagari. The resulting conjunct can be in full or half form. See examples This feature is also used to select typographically correct forms of the I-Matra.
For example, a font can have several versions of the I-Matra to be used in context with different consonant bases or clusters. In addition the ‘pres’ feature can contain pre-composed ligatures of the I-matra with certain bases. Example 5 – The ‘pres’ feature is also used to substitute variations of the I-Matra based on context:.
Note; in this example ‘glyph groups’ listing consonants with similar widths, have been used for substitution context. This feature is used for glyph substitutions involving above-base marks. Such substitutions might be used to select contextual forms of marks, to create mark-mark ligatures, or to create mark-base ligatures. Specific context-dependent forms or below-base consonants are handled by this lookup as well.
Example 1- contextual ‘abvs’ substitution; used to select smaller candrabindu, when preceded by vowel short E. Note- the positioning of the ligature matra is done in the ‘abvm’ feature:. This feature is used for glyph substitutions involving below-base marks or consonants. Such substitutions can be used to create conjuncts of base glyphs with below-base consonants, below mark ligatures or below mark-base ligatures.
Specific context-dependent forms are handled by this lookup as well. Example 3- ‘blws’ substitution used to create below-mark to base conjunct:. This feature is used to substitute post-base consonants or matras.
Such substitutions can be used to create conjuncts of base glyphs with post-base consonants or post-base matra ligatures. It can also be used to specify contextual alternates of post-base forms.
Example 1- contextual ‘psts’ substitution; used to select alternate form of vowel Ii, when preceded by a Ka. Example 2 – contextual ‘psts’ substitution; Using MS Volt, different shapes of the vowel Ii are substituted based on the context. Note; in this example ‘glyph groups’ with similar widths are used for the context:. This feature is used to substitute a pre-composed halant form of a base or conjunct base glyph in syllables ending with a halant.
Rather than using substitution, halant forms can also be created by positioning the halant as a below-base mark on the base glyph using the ‘blwm’ positioning feature. This feature is applied only on the base glyph if the syllable ends with a halant, or in the case of non-final consonants that do not take a half form and do not form a conjunct ligature with the following consonant.
Example 1 – ‘haln’ feature used to substitute halant form of base glyph:. Example 2 – ‘haln’ feature used to substitute halant form of conjunct base glyph:. Unlike the previous presentation lookups, the ‘calt’ feature is optional and is used to substitute discretionary contextual alternates. It is important to note that an application may allow users to turn off this feature, therefore should not be used for any obligatory Devanagari typography.
This feature covers positioning lookups that adjust distances between glyphs, such as kerning between pre- and post-base elements and the base glyph.
Note; the feature ‘dist’ can be used in the same way as the ‘kern’ feature. The advantage of using the ‘dist’ feature is that it does not rely on the application to enable kerning.
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 above-base marks. The ‘abvm’ lookup in MS Volt using ‘Anchor Attachment’ for adjusting positions of above-marks over bases:. The ‘abvm’ lookup in MS Volt using ‘Pair Adjustment’ for adjusting positions of above-marks with post-base vowel:.
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. The ‘blwm’ lookup in MS Volt using ‘Anchor Attachment’ for adjusting positions of below-marks with bases:. The ‘blwm’ lookup in MS Volt using ‘Anchor Attachment’ can also be used for adjusting positions of below-marks with other below-marks.
Complex Devanagari syllable formation is possible using the wide range of features available in OpenType. The following examples show how the shaping engine applies the OpenType features, one at a time to the input string. These combinations do not necessarily represent actual syllables or words, but are meant to illustrate the various OpenType features in a Devanagari font.
Example 1: Input text string and resulting display as OT features are applied. Example 2: Input text string and resulting display as OT features are applied.
Example 3: Input text string and resulting display as OT features are applied. Example 4: Input text string and resulting display as OT features are applied. Example 5: Input text string and resulting display as OT features are applied. Features are encoded according to both a designated script and language system. There are different language systems defined for the Hindi, Sanskrit, and Marathi languages, although they all use the Devanagari script.
Currently most shaping engine implementations only support the “default” language system 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 table lists the registered tag names for script and language systems. Note for new Indic shaping implementation ‘dev2’ is used old-behavior implementations used ‘deva’. 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. It is provided for illustration only, and may not be altered or redistributed.
MANGAL contains layout information and glyphs to support all of the required features for the scripts and languages supported. 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.
The font is available as part of the VOLT supplemental files. Once you install VOLT you need to run a separate installer to get the supplemental files.
Both installers are part of the VOLT download package. Skip to main content. This browser is no longer supported. Download Microsoft Edge More info.
Table of contents Exit focus mode. Table of contents. The stages are: Analyze the text sequence; breaking it into syllable clusters Reorder the characters as necessary Apply OpenType GSUB font features to get the correct glyph shape Apply OpenType GPOS features to position glyphs or marks The descriptions which follow will help font developers understand the rationale for the Devanagri feature encoding model and help application developers better understand how layout clients can divide responsibilities with operating system functions.
Analyze the text Character properties The shaping engine divides the text into syllable clusters and identifies character properties. Retrieving dynamic character properties from Indic fonts Fonts define dynamic properties for consonants through implementing standard features. Indic input processing The following steps should be repeated while there are characters left in the input sequence. Indic clusters are subject to the following constraints: Only one reph is allowed per syllable.
Only one pre-base reordering Ra is allowed per syllable. A nukta can be placed on a consonant, matra or independent vowel. It cannot be placed on a pre-composed nukta character. One matra from each positioning class is permitted exception in the Kannada script. A composite matra is treated as belonging to all the classes from which its components belong.
One syllable modifier sign is allowed per cluster. Vedic signs are combining marks used for Sanskrit that should be included in all Indic scripts. Danda and Double Danda are punctuation marks that should be included in all Indic scripts. Reorder characters Once the Indic shaping engine has analyzed the cluster as described above, it creates and manages a buffer of appropriately reordered elements glyphs representing the cluster, according to several rules described below. Find base consonant: The shaping engine finds the base consonant of the syllable, using the following algorithm: starting from the end of the syllable, move backwards until a consonant is found that does not have a below-base or post-base form post-base forms have to follow below-base forms , or that is not a pre-base reordering Ra, or arrive at the first consonant.
The consonant stopped at will be the base. Decompose and reorder Matras: Each matra and any syllable modifier sign in the cluster are moved to the appropriate position relative to the consonant s in the cluster. The shaping engine decomposes two- or three-part matras into their constituent parts before any repositioning. Matra characters are classified by which consonant in a conjunct they have affinity for and are reordered to the following positions: Before first half form in the syllable After subjoined consonants After post-form consonant After main consonant for above marks Reorder marks to canonical order: Adjacent nukta and halant or nukta and vedic sign are always repositioned if necessary, so that the nukta is first.
Final reordering: After the localized forms and basic shaping forms GSUB features have been applied see below , the shaping engine performs some final glyph reordering before applying all the remaining font features to the entire cluster.
Reorder matras: If a pre-base matra character had been reordered before applying basic features, the glyph can be moved closer to the main consonant based on whether half-forms had been formed.
However, it will be reordered according to the basic-forms shaping results. Possible positions for reph, depending on the script, are; after main, before post-base consonant forms, and after post-base consonant forms. If reph should be positioned after post-base consonant forms, proceed to step ‘e’. If the reph repositioning class is not after post-base: target position is after the first explicit halant glyph between the first post-reph consonant and last main consonant. If such position is found, this is the target position.
Otherwise, proceed to the next step. Note: in old-implementation fonts, where classifications were fixed in shaping engine, there was no case where reph position will be found on this step. If reph should be repositioned after the main consonant: from the first consonant not ligated with main, or find the first consonant that is not a potential pre-base reordering Ra. If reph should be positioned before post-base consonant, find first post-base classified consonant not ligated with main.
If no consonant is found, the target position should be before the first matra, syllable modifier sign or vedic sign. If no consonant is found in steps ‘c’ or ‘d’, move reph to a position immediately before the first post-base matra, syllable modifier sign or vedic sign that has a reordering class after the intended reph position. For example, if the reordering position for reph is post-main, it will skip above-base matras that also have a post-main position.
Otherwise, reorder reph to the end of the syllable. Reorder pre-base reordering consonants: If a pre-base reordering consonant is found, reorder it according to the following rules: Only reorder a glyph produced by substitution during application of the ‘pref’ feature.
Note that a font may shape a Ra consonant with the ‘pref’ feature generally but block it in certain contexts. Try to find a target position the same way as for pre-base matra. If it is found, reorder pre-base consonant glyph.
If position is not found, reorder immediately before main consonant. Shaping features: Localized forms Apply feature ‘locl’ to select language-specific forms. Basic Shaping forms Apply feature ‘nukt’ to substitute nukta forms of consonants. Apply feature ‘akhn’ to substitute required akhand ligatures, or to substitute forms that take precedence over forms produced by features applied later. Apply feature ‘rphf’ to substitute the reph glyph above-base form of ‘Ra’.
Apply feature ‘rkrf’ to substitute any rakaar ligatures. Apply feature ‘half’ to substitute half forms of pre-base consonants. Apply feature ‘vatu’ to substitute ligature consonant-vattu or conjunct-vattu forms for sequences of a consonant or conjunct glyph full or half form followed by the below-base rakaar mark.
This feature is not needed if the rkrf feature is used, but is available for old-behavior implementations. Apply feature ‘cjct’ to substitute conjunct forms. This is needed particularly for ligature conjuct forms when the pre-base consonant does not have a half form.
Presentation forms Apply feature ‘pres’ to substitute pre-base consonant conjuncts and pre-base matra conjuncts. Apply feature ‘abvs’ to substitute above-base matra conjuncts, reph conjuncts, above-base vowel modifiers and above-base stress and tone marks. Apply feature ‘blws’ to substitute below-base consonant conjuncts, below-base matra conjuncts, below-base vowel modifier forms and below-base stress and tone mark forms.
Apply feature ‘psts’ to substitute post-base consonant conjuncts, post-base matra conjuncts and post-base vowel modifiers. Apply feature ‘haln’ to substitute the halant form of base or conjunct base glyph in syllables ending with a halant.
Apply feature ‘calt’ to substitute the contextual alternate of a consonant. Positioning features: Kerning Apply feature ‘kern’ to adjust distances e. Apply feature ‘dist’ to adjust distances. Base elements Commonly, a feature is required for dealing with the base glyph and one of the post-base, pre-base, above-base or below-base elements. This example comes from the Devanagari font Mangal Invalid Combining Marks Combining marks and signs that do not occur in conjunction with a valid base are considered invalid.
The main intent of using ZWJ in this context is to prevent a ligature-conjunct from forming and in Devanagari or Gujuarati, to request a half form, below-base form or post-base form instead. The Indic engine does not need to take any action to prevent ligature-conjuct formation: the presence of ZWJ will prevent GSUB substitution lookups from matching the input glyph sequence. If the first consonant does not have a half form, an overt-halant form should result, which would also happen with no particular action by the engine.
A secondary intent of using ZWJ in this context is to prevent the display of reph in the case that the first consonant is RA. Note that use of either joiner in this context should prevent formation and re-ordering of reph when RA is the first consonant.
Apart from the requirement not to create and re-order reph, however, no additional actions in the engine are required. The main intent of using ZWNJ is to prevent conjunct ligature or half forms from forming, and to display an explicit halant form instead.
Developing OpenType Fonts for Devanagari Script – Typography | Microsoft Docs
But you obviously came here because you were not able to see these pages in the first place. First, what do you see right now when you go to the BBC Hindi page? It should look like this. Thanks to Sunil Bhadekar for the image. You’ll start seeing the hindi characters, or boxes.
If you see boxes, it means the browser is not able to find a a utf-8 encoded font to show the characters, so it just replaces the missing “glyphs” or shapes, with boxes. If you are on win2k or xp, you might find these tips useful. You will be asked to enter the Windows cd. System will have to be rebooted, after which you can choose the keyboard layouts.
You will be asked to enter the Windows XP cd. The layouts were developed by Indian government agencies and you can get them from the Sun website. You can copy or print the keymaps for ready reference. It can. Download an input method editor only for Win2k and WinXP. Once you download it, unzip it, and install.
Click OK, OK. You may be asked to reboot. The workaround for now is to type in Notepad and copy paste to the outlook express window. If anybody knows the reason or fix for this please let us know. Reordering positions, however, are fixed for each character class.
The following steps should be repeated while there are characters left in the input sequence. All shaping operations are done on a syllable-by-syllable basis, independent from other characters. The consonant parts include all associated halants and nuktas. All parts are optional, except the main consonant. Also, a font may be implemented to re-order a Ra to pre-base position only in certain syllables and display it as a below-base or post-base form otherwise.
Thus, final determination of whether an occurrence of Ra in a specific syllable can be treated as a pre-base reordering Ra can be made only after the ‘pref’ feature has been applied to that syllable. This information will then be used to determine the reordering behavior of the reph or any matras, vowel modifiers or stress marks. All other elements are classified by their position relative to the base: pre-base half forms and reordering pre-base Ra forms , below-base, above-base and post-base.
Once the Indic shaping engine has analyzed the cluster as described above, it creates and manages a buffer of appropriately reordered elements glyphs representing the cluster, according to several rules described below.
The OpenType lookups in an Indic font must be written to match glyph sequences after re-ordering has occurred. OpenType fonts should not have substitutions that attempt to perform the re-ordering. If a font developer attempted to encode such reordering information in an OpenType font, they would need to add a huge number of many-to-many glyph mappings to cover the general algorithms that a shaping engine will use.
All characters from a string are first mapped to their nominal glyphs using the cmap lookup. The shaping engine then proceeds to shape substitute the glyphs using GSUB lookups. The features for localized forms and basic shaping forms are applied one at a time to the cluster or a relevant portion of the cluster. The results after basic shaping forms features have been applied impact the final syllable analysis in terms of final designation of Ra as a pre-base reordering form and final reordering positions for reph and matras.
Next, the features for presentation forms are applied to the entire cluster simultaneously. Note: since the presentation form features are applied simultaneously over the entire cluster, several features are operationally equivalent to a single feature.
Multiple features are provided as an aid for font developers to organize the lookups they implement. Note: final reordering occurs after features for basic shaping forms have been applied and before features for presentation forms are applied.
Font developers must consider the effects of initial reordering before any features are applied and final reordering after basic shaping forms features have applied when they create GSUB feature and lookup tables. These predefined features are described and illustrated in the Features section and are applied in the order below. The shaping engine next processes the GPOS glyph positioning table, applying features concerned with positioning. All features are applied simultaneously to the entire cluster.
The font developer must consider the effects of re-ordering when creating the GPOS feature and lookup tables i. Commonly, a feature is required for dealing with the base glyph and one of the post-base, pre-base, above-base or below-base elements.
Since it is not possible to reorder ALL of these elements next to the base glyph, we need to skip over the elements “in the middle” reordering-wise. The solution is to assign different mark attachment classes to different elements of the syllable and positional forms, and in any given lookup work with one mark type only. For example, in above-base substitutions we need only consider above-base elements most of the time. Then, different attachment classes should be assigned to different marks depending on their position with respect to the base.
For example, after the shaping engine has re-ordered elements within the cluster, matras will always occur before syllable modifier sign such as the candrabindu. In an actual sequence, though, potentially some other mark glyph, such as nukta, may occur between the matra and the candrabindu. Thus, when processing the matra and candrabindu, you may need to allow for the possibility that some other mark glyph s may occur between them.
In that way, a match will occur whether or not a mark from another class is present. Otherwise, the lookup would fail to apply. If Process ALL was used and another mark glyph followed the matra, this positioning lookup would fail to apply.
This example comes from the Devanagari font Mangal. Combining marks and signs that do not occur in conjunction with a valid base are considered invalid. Shaping engine implementations may adopt different strategies for how invalid marks are handled. For example, a shaping engine implementation might treat an invalid mark as a separate cluster and display the stand-alone mark positioned on some default base glyph, such as a dotted circle.
See Fallback Rendering in section 5. Shaping engine implementations may vary somewhat with regard to what sequences are or are not considered valid. For instance, some implementations may impose a limit of at most one above-base vowel mark while others may not. If this character is not supported in the font, such implementations will display invalid signs on the missing glyph shape white box.
The Indic-specific behavior retains the general behavior that ZWJ requests connection between text elements while ZWNJ inhibits connection between text elements.
The following example illustrates some of these behaviors:. Just as the ZWJ can be used to display a half form in isolation, it can also be used to display a mark, sub- or post-base form in isolation. Unlike the stand-alone half form, however, sequences to display them must begin with a no-break space NBSP. This is because mark glyphs must combine with a base glyph: to appear in isolation, a NBSP must be provided as a base.
The features listed below have been defined to create the basic forms for the languages that are supported on Devanagari systems. Regardless of the model an application chooses for supporting layout of complex scripts, the shaping engine requires a fixed order for executing features within a run of text to consistently obtain the proper basic form.
The features of the basic shaping forms are applied one at a time to the cluster or portion of the cluster. The result impacts the analysis in terms of the conjoining behavior and final reordering. The features of the presentation forms are applied next, to the entire cluster simultaneously. Mandatory features must always be applied; the discretionary presentation-forms features listed should be applied by default, but can be suppressed by a client normally at the discretion of the user.
The order of the lookups within each feature is also very important. For more information on lookups and defining features in OpenType fonts, see the Encoding section of the OpenType Font Development document.
Many of the registered features described and illustrated in this document are based on the Microsoft OpenType font Mangal Mangal.
Mangal contains layout information and glyphs to support all of the required features for the Devanagari script and language systems supported. Instructions for obtaining the Mangal font are given in the Appendix of this document. The illustrations in the following examples show the result of that particular feature being applied. Features must be written to match glyph sequences after re-ordering has occurred.
Note that the input context for a feature may be the result of a previous feature having already been applied. This feature is used in association with OpenType language system tags to trigger lookups that will select alternate glyphs needed for language-specific typographic conventions. The ‘locl’ should not be used in association with the default language system, but only used with other language system tags. See the Appendix of this document for language system tags associated with the Devanagari script.
The nukta alters the way a preceding consonant or vowel is pronounced. The most common nukta forms have been defined as separate characters in Unicode with their own code points.
All consonants, as well as akhand forms should have an associated nukta form. Note – Rather than using substitution, nukta forms can also be created by positioning the nukta as a below-base mark on the base glyph using the ‘blwm’ positioning feature. The input context for the nukt feature always consists of the full form of the consonant. The half form of nukta consonants will be substituted using the half feature. Nukta feature applied substitutes Ka-nukta pre-composed glyph:.
An akhand is a required consonant ligatures that may appear anywhere in the syllable, and may or may not involve the base glyph. There are 2 Akhand ligatures in Devanagari. The input context for the akhand feature always consists of the full form of the consonant.
The half forms of Akhand ligatures will be called later in the half feature. Because the akhand feature is applied early in the sequence of features and is applied over the entire cluster, it can also be used to create certain forms that must take priority in particular contexts over forms that would be created during subsequent feature application.
Applying this feature substitutes the Reph glyph. Reph feature substitutes the mark glyph form of Ra. After final reordering, positioning is adjusted in the ‘abvm’ GPOS feature:. Reph feature applied with multiple consonants. Note: reph is re-ordered to position on the 1st main consonant:. Applying this feature substitutes a consonant-rakaar below-base Ra ligature or an akhand-rakaar ligature. For consonants that do not form a ligature with the rakaar, the ‘rkrf’ feature may also be used to substitute a pre-composed glyph for the consonant plus rakaar.
Note: the rakaar forms feature is required specifically for those scripts in which a half-form of a consonant-rakaar ligature can occur. This includes Devanagari and Gujarati scripts. It is not used for the other Indic scripts. The half forms of rakaar ligatures should be substituted using the half feature. The ‘rkrf’ feature applied to substitute the rakaar form of Ka:. For consonants that do not form a ligature with the rakaar like the Cha the ‘rkrf’ feature may also be used to substitute a pre-composed glyph for the consonant plus rakaar combination:.
This feature substitutes the below-base forms of Consonants like the Ra in Devanagari aka ‘rakaar’ when the rakaar does not form a ligature with the preceding consonant. If the rakaar and preceding consonant do form a ligature, it should be substituted in the previous feature ‘rkrf’. Halant plus Ra preceded by a consonant which does not form a ‘rkrf’ ligature substitutes the rakaar form:. Applying this feature substitutes half forms – forms of consonants used in the pre-base position.
Consonants that have a half form should be listed in the ‘half’ feature. Devanagari has distinctly shaped half forms for most of the consonants as well as nukta and Akhand glyphs. Note – the result of listing a consonant in the half feature whether it has a true half form or not will affect the re-ordering and positioning of the reph and pre-pended matras.
See illustration in the Introduction section of this document. Example 1 – Half feature substitutes half form of Ka:. Example 2 – Half feature applied to multiple consonants:. Example 3 – Half feature used to substitute half form of Ta-Nukta:. Example 4 – Half form of Akhand ligature KaSsa :. Example 5 – Half feature applied to Da, produces ‘halant’ form of Da since it has no distinct half form shape: remember listing the Da in the half feature will cause it to behave like a half form for purposes of re-ordering.
The ‘vatu’ feature can be used to substitute a ligature of a full or half form consonant plus a below-base vattu rakaar mark. This feature was needed in earlier implementations to combine rakaar with both full and half forms It is not useful, however, for newer implementations that distinguish consonants that do not have half forms from other consonants, for purposes of re-ordering the reph and pre-pended matras.
In Devanagari, this feature is not required if the ‘rkrf’ feature is used, however it is still supported for backward compatibility with existing fonts. Example; the ‘vatu’ feature used in earlier implementations of the shaping engine to substitute a ligature of consonant full or half form plus vattu rakaar , which now should be created using the ‘rkrf’ and ‘half’ features. Apply feature ‘cjct’ to substitute conjunct forms where the first consonant in the consonant-cluster pair does not have a half form.
This feature allows for control over re-ordering of reph and pre-pended matras in case of consonants that do not take half forms yet do form conjunct ligatures in combination with certain following consonants. After the glyphs have been reordered, the presentation lookups are applied to provide the best typographic rendering of the text. The features of the presentation forms are applied to the entire cluster simultaneously, executing lookups within each feature in the order that they are specified in the font.
The pres, abvs, blws, psts and haln features are all mandatory for software implementations: they are required for correct script behaviour and none should ever be treated as discretionary.
Because of this and because they are all applied simultaneously over entire clusters, they are not functionally different: a set of lookups could be divided between these features or grouped together under one of them with no difference in effect.
These multiple features are provided, however, as an aid to the font developer for organizing lookups based on the combinations of glyphs they apply to. There are no specific requirements on how each should be used; the examples provided below illustrate typical usage, however. This feature is used to substitute pre-base consonant conjuncts made with half forms, the type most common in Devanagari. The resulting conjunct can be in full or half form. See examples This feature is also used to select typographically correct forms of the I-Matra.
For example, a font can have several versions of the I-Matra to be used in context with different consonant bases or clusters. In addition the ‘pres’ feature can contain pre-composed ligatures of the I-matra with certain bases.
Example 5 – The ‘pres’ feature is also used to substitute variations of the I-Matra based on context:. Note; in this example ‘glyph groups’ listing consonants with similar widths, have been used for substitution context. This feature is used for glyph substitutions involving above-base marks. Such substitutions might be used to select contextual forms of marks, to create mark-mark ligatures, or to create mark-base ligatures. Specific context-dependent forms or below-base consonants are handled by this lookup as well.
Example 1- contextual ‘abvs’ substitution; used to select smaller candrabindu, when preceded by vowel short E. Note- the positioning of the ligature matra is done in the ‘abvm’ feature:. This feature is used for glyph substitutions involving below-base marks or consonants. Such substitutions can be used to create conjuncts of base glyphs with below-base consonants, below mark ligatures or below mark-base ligatures.
Specific context-dependent forms are handled by this lookup as well. Example 3- ‘blws’ substitution used to create below-mark to base conjunct:. This feature is used to substitute post-base consonants or matras. Such substitutions can be used to create conjuncts of base glyphs with post-base consonants or post-base matra ligatures. It can also be used to specify contextual alternates of post-base forms. Example 1- contextual ‘psts’ substitution; used to select alternate form of vowel Ii, when preceded by a Ka.
Example 2 – contextual ‘psts’ substitution; Using MS Volt, different shapes of the vowel Ii are substituted based on the context. Note; in this example ‘glyph groups’ with similar widths are used for the context:.
This feature is used to substitute a pre-composed halant form of a base or conjunct base glyph in syllables ending with a halant. Rather than using substitution, halant forms can also be created by positioning the halant as a below-base mark on the base glyph using the ‘blwm’ positioning feature. This feature is applied only on the base glyph if the syllable ends with a halant, or in the case of non-final consonants that do not take a half form and do not form a conjunct ligature with the following consonant.
Example 1 – ‘haln’ feature used to substitute halant form of base glyph:. Example 2 – ‘haln’ feature used to substitute halant form of conjunct base glyph:. Unlike the previous presentation lookups, the ‘calt’ feature is optional and is used to substitute discretionary contextual alternates.
It is important to note that an application may allow users to turn off this feature, therefore should not be used for any obligatory Devanagari typography. This feature covers positioning lookups that adjust distances between glyphs, such as kerning between pre- and post-base elements and the base glyph. Note; the feature ‘dist’ can be used in the same way as the ‘kern’ feature. The advantage of using the ‘dist’ feature is that it does not rely on the application to enable kerning.
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 above-base marks. The ‘abvm’ lookup in MS Volt using ‘Anchor Attachment’ for adjusting positions of above-marks over bases:.
The ‘abvm’ lookup in MS Volt using ‘Pair Adjustment’ for adjusting positions of above-marks with post-base vowel:. 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.
The ‘blwm’ lookup in MS Volt using ‘Anchor Attachment’ for adjusting positions of below-marks with bases:. The ‘blwm’ lookup in MS Volt using ‘Anchor Attachment’ can also be used for adjusting positions of below-marks with other below-marks. Complex Devanagari syllable formation is possible using the wide range of features available in OpenType.
The following examples show how the shaping engine applies the OpenType features, one at a time to the input string. These combinations do not necessarily represent actual syllables or words, but are meant to illustrate the various OpenType features in a Devanagari font. Example 1: Input text string and resulting display as OT features are applied. Example 2: Input text string and resulting display as OT features are applied.
Example 3: Input text string and resulting display as OT features are applied. Example 4: Input text string and resulting display as OT features are applied. Example 5: Input text string and resulting display as OT features are applied. Features are encoded according to both a designated script and language system. There are different language systems defined for the Hindi, Sanskrit, and Marathi languages, although they all use the Devanagari script.
Currently most shaping engine implementations only support the “default” language system 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 table lists the registered tag names for script and language systems. Note for new Indic shaping implementation ‘dev2’ is used old-behavior implementations used ‘deva’.
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. It is provided for illustration only, and may not be altered or redistributed. MANGAL contains layout information and glyphs to support all of the required features for the scripts and languages supported.
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.
The font is available as part of the VOLT supplemental files. Once you install VOLT you need to run a separate installer to get the supplemental files. Both installers are part of the VOLT download package. Skip to main content. This browser is no longer supported.