Changes

Jump to navigation Jump to search
5,094 bytes added ,  03:47, 8 February 2022
= Fonts =
Fonts are complicated. Moreover, those for indic languages have to provide for rules for the formation of several complicated conjuncts. Each of these conjuncts can consist of several forms occurring simultaneously, which have to be positioned correctly relative to the base glyph. OTF documentation notwithstanding, font designers have their own interpretations of the specifications leading to a variety of implementations of the font features. Most of the available fonts are tested against Harfbuzz and/or ICU (sometimes only the former). Since ConTeXt uses its own OTF loading system, many indic fonts do not just work right away.
In early 2022, Hans made some nice improvements to the indic font system in ConTeXt. This was accompanied by some testing with various available fonts for some indic languages. As a result, there is an improved support for Indic fonts in ConTeXt. Various typescripts were then bundled into the ConTeXt distribution for easy use in documents.
The following table lists fonts that have been tested for use with ConTeXt. The list is by no means extensive: most of the fonts are relatively new and some (ubiquitous) old fonts are absent. If you find a font missing in this list and that works well in ConTeXt, please add it to the list.To use indic fonts place <texcode>\usetypescriptfile[indic]</texcode>in the document head and use {{cmd|definetypeface}} and/or {{cmd|setupbodyfont}} with the following typescripts:
{|cellpadding="5"
| <code>noto-serif-gujarati</code>
|}
= Supported Scripts =
 
The list of Indic scripts supported by ConTeXt MkIV and LMTX are:
 
