[NTG-context] reencode fonts with fonts.trigger
news3 at nililand.de
Wed Feb 23 17:46:22 CET 2011
Am Tue, 22 Feb 2011 18:05:58 +0100 schrieb Hans Hagen:
>> 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?
> When triggers are done, there are only empty entries in the characters
> table so swapping them has no effect. You can add info to them but some
> entries in them will be added when scaling takes place.
For which entries can this be a problem?
>> 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?
> For basemode reencoding you can use the changed subtable:
> local function chess(tfmdata,value)
> if value then
> tfmdata.changed = 81
> tfmdata.changed = 75
> fonts.initializers.base.otf.chess = chess
> \font\TestA="file:SkakNew-Figurine.otf:chess=yes" \TestA\char75
> \char81 \par
> \font\TestB="file:SkakNew-Figurine.otf:chess=no" \TestB\char75
> \char81 \par
That works fine - even with luaotfload and latex (after I understood
that "basemode" means that I must call the font with "mode=base").
But curiously the dimens of the char change a bit in latex. E.g.
\showthe\fontcharwd reports without the reencoding 8.99998pt, and
9.0pt with the reencoding. In context I get in both cases 9.0pt.
Is it possible to swap (or set) the "tounicode" value at his time so
that copy&paste gives again a "K" for the king and a "Q" for the
More information about the ntg-context