Hello, especially Hans and Kai, I have succeeded to an extent in adding Malayalam shaping to the existing Devanagari shaping. Being a complete novice in Lua and mkiv, I'm at a point where your expertise is needed to proceed further. Please find the attached patch, test case listed below and expected rendering for comparison. Additionally needed to support: 1. Decomposing 2 part Matras (dependent vowels) - 0D4A, 0D4B, 0D4C for Malayalam [Test cases 2 & 4]. This is needed (at least) for Tamil also. I guess it is as simple as replacing one code point with 2 others - example: replace 0D4A with 0D46, 0D3E. See page 3 of this Unicode standard: http://www.unicode.org/charts/PDF/U0D00.pdf 2. Handling "pref" opentype feature for v2 opentype spec (script tag "mlm2"). This is required for Malayalam Ra ligature, the glyph is formed correctly but it needs to be reordered as pre-base to the base syllable [Test case 1]. (Note that the old spec "mlym" handles "Ra form" as "pstf" and no reordering required). You can observe the difference in Test case 5 - Ra form should be attached to first consonant instead of second one ("mlm2" needs glyph formed by Virama+Ra to be reordered as pre-base to first consonant, while "mlym" doesn't need to). 3. Handling "pstf" opentype feature. It works mostly [Test case 8], except when a post-base Matra follows [Test case 9]. 4. Test cases 6 & 7 shows an example where glyph formation fails when a "pstf" Ya follows. This works correctly with some other conjuncts, though. 4. font-odv.lua hard coded Devanagari Virama (094D) and Ra (0930) in certain places, which needs to use table values to handle other scripts. 5. I had to change "methods.deva" to "methods.mlym" and "methods.dev2" to "methods.mlm2" to get this working, not sure how best to handle multiple scripts. 6. There are other cases like Dot-reph (0D4E) which uses GPOS table and requires reordering as post-base to the syllable follows it, but I haven't looked into them yet. i) The font used is Rachana, which supports both "mlm2" and "mlym" specs, can be downloaded from here: http://download.savannah.gnu.org/releases/smc/fonts/malayalam-fonts-6.0/Rachana/Rachana.ttf You can switch to "mlm2" and "mlym" in test case. ii) Expected rendering of this test case: http://rajeeshknambiar.fedorapeople.org/ConTeXt/context-test.png iii) Test case: ----------- 8< --------- \usemodule[font-odv] \definefontfeature[malayalam][mode=node,language=dflt,script=mlm2,akhn=yes,blwf=yes,half=yes,pres=yes,blws=yes,psts=yes,haln=no] %\definefontfeature[malayalam][mode=node,language=dflt,script=mlym,akhn=yes,blwf=yes,half=yes,pres=yes,blws=yes,psts=yes,haln=no] \starttypescript [serif] [rachana] [name] \definefontsynonym[Serif] [file:rachana][features={malayalam}] \stoptypescript \starttypescript [rachana] \definetypeface[rachana][rm][serif][rachana][default] \definetypeface[rachana][mm][math] [modern][default] \stoptypescript \setupbodyfont[rachana] \starttext 1. \char"0D15 \char"0D4D \char"0D24 \char"0D4D \char"0D30 \\ % ക്ത്ര 2. \char"0D15 \char"0D4D \char"0D24 \char"0D4D \char"0D30 \char"0D4B \\ % ക്ത്രോ 3. \char"0D38 \char"0D4D \char"0D2A \char"0D4D \char"0D30 \\ % സ്പ്ര 4. \char"0D38 \char"0D4D \char"0D2A \char"0D4D \char"0D30 \char"0D4C \\ % സ്പ്രൌ 5. \char"0D24 \char"0D4D \char"0D30 \char"0D2A \\ % ത്രപ 6. \char"0D24 \char"0D4D \char"0D38 \\ % ത്സ 7. \char"0D24 \char"0D4D \char"0D38 \char"0D4D \char"0D2F \\ % ത്സ്യ 8. \char"0D15 \char"0D4D \char"0D2F \\ % ക്യ 9. \char"0D15 \char"0D4D \char"0D2F \char"0D42 \\ % ക്യൂ \stoptext ----------- >8 --------- Let me know if you need additional information or clarifications on test cases. [Patch, test case, expected output image etc are also available here: http://rajeeshknambiar.fedorapeople.org/ConTeXt/] -- Cheers, Rajeesh http://rajeeshknambiar.wordpress.com