让 SyncTeX 与 Emacs、AucTeX 和 Skim (OS X El Capitan) 协同工作

让 SyncTeX 与 Emacs、AucTeX 和 Skim (OS X El Capitan) 协同工作

我正在尝试在运行 OS X El Capitan 10.11.5 的 Mac 上设置 LaTeX 以与 Emacs 配合使用。我可以顺利编译所有内容,但无法使用 Skim 进行正向/反向搜索。

通过阅读其他答案,我尝试调整我的~/.emacs,并创建一个~/.latexmkrc文件。 这是我目前正在使用的:

  • ~/.emacs
;; Tells emacs where to find LaTeX.
(let ((my-path (expand-file-name "/usr/local/bin:/usr/local/texlive/2016/bin/x86_64-darwin")))
(setenv "PATH" (concat my-path ":" (getenv "PATH")))
(add-to-list 'exec-path my-path)) 

;; AucTeX settings
(setq TeX-PDF-mode t)

(add-hook 'LaTeX-mode-hook
(lambda ()
  (push
   '("latexmk" "latexmk -pdf %s" TeX-run-TeX nil t
     :help "Run latexmk on file")
    TeX-command-list)))
(add-hook 'TeX-mode-hook '(lambda () (setq TeX-command-default "latexmk")))

(setq TeX-view-program-selection '((output-pdf "PDF Viewer")))
(setq TeX-view-program-list
      '(("PDF Viewer" "/Applications/Skim.app/Contents/SharedSupport/displayline -b -g %n %o %b")))

(custom-set-variables
     '(TeX-source-correlate-method 'synctex)
     '(TeX-source-correlate-mode t)
     '(TeX-source-correlate-start-server t))
  • ~/.latexmkrc

    $pdflatex = 'pdflatex -interaction=nonstopmode -synctex=1 %O %S';
    $pdf_previewer = 'open -a skim';
    $clean_ext = 'bbl rel %R-blx.bib %R.synctex.gz';
    

我还在 Skim 中将同步设置设为使用 Emacs 预设。有没有人有什么想法或资源可以供我参考,以尝试使正向和反向搜索正常工作?谢谢!

更新:我已成功运行反向搜索。我~/.latexmkrc以富文本格式保存文件,而不是纯文本。转换为纯文本,转到Skim -> Preferences -> Sync,选择自定义并输入,/usr/local/bin/emacsclient似乎已纠正我的反向搜索问题。

不幸的是,正向搜索仍然不起作用。我可以使用 很好地在 Emacs 中编译我的 TeX 文档C-c C-c,但C-c C-v无法从 TeX 文件转到 Skim 中 PDF 输出中的相应行。再次感谢您对此提出的任何建议!

更新2:向前搜索现在似乎运行良好。我最初试验的文件的文件名中有空格,这可能导致了一些问题。向前搜索在我的一个命名较好的文件上完美运行。

相关内容