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" "[{")
|
||||
;; Standard commands
|
||||
("cite" "[{")
|
||||
("citep" "[{")
|
||||
("citet" "[{")
|
||||
("Cite" "[{")
|
||||
("parencite" "[{")
|
||||
("Parencite" "[{")
|
||||
|
|
|
@ -26,28 +26,54 @@ Set these variables in your private configuration with:
|
|||
#+END_SRC
|
||||
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
|
||||
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.
|
||||
#+BEGIN_SRC emacs_lisp
|
||||
(latex +latexmk)
|
||||
#+END_SRC
|
||||
|
||||
** Okular
|
||||
Use Okular as default PDF viewer.
|
||||
|
||||
Activate with the flag '+okular' of the latex module in init.el.
|
||||
You can enable both a custom view program and LatexMk with a call such as:
|
||||
#+BEGIN_SRC emacs_lisp
|
||||
(latex +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)
|
||||
(latex +latexmk +okular)
|
||||
#+END_SRC
|
||||
|
|
|
@ -103,21 +103,31 @@
|
|||
LaTeX-indent-environment-list))))
|
||||
|
||||
(after! latex
|
||||
;; Use Okular is the user says so.
|
||||
;; Use Okular if the user says so.
|
||||
(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"))))
|
||||
'(output-pdf "Okular")))
|
||||
|
||||
(after! latex
|
||||
;; Or Skim
|
||||
(when (featurep! +skim)
|
||||
(add-to-list 'TeX-view-program-list
|
||||
'("Skim" "/Applications/Skim.app/Contents/SharedSupport/displayline -b -g %n %o %b"))
|
||||
(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
|
||||
|
@ -136,6 +146,8 @@
|
|||
reftex-toc-split-windows-fraction 0.3)
|
||||
(unless (string-empty-p +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
|
||||
;; http://tex.stackexchange.com/questions/31966/setting-up-reftex-with-biblatex-citation-commands/31992#31992
|
||||
(setq reftex-cite-format
|
||||
|
@ -146,8 +158,6 @@
|
|||
(?f . "\\footcite[]{%l}")
|
||||
(?n . "\\nocite{%l}")
|
||||
(?b . "\\blockcquote[]{%l}{}")))
|
||||
(add-hook! (latex-mode LaTeX-mode) #'turn-on-reftex)
|
||||
:config
|
||||
(map! :map reftex-mode-map
|
||||
:localleader :n ";" 'reftex-toc)
|
||||
(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)
|
||||
|
||||
;; Fit pages to screen by default
|
||||
(setq-default pdf-view-display-size 'fit-page)
|
||||
;; turn off cua so copy works
|
||||
(add-hook! 'pdf-view-mode-hook (cua-mode 0)))
|
||||
|
||||
|
||||
(when (featurep! :lang latex)
|
||||
(after! latex
|
||||
;; add to the program list
|
||||
(add-to-list 'TeX-view-program-selection
|
||||
'(output-pdf "PDF Tools"))
|
||||
(add-to-list 'TeX-view-program-list
|
||||
'("PDF Tools" ("TeX-pdf-tools-sync-view")))
|
||||
|
||||
;; 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)))
|
||||
;; Turn off cua so copy works
|
||||
(add-hook! 'pdf-view-mode-hook (cua-mode 0))
|
||||
;; Custom modeline that removes useless info and adds page numbers
|
||||
(when (featurep! :ui doom-modeline)
|
||||
(load! +modeline)
|
||||
(add-hook! pdf-tools-enabled (doom-set-modeline 'pdf-tools-modeline)))
|
||||
;; Handle PDF-tools related popups better
|
||||
(set! :popup "^\\*Outline*" '((side . right) (size . 40)) '((select)))
|
||||
;; TODO: Add additional important windows that should be handled differently
|
||||
;; TODO: These two next rules don't work (they should), investigate
|
||||
;; (set! :popup "\\*Contents\\*" '((side . right) (size . 40)) nil)
|
||||
;; (set! :popup "* annots\\*$" '((side . left) (size . 40)) '((select)))
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue