org latex babel 执行后已实际生成的 PDF,但inkscape 找不到。

如题,排查了最小配置

(require 'org)
(require 'ob-latex)
(use-package ox-latex
  :custom
  (org-latex-listings 'minted)
  (org-latex-pdf-process '("latexmk -xelatex -quiet -shell-escape -f -output-directory=%o %f"))
  (org-preview-latex-default-process 'dvisvgm)
  :config
  (add-to-list 'org-latex-packages-alist '("cache=false" "minted" t)))
(use-package ob-core
  :custom
  (org-babel-latex-preamble (lambda (_)
                              "\\documentclass{standalone}"))
  :config
  (org-babel-do-load-languages
   'org-babel-load-languages '((latex . t))))

报错

I/O Error: Couldn't open file '/var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf': No such file or directory.
** Message: 19:35:47.632: couldn't open the PDF file.

** (org.inkscape.Inkscape:94433): WARNING **: 19:35:47.632: Can't open file: /var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf (doesn't exist)
ink_file_open: '/var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf' cannot be opened!
InkscapeApplication::document_open: Failed to open: /var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf
ConcreteInkscapeApplication::on_open: failed to create document!
2024-03-07 19:35:47.637 inkscape[94433:1123625] WARNING: Secure coding is not enabled for restorable state! Enable secure coding by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState: and returning YES.

在对应的目录,手动执行 org-babel-latex-pdf-svg-process 里的命令是可以生成。

inkscape --pdf-poppler --export-area-drawing --export-text-to-path --export-plain-svg --export-filename=Pasted_image_20240226092108.svg  latex-zR3qSE.pdf 

不知道是不是因为这个目录是临时生成的导致找不到 /private/var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-kODgEM

Untitled

[org-preview-latex] 的 image-converter 读取路径错误 这个帖子中有类似的情况是因为 org 文件是在软链接当中,我这里 pdf 生成的路径 /var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf 的真实路径是 /private/var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf,不知道应该怎么解决。

大概率就是因为软链接导致 inkscape 找不到 pdf 了

但是无论是执行

inkscape --pdf-poppler --export-area-drawing --export-text-to-path --export-plain-svg --export-filename=Pasted_image_20240226092108.svg /private/var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf

还是

inkscape --pdf-poppler --export-area-drawing --export-text-to-path --export-plain-svg --export-filename=Pasted_image_20240226092108.svg /var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/latex-ZDQSyh.pdf

都不能生成 svg,只有在

/private/var/folders/_2/mxhz9mf51tl1070cd5ykx69c0000gn/T/babel-BRpx0W/ 路径内执行 inkscape --pdf-poppler --export-area-drawing --export-text-to-path --export-plain-svg --export-filename=Pasted_image_20240226092108.svg latex-ZDQSyh.pdf

才可以生成 svg。

我设置了 emacs 的临时文件夹 (setq temporary-file-directory "~/test"),这样也还是不能找到 pdf,就离谱。

破案了,是 tec/org-mode: My personal patches-in-progress branch of Org. See https://git.tecosaur.net/mirrors/org-mode/compare/main..tec/org-mode:dev. - Code by TEC 版本的问题,已经在 discord 当中说明了,org9.7 pre 是没有问题的。

org-latex-compile 中生成 PDF 改为了异步,导致 inkscape 执行的时候,PDF 还没有生成。

https://list.orgmode.org/[email protected]/T/#ma03ea00706247732a7c772dcdcdf27cfa8d76024