2

任何想法如何将其转换为“跳转到 PDF”的全局设置键?

(defun aquamacs-latex-viewer-support ()
"Support for Skim as LaTeX viewer if present."
 (add-to-list 'TeX-command-list
     '("Jump to PDF" 
       "%V" TeX-run-discard-or-function nil t :help "Run Viewer") 'append)

右键单击上下文菜单有几个有用的选项,我想我已经追踪到这个文件: /Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/auctex-config.el. 但是,我可能是错的吗?

我认为这将比简单地生成 pdf 更复杂——即:

(global-set-key (kbd "<f7>") 'TeX-command-master)

我现在更近了一步——这个 init.el 配置适用于在 OSX Mountain Lion 上运行的最新版本的 Emacs(通用二进制)——所以现在将它转换为键盘快捷键应该会容易得多。这将重新配置视图选项以跳转到 pdf。这是我得到它的线程的链接(由 Ricardo 编写): https ://tex.stackexchange.com/questions/11613/launching-an-external-pdf-viewer-from-emacs-auctex-on-a -mac-osx-失败

(setq TeX-view-program-selection '((output-pdf "Skim")))

(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)

(setq TeX-source-correlate-method 'synctex)

(add-hook 'LaTeX-mode-hook
      (lambda()
        (add-to-list 'TeX-expand-list
             '("%q" skim-make-url))))

(defun skim-make-url () (concat
        (TeX-current-line)
        " "
        (expand-file-name (funcall file (TeX-output-extension) t)
            (file-name-directory (TeX-master-file)))
        " "
        (buffer-file-name)
))

(setq TeX-view-program-list
  '(("Skim" "/Applications/Skim.app/Contents/SharedSupport/displayline %q")))
4

1 回答 1

2

该解决方案确实not依赖于使用 Aquamacs —— 即,通用的 Emacs 风格就足够了。对于带有 package 的 OSX 版本的 Emacs(Snow Leopard 和 Mountain Lion)auctex-11.86,以下代码行tex.el会影响查看 *.pdf 文件:

第1028行:(“Evince”(“evince”(mode-io-correlate“-p %(outpage)”)“%o”))

第 1119 行:(输出-pdf“Evince”)

Skim.app 被广泛认为是最适合 OSX *.tex 文档的 *.pdf 查看器,因为它能够在检测到 *.pdf 文件更改时自动更新显示,并且因为它能够使用反向搜索(即,command + shift + 左键单击)以在单击鼠标的精确点跳回文本编辑器。

由于 OSX 社区没有广泛使用 Evince,解决方法是修改 tex.el 或修改 init.el。tex.el 中甚至有一个符号表示开发人员需要协调他们的努力以在 OSX 系统上实现查看 *.pdf。

以下是对 init.el 的修改,其中包括我自己选择的键盘快捷键。当前版本auctex-11.86已经有'TeX-view(Cc Cv) 的键盘快捷键。注意:以下代码将 View 配置为 Jump-To-PDF 并启用了 synctex,因此任何希望在没有 synctex 的情况下快速查看的人都需要稍微不同的配置。我创建的键盘快捷键是 F7 用于构建;F8 跳转到 pdf;和 F9 进行清理,但保留 *.pdf 和 *.tex。

[将来,我计划编写一些代码来使用 /tmp 的 -output-directory 选项并自动将 *.pdf 复制回工作目录,这样就不需要清理了。TexLive 目前不支持 -aux-directory 选项,因此以前的解决方案是消除清理过程的最佳选择。]

(global-set-key (kbd "<f7>") 'TeX-command-master) ;; need to set a default for this to work.
(global-set-key (kbd "<f8>") 'TeX-view) ;; jump to *.pdf with synctex (or C-c C-v)
(global-set-key (kbd "<f9>") 'TeX-clean) ;; clean, but leave the *.pdf

(setq TeX-PDF-mode t)

(setq TeX-view-program-selection '((output-pdf "Skim")))

(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)

(setq TeX-source-correlate-method 'synctex)

(add-hook 'LaTeX-mode-hook
    (lambda()
        (add-to-list 'TeX-expand-list
            '("%q" skim-make-url))))

(defun skim-make-url () (concat
    (TeX-current-line)
    " "
    (expand-file-name (funcall file (TeX-output-extension) t)
        (file-name-directory (TeX-master-file)))
    " "
    (buffer-file-name)
))

(setq TeX-view-program-list
    '(("Skim" "/Applications/Skim.app/Contents/SharedSupport/displayline %q")))

也可以看看:

https://tex.stackexchange.com/questions/111834/auctex-output-directory-copy-pdf-to-working-directory

于 2013-04-30T18:50:07.017 回答