[NTG-context] Layers by native code vs. by Lua

Hans Hagen pragma at wxs.nl
Tue Jan 25 16:31:24 CET 2011


On 25-1-2011 2:40, luigi scarso wrote:
> 2011/1/25 Hans Hagen<pragma at wxs.nl>:
>> On 25-1-2011 1:53, Procházka Lukáš Ing. - Pontex s. r. o. wrote:
>>>
>>> Hello,
>>>
>>> a weird thing happens when setting up layers - I'm getting different
>>> results depending on whether setup is performed by native Ctx code or by
>>> Lua:
>>>
>>> ---
>>> \setuppapersize[A4,landscape][A4,landscape]
>>> \setuplayout[page]
>>>
>>> \definelayer[T][x=10mm,y=0mm]
>>>
>>> \startuseMPgraphic{VerticalRule}
>>> draw (0,0)--(0,PaperHeight) withcolor red;
>>> \stopuseMPgraphic
>>>
>>> \startsetups S1
>>> \setlayer[T]{\useMPgraphic{VerticalRule}}
>>> \stopsetups
>>>
>>> \startluasetups S2
>>> \startluacode
>>> context.setlayer({"T"}, "\\useMPgraphic{VerticalRule}")
>>> \stopluacode
>>> \stopluasetups
>>>
>>> \starttext
>>> \setupbackgrounds[page][setups=S1,background={T}]
>>> \page[empty]
>>> \setupbackgrounds[page][setups=S2,background={T}]
>>> \page[empty]
>>> \stoptext
>>> ---
>>>
>>> Both setups (S1 and S2) should do the same - to draw a vertical line to
>>> the full height.
>>>
>>> The first case (S1) is OK - the line starts 10 mm from the top left
>>> corner of the page.
>>>
>>> The second case (S2) is somehow shifted - the line starts cca 13 mm from
>>> the top left corner of the page.
>>>
>>> What is the reason? And how to make Lua way give the same result?
>>
>> lua setups are already lua so S2 should look different
>>
>> \startsetups S1
>>   \setlayer[T]{\useMPgraphic{VerticalRule}}
>> \stopsetups
>>
>> \startluasetups S2
>>     context.setlayer({"T"}, "\\useMPgraphic{VerticalRule}")
>> \stopluasetups
>>
>> the problem is that setups=* does not know about this ... so you should use:
>>
>> \startsetups S3
>>     \luasetup{S2}
>> \stopsetups
>>
>> \starttext
>>   \setupbackgrounds[page][setups=S1,background={T}]
>>   \page[empty]
>>   \setupbackgrounds[page][setups=S3,background={T}]
>>   \page[empty]
>> \stoptext
>>
>> I have to think about a solution for this.
> lua:setups =S2
> ctx:setups =S1
> setups = ctx:setups

that is is somewhat fuzzy as we can have xml:blabla where xml is a 
namespace so one would need xml:xml:blabla then

i have a patch now that handles

   \setupbackgrounds[page][setups=S1,background={T}]
   \setupbackgrounds[page][setups=lua(S2),background={T}]
   \setupbackgrounds[page][setups=S3,background={T}]
   \setupbackgrounds[page][setups={S1,lua(S2),S3},background={T}]

a bit analogue to references

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