[NTG-context] Luatex question

Lutz Haseloff lutz.haseloff at googlemail.com
Tue Oct 25 15:04:46 CEST 2011


Thank you for your detailed information.

2011/10/25 Hans Hagen <pragma at wxs.nl>:
> On 25-10-2011 14:09, Lutz Haseloff wrote:
>>
>> Hi all,
>>
>> some months ago I printed the name of the current font with following
>> code:
>>
>> \starttext
>> The current font is:
>> \ctxlua{tex.print(font.getfont(font.current()).fullname)}.
>> \stoptext
>>
>> Now I get an error message:
>>
>> ! LuaTeX error<main ctx instance>:1: no string to print
>> stack traceback:
>>        [C]: in function 'print'
>>        <main ctx instance>:1: in main chunk.
>> l.2 ...int(font.getfont(font.current()).fullname)}
>>                                                   .
>> ?
>>
>> What is the right way now?
>> (didn't find any news in functionref.pdf or luatexref-t.pdf)
>
> In order of efficiency (most efficient on top):
>
> \starttext
>
> \ctxlua{tex.print(fonts.hashes.properties[font.current()].fullname)}
>
> \ctxlua{tex.print(fonts.hashes.identifiers[font.current()].properties.fullname)}
>
> \ctxlua{tex.print(font.getfont(font.current()).properties.fullname)}
>
> \stoptext
>
> the font.getfont returns the table that tex gets passed and in context that
> table gets normalized, in the sense that variables are collected in
> 'properties' and 'parameters'
>
> in general, don't use font.getfont() in context as in the worst case it will
> rebuild a lua table at the tex
>
> in the current beta you can run s-fnt-35.mkiv to see how this works
>
> (this file will be renamed in a next beta)
>
> Hans
>
>
>
> -----------------------------------------------------------------
>                                          Hans Hagen | PRAGMA ADE
>              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
>                                             | www.pragma-pod.nl
> -----------------------------------------------------------------
>


More information about the ntg-context mailing list