Re: [NTG-context] \setuparranging values for perfect bound A5 on A3?
> On 9 Oct 2022, at 02:58, Max Chernoff wrote: > > > Hi Bruce, > >> I have a book to be perfect bound[1] and I'm trying to work out what >> imposition to use. >> >> The printer would like 4 A5 pages laid out on A3 e.g. >> >> +---+---+ >> | | | >> | a | b | >> | | | >> +---+---+ >> | | | >> | c | d | >> | | | >> +---+---+ >> >> so that he can cut the paper and simply stack a, b, c, & d on top of >> each other and then put them in the binding machine[2]. >> >> If the book is 40 pages long, say, then stack 'a' has page 1 on the >> top, page 2 on the reverse, then the next sheet has page 3 and 4, and >> so on down to the last sheet which has page 9 on the front and page 10 >> on the back. Stack 'b' would have page 11 on the front, 12 on the back >> and so on, so that each stack has a quarter of the book. >> >> Is this something LMTX can do and if so what combination of >> \setuplayout and \setuppaper do I need to use? If they can be printed >> in reverse order then great but I assume the printer can do that >> fairly easily. > > I don't think that there's any way to do this from within a document > run, so I think that you'll need to use an external program. > >> If not, is there a recommended external program that can do it? > > But, you can use ConTeXt as the external program here. > > Save as "imposition.cld": > > local filename = document.getargument("filename") > local pdf = lpdf.epdf.image.open(filename) > local pages = pdf.nofpages > local max = math.ceil(pages / 4) > > context.setuppapersize({ "A5" }, { "A3" }) > context.setuppaper { nx = 2, ny = 2 } > context.setuparranging { "XY" } > > local function insert_page(n) > context.startpagemakeup() > context.filterpages({ filename }, { n }) > context.stoppagemakeup() > end > > context.starttext() > for i = 1, max do > if i % 2 == 1 then > insert_page(i + 0 * max) > insert_page(i + 1 * max) > insert_page(i + 2 * max) > insert_page(i + 3 * max) > else > insert_page(i + 1 * max) > insert_page(i + 0 * max) > insert_page(i + 3 * max) > insert_page(i + 2 * max) > end > end > context.stoptext() > > Then run: > > context imposition.cld --filename=document.pdf > > where "document.pdf" is replaced by your document name. > > I'm not sure if I got your desired output quite right here, but > hopefully you can easily modify the script if something isn't quite > right. Thank-you Max - that is exactly what I wanted and your code worked first time. :) — Bruce Horrocks Hampshire, UK ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___
Re: [NTG-context] \setuparranging values for perfect bound A5 on A3?
Am 09.10.22 um 02:29 schrieb Bruce Horrocks via ntg-context: I have a book to be perfect bound[1] and I'm trying to work out what imposition to use. The printer would like 4 A5 pages laid out on A3 e.g. +---+---+ | | | | a | b | | | | +---+---+ | | | | c | d | | | | +---+---+ so that he can cut the paper and simply stack a, b, c, & d on top of each other and then put them in the binding machine[2]. If the book is 40 pages long, say, then stack 'a' has page 1 on the top, page 2 on the reverse, then the next sheet has page 3 and 4, and so on down to the last sheet which has page 9 on the front and page 10 on the back. Stack 'b' would have page 11 on the front, 12 on the back and so on, so that each stack has a quarter of the book. Is this something LMTX can do and if so what combination of \setuplayout and \setuppaper do I need to use? If they can be printed in reverse order then great but I assume the printer can do that fairly easily. If not, is there a recommended external program that can do it? I've tried \setuplayout[4*2] and XY with 2x2 but neither output is what I need. You meant \setuparranging, didn’t you? https://wiki.contextgarden.net/Imposition has an example on how to create your own scheme. Good luck! Hraban ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___
Re: [NTG-context] \setuparranging values for perfect bound A5 on A3?
Hi Bruce, > I have a book to be perfect bound[1] and I'm trying to work out what > imposition to use. > > The printer would like 4 A5 pages laid out on A3 e.g. > > +---+---+ > | | | > | a | b | > | | | > +---+---+ > | | | > | c | d | > | | | > +---+---+ > > so that he can cut the paper and simply stack a, b, c, & d on top of > each other and then put them in the binding machine[2]. > > If the book is 40 pages long, say, then stack 'a' has page 1 on the > top, page 2 on the reverse, then the next sheet has page 3 and 4, and > so on down to the last sheet which has page 9 on the front and page 10 > on the back. Stack 'b' would have page 11 on the front, 12 on the back > and so on, so that each stack has a quarter of the book. > > Is this something LMTX can do and if so what combination of > \setuplayout and \setuppaper do I need to use? If they can be printed > in reverse order then great but I assume the printer can do that > fairly easily. I don't think that there's any way to do this from within a document run, so I think that you'll need to use an external program. > If not, is there a recommended external program that can do it? But, you can use ConTeXt as the external program here. Save as "imposition.cld": local filename = document.getargument("filename") local pdf = lpdf.epdf.image.open(filename) local pages = pdf.nofpages local max = math.ceil(pages / 4) context.setuppapersize({ "A5" }, { "A3" }) context.setuppaper { nx = 2, ny = 2 } context.setuparranging { "XY" } local function insert_page(n) context.startpagemakeup() context.filterpages({ filename }, { n }) context.stoppagemakeup() end context.starttext() for i = 1, max do if i % 2 == 1 then insert_page(i + 0 * max) insert_page(i + 1 * max) insert_page(i + 2 * max) insert_page(i + 3 * max) else insert_page(i + 1 * max) insert_page(i + 0 * max) insert_page(i + 3 * max) insert_page(i + 2 * max) end end context.stoptext() Then run: context imposition.cld --filename=document.pdf where "document.pdf" is replaced by your document name. I'm not sure if I got your desired output quite right here, but hopefully you can easily modify the script if something isn't quite right. Thanks, -- Max ___ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___