[Dev-luatex] Chars to glyphs. How to?

Jonathan Sauer Jonathan.Sauer at silverstroke.com
Wed Dec 5 13:25:21 CET 2007


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?

> [...]
> > Anyway, now I have a place where to start. Still, I am a bit
> > clueless on how to create an accented character node. Or do I
> > have to insert another character node in the list containing
> > the accent (i.e. '"' to create an 'ä' from an 'a')? 
> 
> A virtual font would be easier, but: yes, you can do it that
> way.

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.

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?

- If I handle accented characters this way, I do not have to create
  a "ligaturing" callback, do I?

- 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.


> Best wishes,
> Taco

Jonathan



More information about the dev-luatex mailing list