The example is not working correctly for me with the 23 Dec. beta. If
I set a larger footer size for the first page, that larger size is
carried over to all the rest of the document.
Here's my code:
\setuplayout[%
width=middle,
backspace=15mm,
topspace=10mm,
height=254mm,
header=5mm,
headerdistance=5mm,
footer=5mm, % Normal footer size
footerdistance=5mm,
grid=tolerant]
\definelayout[first][% Larger footer on first page
footer=15mm,
footerdistance=5mm]
On Tue, Dec 13, 2011 at 12:20 PM, Andreas Harder
On 13.12.2011, at 16:44, Wolfgang Schuster wrote:
Am 13.12.2011 um 16:26 schrieb Andreas Harder:
Hi all,
would someone please enlighten me. What is the correct usage of \definelayout?
\definelayout[default][width=middle,height=middle,header=0pt,footer=0pt] % \setuplayout[default] % needed? \definelayout[first] [default][header=2cm] \definelayout[unknown][default]%[reset] % \definelayout[2] [default]%[reset] \definelayout[last] [default][footer=2cm]
\starttext \showframe % \checkcurrentlayout %% Variant A: fails with \default[unknown] first\page unknown=(2)\page \page unknown=(3)\page last
%% Variant B: fails with \definelayout[2] % first\page unknown=(2)=last \stoptext
By the way the output differs with the latest beta in comparison with the latest experimental.
Hans changed part of the \setuplayout code in the last betas (there are more than you can see in the ctx suite).
When context checks the layout (happens with \starttext and when it starts a new page) it test for the following defined layouts:
• “<pagenumber>” • “-<pagenumber>” • “last” (is only used for the last page of the document) • “first” (is only used for the first page of the document) • “unknown” • “current” • “odd” and “even” (used for left and right pages)
All entries in this list are reserved names but you can also define your own layout but in this case you have to enable it with \setuplayout[<name>].
One of the new features in MkIV is that layout parameters can be inherited, e.g. when you define a layout with the name “one” {\definelayout[one][..,..=..,..]) and another one with the name two (\definelayout[two][one][..,..=..,..]) this will take the values from one of there are nothing set for a value from one and when there is also nothing set for one the global values are used (\setuplayout[..,..=..,..]).
Hi Wolfgang,
I modified the example (hopefully in a meaningful manner). I get the desired output with the old beta, but it still fails with todays beta.
\setuplayout [width=middle,height=middle,header=0pt,footer=0pt] \definelayout[first] [header=2cm] \definelayout[last] [footer=2cm] \definelayout[current]
\starttext \showframe % \checkcurrentlayout % \dorecurse{2}{test\page} % last is wrong \dorecurse{5}{test\page} % page 2 and „last“ are wrong \stoptext
Andreas ___________________________________________________________________________________ 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 : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- Peter Park Nelson peter.park.nelson@gmail.com