I recently received a request to outline my process for managing bibliographies. Here’s a breakdown of my approach.
§Bibliography Generation
I use the Zotero application as a reference manager. The Zotero Firefox connector1 lets me add papers from URLs. Zotero is quite smart about grabbing the metadata from the URL or PDF itself.
The view I have from Zotero
is:
While Zotero is great for storing local copies of papers and generating bibliographies, I don’t find it to be optimal for organisation and note-taking. Instead, I use the Zotero Better Bibtex plugin to export all the items in my library2 into a BibLaTeX file that I reference items in with another application.
§Note-taking
I’m using Obsidian as a front-end into my Git
repository of notes as plaintext markdown files. I have Zotero exporting
its bibliography into this directory as references.bib
,
tracked with version control, which I then interface with using the Obsidian
Citations plugin. This allows searching the bibliography in
Obsidian, referencing items in the bibliography in Obsidian notes, and
creating notes for bibliography items in Obsidian. I find this to be
much more flexible than Zotero’s in-built note-taking functionality:
notes can be version controlled, can link to each other, and can other
notes can reference bibliography items.
To organise references for a project, a note associated with the said project can reference all relevant papers. And speaking of organisation, the plugin Obsidian Kaban provides a convenient way to maintain a reading list.
The graph view from Obsidian, with
bibliography items notes in red, is:
§Conclusion
This approach is quite modular. Zotero could be replaced with another reference manager that can generate a BibLaTeX file, or be omitted entirely and the file manually maintained. Obsidian could also be replaced with another note-taking application that can interface with a BiBLaTeX file, or indeed one that doesn’t if the user doesn’t mind manually maintaining reference keys.
However, with slightly tighter integration we can get some benefits. Using the following Obsidian Citation plugin template:
title: {{title}}
authors: {{authorString}}
year: {{year}}
citekey: {{citekey}}
DOI: {{DOI}}
zoteroSelectURI: [{{zoteroSelectURI}}]({{zoteroSelectURI}})
URL: {{URL}}
---
We have not only a link to the URL (if
it exists), but a clickable link to the local Zotero entry and the
associated PDF with zoteroSelectURI
.
There are still a few outstanding issues with this approach, though:
- There is no way to generate a bibliography with only the items
referenced in a project note, e.g. for creating a
bibliography.bib
for a paper. - There is no support for PDF annotations of papers. I’m currently using the reMarkable 2 to read and annotate papers, which is great while on the go and for saving paper. Currently, I’m using rmfakecloud to sync PDFs to the device and back up annotations. Some integration of annotated PDFs in this workflow could be useful.
- There isn’t a clear path to collaboration. One possibility would be
sharing a Zotero library
out-of-band3 and then separately collaborating on
a shared Obsidian note repository. However, the Zotero library could
become out of sync with the contents of the repository’s bibliography
file. Instead, perhaps managing separate bibliographies would be
appropriate, and just committing sensible changes to the bibliography
file
references.bib
in the note repository. Another problem is that having a separate Obsidian note repository wouldn’t allow linking to notes created here in a personal note repository. To remedy this, using a git subtree of this shared repository in the user’s personal note repository might make sense.
Please get in touch if you have any suggestions for improvement.