1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
;;;
;;; LES CUSTOMS SONT TROP SPECIFIQUES POUR LA DISTRIBS. NE DOIT PAS VIRER
;;; CE FICHIER (sion simplifie il ne rest plus grand chose)
;;; Erick 27-10-04
;;;
;*=====================================================================*/
;* scmws04/src/latex-style.skr */
;* ------------------------------------------------------------- */
;* Author : Damien Ciabrini */
;* Creation : Tue Aug 24 19:17:04 2004 */
;* Last change : Thu Oct 28 21:45:25 2004 (eg) */
;* Copyright : 2004 Damien Ciabrini, see LICENCE file */
;* ------------------------------------------------------------- */
;* Custom style for Latex... */
;*=====================================================================*/
(let* ((le (find-engine 'latex))
(oa (markup-writer-get 'author le)))
; latex class & package for the workshop
(engine-custom-set! le 'documentclass "\\documentclass[letterpaper]{sigplan-proc}")
(engine-custom-set! le 'usepackage
"\\usepackage{epsfig}
\\usepackage{workshop}
\\conferenceinfo{Fifth Workshop on Scheme and Functional Programming.}
{September 22, 2004, Snowbird, Utah, USA.}
\\CopyrightYear{2004}
\\CopyrightHolder{Damien Ciabrini}
\\renewcommand{\\ttdefault}{cmtt}
")
(engine-custom-set! le 'image-format '("eps"))
(engine-custom-set! le 'source-define-color "#000080")
(engine-custom-set! le 'source-thread-color "#8080f0")
(engine-custom-set! le 'source-string-color "#000000")
; hyperref options
(engine-custom-set! le 'hyperref #t)
(engine-custom-set! le 'hyperref-usepackage
"\\usepackage[bookmarksopen=true, bookmarksopenlevel=2,bookmarksnumbered=true,colorlinks,linkcolor=blue,citecolor=blue,pdftitle={Debugging Scheme Fair Threads}, pdfsubject={debugging cooperative threads based on reactive programming}, pdfkeywords={debugger, functional, reactive programming, Scheme}, pdfauthor={Damien Ciabrini}]{hyperref}")
; nbsp with ~ char
(set! latex-encoding (delete! (assoc #\~ latex-encoding) latex-encoding))
; let latex process citations
(markup-writer 'bib-ref le
:options '(:text :bib)
:before "\\cite{"
:action (lambda (n e) (display (markup-option n :bib)))
:after "}")
(markup-writer 'bib-ref+ le
:options '(:text :bib)
:before "\\cite{"
:action (lambda (n e)
(let loop ((bibs (markup-option n :bib)))
(if (pair? bibs)
(begin
(display (car bibs))
(if (pair? (cdr bibs)) (display ", "))
(loop (cdr bibs))))))
:after "}")
(markup-writer '&the-bibliography le
:action (lambda (n e)
(print "\\bibliographystyle{abbrv}")
(display "\\bibliography{biblio}")))
; ACM-style for authors
(markup-writer '&latex-author le
:before (lambda (n e)
(let ((body (markup-body n)))
(if (pair? body)
(print "\\numberofauthors{" (length body) "}"))
(print "\\author{")))
:after "}\n")
(markup-writer 'author le
:options (writer-options oa)
:before ""
:action (lambda (n e)
(let ((name (markup-option n :name))
(affiliation (markup-option n :affiliation))
(address (markup-option n :address))
(email (markup-option n :email)))
(define (row pre n post)
(display pre)
(output n e)
(display post)
(display "\\\\\n"))
;; name
(if name (row "\\alignauthor " name ""))
;; affiliation
(if affiliation (row "\\affaddr{" affiliation "}"))
;; address
(if (pair? address)
(for-each (lambda (x)
(row "\\affaddr{" x "}")) address))
;; email
(if email (row "\\email{" email "}"))))
:after "")
)
(define (include-biblio)
(the-bibliography))
|