[NTG-context] setup different layouts in merged documents
Wolfgang Schuster
schuster.wolfgang at gmail.com
Tue Feb 17 20:59:33 CET 2015
> Am 17.02.2015 um 20:49 schrieb Pablo Rodriguez <oinos at gmx.es>:
>
> Dear list,
>
> I have the following sample:
>
> \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].
> 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.
Wolfgang
More information about the ntg-context
mailing list