/pdf-tools

Emacs support library for PDF files.

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

PLEASE DONATE

Developing features like continuous scroll, i.e. investigating how Emacs works (and finding out ways to investigate it; also the more exotic parts usually are not, at all, perfectly documented), investigating how pdf-tools (and all pdf-tools-modes) work, thinking out how to design, and fit in, the feature, writing the code, encounter, ‘overcome’ and reporting bugs, writing documentation, and multiple iterations of this process, costs a lot of time. Unfortunately I am not in any paid position anywhere so that I will simply be unable to continue my work (e.g. fixing the incomplete features, and make this branch ready for merging into pdf-tools master) without the help of donations.

Additionally, I think writing a developers guide would be a very valuable resource for (future) hackers (and users, because they can also learn a ton of useful tricks from it). I am planning to expand the guide in the wiki section. Of course, writing such a guide takes even more time. Therefore, also to make this possible, I would be very happy with your support, either by contributing to the work, or otherwise by making a donation if your financial situation allows for that (it is a donation also to Emacs, and to the future users/students who might like to enjoy this package).

Thanks for current donations

I have already received some (anonymous) donations. Although I am thankful for any donation, I would like to use this space to thank the anonymous donor(s) (that I otherwise don’t know how to reach).

Incomplete features

  • although isearch seemed fully functional in commit 1fd1f98, it got broken somewhere while fixing occur functionality (which seems to work fine)
  • latex sync does not work yet
  • goto page usually works initially, but gets broken after some usage

Installation

I wish that I could simply tell you how to use this branch. However, I am a Spacemacs user, where I can simply make the pdf layer use this branch by adding the following code to my list of dotspacemacs-additional-packages (the commented out code can be used if you’d prefer to clone the repo first and then install pdf-tools from the local directory, e.g. when you’d like to work on the code yourself, in that case comment out the (other) :fetcher, :repo and :branch lines)

(pdf-tools :location (recipe
                      :fetcher github
                      :repo "dalanicolai/pdf-tools"
                      :branch "continuous-scroll-version-3"
                      ;; :fetcher file
                      ;; :path "~/git/pdf-tools"
                      :files ("lisp/*.el"
                              "README"
                              "vimura-server/*.py"
                              ("build" "Makefile")
                              ("build" "server")
				   (:exclude "lisp/tablist.el" "lisp/tablist-filter.el"))))

For vanilla Emacs and other distributions I had hoped to recommend using Quelpa, but as far as I have found, Quelpa does not support the :files keyword for building the package, and also it seems not to add installed packages to the load path (please, let me know if I am wrong).

Therefore, I think it is probably best to either just clone the code and load the required files using the following function (replace the dir path with the correct one):

(defun pdf-load ()
  (interactive)
  (let ((dir "~/git/pdf-tools/lisp/"))
    (load (concat dir "pdf-scroll.el"))
    (load (concat dir "pdf-view.el"))
    (load (concat dir "pdf-isearch.el"))
    (load (concat dir "pdf-util.el"))
    (load (concat dir "pdf-annot.el"))
    (load (concat dir "pdf-debug.el"))
    (load-library "pdf-tools")))

or use some alternative package manager (users of those probably know how to use it, see the Spacemacs instructions above for hints for the recipe). Otherwise, you could follow the pdf-tools installation instructions (clone the package, be sure that you ‘meet’ all requirements, e.g. having cask available on your path. Then build the tar file by running make in the pdf-tools directory and install the tar file using package-install-file).