|
|
|
#! /usr/bin/env sh
|
|
|
|
exec guile -e '(@ (bible2latex) main)' -s "$0" "$@"
|
|
|
|
!#
|
|
|
|
|
|
|
|
(define-module (bible2latex)
|
|
|
|
#:use-module (bible-tools)
|
|
|
|
#:use-module (srfi srfi-1)
|
|
|
|
#:export (main))
|
|
|
|
|
|
|
|
(define (verse-to-latex v)
|
|
|
|
(string-append (if (string=? (verse v) "1")
|
|
|
|
(string-append (if (string=? (chapter v) "1")
|
|
|
|
(string-append "\\section{" (book v) "}\n") "")
|
|
|
|
"\\textbf{\\large{" (chapter v) "}}\n")
|
|
|
|
"")
|
|
|
|
"\\textsuperscript{" (verse v) "}" (text v)))
|
|
|
|
|
|
|
|
(define (print-text text)
|
|
|
|
(let ((result (string-append "\\documentclass{article}\n\n"
|
|
|
|
"\\usepackage{fullpage}\n\n"
|
|
|
|
"\\begin{document}\n\n"
|
|
|
|
(string-join
|
|
|
|
(map verse-to-latex text)
|
|
|
|
"\n\n")
|
|
|
|
"\n\\end{document}")))
|
|
|
|
(display result)
|
|
|
|
(newline)))
|
|
|
|
|
|
|
|
|
|
|
|
(define (help)
|
|
|
|
(display "Usage: bible2latex [-b book] [-c chapter] [-h] [-v]\n")
|
|
|
|
(display "\t-b book\t\texport the book to latex\n")
|
|
|
|
(display "\t-c chapter\texport this chapter to latex\n")
|
|
|
|
(display "\t-h\t\tdisplay this help message\n")
|
|
|
|
(display "\t-v\t\tdisplay the current version\n"))
|
|
|
|
|
|
|
|
(define (version)
|
|
|
|
(display "bible2latex v1.0.0\n"))
|
|
|
|
|
|
|
|
(define (print-book book)
|
|
|
|
(lambda (bible)
|
|
|
|
(print-text (get-book book bible))))
|
|
|
|
|
|
|
|
(define (print-chapter book chapter)
|
|
|
|
(lambda (bible)
|
|
|
|
(print-text (get-chapter (string->number chapter)
|
|
|
|
(get-book book bible)))))
|
|
|
|
|
|
|
|
|
|
|
|
(define (main args)
|
|
|
|
(define (get-flag flag)
|
|
|
|
(cadr (member flag args)))
|
|
|
|
(define (flag? flag)
|
|
|
|
(member flag args))
|
|
|
|
(with-bible "jantzen"
|
|
|
|
(cond ((flag? "-h") (help))
|
|
|
|
((flag? "-v") (version))
|
|
|
|
((flag? "-b") (if (flag? "-c")
|
|
|
|
(print-chapter (get-flag "-b")
|
|
|
|
(get-flag "-c"))
|
|
|
|
(print-book (get-flag "-b"))))
|
|
|
|
(else print-text))))
|