Workflow for working with PDFs

This is mostly related to ORB and org-ref. Described here:


Hi there.

Thank you for writing this. It’s a great article, and the way you present the tools is both informative and concise. I think it’d be great if we could feature it somewhere on OR/ORB.

Also, just a small thing: we’ve recently transferred the repos to an org on GitHub, and the URL at the end of your ‘Notes’ section is no longer the right one. zaeph/org-roam-bibtex now points to my fork, and it should point to org-roam/org-roam-bibtex instead.

1 Like

Thanks zaeph! I just updated the post with the right links. I also realize I forgot to enable comments, so I have done that too :smile:

I’d be super pleased to have it featured on the Readme or somewhere! :blush:

I’ve created a new section on ORB for articles, and I’ve included yours in the list. Thanks again!

1 Like

Nice write-up! Definitely covers some unfamiliar ground for me.

Quick question: what does Zotero provide over org-ref that makes you still use it?

1 Like

Personally, I prefer using Zotero because, at the same time, it seemed to be the best way to create one-time quotes in different citing style. Since I work in both French and English, I needed to be able to switch between citing styles all the time, and having support for .cls files in Zotero made the difference.

I’m not sure if org-ref is able to do that right now, but it feels like implementing .cls support by working in the backend with a translator should be possible.


That’s CSL (Citation Style.Language). I’m actually it’s original creator :wink:

Org-ref does have an csl-inspired elisp alternative, that they confusingly also call CSL.

Though I’ve not tried it yet, there’s also citeproc-org, which gives you a full CSL processor within org.

And the native org citation support (in the cite-new git branch) is built to allow different backends, including CSL-based ones like citeproc-org.

1 Like

Thanks :slight_smile:

About Zotero, well, for one thing, it does still facilitate mobile access; I get to store the pdfs on my pCloud instance, and access them on the go with Zoo on Android (there are other applications too). Also, the Zotero web connecter is fantastic, while browsing I get to save journal articles and even pdfs with a single click. Since I can also set it to use my University proxy, it downloads the full text in the background, and updates the bibliography file, so when I fire up emacs I have the full text and citations ready to go.

That’s much friendlier than using the org-ref interface IMHO, though all external bibliographic managers provide similar functionality (Mendeley or Jabref come to mind).

There’s also a SciHub auto downloader, for papers which are somehow not accessible…

1 Like

Hah, I didn’t know that it was you!

Sorry for the typo, I’ve always confused CSL with the .cls classes for LaTeX.

I can’t wait to see this. It’d definitely be a boon for my workflow.

@zaeph @rgoswami, I should have searched longer before posting about Zotero over here.

Can I ask more specifically, what it looks like when you caputre a reference to zotero and hten take notes on it/

So, e.g., for me, I have a set of tabs open in Firefox. Right now what I’m doing is:

  • click on the Zotero button in the browser to save to bibliography.
  • click on my bookmarklet to capture to roam. THe capture links to the web page only, not to the citekey.
  • open the PDF and start taking notes. For now I am mostly copy-pasting; I miss highlighting in evince or pdf-view – I have a tiny elisp fragment that will extract highlights from a PDF, and ideally that would be part of my capture template I guess.
  • get the filesystem path to the PDF
  • add it as a link to the note

All of this is a bit more labourious than it should be, I think, and I’ wondering if you do something more efficient. Thanks!

1 Like

Hi @titaniumbones. Right now my workflow is:

  • Save to bibliography using the web connector (the Zotero button)
  • If there is a website, I use the bookmarklet
  • Otherwise I open a new note based on the general topic
  • Cite using org-ref (as seen in the video in the post)
  • Keep notes with org-ref (which has an ORB template to keep track of the file and integrate with org-noter).

A key aspect of this is that I use the org-noter/org-roam document to keep notes, instead of highlighting; this workflow does require working with the pdf only in emacs.


thanks @rgoswami that’s helpful and makes sense. I may have to look into org-noter, which up to now I have not tried to use. Would be great if the manual addition of the org-ref citation weren’t necessary, but that maybe asking a lot of this workflow.

1 Like

@titaniumbones - you should definitely check out Zotfile, which makes it very easy to highlight/annotate a pdf and extract the info into a nicely formatted Zotero note with links to the exact location of the original quotes/comments.

Hey Y’all,

Im trying to get this workflow going. I have the packages installed and can view pdfs inside of emacs… Im using pdf-view (not sure if this is the correct package).

When I open a pdf with helm-bibtex, It opens the pdf in a new frame and doesnt open the notes panel beside the pdf. I want the pdf to just open in a new window with my notes right beside it.

Im not sure how to link notes to a specific spot in the pdf. Is there a command Im missing?

Here are my dotfiles if that helps:

@rgoswami I loved your tutorial, thanks for writing it!

Something important to note is that I’m fairly new to emacs so im not sure which package isnt doing what it should be. I think its org-noter that is what opens the pdf in a new frame?

Hey Ian,

so here is my workflow for pdfs.

I start with helm-bibtex to and find the pdf - instead of opening it I choose edit/add notes.

Once a capture buffer opens up for the notes - I invoke org-noter (M-x org-noter) - this opens up the PDF and the note capture buffer on the side in a separate window.

I save the note after I am done and close the window. Go back to the main window - and type C-c C-C to file the note ( the notes I have taken have been copied already to the caputure buffer).

I hope this helps!

1 Like

The text annotations that I take dont show up in my capture buffer. I press C-c C-a t and a mini buffer pops up to take the note… then C-c C-c to capture it but after that, there is only an icon on the pdf… the note doesnt get saved to the file that helm bibtex created.

Any ideas?

Heres what Im talking about

@zaeph helped me out in the slack channel. Cross posting it here:

I didnt understand that adding annotations to the pdf and adding a note via org-noter were different. I was looking for M-x org-noter-insert-note.

@rgoswami, Great post.

I don’t see it here, but do you also somehow also version control your Zotero database?

In my current system, I have one gigantic org file and one gigantic .bib file, both in git – and git has actually saved me more often on the .bib file. I’ve considered using Zotero and then version controlling an exported bib file, but that has problems. If I could “git” Zotero, I’d avoid them.

But it’s difficult to access from emacs no ?

What’s your org-noter config ? For me

 (use-package org-noter
   (setq org-noter-always-create-frame t
         org-noter-separate-notes-from-heading t
         org-noter-default-heading-title "Page $p$"
         org-noter-auto-save-last-location t
         org-noter-notes-search-path '("~/Org/roam")
         org-noter-separate-notes-from-heading t
         org-noter-doc-property-in-notes t
1 Like