bibtex citation picker

From their README

Supercharged Citation Picker

A citation picker for academics that write in markdown. Using Alfred, it inserts citations from a BibTeX File in various formats, e.g. Pandoc, Multi-Markdown or Latex.

Note
Version 9.7.1 is the last version compatible with Alfred 4. All future versions of this workflow will require Alfred 5.

Warning
The initial version 10 had a bug preventing auto-updating. Please manually download 10.0.11 or newer to receive auto-updates.

Feature Overview

  • Inserts Pandoc Citation Syntax ([@citekey]), supporting page numbers & multiple citations ([@citekey, p. 23; @citekey, p. 42]). Can also be configured to use LaTeX, Multi-Markdown, eta templates, [[wikilinks]], or #tags as citation format.
  • app-independent: works system-wide, in every text field of every app.
  • Smart Search: search for citekeys, authors, title, publication, keywords (tags), include/exclude authors in et al, tab-completion, fuzzy-matching, sorting recently used entries to the top, …
  • Feature-rich: paste single-entry bibliographies, open URLs, open or create literature notes, attach PDFs, search for .csl files online, backup the library, …
  • Minimalistic reference manager: add or remove entries the BibTeX library, automatically rename and file PDFs, parse single entries, …
  • Blazingly Fast: considerably quicker than any other citation pickers I know of (~200ms to fully reload a library with ~4000 entries on my machine).
  • Easy Installation: no dependencies, no required plugins, no setup. Just need to enter the path to your .bib file.
  • Obsidian integration: When located in an Obsidian vault, literature notes will automatically be opened/created in Obsidian instead of the default markdown app.

Table of Contents

Getting Started

  1. Download the latest release.
  2. In the workflow settings, set bibtex_library_path to the absolute path of your BibTeX library file (Tutorial: How to set environment variables in Alfred).
  3. Set a hotkey for the citation picker by double-clicking the respective field in the workflow window.

Basic Usage

Press the hotkey in any text field to launch the citation picker.

Search

  • Search for the title, author/editor (last name), year, or collection/journal-title.
  • Prepend @ to a word to search for a citekey, e.g. @Grieser2020.
  • Prepend # to search for keywords (tags), e.g. #sociology.
  • Smart Queries: You can search for any combination of the above. For example, the query 2020 #cognition Grieser will for entries published in 2020, with the tag "cognition", and with "Grieser" as author/editor.
  • Quick Queries: The search is fuzzy and case-insensitive. For year dates, it also matches the last two digits. For example, you can search for fouc 77 to find Foucault 1977. In addition, recently selected entries are placed further at the top of the search results.

Citation Actions

  • ↡: Paste the citekey of the selected citation.
  • βŒ₯ + ↡: Add another citation.
  • ⌘ + ↡: Add page numbers before pasting the selected citekey. Confirm the page number with βŒ₯ + ↡ or ⌘ + ↡ to add another citation afterwards.

