|
@@ -64,16 +64,23 @@
|
|
|
(out-file ((lambda (el)
|
|
|
(or el
|
|
|
(error "abc code block requires :file header argument")))
|
|
|
- ;;; For SVG or EPS output, abcm2ps will add a number for a particular page
|
|
|
- ;;; automatically. This needs to be specified in the :file argument and stripped
|
|
|
- ;;; stripped out here. There is likely a better way to do this.
|
|
|
- (replace-regexp-in-string "001" "" (cdr (assoc :file params)))))
|
|
|
+ (replace-regexp-in-string "\.pdf$" ".ps" (cdr (assoc :file params)))))
|
|
|
(in-file (org-babel-temp-file "abc-"))
|
|
|
- (cmd (concat "abcm2ps" " " cmdline
|
|
|
+ (render (concat "abcm2ps" " " cmdline
|
|
|
" -O " (org-babel-process-file-name out-file)
|
|
|
" " (org-babel-process-file-name in-file))))
|
|
|
(with-temp-file in-file (insert (org-babel-expand-body:abc body params)))
|
|
|
- (org-babel-eval cmd "")
|
|
|
+ (org-babel-eval render "")
|
|
|
+ ;;; handle where abcm2ps changes the file name (to support multiple files
|
|
|
+ (when (or (string= (file-name-extension out-file) "eps")
|
|
|
+ (string= (file-name-extension out-file) "svg"))
|
|
|
+ (rename-file (concat
|
|
|
+ (file-name-sans-extension out-file) "001."
|
|
|
+ (file-name-extension out-file))
|
|
|
+ out-file t))
|
|
|
+ ;;; if we were asked for a pdf...
|
|
|
+ (when (string= (file-name-extension (cdr (assoc :file params))) "pdf")
|
|
|
+ (org-babel-eval (concat "ps2pdf" " " out-file " " (cdr (assoc :file params))) ""))
|
|
|
;;; indicate that the file has been written
|
|
|
nil))
|
|
|
|