diff --git a/collects/slatex/pdf-slatex-launcher.ss b/collects/slatex/pdf-slatex-launcher.ss index 78d90c7d47..e94808bf93 100644 --- a/collects/slatex/pdf-slatex-launcher.ss +++ b/collects/slatex/pdf-slatex-launcher.ss @@ -13,14 +13,10 @@ (when (equal? (vector) argv) (fprintf (current-error-port) "pdf-slatex: expected a file on the command line\n") (exit 1)) - (let-values ([(nonstop? file) (if (string=? "\\nonstopmode" (vector-ref argv 0)) - (values #t (vector-ref argv 1)) - (values #f (vector-ref argv 0)))]) (let ([result - (parameterize ([error-escape-handler exit] - [nonstop-mode? nonstop?]) - (pdf-slatex file))]) + (parameterize ([error-escape-handler exit]) + (pdf-slatex (vector-ref argv 0)))]) (if result (exit) - (exit 1))))])) + (exit 1)))])) diff --git a/collects/slatex/slatex-launcher.ss b/collects/slatex/slatex-launcher.ss index e97598b5b0..8d12e1990d 100644 --- a/collects/slatex/slatex-launcher.ss +++ b/collects/slatex/slatex-launcher.ss @@ -1,9 +1,12 @@ -(module slatex-launcher mzscheme - (require "slatex-wrapper.ss") +(module slatex-launcher scheme/base + (require "slatex-wrapper.ss" + scheme/cmdline) (define argv (current-command-line-arguments)) + (define no-latex (make-parameter #f)) + (case (system-type) [(macos) @@ -12,16 +15,19 @@ (for-each slatex (vector->list argv))] [(windows unix macosx) - (when (equal? (vector) argv) - (fprintf (current-error-port) "slatex: expected a file on the command line\n") - (exit 1)) - (let-values ([(nonstop? file) (if (string=? "\\nonstopmode" (vector-ref argv 0)) - (values #t (vector-ref argv 1)) - (values #f (vector-ref argv 0)))]) - (let ([result - (parameterize ([error-escape-handler exit] - [nonstop-mode? nonstop?]) - (slatex file))]) + (let* ([filename + (command-line + #:program "slatex" + #:once-each + [("-n" "--no-latex") "Just preprocess, don't run LaTeX" + (no-latex #t)] + #:args (filename) + filename)] + [result + (parameterize ([error-escape-handler exit]) + (if (no-latex) + (slatex/no-latex filename) + (slatex filename)))]) (if result (exit) - (exit 1))))])) + (exit 1)))])) \ No newline at end of file diff --git a/collects/slatex/slatex-wrapper.ss b/collects/slatex/slatex-wrapper.ss index 5784c8c2b9..4cd37d50f9 100644 --- a/collects/slatex/slatex-wrapper.ss +++ b/collects/slatex/slatex-wrapper.ss @@ -6,7 +6,7 @@ "slatex.ss") (provide slatex latex pdf-slatex pdf-latex slatex/no-latex - filename->latex-filename nonstop-mode?) + filename->latex-filename) (define (add-suffix p s) (path->string @@ -14,31 +14,20 @@ (bytes-append (path->bytes (if (string? p) (string->path p) p)) s)))) - (define (strip-input input-file) - (cond - [(regexp-match #rx"^\\\\input{(.*)}$" input-file) => cadr] - [else input-file])) - (define (filename->latex-filename input-file) - (let* ([filename (strip-input input-file)] - [norm (normalize-path filename)]) + (let* ([norm (normalize-path input-file)]) (cond - [(file-exists? norm) filename] + [(file-exists? norm) input-file] [(file-exists? (add-suffix norm #".tex")) - (add-suffix filename #".tex")] + (add-suffix input-file #".tex")] [else - (error 'filename->latex-filename "~e does not exist" filename)]))) - - (define nonstop-mode? - (make-parameter #f)) + (error 'filename->latex-filename "~e does not exist" input-file)]))) (define (exec-latex exe file) (let ([latex-path (find-executable-path exe #f)]) (unless latex-path (error 'latex "could not find latex binary: ~e" exe)) - (if (nonstop-mode?) - (system* latex-path "\\nonstopmode" (string-append "\\input{" file "}")) - (system* latex-path file)))) + (system* latex-path file))) ;; latex, pdf-latex : string -> boolean ;; boolean result indicates success