eLisp call-process dvisvgm

时间:2015-05-31 10:28:31

标签: unix emacs latex pipe elisp

我正在尝试使用dvisvgm将乳胶片段处理为SVG文件。从命令行可以正常工作,但从elisp中运行时失败:

(call-process "dvisvgm" nil nil nil
            "--libgs=/usr/local/bin/gs"
            svgfile
            dvifile)

谁能告诉我我错过了什么?

谢谢! - 亚当

1 个答案:

答案 0 :(得分:1)

尝试简单地使用M-! dvisvgm --libgs=/usr/local/bin/gs <svgfile> <dvifile>,如果它有效并且您仍想在elisp中编写它,则可以使用更简单的API:shell-command,例如:

(shell-command
 (format "dvisvgm --libgs=/usr/local/bin/gs %s %s"
         (shell-quote-argument svgfile)
         (shell-quote-argument dvifile)))

如果dvisvgm需要时间并且您不希望它阻止您使用Emacs,请将&添加到该shell命令或使用start-process等来创建异步进程。例如,使用start-process

(start-process "foo-dvisvgm" nil "dvisvgm"
               "--libgs=/usr/local/bin/gs"
               svgfile
               dvifile)