From Wiki
Revision as of 13:28, 6 November 2006 by Shagreel (talk | contribs) (→‎Links)
Jump to navigation Jump to search

< Layout | Columns | Overlays | Logos >

Layers are ConTeXt's mechanism for absolute positioning of elements and other advanced techniques like switching elements on and off.

There's still no manual about them.

My first Layer

Define a layer that takes the whole page, but starts with an offset

\definelayer	[mybg]	% name of the layer
		[x=-3mm, y=-3mm,	% bleed over the page
		width=\paperwidth, height=\paperheight]

Now you can put something on that layer:

\setlayer	[mybg]	% name of the layer
		[x=2cm, y=5cm]	% placement (from upper left corner of the layer)
		{\framed[frame=on, width=3cm, height=2cm]{LAYER}}

Activate the layer as a background:

\setupbackgrounds	[page]	[background=mybg]

You could also typeset the layer once using \placelayer or \flushlayer, but then the location depends from the upper left of the text area! (Bug?)

  • switch off backgrounds: \setupbackgrounds[page][background=]
  • add a background: \setupbackgrounds[page][background={\currentvalue, mylayer}]


There are several possibilities for defining the placement of layer content:

  • x, y : offset from upper left corner of paper
  • hoffset, voffset : offset from upper left corner of layer
  • corner : reference point, something like {left, top}
  • location : alignment of the element relative to the corner, something like {right, bottom}
  • preset : a named location, see below

There are some "presets" for paper egde placement:

% These four are defined by ConTeXt!
\definelayerpreset	[lefttop]	[corner={left,top}, location={right,bottom}]
\definelayerpreset	[righttop]	[corner={right,top}, location={left,bottom}]
\definelayerpreset	[leftbottom]	[corner={left,bottom}, location={right,top}]
\definelayerpreset	[rightbottom]	[corner={right,bottom}, location={left,top}]

Similarly you can define your own presets.


TODO: We need a lot of documentation and samples for this complicated subject. (See: To-Do List)