[NTG-context] reencode fonts with fonts.trigger

Ulrike Fischer news3 at nililand.de
Tue Feb 22 16:22:00 CET 2011


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 



More information about the ntg-context mailing list