org中奇怪的预览问题

在org文件中,文件内容如下: image

使用org-latex-preview预览latex代码 $a=1$,但报错:

Creating LaTeX preview… org-compile-file: File “c:/Users/ADMINI~1/AppData/Local/Temp/orgtexLY8mon.dvi” wasn’t produced. Please adjust ‘dvipng’ part of ‘org-preview-latex-process-alist’.

org-preview-latex-process-alist的值如下:

((dvipng :programs
	 ("latex" "dvipng")
	 :description "dvi > png" :message "you need to install the programs: latex and dvipng." :image-input-type "dvi" :image-output-type "png" :image-size-adjust
	 (1.0 . 1.0)
	 :latex-compiler
	 ("latex -interaction nonstopmode -output-directory %o %f")
	 :image-converter
	 ("dvipng -D %D -T tight -o %O %f"))
 (dvisvgm :programs
	  ("latex" "dvisvgm")
	  :description "dvi > svg" :message "you need to install the programs: latex and dvisvgm." :image-input-type "dvi" :image-output-type "svg" :image-size-adjust
	  (1.7 . 1.5)
	  :latex-compiler
	  ("latex -interaction nonstopmode -output-directory %o %f")
	  :image-converter
	  ("dvisvgm %f -n -b min -c %S -o %O"))
 (imagemagick :programs
	      ("latex" "convert")
	      :description "pdf > png" :message "you need to install the programs: latex and imagemagick." :image-input-type "pdf" :image-output-type "png" :image-size-adjust
	      (1.0 . 1.0)
	      :latex-compiler
	      ("pdflatex -interaction nonstopmode -output-directory %o %f")
	      :image-converter
	      ("convert -density %D -trim -antialias %f -quality 100 %O")))

C:\Users\Administrator\AppData\Local\Temp中能找到它自行创建的文件orgtexLY8mon.tex。没有orgtexLY8mon.dvi文件。但是我可以在终端用latex orgtexLY8mon.tex编译出orgtexLY8mon.dvi,再通过dvipng -o orgtexLY8mon.png orgtexLY8mon.dvi得到png文件。说明orgtexLY8mon.tex文件和latexdvipng都是正常的。而且在emacs中,(executable-find "latex")(executable-find "dvipng")都能正确返回值

"c:/texlive/2021/bin/win32/latex.exe" "c:/texlive/2021/bin/win32/dvipng.exe"

预览时自动创建的orgtexLY8mon.tex的内容如下:

\documentclass{article}
\usepackage[usenames]{color}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{grffile}
% Package longtable omitted
% Package wrapfig omitted
% Package rotating omitted
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{amssymb}
% Package capt-of omitted
% Package hyperref omitted
\pagestyle{empty}             % do not remove
% The settings below are copied from fullpage.sty
\setlength{\textwidth}{\paperwidth}
\addtolength{\textwidth}{-3cm}
\setlength{\oddsidemargin}{1.5cm}
\addtolength{\oddsidemargin}{-2.54cm}
\setlength{\evensidemargin}{\oddsidemargin}
\setlength{\textheight}{\paperheight}
\addtolength{\textheight}{-\headheight}
\addtolength{\textheight}{-\headsep}
\addtolength{\textheight}{-\footskip}
\addtolength{\textheight}{-3cm}
\setlength{\topmargin}{1.5cm}
\addtolength{\topmargin}{-2.54cm}

texput.log的内容:

This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/W32TeX) (preloaded format=latex 2021.12.30)  4 JAN 2022 13:08
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**c:/Users/ADMINI~1/AppData/Local/Temp/orgtexLY8mon.tex

! Emergency stop.
<to be read again> 
                   \protect 
<*> c:/Users/ADMINI~
                    1/AppData/Local/Temp/orgtexLY8mon.tex
*** (job aborted, file error in nonstop mode)

 
Here is how much of TeX's memory you used:
 5 strings out of 478995
 194 string characters out of 5862232
 283032 words of memory out of 5000000
 17591 multiletter control sequences out of 15000+600000
 403430 words of font info for 27 fonts, out of 8000000 for 9000
 1141 hyphenation exceptions out of 8191
 3i,0n,0p,1b,6s stack positions out of 5000i,500n,10000p,200000b,80000s
No pages of output.

有没有哪位大神知道怎么解决?

不为啥,你用户名 ADMINI~1 起得太奇怪了,TeX 认不出来。

建议删号重练,起个只有英文字母的用户名。

那不是我取的,我的TEMPTMP环境变量都是正常的

image

那就不要用 Administrator 帳号开 Emacs,新建个別的名字的,最好只用英文字母,保证在5个字符以內。

Windows对文件的一个特性导致 admini~1=administrator 即:当目录/文件 文件名长度大于8位时,可采用类似于admini~1的形式进入第一个目录,那么此处的字符1就表示以admini开头的第一个目录,如果有 admini~2 ,那么2就是第二个目录

TeX 没对 Windows 做过特別适配,遇上这种就没法了。

我能不能手动指定文件夹?

那就修改 %TEMP%%TMP%

1 个赞

非常感谢。真的是文件夹问题,改成

image

试了一下,可以了。

但是改这个路径对其它程序有没有影响?有没有只改动emacs的方式?

1 个赞

其实是没有的。

如果只改 emacs 的话可以设置个起动脚本。