Am Thu, 28 Oct 2010 20:56:41 +0200 schrieb Hans Hagen:
Hm. I do have a bit the impression as if we have here a context and latex philosophy clash. I'm not asking you to provide a funktion
Huh? I'm not sure what philosophy refers to,
Well I refer to sentences like this:
Sure, but the first complaints would end up in ... my mailbox unless your package is private ....
The fact that it's custom in latex to overload code and thus create a maintaince depency does not mean that I want such a dependency on my code.
Unlike context latex is decentral. Reponsability is splitted. And so no one would feel that I'm a thread for "their" code or to their support burden if I would announce a package. Nobody would feel the urge to take away the task from me for fear that I break something. Anyway: I'm writing latex packages. Whatever I will do: no context user will be affected by my code.
Couldn't you give some examples how to manipulate a font after it has been defined with \font\test (if it is possible) and then let me play around?
...
Anyhow, you can access some font data afterwards. In context form:
\startluacode function Whatever(name) for k, v in pairs(fonts.ids[font.current()].descriptions) do if v.name == name then tex.sprint("\\char"..k.."\\relax") break end end end \stopluacode \font\test=file:pirat.ttf \def\MyChessChar#1{{\test\directlua{Whatever("#1")}}} \MyChessChar{c160}
This is dead slow and inefficient but as you don't want a proper function for it I don't care too much.
This is an interesting piece of code but not actually what I asked for. I don't need to loop through the font to find out the correct \char-command connected to a glyph. I can look it up in fontforge and store it in a table. I need a way to reencode/reorder the font, so that the input "K" points to the glyph "c140". Pirat is not the only chessfont I have, I don't want to change the input if I change the font, so every chessfont should have the same internal order. My main problem is that they are so few informations about the generic context font loader code. E.g. after the rereading of the luatex manual I came up with the following: \starttext \font\test={file:PIRAT.TTF} \test %K\char75\char140\char140 \directlua{ mytable=font.fonts[font.id('test')] mytable.characters[75],mytable.characters[140]=mytable.characters[140],mytable.characters[75] tex.definefont("testb",font.define(mytable)) } \testb K\char75\char140\char140 \stoptext Then input "K" gives me (as wanted) a king. But it leads to questions: 1. Why is the spacing in \testb wrong if the chars have been already used after \test? 2. Which values/tables in mytable should I reset/change too to get a "sane" font \testb? 3. I can also use "mytable=fonts.ids[font.id('test')]". Is this better? What are the differences?
Interesting is that it does not work out (as wis to be expected as the normal glyph access function does something similar).
? I didn't understand this remark. If you mean that you didn't get an output: There is nothing at position 160. The king is c140. -- Ulrike Fischer