Dear Hans & Wolfgang,
I resolved some of the minor issues. But the main question still stands.
Is it possible to add an OTF feature to the math font? In the very simple
case, I want to change any sequence like "1.2" to "1/2". My feature (see
below) works for text fonts but not in math mode.
Thanks,
MHB
On Tue, Aug 2, 2016 at 3:54 PM, Mohammad Hossein Bateni
Could the problem be because math fonts use mode=base instead of mode=node? Or is it because in math fonts, the digits and/or full-stop have different codes? —MHB
On Mon, Aug 1, 2016 at 9:46 AM, Mohammad Hossein Bateni
wrote: Dear list,
I want to add a customized font feature to the math font, to automatically change the decimal point (unicode 0x2E) to the Arabic/Farsi version (unicode 0x66B). This will go well with the mapping from Latin digits to Farsi digits (done in a sample with mathdigits fallback).
For instance, I want to code in $123.45$ and get a result like ۱۲۳٫۴۵. However, I do not want to simply map 0x2E to 0x66B, because then "full stop" outside a number will also change. In particular, I'd like to have the mapping only when full-stop is preceded and succeeded by a digit. This will, among other things, leave the end-of-equation periods unchanged.
Here is how I tried to achieve it.
\startluacode digits = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39 } -- 0x66B instead of 0x2F gives an error! replacements = { [0x002E] = { 0x2F } } fonts.handlers.otf.addfeature { name = "mpf", type = "chainsubstitution", lookups = { { type = "multiple", data = replacements, } }, data = { rules = { { current = { { 0x002E } }, after = { digits }, before = { digits }, lookups = { 1 }, } } } } \stopluacode
\definefontfeature[mathperiod][mpf=yes]
\resetfontfallback [mathdigits] %\definefontfallback[mathdigits][dejavusansmono][ digitsextendedarabicindic][check=yes,force=yes,offset=digitsnormal]
\definefontsynonym [MathRoman][name:modern][ features={math\mathsizesuffix,mathperiod},goodies=lm-math, fallbacks=mathdigits]
\starttext $123.45.$
123.45.
\addff{mathperiod} 123.45. \stoptext