From 2e6c362df94e67e2ef169622a37bdae822a62237 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 30 Jul 2018 01:05:56 +0200 Subject: [PATCH] lang/latex: replace viewer flags with variable The +zathura, +skim, +okular and +pdf-tools module flags have been removed in favor of +latex-viewers, which takes a list of symbols. Its order determines the priority. The first viewer found on your system is used. If none of these viewers are found, it will fall back to latex-preview-pane. --- modules/lang/latex/+preview-pane.el | 16 --------- modules/lang/latex/+viewers.el | 55 ++++++++++++++++++++--------- modules/lang/latex/config.el | 7 ++++ 3 files changed, 45 insertions(+), 33 deletions(-) delete mode 100644 modules/lang/latex/+preview-pane.el diff --git a/modules/lang/latex/+preview-pane.el b/modules/lang/latex/+preview-pane.el deleted file mode 100644 index 734c6494e..000000000 --- a/modules/lang/latex/+preview-pane.el +++ /dev/null @@ -1,16 +0,0 @@ -;;; lang/latex/+preview-pane.el -*- lexical-binding: t; -*- -;;;###if (featurep! +preview-pane) - -(def-package! latex-preview-pane - :when (featurep! +preview-pane) - :hook (LaTeX-mode . latex-preview-pane-enable) - :commands latex-preview-pane-mode - :init - (setq latex-preview-pane-multifile-mode 'auctex) - :config - (add-to-list 'TeX-view-program-list '("preview-pane" latex-preview-pane-mode)) - (add-to-list 'TeX-view-program-selection '(output-pdf "preview-pane")) - (define-key! doc-view-mode-map - (kbd "ESC") #'delete-window - "q" #'delete-window - "k" (λ! (quit-window) (delete-window)))) diff --git a/modules/lang/latex/+viewers.el b/modules/lang/latex/+viewers.el index 46a4a1b2c..b38574796 100644 --- a/modules/lang/latex/+viewers.el +++ b/modules/lang/latex/+viewers.el @@ -1,22 +1,43 @@ ;;; lang/latex/+viewers.el -*- lexical-binding: t; -*- -(when (featurep! +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"))) +(cl-block nil + (dolist (viewer (reverse +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")))) -;; Or Skim -(when (featurep! +skim) - (add-to-list 'TeX-view-program-selection 'output-pdf '("Skim"))) + (`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")))) -;; Or Zathura -(when (featurep! +zathura) - (add-to-list 'TeX-view-program-selection '(output-pdf "Zathura"))) + (`zathura + (when (executable-find "zathura") + (add-to-list 'TeX-view-program-selection '(output-pdf "Zathura")))) + + (`pdf-tools + (when (featurep! :tools pdf) + (add-to-list 'TeX-view-program-selection '(output-pdf "PDF Tools")) + ;; Update PDF buffers after successful LaTeX runs + (add-hook 'TeX-after-compilation-finished-function #'TeX-revert-document-buffer)))) + + (cl-return t))) + + ;; 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"))) + + +(after! latex-preview-pane + (setq latex-preview-pane-multifile-mode 'auctex) + + (define-key! doc-view-mode-map + (kbd "ESC") #'delete-window + "q" #'delete-window + "k" (λ! (quit-window) (delete-window)))) -;; Or PDF-tools, but only if the module is also loaded -(when (and (featurep! :tools pdf) - (featurep! +pdf-tools)) - (add-to-list 'TeX-view-program-selection '(output-pdf "PDF Tools")) - ;; Update PDF buffers after successful LaTeX runs - (add-hook 'TeX-after-compilation-finished-function #'TeX-revert-document-buffer)) diff --git a/modules/lang/latex/config.el b/modules/lang/latex/config.el index febc15a08..e8e02cf0a 100644 --- a/modules/lang/latex/config.el +++ b/modules/lang/latex/config.el @@ -11,6 +11,13 @@ enabling unicode symbols in math regions. This requires the unicode-math latex package to be installed.") +(defconst +latex-viewers `(skim 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. + +If no viewers are found, `latex-preview-pane' is used.") + ;; (defvar +latex--company-backends nil)