········· > On 3/28/2013 6:41 PM, Philipp Gesang wrote: > >Hi all, > > > >I get an error when I run this code: > > > > \ctxlua{font.getfont( font.current() )} > > > >(Complete example below.) Oddly, whether or not this fails > >depends on the font. The issue does occur with both today’s beta > >and Tex Live. The error message is > > > > error: .../context/tex/texmf-context/tex/context/base/node-inj.lua:97: attempt to perform arithmetic on local 'factor' (a nil value) > > > >At the same time, in Plain the equivalent code works fine for all > >fonts. Bug or feature? > > it's a side effect ... it looks like font.getfont operates on the > table passed to tex and when you request it it probably fills in > some data (like parameters) thereby overloading / wiping out > existing stuff so after that call the data structure as context uses > (and needs) it is messed up I just read that in the manual: Note that at the moment, each access to the font.fonts or call to font.getfont creates a lua table for the whole font. This process can be quite slow. In a later version of LuaTEX, this interface will change (it will start using userdata objects instead of actual tables). > add this after the definition of > definers.read(specification,size,id) and it will probably work ok > > function font.getfont(id) > return fontdata[id] -- otherwise issues > end > > (I'll add a similar overload someplace else.) Great! Looking forward to the next update. > in context you can try this: > > \startluacode > function font.getfont(id) > return fonts.hashes.identifiers[id] > end > \stopluacode > > \starttext > > foo > \ctxlua{inspect(font.getfont( font.current()).parameters )} > bar > \stoptext > > if you comment the function overload you see the difference Compared to Plain, Context adds a lot to the “.parameters” table. Sadly, writing to it doesn’t appear to change anything … Philipp -- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments