我正在尝试使用dvisvgm将乳胶片段处理为SVG文件。从命令行可以正常工作,但从elisp中运行时失败:
(call-process "dvisvgm" nil nil nil
"--libgs=/usr/local/bin/gs"
svgfile
dvifile)
谁能告诉我我错过了什么?
谢谢! - 亚当
答案 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)