有人成功在 Emacs+AUCTeX 和 evince 之间设置前向搜索吗?
为了在 Emacs+AUCTeX 和 evince 之间建立反向/正向搜索,需要:
然而,自 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 也必须进行相应的更改: 电子邮件讨论,提交包含补丁链接的电子邮件。
请注意,它仍然如果涉及符号链接则不起作用。