<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ <!ENTITY % html "IGNORE"> <![%html;[ <!ENTITY % print "IGNORE"> <!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA dsssl> ]]> <!ENTITY % print "INCLUDE"> <![%print;[ <!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA dsssl> ]]> ]> <style-sheet> <!-- PRINT --> <style-specification id="print" use="docbook"> <style-specification-body> ;;; TeX backend can go to PS (where EPS is needed) ;;; or to PDF (where PNG is needed). So, just ;;; omit the file extension altogether and let ;;; tex/pdfjadetex sort it out on its own. (define (graphic-file filename) (let ((ext (file-extension filename))) (if (or (equal? 'backend 'tex) ;; Leave off the extension for TeX (not filename) (not %graphic-default-extension%) (member ext %graphic-extensions%)) filename (string-append filename "." %graphic-default-extension%)))) ;;; Full justification. (define %default-quadding% 'justify) ;;; To make URLs line wrap we use the TeX 'url' package. ;;; See also: jadetex.cfg ;; First we need to declare the 'formatting-instruction' flow class. (declare-flow-object-class formatting-instruction "UNREGISTERED::James Clark//Flow Object Class::formatting-instruction") ;; Then redefine ulink to use it. (element ulink (make sequence (if (node-list-empty? (children (current-node))) ; ulink url="...", /ulink (make formatting-instruction data: (string-append "\\url{" (attribute-string (normalize "url")) "}")) (if (equal? (attribute-string (normalize "url")) (data-of (current-node))) ; ulink url="http://...", http://..., /ulink (make formatting-instruction data: (string-append "\\url{" (attribute-string (normalize "url")) "}")) ; ulink url="http://...", some text, /ulink (make sequence ($charseq$) (literal " (") (make formatting-instruction data: (string-append "\\url{" (attribute-string (normalize "url")) "}")) (literal ")")))))) ;;; And redefine filename to use it too. (element filename (make formatting-instruction data: (string-append "\\path{" (data-of (current-node)) "}"))) </style-specification-body> </style-specification> <!-- HTML --> <style-specification id="html" use="docbook"> <style-specification-body> (define %stylesheet% "selfdocbook.css") (define %use-id-as-filename% #t) (define %html-ext% ".html") </style-specification-body> </style-specification> <external-specification id="docbook" document="docbook.dsl"> </style-sheet>