2011/1/25 Hans Hagen
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 ? -- luigi