From 5e49131e44d863b874520a3c8206eafafe7d3629 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Sun, 22 Jan 2017 19:10:12 +0800 Subject: [PATCH] Use XeLatex instead of XeLatex --- scribble-lib/scribble/pdf-render.rkt | 8 +++++++- scribble-lib/scribble/private/run-pdflatex.rkt | 18 ++++++++++++------ scribble-lib/scribble/run.rkt | 3 +++ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/scribble-lib/scribble/pdf-render.rkt b/scribble-lib/scribble/pdf-render.rkt index fd66cdb1..f086e87f 100644 --- a/scribble-lib/scribble/pdf-render.rkt +++ b/scribble-lib/scribble/pdf-render.rkt @@ -4,7 +4,8 @@ (prefix-in latex: "latex-render.rkt")) (provide render-mixin - dvi-render-mixin) + dvi-render-mixin + xelatex-render-mixin) (define render-mixin (make-indirect-renderer-mixin @@ -15,3 +16,8 @@ (make-indirect-renderer-mixin (λ (%) (latex:render-mixin % #:image-mode 'ps)) #".tex" #".pdf" run-dvipdf-latex)) + +(define xelatex-render-mixin + (make-indirect-renderer-mixin + (λ (%) (latex:render-mixin % #:image-mode 'pdf)) #".tex" #".pdf" + run-xelatex)) diff --git a/scribble-lib/scribble/private/run-pdflatex.rkt b/scribble-lib/scribble/private/run-pdflatex.rkt index 0bae4eab..2b1dedab 100644 --- a/scribble-lib/scribble/private/run-pdflatex.rkt +++ b/scribble-lib/scribble/private/run-pdflatex.rkt @@ -2,16 +2,22 @@ (require scheme/system scheme/port) -(provide run-pdflatex run-dvipdf-latex) +(provide run-pdflatex run-dvipdf-latex run-xelatex) -(define (run-pdflatex file [notify void]) (run file notify #f)) +(define (run-pdflatex file [notify void]) (run file notify 'pdflatex)) (define (run-dvipdf-latex file [notify void]) (parameterize ([function-name 'run-dvipdf-latex]) - (run file notify #t))) + (run file notify 'dvipdf))) +(define (run-xelatex file [notify void]) + (parameterize ([function-name 'run-xelatex]) + (run file notify 'xelatex))) (define max-runs 5) -(define (run file notify via-dvipdf?) - (define latex-cmd-name (if via-dvipdf? "latex" "pdflatex")) +(define (run file notify type) + (define latex-cmd-name (cond [(equal? type 'pdflatex) "pdflatex"] + [(equal? type 'dvipdf) "latex"] + [(equal? type 'xelatex) "xelatex"] + [else (err "unknown run type ~a" type)])) (define cmd (list (get-latex-binary latex-cmd-name) "-interaction=batchmode" @@ -43,7 +49,7 @@ [(zero? n) (notify "WARNING: no \"Rerun\" found in first run of pdflatex for ~a" file)])) - (when via-dvipdf? + (when (equal? type 'dvipdf) (define dvi-file (path-replace-suffix file #".dvi")) (define ps-file (path-replace-suffix file #".ps")) (unless (file-exists? dvi-file) (err "didn't find .dvi file")) diff --git a/scribble-lib/scribble/run.rkt b/scribble-lib/scribble/run.rkt index f38e8ff5..db027d97 100644 --- a/scribble-lib/scribble/run.rkt +++ b/scribble-lib/scribble/run.rkt @@ -67,6 +67,9 @@ [("--pdf") "generate PDF-format output (via PDFLaTeX)" (current-html #f) (current-render-mixin pdf:render-mixin)] + [("--xelatex") "generate PDF-format output (via XeLaTeX)" + (current-html #f) + (current-render-mixin pdf:xelatex-render-mixin)] [("--dvipdf") "generate PDF-format output (via LaTeX, dvips, and pstopdf)" (current-html #f) (current-render-mixin pdf:dvi-render-mixin)]