page-sequence の例として、本書のような見開きの体裁を扱ってみることにしましょう。リスト 6.1のような DTD に対し、chapter タグが現れるたびに奇数(front)ページから開始するものとします。部分的な例になりますが、この場合の page-sequenceの指定は概ねリスト 6.2のようになります。
リスト 6.1 [ book.dtd ]
<!ELEMENT book (bookinfo?,...,chapter+,...)> <!ELEMENT chapter (...)>
リスト 6.2 [ twoside.dsl ]
(define %page-width% 210mm) (define %page-height% 297mm) (define %top-margin% 30mm) (define %bottom-margin% 20mm) (define %inside-margin% 40mm) (define %outside-margin% 30mm) (define %body-width% (- %page-width% %inside-margin% %outside-margin%)) (define %body-height% (- %page-width% %top-margin% %bottom-margin%)) (define %footer-height% 20mm) (define (page-footer) (make display-group (make rule orientation: ’horizontal length: %body-width% line-thickness: 0.1pt display-alignment: ’start space-after: 1pt) (make paragraph font-family-name: "Helvetica" font-size: 9pt line-spacing: 9pt quadding: ’center (page-number-sosofo)))) (define-page-model front-page (width %page-width%) (height %page-height%) (filling-direction ’top-to-bottom) (region (x-origin %inside-margin%) (y-origin %bottom-margin%) (width %body-width%) (height %body-height) (footer (width %body-width%) (height %footer-height%) (generate (page-footer))))) (define-page-model back-page (width %page-width%) (height %page-height%) (filling-direction ’top-to-bottom) (region (x-origin %outside-margin%) (y-origin %bottom-margin%) (width %body-width%) (height %body-height) (footer (width %body-width%) (height %footer-height%) (generate (page-footer))))) (element chapter (make page-sequence repeat-page-models: ’(front-page back-page) force-first-page: ’front))