2007/7/17, Giuseppe Bilotta
Monday, July 16, 2007 Giuseppe Bilotta wrote:
Monday, July 16, 2007 Aditya Mahajan wrote:
On Mon, 16 Jul 2007, Giuseppe Bilotta wrote:
Hello all,
is there a "secret power switch" to tell ConTeXt that a particular layer has different positioning depending on wether it's on a left or right page?
You can possible use setups and use \doifoddpageelse to set the layers. See
http://archive.contextgarden.net/thread/20061102.171506.2fa793e2.en.html
Thanks a lot. I don't know if using presets is actually going to reduce the coding, though.
In the mean time, I've found that layers have a doublesided option. This apparently allows you to override the left/right settings of a layer, so I tried
\definelayer[title][ x=\dimexpr\backspace+\wdall-\wdtit, y=\topspace, width=\wdtit, height=\httit, state=repeat, doublesided=true, ]
\setuplayer[lefttitle][ x=\backspace, ]
\definelayer[desc][ x=\backspace, y=\topspace, width=\wddesc, height=\htdesc, state=repeat, doublesided=true, ]
\setuplayer[leftdesc][ x=\dimexpr\backspace+\wdall-\wddesc, ]
\definelayer[figs][ x=\dimexpr\backspace+\wdall-\wdfig, y=\dimexpr\topspace+\makeupheight-\htfig, width=\wdfig, height=\htfig, ]
\setuplayer[leftfigs][ x=\backspace, ]
\setupbackgrounds[page][background={color,title,desc,figs},backgroundcolor=elux-ultralight]
However, the 'main' setup is always used, the left one is never used. Am I doing something wrong?
Apparently, I mistook what the doublesided option does for layers. I've currently solved the problem in the following way:
\definelayer[test][doublesided=yes] \setlayer[test][odd][..,..=..,..]{content} \setlayer[test][even][..,..=..,..]{content} Wolfgang
\unexpanded\def\titlexpos{% \ifodd\realpageno\dimexpr\wdinside+\wdall-\wdtit\else\wdinside\fi }
\definelayer[title][ x=\titlexpos, y=\topspace, width=\wdtit, height=\httit, ]
\unexpanded\def\descxpos{% \ifodd\realpageno\wdinside\else\dimexpr\wdinside+\wdall-\wddesc\fi }
\definelayer[desc][ x=\descxpos, y=\topspace, width=\wddesc, height=\htdesc, ]
\unexpanded\def\figsxpos{% \ifodd\realpageno\dimexpr\backspace+\wdall-\wdfig\else\wdinside\fi }
\definelayer[figs][ x=\figsxpos, y=\dimexpr\topspace+\makeupheight-\htfig, width=\wdfig, height=\htfig, ]
\setupbackgrounds[page][background={color,title,desc,figs},backgroundcolor=elux-ultralight]
However, this solution doesn't strike me as particularly elegant. I've seen in page-lyr.tex that support for left/right layers is currently in progress, but if I read the code correctly it just creates three layers (name, leftname, rightname) and they have to be filled individually. It would be nice to have a simpler interface to repeated layers with position recalculated on each page.
-- Giuseppe "Oblomov" Bilotta
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________