URL Actions

  • βŒƒ + ↡: Open the URL in the browser.
  • ⌘ + C: Copy the URL to the clipboard.
  • If the entry has a DOI but not URL, the citation picker will use the DOI-URL (https://doi.org/...) instead.

Icon Meanings

Icon Entry has...
🌐 URL or DOI
πŸ“„ Abstract
🏷 n Keywords
πŸ““ Literature Note
πŸ“• PDF

Changing the Citation Format

Available Formats

You can use the scp and select Change Citation Format to change the format of the citations:

  • Pandoc (default)
  • Multi-Markdown
  • Latex[^5]
  • Wikilink
  • Tag
  • Eta template

Further Format Customization

If you want to use a format that isn't available, you can customize the format yourself by changing the workflow environment variables starting with _format (Tutorial: How to set environment variables in Alfred).

If there is a citation syntax that is commonly used, feel free to make a PR to this file which generates the formats or open a Feature Request.

Advanced Usage

Bibliography Actions

  • ⇧ + ↡: Reveal the entry in BibDesk, VSCode, or Sublime, depending on the setting open_entries_in.
  • ⌘βŒ₯ + ↡: Paste the full bibliographic entry in the APA 6th Style (requires Pandoc).
  • ⌘ + L: Preview the (unabridged) title, abstract, and list of keywords in Large Type.
  • ⌘fn + ↡: Delete the entry from the BibTeX library.
    • ⚠️ This feature is untested with BiBTeX files created with apps other than BibDesk and Bookends (or have been formatted with bibtex-tidy). Create an issue for problems with other apps.
  • Note that removing entries does not work with the BetterBibTeX Zotero Plugin since the plugin only does a one-way-sync (Zotero ➞ BibTeX file), meaning any changes to the .bib file will be overridden.

Adding entries to the BibTeX library

  • Use the Alfred Keyword +, followed by a DOI, ISBN, or URL that contains a DOI.
  • You can parse & add a bibliographic entry by selecting the text and pressing the respective hotkey (requires anystyle, installed via sudo gem install anystyle-cli).
  • Leave the input after the + empty to create a new, empty BibTeX entry.
  • The new entry will be added to your library, with a properly formatted, unique citekey. Afterwards the entry will be opened in the app specified in open_entries_in.
  • Note that adding entries does not work with the BetterBibTeX Zotero Plugin since the plugin only does a one-way-sync (Zotero ➞ BibTeX file), meaning any changes to the .bib file will be overridden.

Literature Note Actions

  • The citation picker looks in the folder specified in the workflow settings for files that are exactly named like the citekey (without @, but with .md extension). Entries that have such a literature note will be indicated by a πŸ““.
  • Meh + ↡[^4]: Open the literature note.
    • If the file is in an Obsidian Vault, it will be opened directly in Obsidian instead of the default text editor.
    • If there is no literature note, a new one will be created.
  • ⌘ + Y: Preview the literature note with QuickLook (requires QLmarkdown or Peek[^1]).
  • Add * to any search query to filter only for entries with literature notes, e.g. * grieser will search for entries matching "grieser" which also have a literature notes. Can be combined with other queries (see: smart queries).

PDFs Management Actions

The following features require that all your PDFs are located in the folder specified in your workflow settings.

  • fn + ↡: Auto-file and auto-rename the currently selected PDF. Inside your selected pdf folder, uses the template path: {first_letter_of_citekey}/{citekey-author-part}/{citekey}_{shortened_title}.pdf
  • The πŸ“• indicates that the entry already has an associated PDF at that location.
  • Hyper + ↡[^4]: If the entry has an associated PDF file, open it with the default PDF reader.
  • ℹ️ Add pdf to any search query to filter only for entries with PDFs that have been added by the auto-file feature. pdf grieser, for example, will display only entries from the author "Grieser" with PDFs. Can be combined with other queries (see: smart queries).

Auxiliary Features

Triggered via the Alfred Keyword scp (for Supercharged Citation Picker).

  • CSL Search: Search for a citation style, which will be downloaded to the location specified in your workflow settings (default: ~/.pandoc/csl/).
  • Bibliography Stats: Brief statistical summary of the library. (Currently only total number of references. If you have useful suggestion, feel free to open a Feature Request.)
  • Cheatsheet: Citation Picker Actions: Open a cheat sheet of the available actions of the Supercharged Citation Picker.
  • Force Buffer Reload: Force a reload of the citation picker. Mostly for debugging purposes.

About the Developer

In my day job, I am a sociologist studying the social mechanisms underlying the digital economy. For my PhD project, I investigate the governance of the app economy and how software ecosystems manage the tension between innovation and compatibility. If you are interested in this subject, feel free to get in touch!

Profiles

Donate

Buy Me a Coffee at ko-fi.com

Credits

Icons created by Freepik - Flaticon

[^1]: QLmarkdown and Peek both enable previewing of Markdown documents. Peek works with a wide range of other file types than Markdown, but costs around 5€. QLMarkdown is free, but only works for Markdown and requires some minor small setup. To enable the proper display of YAML headers, you need to enable the respective setting in the Advanced Options of QLMarkdown or Peek.

[^4]: Hyper is an artificial "fifth" modifier key equivalent to ⌘βŒ₯βŒƒβ‡§, and can be created using apps like Karabiner Elements, BetterTouchTool, or Hyperkey. Meh is an artificial "fifth" modifier key equivalent to βŒ₯βŒƒβ‡§.

[^5]: Latex right now does not support page numbers. If you can code, feel free to make a PR implementing LaTeX citations with page numbers.