From dfb8c83340e5c6e5eec3acb7e87d8b3716296fbc Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 22 Feb 2022 10:32:47 -0800 Subject: [PATCH] support "next" value for `page-side-start` --- quad/quad/scribblings/quad.scrbl | 2 +- quad/quadwriter/render.rkt | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/quad/quad/scribblings/quad.scrbl b/quad/quad/scribblings/quad.scrbl index 402cfc38..47e48701 100644 --- a/quad/quad/scribblings/quad.scrbl +++ b/quad/quad/scribblings/quad.scrbl @@ -546,7 +546,7 @@ First page number used. Value is an integer. Default is @racket[1]. } @defthing[#:kind "attribute" page-side-start symbol?]{ -Side that first page appears on. Value is @racket["left"] or @racket["right"]. A blank page will be inserted if necessary. Default is @racket["right"]. +Side that first page appears on. Value is @racket["left"], @racket["right"], or @racket["next"]. Default is @racket["right"]. If the value is @racket["left"] or @racket["right"], a blank page will be inserted if necessary. } @deftogether[(@defthing[#:kind "attribute" column-count symbol?] diff --git a/quad/quadwriter/render.rkt b/quad/quadwriter/render.rkt index c9b37fca..1946a2b4 100644 --- a/quad/quadwriter/render.rkt +++ b/quad/quadwriter/render.rkt @@ -351,8 +351,11 @@ (define insert-blank-page? (and (pair? qs) ;; if we need a 'left page and will get 'right (or vice versa) then insert page - (let ([next-page-side (if (even? (add1 (section-pages-used))) 'left 'right)]) - (not (eq? section-starting-side next-page-side))))) + (cond + [(eq? section-starting-side 'next) #false] + [else + (let ([next-page-side (if (even? (add1 (section-pages-used))) 'left 'right)]) + (not (eq? section-starting-side next-page-side)))]))) ;; update page count before starting page wrap (when insert-blank-page?