我最初发布这直接在 Auctex 邮件列表上提问,但没有收到回复。希望在 TeX Exchange 上能有更好的运气。
我最近被提醒了 这 关于 preview-latex 可用性的帖子。按下 Cc Cp Cb 后,我的方程式旁边出现了小的空框。也就是说,png 图像无法正确显示。我查看了临时目录,发现确实创建了 png 文件。它们只是在 emacs 中无法正确显示。有人知道如何修复这个问题吗?
完成上述操作后,我还想将 png 文件中的“字体”颜色设置为绿色,因为我的 emacs 背景是黑色(目前设置为白色以进行测试)。我该如何修改它?
仅供参考,我在 Ubuntu 11.04 中使用 AucTeX 11.86 和 Emacs 23。此外,使用简单的 LaTeX 文件(如下)重现了此错误,并且 emacs 在没有 init 文件的情况下启动(手动加载 AucTeX 和 preview-latex)。
foo.tex:
\documentclass{article}
\begin{document}
Let $x=1$. %%
Then
\[
\lim_{x\rightarrow \infty} x^{x}
\]
is undefined. %%
\end{document}
更新 2011 年 9 月 16 日:右键单击空白框,我得到了“查看错误”选项。其中一个错误是:
gs -dOutputFile\=\(_region_.prv/tmp27138kzR/pr1-16.png\) -q -dSAFER -dNOPAUSE -DNOPLATFONTS -dPrinted -dTextAlphaBits\=4 -dGraphicsAlphaBits\=4 -sDEVICE\=png16m -r105.443x105.424
GS>{DELAYSAFER{.setsafe}if}stopped pop/.preview-BP currentpagedevice/BeginPage get dup null eq{pop{pop}bind}if def<</BeginPage{currentpagedevice/PageSize get dup 0 get 1 ne exch 1 get 1 ne or{.preview-BP 0 0 0 setrgbcolor clippath fill 1 1 1 setrgbcolor}{pop}ifelse}bind/PageSize[1 1]>>setpagedevice/preview-do{[count 3 roll save]3 1 roll dup length 0 eq{pop}{setpagedevice}{ifelse .runandhide}stopped{handleerror quit}if aload pop restore}bind def [(_region_.prv/tmp27138kzR/preview.ps)(r)file]aload exch dup 0 setfileposition 224768()/SubFileDecode filter cvx .runandhide aload pop dup dup 224768 setfileposition 288()/SubFileDecode filter cvx<<>>preview-do
Error: /typecheck in --setfileposition--
Operand stack:
--nostringval-- (_region_.prv/tmp27138kzR/preview.ps) (r) (r) (r) 226987 226987 226987 226885 226885 226885 226732 226732 226732 226613 226613 226613 226461 226461 226461 226312 226312 226312 226196 226196 226196 226078 226078 226078 225954 225954 225954 225848 225848 225848 225750 225750 225750 225626 225626 225626 225528 225528 225528 225056 225056 225056 224768
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- %loop_continue --nostringval-- --nostringval-- false 1 %stopped_push .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:1163/1684(ro)(G)-- --dict:0/20(G)-- --dict:79/200(L)--
Current allocation mode is local
Current file position is 31
GS<48>
关于如何修复此问题您有什么想法吗???谢谢。
答案1
当我偶然发现这篇文章时,我也遇到了同样的问题。我能够按照以下方式修复它:
注意,我使用的是 Emacs23.3.1、AUCTeX 11.86、Ubuntu 11.10、Gnome3.2.1
打开一个 .tex 文件(或创建一个)。我假设您使用的是 Emacs23,使用 Xwindow(我的是 Gnome)。转到菜单栏并执行以下操作:
预览 -> 自定义 -> 浏览选项
在此缓冲区中,执行以下操作:
预览 GS -> 预览 GS 选项 -> [单击小箭头显示选项] -> del -dSAFER
C-x C-s
保存并重新加载 Emacs。现在预览应该可以正常工作了!
答案2
首先,检查image-types
您的 emacs 是否已编译为支持 png 文件。(执行C-h v image-types
以查看变量及其值。)如果'png
在列表中,则执行M-: (image-type-available-p 'png)
以测试 Emacs 是否真的可以解码 png。如果在消息行中出现nil
,则它可能无法加载 png 文件所需的动态库。
答案3
从 cvs repo 升级你的 AUCTeX