Merge pull request #525 from UndeadKernel/fix_latex_and_pdftools
Better PDF Tools and LaTeX interaction
This commit is contained in:
commit
c3c6b5b4de
5 changed files with 84 additions and 41 deletions
|
@ -8,6 +8,8 @@
|
||||||
("addbibresource" "[{")
|
("addbibresource" "[{")
|
||||||
;; Standard commands
|
;; Standard commands
|
||||||
("cite" "[{")
|
("cite" "[{")
|
||||||
|
("citep" "[{")
|
||||||
|
("citet" "[{")
|
||||||
("Cite" "[{")
|
("Cite" "[{")
|
||||||
("parencite" "[{")
|
("parencite" "[{")
|
||||||
("Parencite" "[{")
|
("Parencite" "[{")
|
||||||
|
|
|
@ -26,28 +26,54 @@ Set these variables in your private configuration with:
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
If the variables are not set, they are ignored.
|
If the variables are not set, they are ignored.
|
||||||
|
|
||||||
|
** Choose View Program
|
||||||
|
You have four options to choose from for the viewer of your PDF rendered files.
|
||||||
|
*** Okular
|
||||||
|
Use Okular as default PDF viewer.
|
||||||
|
|
||||||
|
Activate with the flag '+okular' of the latex module in your private init.el.
|
||||||
|
#+BEGIN_SRC emacs_lisp
|
||||||
|
(latex +okular)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Skim
|
||||||
|
For Mac users. Use Skim to preview your PDFs.
|
||||||
|
|
||||||
|
Activate with the flag '+skim' of the latex module in your private init.el.
|
||||||
|
#+BEGIN_SRC emacs_lisp
|
||||||
|
(latex +skim)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
*** PDF Tools
|
||||||
|
Use the PDF Tools package to preview your PDFs. Requires the tools module ~pdf~ enabled in your configuration.
|
||||||
|
#+BEGIN_SRC emacs_lisp
|
||||||
|
(:tools pdf)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Activate with the flag '+pdf-tools' of the latex module in your private init.el.
|
||||||
|
#+BEGIN_SRC emacs_lisp
|
||||||
|
(latex +pdf-tools=)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Preview Pane
|
||||||
|
You may wish to use the old school package ~latex-preview-pane~ instead of the
|
||||||
|
other alternatives. ~latex-preview-pane~ uses a ~DocView~ instead.
|
||||||
|
|
||||||
|
Activate with the flag '+preview-pane' of the latex module in your private init.el.
|
||||||
|
#+BEGIN_SRC emacs_lisp
|
||||||
|
(latex +preview-pane)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** LatexMk
|
** LatexMk
|
||||||
Use LatexMk instead of normal LaTeX to compile documents. LatexMk only needs to run once to get all references, bibliography and other things right.
|
Use LatexMk instead of normal LaTeX to compile documents. LatexMk only needs to
|
||||||
|
run once to get all references, bibliography and other things right.
|
||||||
|
|
||||||
Activate with the flag '+latexmk' of the latex module in init.el.
|
Activate with the flag '+latexmk' of the latex module in init.el.
|
||||||
#+BEGIN_SRC emacs_lisp
|
#+BEGIN_SRC emacs_lisp
|
||||||
(latex +latexmk)
|
(latex +latexmk)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Okular
|
You can enable both a custom view program and LatexMk with a call such as:
|
||||||
Use Okular as default PDF viewer.
|
|
||||||
|
|
||||||
Activate with the flag '+okular' of the latex module in init.el.
|
|
||||||
#+BEGIN_SRC emacs_lisp
|
#+BEGIN_SRC emacs_lisp
|
||||||
(latex +okular)
|
(latex +latexmk +okular)
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
** Preivew-Pane
|
|
||||||
Instead of using an external program to display rendered .tex files, use an emacs window to display the rendered file.
|
|
||||||
|
|
||||||
This flag is incompatible with the ~+okular~ flag.
|
|
||||||
|
|
||||||
Activate with the flag '+preview-pane' of the latex module in init.el.
|
|
||||||
#+BEGIN_SRC emacs_lisp
|
|
||||||
(latex +preview-pane)
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
|
@ -103,21 +103,31 @@
|
||||||
LaTeX-indent-environment-list))))
|
LaTeX-indent-environment-list))))
|
||||||
|
|
||||||
(after! latex
|
(after! latex
|
||||||
;; Use Okular is the user says so.
|
;; Use Okular if the user says so.
|
||||||
(when (featurep! +okular)
|
(when (featurep! +okular)
|
||||||
;; Configure Okular as viewer. Including a bug fix
|
;; Configure Okular as viewer. Including a bug fix
|
||||||
;; (https://bugs.kde.org/show_bug.cgi?id=373855)
|
;; (https://bugs.kde.org/show_bug.cgi?id=373855)
|
||||||
(add-to-list 'TeX-view-program-list
|
(add-to-list 'TeX-view-program-list
|
||||||
'("Okular" ("okular --unique file:%o" (mode-io-correlate "#src:%n%a"))))
|
'("Okular" ("okular --unique file:%o" (mode-io-correlate "#src:%n%a"))))
|
||||||
(add-to-list 'TeX-view-program-selection
|
(add-to-list 'TeX-view-program-selection
|
||||||
'(output-pdf "Okular"))))
|
'(output-pdf "Okular")))
|
||||||
|
|
||||||
(after! latex
|
;; Or Skim
|
||||||
(when (featurep! +skim)
|
(when (featurep! +skim)
|
||||||
(add-to-list 'TeX-view-program-list
|
(add-to-list 'TeX-view-program-list
|
||||||
'("Skim" "/Applications/Skim.app/Contents/SharedSupport/displayline -b -g %n %o %b"))
|
'("Skim" "/Applications/Skim.app/Contents/SharedSupport/displayline -b -g %n %o %b"))
|
||||||
(add-to-list 'TeX-view-program-selection
|
(add-to-list 'TeX-view-program-selection
|
||||||
'(output-pdf "Skim"))))
|
'(output-pdf "Skim")))
|
||||||
|
|
||||||
|
;; 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-list
|
||||||
|
'("PDF Tools" ("TeX-pdf-tools-sync-view")))
|
||||||
|
(add-to-list 'TeX-view-program-selection
|
||||||
|
'(output-pdf "PDF Tools"))
|
||||||
|
;; Enable auto reverting the PDF document with PDF Tools
|
||||||
|
(add-hook 'TeX-after-compilation-finished-functions #'TeX-revert-document-buffer)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(def-package! preview
|
(def-package! preview
|
||||||
|
@ -136,6 +146,8 @@
|
||||||
reftex-toc-split-windows-fraction 0.3)
|
reftex-toc-split-windows-fraction 0.3)
|
||||||
(unless (string-empty-p +latex-bibtex-file)
|
(unless (string-empty-p +latex-bibtex-file)
|
||||||
(setq reftex-default-bibliography (list (expand-file-name +latex-bibtex-file))))
|
(setq reftex-default-bibliography (list (expand-file-name +latex-bibtex-file))))
|
||||||
|
(add-hook! (latex-mode LaTeX-mode) #'turn-on-reftex)
|
||||||
|
:config
|
||||||
;; Get ReTeX working with biblatex
|
;; Get ReTeX working with biblatex
|
||||||
;; http://tex.stackexchange.com/questions/31966/setting-up-reftex-with-biblatex-citation-commands/31992#31992
|
;; http://tex.stackexchange.com/questions/31966/setting-up-reftex-with-biblatex-citation-commands/31992#31992
|
||||||
(setq reftex-cite-format
|
(setq reftex-cite-format
|
||||||
|
@ -146,8 +158,6 @@
|
||||||
(?f . "\\footcite[]{%l}")
|
(?f . "\\footcite[]{%l}")
|
||||||
(?n . "\\nocite{%l}")
|
(?n . "\\nocite{%l}")
|
||||||
(?b . "\\blockcquote[]{%l}{}")))
|
(?b . "\\blockcquote[]{%l}{}")))
|
||||||
(add-hook! (latex-mode LaTeX-mode) #'turn-on-reftex)
|
|
||||||
:config
|
|
||||||
(map! :map reftex-mode-map
|
(map! :map reftex-mode-map
|
||||||
:localleader :n ";" 'reftex-toc)
|
:localleader :n ";" 'reftex-toc)
|
||||||
(add-hook! 'reftex-toc-mode-hook
|
(add-hook! 'reftex-toc-mode-hook
|
||||||
|
|
10
modules/tools/pdf/+modeline.el
Normal file
10
modules/tools/pdf/+modeline.el
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
;;; tools/pdf/+modeline.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
|
||||||
|
(def-modeline-segment! +pdf-tools-pages
|
||||||
|
"Current and total page indicator for PDF documents."
|
||||||
|
(format " P %d/%d" (pdf-view-current-page) (pdf-cache-number-of-pages)))
|
||||||
|
|
||||||
|
(def-modeline! pdf-tools-modeline
|
||||||
|
(bar matches " " buffer-info +pdf-tools-pages)
|
||||||
|
(major-mode vcs))
|
|
@ -9,23 +9,18 @@
|
||||||
|
|
||||||
(map! :map pdf-view-mode-map "q" #'kill-this-buffer)
|
(map! :map pdf-view-mode-map "q" #'kill-this-buffer)
|
||||||
|
|
||||||
|
;; Fit pages to screen by default
|
||||||
(setq-default pdf-view-display-size 'fit-page)
|
(setq-default pdf-view-display-size 'fit-page)
|
||||||
;; turn off cua so copy works
|
;; Turn off cua so copy works
|
||||||
(add-hook! 'pdf-view-mode-hook (cua-mode 0)))
|
(add-hook! 'pdf-view-mode-hook (cua-mode 0))
|
||||||
|
;; Custom modeline that removes useless info and adds page numbers
|
||||||
|
(when (featurep! :ui doom-modeline)
|
||||||
(when (featurep! :lang latex)
|
(load! +modeline)
|
||||||
(after! latex
|
(add-hook! pdf-tools-enabled (doom-set-modeline 'pdf-tools-modeline)))
|
||||||
;; add to the program list
|
;; Handle PDF-tools related popups better
|
||||||
(add-to-list 'TeX-view-program-selection
|
(set! :popup "^\\*Outline*" '((side . right) (size . 40)) '((select)))
|
||||||
'(output-pdf "PDF Tools"))
|
;; TODO: Add additional important windows that should be handled differently
|
||||||
(add-to-list 'TeX-view-program-list
|
;; TODO: These two next rules don't work (they should), investigate
|
||||||
'("PDF Tools" ("TeX-pdf-tools-sync-view")))
|
;; (set! :popup "\\*Contents\\*" '((side . right) (size . 40)) nil)
|
||||||
|
;; (set! :popup "* annots\\*$" '((side . left) (size . 40)) '((select)))
|
||||||
;; enable document revert
|
)
|
||||||
(add-hook 'TeX-after-compilation-finished-functions
|
|
||||||
#'TeX-revert-document-buffer)
|
|
||||||
|
|
||||||
;; correlated mode
|
|
||||||
(setq TeX-source-correlate-start-server t
|
|
||||||
TeX-source-correlate-mode t)))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue