This is essentially a short summary of two plug-ins: Better BibTeX for Zotero and Obsidian Citations. Together, they allow creating notes about papers, using metadata from Zotero and containing links back to the Zotero entries, which makes it easy to jump back and forth between writing/reading notes (and linking them with each other using Obsidian’s hyperlinking system) and reading papers. Both plug-ins offer more functionalities than I present here – I just detail how I currently use them to connect Zotero & Obsidian.

Setting up Zotero

  1. Install Zotero.
  2. Strongly recommended: add the browser extension Zotero Connector to directly import papers from your browser.
  3. Add the Better BibTeX for Zotero plug-in.
  4. Change the citation key to your liking via Preferences > Better BibTex > Citekey format: I picked auth.lower + year + shorttitle(1,0) to get keys like lastname1990word (first content word of title). You can find the documentation for citekey options here.
  5. In Zotero, select all articles > right-click > Better BibTeX > Regenerate keys.
  6. Right-click on the library > Export library > Better BibLaTex > Keep up to date > Save as zotero.bib (or a filename of your choosing). This might take a bit if your library is large. My current setting for automatic library exports is when idle.

If you want to change the citekeys at some later point, repeat steps 4, 5 and 6 and then re-set the path in the Citations settings (see below) to force it to reload the bib file. Note that this will break the “open in Zotero” links for all articles whose keys you have changed, although you can fix those links manually.

To change individual citekeys only, right-click an article entry in Zotero > Better BibTeX > Change BibTeX key > enter a custom key.

Setting up Obsidian

  1. Install Obsidian.
  2. Create a folder called Articles in your Obsidian vault. This is where the automatically generated files for the papers you import will be saved.
  3. Install the Citations plugin (via Settings (lower left corner) > Community plugins > Browse).
  4. Go to Settings > Citations and set:
    • Citation database path: the path to zotero.bib
    • Literature note folder: Articles
    • Literature note title template: {{citekey}}
    • Markdown primary citation template: [{{citekey}}]
    • Markdown secondary citation template: {{citekey}}
    • Literature note content template:
1
2
3
4
5
6
7
8
9
---
tags: []
aliases: ["{{title}}"]
---
# {{title}}
{{authorString}} {{year}}
[Open in Zotero]({{zoteroSelectURI}})

> {{abstract}}

Notes on the content template:

  • Lines 5, 6, 9: Every file for a new paper you import will automatically include the title, authors, year and abstract (skipped if Zotero doesn’t know the relevant information). You can also include more details about the reference in this template, the list of options is documented in the plug-in’s settings, with a brief overview here.
  • Line 7: The hyperlink to the Zotero item (zotero://select/items/@lastname1990word). If you click on this while Zotero is running, the Zotero library overview will jump to the article in question. If this doesn’t work, something is wrong with your citation key (this can happen if you had duplicate entries of a paper in Zotero (with citekeys lastname1990word, lastname1990worda, lastname1990wordb, etc.) and later removed the “wrong” duplicate(s).) You can fix this by manually updating the hyperlink target and/or by manually updating the citekey in Zotero (see above).
  • Line 3 also adds an alias for the filename so you can easily create hyperlinks to this markdown file that reference the article title rather than the citation key (underlyingly, Zotero still uses the name of the markdown file as the reference, but it will offer you autocompletions for aliases as soon as you start typing the title between [[ ]]). The quotation marks in the aliases field are needed for this to work when the title contains commas or colons.

Using this in practice

You can create a new article note with the shortcut CTRL + SHIFT + O (that’s also CTRL for Apple users!) – this will open a search bar listing the articles in zotero.bib that you haven’t imported yet. You can search for the author names, the year and/or the title. Entering the citekey does not work (unless you put whitespace characters between the individual components of the key).

Importing an article creates a new page in the Articles folder named after the citekey, e.g., lastname1990word.md. The full title of the paper becomes both the header of the file and an alias for the file, useful for Obsidian’s hyperlink autocompletions. The generated file contains a hyperlink to the Zotero entry (zotero://select/items/@lastname1990word). For the link to work, Zotero needs to already be running.