diff options
Diffstat (limited to 'modules/latex-config.el')
| -rw-r--r-- | modules/latex-config.el | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/modules/latex-config.el b/modules/latex-config.el index bb4cf510..a0af2a1a 100644 --- a/modules/latex-config.el +++ b/modules/latex-config.el @@ -15,6 +15,37 @@ ;; ;;; Code: +;; ----------------------------- PDF Viewer Selection -------------------------- +;; +;; Pick whichever PDF viewer is available rather than hard-coding Zathura. +;; The selected viewer is pushed onto `TeX-view-program-selection' for +;; output-pdf so `C-c C-v' opens the compiled PDF. + +(defconst cj/--latex-pdf-viewer-candidates + ;; (PROGRAM . TeX-VIEWER-NAME) in preference order. TeX-view-program-list + ;; has built-in entries for "Zathura", "Evince", "Okular", "Skim", + ;; "PDF Tools", and platform openers; we match against those names. + '(("zathura" . "Zathura") + ("evince" . "Evince") + ("okular" . "Okular") + ("SumatraPDF" . "Sumatra PDF") + ("xdg-open" . "xdg-open")) + "Ordered (EXECUTABLE . TEX-VIEWER-NAME) pairs for PDF preview selection.") + +(defvar TeX-view-program-selection) +(declare-function pdf-view-mode "pdf-view") + +(defun cj/--latex-select-pdf-viewer () + "Push the first available external PDF viewer onto `TeX-view-program-selection'. +Falls back to PDF Tools when no external viewer is on PATH. The new +selection is consed onto the head of the alist so it wins over any +default. Idempotent: re-running picks the same viewer." + (let* ((found (cl-find-if (lambda (entry) + (executable-find (car entry))) + cj/--latex-pdf-viewer-candidates)) + (viewer-name (if found (cdr found) "PDF Tools"))) + (push (list 'output-pdf viewer-name) TeX-view-program-selection))) + ;; ----------------------------- Auctex And Related ---------------------------- (use-package tex @@ -25,7 +56,7 @@ (LaTeX-mode . (lambda () (TeX-fold-mode 1))) ; automatically activate TeX-fold-mode. (LaTeX-mode . flyspell-mode) ; turn on flyspell-mode by default (LaTeX-mode . TeX-PDF-mode) - (LaTeX-mode . (lambda () (push (list 'output-pdf "Zathura") TeX-view-program-selection))) + (LaTeX-mode . cj/--latex-select-pdf-viewer) :mode ("\\.tex\\'" . latex-mode) :config |
