Zotero
Zotero is an open-source reference manager that styles itself as “your personal research assistant.”
If you are using another reference manager you should switch to Zotero, full stop. It’s easy to migrate your data from other reference management tools to Zotero, and will improve your workflow.
Installing Zotero
Install Zotero from the Terminal with Homebrew:
brew install --cask zotero
Installing Zotero Connector
Zotero Connector is a browser plugin that allows you to save web content (blogs, articles, etc.) to Zotero with a single click.
The Zotero Connector for Safari is bundled with Zotero. You can enable it from the Extensions pane of the Safari preferences.
Installing Zotero extensions
These are the core extensions I use with Zotero. See their documentation for installation instructions:
I also use:
You can find more extensions on the Zotero website.
Configuring Zotero preferences
As far as I’m aware, it isn’t possible to configure preferences in Zotero with dotfiles, so this has to be done manually.
The main preference I need to configure is the citation key formula for Better BibTeX:
authEtAl.lower+"_"+shorttitle(3,3)+"_"+year
Which means:
- Last name of the authors (with et al. for references with three or more authors)
- An underscore
- First three words of the reference’s title in camel case
- Another underscore
- Year of publication (if any)
I use this over a authEtAl.lower+"_"+year
citation key formula because the titles are a helpful reminder of what I’m citing. However, this citation key formula can make the markdown of a document hard to read, particularly when there are multiple citations in the same sentence or paragraph.
Zotero for iOS
Zotero for iOS is an open source application for working with your Zotero library on an iPad or iPhone. Install it from the App Store.
Configuring Zotero
Things to do after installing Zotero and extensions.
Cloud syncing
Use Zotero’s sync functionality to sync your Zotero library across devices. Zotero syncing has two parts:
- Data syncing
- File syncing
Data syncing syncs library items, but doesn’t sync attached files (PDFs, images, etc.). Set up data syncing in the Zotero app by signing into your account.
File syncing syncs attached files of library items. Files can be synced using either:
WebDAV is a standard protocol for transferring files over the web and can be used to sync files in your personal library. There are a number of WebDAV storage providers known to work with Zotero.
Zotero Storage is the file sync option recommended by Zotero. Zotero Storage includes all the features of WebDAV syncing, plus file syncing in group libraries, web-based access to file attachments, easier setup, and guaranteed compatibility.
Turn off automatic tagging
Go to General > Miscellaneous and turn off “Automatically tag items with keywords and subject headings”. I personally found this feature more annoying than helpful, since different sources would use different tags for the same thing, resulting in messy metadata. Instead I manually add tags to items in my library using the following scheme:
- Subject: name (focus area or field)
- Topic: name (topic keywords)
- Data: source (open data set name)
- Population: characteristic (age group, sex, gender, species, location, etc.)
- Variable: name (variable measured in the study)
- Method: name (experimental, observational, literature review, etc.)
- Analysis: method (statistical method used for analysis)
- Source: name (for where or how I discovered the item)
- Status: reading status (unread, read partially, or read)
I like this approach because it makes it easy to drill down a library collection to the items I need or to rediscover an item I forget the name of. It also reduces some of the cognitive overhead of working with tags by taking advantage of Zotero’s autocomplete when adding tags manually, and alphabetic tag sorting.
Using Zotero for citations in Quarto and R Markdown documents
Quarto and R Markdown can use Pandoc to automatically generate formatted citations and bibliography entries in a number of citation styles, specified with a CSL
file. The open source Citation Style Language (CSL) project maintains a crowdsourced GitHub repository with over 10,000 free CSL
citation styles.
There are two options for generating a bibliography file from Zotero personal or group libraries in Quarto and R Markdown:
- RStudio’s native Zotero integration (visual editor only)
- The rbbt R package (works anywhere)
I prefer rbbt because allows you to generate a CSL JSON bibliography file dynamically from a Quarto or R Markdown document, rather than using a persistent file. To insert citations in a document interactively I use rbbt’s “Insert Zotero Citation” RStudio addin from a custom Alt-Command-R keyboard shortcut.