• This repository has been archived on 05/May/2022
  • Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    Emacs Lisp
  • License
    GNU General Publi...
  • Created about 4 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A pdf-tools extension that provides continuous scrolling functionality

pdf-continuous-scroll-mode.el

A pdf-tools extension that implements continuous scroll.

THIS PACKAGE IS DEPRECATED

A better implementation is provided by the image-roll package.

Demo

pdf-continuous-scroll-demo.gif

It includes keybindings to just work also on Spacemacs.

Development notes can be found in the wiki section.

Requirements

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.

Installation

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.

Comments

  • 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.

Contribute

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).

Keybindings

EmacsSpacemacsFunction
C-njpdf-continuous-scroll-forward
C-pkpdf-continuous-scroll-backward
nJpdf-continuous-next-page
pKpdf-continuous-previous-page
M-<g gpdf-cscroll-first-page
M->Gpdf-cscroll-last-page
Qqpdf-cscroll-kill-buffer-and-windows
C-c C-a lSPC m a l (, a l)pdf-cscroll-annot-list-annotations

Comments

Related: double page layout

In this comment the user apnewberry posted code to realize a double page layout

Related projects

pymupdf-mode https://github.com/dalanicolai/pymupdf-mode.el

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).

djvu3 https://github.com/dalanicolai/djvu3

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.

toc-mode https://github.com/dalanicolai/toc-mode

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

More Repositories

1

image-roll.el

Virtual scroll display engine for Emacs
Emacs Lisp
79
star
2

gnome-tracker-extension

Ulauncher extension for (deep) search filesystem via the gnome tracker, recoll, docfetcher, locate or calibre index
Python
57
star
3

sketch-mode

Quickly create/draw/paint SVG sketches with keyboard and mouse
Emacs Lisp
42
star
4

toc-mode

Create, cleanup, add and manage Table Of Contents (TOC) of pdf and djvu documents with Emacs
Emacs Lisp
35
star
5

dala-emacs-lisp

A repository to share my emacs lisp code experiments
Emacs Lisp
35
star
6

zotero-find

Emacs package to lookup and open items from a Zotero database
Emacs Lisp
23
star
7

doc-tools-toc

Create, cleanup, add and manage Table Of Contents (TOC) of pdf and djvu documents with Emacs
Emacs Lisp
21
star
8

doc-tools

Universal document viewing and editing tools for Emacs
Emacs Lisp
20
star
9

pymupdf-mode.el

Extend pdf-tools annotation capabilities via pymupdf
Emacs Lisp
20
star
10

mediator

Emacs open-with dialog for opening files in mime-type fitting application.
Emacs Lisp
16
star
11

djvu2.el

Read and annotate djvu with Emacs
Emacs Lisp
11
star
12

vimura-epc

Next-generation, most hackable, Emacs pdf-reader using pymupdf via epc
Emacs Lisp
11
star
13

djvu3

Extend djvu.el to display annotations and more
Emacs Lisp
8
star
14

calibre-layer

A layer for spacemacs that provides a calibre frontend using the [calibre.el package](https://github.com/chenyanming/calibredb.el)
Emacs Lisp
5
star
15

emacs-key-guide

Quickly add keyguides to buffers
Emacs Lisp
5
star
16

robot-framework-layer

Robot framework spacemacs layer using Laguage Server Protocol (LSP)
Emacs Lisp
5
star
17

pdf-contents-extractor

Extract contents as text from a pdf-document (for use in e.g. handyoutliner)
Python
5
star
18

toc-layer

Spacemacs layer for managing pdf and djvu Table of Contents with toc-mode
Emacs Lisp
4
star
19

pdf-layer

Private layer including 'image-roll' support for pdf-tools
Emacs Lisp
2
star
20

emacs-papyrus

Lightweight document viewer for Emacs
Emacs Lisp
2
star
21

emacs-image-roll-early-development

Simplified book rendering engine
Emacs Lisp
1
star
22

emacs-doc-tools

Universal document viewer and editor
Emacs Lisp
1
star
23

notes

Github pages repo for random notes
Emacs Lisp
1
star
24

djvu-layer

Spacemacs layer to view and edit djvu files
Emacs Lisp
1
star
25

pymupdf-epc

PyMuPDF backend for the scrap display engine
Python
1
star
26

info-layer

Spacemacs layer providing sensible naviagtion and documentation for Info buffers
Emacs Lisp
1
star