求助:运行 org-toggle-latex-fragment(org-latex-preview) 时出现错误

如题,org 测试文件内容:

#+DATE: <2025-06-28 Sat 14:09>
#+TITLE: latex_test
#+ROAM_KEY:
#+PDF_KEY:
#+PAGE_KEY:
\begin{equation}
\label{eq:myeq}
x=2y
\end{equation}

运行命令 org-toggle-latex-fragment(org-latex-preview),出现错误:

org-compile-file: File "/var/folders/2h/_7667pjd23s4wd9mpdwy401w0000gn/T/orgtexaPocqU.dvi" wasn’t produced  Please adjust ‘dvipng’ part of ‘org-preview-latex-process-alist’.

错误栈:

Debugger entered--Lisp error: (error "File \"/var/folders/2h/_7667pjd23s4wd9mpdwy401w0000...")
  signal(error ("File \"/var/folders/2h/_7667pjd23s4wd9mpdwy401w0000..."))
  error("File \"/var/folders/2h/_7667pjd23s4wd9mpdwy401w0000...")
  org-compile-file("/var/folders/2h/_7667pjd23s4wd9mpdwy401w0000gn/T/o..." ("latex -interaction nonstopmode -output-directory %...") "dvi" "Please adjust `dvipng' part of `org-preview-latex-..." #<buffer *Org Preview LaTeX Output*>)
  org-create-formula-image("\\begin{equation}\n\\label{eq:myeq}\nx=2y\n\\end{equatio..." "/Users/c/Downloads/ltximg/org-ltximg_db92ba0e87629..." (:foreground "#655370" :background "#fbf8ef" :scale 1.0 :html-foreground "Black" :html-background "Transparent" :html-scale 1.0 :matchers ("begin" "$1" "$" "$$" "\\(" "\\[")) forbuffer dvipng)
  org-format-latex("ltximg/org-ltximg" 197 250 "/Users/c/Downloads/" overlays nil forbuffer dvipng)
  org--latex-preview-region(197 250)
  org-toggle-latex-fragment(nil)
  funcall-interactively(org-toggle-latex-fragment nil)
  call-interactively(org-toggle-latex-fragment record nil)
  command-execute(org-toggle-latex-fragment record)
  counsel-M-x-action("org-toggle-latex-fragment")

我的环境:

  • macOS
  • Emacs: 29.3
  • Spacemacs: 0.999.0

确认 latex dvipng 已经安装:/Library/TeX/texbin/latex /Library/TeX/texbin/dvipng

以前确定该命令可以正常预览 latex 公式的,现在不知为何导致错误。

网络上搜索了一番,gpt 也问了,都没有找到解决方案,不知道坛友们有碰到过相似问题吗?能否给出建议排查方案?

刚才我用emacs看org文档,C-c C-x C-l使用magick预览latex公式的时候也报了这个错误。想起你这个帖子过来提一下。

我可以确认的是emacs -q不会出现这个问题,所以问题大概率是打开pdf文件的时候触发了存在冲突的mode handler,第一个怀疑的包就是pdf-tools。把这个包禁用之后发现就正常了。

我发现用tramp也会出这个情况。在远程org文档中,还是生成在本地的/tmp目录下,但是相对路径会把远程路径也加进去,而远程的/tmp目录下并没有生成对应的tex文件,导致出错。

你可以试一试把org-preview-latex-image-directory换成绝对路径试试行不行。如果可以,你的这个目录大概率有访问权限问题