質問

Any ideas how to convert this into a global set key for "Jump to 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)

The right-click contextual menu has several useful options, and I think I've tracked it down to this file: /Applications/Aquamacs.app/Contents/Resources/lisp/aquamacs/auctex-config.el. However, I could be wrong?

I think this is going to be more complicated than simply generating the pdf -- i.e.:

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

I'm now one step closer -- this init.el configuration works on the latest version of Emacs (universal binary) running on OSX Mountain Lion -- so it should be much easier to now convert it into a keyboard shortcut. This reconfigures the view option to jump to pdf. Here is the link to the thread where I got it (written by Ricardo): 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")))
役に立ちましたか?

解決

This solution does not depend upon using Aquamacs -- i.e., a generic flavor of Emacs will suffice. As to an OSX version of Emacs (Snow Leopard and Mountain Lion) with package auctex-11.86, the following lines of code within tex.el affect viewing *.pdf files:

line 1028: ("Evince" ("evince" (mode-io-correlate " -p %(outpage)") " %o"))

line 1119: (output-pdf "Evince")

Skim.app is widely considered to be the most appropriate *.pdf viewer for OSX *.tex documents because of its ability to auto-update the display when it detects a change of the *.pdf file, and because of its ability to use inverse-search (i.e., command + shift + left-click) to jump back to the text editor at the precise point where the mouse was clicked.

Since the OSX community does not widely use Evince, the work-around is to either modify tex.el or modify the init.el. There is even a notation within tex.el stating that the developers need to coordinate their efforts to implement viewing *.pdf on an OSX system.

The following is a modification of the init.el, which includes a keyboard shortcut of my own choosing. The current version of auctex-11.86 already has in place the keyboard shortcut for 'TeX-view (C-c C-v). NOTE: The following code configures View to be Jump-To-PDF with synctex enabled, so anyone looking to just have a quick view without synctex will need a slightly different configuration. The keyboard shortcuts I have created are F7 for build; F8 for jump to pdf; and F9 for clean up, but leave the *.pdf and *.tex.

[In the future, I plan on writing some code to use the -output-directory option to /tmp and automatically copy the *.pdf back to the working directory so that clean-up is unnecessary. TexLive does not presently support the -aux-directory option, so the previous solution is the best option to eliminate the clean-up process.]

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

See also:

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top