diff --git a/modules/lang/latex/+viewers.el b/modules/lang/latex/+viewers.el index 89251647f..012ceeafd 100644 --- a/modules/lang/latex/+viewers.el +++ b/modules/lang/latex/+viewers.el @@ -1,43 +1,45 @@ ;;; lang/latex/+viewers.el -*- lexical-binding: t; -*- -(catch 'found-viewer - (dolist (viewer +latex-viewers) - (if (pcase viewer - (`skim - (when (and IS-MAC - (file-exists-p! (or "/Applications/Skim.app" - "~/Applications/Skim.app"))) - (add-to-list 'TeX-view-program-selection '(output-pdf "Skim")))) - (`sumatrapdf - (when (and IS-WINDOWS - (executable-find "SumatraPDF")) - (add-to-list 'TeX-view-program-selection '(output-pdf "SumatraPDF")))) +;; fall back pdf previewing to latex-preview-pane +(add-to-list 'TeX-view-program-selection '(output-pdf "preview-pane") 'append) +(add-to-list 'TeX-view-program-list '("preview-pane" latex-preview-pane-mode)) - (`okular - (when (executable-find "okular") - ;; Configure Okular as viewer. Including a bug fix - ;; (https://bugs.kde.org/show_bug.cgi?id=373855) - (add-to-list 'TeX-view-program-list '("Okular" ("okular --unique file:%o" (mode-io-correlate "#src:%n%a")))) - (add-to-list 'TeX-view-program-selection '(output-pdf "Okular")))) +(dolist (viewer +latex-viewers) + (pcase viewer + (`skim + (when (and IS-MAC + (file-exists-p! (or "/Applications/Skim.app" + "~/Applications/Skim.app"))) + (add-to-list 'TeX-view-program-selection '(output-pdf "Skim")))) - (`zathura - (when (executable-find "zathura") - (add-to-list 'TeX-view-program-selection '(output-pdf "Zathura")))) + (`sumatrapdf + (when (and IS-WINDOWS + (executable-find "SumatraPDF")) + (add-to-list 'TeX-view-program-selection '(output-pdf "SumatraPDF")))) - (`pdf-tools - (when (featurep! :tools pdf) - (add-to-list 'TeX-view-program-selection '(output-pdf "PDF Tools")) - (when IS-MAC - ;; PDF Tools isn't in `TeX-view-program-list-builtin' on macs - (add-to-list 'TeX-view-program-list '("PDF Tools" TeX-pdf-tools-sync-view))) - ;; Update PDF buffers after successful LaTeX runs - (add-hook 'TeX-after-compilation-finished-function #'TeX-revert-document-buffer)))) + (`okular + (when (executable-find "okular") + ;; Configure Okular as viewer. Including a bug fix + ;; (https://bugs.kde.org/show_bug.cgi?id=373855) + (add-to-list 'TeX-view-program-list '("Okular" ("okular --unique file:%o" (mode-io-correlate "#src:%n%a")))) + (add-to-list 'TeX-view-program-selection '(output-pdf "Okular")))) - (throw 'found-viewer t))) + (`zathura + (when (executable-find "zathura") + (add-to-list 'TeX-view-program-selection '(output-pdf "Zathura")))) - ;; fall back to latex-preview-pane - (add-to-list 'TeX-view-program-list '("preview-pane" latex-preview-pane-mode)) - (add-to-list 'TeX-view-program-selection '(output-pdf "preview-pane"))) + (`evince + (when (executable-find "evince") + (add-to-list 'TeX-view-program-selection '(output-pdf "Evince")))) + + (`pdf-tools + (when (featurep! :tools pdf) + (add-to-list 'TeX-view-program-selection '(output-pdf "PDF Tools")) + (when IS-MAC + ;; PDF Tools isn't in `TeX-view-program-list-builtin' on macs + (add-to-list 'TeX-view-program-list '("PDF Tools" TeX-pdf-tools-sync-view))) + ;; Update PDF buffers after successful LaTeX runs + (add-hook 'TeX-after-compilation-finished-function #'TeX-revert-document-buffer))))) (after! latex-preview-pane diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index d58ba1190..8fae86080 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -11,7 +11,7 @@ enabling unicode symbols in math regions. This requires the unicode-math latex package to be installed.") -(defvar +latex-viewers `(skim sumatrapdf zathura okular pdf-tools) +(defvar +latex-viewers '(skim evince sumatrapdf zathura okular pdf-tools) "A list of enabled latex viewers to use, in this order. If they don't exist, they will be ignored. Recognized viewers are skim, zathura, okular and pdf-tools.