Jonathan Sauer wrote:
Hello,
Shouldn't the subtype be "2"? In setion 7.1.2.12, bit 1 is used to denote a glyph, if I understand the manual correctly. Since I convert the character to a glyph in the font, this bit should be set afterwards. I am somewhat in doubt about that. The manual and my coding practise do not quite agree on what the value really should be, but bit zero should definately be cleared (in fact, that is the only test made, right now).
Mmm ... if the subtype is a bitfield, IMO one bit should be set; otherwise the subtype would be undefined.
Still, why is the subtype ia bitfield anyway? Can a glyph node i.e. be both a character node as well as a ligature node?
a ligature is not really a character -) anyhow, zero means 'nothing done', while other values < 256 means, something done; you can use bits >= 256 for your own usage since luatex only looks at the first 8 bits
Let me see if I get this right:
1. I load the font, i.e. in OT1-encoding, just like any other TeX font.
2. I modify the font's table (i.e. by using the "define_font" callback): I add all characters I want to support to the font's "characters" array. Each of these new characters contains a "commands" field which constructs the character from several others in the font.
3. I use the (artificial, as described in section 6.2.1) font and am a happy clam.
indeed; of course you can also make the virtual font independent of luatex
Questions:
- Section 6 of the manual states that the key of the "characters" table is the "internal code TeX knows this character by". How do I determine this code? Is this simply the Unicode code point?
your choice, as long as you also provide the index i.e. where to find the glyph in the font file
- If I handle accented characters this way, I do not have to create a "ligaturing" callback, do I?
no, this is controlled by the ligature subtable; if such a table is there (in the font that is) then things happen automatically (same for kerning)
- Does the "char" font command move the output pointer?
?
How do I tell this new node to overlap the 'a'? By adding some extra kerning around it, and/or tweaking the values of the "xoffset" and "yoffset" fields (the need for such node list manipulations is the main reason why a virtual font is easier).
It seems like it, especially since I would need some kind of data structure to describe the character-replacements anyway. Also, a virtual font would most likely be easier on the garbage collector.
fonts are not garbage collected (well, at the lua end the table may be collected of course) but in tex itself it's allocated permanently Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------