box.matto.nl
Enjoying Open Source Software

Reading notes with nov.el-mode and org-noter

Within Emacs, you can read PDF and EPUB files and keep reading notes in a separate but linked org file. With DocView you can also read odt and docx files, with these also you can keep linked reading notes.

I have only used org-noter with EPUB files.

Below, we look at using Emacs to read EPUB files, and create and maintain reading notes.

I use the Vanilla Emacs key bindings (without Doom or Spacemacs).

nov.el and org-noter can both be installed from Melpa.

Read EPUB files with nov.el

nov.el is a wonderful major mode for reading EPUB files in Emacs.

Configuration

With nov.el you open and read EPUB-files in Emacs. Depending on your preferences the text is shown with a variable pitch font, a monospace font or your standard font in Emacs.

I prefer the standard Emacs font, this way everything uses the same presentation.

Nov.el by default fills the text to column 80. I prefer a smaller text width and set this to column 70. This way I can have two windows side-by-side and still have some 'air' around the text.

This is my configuration:

(use-package nov
  :ensure t
  :config
  (setq nov-variable-pitch nil
        nov-text-width 70))

Line numbers are probably not very useful while reading a EPUB. Therefor I have disabled the line numbers in nov.el-mode, and some other modes:

(dolist (mode '(deft-mode-hook
                term-mode-hook
                nov-mode-hook
                shell-mode-hook))
    (add-hook mode (lambda () (display-line-numbers-mode 0))))

Usage

Just open an EPUB file to start reading.

The main navigation is with the standard key bindings, like in info or eww:

  • To scroll, use space and to scroll back use backspace.
  • To move to the next chapter, use n and to the previous, use p, or use the ] and [ keys.

For more key bindings, see the nov.el file, search for nov-mode-map.

Take reading notes with org-noter

org-noter advertises itself as "a synchronized, org-mode document annotator".

Org-noter shows the buffer with your EPUB-file side-by-side with the buffer with the org file containing the notes.

It keeps both buffers synchronized, so when you walk through the EPUB file, the notes for the current chapter are shown, if any. And vice versa, when you walk through your notes, the for the current note corresponding chapter from the EPUB file is shown.

Org-noter can be used with PDF files, with EPUB files, and ODT and docx files.

org-noter creates org PROPERTIES drawers in the org file, to link your notes to the specific EPUB file, and to link the individual notes to the chapters in the EPUB file.

Frames

For each EPUB file or PDF file, org-noter creates a new frame. This new frame contains two windows, the left one containing the buffer with the EPUB or PDF file, and the right one containing the org file for the notes.

These frames makes it possible to open several PDF- and EPUB files at the same time, each together with their own org-noter window.

When you press q in one of the frames, the specific frame is closed again.

In the beginning this was something that I really had to get used to, normally I run Emacs in a single frame. Once used to this however, it turns out to work fine.

Configuration

Default org-noter uses a file called "Notes.org", but I prefer lowercase-only filenames, so I configured it to use "notes.org".

Org-noter needs a default path.

This is my configuration:

(use-package org-noter
  :after org
  :ensure t
  :config
  (setq org-noter-default-notes-file-names '("notes.org")
        org-noter-notes-search-path '("/path-to-the-notes/")))

Usage

Open an EPUB file and start org-noter with M-x org-noter. Org-noter opens the notes.org file as configured. At this point, you can choose to not use the default notes.org file, but a different org file.

Start reading the EPUB file.

  • To create a new note, use i
  • To create a precise note, use M-i
  • To stop taking notes and close the frame, use q
  • To go to the previous page or chapter, use M-p
  • To go to the next page or chapter, use M-n
  • To go to the previous note, use C-M-p
  • To go to the next note, use C-M-n

A "precise note" is a note linked to a specific location which you have marked with your mouse. I haven't used this.

For more key bindings, see the org-noter.el file, search for org-noter-doc-mode-map.

When you walk through the EPUB file, the note referring to the currently opened page is unfolded, the other notes are folded so you only see their headings.

Taking notes

After you have started org-noter from an opened EPUB or PDF file, you have a frame with two windows:

  • The left window contains the EPUB or PDF
  • The right window contains the org file for the reading notes.

At any location you currently are in the EPUB file, Just press i, and org-noter will prompt in the minibuffer for the title text for a new heading.

Just enter the title text followed by Return, org-noter now creates a level two header (** Note title) in the org document in the right window, followed by a folded PROPERTIES drawer, and puts the point right below it. so you can start typing your note right away.

The note you just have entered is linked to the current location in the EPUB file.

It doesn't take long to get used to this workflow, and very soon you take notes while staying "in the flow".

The reading notes are kept in the right order

If you make a note at say, chapter 2, and after that a note at chapter 5, followed by a note at chapter 3. org-noter will put the last note between the notes for chapter 2 and chapter 5, so it keeps your notes in the right order.

In your org file you will see:

  • Title of your note on Chapter 2
  • Title of your note on Chapter 3
  • Title of your note on Chapter 5

This is a great feature!

While reading the EPUB and going through the text, you can stay in the flow, and at any time make a note on any place in the EPUB file, without having to think about the placement.

You will end with a perfectly organized org-file with all your notes, each with a nice org-heading, and all in the right order.

Organization of your reading notes

Default org-noter uses the "notes.org" file, as defined in its configuration.

For each EPUB, PDF and so on, for which you have made notes, there is a level one header (* Title) with the title, followed by the level two headers (** Note-title) with their actual note.

However, if you want the notes for a certain PDF of EPUB in a different org file, you can do that.

If you have notes made with org-noter in a different file, and want to read the notes together with the original PDF or EPUB file the notes relate to, first open the org-file, and start org-noter from there. Org-noter retrieves the right PDF or EPUB, including its file name and path, from the PROPERTIES drawer and open it.

Org files

org-noter creates standard org files. You can read and edit these files like any other org file.

When you want to review your notes, there is no need to open the related EPUB or PDF, just open the org file directly, without org-noter.

At any time while reading the org file, you can start org-noter, which will open the related EPUB or PDF and you can see the original file and your notes side-by-side and synchronized again.

org-noter uses only the org-files, and puts all the necessary information it needs to function, in the PROPERTIES drawers. No extra tools, like a database, are needed. It is all just plain org.

Just give it a try!

Tags:

⇽ Emacs Gnus for following Usenet news, mailing lists and RSS-feeds Zoom window in Emacs ⇾