* Devanagari
* Bengali
* Gujarati
* Gurmukhi
* Kannada
* Malayalam
* Oriya
* Tamil
* Telugu
In order to get the proper OpenType features, you need to select the proper feature from the following list:= Supported Scripts and Font Features =
* <code>devanagari-one</code>* <code>bengali-one</code>* <code>gujarati-one</code>* <code>gurmukhi-one</code>* <code>kannada-one</code>* <code>malayalam-one</code>* <code>oriya-one</code>* <code>tamil-one</code>* <code>telugu-one</code>One can of course use fonts not listed above. This section provides some details to this end.
Depending on your font, you might need instead:== Font feaures ==
* <code>devanagari-two</code>* <code>bengali-two</code>* <code>gujarati-two</code>* <code>gurmukhi-The OTF specification has two<shaping implementations for the indic scripts: the 'older' v1 and the 'newer' v2. [https:/code>* <code>kannada-two</code>* <code>malayalam-two<docs.microsoft.com/code>* <code>oriyaen-two<us/code>* <code>tamil-two<typography/code>* <code>teluguscript-two<development/code>devanagari See here] for further details.
== Script Versions == [https://docs.microsoft.com/en-us/typography/opentype/spec/scripttags Script tags from the OpenType specification] contains second versions for what might be some (or all [I’m afraid I don’t know]) Indic scripts.
Why are those second versions available? From their own explanation:
Features ending in <code>-one</code> use the older OpenType implementation, while the ones ending in <code>-two</code> deploy the newer implementation.
These are specified in ConTeXt by the following font features: {| cellpadding= Hyphenation "5"! style="text-align:left;" | Script! style="text-align:left;" | OTF v1 script tag! style="text-align:left;" | OTF v2 script tag|-| Devanagari| <code>devanagari-one</code>| <code>devanagari-two</code>|-| Malayalam| <code>malayalam-one</code>| <code>malayalam-two</code>|-| Telugu| <code>telugu-one</code>| <code>telugu-two</code>|-| Kannada| <code>kannada-one</code>| <code>kannada-two</code>|-| Bengali| <code>bengali-one</code>| <code>bengali-two</code>|-|} Please note that these font features also activate other font features as mandated in the OTF specification. These features can then be used to write typescripts for a font or to use the font directly in documents {{cmd|definefontfamily}} and/or {{cmd|definedfont}}.
The hyphenation patterns for One of the common problems one might encounter with indic fonts is that of incorrect rendering of conjuncts involving the following languages rakaar. In case any problems are included encountered, one can try setting the <code>indic</code> feature (in ConTeXt:* Sanskrit addition to relevant <code>sa-one</code>* Hindi or <code>hi-two</code>features above) appropriately as follows:* Kannada <texcode>\definefontfeature […] […] [indic={matra=auto,conjuncts=quit}]</texcode> == Sanitizer ==Sometimes, some fonts might still have issues with certain conjuncts. To overcome this a <code>knsanitizer</code>option may be used in defining font features. A goodies file accompanies this option. An example is illustrated below: <texcode>return { name = "myfont", version = "1.00", comment = "Goodies that complement myfont.", sanitizers = { dev2rkrf = { mapping = { ["के्र"] = "क्रे", ["कै्र"] = "क्रै", ["खे्र"] = "ख्रे", ["खै्र"] = "ख्रै", ["गे्र"] = "ग्रे", ["गै्र"] = "ग्रै", ["घे्र"] = "घ्रे", ["घै्र"] = "घ्रै", ["चे्र"] = "च्रे", ["चै्र"] = "च्रै", ["छे्र"] = "छ्रे", ["छै्र"] = "छ्रै", ["जे्र"] = "ज्रे", ["जै्र"] = "ज्रै", ["झे्र"] = "झ्रे", ["झै्र"] = "झ्रै", ["ञे्र"] = "ञ्रे", ["ञै्र"] = "ञ्रै", ["णे्र"] = "ण्रे", ["णै्र"] = "ण्रै", ["ते्र"] = "त्रे", ["तै्र"] = "त्रै", ["थे्र"] = "थ्रे", ["थै्र"] = "थ्रै", ["दे्र"] = "द्रे", ["दै्र"] = "द्रै", ["धे्र"] = "ध्रे", ["धै्र"] = "ध्रै", ["ने्र"] = "न्रे", ["नै्र"] = "न्रै", ["पे्र"] = "प्रे", ["पै्र"] = "प्रै", ["फे्र"] = "फ्रे", ["फै्र"] = "फ्रै", ["बे्र"] = "ब्रे", ["बै्र"] = "ब्रै", ["भे्र"] = "भ्रे", ["भै्र"] = "भ्रै", ["मे्र"] = "म्रे", ["मै्र"] = "म्रै", ["ये्र"] = "य्रे", ["यै्र"] = "य्रै", ["वे्र"] = "व्रे", ["वै्र"] = "व्रै", ["से्र"] = "स्रे", ["सै्र"] = "स्रै", ["शे्र"] = "श्रे", ["शै्र"] = "श्रै", ["षे्र"] = "ष्रे", ["षै्र"] = "ष्रै", ["हे्र"] = "ह्रे", ["है्र"] = "ह्रै", } } }}</texcode> * Telugu Suppose that for a certain font (say <code>temyfont</code>* Tamil ), using <code>tadevanagari-two</code>* Malayalam features, the above listed ra + consonant + vowel forms are not rendered properly. The above goodies file is then saved as <code>mlmyfont.lfg</code>and used while defining the features thus:* Bengali <codetexcode>bn\definefontfeature [myfontfeatures] [devanagari-two] [goodies=myfont.lfg, sanitizer=dev2rkrf, indic={movematra=auto,conjuncts=quit}]</codetexcode>* Gujarati Now, <code>grmyfontfeatures</code>can be used with {{cmd|definedfont}} and/or while writing typescripts for the font.
A pattern is activated with {{cmd|= Script and language}}. The Sanskrit hyphenation patterns support hyphenation of Sanskrit written using the Malayalam, Telugu, Kannada, Bengali and Latin with IAST.features =
= Numbers and Conversion sets =The hyphenation patterns for the following number conversion sets languages are availableincluded in ConTeXt:
{|cellpadding="5"
! style="text-align:left;" | Script/Language
! style="text-align:left;" | Conversion set
! style="text-align:left;" | Hyphenation
|-
| Devanagari
| <code>devanagarinumerals</code>
|
|-
| Malayalam
| <code>malayalamnumerals</code>
| <code>\language[ml]</code>
|-
| Kannada
| <code>kannadanumerals</code>
| <code>\language[kn]</code>
|-
| Telugu
| <code>telugunumerals</code>
| <code>\language[te]</code>
|-
| Bengali
| <code>bengalinumerals</code>
| <code>\language[bn]</code>
|-
| Tamil
| <code>tamilnumerals</code>
| <code>\language[ta]</code>
|-
| Gujarati
| <code>gujaratinumerals</code>
| <code>\language[gu]</code>
|-
| Gurmukhi
| <code>gurmukhinumerals</code>
|
|-
| Hindi
| <code>devanagarinumerals</code>
| <code>\language[hi]</code>
|-
| Sanskrit
| <code>devanagarinumerals</code>
| <code>\language[sa]</code>
|}
for use A pattern is activated with {{cmd|language}}. The Sanskrit hyphenation patterns <code>sa</code> support hyphenation of Sanskrit written using the Malayalam, Telugu, Kannada, Bengali and Latin with IAST. Conversion sets are used as values of the keys <code>numberconversion</code>, <code>conversion</code> (wherever applicable) and with {{cmd|convertnumber}}.
= Sanskrit Transliteration =
|IAST to Devanagari
|<code>iast to deva</code>
|-
|ITrans to Devanagari
|<code>itrans to deva</code>
|-
|Devanagari to Malayalam
\stoptext
</texcode>
 
Please note that there is also {{cmd|resettransliteration}} which can be used in stream to (temporarily) prevent any transliteration.
== Exceptions ==
107

edits

Navigation menu