\startluacode local function botthing(characters,target,base,accent) -- if not characters[target] then local data1 = characters[base] local data2 = characters[accent] if data1 and data2 then characters[target] = { -- "Ḥ" height = data1.height, depth = (data1.depth or 0) + 0.5*(data2.height or 0), width = data1.width, unicode = target, commands = { { "slot", 0, 0x048 }, { "left", 0.5*(data2.width or 0) + 0.5*(data1.width or 0)}, { "down", 0.2*(data2.height or 0) + (data1.height or 0) }, { "slot", 0, 0x2D9, }, }, } end -- end end local function topthing(characters,target,base,accent) -- if not characters[target] then local data1 = characters[base] local data2 = characters[accent] if data1 and data2 then characters[target] = { -- "Ḥ" height = (data1.height or 0) + 0.5*(data2.height or 0), depth = data1.depth, width = data1.width, unicode = target, commands = { { "slot", 0, 0x048 }, { "left", 0.5*(data2.width or 0) + 0.5*(data1.width or 0) }, { "up", 0.5*(data2.height or 0) }, { "slot", 0, 0x2D9, }, }, } end -- end end local function initialize(tfmdata,value) if value then botthing(tfmdata.characters,0x1E24,0x048,0x2D9) -- topthing(tfmdata.characters,0x1E24,0x048,0x2D9) end end local specification = { name = "idrify", description = "idrify", manipulators = { base = initialize, node = initialize, } } fonts.handlers.otf.features.register(specification) \stopluacode \definefontfeature[default][default][idrify=yes] \definedfont[Serif*default @ 11pt] \showglyphs Ḥ \stoptext