2013-04-14 69 views
2

任何想法如何將其轉換爲「Jump to PDF」的全局設置鍵?爲LaTeX創建一個鍵綁定跳轉到PDF - synctex

(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。這裏是鏈接到那裏我得到了它的線程(由裏卡多寫的):https://tex.stackexchange.com/questions/11613/launching-an-external-pdf-viewer-from-emacs-auctex-on-a-mac-osx-fails

(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"))) 

回答

2

該解決方案確實not取決於使用Aquamacs - 即,Emacs的一個通用的味道就足夠了。至於包含auctex-11.86包的Emacs(Snow Leopard和Mountain Lion)的OSX版本,tex.el中的以下代碼行會影響查看* .pdf文件:

line 1028 :(「Evince」(「evince」 IO-關聯 「-p%(outpage)」) 「%O」))

線1119:(輸出-PDF 「了Evince」)

Skim.app被廣泛認爲是最合適的*。 PDF瀏覽器爲OSX * .tex文件,因爲它能夠在檢測到* .pdf文件發生變化時自動更新顯示,並且由於其能夠使用反向搜索(即command + shift +左鍵單擊)在精確點跳回到文本編輯器點擊鼠標的地方。

由於OSX社區並未廣泛使用Evince,因此解決方法是修改tex.el或修改init.el. tex.el中甚至有一種表示法,指出開發人員需要協調他們在OSX系統上實現查看* .pdf的工作。

以下是對init.el的修改,其中包括我自己選擇的鍵盤快捷鍵。 auctex-11.86的當前版本已經具有'TeX-view(C-C C-v)的鍵盤快捷鍵。注意:以下代碼將View配置爲啓用synctex的跳轉至PDF,因此任何希望在不使用synctex的情況下快速查看的人都需要稍微不同的配置。我創建的鍵盤快捷鍵是F7 for build; F8跳轉至pdf;和F9清理,但保留* .pdf和* .tex。 [未來,我打算編寫一些代碼來使用-output-directory選項到/ tmp並自動將* .pdf複製回工作目錄,以便不需要清理。的texlive目前不支持-aux目錄選項,所以以前的解決方案是消除清理過程中,最佳的選擇]

(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