1 |
<!-- |
2 |
Alcove improvements over vanilla DocBook stylesheets. |
3 |
This only includes bugfixes and extensions that should |
4 |
eventually be merged into Norm's stylesheets. |
5 |
|
6 |
Please refer to this stylesheet using the following public ID: |
7 |
|
8 |
-//Alcove//DOCUMENT DocBook Extended Print Stylesheet//EN |
9 |
--> |
10 |
|
11 |
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [ |
12 |
<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA dsssl> |
13 |
]> |
14 |
<style-sheet> |
15 |
<style-specification id="print" use="docbook"> |
16 |
<style-specification-body> |
17 |
|
18 |
;; Remarks are considered internal material, and hidden by default. |
19 |
;; Use jade's -V%show-comments% to have them shown - it will print a |
20 |
;; bold warning on titlepage as well. |
21 |
(define %show-comments% #f) |
22 |
|
23 |
;; |
24 |
;; Changes to be abstracted |
25 |
;; |
26 |
;; from common/dbl1en.dsl 1.76 |
27 |
(define (en-label-title-sep) |
28 |
(list |
29 |
(list (normalize "abstract") ": ") |
30 |
(list (normalize "answer") " ") |
31 |
(list (normalize "appendix") ". ") |
32 |
(list (normalize "caution") "") |
33 |
(list (normalize "chapter") ". ") |
34 |
(list (normalize "equation") ". ") |
35 |
(list (normalize "example") ". ") |
36 |
(list (normalize "figure") ". ") |
37 |
(list (normalize "footnote") ". ") |
38 |
(list (normalize "glosssee") ": ") |
39 |
(list (normalize "glossseealso") ": ") |
40 |
(list (normalize "important") ": ") |
41 |
(list (normalize "note") ": ") |
42 |
(list (normalize "orderedlist") ". ") |
43 |
(list (normalize "part") ". ") |
44 |
(list (normalize "procedure") ". ") |
45 |
(list (normalize "prefix") ". ") |
46 |
(list (normalize "question") " ") |
47 |
(list (normalize "refentry") "") |
48 |
(list (normalize "reference") ". ") |
49 |
(list (normalize "refsect1") ". ") |
50 |
(list (normalize "refsect2") ". ") |
51 |
(list (normalize "refsect3") ". ") |
52 |
(list (normalize "sect1") ". ") |
53 |
(list (normalize "sect2") ". ") |
54 |
(list (normalize "sect3") ". ") |
55 |
(list (normalize "sect4") ". ") |
56 |
(list (normalize "sect5") ". ") |
57 |
;;; BEGIN change |
58 |
(list (normalize "section") "\U-2003;") ; em space |
59 |
;;; END change |
60 |
(list (normalize "simplesect") ". ") |
61 |
(list (normalize "seeie") " ") |
62 |
(list (normalize "seealsoie") " ") |
63 |
(list (normalize "step") ". ") |
64 |
(list (normalize "table") ". ") |
65 |
(list (normalize "tip") ": ") |
66 |
(list (normalize "warning") "") |
67 |
)) |
68 |
|
69 |
;; from common/dbl1fr.dsl 1.76 |
70 |
(define (fr-label-title-sep) |
71 |
(list |
72 |
(list (normalize "abstract") "\U-00A0;: ") |
73 |
(list (normalize "answer") " ") |
74 |
(list (normalize "appendix") ". ") |
75 |
(list (normalize "caution") "") |
76 |
(list (normalize "chapter") ". ") |
77 |
(list (normalize "equation") ". ") |
78 |
(list (normalize "example") ". ") |
79 |
(list (normalize "figure") ". ") |
80 |
(list (normalize "footnote") ". ") |
81 |
(list (normalize "glosssee") "\U-00A0;: ") |
82 |
(list (normalize "glossseealso") "\U-00A0;: ") |
83 |
(list (normalize "important") "\U-00A0;: ") |
84 |
(list (normalize "note") "\U-00A0;: ") |
85 |
(list (normalize "orderedlist") ". ") |
86 |
(list (normalize "part") ". ") |
87 |
(list (normalize "procedure") ". ") |
88 |
(list (normalize "prefix") ". ") |
89 |
(list (normalize "question") " ") |
90 |
(list (normalize "refentry") "") |
91 |
(list (normalize "reference") ". ") |
92 |
(list (normalize "refsect1") ". ") |
93 |
(list (normalize "refsect2") ". ") |
94 |
(list (normalize "refsect3") ". ") |
95 |
(list (normalize "sect1") ". ") |
96 |
(list (normalize "sect2") ". ") |
97 |
(list (normalize "sect3") ". ") |
98 |
(list (normalize "sect4") ". ") |
99 |
(list (normalize "sect5") ". ") |
100 |
;;; BEGIN change |
101 |
(list (normalize "section") "\U-2003;") ; em space |
102 |
;;; END change |
103 |
(list (normalize "simplesect") ". ") |
104 |
(list (normalize "seeie") " ") |
105 |
(list (normalize "seealsoie") " ") |
106 |
(list (normalize "step") ". ") |
107 |
(list (normalize "table") ". ") |
108 |
(list (normalize "tip") "\U-00A0;: ") |
109 |
(list (normalize "warning") "") |
110 |
)) |
111 |
|
112 |
|
113 |
;; |
114 |
;; Generated sosofos |
115 |
;; |
116 |
|
117 |
(define ($document-version-sosofo$) |
118 |
(make sequence |
119 |
(literal (gentext-alcove-revversion)) |
120 |
(literal " ") |
121 |
(literal (data (select-elements |
122 |
(children |
123 |
(node-list-last |
124 |
(select-elements |
125 |
(children (alcove-info-node "revhistory")) |
126 |
(normalize "revision") ))) |
127 |
(normalize "revnumber") ))) )) |
128 |
|
129 |
(define ($document-reference-sosofo$ linebreak) |
130 |
(let ((pnum (alcove-info-node "invpartnumber"))) |
131 |
(make sequence |
132 |
(literal "Réference :") |
133 |
(if linebreak |
134 |
(make paragraph-break) |
135 |
(literal " ")) |
136 |
(if (node-list-empty? pnum) |
137 |
(literal "N/A") |
138 |
(literal (data pnum)))))) |
139 |
|
140 |
(define (number-of-pages-sosofo) |
141 |
;; use element with ID="eof" for last page, or attempt to find last element |
142 |
(let ((eof-elt (element-with-id (normalize "eof")))) |
143 |
(if (node-list-empty? eof-elt) |
144 |
(element-page-number-sosofo (last-descendant-node (sgml-root-element))) |
145 |
(make link |
146 |
destination: (idref-address (normalize "eof")) |
147 |
(element-page-number-sosofo eof-elt))))) |
148 |
;;; (total-node-page-numbers (sgml-root-element)) |
149 |
|
150 |
(define ($pagenumber-with-total-sosofo$) |
151 |
(make sequence |
152 |
(literal (gentext-alcove-page)) |
153 |
(page-number-sosofo) ; FIXME: replace with $page-number-header-footer$ when |
154 |
; possible to parametrize font-posture ? |
155 |
(literal (gentext-alcove-page-of)) |
156 |
(number-of-pages-sosofo))) |
157 |
|
158 |
|
159 |
;; |
160 |
;; Color definitions |
161 |
;; |
162 |
|
163 |
(define rgb-color-space (color-space |
164 |
"ISO/IEC 10179:1996//Color-Space Family::Device RGB")) |
165 |
(define color-red (color rgb-color-space 1 0 0)) |
166 |
|
167 |
;; |
168 |
;; Allow PDF graphics inclusion <!-- adapted from Ian Castle <bb@looksystems.co.uk> --> |
169 |
;; |
170 |
|
171 |
;; set this to #t using 'jade -V use-eps' to allow building a .ps document |
172 |
;; instead of a .pdf one |
173 |
(define use-eps #f) |
174 |
|
175 |
;; these just add pdf to the 1.71 lists, unless we want to use eps instead |
176 |
;; this allows to specify both eps and pdf in the mediaobject |
177 |
(define %graphic-extensions% |
178 |
(if use-eps |
179 |
'("eps" "epsf" "gif" "tif" "tiff" "jpg" "jpeg" "png") |
180 |
'("pdf" "gif" "tif" "tiff" "jpg" "jpeg" "png"))) |
181 |
(define preferred-mediaobject-notations |
182 |
(if use-eps |
183 |
'("EPS" "PS" "JPG" "JPEG" "PNG" "linespecific") |
184 |
'("PDF" "JPG" "JPEG" "PNG" "linespecific"))) |
185 |
(define preferred-mediaobject-extensions |
186 |
(if use-eps |
187 |
'("eps" "ps" "jpg" "jpeg" "png") |
188 |
'("pdf" "jpg" "jpeg" "png"))) |
189 |
|
190 |
|
191 |
;; |
192 |
;; L10n |
193 |
;; |
194 |
|
195 |
(define (gentext-alcove-authors) |
196 |
(case ($lang$) |
197 |
(("en") "Authors:") |
198 |
(("fr") "Auteurs :") |
199 |
(("es") "Autores:") |
200 |
(("de") "Autoren:") |
201 |
(else (error (string-append "L10N ERROR: alcove-authors: " |
202 |
$lang$))))) |
203 |
|
204 |
(define (gentext-alcove-revversion) |
205 |
(case ($lang$) |
206 |
(("en") "Version") |
207 |
(("fr") "Version") |
208 |
(("es") "Versión") |
209 |
(("de") "Version") |
210 |
(else (error (string-append "L10N ERROR: alcove-revversion: " |
211 |
$lang$))))) |
212 |
|
213 |
(define (gentext-alcove-revdate) |
214 |
(case ($lang$) |
215 |
(("en") "Date") |
216 |
(("fr") "Date") |
217 |
(("es") "Fecha") |
218 |
(("de") "Datum") |
219 |
(else (error (string-append "L10N ERROR: alcove-revdate: " |
220 |
$lang$))))) |
221 |
|
222 |
(define (gentext-alcove-revdesc) |
223 |
(case ($lang$) |
224 |
(("en") "Revision description") |
225 |
(("fr") "Objet de la révision") |
226 |
(("es") "Descripción de la revisión") |
227 |
(("de") "Gegenstand der Überarbeitung") |
228 |
(else (error (string-append "L10N ERROR: alcove-revdesc: " |
229 |
$lang$))))) |
230 |
|
231 |
(define (gentext-alcove-visa) |
232 |
(case ($lang$) |
233 |
(("en") "Visa") |
234 |
(("fr") "Visa") |
235 |
(("es") "Firma") |
236 |
(("de") "Unterschrift") |
237 |
(else (error (string-append "L10N ERROR: alcove-visa: " |
238 |
$lang$))))) |
239 |
|
240 |
(define (gentext-alcove-name) |
241 |
(case ($lang$) |
242 |
(("en") "Name") |
243 |
(("fr") "Nom") |
244 |
(("es") "Nombre") |
245 |
(("de") "Name") |
246 |
(else (error (string-append "L10N ERROR: alcove-name: " |
247 |
$lang$))))) |
248 |
|
249 |
(define (gentext-alcove-writing) |
250 |
(case ($lang$) |
251 |
(("en") "Writing") |
252 |
(("fr") "Rédaction") |
253 |
(("es") "Redacción") |
254 |
(("de") "Bearbeitung") |
255 |
(else (error (string-append "L10N ERROR: alcove-writing: " |
256 |
$lang$))))) |
257 |
|
258 |
(define (gentext-alcove-checking) |
259 |
(case ($lang$) |
260 |
(("en") "Checking") |
261 |
(("fr") "Vérification") |
262 |
(("es") "Revisión") |
263 |
(("de") "Prüfung") |
264 |
(else (error (string-append "L10N ERROR: alcove-checking: " |
265 |
$lang$))))) |
266 |
|
267 |
(define (gentext-alcove-approval) |
268 |
(case ($lang$) |
269 |
(("en") "Approval") |
270 |
(("fr") "Approbation") |
271 |
(("es") "Aprobación") |
272 |
(("de") "Freigabe") |
273 |
(else (error (string-append "L10N ERROR: alcove-approval: " |
274 |
$lang$))))) |
275 |
|
276 |
(define (gentext-alcove-page) |
277 |
(case ($lang$) |
278 |
(("en") "Page ") |
279 |
(("fr") "Page ") |
280 |
;;; (("es") "") |
281 |
(("de") "Seite ") |
282 |
(else (error (string-append "L10N ERROR: alcove-page: " |
283 |
$lang$))))) |
284 |
|
285 |
(define (gentext-alcove-page-of) |
286 |
(case ($lang$) |
287 |
(("en") " of ") |
288 |
(("fr") " sur ") |
289 |
;;; (("es") "") |
290 |
(("de") " von ") |
291 |
(else (error (string-append "L10N ERROR: alcove-page-of: " |
292 |
$lang$))))) |
293 |
|
294 |
;; |
295 |
;; Function library |
296 |
;; |
297 |
|
298 |
(define (last-descendant-node nd) |
299 |
(if (node-list-empty? (children nd)) |
300 |
nd |
301 |
(last-descendant-node (node-list-last (children nd))))) |
302 |
|
303 |
(define (alcove-info-node gi) |
304 |
(select-elements |
305 |
(children (select-elements |
306 |
(children (sgml-root-element)) |
307 |
(normalize "articleinfo"))) |
308 |
(normalize gi))) |
309 |
|
310 |
;; |
311 |
;; |
312 |
;; |
313 |
|
314 |
(define (%revhistory-hook%) |
315 |
(empty-sosofo)) |
316 |
|
317 |
(define %revhistory-border% |
318 |
(make table-border |
319 |
border-present?: #t |
320 |
line-thickness: 3pt |
321 |
)) |
322 |
|
323 |
(define ($signature-box$) |
324 |
(make sequence |
325 |
(make paragraph |
326 |
space-before: 1cm |
327 |
(literal "\no-break-space;")) |
328 |
(make table |
329 |
;;; space-before: 1cm |
330 |
cell-before-row-margin: (* 0.1 %bf-size%) |
331 |
cell-after-row-margin: (* 0.3 %bf-size%) |
332 |
table-border: %revhistory-border% |
333 |
cell-after-row-border: %revhistory-border% |
334 |
cell-after-column-border: #t |
335 |
|
336 |
(make table-column width: (* 0.25 %text-width%)) |
337 |
(make table-column width: (* 0.25 %text-width%)) |
338 |
(make table-column width: (* 0.25 %text-width%)) |
339 |
(make table-column width: (* 0.25 %text-width%)) |
340 |
|
341 |
(make table-row |
342 |
(make table-cell |
343 |
column-number: 2 |
344 |
(make paragraph |
345 |
quadding: 'center |
346 |
(literal (gentext-alcove-writing)))) |
347 |
(make table-cell |
348 |
(make paragraph |
349 |
quadding: 'center |
350 |
(literal (gentext-alcove-checking)))) |
351 |
(make table-cell |
352 |
(make paragraph |
353 |
quadding: 'center |
354 |
(literal (gentext-alcove-approval)))) |
355 |
) |
356 |
(make table-row |
357 |
(make table-cell |
358 |
cell-before-row-margin: %bf-size% |
359 |
cell-after-row-margin: %bf-size% |
360 |
|
361 |
(make paragraph |
362 |
quadding: 'center |
363 |
(literal (gentext-alcove-name))))) |
364 |
(make table-row |
365 |
(make table-cell |
366 |
cell-before-row-margin: %bf-size% |
367 |
cell-after-row-margin: %bf-size% |
368 |
|
369 |
(make paragraph |
370 |
quadding: 'center |
371 |
(literal (gentext-alcove-visa))))) |
372 |
))) |
373 |
|
374 |
(define ($revhistory-table$) |
375 |
(make sequence |
376 |
(make paragraph |
377 |
use: article-titlepage-verso-style |
378 |
font-family-name: %title-font-family% |
379 |
font-weight: 'bold |
380 |
space-before: (* (HSIZE 3) %head-before-factor%) |
381 |
space-after: (/ (* (HSIZE 1) %head-before-factor%) 2) |
382 |
(literal (gentext-element-name (current-node)))) |
383 |
(make table |
384 |
table-border: #t |
385 |
cell-after-row-border: #t |
386 |
cell-after-column-border: #t |
387 |
cell-before-row-margin: (* 0.1 %bf-size%) |
388 |
cell-after-row-margin: (* 0.3 %bf-size%) |
389 |
cell-before-column-margin: (* 0.2 %bf-size%) |
390 |
cell-after-column-margin: (* 0.2 %bf-size%) |
391 |
|
392 |
(make table-column width: (* 0.1 %text-width%)) |
393 |
(make table-column width: (* 0.15 %text-width%)) |
394 |
(make table-column width: (* 0.75 %text-width%)) |
395 |
|
396 |
(make table-row |
397 |
font-weight: 'bold |
398 |
(make table-cell (make paragraph |
399 |
quadding: 'center |
400 |
(literal (gentext-alcove-revversion)))) |
401 |
(make table-cell (make paragraph |
402 |
quadding: 'center |
403 |
(literal (gentext-alcove-revdate)))) |
404 |
(make table-cell (make paragraph |
405 |
quadding: 'center |
406 |
(literal (gentext-alcove-revdesc)))) |
407 |
) |
408 |
(process-children)) |
409 |
(%revhistory-hook%))) |
410 |
|
411 |
(define ($revhistory-table-revision$) |
412 |
(let ((revnumber (select-elements (descendants (current-node)) |
413 |
(normalize "revnumber"))) |
414 |
(revdate (select-elements (descendants (current-node)) |
415 |
(normalize "date"))) |
416 |
; (revauthor (select-elements (descendants (current-node)) |
417 |
; (normalize "authorinitials"))) |
418 |
(revremark (select-elements (descendants (current-node)) |
419 |
(normalize "revremark")))) |
420 |
(make table-row |
421 |
; cell-after-row-border: #t |
422 |
(make table-cell |
423 |
column-number: 1 |
424 |
n-columns-spanned: 1 |
425 |
n-rows-spanned: 1 |
426 |
; start-indent: 0pt |
427 |
(if (node-list-empty? revnumber) |
428 |
(empty-sosofo) |
429 |
(make paragraph |
430 |
use: article-titlepage-verso-style |
431 |
font-size: %bf-size% |
432 |
space-after: %bf-size% |
433 |
font-weight: 'medium |
434 |
quadding: 'center |
435 |
; (literal (gentext-element-name-space (current-node))) |
436 |
(process-node-list revnumber)))) |
437 |
|
438 |
(make table-cell |
439 |
column-number: 2 |
440 |
n-columns-spanned: 1 |
441 |
n-rows-spanned: 1 |
442 |
; start-indent: 0pt |
443 |
cell-before-column-margin: (if (equal? (print-backend) 'tex) |
444 |
6pt |
445 |
0pt) |
446 |
(if (node-list-empty? revdate) |
447 |
(empty-sosofo) |
448 |
(make paragraph |
449 |
use: article-titlepage-verso-style |
450 |
font-size: %bf-size% |
451 |
font-weight: 'medium |
452 |
quadding: 'center |
453 |
(process-node-list revdate)))) |
454 |
|
455 |
(make table-cell |
456 |
column-number: 3 |
457 |
n-columns-spanned: 1 |
458 |
n-rows-spanned: 1 |
459 |
; start-indent: 0pt |
460 |
(if (not (node-list-empty? revremark)) |
461 |
(make paragraph |
462 |
use: article-titlepage-verso-style |
463 |
font-size: %bf-size% |
464 |
font-weight: 'medium |
465 |
quadding: 'justify |
466 |
space-after: (if (last-sibling?) |
467 |
0pt |
468 |
(/ %block-sep% 2)) |
469 |
(process-node-list revremark)) |
470 |
(empty-sosofo)))))) |
471 |
|
472 |
;; |
473 |
;; Admonitions |
474 |
;; |
475 |
|
476 |
(define %admon-graphics-path% "/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/images/") |
477 |
(define admon-graphic-default-extension |
478 |
(if use-eps ".eps" ".pdf")) |
479 |
|
480 |
;; <!-- This code by Richard Sharpe <rsharpe@ns.aus.com> --> |
481 |
;; Taken from http://lists.oasis-open.org/archives/docbook-apps/200107/msg00278.html |
482 |
(define ($graphical-admonition$) |
483 |
(let* ((adm (current-node)) |
484 |
(title (select-elements (children adm) |
485 |
(normalize "title"))) |
486 |
(title? (not (node-list-empty? title))) |
487 |
(adm-title (if title? |
488 |
(with-mode title-sosofo-mode |
489 |
(process-node-list (node-list-first title))) |
490 |
(literal (gentext-element-name adm)))) |
491 |
(graphic (make external-graphic |
492 |
display?: #f |
493 |
position-point-y: (+ %bf-size% 2pt) |
494 |
entity-system-id: ($admon-graphic$))) |
495 |
(f-child (node-list-first (children (current-node)))) |
496 |
(r-child (node-list-rest (children (current-node))))) |
497 |
|
498 |
(make table |
499 |
space-before: %block-sep% |
500 |
space-after: %block-sep% |
501 |
table-width: (- %text-width% (inherited-start-indent)) |
502 |
(make table-column |
503 |
width: ($admon-graphic-width$)) |
504 |
(make table-column |
505 |
width: 10pt) |
506 |
(make table-column |
507 |
width: (- %text-width% |
508 |
(+ (inherited-start-indent) |
509 |
($admon-graphic-width$) |
510 |
10pt))) |
511 |
(make table-row |
512 |
(make table-cell |
513 |
graphic) |
514 |
(make table-cell |
515 |
(make line-field |
516 |
field-width: 5pt |
517 |
field-align: 'center |
518 |
(empty-sosofo))) |
519 |
(make table-cell |
520 |
(make sequence |
521 |
font-family-name: %title-font-family% |
522 |
font-weight: 'bold |
523 |
adm-title) |
524 |
(process-children)))))) |
525 |
|
526 |
|
527 |
;;; START integrated in my 1.75-0.potato1 and later |
528 |
;; |
529 |
;; Don't start a block element for itemizedlist or orderedlist title |
530 |
;; just inside a listitem, so that it looks correct |
531 |
;; |
532 |
|
533 |
(element (listitem itemizedlist title) |
534 |
(make sequence |
535 |
use: title-style |
536 |
(process-children))) |
537 |
(element (listitem orderedlist title) |
538 |
(make sequence |
539 |
use: title-style |
540 |
(process-children))) |
541 |
|
542 |
;; put the title itself outside the displaygroup for the same reason |
543 |
(define ($list$) |
544 |
(make sequence |
545 |
(process-node-list |
546 |
(select-elements (children (current-node)) |
547 |
(normalize "title"))) |
548 |
(make display-group |
549 |
start-indent: (if (INBLOCK?) |
550 |
(inherited-start-indent) |
551 |
(+ %block-start-indent% (inherited-start-indent))) |
552 |
space-after: (if (INLIST?) %para-sep% %block-sep%) |
553 |
|
554 |
(process-node-list (node-list-filter-by-not-gi |
555 |
(children (current-node)) |
556 |
(list (normalize "title"))))))) |
557 |
;;; END integrated in my 1.75-0.potato1 |
558 |
|
559 |
;;; |
560 |
;;; Modified code from docbook-dsssl 1.76 |
561 |
;;; |
562 |
|
563 |
;; emulate vanilla behaviour using new features |
564 |
|
565 |
(define ($section-title-quadding$) %section-title-quadding%) |
566 |
(define ($section-start-indent$ hlevel) |
567 |
(if (or (>= hlevel 3) |
568 |
(member (gi) (list (normalize "refsynopsisdiv") |
569 |
(normalize "refsect1") |
570 |
(normalize "refsect2") |
571 |
(normalize "refsect3")))) |
572 |
%body-start-indent% |
573 |
0pt)) |
574 |
(define $sidebar-start-indent$ inherited-start-indent) |
575 |
(define $sidebar-end-indent$ inherited-end-indent) |
576 |
(define %article-section-starts-new-page% #f) |
577 |
(define %endnotes-on-own-page% #f) |
578 |
(define ($endnotes-left-footer$) ($left-footer$)) |
579 |
(define ($endnotes-right-footer$) ($right-footer$)) |
580 |
(define ($endnotes-center-footer$) ($center-footer$)) |
581 |
|
582 |
(define (%titlepage-left-header%) (empty-sosofo)) |
583 |
(define (%titlepage-right-header%) (empty-sosofo)) |
584 |
(define (%titlepage-center-header%) (empty-sosofo)) |
585 |
|
586 |
(define (%titlepage-left-footer%) (empty-sosofo)) |
587 |
(define (%titlepage-right-footer%) (empty-sosofo)) |
588 |
(define (%titlepage-center-footer%) (empty-sosofo)) |
589 |
|
590 |
|
591 |
;; the code |
592 |
|
593 |
;; from print/dbcompon.dsl 1.76 |
594 |
(element article |
595 |
(let* ((info (node-list-filter-by-gi (children (current-node)) |
596 |
(list (normalize "artheader") |
597 |
(normalize "articleinfo")))) |
598 |
(nl (titlepage-info-elements (current-node) info)) |
599 |
(article-titlepage (if %generate-article-titlepage-on-separate-page% |
600 |
(make sequence |
601 |
(if (article-titlepage-content? nl 'recto) |
602 |
(make simple-page-sequence |
603 |
page-n-columns: %page-n-columns% |
604 |
use: default-text-style |
605 |
quadding: %default-quadding% |
606 |
;; BEGIN ADDITION |
607 |
center-header: (%titlepage-center-header%) |
608 |
left-header: (%titlepage-left-header%) |
609 |
right-header: (%titlepage-right-header%) |
610 |
center-footer: (%titlepage-center-footer%) |
611 |
left-footer: (%titlepage-left-footer%) |
612 |
right-footer: (%titlepage-right-footer%) |
613 |
;; END ADDITION |
614 |
(article-titlepage nl 'recto)) |
615 |
(empty-sosofo)) |
616 |
(if (article-titlepage-content? nl 'verso) |
617 |
(make simple-page-sequence |
618 |
page-n-columns: %page-n-columns% |
619 |
use: default-text-style |
620 |
quadding: %default-quadding% |
621 |
;; BEGIN ADDITION |
622 |
center-header: (%titlepage-center-header%) |
623 |
left-header: (%titlepage-left-header%) |
624 |
right-header: (%titlepage-right-header%) |
625 |
center-footer: (%titlepage-center-footer%) |
626 |
left-footer: (%titlepage-left-footer%) |
627 |
right-footer: (%titlepage-right-footer%) |
628 |
;; END ADDITION |
629 |
(article-titlepage nl 'verso)) |
630 |
(empty-sosofo))) |
631 |
(make sequence |
632 |
(article-titlepage nl 'recto) |
633 |
(article-titlepage nl 'verso))))) |
634 |
(make sequence |
635 |
(if (and %generate-article-titlepage% |
636 |
%generate-article-titlepage-on-separate-page%) |
637 |
article-titlepage |
638 |
(empty-sosofo)) |
639 |
|
640 |
(if (and %generate-article-toc% |
641 |
(not %generate-article-toc-on-titlepage%) |
642 |
%generate-article-titlepage-on-separate-page% |
643 |
(generate-toc-in-front)) |
644 |
(make simple-page-sequence |
645 |
page-n-columns: %page-n-columns% |
646 |
page-number-restart?: %article-page-number-restart% |
647 |
page-number-format: ($page-number-format$ (normalize "toc")) |
648 |
left-header: ($left-header$ (normalize "toc")) |
649 |
center-header: ($center-header$ (normalize "toc")) |
650 |
right-header: ($right-header$ (normalize "toc")) |
651 |
left-footer: ($left-footer$ (normalize "toc")) |
652 |
center-footer: ($center-footer$ (normalize "toc")) |
653 |
right-footer: ($right-footer$ (normalize "toc")) |
654 |
input-whitespace-treatment: 'collapse |
655 |
use: default-text-style |
656 |
quadding: %default-quadding% |
657 |
(build-toc (current-node) |
658 |
(toc-depth (current-node)))) |
659 |
(empty-sosofo)) |
660 |
|
661 |
;; BEGIN ADDITION |
662 |
(if %article-section-starts-new-page% |
663 |
(make sequence |
664 |
(process-children) |
665 |
(make-endnotes)) |
666 |
;;; END ADDITION |
667 |
|
668 |
(make simple-page-sequence |
669 |
;; BEGIN ADDITION |
670 |
;; WARNING: all this is copied in ($maybe-paged-section$) below |
671 |
;;; END ADDITION |
672 |
page-n-columns: %page-n-columns% |
673 |
page-number-restart?: (or %article-page-number-restart% |
674 |
(book-start?)) |
675 |
page-number-format: ($page-number-format$) |
676 |
use: default-text-style |
677 |
left-header: ($left-header$) |
678 |
center-header: ($center-header$) |
679 |
right-header: ($right-header$) |
680 |
left-footer: ($left-footer$) |
681 |
center-footer: ($center-footer$) |
682 |
right-footer: ($right-footer$) |
683 |
start-indent: %body-start-indent% |
684 |
input-whitespace-treatment: 'collapse |
685 |
quadding: %default-quadding% |
686 |
|
687 |
(if (and %generate-article-titlepage% |
688 |
(not %generate-article-titlepage-on-separate-page%)) |
689 |
article-titlepage |
690 |
(empty-sosofo)) |
691 |
|
692 |
(if (and %generate-article-toc% |
693 |
(generate-toc-in-front) |
694 |
(not %generate-article-toc-on-titlepage%) |
695 |
(not %generate-article-titlepage-on-separate-page%)) |
696 |
(make display-group |
697 |
space-after: (* (HSIZE 3) %head-after-factor%) |
698 |
(build-toc (current-node) |
699 |
(toc-depth (current-node)))) |
700 |
(empty-sosofo)) |
701 |
|
702 |
(process-children) |
703 |
|
704 |
;;; BEGIN ADDITION |
705 |
(if %endnotes-on-own-page% |
706 |
(empty-sosofo) |
707 |
;;; END ADDITION |
708 |
(make-endnotes)) |
709 |
|
710 |
(if (and %generate-article-toc% |
711 |
(not (generate-toc-in-front)) |
712 |
(not %generate-article-toc-on-titlepage%) |
713 |
(not %generate-article-titlepage-on-separate-page%)) |
714 |
(make display-group |
715 |
space-after: (* (HSIZE 3) %head-after-factor%) |
716 |
(build-toc (current-node) |
717 |
(toc-depth (current-node)))) |
718 |
(empty-sosofo)))) |
719 |
|
720 |
;;; BEGIN ADDITION |
721 |
(if %endnotes-on-own-page% |
722 |
|
723 |
(make simple-page-sequence |
724 |
page-n-columns: %page-n-columns% |
725 |
page-number-restart?: (or %article-page-number-restart% |
726 |
(book-start?)) |
727 |
page-number-format: ($page-number-format$) |
728 |
use: default-text-style |
729 |
left-header: ($left-header$) |
730 |
center-header: ($center-header$) |
731 |
right-header: ($right-header$) |
732 |
left-footer: ($endnotes-left-footer$) |
733 |
center-footer: ($endnotes-center-footer$) |
734 |
right-footer: ($endnotes-right-footer$) |
735 |
start-indent: %body-start-indent% |
736 |
input-whitespace-treatment: 'collapse |
737 |
quadding: %default-quadding% |
738 |
|
739 |
(make-endnotes)) |
740 |
(empty-sosofo)) |
741 |
;;; END ADDITION |
742 |
|
743 |
(if (and %generate-article-toc% |
744 |
(not %generate-article-toc-on-titlepage%) |
745 |
%generate-article-titlepage-on-separate-page% |
746 |
(not (generate-toc-in-front))) |
747 |
(make simple-page-sequence |
748 |
page-n-columns: %page-n-columns% |
749 |
use: default-text-style |
750 |
quadding: %default-quadding% |
751 |
(build-toc (current-node) |
752 |
(toc-depth (current-node)))) |
753 |
(empty-sosofo))))) |
754 |
|
755 |
(define (is-section-level-element nd) |
756 |
(let ((ngi (gi nd))) |
757 |
(or (string=? ngi (normalize "section")) |
758 |
(string=? ngi (normalize "appendix"))))) |
759 |
|
760 |
(element section ($maybe-paged-section$)) |
761 |
(element (article appendix) ($maybe-paged-section$)) |
762 |
(element (article glossary) ($maybe-paged-section$)) |
763 |
|
764 |
;; FIXME: |
765 |
(define ($maybe-paged-section$) |
766 |
(if (and %article-section-starts-new-page% |
767 |
(not (is-section-level-element (parent (current-node))))) |
768 |
(make simple-page-sequence |
769 |
;; WARNING: all this is copied from the page-seq above |
770 |
page-n-columns: %page-n-columns% |
771 |
page-number-restart?: (or %article-page-number-restart% |
772 |
(book-start?)) |
773 |
page-number-format: ($page-number-format$) |
774 |
use: default-text-style |
775 |
left-header: ($left-header$) |
776 |
center-header: ($center-header$) |
777 |
right-header: ($right-header$) |
778 |
left-footer: ($left-footer$) |
779 |
center-footer: ($center-footer$) |
780 |
right-footer: ($right-footer$) |
781 |
start-indent: %body-start-indent% |
782 |
input-whitespace-treatment: 'collapse |
783 |
quadding: %default-quadding% |
784 |
|
785 |
($section$)) |
786 |
($section$))) |
787 |
|
788 |
;; from print/dbsect.dsl 1.76 |
789 |
(define ($section-title$) |
790 |
(let* ((sect (current-node)) |
791 |
(info (info-element)) |
792 |
(exp-children (if (node-list-empty? info) |
793 |
(empty-node-list) |
794 |
(expand-children (children info) |
795 |
(list (normalize "bookbiblio") |
796 |
(normalize "bibliomisc") |
797 |
(normalize "biblioset"))))) |
798 |
(parent-titles (select-elements (children sect) (normalize "title"))) |
799 |
(info-titles (select-elements exp-children (normalize "title"))) |
800 |
(titles (if (node-list-empty? parent-titles) |
801 |
info-titles |
802 |
parent-titles)) |
803 |
(subtitles (select-elements exp-children (normalize "subtitle"))) |
804 |
(renderas (inherited-attribute-string (normalize "renderas") sect)) |
805 |
(hlevel |
806 |
;; if not real section level, then get the apparent level |
807 |
;; from "renderas" |
808 |
(if renderas |
809 |
(section-level-by-gi #f (normalize renderas)) |
810 |
;; else use the real level |
811 |
;;; BEGIN CHANGE |
812 |
(if (have-ancestor? "appendix" (current-node)) |
813 |
(+ 1 (SECTLEVEL)) |
814 |
(SECTLEVEL)) )) |
815 |
;;; END CHANGE |
816 |
(hs (HSIZE (- 4 hlevel)))) |
817 |
(make sequence |
818 |
(make paragraph |
819 |
font-family-name: %title-font-family% |
820 |
font-weight: (if (< hlevel 5) 'bold 'medium) |
821 |
font-posture: (if (< hlevel 5) 'upright 'italic) |
822 |
font-size: hs |
823 |
line-spacing: (* hs %line-spacing-factor%) |
824 |
space-before: (* hs %head-before-factor%) |
825 |
space-after: (if (node-list-empty? subtitles) |
826 |
(* hs %head-after-factor%) |
827 |
0pt) |
828 |
;;; BEGIN CHANGE |
829 |
start-indent: ($section-start-indent$ hlevel) |
830 |
;;; END CHANGE |
831 |
first-line-start-indent: 0pt |
832 |
;;; BEGIN CHANGE |
833 |
quadding: ($section-title-quadding$) |
834 |
;;; END CHANGE |
835 |
keep-with-next?: #t |
836 |
heading-level: (if %generate-heading-level% hlevel 0) |
837 |
;; SimpleSects are never AUTO numbered...they aren't hierarchical |
838 |
(if (string=? (element-label (current-node)) "") |
839 |
(empty-sosofo) |
840 |
(literal (element-label (current-node)) |
841 |
(gentext-label-title-sep (gi sect)))) |
842 |
(element-title-sosofo (current-node))) |
843 |
(with-mode section-title-mode |
844 |
(process-node-list subtitles)) |
845 |
($section-info$ info)))) |
846 |
|
847 |
;; from print/dbblock.dsl 1.76 |
848 |
(element sidebar |
849 |
(make box |
850 |
display?: #t |
851 |
box-type: 'border |
852 |
line-thickness: 1pt |
853 |
;; BEGIN CHANGED |
854 |
start-indent: ($sidebar-start-indent$) |
855 |
end-indent: ($sidebar-end-indent$) |
856 |
;; END CHANGED |
857 |
(if (node-list-empty? (select-elements (children (current-node)) |
858 |
(normalize "title"))) |
859 |
(make display-group |
860 |
start-indent: 2pt |
861 |
end-indent: 2pt |
862 |
space-before: %block-sep% |
863 |
space-after: %block-sep% |
864 |
(process-children)) |
865 |
(make display-group |
866 |
start-indent: 2pt |
867 |
end-indent: 2pt |
868 |
space-before: 0pt |
869 |
space-after: %block-sep% |
870 |
(make sequence |
871 |
(let* ((object (current-node)) |
872 |
(title (select-elements (children object) |
873 |
(normalize "title"))) |
874 |
(nsep (gentext-label-title-sep (gi object)))) |
875 |
(make paragraph |
876 |
font-weight: 'bold |
877 |
space-before: %block-sep% |
878 |
space-after: %para-sep% |
879 |
keep-with-next?: #t |
880 |
(literal (gentext-element-name object)) |
881 |
(if (string=? (element-label object) "") |
882 |
(literal nsep) |
883 |
(literal " " (element-label object) nsep)) |
884 |
(process-node-list (children title)))) |
885 |
(process-children)))))) |
886 |
|
887 |
;; prevent glosslists to clutter pdf outlines |
888 |
;; code adapted from 1.76's ($lowtitlewithsosofo$) |
889 |
(element (glosslist glossentry glossterm) |
890 |
(let ((hs (HSIZE 0))) |
891 |
(make paragraph |
892 |
font-family-name: %title-font-family% |
893 |
font-weight: 'bold |
894 |
font-size: hs |
895 |
line-spacing: (* hs %line-spacing-factor%) |
896 |
space-before: (* hs %head-before-factor%) |
897 |
space-after: (* hs %head-after-factor%) |
898 |
start-indent: %body-start-indent% |
899 |
quadding: 'start |
900 |
keep-with-next?: #t |
901 |
(process-children)))) |
902 |
|
903 |
</style-specification-body> |
904 |
</style-specification> |
905 |
|
906 |
<external-specification id="docbook" document="docbook.dsl"> |
907 |
</style-sheet> |