| <!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ |
| <!ENTITY % print "INCLUDE"> |
| <![%print;[ |
| <!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA dsssl> |
| ]]> |
| ]> |
| |
| <!-- |
| $Id$ |
| --> |
| |
| <style-sheet> |
| <style-specification id="print" use="docbook"> |
| <style-specification-body> |
| ;;====================================== |
| ;;General Options |
| ;;====================================== |
| |
| ;;Do you want to print on both sides of the paper? |
| (define %two-side% |
| |
| |
| ;;Do you want enumerated sections? (E.g, 1.1, 1.1.1, 1.2, etc.) |
| (define %section-autolabel% |
| |
| |
| ;;Show URL links? If the text of the link and the URL are identical, |
| ;;the parenthetical URL is suppressed. |
| (define %show-ulinks% |
| |
| |
| ;Make Ulinks footnotes to stop bleeding in the edges - this increases |
| ;'jade --> print' time tremendously keep this in mind before |
| ;complaining! |
| (define %footnote-ulinks% |
| |
| |
| ;;Tex Backend on |
| (define tex-backend |
| |
| |
| ;;Define Line Spacing |
| (define %line-spacing-factor% 1.3) |
| |
| ;;Define the Paragraph Style |
| (define para-style |
| (style |
| font-size: %bf-size% |
| font-weight: 'medium |
| font-posture: 'upright |
| font-family-name: %body-font-family% |
| line-spacing: (* %bf-size% %line-spacing-factor%))) |
| |
| (define ($object-titles-after$) |
| (list (normalize "figure"))) |
| |
| ;;====================================== |
| ;;Book Options |
| ;;====================================== |
| |
| |
| ;;Do you want a title page for a Book? |
| (define %generate-book-titlepage% |
| |
| |
| ;;Do you want a separate page for the title? |
| (define %generate-book-titlepage-on-separate-page% |
| |
| |
| ;;Generate Book TOC? |
| (define %generate-book-toc% |
| |
| |
| ;;What depth should the TOC generate? |
| ;;!Only top level of appendixes! |
| (define (toc-depth nd) |
| (if (string=? (gi nd) (normalize "book")) |
| 3 |
| (if (string=? (gi nd) (normalize "appendix")) |
| 0 |
| 1))) |
| |
| ;;Do you want a TOC for the element part? |
| (define %generate-part-toc% |
| |
| |
| ;;Do you want the part toc on the part titlepage or separate? |
| (define %generate-part-toc-on-titlepage% |
| |
| |
| ;;Generate Part Title Page? |
| (define %generate-part-titlepage% |
| |
| |
| ;;Do you want the Part intro on the part title page? |
| (define %generate-partintro-on-titlepage% |
| |
| |
| ;;What elements should have a LOT? |
| (define ($generate-book-lot-list$) |
| (list (normalize "equation"))) |
| |
| ;;Do you want chapters enumerated? |
| (define %chapter-autolabel% |
| |
| |
| ;;Do you want Chapter's and Appendix's |
| ;;to have automatic labels? |
| (define %chap-app-running-head-autolabel% |
| |
| |
| ;;====================================== |
| ;;Article Options |
| ;;====================================== |
| |
| ;;Do you want a title page for an Article? |
| (define %generate-article-titlepage% |
| |
| |
| ;;Generate Article TOC? |
| (define %generate-article-toc% |
| |
| |
| ;;Do you want a separate page for the title? |
| (define %generate-article-titlepage-on-separate-page% |
| |
| |
| ;;Do you want the article toc on the titlepage or separate? |
| (define %generate-article-toc-on-titlepage% |
| |
| |
| ;;Do you want to start new page numbers with each article? |
| (define %article-page-number-restart% |
| |
| |
| ;;Titlepage Separate? |
| (define (chunk-skip-first-element-list) |
| '()) |
| |
| ;;Titlepage Not Separate |
| ;(define (chunk-skip-first-element-list) |
| ; (list (normalize "sect1") |
| ; (normalize "section"))) |
| |
| ;;====================================== |
| ;;Columns |
| ;;====================================== |
| |
| ;;How many columns do you want? |
| (define %page-n-columns% |
| 1) |
| |
| ;;How much space between columns? |
| (define %page-column-sep% |
| 0.2in) |
| |
| ;;How many Columns on the titlepage? |
| (define %titlepage-n-columns% |
| 1) |
| |
| ;;Balance columns? |
| (define %page-balance-colums% |
| |
| |
| ;;====================================== |
| ;;Fonts |
| ;;====================================== |
| |
| ;;Defines the general size of the text in the document. normal(10), |
| ;;presbyopic(12), and large-type(24). |
| (define %visual-acuity% |
| "presbyopic") |
| |
| ;;What font would you like for titles? |
| (define %title-font-family% |
| "Helvetica") |
| |
| ;;What font would you like for the body? |
| (define %body-font-family% |
| "Palatino") |
| |
| ;;What font would you like for mono-seq? |
| (define %mono-font-family% |
| "Courier New") |
| |
| ;;If the base fontsize is 10pt, and '%hsize-bump-factor%' is |
| ;; 1.2, hsize 1 is 12pt, hsize 2 is 14.4pt, hsize 3 is 17.28pt, etc |
| (define %hsize-bump-factor% |
| 1.1) |
| |
| ;;What size do you want the body fonts? |
| (define %bf-size% |
| (case %visual-acuity% |
| (("tiny") 8pt) |
| (("normal") 10pt) |
| (("presbyopic") 12pt) |
| (("large-type") 24pt))) |
| |
| (define-unit em %bf-size%) |
| |
| ;;====================================== |
| ;;Margins |
| ;;====================================== |
| |
| (define %left-right-margin% 6pi) |
| |
| ;;How much indentation for the body? |
| (define %body-start-indent% |
| 0pi) |
| |
| ;;How big is the left margin? (relative to physical page) |
| (define %left-margin% |
| 8pi) ;white-paper-column |
| |
| ;;How big is the right margin? (relative to physical page) |
| (define %right-margin% |
| 8pi) ;white-paper-column |
| |
| ;;How big do you want the margin at the top? |
| (define %top-margin% |
| (if (equal? %visual-acuity% "large-type") |
| 7.5pi |
| 8pi)) |
| |
| ;;How big do you want the margin at the bottom? |
| (define %bottom-margin% |
| (if (equal? %visual-acuity% "large-type") |
| 7.5pi |
| 8pi)) |
| |
| ;;Define the text width. (Change the elements in the formula rather |
| ;;than the formula itself) |
| ;(define %text-width% (- %page-width% (* %left-right-margin% 2))) |
| (define %text-width% (- %page-width% (+ %left-margin% %right-margin%))) |
| |
| ;;Define the body width. (Change the elements in the formula rather |
| ;;than the formula itself) |
| (define %body-width% |
| (- %text-width% %body-start-indent%)) |
| |
| ;;Define distance between paragraphs |
| (define %para-sep% |
| (/ %bf-size% 1.0)) |
| |
| ;;Define distance between block elements (figures, tables, etc.). |
| (define %block-sep% |
| (* %para-sep% 1.0)) |
| |
| ;;Indent block elements? |
| (define %block-start-indent% |
| 0pt) |
| ;0pt |
| |
| ;;====================================== |
| ;;Admon Graphics |
| ;;====================================== |
| |
| ;;Do you want admon graohics on? |
| (define %admon-graphics% |
| |
| |
| ;;Where are the admon graphics? |
| (define %admon-graphics-path% |
| "../images/") |
| |
| ;;====================================== |
| ;;Quadding |
| ;;====================================== |
| |
| ;;What quadding do you want by default; start, center, justify, or end? |
| (define %default-quadding% |
| 'justify) |
| |
| ;;What quadding for component titles(Chapter, Appendix, etc)? |
| (define %component-title-quadding% |
| 'start) |
| |
| ;;What quadding for section titles? |
| (define %section-title-quadding% |
| 'start) |
| |
| ;;What quadding for section sub-titles? |
| (define %section-subtitle-quadding% |
| 'start) |
| |
| ;;What quadding for article title? |
| (define %article-title-quadding% |
| 'center) |
| |
| ;;What quadding for article sub-titles? |
| (define %article-subtitle-quadding% |
| 'center) |
| |
| ;;What quadding for division subtitles? |
| (define %division-subtitle-quadding% |
| 'start) |
| |
| ;;What quadding for component subtitles? |
| (define %component-subtitle-quadding% |
| 'start) |
| |
| ;;====================================== |
| ;;Paper Options |
| ;;====================================== |
| |
| ;;What size paper do you need? A4, USletter, USlandscape, or RedHat? |
| (define %paper-type% |
| "USletter") |
| |
| ;;Now define those paper types' width |
| (define %page-width% |
| (case %paper-type% |
| (("A4") 210mm) |
| (("USletter") 8.5in) |
| (("USlandscape") 11in))) |
| |
| ;;Now define those paper types' height |
| (define %page-height% |
| (case %paper-type% |
| (("A4") 297mm) |
| (("USletter") 11in) |
| (("USlandscape") 8.5in))) |
| |
| ;;====================================== |
| ;;Functions |
| ;;====================================== |
| |
| (define (OLSTEP) |
| (case |
| (modulo (length (hierarchical-number-recursive "ORDEREDLIST")) 4) |
| ((1) 1.2em) |
| ((2) 1.2em) |
| ((3) 1.6em) |
| ((0) 1.4em))) |
| |
| (define (ILSTEP) 1.0em) |
| |
| (define (PROCSTEP ilvl) |
| (if (> ilvl 1) 1.8em 1.4em)) |
| |
| (define (PROCWID ilvl) |
| (if (> ilvl 1) 1.8em 1.4em)) |
| |
| (define ($comptitle$) |
| (make paragraph |
| font-family-name: %title-font-family% |
| font-weight: 'bold |
| font-size: (HSIZE 2) |
| line-spacing: (* (HSIZE 2) %line-spacing-factor%) |
| space-before: (* (HSIZE 2) %head-before-factor%) |
| space-after: (* (HSIZE 2) %head-after-factor%) |
| start-indent: 0pt |
| first-line-start-indent: 0pt |
| quadding: 'start |
| keep-with-next?: |
| (process-children-trim))) |
| |
| ;;Callouts are confusing in Postscript... fix them. |
| (define %callout-fancy-bug% |
| |
| |
| ;;By default perils are centered and dropped into a box with a really |
| ;;big border - I have simply decreased the border thickness - |
| ;;unfortunately it takes all this to do it - sigh. |
| (define ($peril$) |
| (let* ((title (select-elements |
| (children (current-node)) (normalize "title"))) |
| (has-title (not (node-list-empty? title))) |
| (adm-title (if has-title |
| (make sequence |
| (with-mode title-sosofo-mode |
| (process-node-list (node-list-first title)))) |
| (literal |
| (gentext-element-name |
| (current-node))))) |
| (hs (HSIZE 2))) |
| (if %admon-graphics% |
| ($graphical-admonition$) |
| (make display-group |
| space-before: %block-sep% |
| space-after: %block-sep% |
| font-family-name: %admon-font-family% |
| font-size: (- %bf-size% 1pt) |
| font-weight: 'medium |
| font-posture: 'upright |
| line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) |
| (make box |
| display?: |
| box-type: 'border |
| line-thickness: .5pt |
| start-indent: (+ (inherited-start-indent) (* 2 (ILSTEP)) 2pt) |
| end-indent: (inherited-end-indent) |
| (make paragraph |
| space-before: %para-sep% |
| space-after: %para-sep% |
| start-indent: 1em |
| end-indent: 1em |
| font-family-name: %title-font-family% |
| font-weight: 'bold |
| font-size: hs |
| line-spacing: (* hs %line-spacing-factor%) |
| quadding: 'center |
| keep-with-next?: |
| adm-title) |
| (process-children)))))) |
| |
| ;;====================================== |
| ;;Non-printing Elements |
| ;;====================================== |
| (element TITLEABBREV (empty-sosofo)) |
| (element SUBTITLE (empty-sosofo)) |
| (element SETINFO (empty-sosofo)) |
| (element BOOKINFO (empty-sosofo)) |
| (element BIBLIOENTRY (empty-sosofo)) |
| (element BIBLIOMISC (empty-sosofo)) |
| (element BOOKBIBLIO (empty-sosofo)) |
| (element SERIESINFO (empty-sosofo)) |
| (element DOCINFO (empty-sosofo)) |
| (element ARTHEADER (empty-sosofo)) |
| ;;(element ADDRESS (empty-sosofo)) |
| |
| ;;Show comment element? |
| (define %show-comments% |
| |
| |
| ;;====================================== |
| ;;Formalpara titles |
| ;;====================================== |
| |
| ;;Change the way Formal Paragraph titles are displayed. The commented |
| ;;out section will run the titles in the paragraphs. |
| (element (formalpara title) |
| ;(make sequence |
| ;font-weight: 'bold |
| ;($runinhead$)) |
| ($lowtitle$ 5 7)) |
| |
| ;;====================================== |
| ;;Inlines |
| ;;====================================== |
| |
| (element application ($mono-seq$)) |
| (element command ($bold-seq$)) |
| (element filename ($mono-seq$)) |
| (element function ($mono-seq$)) |
| (element guibutton ($bold-seq$)) |
| (element guiicon ($bold-seq$)) |
| (element guilabel ($italic-seq$)) |
| (element guimenu ($bold-seq$)) |
| (element guimenuitem ($bold-seq$)) |
| (element hardware ($bold-mono-seq$)) |
| (element keycap ($bold-seq$)) |
| (element literal ($mono-seq$)) |
| (element parameter ($italic-mono-seq$)) |
| (element prompt ($mono-seq$)) |
| (element symbol ($charseq$)) |
| (element emphasis ($italic-seq$)) |
| |
| </style-specification-body> |
| </style-specification> |
| |
| <external-specification id="docbook" document="docbook.dsl"> |
| |
| </style-sheet> |