Aktualisiert: 2022-12-30 Fri 09:45

Zotero-PDFs im Emacs verlinken

Zwei Tools sind mir in meinem Arbeitsalltag besonders wertvoll: meine digitale Bibliothek in Form einer PDF-Sammlung sowie der Emacs Orgmode als Notiz- und Aufgabenverwaltungssystem.

Lange hatte ich meine PDF-Sammlung lediglich auf dem iPad, da ich auf einem Tablet lieber lese als auf einem herkömmlichen Monitor. Und mit Notability kann ich auf dem iPad PDFs schön lesen, annotieren und verschlagworten. Dank Volltextsuche und der Verschlagwortung sind Dokumente sehr gut wiederauffindbar. Allerdings störte mich, dass ich die PDFs nicht aus meinen Notizen heraus verlinken konnte.

Vor einigen Wochen habe ich daher meine Arbeitsweise etwas umgestellt: zwar lese ich Artikel immernoch zumeist auf dem iPad, die recherchierbare Sammlung meiner PDFs führe ich jedoch auf dem Arbeitsplatzrechner. Hierfür verwende ich Zotero.

Leider gibt es keine unmittelbare Integration des Emacs mit Zotero, die mich überzeugt hätte. Und leider ist die Verlinkung auf Zotero-PDFs auch deshalb nicht ganz trivial, da Zotero in einer eigenen Verzeichnisstruktur ablegt, die auch ein Verzeichnis mit einem zufallsgenerierten Namen enthält. Doch durch folgende zwei Schritte habe ich nun eine Möglichkeit, aus dem Emacs auf Zotero-PDFs zu verlinken:

  1. Zotero aktualisiert über die Erweiterung Better BibTeX bei jeder Änderung einen BibTeX-Export der Bibliographie. In dem Feld File enthält der BibTeX-Export die absoluten Pfade zu den PDF-Dateien im Dateisystem.
  2. Im Emacs ermöglicht die Erweiterung ivy-bibtex, auf die aus Zotero exportierte BibTeX-Datei zuzugreifen und einen Link zur entsprechenden PDF-Datei zu generieren.

Im Emacs Orgmode können dann wie folgt Links auf Zotero-PDFs erstellt werden:

Die Einrichtung von Zotero sollte mit den obenstehenden Stichworten keine Probleme bereiten. Zunächst wird die Erweiterung Better BibTeX installiert, dann ein automatischer Export eingerichtet.

Auf der Emacs-Seite ist die Konfiguration etwas umfangreicher:

ivy-bibtex wird wie folgt geladen:

(autoload 'ivy-bibtex "ivy-bibtex" "" t)
(setq ivy-re-builders-alist
      '((ivy-bibtex . ivy--regex-ignore-order)
        (t . ivy--regex-plus)))

Als BibTeX-Datei referenziere ich die von Zotero automatisch exportierte Datei:

(setq bibtex-completion-bibliography
      '("C:/Users/suenkler/Documents/Bibtex/MeineBibliothek.bib"))

Die von Zotero exportierte BibTeX-Datei enthält das Feld File, in dem der absolute Pfad zur PDF-Datei angegeben ist. Dies wird dem Emacs wie folgt mitgeteilt:

(setq bibtex-completion-pdf-field "File")

Die folgende Einstellung sorgt bei mir dafür, dass eine PDF-Datei in Adobe Reader – und nicht im Emacs selbst (DocView mode) – geöffnet wird:

(setq bibtex-completion-pdf-open-function 'org-open-file)

Im Orgmode soll beim Zitieren ein Link zur PDF-Datei angebracht werden. Als Link-Text wird das BibTeX-Kürzel verwendet.

(setq bibtex-completion-format-citation-functions
  '((org-mode      . bibtex-completion-format-citation-org-link-to-PDF)
    (latex-mode    . bibtex-completion-format-citation-cite)
    (markdown-mode . bibtex-completion-format-citation-pandoc-citeproc)
    (default       . bibtex-completion-format-citation-default)))

Wenn statt dessen der Titel der PDF-Datei verwendet werden soll, kann alternativ die Funktion bibtex-completion-format-citation-org-title-link-to-PDF verwendet werden.