diff --git a/quad/quadwriter/core.rkt b/quad/quadwriter/core.rkt index f1d57292..6cd90438 100644 --- a/quad/quadwriter/core.rkt +++ b/quad/quadwriter/core.rkt @@ -8,6 +8,7 @@ page-break column-break hr-break + section-break q:para-break q:line-break q:page-break diff --git a/quad/quadwriter/layout.rkt b/quad/quadwriter/layout.rkt index 8d487068..59599a7d 100644 --- a/quad/quadwriter/layout.rkt +++ b/quad/quadwriter/layout.rkt @@ -167,6 +167,10 @@ (define q:page-break (make-page-break-quad #:printable #f #:id 'page-break)) +(define-quad section-break-quad page-break-quad ()) +(define q:section-break (make-section-break-quad #:printable #f + #:id 'section-break)) + (define q:line (q #:size (pt 0 default-line-height) #:from 'sw #:to 'nw @@ -679,7 +683,8 @@ #:finish-wrap (page-finish-wrap page-quad (pdf-output-path (current-pdf))))) (define (section-wrap qs) - (list qs)) + (wrap qs +inf.0 + #:hard-break section-break-quad?)) (define (insert-blocks lines) (define groups-of-lines (contiguous-group-by (λ (x) (quad-ref x :display)) lines)) diff --git a/quad/quadwriter/render.rkt b/quad/quadwriter/render.rkt index 5c847f9f..81f792cd 100644 --- a/quad/quadwriter/render.rkt +++ b/quad/quadwriter/render.rkt @@ -41,7 +41,7 @@ (define TYPE-BREAK '(q ((break TYPE-STR)))) ... (define ALL-BREAKS-ID (list (cons TYPE-BREAK Q:TYPE-BREAK) ...))))])) -(define-break-types all-breaks para line page column hr) +(define-break-types all-breaks para line page column hr section) (define (replace-breaks x) (map-elements (λ (el) @@ -207,4 +207,4 @@ (log-quadwriter-info (format "wrote PDF to ~a" pdf-path)) (begin0 (file->bytes pdf-path) - (delete-file pdf-path)))) \ No newline at end of file + (delete-file pdf-path))))