#lang scheme/base ;; Wrapper around rambligns.txt tex -> png/pdf rendering. (provide (all-defined-out)) (require (planet zwizwa/lib/latex)) ;; Some parts (the footer for references) are parsed using the default ;; syntax parser. (require scheme/dict "latex.ss" "entry.ss") ;; XHTML wrapper for PNG file, including navigation bar. (define (tex-xhtml link npng lines i) (when (or (< i 1) (> i (npng))) (error 'page-out-of-range)) `((pre ,@(pages link i (npng))) (img ((src ,(link 'png i)))) ,(lines->xhtml (escaped-lines #px"^%\\s*\\[" ;; references embedded in comments lines)) (pre ,@(pages link i (npng))))) (define (pages link i n) (define (browse offset) (add1 (modulo (+ offset (sub1 i)) n))) (append '((a ((name "nav")))) (list `(a ((href ,(link 'page (browse -1)))) "[<]")) (for/list ((p0 (in-range n))) (let ((p (add1 p0))) `(a ((href ,(link 'page p))) ,(format (if (= i p) "[~s]" " ~s ") p)))) (list `(a ((href ,(link 'page (browse +1)))) "[>]"))))