gpt4 book ai didi

macos - 仅当从 emacs 调用时才会出现 Imagemagick(转换)错误

转载 作者:行者123 更新时间:2023-12-02 04:44:04 25 4
gpt4 key购买 nike

我正在尝试使用 ImageMagick 的 convert 工具从 Emacs 将 pdf 转换为 png。我正在使用以下 elisp 命令:

(call-process "convert" nil "test" t "/path/to/test.pdf" "/path/to/test.png")

给出结果

convert: no images defined `/path/to/test.png' @ error/convert.c/ConvertImageCommand/3241.

但是,如果我运行

$ convert test.pdf test.png

从命令终端一切正常,我得到了正确的 png 文件。

这是我尝试过的:

  • 我确认 convert 的路径在 Emacs exec-path 变量中
  • 我尝试使用干净的 .emacs 启动 Emacs
  • 我还检查了 Ghostscript 的 gs 是否可用(从终端和 call-process 都可用,因为这似乎在我在网上看到的其他地方引起了类似的问题<

我在 Mac OSX (Yosemite) 上使用 Emacs 24.5,通过自制软件安装 ImageMagick 6.9.2-10,通过自制软件安装 Ghostscript 9.07。

任何帮助将不胜感激。顺便说一句,从 Emacs 使用 convert 的动机是这样我可以获得从 org-mode/org-babel 导出的 Latex (tikz) 图 block (它们使用几乎相同的 call-process 命令),所以我真的需要让它“按原样”工作,而不是变通。谢谢!

最佳答案

我通常会使用 emacs 命令 shell-commando (M-!) 或 M-x shell-command 然后转换/path/to/pdf.pdf/path/to/pdf.png。通常它应该更好地与现有目录一起工作或者,如果你想使用 emacs lisp,我用 emacs 打开目录,在缓冲区内,然后在该缓冲区上执行 ielm。

要执行此命令,我还建议您使用函数 shell-command。这是 ielm 和消息中的输出:

ELISP> (shell-command "ls")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "ls")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "convert pdf.pdf pdf.png")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "ls")
0 (#o0, #x0, ?\C-@)
ELISP> (shell-command "pwd")
0 (#o0, #x0, ?\C-@)

enter image description here

如果tuou想使用call-process正确的语法是:

ELISP> (call-process "convert" nil t nil "pdf.pdf" "pdf.png")

关于macos - 仅当从 emacs 调用时才会出现 Imagemagick(转换)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com