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

Hans Hagen pragma at wxs.nl
Tue Jan 25 14:37:01 CET 2011


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.

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