[NTG-context] setup different layouts in merged documents

Pablo Rodriguez oinos at gmx.es
Tue Feb 17 21:39:12 CET 2015

On 02/17/2015 08:59 PM, Wolfgang Schuster wrote:
>> Am 17.02.2015 um 20:49 schrieb Pablo Rodriguez:
>> [...]
>> \setuplayout[margin=20mm, width=fit, topspace=45mm,
>> bottomspace=25mm,height=fit]
>> \showframe
>> \definelayout[first][margin=20mm, width=fit, topspace=110mm,
>> bottomspace=20mm, height=fit]
>> \usemodule[scancsv]
>> \starttext
>> \startbuffer[text-content]
>> \definelayer[FirstLayer][state=start]
>> \setlayer[FirstLayer]{First page}
>> \definelayer[OtherLayer][state=continue]
>> \setlayer[OtherLayer]{Other pages}
>> \setupbackgrounds[page][background={FirstLayer,OtherLayer}]
>> %~ \mbox{}\blank[75mm]
>> \dorecurse{17}{\input zapf\par}
>> \cA\hfill
>> \cB
>> \page
>> \stopbuffer
>> \opencsvfile{mail.csv}
>> \doloop{\ifnotEOF\getbuffer[text-content]\nextrow\else\exitloop\fi} %OK
>> \stoptext
>> Contents of mail.csv:
>>    "ME";11/10/14
>>    "You";05/02/14
>>    "She";03/03/12
>>    "It";03/03/14
>> t-scancsv.lua can be found at
>> http://public.hajtmar.com/files/TeX/context/t-scancsv_ConTeXt_module/t-scancsv.lua.
>> It is an awesome module for document merging.
>> I’m having a problem that I don’t know how to solve.
>> Each merged document has different layers for the first and other pages.
>> But I don’t know how to set a different layout for the first page in
>> each merged document. I have tried three options.
>> 1. \definelayout[first] only works for the first page in document,
>>    not for each merged document.
>> 2. \definelayout[even] and \definelayout[odd] work as long as each
>>    merged document contains less than three pages. Otherwise, it
>>    won’t work.
> You can go to a right page at the begin of entry with \page[right].

Many thanks for your fast reply, Wolfgang.

Yes, I forgot this. But if each merged document contains 6 pages, having
different odd and even layouts won’t help here.

And if each merged document has an odd number of pages using
\page[right] would create a blank page with layers.

Is there any way to remove a layer with "state=continue" from a blank page?

>> 3. Adding an \mbox{}\blank[75mm] would do the job, but it’s a
>>    crappy way to work with ConTeXt (and it might lead to errors in
>>    the future).
> Use \blank[force,…] when you need a vertical skip at the begin of a page.

Many thanks for the tip.

Is there no way to add a page identifier at any given point of it that
can match a \definelayout[identifier]?

I‘m thinking of something similar to the "state=start" in layers.

Many thanks for your help,


More information about the ntg-context mailing list