Le 07/09/2011 05:03, Robert a écrit :
On 06.09.11 10:31, Hans Hagen wrote:
I cannot test it here but you should use mode=base which will create a static font that is handled by tex itself as the tex machinery will copy the font data when you do that kind of letterspacing. The engine is ignorant of anything related to the font at the lua end so one might loose some very specific features provided outside the engine but that's no big deal as letterspacing spoils the game anyway. Smallcaps and oldstyles normally are no problem.
Thanks, that works. Would you mind elaborating on the difference between base and node mode a bit, or could you point me to the relevant documentation? I'm unable to find anything more specific than that base mode does not support Opentype "fully" (luaotfload). But what exactly is not supported, what would you lose by switching from node to base mode?
If I'm not mistaken, "base mode" implements OT features like traditional TeX fonts, and thus only those features supported by TeX can be used; for instance, simple ligatures or kerning is easily done this way, because those already exist for TFM fonts. But contextual features, for instance, or even simple ligatures with more than two input glyphs, aren't supported this way, because TeX knows nothing about them; there is nothing devoted to them in the way fonts are organised. So you use "node mode", which boils down to inspecting lists of nodes before the paragraph is constructed (in one of the callbacks before linebreak_filter) and changing what must be changed; of course the traditional features can be implemented this way too. As for the documentation, I don't think there is any! Best, Paul