emacs org-latex-preview Windows 调试
问题背景
latex的数学公式编辑功能尤为理工科研佬热爱,emacs是一个性化的文字编辑器。org模式是其支持的众多强大的主模式之一。
org模式支持在文档中编辑latex代码,并且在文本内容中,先将tex转换dvi,在通过其他执行文件转化png,再自动调整png的大小,将png插入原latex代码中。一切通过快捷键
C-c C-x C-l
完成。其中大写C表示ctrl键
效果展示:
全部过程依赖latex、dvipng两个执行文件。
问题描述
在ubuntu系统中,下载好texlive,dvipng后便可以启用该项功能。
在win中执行时出现:
org-compile-file: File "/path/filename.dvi" wasn’t produced.
Please adjust ‘dvipng’ part of ‘org-preview-latex-process-alist’
解决尝试
1. 查看系统路径是否含有latex 、 dvipng,
latex
>> This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022)
dvipng
>> This is dvipng 1.17 Copyright 2002-2015, 2019 Jan-Ake Larsson
**
表示已经安装,如果无,查看系统环境变量。将texlive的执行文件目录加入环境变量中。
通过
2. 已经在环境变量中,仍然无效。则有可能是texlive依赖包缺少,无法编译。手动执行操作过程
cd /path
dir *.tex
>> filename.tex
latex filename.tex
如果末尾分别显示
则编译成功。如若不成功,根据提示信息,补充安装相应缺失的安装包。
3. 如若手动能够成功的生成png。此时应该解决了大部分情况,仍然有小部分情况不成功,则可能是emacs内部的执行路径无法读取texlive的执行路径导致的。
两种解决思路,笔者只成功了一种,但是无法称述另一种的失败原因,故也列出。
- 将执行文件目录添加到emacs环境变量。在emacs init.el文件中添加:
(add-to-list 'exec-path "path/to/execute/folder")
重启后通过eshell,可以识别对应的执行文件。笔者的eshell能够识别对应文件,但是仍然无法通过C-c C-x C-l预览latex,原因不明
- 直接更改org-priew-latex-process-alist,将执行文件的位置填入,在重新执行byte文件,生成.elc
C-h v org-preview-latex-process-alist
弹出buffer
进入 org.el
修改dvipng中 latex-compiler,image-converter两个属性。
:latex-compiler ("path/to/latex.exe -interaction nonstopmode -output-directory %o %f")
:image-converter ("path/to/dvipng.exe -D %D -T tight -bg Transparent -o %O %f")
再执行
M-x byte-compile-file <RET>
/path/to/org.el
重启,即可启用org-latex-preview功能。