aboutsummaryrefslogtreecommitdiff
path: root/modules/latex-config.el
diff options
context:
space:
mode:
Diffstat (limited to 'modules/latex-config.el')
-rw-r--r--modules/latex-config.el33
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