emacs auctex 中的 preview-latex:空框?

emacs auctex 中的 preview-latex:空框?

我最初发布直接在 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

http://savannah.gnu.org/cvs/?group=auctex

相关内容