On 25-1-2011 2:40, luigi scarso wrote:
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
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 -----------------------------------------------------------------