案例分析
我正在配置 org-preview-latex
命令,但是遇到了一些问题。例如当
latex 输出的文件路径为 /private/var/folders/5t/bsbmcdh12nj60ysspdrjk_kc0000gn/T/orgtexYfEFK0.dvi
;
但是因为不知名原因, image-converter 读取的路径会添加若干个 ../
变成 ../../../../../private/var/folders/5t/bsbmcdh12nj60ysspdrjk_kc0000gn/T/orgtexYfEFK0.dvi
;
导致无法正确地访问到dvi文件,从而无法生成图片。
我把image-converter访问dvi的路径直接硬编码成特定路径以后, org-preview-latex
命令可以正常访问到我指定的dvi文件并且插入公式对应的图片。
硬编码dvisvgm读取文件的路径后,可以正确生成公式图片的流程配置:
;; Needs Emacs to support svg display
(setq org-preview-latex-default-process 'luadvisvgm) ;; luapdf2svg, lua2svg, imagemagick
;; Export with LuaTeX -> dvisvgm
(add-to-list 'org-preview-latex-process-alist
'(luadvisvgm :programs
("lualatex" "dvisvgm")
:description "dvi > svg" :message "you need to install the programs: lualatex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :image-size-adjust
(1.7 . 1.5)
:latex-compiler
("lualatex --output-format dvi --shell-escape --interaction=nonstopmode --output-directory=%o %f")
:image-converter
;;("dvisvgm %f -n -b min -c %S -o %O"))
("dvisvgm /private/var/folders/5t/bsbmcdh12nj60ysspdrjk_kc0000gn/T/orgtexYfEFK0.dvi -n -b min -c %S -o %O"))
)
并且我尝试替换了其他的latex编译器包括 latex, pdflatex
,其他的图像转换器包括 dvipng
都遇到了这个问题,所以我认为应该和这些工具无关。
问题分析
图像转换器会因为不知名原因在latex编译输出文件的路径前面添加 ../../../../
导致读取到错误的dvi文件路径,导致无法生成图片。
可能是什么原因导致这个错误呢?小弟刚用emacs不久,还比较陌生,请求指点。