我有 GNU Emacs 24.4.1 (i686-pc-mingw32) 和 AUCTeX 11.88.9。在最近的一篇文档中,我注意到从已通过main.tex
命令包含的文件进行正向搜索(源到 pdf) \input
,并没有将我准确地带到输出 pdf 文件中的相应行。事实上,如果我输入C-c C-v 依赖文件,emacs 会说“没有受債人.pdf“。
我还注意到预览 Latex如果我从依赖文件内部调用 AUCTeX 功能,则该功能不起作用。只有当我输入Cc Cp Cs从中 main.tex
,数学表达式在依赖文件中正确可视化。
似乎正向搜索不知为何断开了。另一方面,反向搜索(pdf 到源文件)工作正常 - 如果我双击 pdf 中的一行,我就会毫无困难地转到相关文件。
.emacs
我从以下文件中复制/粘贴了以下几行StackOverflow 上的这个著名讨论:
(setq TeX-PDF-mode t)
(setq TeX-source-correlate-mode t)
(setq TeX-source-correlate-method 'synctex)
(setq TeX-view-program-list
'(("Sumatra PDF" ("\"C:/Program Files/SumatraPDF/SumatraPDF.exe\" -reuse-instance" (mode-io-correlate " -forward-search %b %n ") " %o"))))
(eval-after-load 'tex
'(progn
(assq-delete-all 'output-pdf TeX-view-program-selection)
(add-to-list 'TeX-view-program-selection '(output-pdf "Sumatra PDF"))))
我不知道是否应该在 TeX.SX 上发布这个问题,但我不知道在哪里可以找到更优秀的、精通 elisp 和 LaTeX 的人群。
附言:鉴于另一个问题,看来我不是唯一一个有这个问题的人,只是我没有使用阿拉拉。
快照
答案1
问题在于你没有正确设置主文件。在包含的文件,TeX-master
变量应为具有主文件的相对路径的字符串无延伸(是的,这是一个糟糕的限制)。但通常你不必TeX-master
手动设置:按照第一行的建议AUCTeX 手册将以下几行添加到您的初始化文件中
(setq TeX-parse-self t) ; Enable parse on load.
(setq TeX-auto-save t) ; Enable parse on save.
(setq-default TeX-master nil) ; Query for master file.
实际上,要解决这个问题,您只需要最后一行,但如果您想利用 AUCTeX 的所有功能,其他两行也是必需的。通过设置TeX-master
为默认值nil
,每次打开新的 *TeX 文件时,系统都会提示您选择主文件,AUCTeX 将为变量设置正确的值(t
如果主文件是您正在查看的文件,则引用的主文件的相对路径除外)。
此外,您可以使用 AUCTeX 内置补全功能设置主文件C-c _(绑定到M-x TeX-master-file-ask
RET)。