]> granicus.if.org Git - postgresql/commitdiff
Untabify DSSSL and XSL files and add to check-tabs target
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 19 Apr 2012 19:38:14 +0000 (22:38 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 19 Apr 2012 19:38:14 +0000 (22:38 +0300)
Like with SGML files, using tabs in these files is confusing and
unnecessary.

doc/src/sgml/Makefile
doc/src/sgml/stylesheet-man.xsl
doc/src/sgml/stylesheet.dsl

index 04fba434509dcb0adfa04a77e0ceb416271c0e88..5c3afad32b93971689022cf6e1ce94a416fcd7d0 100644 (file)
@@ -357,7 +357,7 @@ endif # sqlmansectnum != 7
 
 # tabs are harmless, but it is best to avoid them in SGML files
 check-tabs:
-       @( ! grep '     ' $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) ) || (echo "Tabs appear in SGML files";  exit 1)
+       @( ! grep '     ' $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml $(srcdir)/*.dsl $(srcdir)/*.xsl) ) || (echo "Tabs appear in SGML/XML files" 1>&2;  exit 1)
 
 ##
 ## Clean
index 822b082522bdea1d63361e5ccb8cb2a032fcf204..be73b07ba2b85ec3f3682b78fe1ebd97b46d9628 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-               xmlns:exsl="http://exslt.org/common"
+                xmlns:exsl="http://exslt.org/common"
                 version='1.0'
                 exclude-result-prefixes="exsl">
 
     <xsl:otherwise>
       <xsl:choose>
         <xsl:when test="refmeta/refentrytitle">
-        <xsl:call-template name="bold">
-         <xsl:with-param name="node" select="refmeta/refentrytitle"/>
-         <xsl:with-param name="context" select="."/>
-        </xsl:call-template>
+         <xsl:call-template name="bold">
+          <xsl:with-param name="node" select="refmeta/refentrytitle"/>
+          <xsl:with-param name="context" select="."/>
+         </xsl:call-template>
         </xsl:when>
         <xsl:otherwise>
-        <xsl:call-template name="bold">
-         <xsl:with-param name="node" select="refnamediv/refname[1]"/>
-         <xsl:with-param name="context" select="."/>
-        </xsl:call-template>
+         <xsl:call-template name="bold">
+          <xsl:with-param name="node" select="refnamediv/refname[1]"/>
+          <xsl:with-param name="context" select="."/>
+         </xsl:call-template>
         </xsl:otherwise>
       </xsl:choose>
       <xsl:apply-templates select="refmeta/manvolnum"/>
           <xsl:with-param name="message-prolog">Note: </xsl:with-param>
           <xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param>
           <xsl:with-param name="content">
-           <xsl:choose>
-             <xsl:when test="$man.output.in.separate.dir = 0">
-               <xsl:value-of select="concat('.so man', $section, '/')"/>
-             </xsl:when>
-             <xsl:otherwise>
-               <xsl:value-of select="'.so '"/> <!-- added case -->
-             </xsl:otherwise>
-           </xsl:choose>
+            <xsl:choose>
+              <xsl:when test="$man.output.in.separate.dir = 0">
+                <xsl:value-of select="concat('.so man', $section, '/')"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="'.so '"/> <!-- added case -->
+              </xsl:otherwise>
+            </xsl:choose>
             <xsl:call-template name="make.adjusted.man.filename">
               <xsl:with-param name="name" select="$first.refname"/>
               <xsl:with-param name="section" select="$section"/>
index 41796430850ecc5642953dab3fc06da517956cfe..29e885d1c8cec25d014d6ffb6e9e8d031b067ad0 100644 (file)
 ;; Returns the depth of auto TOC that should be made at the nd-level
 (define (toc-depth nd)
   (cond ((string=? (gi nd) (normalize "book")) 2)
-       ((string=? (gi nd) (normalize "set")) 2)
-       ((string=? (gi nd) (normalize "part")) 2)
-       ((string=? (gi nd) (normalize "chapter")) 2)
-       (else 1)))
+        ((string=? (gi nd) (normalize "set")) 2)
+        ((string=? (gi nd) (normalize "part")) 2)
+        ((string=? (gi nd) (normalize "chapter")) 2)
+        (else 1)))
 
 ;; Put a horizontal line in the set TOC (just like the book TOC looks)
 (define (set-titlepage-separator side)
 ;; Add character encoding and time of creation into HTML header
 (define %html-header-tags%
   (list (list "META" '("HTTP-EQUIV" "Content-Type") '("CONTENT" "text/html; charset=ISO-8859-1"))
-       (list "META" '("NAME" "creation") (list "CONTENT" (time->string (time) #t)))))
+        (list "META" '("NAME" "creation") (list "CONTENT" (time->string (time) #t)))))
 
 
 ;; Block elements are allowed in PARA in DocBook, but not in P in
               (make element gi: "TR"
                     (make element gi: "TD"
                           content)))
-       (make sequence
-         (para-check)
-         content
-         (para-check 'restart)))))
+        (make sequence
+          (para-check)
+          content
+          (para-check 'restart)))))
 
 ;; ...and for notes.
 (element note
 ;; dbcommon.dsl)
 (define (default-header-nav-tbl-ff elemnode prev next prevsib nextsib)
   (let* ((r1? (nav-banner? elemnode))
-        (r1-sosofo (make element gi: "TR"
-                         (make element gi: "TH"
-                               attributes: (list
-                                            (list "COLSPAN" "5")
-                                            (list "ALIGN" "center")
-                                            (list "VALIGN" "bottom"))
-                               (make element gi: "A"
-                                     attributes: (list
-                                                  (list "HREF" (href-to (nav-home elemnode))))
-                                     (nav-banner elemnode)))))
-        (r2? (or (not (node-list-empty? prev))
-                 (not (node-list-empty? next))
-                 (nav-context? elemnode)))
-        (r2-sosofo (make element gi: "TR"
-                         (make element gi: "TD"
-                               attributes: (list
-                                            (list "WIDTH" "10%")
-                                            (list "ALIGN" "left")
-                                            (list "VALIGN" "top"))
-                               (if (node-list-empty? prev)
-                                   (make entity-ref name: "nbsp")
-                                   (make element gi: "A"
-                                         attributes: (list
-                                                      (list "TITLE" (element-title-string prev))
-                                                      (list "HREF"
-                                                            (href-to
-                                                             prev))
-                                                      (list "ACCESSKEY"
-                                                            "P"))
-                                         (gentext-nav-prev prev))))
-                         (make element gi: "TD"
-                               attributes: (list
-                                            (list "WIDTH" "10%")
-                                            (list "ALIGN" "left")
-                                            (list "VALIGN" "top"))
-                               (if (nav-up? elemnode)
-                                   (nav-up elemnode)
-                                   (nav-home-link elemnode)))
-                         (make element gi: "TD"
-                               attributes: (list
-                                            (list "WIDTH" "60%")
-                                            (list "ALIGN" "center")
-                                            (list "VALIGN" "bottom"))
-                               (nav-context elemnode))
-                         (make element gi: "TD"
-                               attributes: (list
-                                            (list "WIDTH" "20%")
-                                            (list "ALIGN" "right")
-                                            (list "VALIGN" "top"))
-                               (if (node-list-empty? next)
-                                   (make entity-ref name: "nbsp")
-                                   (make element gi: "A"
-                                         attributes: (list
-                                                      (list "TITLE" (element-title-string next))
-                                                      (list "HREF"
-                                                            (href-to
-                                                             next))
-                                                      (list "ACCESSKEY"
-                                                            "N"))
-                                         (gentext-nav-next next)))))))
+         (r1-sosofo (make element gi: "TR"
+                          (make element gi: "TH"
+                                attributes: (list
+                                             (list "COLSPAN" "5")
+                                             (list "ALIGN" "center")
+                                             (list "VALIGN" "bottom"))
+                                (make element gi: "A"
+                                      attributes: (list
+                                                   (list "HREF" (href-to (nav-home elemnode))))
+                                      (nav-banner elemnode)))))
+         (r2? (or (not (node-list-empty? prev))
+                  (not (node-list-empty? next))
+                  (nav-context? elemnode)))
+         (r2-sosofo (make element gi: "TR"
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "10%")
+                                             (list "ALIGN" "left")
+                                             (list "VALIGN" "top"))
+                                (if (node-list-empty? prev)
+                                    (make entity-ref name: "nbsp")
+                                    (make element gi: "A"
+                                          attributes: (list
+                                                       (list "TITLE" (element-title-string prev))
+                                                       (list "HREF"
+                                                             (href-to
+                                                              prev))
+                                                       (list "ACCESSKEY"
+                                                             "P"))
+                                          (gentext-nav-prev prev))))
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "10%")
+                                             (list "ALIGN" "left")
+                                             (list "VALIGN" "top"))
+                                (if (nav-up? elemnode)
+                                    (nav-up elemnode)
+                                    (nav-home-link elemnode)))
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "60%")
+                                             (list "ALIGN" "center")
+                                             (list "VALIGN" "bottom"))
+                                (nav-context elemnode))
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "20%")
+                                             (list "ALIGN" "right")
+                                             (list "VALIGN" "top"))
+                                (if (node-list-empty? next)
+                                    (make entity-ref name: "nbsp")
+                                    (make element gi: "A"
+                                          attributes: (list
+                                                       (list "TITLE" (element-title-string next))
+                                                       (list "HREF"
+                                                             (href-to
+                                                              next))
+                                                       (list "ACCESSKEY"
+                                                             "N"))
+                                          (gentext-nav-next next)))))))
     (if (or r1? r2?)
-       (make element gi: "DIV"
-             attributes: '(("CLASS" "NAVHEADER"))
-         (make element gi: "TABLE"
-               attributes: (list
-                            (list "SUMMARY" "Header navigation table")
-                            (list "WIDTH" %gentext-nav-tblwidth%)
-                            (list "BORDER" "0")
-                            (list "CELLPADDING" "0")
-                            (list "CELLSPACING" "0"))
-               (if r1? r1-sosofo (empty-sosofo))
-               (if r2? r2-sosofo (empty-sosofo)))
-         (make empty-element gi: "HR"
-               attributes: (list
-                            (list "ALIGN" "LEFT")
-                            (list "WIDTH" %gentext-nav-tblwidth%))))
-       (empty-sosofo))))
+        (make element gi: "DIV"
+              attributes: '(("CLASS" "NAVHEADER"))
+          (make element gi: "TABLE"
+                attributes: (list
+                             (list "SUMMARY" "Header navigation table")
+                             (list "WIDTH" %gentext-nav-tblwidth%)
+                             (list "BORDER" "0")
+                             (list "CELLPADDING" "0")
+                             (list "CELLSPACING" "0"))
+                (if r1? r1-sosofo (empty-sosofo))
+                (if r2? r2-sosofo (empty-sosofo)))
+          (make empty-element gi: "HR"
+                attributes: (list
+                             (list "ALIGN" "LEFT")
+                             (list "WIDTH" %gentext-nav-tblwidth%))))
+        (empty-sosofo))))
 
 
 ;; Put index "quicklinks" (A | B | C | ...) at the top of the bookindex page.
                    (children (current-node))
                    (list (normalize "indexentry"))))
         (indexdivs  (node-list-filter-by-gi
-                    (children (current-node))
-                    (list (normalize "indexdiv"))))
+                     (children (current-node))
+                     (list (normalize "indexdiv"))))
         (entries  (node-list-filter-by-gi
                    (children (current-node))
                    (list (normalize "indexentry")))))
            attributes: (list (list "CLASS" (gi)))
            ($component-separator$)
            ($component-title$)
-          (if (node-list-empty? indexdivs)
-              (empty-sosofo)
-              (make element gi: "P"
-                    attributes: (list (list "CLASS" "INDEXDIV-QUICKLINKS"))
-                    (with-mode indexdiv-quicklinks-mode
-                      (process-node-list indexdivs))))
+           (if (node-list-empty? indexdivs)
+               (empty-sosofo)
+               (make element gi: "P"
+                     attributes: (list (list "CLASS" "INDEXDIV-QUICKLINKS"))
+                     (with-mode indexdiv-quicklinks-mode
+                       (process-node-list indexdivs))))
            (process-node-list preamble)
            (if (node-list-empty? entries)
                (empty-sosofo)
   (element indexdiv
     (make sequence
       (make element gi: "A"
-           attributes: (list (list "HREF" (href-to (current-node))))
-           (element-title-sosofo))
+            attributes: (list (list "HREF" (href-to (current-node))))
+            (element-title-sosofo))
       (if (not (last-sibling?))
-         (literal " | ")
-         (literal "")))))
+          (literal " | ")
+          (literal "")))))
 
 
 ;; Changed to strip and normalize index term content (overrides
 
 (define %graphic-default-extension%
   (cond (tex-backend (if texpdf-output "pdf" "eps"))
-       (rtf-backend "gif")
-       (else "XXX")))
+        (rtf-backend "gif")
+        (else "XXX")))
 
 ;; Need to add pdf here so that the above works.  Default setup
 ;; doesn't know about PDF.
 (mode book-titlepage-verso-mode
   (element (legalnotice para)
     (make paragraph
-      use: book-titlepage-verso-style  ;; alter this if ever it needs to appear elsewhere
+      use: book-titlepage-verso-style   ;; alter this if ever it needs to appear elsewhere
       quadding: %default-quadding%
       line-spacing: (* 0.8 (inherited-line-spacing))
       font-size: (* 0.8 (inherited-font-size))
       space-before: (* 0.8 %para-sep%)
       space-after: (* 0.8 %para-sep%)
       first-line-start-indent: (if (is-first-para)
-                                  (* 0.8 %para-indent-firstpara%)
-                                  (* 0.8 %para-indent%))
+                                   (* 0.8 %para-indent-firstpara%)
+                                   (* 0.8 %para-indent%))
       (process-children))))
 
 
 (element (varlistentry term)
   (make paragraph
     space-before: (if (first-sibling?)
-                     %para-sep%
-                     0pt)
+                      %para-sep%
+                      0pt)
     keep-with-next?: #t
     (process-children)))
 
         (members (select-elements (children (current-node)) (normalize "member"))))
     (cond
        ((equal? type (normalize "inline"))
-       (if (equal? (gi (parent (current-node)))
-                   (normalize "para"))
-           (process-children)
-           (make paragraph
-             space-before: %para-sep%
-             space-after: %para-sep%
-             start-indent: (inherited-start-indent))))
+        (if (equal? (gi (parent (current-node)))
+                    (normalize "para"))
+            (process-children)
+            (make paragraph
+              space-before: %para-sep%
+              space-after: %para-sep%
+              start-indent: (inherited-start-indent))))
        ((equal? type (normalize "vert"))
         (my-simplelist-vert members))
        ((equal? type (normalize "horiz"))
     (cond
      ((equal? type (normalize "inline"))
       (make sequence
-       (process-children)
-       (if (not (last-sibling?))
-           (literal ", ")
-           (literal ""))))
+        (process-children)
+        (if (not (last-sibling?))
+            (literal ", ")
+            (literal ""))))
       ((equal? type (normalize "vert"))
        (make paragraph
-        space-before: 0pt
-        space-after: 0pt))
+         space-before: 0pt
+         space-after: 0pt))
       ((equal? type (normalize "horiz"))
        (make paragraph
-        quadding: 'start
-        (process-children))))))
+         quadding: 'start
+         (process-children))))))
 
 
 ;; Jadetex doesn't handle links to the content of tables, so
 (define (find-parent-table nd)
   (let ((table (ancestor-member nd ($table-element-list$))))
     (if (node-list-empty? table)
-       nd
-       table)))
+        nd
+        table)))
 
 ;; (The function below overrides the one in print/dbindex.dsl.)
 
 
 (define (first-part?)
   (let* ((book (ancestor (normalize "book")))
-        (nd   (ancestor-member (current-node)
-                               (append
-                                (component-element-list)
-                                (division-element-list))))
-        (bookch (children book)))
+         (nd   (ancestor-member (current-node)
+                                (append
+                                 (component-element-list)
+                                 (division-element-list))))
+         (bookch (children book)))
     (let loop ((nl bookch))
       (if (node-list-empty? nl)
-         #f
-         (if (equal? (gi (node-list-first nl)) (normalize "part"))
-             (if (node-list=? (node-list-first nl) nd)
-                 #t
-                 #f)
-             (loop (node-list-rest nl)))))))
+          #f
+          (if (equal? (gi (node-list-first nl)) (normalize "part"))
+              (if (node-list=? (node-list-first nl) nd)
+                  #t
+                  #f)
+              (loop (node-list-rest nl)))))))
 
 (define (first-reference?)
   (let* ((book (ancestor (normalize "book")))
-        (nd   (ancestor-member (current-node)
-                               (append
-                                (component-element-list)
-                                (division-element-list))))
-        (bookch (children book)))
+         (nd   (ancestor-member (current-node)
+                                (append
+                                 (component-element-list)
+                                 (division-element-list))))
+         (bookch (children book)))
     (let loop ((nl bookch))
       (if (node-list-empty? nl)
-         #f
-         (if (equal? (gi (node-list-first nl)) (normalize "reference"))
-             (if (node-list=? (node-list-first nl) nd)
-                 #t
-                 #f)
-             (loop (node-list-rest nl)))))))
+          #f
+          (if (equal? (gi (node-list-first nl)) (normalize "reference"))
+              (if (node-list=? (node-list-first nl) nd)
+                  #t
+                  #f)
+              (loop (node-list-rest nl)))))))
 
 
 (define (part-titlepage elements #!optional (side 'recto))
   (let ((nodelist (titlepage-nodelist
-                  (if (equal? side 'recto)
-                      (reference-titlepage-recto-elements)
-                      (reference-titlepage-verso-elements))
-                  elements))
+                   (if (equal? side 'recto)
+                       (reference-titlepage-recto-elements)
+                       (reference-titlepage-verso-elements))
+                   elements))
         ;; partintro is a special case...
-       (partintro (node-list-first
-                   (node-list-filter-by-gi elements (list (normalize "partintro"))))))
+        (partintro (node-list-first
+                    (node-list-filter-by-gi elements (list (normalize "partintro"))))))
     (if (part-titlepage-content? elements side)
-       (make simple-page-sequence
-         page-n-columns: %titlepage-n-columns%
-         ;; Make sure that page number format is correct.
-         page-number-format: ($page-number-format$)
-         ;; Make sure that the page number is set to 1 if this is the
-         ;; first part in the book
-         page-number-restart?: (first-part?)
-         input-whitespace-treatment: 'collapse
-         use: default-text-style
-
-         ;; This hack is required for the RTF backend. If an external-graphic
-         ;; is the first thing on the page, RTF doesn't seem to do the right
-         ;; thing (the graphic winds up on the baseline of the first line
-         ;; of the page, left justified).  This "one point rule" fixes
-         ;; that problem.
-         (make paragraph
-           line-spacing: 1pt
-           (literal ""))
-
-         (let loop ((nl nodelist) (lastnode (empty-node-list)))
-           (if (node-list-empty? nl)
-               (empty-sosofo)
-               (make sequence
-                 (if (or (node-list-empty? lastnode)
-                         (not (equal? (gi (node-list-first nl))
-                                      (gi lastnode))))
-                     (part-titlepage-before (node-list-first nl) side)
-                     (empty-sosofo))
-                 (cond
-                  ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
-                   (part-titlepage-subtitle (node-list-first nl) side))
-                  ((equal? (gi (node-list-first nl)) (normalize "title"))
-                   (part-titlepage-title (node-list-first nl) side))
-                  (else
-                   (part-titlepage-default (node-list-first nl) side)))
-                 (loop (node-list-rest nl) (node-list-first nl)))))
-
-         (if (and %generate-part-toc%
-                  %generate-part-toc-on-titlepage%
-                  (equal? side 'recto))
-             (make display-group
-               (build-toc (current-node)
-                          (toc-depth (current-node))))
-             (empty-sosofo))
-
-         ;; PartIntro is a special case
-         (if (and (equal? side 'recto)
-                  (not (node-list-empty? partintro))
-                  %generate-partintro-on-titlepage%)
-             ($process-partintro$ partintro #f)
-             (empty-sosofo)))
-
-       (empty-sosofo))))
+        (make simple-page-sequence
+          page-n-columns: %titlepage-n-columns%
+          ;; Make sure that page number format is correct.
+          page-number-format: ($page-number-format$)
+          ;; Make sure that the page number is set to 1 if this is the
+          ;; first part in the book
+          page-number-restart?: (first-part?)
+          input-whitespace-treatment: 'collapse
+          use: default-text-style
+
+          ;; This hack is required for the RTF backend. If an external-graphic
+          ;; is the first thing on the page, RTF doesn't seem to do the right
+          ;; thing (the graphic winds up on the baseline of the first line
+          ;; of the page, left justified).  This "one point rule" fixes
+          ;; that problem.
+          (make paragraph
+            line-spacing: 1pt
+            (literal ""))
+
+          (let loop ((nl nodelist) (lastnode (empty-node-list)))
+            (if (node-list-empty? nl)
+                (empty-sosofo)
+                (make sequence
+                  (if (or (node-list-empty? lastnode)
+                          (not (equal? (gi (node-list-first nl))
+                                       (gi lastnode))))
+                      (part-titlepage-before (node-list-first nl) side)
+                      (empty-sosofo))
+                  (cond
+                   ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
+                    (part-titlepage-subtitle (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "title"))
+                    (part-titlepage-title (node-list-first nl) side))
+                   (else
+                    (part-titlepage-default (node-list-first nl) side)))
+                  (loop (node-list-rest nl) (node-list-first nl)))))
+
+          (if (and %generate-part-toc%
+                   %generate-part-toc-on-titlepage%
+                   (equal? side 'recto))
+              (make display-group
+                (build-toc (current-node)
+                           (toc-depth (current-node))))
+              (empty-sosofo))
+
+          ;; PartIntro is a special case
+          (if (and (equal? side 'recto)
+                   (not (node-list-empty? partintro))
+                   %generate-partintro-on-titlepage%)
+              ($process-partintro$ partintro #f)
+              (empty-sosofo)))
+
+        (empty-sosofo))))
 
 
 (define (reference-titlepage elements #!optional (side 'recto))
   (let ((nodelist (titlepage-nodelist
-                  (if (equal? side 'recto)
-                      (reference-titlepage-recto-elements)
-                      (reference-titlepage-verso-elements))
-                  elements))
+                   (if (equal? side 'recto)
+                       (reference-titlepage-recto-elements)
+                       (reference-titlepage-verso-elements))
+                   elements))
         ;; partintro is a special case...
-       (partintro (node-list-first
-                   (node-list-filter-by-gi elements (list (normalize "partintro"))))))
+        (partintro (node-list-first
+                    (node-list-filter-by-gi elements (list (normalize "partintro"))))))
     (if (reference-titlepage-content? elements side)
-       (make simple-page-sequence
-         page-n-columns: %titlepage-n-columns%
-         ;; Make sure that page number format is correct.
-         page-number-format: ($page-number-format$)
-         ;; Make sure that the page number is set to 1 if this is the
-         ;; first part in the book
-         page-number-restart?: (first-reference?)
-         input-whitespace-treatment: 'collapse
-         use: default-text-style
-
-         ;; This hack is required for the RTF backend. If an external-graphic
-         ;; is the first thing on the page, RTF doesn't seem to do the right
-         ;; thing (the graphic winds up on the baseline of the first line
-         ;; of the page, left justified).  This "one point rule" fixes
-         ;; that problem.
-         (make paragraph
-           line-spacing: 1pt
-           (literal ""))
-
-         (let loop ((nl nodelist) (lastnode (empty-node-list)))
-           (if (node-list-empty? nl)
-               (empty-sosofo)
-               (make sequence
-                 (if (or (node-list-empty? lastnode)
-                         (not (equal? (gi (node-list-first nl))
-                                      (gi lastnode))))
-                     (reference-titlepage-before (node-list-first nl) side)
-                     (empty-sosofo))
-                 (cond
-                  ((equal? (gi (node-list-first nl)) (normalize "author"))
-                   (reference-titlepage-author (node-list-first nl) side))
-                  ((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
-                   (reference-titlepage-authorgroup (node-list-first nl) side))
-                  ((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
-                   (reference-titlepage-corpauthor (node-list-first nl) side))
-                  ((equal? (gi (node-list-first nl)) (normalize "editor"))
-                   (reference-titlepage-editor (node-list-first nl) side))
-                  ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
-                   (reference-titlepage-subtitle (node-list-first nl) side))
-                  ((equal? (gi (node-list-first nl)) (normalize "title"))
-                   (reference-titlepage-title (node-list-first nl) side))
-                  (else
-                   (reference-titlepage-default (node-list-first nl) side)))
-                 (loop (node-list-rest nl) (node-list-first nl)))))
-
-         (if (and %generate-reference-toc%
-                  %generate-reference-toc-on-titlepage%
-                  (equal? side 'recto))
-             (make display-group
-               (build-toc (current-node)
-                          (toc-depth (current-node))))
-             (empty-sosofo))
-
-         ;; PartIntro is a special case
-         (if (and (equal? side 'recto)
-                  (not (node-list-empty? partintro))
-                  %generate-partintro-on-titlepage%)
-             ($process-partintro$ partintro #f)
-             (empty-sosofo)))
-
-       (empty-sosofo))))
+        (make simple-page-sequence
+          page-n-columns: %titlepage-n-columns%
+          ;; Make sure that page number format is correct.
+          page-number-format: ($page-number-format$)
+          ;; Make sure that the page number is set to 1 if this is the
+          ;; first part in the book
+          page-number-restart?: (first-reference?)
+          input-whitespace-treatment: 'collapse
+          use: default-text-style
+
+          ;; This hack is required for the RTF backend. If an external-graphic
+          ;; is the first thing on the page, RTF doesn't seem to do the right
+          ;; thing (the graphic winds up on the baseline of the first line
+          ;; of the page, left justified).  This "one point rule" fixes
+          ;; that problem.
+          (make paragraph
+            line-spacing: 1pt
+            (literal ""))
+
+          (let loop ((nl nodelist) (lastnode (empty-node-list)))
+            (if (node-list-empty? nl)
+                (empty-sosofo)
+                (make sequence
+                  (if (or (node-list-empty? lastnode)
+                          (not (equal? (gi (node-list-first nl))
+                                       (gi lastnode))))
+                      (reference-titlepage-before (node-list-first nl) side)
+                      (empty-sosofo))
+                  (cond
+                   ((equal? (gi (node-list-first nl)) (normalize "author"))
+                    (reference-titlepage-author (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
+                    (reference-titlepage-authorgroup (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
+                    (reference-titlepage-corpauthor (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "editor"))
+                    (reference-titlepage-editor (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
+                    (reference-titlepage-subtitle (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "title"))
+                    (reference-titlepage-title (node-list-first nl) side))
+                   (else
+                    (reference-titlepage-default (node-list-first nl) side)))
+                  (loop (node-list-rest nl) (node-list-first nl)))))
+
+          (if (and %generate-reference-toc%
+                   %generate-reference-toc-on-titlepage%
+                   (equal? side 'recto))
+              (make display-group
+                (build-toc (current-node)
+                           (toc-depth (current-node))))
+              (empty-sosofo))
+
+          ;; PartIntro is a special case
+          (if (and (equal? side 'recto)
+                   (not (node-list-empty? partintro))
+                   %generate-partintro-on-titlepage%)
+              ($process-partintro$ partintro #f)
+              (empty-sosofo)))
+
+        (empty-sosofo))))
 
 ]]> <!-- %output-print -->