在 Emacs+AUCTeX 和 Evince 之间设置正向搜索

在 Emacs+AUCTeX 和 Evince 之间设置正向搜索

有人成功在 Emacs+AUCTeX 和 evince 之间设置前向搜索吗?

为了在 Emacs+AUCTeX 和 evince 之间建立反向/正向搜索,需要:

  • 安装新版 TeX Live,如这里
  • 将特殊的 lisp 脚本添加到 .emacs 文件,(该脚本依赖于 gnome 版本,可以在这里)。

然而,自 TeX Live 2011 发布以来,出现了一种新的 synctex 格式的问题,正如理查德汉森

我注意到 Emacs+AUCTeX 调用 pdflatex 编译如下(取自 latex 输出文件):

pdflatex --shell-escape --synctex=1 -interaction=nonstopmode "\input" file.tex

如果我手动进行相同的编译,使用绝对路径,即

pdflatex --shell-escape --synctex=1 -interaction=nonstopmode "\input" /absolute/path/to/file.tex

前向搜索功能正常!

所以问题是:

在运行 pdflatex 编译时,有什么方法可以强制 Emacs/AUCTeX 使用绝对路径名(如第二种模式)?

答案1

您可以通过更改 LaTeX 命令来告诉 auctex 使用绝对路径。首先,您需要更新 auctex 版本,正如 Richard Hansen 指出的那样。我安装了 CVS 版本,但我认为更新应该足够了tex.el(c)

然后,进入“自定义 AUCTex”菜单:

LaTeX → 自定义 AUCTeX → 扩展此菜单

LaTeX → 自定义 AUCTeX → TeX 命令 → TeX 展开列表

并添加新项目:

键:%(dir)
扩展器:(lambda nil default-directory)

并保存以供将来的会议使用(如果你愿意)

现在,转到“TeX 命令列表”(LaTeX → 自定义 AUCTeX → TeX 命令 → TeX 命令列表)并编辑“LaTeX”项:

命令:%`%l%(mode)%' %(dir)%t

保存,您就成功了!

对我来说,这种方法很有效,在 Ubuntu 11.10、CVS 的 auctex(2012-01-11)、evince 3.2.1、TeX Live 2011 和 emacs 23.3 中。

答案2

显然,TeX Live 2011 改变了 synctex 文件的格式,因此 AUCTeX 也必须进行相应的更改: 电子邮件讨论提交包含补丁链接的电子邮件

请注意,它仍然如果涉及符号链接则不起作用

相关内容