[Dev-luatex] Chars to glyphs. How to?
Jonathan.Sauer at silverstroke.com
Wed Dec 5 12:26:22 CET 2007
thanks for your quick and detailed reply!
> > Given the letter "ä" and a font in OT1-encoding,
> > how would I convert this "ä" to an accented glyph *after*
> > hyphenation has happened (to be able to hyphenate words
> > containing "ä")?
> The logical place is in the ligaturing callback, because
> for tfm-based fonts, the actual ligature insertions can be
> done in one line via the node.ligaturing() built-in function.
> Note: you don't have to worry about return values because the head
> node that is passed on to the callback is guaranteed not to be a
> glyph_node (if need be, a temporary node will be inserted), and
> therefore it cannot be affected by the mutations that take place.
> In this case, the 'tail' node is not used (the link of 'tail' is
> guaranteed to be 'nil').
You mean if I insert additional nodes inbetween? If I only modify
the nodes themselves without touching the list, this should not be
a problem anyway.
> You have to write the convert_to_glyphs function of course,
> and it could look like this:
> function find_font_glyph (f,c)
> % you should do some real work here!
> return c
> function convert_to_glyphs (head)
> for v in node.traverse_id(head) do
> if v.subtype=1 then
> v.character = find_font_glyph(v.font,v.character)
Shouldn't the subtype be "2"? In setion 18.104.22.168, 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.
Also, in the manual the field is called "char", not "character".
Which one is correct? (both?)
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')? How do I
tell this new node to overlap the 'a'?
> Best wishes,
Thanks in advance,
More information about the dev-luatex