pdflatex、latexmk、synctex:向 pdflatex 添加选项会导致 synctex 失败

pdflatex、latexmk、synctex:向 pdflatex 添加选项会导致 synctex 失败

用户“Mike”热心帮助了我Latex、Emacs:自动打开TeX 帮助发生错误时缓冲并在纠正错误后关闭它?创建以下函数,使错误检测能够与 很好地协同工作latexmk

(defun run-latexmk ()
  (interactive)
  (let ((TeX-save-query nil)
        (TeX-process-asynchronous nil)
        (master-file (TeX-master-file)))
    (TeX-save-document "")
    (TeX-run-TeX "latexmk"
         (TeX-command-expand "latexmk -pdf %s" 'TeX-master-file)
                 master-file)
    (if (plist-get TeX-error-report-switches (intern master-file))
        (TeX-next-error t)
      (progn
    (demolish-tex-help)
    (minibuffer-message "latexmk: done.")))))

我想在调用中添加另一个选项,latexmk如下所示:

(TeX-command-expand "latexmk -pdflatex='pdflatex -file-line-error' -pdf %s" 'TeX-master-file)

使其pdflatex不仅报告错误行,还报告文件名(这对于 AUCTeX 在发生错误时打开正确的缓冲区至关重要)。问题是,在我添加此选项后,编译myfile.tex没有附带myfile.synctex.gz,这导致向前和向后搜索失败(请参阅如何设置 Okular 以使用 TeX Live 2011 进行向前/向后搜索?(不再简单))。

哪里有问题?

答案1

“latexmk -pdflatex='pdflatex -file-line-error' -pdf %s”

说明书应包含全部我们想要pdflatex在执行时传递的选项,所以

“latexmk -pdflatex='pdflatex -file-line-error -synctex=1' -pdf %s”

应该可以工作。单引号内的部分是latexmk编译文档时将发出的命令。

相关内容