(use multidoc sxml-transforms srfi-1 files posix) (define nl (list->string (list #\newline))) (define wiki-rules `(((wiki-page . ,(lambda (tag elems) (list `(tex "\\documentclass[12pt]{article}" ,nl "\\usepackage[left=3cm]{geometry}" ,nl ,(map (lambda (p) (LaTeX-use-package (car p) (cadr p))) (LaTeX-packages)) ,nl "%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands." ,nl " \\newenvironment{lyxcode}" ,nl " {\\begin{list}{}{" ,nl " \\raggedright" ,nl " \\setlength{\\itemsep}{-5pt}" ,nl " \\setlength{\\parsep}{-3pt}" ,nl " \\normalfont\\ttfamily}%" ,nl " \\item[]}" ,nl " {\\end{list}}" ,nl "\\makeatother" ,nl "\\sloppy" ,nl "\\newcommand{\\minitab}[2][l]{\\begin{tabular}{#1}#2\\end{tabular}}" ,nl) nl elems))) ,@alist-conv-rules*))) (for-each (lambda (f) (print "Processing " f "...") (let ((tree (with-input-from-file f read))) (with-output-to-file (pathname-replace-extension f "latex") (lambda () (SRV:send-reply (fold (lambda (ruleset tree) (pre-post-order* tree ruleset)) tree (append wiki-rules (LaTeX-transformation-rules tree)))))))) (glob "*.sxml"))