A pdf-tools extension that implements continuous scroll.
A better implementation is provided by the image-roll package.
It includes keybindings to just work also on Spacemacs.
Development notes can be found in the wiki section.
To use the new pdf-continuous-scroll-mode, your Emacs must have been compiled with SVG support (the cleaner version of my pdf-tools fork eliminates this requirement).
However, compiling Emacs generally is very easy. Just make sure you have the
librsvg
development (dev/devel) library installed before compiling.
Note: If, for some reason, you prefer to use the previous two buffer solution then you could just download and load the script from e.g. this previous commit.
Note: If you are using git to update the package, then you might want to use ‘reset –hard’, as I am frequently using ‘push –force’.
To keep this package updated it is recommended to install it using a Quelpa
recipe. Spacemacs users can install the package (using Quelpa) by adding the
following lines to the list of additional packages
in their .spacemacs file:
(pdf-continuous-scroll-mode :location (recipe
:fetcher github
:repo "dalanicolai/pdf-continuous-scroll-mode.el"))
Then just load the package using use-package
(if you’d like to defer loading),
require
or just M-x load-library
.
Unlike the previous two-buffer implementation, currently this implementation does not add an option for toggling the functionality.
You can set the scroll step size via the customizable variable
book-scroll-fraction
.
- Currently the redisplay functionality does not work correctly yet (e.g.
splitting buffers does not work correctly yet. Although in Spacemacs the issues seem to ‘fix themselves’ after just doing some scrolling, in vanilla Emacs this trick does not seem to work).
As it is not trivial to find out how this functionality works exactly, help or donations are very welcome.
- isearch functionality gets broken. However, pdf-occur does work, just without the highlighting because that makes use of isearch functionality.
As investigating how to get things right takes me a lot of time (both doc-view and pdf-tools are quite complex packages, and they are almost undocumented unfortunately). It really took me weeks to partly unravel how these packages work. As I am the extreme opposite of being rich, donations are very welcome (you could also have a look at my other packages on my github profile page, for example the new alternative pdf-server that adds extra annotation features and support for EPUB, and some more document types, to pdf-tools).
Comment: Personally, I think the improved functionality quite much increases the value of Emacs for research/study purposes
Of course if you know some elisp you could also help investigating/fixing issues yourself. To save you a lot of time, you can read the ‘development notes’ in the wiki section.
Any feedback is welcome (possibly by opening an issue in the repo).
Emacs | Spacemacs | Function |
---|---|---|
C-n | j | pdf-continuous-scroll-forward |
C-p | k | pdf-continuous-scroll-backward |
n | J | pdf-continuous-next-page |
p | K | pdf-continuous-previous-page |
M-< | g g | pdf-cscroll-first-page |
M-> | G | pdf-cscroll-last-page |
Q | q | pdf-cscroll-kill-buffer-and-windows |
C-c C-a l | SPC m a l (, a l) | pdf-cscroll-annot-list-annotations |
In this comment the user apnewberry posted code to realize a double page layout
Extend pdf-tools annotation capabilities via pymupdf. The new, alternative, pdf-tools server, will provide the same functionality directly as a pdf-tools feature (including possibility for scripting).
Show djvu annotations within Emacs (extending djvu.el, and improving djvu2.2l). There is also a Spacemacs djvu layer which additionally implements smooth scrolling in djvu.
The best way to create and attach Table of contents to pdf and djvu documents. There is also a toc-layer for Spacemacs
calibredb https://melpa.org/#/calibredb
A super nice calibre frontend within Emacs
handy or fun Emacs lisp functions https://github.com/dalanicolai/dala-emacs-lisp
For example I like the elisp raytracer