The pdf-tools packages allows you to read and annotate PDF documents in Emacs. The installation process is described on the github page, but on my Mac, I needed to install
poppler (I used macports) and add
to my zshrc. Then after installing the package in Emacs with the following code
:pin manual ;; manually update
;; open pdfs scaled to fit page
(setq-default pdf-view-display-size 'fit-page)
;; automatically annotate highlights
(setq pdf-annot-activate-created-annotations t)
;; use normal isearch
(define-key pdf-view-mode-map (kbd "C-s") 'isearch-forward))
M-x pdf-tools-install, ignored an error message about epdfinfo and then restarted emacs, and all was well.
I use the
:pin manual option in
use-package to stop
pdf-tools being automatically updated when I update the rest of my packages, since it would need the installation command and restart each time it updated.
There are lots of nice features in
pdf-tools but I’ll just mention the ones I use most often. You can search pdf files like normal buffers, but the enhanced search tool swiper doesn’t work with
pdf-tools so I set
C-s to call the normal
isearch when in this mode.
You can also make annotations in
pdf-tools and I set my configuration above so that when an annotation (like highlighting some text) is created, a buffer opens prompting for a text note to go with the annotation. So for example, to highlight a comment on some text I
- Select the text in the pdf (mouse required for this unfortunately)
C-c C-a h to highlight it yellow
- Type some notes in the annotation buffer that pops up and use
C-c C-c to complete the annotation.
Other useful annotations are
C-c C-a t and then mouse click to add a text note somewhere to the pdf page,
C-c C-a o to strike-through text, and
C-c C-a D and then click to delete an annotation.
Saving the pdf buffer as normal saves all the annotations, and they will be readable in any PDF viewer so this works well when collaborating with the unenlightened!