Hello, Khaled had another idea to manipulate (reencode) fonts: He suggested to put a function in fonts.trigger. (Example below). I have some questions regarding this example: 1. Is there a basic flaw in the idea? 2. Is the interface more or less stable or will it probably change in the future? If not 3. which tables/values in tfmdata must be copied/reassigned beside the indices information? (There seem to be quite a lot informations more than once in tfmdata. E.g. I find the boundingbox in two places (descriptions and shared.otfdata.glyphs)). 4. Which tables/values must be created if I try to move a char to a place which is currently empty (like the "z" in the example)? 5. What is the recommanded lua-code to copy/reassign/remap the tables? Does a library or some helper functions exist which would make it easier to move the tables around? \directlua{ local function chess(tfmdata,value) if value then tfmdata.characters[122]={} tfmdata.indices[75],tfmdata.indices[81],tfmdata.indices[122]=tfmdata.indices[81],tfmdata.indices[75],tfmdata.indices[81] table.tofile("filechess.lua", tfmdata, true) %show table end end table.insert(fonts.triggers,"chess") fonts.initializers.base.otf.chess = chess fonts.initializers.node.otf.chess = chess } \font\test="file:SkakNew-Figurine.otf:chess=yes" \starttext \test KQzK \stoptext \bye -- Ulrike Fischer