Zotero, Neovim e citazioni

Keywords: #neovim #zotero #quarto #citazioni

Il titolo del post è incompleto e dovrebbe comprendere anche Quarto. Per gli approfondimenti su Quarto c’è una buona documentazione da leggere sul sito, ma per gli scopi attuali basti dire che è una sorta di interfaccia a Pandoc. I file vengono scritti in markdown, ma possono contenere anche frammenti di codice che vengono eseguiti. Potrei utilizzare Quarto anche per scrivere i post di questo blog, ma per ora continuo alla vecchia maniera.

Come mi sono attrezzato

Quarto genera i documenti finali supportati da Pandoc, così ho provato a scrivere qualcosa come se dovessi preparare un articolo con citazioni. Descriverò dapprima il flusso di lavoro usando Zotero e poi senza.

Il mio editor di riferimento è Neovim e l’accoppiata con zotcite è vincente e convincente. Dello stesso sviluppatore non posso fare a meno di raccomandare anche Nvim-R, che indovinate un po’ dove viene utile?

I passi da seguire.

Istallazione

require 'paq' {
  'savq/paq-nvim',
  'jalvesaq/zotcite',
  'jalvesaq/Nvim-R',
  ...
}

Configurazione

-- opzioni per zotcite
vim.g['$ZoteroSQLpath'] = "/Users/mimmo/Zotero/zotero.sqlite"
vim.g['zotcite_conceallevel'] = 0 -- con 1 non si vede la stringa interna di Zotero 
vim.g['zotcite_quarto_render'] = 1 -- a ogni salvataggio parte la compilazione

Quella che chiamo stringa interna di Zotero è una sequenza alfanumerica compresa tra @ e # della citazione, per esempio

@VDSC89KZ#Bartram_HallCraggs_1987

Uso

bibliography: temp.bib
collection: ['emorroidi']
filters:
  - "/Users/mimmo/.local/share/nvim/site/pack/paqs/start/zotcite/python3/zotref.py"

Queste ultime righe meritano un commento. Zotcite si collega direttamente al database di Zotero (zotero.sqlite) e quindi ha a disposizione tutte le voci disponibili. Nei file qmd si deve specificare un file bib, anche vuoto, e può essere specificata una collection di Zotero per ridurre il numero di voci in cui ricercare. Il percorso al filtro zotref.py comprende il path completo.

Nella documentazione del plugin è spiegato come utilizzarlo in file md, Rmd con Nvim-R.

Senza Zotero

Per chi non usa Zotero, ma usa Neovim, c’è la possibilità di utilizzare telescope-bibtex.nvim alla cui documentazione rinvio per istallazione e uso.

File tex

Creare, editare e compilare file latex con neovim è relativamente semplice. La combinazione di LSP (language server protocol), Treesitter e eventualmente degli snippet sono la ricetta base. In ambiente latex zotcite non ci viene in aiuto perché l’autore di zotcite afferma:

However, I’m no longer using LaTeX to write academic papers because it’s difficult to convert to other formats. Now, I use LaTeX only to write pandoc templates to convert Markdown into PDF the way I want. So, I’m sorry, but someone else would have to do a push request for this feature to be implemented, and he or she should become responsible for maintaining the code.

In questi frangenti telescope-bibtex.nvim potrebbe essere la soluzione.