11

Some TeX/LaTeX editor has support for embedding PDF viewer, and forward/backward search support.

I want to configure AUCTeX and pdf-tools to this result.

I found a discussion in mailing list.

https://lists.gnu.org/archive/html/auctex/2015-02/msg00013.html

It give out a method to implement this opening PDF file with pdf-tools in Emacs. I followed that, but it does not work.

Here is my config:

(require 'tex-site)
(require 'latex)

;;; AUCTeX config
(setq TeX-auto-save t
      TeX-parse-self t)

(setq-default TeX-master nil)

;; automatic detection of master file
(defun guess-TeX-master (filename)
  "Guess the master file for FILENAME from currently open .tex files."
  (let ((candidate nil)
        (filename (file-name-nondirectory filename)))
    (save-excursion
      (dolist (buffer (buffer-list))
        (with-current-buffer buffer
          (let ((name (buffer-name))
                (file buffer-file-name))
            (if (and file (string-match "\\.tex$" file))
                (progn
                  (goto-char (point-min))
                  (if (re-search-forward (concat "\\\\input{" filename "}") nil t)
                      (setq candidate file))
                  (if (re-search-forward (concat "\\\\include{" (file-name-sans-extension filename) "}") nil t)
                      (setq candidate file))))))))
    (if candidate
        (message "TeX master document: %s" (file-name-nondirectory candidate)))
    candidate))

(add-hook 'LaTeX-mode-hook
          '(lambda ()
             (setq TeX-master (guess-TeX-master (buffer-file-name)))
             ))

;; enable RefTeX in AUCTeX (LaTeX-mode)
(setq reftex-plug-into-AUCTeX t)
(add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode
(add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode

;; view generated PDF with `pdf-tools'.
(unless (assoc "PDF Tools" TeX-view-program-list-builtin)
  (add-to-list 'TeX-view-program-list-builtin
               '("PDF Tools" TeX-pdf-tools-sync-view)))
(add-to-list 'TeX-view-program-selection
             '(output-pdf "PDF Tools"))

;; LaTeX source code block syntax highlighting.
;; [ minted ]
;; toggle shell escape using [C-c C-t x].
(defun TeX-toggle-escape ()
  "Toggle Shell Escape"
  (interactive)
  (setq-local LaTeX-command
              (if (string= LaTeX-command "latex") "latex -shell-escape"
                "latex"))
  (message (concat "shell escape "
                   (if (string= LaTeX-command "latex -shell-escape")
                       "enabled"
                     "disabled"))
           ))
(add-hook 'LaTeX-mode-hook
          '(lambda ()
             (local-set-key (kbd "C-c C-t x") 'TeX-toggle-escape)))
11

Here's my setup, using auctex-11.89 and pdf-tools-20151224.1159:

;; Use pdf-tools to open PDF files
(setq TeX-view-program-selection '((output-pdf "PDF Tools"))
      TeX-source-correlate-start-server t)

;; Update PDF buffers after successful LaTeX runs
(add-hook 'TeX-after-compilation-finished-functions
           #'TeX-revert-document-buffer)
  • 2
    Only a comment: TeX-PDF-mode is active by default since AUCTeX 11.88. – giordano Jan 12 '16 at 17:40
  • I tried your method, it can work when I try with emacs -q and load packages. but has problem with my configs. Is there a way to find out why? – stardiviner Jan 13 '16 at 10:25
  • Only thing I can think of: bisect your config file, commenting out piece by piece, trying to nailing it down to the code that is in conflict with my solution. – Manuel Uberti Jan 13 '16 at 12:19
  • 1
    FYI: I couldn't find TeX-after-TeX-LaTeX-command-finished-hook. TeX-after-compilation-finished-functions now appears to be the relevant hook (or so the docstring says). – Dan Jul 27 '16 at 14:42
  • @Dan At least for version 12.1 (2017-12-04), I only see TeX-after-compilation-finished-hook in the AUCTeX manual. I think it is no longer either TeX-after-TeX-LaTeX-command-finished-hook or TeX-after-compilation-finished-functions. – Adam Liter Aug 20 '18 at 2:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.