mirror of
https://github.com/smarty-php/smarty.git
synced 2025-10-28 19:01:37 +01:00
4599 lines
156 KiB
Plaintext
Executable File
4599 lines
156 KiB
Plaintext
Executable File
;; $Id$
|
|
;;
|
|
;; This file is part of the Modular DocBook Stylesheet distribution.
|
|
;; See ../README or http://www.berkshire.net/~norm/dsssl/
|
|
;;
|
|
|
|
(define (have-sibling? sibling-gi #!optional (node (current-node)))
|
|
(let loop ((nl (children (parent node))))
|
|
(if (node-list-empty? nl)
|
|
#f
|
|
(if (equal? (gi (node-list-first nl)) sibling-gi)
|
|
#t
|
|
(loop (node-list-rest nl))))))
|
|
|
|
(define (titlepage-content? elements gis)
|
|
(let giloop ((gilist gis))
|
|
(if (null? gilist)
|
|
#f
|
|
(if (not (node-list-empty? (node-list-filter-by-gi
|
|
elements
|
|
(list (car gilist)))))
|
|
#t
|
|
(giloop (cdr gilist))))))
|
|
|
|
(define (titlepage-gi-list-by-elements elements nodelist)
|
|
;; Elements is a list of GIs. Nodelist is a list of nodes.
|
|
;; This function returns all of the nodes in nodelist that
|
|
;; are in elements in the order they occur in elements.
|
|
(let loop ((gilist elements) (rlist (empty-node-list)))
|
|
(if (null? gilist)
|
|
rlist
|
|
(loop (cdr gilist)
|
|
(node-list rlist (node-list-filter-by-gi
|
|
nodelist (list (car gilist))))))))
|
|
|
|
(define (titlepage-gi-list-by-nodelist elements nodelist)
|
|
;; Elements is a list of GIs. Nodelist is a list of nodes.
|
|
;; This function returns all of the nodes in nodelist that
|
|
;; are in elements in the order they occur in nodelist.
|
|
(let loop ((nl nodelist) (rlist (empty-node-list)))
|
|
(if (node-list-empty? nl)
|
|
rlist
|
|
(if (member (gi (node-list-first nl)) elements)
|
|
(loop (node-list-rest nl)
|
|
(node-list rlist (node-list-first nl)))
|
|
(loop (node-list-rest nl) rlist)))))
|
|
|
|
(define (titlepage-nodelist elements nodelist)
|
|
;; We expand BOOKBIBLIO, BIBLIOMISC, and BIBLIOSET in the element
|
|
;; list because that level of wrapper usually isn't significant.
|
|
(let ((exp-nodelist (expand-children nodelist (list (normalize "bookbiblio")
|
|
(normalize "bibliomisc")
|
|
(normalize "biblioset")))))
|
|
(if %titlepage-in-info-order%
|
|
(titlepage-gi-list-by-nodelist elements exp-nodelist)
|
|
(titlepage-gi-list-by-elements elements exp-nodelist))))
|
|
|
|
(define (titlepage-recto-legalnotice #!optional (node (current-node)))
|
|
(let ((notices (select-elements
|
|
(children (parent node))
|
|
(normalize "legalnotice")))
|
|
(copyrights (select-elements
|
|
(children (parent node))
|
|
(normalize "copyright"))))
|
|
(if (and %generate-legalnotice-link%
|
|
(not nochunks))
|
|
;; Divert the contents of legal to another file. It will be xref'd
|
|
;; from the Copyright.
|
|
(if (first-sibling? node)
|
|
(make sequence
|
|
(make entity
|
|
system-id: (html-entity-file
|
|
($legalnotice-link-file$ node))
|
|
(if %html-pubid%
|
|
(make document-type
|
|
name: "HTML"
|
|
public-id: %html-pubid%)
|
|
(empty-sosofo))
|
|
(make element gi: "HTML"
|
|
(make element gi: "HEAD"
|
|
($standard-html-header$))
|
|
(make element gi: "BODY"
|
|
attributes: %body-attr%
|
|
(header-navigation node)
|
|
($semiformal-object$)
|
|
(with-mode legal-notice-link-mode
|
|
(process-node-list (node-list-rest notices)))
|
|
(footer-navigation node))))
|
|
(if (node-list-empty? copyrights)
|
|
(make element gi: "A"
|
|
attributes: (list
|
|
(list "HREF"
|
|
($legalnotice-link-file$
|
|
node)))
|
|
(literal (gentext-element-name node)))
|
|
(empty-sosofo)))
|
|
(empty-sosofo))
|
|
($semiformal-object$))))
|
|
|
|
(define (titlepage-recto-copyright #!optional (node (current-node)))
|
|
(let ((years (select-elements (descendants node)
|
|
(normalize "year")))
|
|
(holders (select-elements (descendants node)
|
|
(normalize "holder")))
|
|
(legalnotice (select-elements (children (parent node))
|
|
(normalize "legalnotice"))))
|
|
(make element gi: "P"
|
|
attributes: (list
|
|
(list "CLASS" (gi)))
|
|
(if (and %generate-legalnotice-link%
|
|
(not nochunks)
|
|
(not (node-list-empty? legalnotice)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list
|
|
(list "HREF"
|
|
($legalnotice-link-file$
|
|
(node-list-first legalnotice))))
|
|
(literal (gentext-element-name (gi node))))
|
|
(literal " ")
|
|
(dingbat-sosofo "copyright")
|
|
(literal " ")
|
|
(process-node-list years)
|
|
(literal " ")
|
|
(process-node-list holders))
|
|
(make sequence
|
|
(literal (gentext-element-name (gi node)))
|
|
(literal " ")
|
|
(dingbat-sosofo "copyright")
|
|
(literal " ")
|
|
(process-node-list years)
|
|
(literal " ")
|
|
(process-node-list holders))))))
|
|
|
|
;; == Title pages for SETs ==============================================
|
|
|
|
(define (set-titlepage-recto-elements)
|
|
(list (normalize "title")
|
|
(normalize "subtitle")
|
|
(normalize "graphic")
|
|
(normalize "mediaobject")
|
|
(normalize "corpauthor")
|
|
(normalize "authorgroup")
|
|
(normalize "author")
|
|
(normalize "editor")
|
|
(normalize "copyright")
|
|
(normalize "legalnotice")))
|
|
|
|
(define (set-titlepage-verso-elements) '())
|
|
|
|
(define (set-titlepage-content? elements side)
|
|
(titlepage-content? elements (if (equal? side 'recto)
|
|
(set-titlepage-recto-elements)
|
|
(set-titlepage-verso-elements))))
|
|
|
|
(define (set-titlepage elements #!optional (side 'recto))
|
|
(let ((nodelist (titlepage-nodelist
|
|
(if (equal? side 'recto)
|
|
(set-titlepage-recto-elements)
|
|
(set-titlepage-verso-elements))
|
|
elements)))
|
|
(if (set-titlepage-content? elements side)
|
|
(make element gi: "DIV"
|
|
attributes: '(("CLASS" "TITLEPAGE"))
|
|
(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))))
|
|
(set-titlepage-before (node-list-first nl) side)
|
|
(empty-sosofo))
|
|
(cond
|
|
((equal? (gi (node-list-first nl)) (normalize "abbrev"))
|
|
(set-titlepage-abbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "abstract"))
|
|
(set-titlepage-abstract (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "address"))
|
|
(set-titlepage-address (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "affiliation"))
|
|
(set-titlepage-affiliation (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "artpagenums"))
|
|
(set-titlepage-artpagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "author"))
|
|
(set-titlepage-author (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorblurb"))
|
|
(set-titlepage-authorblurb (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
|
|
(set-titlepage-authorgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorinitials"))
|
|
(set-titlepage-authorinitials (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bibliomisc"))
|
|
(set-titlepage-bibliomisc (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "biblioset"))
|
|
(set-titlepage-biblioset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bookbiblio"))
|
|
(set-titlepage-bookbiblio (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "citetitle"))
|
|
(set-titlepage-citetitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "collab"))
|
|
(set-titlepage-collab (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "confgroup"))
|
|
(set-titlepage-confgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractnum"))
|
|
(set-titlepage-contractnum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractsponsor"))
|
|
(set-titlepage-contractsponsor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contrib"))
|
|
(set-titlepage-contrib (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "copyright"))
|
|
(set-titlepage-recto-copyright (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
|
|
(set-titlepage-corpauthor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpname"))
|
|
(set-titlepage-corpname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "date"))
|
|
(set-titlepage-date (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "edition"))
|
|
(set-titlepage-edition (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "editor"))
|
|
(set-titlepage-editor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "firstname"))
|
|
(set-titlepage-firstname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "graphic"))
|
|
(set-titlepage-graphic (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "honorific"))
|
|
(set-titlepage-honorific (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "indexterm"))
|
|
(set-titlepage-indexterm (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "invpartnumber"))
|
|
(set-titlepage-invpartnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "isbn"))
|
|
(set-titlepage-isbn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issn"))
|
|
(set-titlepage-issn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issuenum"))
|
|
(set-titlepage-issuenum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "itermset"))
|
|
(set-titlepage-itermset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "keywordset"))
|
|
(set-titlepage-keywordset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "legalnotice"))
|
|
(set-titlepage-recto-legalnotice (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "lineage"))
|
|
(set-titlepage-lineage (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "mediaobject"))
|
|
(set-titlepage-modespec (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "modespec"))
|
|
(set-titlepage-modespec (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "orgname"))
|
|
(set-titlepage-orgname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othercredit"))
|
|
(set-titlepage-othercredit (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othername"))
|
|
(set-titlepage-othername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pagenums"))
|
|
(set-titlepage-pagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "printhistory"))
|
|
(set-titlepage-printhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productname"))
|
|
(set-titlepage-productname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productnumber"))
|
|
(set-titlepage-productnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubdate"))
|
|
(set-titlepage-pubdate (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publisher"))
|
|
(set-titlepage-publisher (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publishername"))
|
|
(set-titlepage-publishername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubsnumber"))
|
|
(set-titlepage-pubsnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "releaseinfo"))
|
|
(set-titlepage-releaseinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "revhistory"))
|
|
(set-titlepage-revhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesinfo"))
|
|
(set-titlepage-seriesinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesvolnums"))
|
|
(set-titlepage-seriesvolnums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subjectset"))
|
|
(set-titlepage-subjectset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subtitle"))
|
|
(set-titlepage-subtitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "surname"))
|
|
(set-titlepage-surname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "title"))
|
|
(set-titlepage-title (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "titleabbrev"))
|
|
(set-titlepage-titleabbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "volumenum"))
|
|
(set-titlepage-volumenum (node-list-first nl) side))
|
|
(else
|
|
(set-titlepage-default (node-list-first nl) side)))
|
|
(loop (node-list-rest nl) (node-list-first nl)))))
|
|
(set-titlepage-separator side))
|
|
(empty-sosofo))))
|
|
|
|
(define (set-titlepage-separator side)
|
|
(empty-sosofo))
|
|
|
|
(define (set-titlepage-before node side)
|
|
(empty-sosofo))
|
|
|
|
(define (set-titlepage-default node side)
|
|
(let ((foo (debug (string-append "No set-titlepage-* for " (gi node) "!"))))
|
|
(empty-sosofo)))
|
|
|
|
(define (set-titlepage-element node side)
|
|
(if (equal? side 'recto)
|
|
(with-mode set-titlepage-recto-mode
|
|
(process-node-list node))
|
|
(with-mode set-titlepage-verso-mode
|
|
(process-node-list node))))
|
|
|
|
(define (set-titlepage-abbrev node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-abstract node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-address node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-affiliation node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-artpagenums node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-author node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-authorblurb node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-authorgroup node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-authorinitials node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-bibliomisc node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-biblioset node side)
|
|
(set-titlepage node side))
|
|
(define (set-titlepage-bookbiblio node side)
|
|
(set-titlepage node side))
|
|
(define (set-titlepage-citetitle node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-collab node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-confgroup node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-contractnum node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-contractsponsor node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-contrib node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-recto-copyright node side)
|
|
(set-titlepage-element node side))
|
|
|
|
(define (set-titlepage-corpauthor node side)
|
|
(if (equal? side 'recto)
|
|
(set-titlepage-element node side)
|
|
(if (first-sibling? node)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi node)))
|
|
(with-mode set-titlepage-verso-mode
|
|
(process-node-list
|
|
(select-elements (children (parent node))
|
|
(normalize "corpauthor")))))
|
|
(empty-sosofo))))
|
|
|
|
(define (set-titlepage-corpname node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-date node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-edition node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-editor node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-firstname node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-graphic node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-honorific node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-indexterm node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-invpartnumber node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-isbn node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-issn node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-issuenum node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-itermset node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-keywordset node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-recto-legalnotice node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-lineage node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-mediaobject node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-modespec node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-orgname node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-othercredit node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-othername node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-pagenums node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-printhistory node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-productname node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-productnumber node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-pubdate node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-publisher node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-publishername node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-pubsnumber node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-releaseinfo node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-revhistory node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-seriesinfo node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-seriesvolnums node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-subjectset node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-subtitle node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-surname node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-title node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-titleabbrev node side)
|
|
(set-titlepage-element node side))
|
|
(define (set-titlepage-volumenum node side)
|
|
(set-titlepage-element node side))
|
|
|
|
(mode set-titlepage-recto-mode
|
|
(element para
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element author
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(process-children))))
|
|
|
|
(element copyright
|
|
(titlepage-recto-copyright))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
(let ((editor-name (author-string)))
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(make element gi: "H4"
|
|
attributes: (list (list "CLASS" "EDITEDBY"))
|
|
(literal (gentext-edited-by)))
|
|
(empty-sosofo))
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal editor-name)))))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element legalnotice
|
|
(titlepage-recto-legalnotice))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element publisher
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element publishername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubsnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element releaseinfo
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element subtitle
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children-trim)))
|
|
|
|
(element title
|
|
(make element gi: "H1"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(with-mode title-mode
|
|
(process-children-trim)))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
)
|
|
|
|
(mode set-titlepage-verso-mode
|
|
(element abstract ($semiformal-object$))
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element author
|
|
;; Print the author name. Handle the case where there's no AUTHORGROUP
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (not in-group)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))))
|
|
|
|
(element authorgroup
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(process-children-trim)))
|
|
|
|
(element copyright
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name (current-node)))
|
|
(make entity-ref name: "nbsp")
|
|
(dingbat-sosofo "copyright")
|
|
(make entity-ref name: "nbsp")
|
|
(process-children)))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(literal " "))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(if (equal? (gi (parent (current-node))) (normalize "authorgroup"))
|
|
(empty-sosofo)
|
|
(literal (gentext-by) " "))
|
|
(literal ", "))
|
|
(process-children)))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
;; Print the editor name.
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (or #t (not in-group)) ; nevermind, always put out the Edited by
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(literal (gentext-edited-by))
|
|
(make entity-ref name: "nbsp")
|
|
(literal (author-string))))
|
|
(literal (author-string)))))
|
|
|
|
(element legalnotice
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
($semiformal-object$)))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name-space (gi (current-node))))
|
|
(process-children)))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element subtitle
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element title
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode title-mode
|
|
(process-children))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
)
|
|
|
|
;; == Title pages for BOOKs =============================================
|
|
|
|
(define (book-titlepage-recto-elements)
|
|
(list (normalize "title")
|
|
(normalize "subtitle")
|
|
(normalize "graphic")
|
|
(normalize "mediaobject")
|
|
(normalize "corpauthor")
|
|
(normalize "authorgroup")
|
|
(normalize "author")
|
|
(normalize "editor")
|
|
(normalize "copyright")
|
|
(normalize "abstract")
|
|
(normalize "legalnotice")))
|
|
|
|
(define (book-titlepage-verso-elements) '())
|
|
|
|
(define (book-titlepage-content? elements side)
|
|
(titlepage-content? elements (if (equal? side 'recto)
|
|
(book-titlepage-recto-elements)
|
|
(book-titlepage-verso-elements))))
|
|
|
|
(define (book-titlepage elements #!optional (side 'recto))
|
|
(let ((nodelist (titlepage-nodelist
|
|
(if (equal? side 'recto)
|
|
(book-titlepage-recto-elements)
|
|
(book-titlepage-verso-elements))
|
|
elements)))
|
|
(if (book-titlepage-content? elements side)
|
|
(make element gi: "DIV"
|
|
attributes: '(("CLASS" "TITLEPAGE"))
|
|
(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))))
|
|
(book-titlepage-before (node-list-first nl) side)
|
|
(empty-sosofo))
|
|
(cond
|
|
((equal? (gi (node-list-first nl)) (normalize "abbrev"))
|
|
(book-titlepage-abbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "abstract"))
|
|
(book-titlepage-abstract (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "address"))
|
|
(book-titlepage-address (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "affiliation"))
|
|
(book-titlepage-affiliation (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "artpagenums"))
|
|
(book-titlepage-artpagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "author"))
|
|
(book-titlepage-author (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorblurb"))
|
|
(book-titlepage-authorblurb (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
|
|
(book-titlepage-authorgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorinitials"))
|
|
(book-titlepage-authorinitials (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bibliomisc"))
|
|
(book-titlepage-bibliomisc (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "biblioset"))
|
|
(book-titlepage-biblioset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bookbiblio"))
|
|
(book-titlepage-bookbiblio (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "citetitle"))
|
|
(book-titlepage-citetitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "collab"))
|
|
(book-titlepage-collab (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "confgroup"))
|
|
(book-titlepage-confgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractnum"))
|
|
(book-titlepage-contractnum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractsponsor"))
|
|
(book-titlepage-contractsponsor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contrib"))
|
|
(book-titlepage-contrib (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "copyright"))
|
|
(book-titlepage-recto-copyright (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
|
|
(book-titlepage-corpauthor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpname"))
|
|
(book-titlepage-corpname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "date"))
|
|
(book-titlepage-date (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "edition"))
|
|
(book-titlepage-edition (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "editor"))
|
|
(book-titlepage-editor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "firstname"))
|
|
(book-titlepage-firstname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "graphic"))
|
|
(book-titlepage-graphic (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "honorific"))
|
|
(book-titlepage-honorific (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "indexterm"))
|
|
(book-titlepage-indexterm (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "invpartnumber"))
|
|
(book-titlepage-invpartnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "isbn"))
|
|
(book-titlepage-isbn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issn"))
|
|
(book-titlepage-issn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issuenum"))
|
|
(book-titlepage-issuenum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "itermset"))
|
|
(book-titlepage-itermset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "keywordset"))
|
|
(book-titlepage-keywordset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "legalnotice"))
|
|
(book-titlepage-recto-legalnotice (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "lineage"))
|
|
(book-titlepage-lineage (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "mediaobject"))
|
|
(book-titlepage-mediaobject (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "modespec"))
|
|
(book-titlepage-modespec (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "orgname"))
|
|
(book-titlepage-orgname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othercredit"))
|
|
(book-titlepage-othercredit (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othername"))
|
|
(book-titlepage-othername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pagenums"))
|
|
(book-titlepage-pagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "printhistory"))
|
|
(book-titlepage-printhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productname"))
|
|
(book-titlepage-productname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productnumber"))
|
|
(book-titlepage-productnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubdate"))
|
|
(book-titlepage-pubdate (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publisher"))
|
|
(book-titlepage-publisher (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publishername"))
|
|
(book-titlepage-publishername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubsnumber"))
|
|
(book-titlepage-pubsnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "releaseinfo"))
|
|
(book-titlepage-releaseinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "revhistory"))
|
|
(book-titlepage-revhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesinfo"))
|
|
(book-titlepage-seriesinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesvolnums"))
|
|
(book-titlepage-seriesvolnums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subjectset"))
|
|
(book-titlepage-subjectset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subtitle"))
|
|
(book-titlepage-subtitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "surname"))
|
|
(book-titlepage-surname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "title"))
|
|
(book-titlepage-title (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "titleabbrev"))
|
|
(book-titlepage-titleabbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "volumenum"))
|
|
(book-titlepage-volumenum (node-list-first nl) side))
|
|
(else
|
|
(book-titlepage-default (node-list-first nl) side)))
|
|
(loop (node-list-rest nl) (node-list-first nl)))))
|
|
(book-titlepage-separator side))
|
|
(empty-sosofo))))
|
|
|
|
(define (book-titlepage-separator side)
|
|
(if (equal? side 'recto)
|
|
(make empty-element gi: "HR")
|
|
(empty-sosofo)))
|
|
|
|
(define (book-titlepage-before node side)
|
|
(empty-sosofo))
|
|
|
|
(define (book-titlepage-default node side)
|
|
(let ((foo (debug (string-append "No book-titlepage-* for " (gi node) "!"))))
|
|
(empty-sosofo)))
|
|
|
|
(define (book-titlepage-element node side)
|
|
(if (equal? side 'recto)
|
|
(with-mode book-titlepage-recto-mode
|
|
(process-node-list node))
|
|
(with-mode book-titlepage-verso-mode
|
|
(process-node-list node))))
|
|
|
|
(define (book-titlepage-abbrev node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-abstract node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-address node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-affiliation node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-artpagenums node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-author node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-authorblurb node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-authorgroup node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-authorinitials node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-bibliomisc node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-biblioset node side)
|
|
(book-titlepage node side))
|
|
(define (book-titlepage-bookbiblio node side)
|
|
(book-titlepage node side))
|
|
(define (book-titlepage-citetitle node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-collab node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-confgroup node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-contractnum node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-contractsponsor node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-contrib node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-recto-copyright node side)
|
|
(book-titlepage-element node side))
|
|
|
|
(define (book-titlepage-corpauthor node side)
|
|
(if (equal? side 'recto)
|
|
(book-titlepage-element node side)
|
|
(if (first-sibling? node)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi node)))
|
|
(with-mode book-titlepage-verso-mode
|
|
(process-node-list
|
|
(select-elements (children (parent node))
|
|
(normalize "corpauthor")))))
|
|
(empty-sosofo))))
|
|
|
|
(define (book-titlepage-corpname node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-date node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-edition node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-editor node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-firstname node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-graphic node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-honorific node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-indexterm node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-invpartnumber node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-isbn node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-issn node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-issuenum node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-itermset node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-keywordset node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-recto-legalnotice node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-lineage node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-mediaobject node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-modespec node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-orgname node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-othercredit node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-othername node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-pagenums node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-printhistory node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-productname node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-productnumber node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-pubdate node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-publisher node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-publishername node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-pubsnumber node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-releaseinfo node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-revhistory node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-seriesinfo node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-seriesvolnums node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-subjectset node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-subtitle node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-surname node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-title node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-titleabbrev node side)
|
|
(book-titlepage-element node side))
|
|
(define (book-titlepage-volumenum node side)
|
|
(book-titlepage-element node side))
|
|
|
|
(mode titlepage-address-mode
|
|
(default (process-children))
|
|
|
|
(element email
|
|
($mono-seq$
|
|
(make sequence
|
|
(literal "<")
|
|
(make element gi: "A"
|
|
attributes: (list (list "HREF"
|
|
(string-append "mailto:"
|
|
(data (current-node)))))
|
|
(process-children))
|
|
(literal ">")))))
|
|
|
|
(mode book-titlepage-recto-mode
|
|
(element abbrev
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element affiliation
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element artpagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element author
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(process-children))
|
|
|
|
(element authorinitials
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element bibliomisc (process-children))
|
|
(element bibliomset (process-children))
|
|
|
|
(element collab
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element confgroup
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractnum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractsponsor
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contrib
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element copyright
|
|
(titlepage-recto-copyright))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element corpname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element date
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
(let ((editor-name (author-string)))
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(make element gi: "H4"
|
|
attributes: (list (list "CLASS" "EDITEDBY"))
|
|
(literal (gentext-edited-by)))
|
|
(empty-sosofo))
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal editor-name)))))
|
|
|
|
(element firstname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element honorific
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element isbn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element itermset (empty-sosofo))
|
|
|
|
(element invpartnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issuenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element jobtitle
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element keywordset (empty-sosofo))
|
|
|
|
(element legalnotice
|
|
(titlepage-recto-legalnotice))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element lineage
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element modespec (empty-sosofo))
|
|
|
|
(element orgdiv
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element orgname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element othercredit
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element othername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element printhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element productname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element productnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element publisher
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element publishername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubsnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element releaseinfo
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element seriesvolnums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element shortaffil
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element subjectset (empty-sosofo))
|
|
|
|
(element subtitle
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children-trim)))
|
|
|
|
(element surname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element title
|
|
(make element gi: "H1"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(with-mode title-mode
|
|
(process-children-trim)))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
|
|
(element titleabbrev (empty-sosofo))
|
|
|
|
(element volumenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
)
|
|
|
|
(mode book-titlepage-verso-mode
|
|
(element abbrev
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element affiliation
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element artpagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element author
|
|
;; Print the author name. Handle the case where there's no AUTHORGROUP
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (not in-group)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(process-children-trim)))
|
|
|
|
(element authorinitials
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element bibliomisc (process-children))
|
|
(element bibliomset (process-children))
|
|
|
|
(element collab
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element confgroup
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractnum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractsponsor
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contrib
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element copyright
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name (current-node)))
|
|
(make entity-ref name: "nbsp")
|
|
(dingbat-sosofo "copyright")
|
|
(make entity-ref name: "nbsp")
|
|
(process-children)))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(literal " "))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(if (equal? (gi (parent (current-node))) (normalize "authorgroup"))
|
|
(empty-sosofo)
|
|
(literal (gentext-by) " "))
|
|
(literal ", "))
|
|
(process-children)))
|
|
|
|
(element corpname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element date
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
;; Print the editor name.
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (or #t (not in-group)) ; nevermind, always put out the Edited by
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(literal (gentext-edited-by))
|
|
(make entity-ref name: "nbsp")
|
|
(literal (author-string))))
|
|
(literal (author-string)))))
|
|
|
|
(element firstname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element honorific
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element isbn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element itermset (empty-sosofo))
|
|
|
|
(element invpartnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issuenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element jobtitle
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element keywordset (empty-sosofo))
|
|
|
|
(element legalnotice
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
($semiformal-object$)))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element lineage
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element modespec (empty-sosofo))
|
|
|
|
(element orgdiv
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element orgname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element othercredit
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element othername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element printhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element productname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element productnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name-space (gi (current-node))))
|
|
(process-children)))
|
|
|
|
(element publisher
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element publishername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubsnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element releaseinfo
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element seriesvolnums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element shortaffil
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element subjectset (empty-sosofo))
|
|
|
|
(element subtitle
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element surname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element title
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode title-mode
|
|
(process-children))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
|
|
(element titleabbrev (empty-sosofo))
|
|
|
|
(element volumenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
)
|
|
|
|
(mode legal-notice-link-mode
|
|
(element legalnotice
|
|
($semiformal-object$)))
|
|
|
|
;; == Title pages for PARTs =============================================
|
|
|
|
(define (part-titlepage-recto-elements)
|
|
(list (normalize "title")
|
|
(normalize "subtitle")))
|
|
|
|
(define (part-titlepage-verso-elements)
|
|
'())
|
|
|
|
(define (part-titlepage-content? elements side)
|
|
(titlepage-content? elements (if (equal? side 'recto)
|
|
(part-titlepage-recto-elements)
|
|
(part-titlepage-verso-elements))))
|
|
|
|
(define (part-titlepage elements #!optional (side 'recto))
|
|
(let ((nodelist (titlepage-nodelist
|
|
(if (equal? side 'recto)
|
|
(part-titlepage-recto-elements)
|
|
(part-titlepage-verso-elements))
|
|
elements))
|
|
;; partintro is a special case...
|
|
(partintro (node-list-first
|
|
(node-list-filter-by-gi elements
|
|
(list (normalize "partintro"))))))
|
|
(if (part-titlepage-content? elements side)
|
|
(make element gi: "DIV"
|
|
attributes: '(("CLASS" "TITLEPAGE"))
|
|
(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 "abbrev"))
|
|
(part-titlepage-abbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "abstract"))
|
|
(part-titlepage-abstract (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "address"))
|
|
(part-titlepage-address (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "affiliation"))
|
|
(part-titlepage-affiliation (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "artpagenums"))
|
|
(part-titlepage-artpagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "author"))
|
|
(part-titlepage-author (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorblurb"))
|
|
(part-titlepage-authorblurb (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
|
|
(part-titlepage-authorgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorinitials"))
|
|
(part-titlepage-authorinitials (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bibliomisc"))
|
|
(part-titlepage-bibliomisc (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "biblioset"))
|
|
(part-titlepage-biblioset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bookbiblio"))
|
|
(part-titlepage-bookbiblio (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "citetitle"))
|
|
(part-titlepage-citetitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "collab"))
|
|
(part-titlepage-collab (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "confgroup"))
|
|
(part-titlepage-confgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractnum"))
|
|
(part-titlepage-contractnum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractsponsor"))
|
|
(part-titlepage-contractsponsor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contrib"))
|
|
(part-titlepage-contrib (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "copyright"))
|
|
(part-titlepage-recto-copyright (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
|
|
(part-titlepage-corpauthor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpname"))
|
|
(part-titlepage-corpname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "date"))
|
|
(part-titlepage-date (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "edition"))
|
|
(part-titlepage-edition (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "editor"))
|
|
(part-titlepage-editor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "firstname"))
|
|
(part-titlepage-firstname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "graphic"))
|
|
(part-titlepage-graphic (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "honorific"))
|
|
(part-titlepage-honorific (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "indexterm"))
|
|
(part-titlepage-indexterm (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "invpartnumber"))
|
|
(part-titlepage-invpartnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "isbn"))
|
|
(part-titlepage-isbn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issn"))
|
|
(part-titlepage-issn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issuenum"))
|
|
(part-titlepage-issuenum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "itermset"))
|
|
(part-titlepage-itermset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "keywordset"))
|
|
(part-titlepage-keywordset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "legalnotice"))
|
|
(part-titlepage-recto-legalnotice (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "lineage"))
|
|
(part-titlepage-lineage (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "mediaobject"))
|
|
(part-titlepage-mediaobject (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "modespec"))
|
|
(part-titlepage-modespec (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "orgname"))
|
|
(part-titlepage-orgname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othercredit"))
|
|
(part-titlepage-othercredit (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othername"))
|
|
(part-titlepage-othername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pagenums"))
|
|
(part-titlepage-pagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "printhistory"))
|
|
(part-titlepage-printhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productname"))
|
|
(part-titlepage-productname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productnumber"))
|
|
(part-titlepage-productnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubdate"))
|
|
(part-titlepage-pubdate (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publisher"))
|
|
(part-titlepage-publisher (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publishername"))
|
|
(part-titlepage-publishername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubsnumber"))
|
|
(part-titlepage-pubsnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "releaseinfo"))
|
|
(part-titlepage-releaseinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "revhistory"))
|
|
(part-titlepage-revhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesinfo"))
|
|
(part-titlepage-seriesinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesvolnums"))
|
|
(part-titlepage-seriesvolnums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subjectset"))
|
|
(part-titlepage-subjectset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subtitle"))
|
|
(part-titlepage-subtitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "surname"))
|
|
(part-titlepage-surname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "title"))
|
|
(part-titlepage-title (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "titleabbrev"))
|
|
(part-titlepage-titleabbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "volumenum"))
|
|
(part-titlepage-volumenum (node-list-first nl) side))
|
|
(else
|
|
(part-titlepage-default (node-list-first nl) side)))
|
|
(loop (node-list-rest nl) (node-list-first nl)))))
|
|
|
|
;; PartIntro is a special case
|
|
(if (and (equal? side 'recto)
|
|
(not (node-list-empty? partintro))
|
|
%generate-partintro-on-titlepage%)
|
|
($process-partintro$ partintro)
|
|
(empty-sosofo))
|
|
|
|
(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))
|
|
|
|
(part-titlepage-separator side))
|
|
(empty-sosofo))))
|
|
|
|
(define (part-titlepage-separator side)
|
|
(empty-sosofo))
|
|
|
|
(define (part-titlepage-before node side)
|
|
(empty-sosofo))
|
|
|
|
(define (part-titlepage-default node side)
|
|
(let ((foo (debug (string-append "No part-titlepage-* for " (gi node) "!"))))
|
|
(empty-sosofo)))
|
|
|
|
(define (part-titlepage-element node side)
|
|
(if (equal? side 'recto)
|
|
(with-mode part-titlepage-recto-mode
|
|
(process-node-list node))
|
|
(with-mode part-titlepage-verso-mode
|
|
(process-node-list node))))
|
|
|
|
(define (part-titlepage-abbrev node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-abstract node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-address node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-affiliation node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-artpagenums node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-author node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-authorblurb node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-authorgroup node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-authorinitials node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-bibliomisc node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-biblioset node side)
|
|
(part-titlepage node side))
|
|
(define (part-titlepage-bookbiblio node side)
|
|
(part-titlepage node side))
|
|
(define (part-titlepage-citetitle node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-collab node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-confgroup node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-contractnum node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-contractsponsor node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-contrib node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-recto-copyright node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-corpauthor node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-corpname node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-date node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-edition node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-editor node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-firstname node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-graphic node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-honorific node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-indexterm node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-invpartnumber node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-isbn node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-issn node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-issuenum node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-itermset node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-keywordset node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-recto-legalnotice node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-lineage node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-mediaobject node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-modespec node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-orgname node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-othercredit node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-othername node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-pagenums node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-partintro node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-printhistory node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-productname node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-productnumber node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-pubdate node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-publisher node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-publishername node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-pubsnumber node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-releaseinfo node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-revhistory node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-seriesinfo node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-seriesvolnums node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-subjectset node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-subtitle node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-surname node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-title node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-titleabbrev node side)
|
|
(part-titlepage-element node side))
|
|
(define (part-titlepage-volumenum node side)
|
|
(part-titlepage-element node side))
|
|
|
|
|
|
(mode part-titlepage-recto-mode
|
|
(element para
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element author
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(process-children))
|
|
|
|
(element copyright
|
|
(titlepage-recto-copyright))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
(let ((editor-name (author-string)))
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(make element gi: "H4"
|
|
attributes: (list (list "CLASS" "EDITEDBY"))
|
|
(literal (gentext-edited-by)))
|
|
(empty-sosofo))
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal editor-name)))))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element legalnotice
|
|
(titlepage-recto-legalnotice))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element subtitle
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children-trim)))
|
|
|
|
(element title
|
|
(let ((division (ancestor-member (current-node) (division-element-list))))
|
|
(make element gi: "H1"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(if (string=? (element-label division) "")
|
|
(empty-sosofo)
|
|
(literal (element-label division)
|
|
(gentext-label-title-sep (gi division))))
|
|
(with-mode title-mode
|
|
(process-children)))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
)
|
|
|
|
(mode part-titlepage-verso-mode
|
|
(element abstract ($semiformal-object$))
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element author
|
|
;; Print the author name. Handle the case where there's no AUTHORGROUP
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (not in-group)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))))
|
|
|
|
(element authorgroup
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(process-children-trim)))
|
|
|
|
(element copyright
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name (current-node)))
|
|
(make entity-ref name: "nbsp")
|
|
(dingbat-sosofo "copyright")
|
|
(make entity-ref name: "nbsp")
|
|
(process-children)))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(literal " "))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(if (equal? (gi (parent (current-node))) (normalize "authorgroup"))
|
|
(empty-sosofo)
|
|
(literal (gentext-by) " "))
|
|
(literal ", "))
|
|
(process-children)))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
;; Print the editor name.
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (or #t (not in-group)) ; nevermind, always put out the Edited by
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(literal (gentext-edited-by))
|
|
(make entity-ref name: "nbsp")
|
|
(literal (author-string))))
|
|
(literal (author-string)))))
|
|
|
|
(element legalnotice
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
($semiformal-object$)))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name-space (gi (current-node))))
|
|
(process-children)))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element subtitle
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element title
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode title-mode
|
|
(process-children))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
)
|
|
|
|
;; == Title pages for ARTICLEs ==========================================
|
|
;;
|
|
;; Note: Article title pages are a little different in that they do not
|
|
;; create their own simple-page-sequence.
|
|
;;
|
|
|
|
(define (article-titlepage-recto-elements)
|
|
(list (normalize "title")
|
|
(normalize "subtitle")
|
|
(normalize "corpauthor")
|
|
(normalize "authorgroup")
|
|
(normalize "author")
|
|
(normalize "releaseinfo")
|
|
(normalize "copyright")
|
|
(normalize "pubdate")
|
|
(normalize "revhistory")
|
|
(normalize "abstract")))
|
|
|
|
(define (article-titlepage-verso-elements)
|
|
'())
|
|
|
|
(define (article-titlepage-content? elements side)
|
|
(titlepage-content? elements (if (equal? side 'recto)
|
|
(article-titlepage-recto-elements)
|
|
(article-titlepage-verso-elements))))
|
|
|
|
(define (article-titlepage elements #!optional (side 'recto))
|
|
(let ((nodelist (titlepage-nodelist
|
|
(if (equal? side 'recto)
|
|
(article-titlepage-recto-elements)
|
|
(article-titlepage-verso-elements))
|
|
elements)))
|
|
(if (article-titlepage-content? elements side)
|
|
(make element gi: "DIV"
|
|
attributes: '(("CLASS" "TITLEPAGE"))
|
|
(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))))
|
|
(article-titlepage-before (node-list-first nl) side)
|
|
(empty-sosofo))
|
|
(cond
|
|
((equal? (gi (node-list-first nl)) (normalize "abbrev"))
|
|
(article-titlepage-abbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "abstract"))
|
|
(article-titlepage-abstract (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "address"))
|
|
(article-titlepage-address (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "affiliation"))
|
|
(article-titlepage-affiliation (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "artpagenums"))
|
|
(article-titlepage-artpagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "author"))
|
|
(article-titlepage-author (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorblurb"))
|
|
(article-titlepage-authorblurb (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
|
|
(article-titlepage-authorgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorinitials"))
|
|
(article-titlepage-authorinitials (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bibliomisc"))
|
|
(article-titlepage-bibliomisc (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "biblioset"))
|
|
(article-titlepage-biblioset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bookbiblio"))
|
|
(article-titlepage-bookbiblio (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "citetitle"))
|
|
(article-titlepage-citetitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "collab"))
|
|
(article-titlepage-collab (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "confgroup"))
|
|
(article-titlepage-confgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractnum"))
|
|
(article-titlepage-contractnum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractsponsor"))
|
|
(article-titlepage-contractsponsor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contrib"))
|
|
(article-titlepage-contrib (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "copyright"))
|
|
(article-titlepage-recto-copyright (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
|
|
(article-titlepage-corpauthor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "corpname"))
|
|
(article-titlepage-corpname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "date"))
|
|
(article-titlepage-date (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "edition"))
|
|
(article-titlepage-edition (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "editor"))
|
|
(article-titlepage-editor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "firstname"))
|
|
(article-titlepage-firstname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "graphic"))
|
|
(article-titlepage-graphic (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "honorific"))
|
|
(article-titlepage-honorific (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "indexterm"))
|
|
(article-titlepage-indexterm (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "invpartnumber"))
|
|
(article-titlepage-invpartnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "isbn"))
|
|
(article-titlepage-isbn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issn"))
|
|
(article-titlepage-issn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issuenum"))
|
|
(article-titlepage-issuenum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "itermset"))
|
|
(article-titlepage-itermset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "keywordset"))
|
|
(article-titlepage-keywordset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "legalnotice"))
|
|
(article-titlepage-recto-legalnotice (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "lineage"))
|
|
(article-titlepage-lineage (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "mediaobject"))
|
|
(article-titlepage-mediaobject (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "modespec"))
|
|
(article-titlepage-modespec (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "orgname"))
|
|
(article-titlepage-orgname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othercredit"))
|
|
(article-titlepage-othercredit (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othername"))
|
|
(article-titlepage-othername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pagenums"))
|
|
(article-titlepage-pagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "printhistory"))
|
|
(article-titlepage-printhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productname"))
|
|
(article-titlepage-productname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productnumber"))
|
|
(article-titlepage-productnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubdate"))
|
|
(article-titlepage-pubdate (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publisher"))
|
|
(article-titlepage-publisher (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publishername"))
|
|
(article-titlepage-publishername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubsnumber"))
|
|
(article-titlepage-pubsnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "releaseinfo"))
|
|
(article-titlepage-releaseinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "revhistory"))
|
|
(article-titlepage-revhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesinfo"))
|
|
(article-titlepage-seriesinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesvolnums"))
|
|
(article-titlepage-seriesvolnums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subjectset"))
|
|
(article-titlepage-subjectset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subtitle"))
|
|
(article-titlepage-subtitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "surname"))
|
|
(article-titlepage-surname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "title"))
|
|
(article-titlepage-title (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "titleabbrev"))
|
|
(article-titlepage-titleabbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "volumenum"))
|
|
(article-titlepage-volumenum (node-list-first nl) side))
|
|
(else
|
|
(article-titlepage-default (node-list-first nl) side)))
|
|
(loop (node-list-rest nl) (node-list-first nl)))))
|
|
(article-titlepage-separator side))
|
|
(empty-sosofo))))
|
|
|
|
(define (article-titlepage-separator side)
|
|
(make empty-element gi: "HR"))
|
|
|
|
(define (article-titlepage-before node side)
|
|
(empty-sosofo))
|
|
|
|
(define (article-titlepage-default node side)
|
|
(let ((foo (debug (string-append "No article-titlepage-* for " (gi node) "!"))))
|
|
(empty-sosofo)))
|
|
|
|
(define (article-titlepage-element node side)
|
|
(if (equal? side 'recto)
|
|
(with-mode article-titlepage-recto-mode
|
|
(process-node-list node))
|
|
(with-mode article-titlepage-verso-mode
|
|
(process-node-list node))))
|
|
|
|
(define (article-titlepage-abbrev node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-abstract node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-address node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-affiliation node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-artpagenums node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-author node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-authorblurb node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-authorgroup node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-authorinitials node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-bibliomisc node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-biblioset node side)
|
|
(article-titlepage node side))
|
|
(define (article-titlepage-bookbiblio node side)
|
|
(article-titlepage node side))
|
|
(define (article-titlepage-citetitle node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-collab node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-confgroup node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-contractnum node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-contractsponsor node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-contrib node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-recto-copyright node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-corpauthor node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-corpname node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-date node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-edition node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-editor node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-firstname node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-graphic node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-honorific node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-indexterm node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-invpartnumber node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-isbn node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-issn node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-issuenum node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-itermset node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-keywordset node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-recto-legalnotice node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-lineage node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-mediaobject node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-modespec node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-orgname node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-othercredit node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-othername node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-pagenums node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-partintro node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-printhistory node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-productname node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-productnumber node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-pubdate node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-publisher node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-publishername node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-pubsnumber node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-releaseinfo node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-revhistory node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-seriesinfo node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-seriesvolnums node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-subjectset node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-subtitle node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-surname node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-title node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-titleabbrev node side)
|
|
(article-titlepage-element node side))
|
|
(define (article-titlepage-volumenum node side)
|
|
(article-titlepage-element node side))
|
|
|
|
(mode article-titlepage-recto-mode
|
|
(element abbrev
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element affiliation
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element artpagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element author
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(process-children)))
|
|
|
|
(element authorinitials
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element bibliomisc (process-children))
|
|
(element bibliomset (process-children))
|
|
|
|
(element collab
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element confgroup
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractnum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractsponsor
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contrib
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element copyright
|
|
(titlepage-recto-copyright))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element corpname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element date
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
(let ((editor-name (author-string)))
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(make element gi: "H4"
|
|
attributes: (list (list "CLASS" "EDITEDBY"))
|
|
(literal (gentext-edited-by)))
|
|
(empty-sosofo))
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal editor-name)))))
|
|
|
|
(element firstname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element honorific
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element isbn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element itermset (empty-sosofo))
|
|
|
|
(element invpartnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issuenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element jobtitle
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element keywordset (empty-sosofo))
|
|
|
|
(element legalnotice
|
|
(titlepage-recto-legalnotice))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element lineage
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element modespec (empty-sosofo))
|
|
|
|
(element orgdiv
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element orgname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element othercredit
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element othername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element printhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element productname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element productnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element publisher
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element publishername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubsnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element releaseinfo
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element seriesvolnums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element shortaffil
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element subjectset (empty-sosofo))
|
|
|
|
(element subtitle
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children-trim)))
|
|
|
|
(element surname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element title
|
|
(make element gi: "H1"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(with-mode title-mode
|
|
(process-children-trim)))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
|
|
(element titleabbrev
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element volumenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
)
|
|
|
|
(mode article-titlepage-verso-mode
|
|
(element abbrev
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element affiliation
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element artpagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element author
|
|
;; Print the author name. Handle the case where there's no AUTHORGROUP
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (not in-group)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(process-children-trim)))
|
|
|
|
(element authorinitials
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element bibliomisc (process-children))
|
|
(element bibliomset (process-children))
|
|
|
|
(element collab
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element confgroup
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractnum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contractsponsor
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element contrib
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element copyright
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name (current-node)))
|
|
(make entity-ref name: "nbsp")
|
|
(dingbat-sosofo "copyright")
|
|
(make entity-ref name: "nbsp")
|
|
(process-children)))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(literal " "))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(if (equal? (gi (parent (current-node))) (normalize "authorgroup"))
|
|
(empty-sosofo)
|
|
(literal (gentext-by) " "))
|
|
(literal ", "))
|
|
(process-children)))
|
|
|
|
(element corpname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element date
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
;; Print the editor name.
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (or #t (not in-group)) ; nevermind, always put out the Edited by
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(literal (gentext-edited-by))
|
|
(make entity-ref name: "nbsp")
|
|
(literal (author-string))))
|
|
(literal (author-string)))))
|
|
|
|
(element firstname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element honorific
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element isbn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issn
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element itermset (empty-sosofo))
|
|
|
|
(element invpartnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element issuenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element jobtitle
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element keywordset (empty-sosofo))
|
|
|
|
(element legalnotice
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
($semiformal-object$)))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element lineage
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element modespec (empty-sosofo))
|
|
|
|
(element orgdiv
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element orgname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element othercredit
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element othername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pagenums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element printhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element productname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element productnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name-space (gi (current-node))))
|
|
(process-children)))
|
|
|
|
(element publisher
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element publishername
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element pubsnumber
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element releaseinfo
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element seriesvolnums
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element shortaffil
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element subjectset (empty-sosofo))
|
|
|
|
(element subtitle
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element surname
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element title
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode title-mode
|
|
(process-children))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
|
|
(element titleabbrev
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
|
|
(element volumenum
|
|
(make element gi: "SPAN"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make empty-element gi: "BR")))
|
|
)
|
|
|
|
;; == Title pages for REFERENCEs ========================================
|
|
|
|
(define (reference-titlepage-recto-elements)
|
|
(list (normalize "title")
|
|
(normalize "subtitle")
|
|
(normalize "corpauthor")
|
|
(normalize "authorgroup")
|
|
(normalize "author")
|
|
(normalize "editor")))
|
|
|
|
(define (reference-titlepage-verso-elements)
|
|
'())
|
|
|
|
(define (reference-titlepage-content? elements side)
|
|
(titlepage-content? elements (if (equal? side 'recto)
|
|
(reference-titlepage-recto-elements)
|
|
(reference-titlepage-verso-elements))))
|
|
|
|
(define (reference-titlepage elements #!optional (side 'recto))
|
|
(let ((nodelist (titlepage-nodelist
|
|
(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"))))))
|
|
(if (reference-titlepage-content? elements side)
|
|
(make element gi: "DIV"
|
|
attributes: '(("CLASS" "TITLEPAGE"))
|
|
(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 "abbrev"))
|
|
(reference-titlepage-abbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "abstract"))
|
|
(reference-titlepage-abstract (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "address"))
|
|
(reference-titlepage-address (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "affiliation"))
|
|
(reference-titlepage-affiliation (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "artpagenums"))
|
|
(reference-titlepage-artpagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "author"))
|
|
(reference-titlepage-author (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "authorblurb"))
|
|
(reference-titlepage-authorblurb (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 "authorinitials"))
|
|
(reference-titlepage-authorinitials (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bibliomisc"))
|
|
(reference-titlepage-bibliomisc (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "biblioset"))
|
|
(reference-titlepage-biblioset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "bookbiblio"))
|
|
(reference-titlepage-bookbiblio (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "citetitle"))
|
|
(reference-titlepage-citetitle (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "collab"))
|
|
(reference-titlepage-collab (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "confgroup"))
|
|
(reference-titlepage-confgroup (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractnum"))
|
|
(reference-titlepage-contractnum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contractsponsor"))
|
|
(reference-titlepage-contractsponsor (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "contrib"))
|
|
(reference-titlepage-contrib (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "copyright"))
|
|
(reference-titlepage-recto-copyright (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 "corpname"))
|
|
(reference-titlepage-corpname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "date"))
|
|
(reference-titlepage-date (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "edition"))
|
|
(reference-titlepage-edition (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 "firstname"))
|
|
(reference-titlepage-firstname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "graphic"))
|
|
(reference-titlepage-graphic (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "honorific"))
|
|
(reference-titlepage-honorific (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "indexterm"))
|
|
(reference-titlepage-indexterm (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "invpartnumber"))
|
|
(reference-titlepage-invpartnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "isbn"))
|
|
(reference-titlepage-isbn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issn"))
|
|
(reference-titlepage-issn (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "issuenum"))
|
|
(reference-titlepage-issuenum (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "itermset"))
|
|
(reference-titlepage-itermset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "keywordset"))
|
|
(reference-titlepage-keywordset (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "legalnotice"))
|
|
(reference-titlepage-recto-legalnotice (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "lineage"))
|
|
(reference-titlepage-lineage (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "mediaobject"))
|
|
(reference-titlepage-mediaobject (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "modespec"))
|
|
(reference-titlepage-modespec (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "orgname"))
|
|
(reference-titlepage-orgname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othercredit"))
|
|
(reference-titlepage-othercredit (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "othername"))
|
|
(reference-titlepage-othername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pagenums"))
|
|
(reference-titlepage-pagenums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "printhistory"))
|
|
(reference-titlepage-printhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productname"))
|
|
(reference-titlepage-productname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "productnumber"))
|
|
(reference-titlepage-productnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubdate"))
|
|
(reference-titlepage-pubdate (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publisher"))
|
|
(reference-titlepage-publisher (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "publishername"))
|
|
(reference-titlepage-publishername (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "pubsnumber"))
|
|
(reference-titlepage-pubsnumber (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "releaseinfo"))
|
|
(reference-titlepage-releaseinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "revhistory"))
|
|
(reference-titlepage-revhistory (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesinfo"))
|
|
(reference-titlepage-seriesinfo (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "seriesvolnums"))
|
|
(reference-titlepage-seriesvolnums (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "subjectset"))
|
|
(reference-titlepage-subjectset (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 "surname"))
|
|
(reference-titlepage-surname (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "title"))
|
|
(reference-titlepage-title (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "titleabbrev"))
|
|
(reference-titlepage-titleabbrev (node-list-first nl) side))
|
|
((equal? (gi (node-list-first nl)) (normalize "volumenum"))
|
|
(reference-titlepage-volumenum (node-list-first nl) side))
|
|
(else
|
|
(reference-titlepage-default (node-list-first nl) side)))
|
|
(loop (node-list-rest nl) (node-list-first nl)))))
|
|
|
|
;; PartIntro is a special case
|
|
(if (and (equal? side 'recto)
|
|
(not (node-list-empty? partintro))
|
|
%generate-partintro-on-titlepage%)
|
|
($process-partintro$ partintro)
|
|
(empty-sosofo))
|
|
|
|
(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))
|
|
|
|
(reference-titlepage-separator side))
|
|
(empty-sosofo))))
|
|
|
|
(define (reference-titlepage-separator side)
|
|
(empty-sosofo))
|
|
|
|
(define (reference-titlepage-before node side)
|
|
(empty-sosofo))
|
|
|
|
(define (reference-titlepage-default node side)
|
|
(let ((foo (debug (string-append "No reference-titlepage-* for " (gi node) "!"))))
|
|
(empty-sosofo)))
|
|
|
|
(define (reference-titlepage-element node side)
|
|
(if (equal? side 'recto)
|
|
(with-mode reference-titlepage-recto-mode
|
|
(process-node-list node))
|
|
(with-mode reference-titlepage-verso-mode
|
|
(process-node-list node))))
|
|
|
|
(define (reference-titlepage-abbrev node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-abstract node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-address node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-affiliation node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-artpagenums node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-author node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-authorblurb node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-authorgroup node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-authorinitials node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-bibliomisc node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-biblioset node side)
|
|
(reference-titlepage node side))
|
|
(define (reference-titlepage-bookbiblio node side)
|
|
(reference-titlepage node side))
|
|
(define (reference-titlepage-citetitle node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-collab node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-confgroup node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-contractnum node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-contractsponsor node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-contrib node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-recto-copyright node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-corpauthor node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-corpname node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-date node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-edition node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-editor node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-firstname node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-graphic node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-honorific node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-indexterm node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-invpartnumber node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-isbn node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-issn node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-issuenum node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-itermset node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-keywordset node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-recto-legalnotice node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-lineage node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-mediaobject node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-modespec node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-orgname node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-othercredit node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-othername node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-pagenums node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-printhistory node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-productname node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-productnumber node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-pubdate node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-publisher node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-publishername node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-pubsnumber node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-releaseinfo node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-revhistory node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-seriesinfo node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-seriesvolnums node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-subjectset node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-subtitle node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-surname node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-title node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-titleabbrev node side)
|
|
(reference-titlepage-element node side))
|
|
(define (reference-titlepage-volumenum node side)
|
|
(reference-titlepage-element node side))
|
|
|
|
(mode reference-titlepage-recto-mode
|
|
(element para
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element abstract
|
|
(make element gi: "DIV"
|
|
($semiformal-object$)))
|
|
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element author
|
|
(let ((author-name (author-string))
|
|
(author-affil (select-elements (children (current-node))
|
|
(normalize "affiliation"))))
|
|
(make sequence
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal author-name)))
|
|
(process-node-list author-affil))))
|
|
|
|
(element authorblurb
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element authorgroup
|
|
(process-children))
|
|
|
|
(element copyright
|
|
(titlepage-recto-copyright))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
(let ((editor-name (author-string)))
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(make element gi: "H4"
|
|
attributes: (list (list "CLASS" "EDITEDBY"))
|
|
(literal (gentext-edited-by)))
|
|
(empty-sosofo))
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal editor-name)))))
|
|
|
|
(element graphic
|
|
(let* ((nd (current-node))
|
|
(fileref (attribute-string (normalize "fileref") nd))
|
|
(entattr (attribute-string (normalize "entityref") nd))
|
|
(entityref (if entattr
|
|
(entity-system-id entattr)
|
|
#f))
|
|
(format (attribute-string (normalize "format")))
|
|
(align (attribute-string (normalize "align")))
|
|
(attr (append
|
|
(if align
|
|
(list (list "ALIGN" align))
|
|
'())
|
|
(if entityref
|
|
(list (list "SRC" (graphic-file entityref)))
|
|
(list (list "SRC" (graphic-file fileref))))
|
|
(list (list "ALT" ""))
|
|
)))
|
|
(if (or fileref entityref)
|
|
(make empty-element gi: "IMG"
|
|
attributes: attr)
|
|
(empty-sosofo))))
|
|
|
|
(element legalnotice
|
|
(titlepage-recto-legalnotice))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element subtitle
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children-trim)))
|
|
|
|
(element title
|
|
(let ((ref (ancestor-member (current-node)
|
|
(list (normalize "reference")))))
|
|
(make element gi: "H1"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (element-label ref)
|
|
(gentext-label-title-sep (gi ref)))
|
|
(with-mode title-mode
|
|
(process-children)))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
)
|
|
|
|
(mode reference-titlepage-verso-mode
|
|
(element abstract ($semiformal-object$))
|
|
(element (abstract title) (empty-sosofo))
|
|
|
|
(element address
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode titlepage-address-mode
|
|
($linespecific-display$ %indent-address-lines% %number-address-lines%))))
|
|
|
|
(element author
|
|
;; Print the author name. Handle the case where there's no AUTHORGROUP
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (not in-group)
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))
|
|
(make sequence
|
|
(make element gi: "A"
|
|
attributes: (list (list "NAME" (element-id)))
|
|
(empty-sosofo))
|
|
(literal (author-list-string))))))
|
|
|
|
(element authorgroup
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-by))
|
|
(make entity-ref name: "nbsp")
|
|
(process-children-trim)))
|
|
|
|
(element copyright
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name (current-node)))
|
|
(make entity-ref name: "nbsp")
|
|
(dingbat-sosofo "copyright")
|
|
(make entity-ref name: "nbsp")
|
|
(process-children)))
|
|
|
|
(element (copyright year)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(literal " "))))
|
|
|
|
(element (copyright holder)
|
|
(make sequence
|
|
(process-children)
|
|
(if (not (last-sibling? (current-node)))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element corpauthor
|
|
(make sequence
|
|
(if (first-sibling?)
|
|
(if (equal? (gi (parent (current-node))) (normalize "authorgroup"))
|
|
(empty-sosofo)
|
|
(literal (gentext-by) " "))
|
|
(literal ", "))
|
|
(process-children)))
|
|
|
|
(element edition
|
|
(make element gi: "P"
|
|
(process-children)
|
|
(make entity-ref name: "nbsp")
|
|
(literal (gentext-element-name-space (gi (current-node))))))
|
|
|
|
(element editor
|
|
;; Print the editor name.
|
|
(let ((in-group (have-ancestor? (normalize "authorgroup") (current-node))))
|
|
(if (or #t (not in-group)) ; nevermind, always put out the Edited by
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make sequence
|
|
(literal (gentext-edited-by))
|
|
(make entity-ref name: "nbsp")
|
|
(literal (author-string))))
|
|
(literal (author-string)))))
|
|
|
|
(element legalnotice
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
($semiformal-object$)))
|
|
|
|
(element (legalnotice title) (empty-sosofo))
|
|
|
|
(element pubdate
|
|
(make element gi: "P"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(literal (gentext-element-name-space (gi (current-node))))
|
|
(process-children)))
|
|
|
|
(element revhistory
|
|
(make element gi: "DIV"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(make element gi: "TABLE"
|
|
attributes: (list
|
|
(list "WIDTH" ($table-width$))
|
|
(list "BORDER" "0"))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TH"
|
|
attributes: '(("ALIGN" "LEFT")
|
|
("VALIGN" "TOP")
|
|
("COLSPAN" "3"))
|
|
(make element gi: "B"
|
|
(literal (gentext-element-name
|
|
(gi (current-node)))))))
|
|
(process-children)))))
|
|
|
|
(element (revhistory revision)
|
|
(let ((revnumber (select-elements (descendants (current-node))
|
|
(normalize "revnumber")))
|
|
(revdate (select-elements (descendants (current-node))
|
|
(normalize "date")))
|
|
(revauthor (select-elements (descendants (current-node))
|
|
(normalize "authorinitials")))
|
|
(revremark (select-elements (descendants (current-node))
|
|
(normalize "revremark"))))
|
|
(make sequence
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revnumber))
|
|
(make sequence
|
|
(literal (gentext-element-name-space
|
|
(gi (current-node))))
|
|
(process-node-list revnumber))
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revdate))
|
|
(process-node-list revdate)
|
|
(empty-sosofo)))
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT"))
|
|
(if (not (node-list-empty? revauthor))
|
|
(make sequence
|
|
(literal (gentext-revised-by))
|
|
(process-node-list revauthor))
|
|
(empty-sosofo))))
|
|
(make element gi: "TR"
|
|
(make element gi: "TD"
|
|
attributes: (list
|
|
(list "ALIGN" "LEFT")
|
|
(list "COLSPAN" "3"))
|
|
(if (not (node-list-empty? revremark))
|
|
(process-node-list revremark)
|
|
(empty-sosofo)))))))
|
|
|
|
(element (revision revnumber) (process-children-trim))
|
|
(element (revision date) (process-children-trim))
|
|
(element (revision authorinitials) (process-children-trim))
|
|
(element (revision revremark) (process-children-trim))
|
|
|
|
(element subtitle
|
|
(make element gi: "H3"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(process-children)))
|
|
|
|
(element title
|
|
(make element gi: "H2"
|
|
attributes: (list (list "CLASS" (gi)))
|
|
(with-mode title-mode
|
|
(process-children))))
|
|
|
|
(element (formalpara title) ($runinhead$))
|
|
)
|