Insertar referencias bibliográficas en R Markdown desde Zotero con citr

Para los que usamos regularmente RStudio y R Markdown en ambientes científicos nos es imprescindible incorporar referencias bibliográficas en nuestros textos. En mi caso, mi gestor de referencias bibliográficas es Zotero, uno de los que yo considero mejores gestores del mundo y que, además, también es software libre. Después de buscar un rato por internet, descubrí que sí que es posible unir ambos mundos. En esta entrada os voy a enseñar cómo insertar referencias bibliográficas en R Markdown a partir de Zotero y utilizando un paquete de R que se llama citr.

Markdown es un lenguaje sobre el que vamos a hablar extensamente en este blog, aunque alguna pincelada ya hemos hecho. Su versatilidad, prácticamente, no conoce límites. Esto queda expuesto en esta entrada sobre cómo insertar referencias bibliográficas en R Markdown usando el gestor bibliográfico Zotero. De hecho, existe un fabuloso curso sobre R Markdown que no os deberíais perder.

Instalación del paquete citr en R

Vamos a empezar por R. Lo que tenemos que hacer primero es instalar el paquete citr. Podéis leer la documentación completa en su página oficial. Como está directamente en CRAN, con ejecutar la función install.packages() es más que suficiente para instalarlo.

install.packages("citr", dependencies = TRUE)
library(citr)

Una vez se ha instalado citr, nos aparece un menú desplegable en la ventana superior de RStudio llamado Addins.

Insertar referencias bibliográficas en R Markdown

Esta extensión del gestor bibliográfico Zotero, llamada Zotero Better Bibtex, añade a cada elemento de nuestra bibliografía un código único identificativo. Es decir, cada artículo, conferencia, libro, etc de nuestra bibliografía estará identificado por una clave única y exclusiva de ese elemento. Este código será posteriormente utilizado para identificarlo dentro de R Markdown cuando usemos citr. Normalmente, esta clave, conocida como citekey en inglés, se compone automáticamente utilizando la información de cada elemento, como el nombre de los autores, palabras del título, año, etc.

La instalación de Zotero Better Bibxtex requiere unos pocos pasos sencillos si los hacemos en orden:

  • Nos descargamos la última versión de la extensión en formato .xpi
  • Vamos en Zotero a Tools > Add-ons > Extensions y clicamos en la rueda superior derecha seleccionando Install Add-on From File.... Ahí buscamos nuestro archivo .xpi y lo instalamos.

Estamos llegando al punto clave, una vez tenemos tanto citr y Better Bibtex instalados, es cuando conectaremos los dos mundos para crear otro mejor.

Exportamos nuestras referencias de Zotero

Comenzamos en Zotero. Seleccionamos todas las referencias que tengamos ahí, o las que estemos interesados en referenciar, y las exportamos a un archivo .bib. Para ello, damos al botón derecho del ratón sobre las referencias seleccionadas y clicamos sobre Export items.

En la ventana que nos aparece, tenemos que asegurarnos que el formato sea Better BibTex y tener marcada la opción Keep updated. De este modo, se exportarán nuestras referencias teniendo en cuenta el Citekey y si hacemos algún cambio en las mismas dentro de Zotero también se actualizará el archivo .bib que generemos.

Vamos a llamar a este archivo references.bib, por ejemplo. Aunque vosotros podéis llamarle como queráis siempre y cuando hagáis referencia a ese nombre en los apartados siguientes.

Modificar la cabecera YAML de R Markdown

Vamos, por fin, a insertar referencias bibliográficas en R Markdown. Nos situamos ahora en RStudio, con nuestro archivo de R Markdown abierto. Para poder indicarle a nuestro archivo que tenga en cuenta las referencias (nuestro archivo references.bib), tenemos que editar la cabecera YAML de R Markdown. Os recuerdo que la cabecera YAML son las primeras líneas de cualquier archivo R Markdown situadas al principio. Se sitúan siempre entre dos líneas con tres acentos invertidos cada una.

Tenemos que añadir bibliography: references.bib dentro del YAML, tal y como vemos a continuación:

---
title: "Insertar referencias bibliográficas en R Markdown con `citr`"
author: "Mario Modesto-Mata"
date: "4 June 2018"
output: html_document
bibliography: references.bib
---

Es interesante destacar que las referencias bibliográficas, una vez citadas en el texto, aparecen automáticamente al final.

Insertar referencias bibliográficas en R Markdown

Hemos llegado al final. Si lo hemos hecho todo correctamente vamos a añadir nuestra primera referencia bibliográfica en nuestro archivo R Markdown proveniente de Zotero.

A continuación, ya podemos introducir la referencias. Vamos a Addins -> Insert citations. Esperamos unos segundos a que el paquete citr localice nuestra base de datos con las referencias bibliográficas y ya podemos buscar nuestras referencias.

BONUS: Cambiar el estilo de cita

Como me he venido arriba explicando la fusión de Zotero y RStudio para incluir referencias, os quiero regalar un BONUS. Se trata de cambiar el estilo de citas según la revista en la que queramos publicar.

De modo predeterminado, la cita se introduce siguiendo el estilo de Chicago Manual Style. Si queremos añadir otro estilo, tenemos que descargarnos el estilo en formato .csl del repositorio de estilos de Zotero. Damos botón derecho sobre el estilo que nos interese y guardamos el enlace como .csl en la carpeta donde tenemos guardado el archivo R Markdown y las referencias. Si nos descargamos el estilo de la revista nature, tendremos que añadir una línea extra a la cabecera YAML de R Markdown, como se ve a continuación:

---
title: "Insertar referencias bibliográficas en R Markdown con <code>citr</code>"
author: "Mario Modesto-Mata"
date: "4 June 2018"
output: html_document
bibliography: references.bib
csl: nature.csl
--- 

5 comentarios en “Insertar referencias bibliográficas en R Markdown desde Zotero con citr

  1. Muy bueno tu blog. Gracias.
    Esto que explicaste en este último post hace un tiempito que lo vengo haciendo. Igualmente, te comento una dificultad con la que me encuentro, a ver si también la tenés y si la tenés resuelta.

    Si uso `citr` y a la vez tengo Zotero abierto, la búsqueda me la hace en toda la base de Zotero, no en el archivo que le haya dicho (references.bib, en tu caso). Eso es muy cómodo a la hora de escribir (vengo de trabajar con LyX+LyZ), pero es un desastre a la hora de generar el archivo references.bib en cuestión.

    ¿Conocés alguna manera de automatizar el proceso? o ¿tenés algún flujo de trabajo con el tema resuelto?

      • Será eso de la magia. No sabré invocar algún archivo o alguna configuracion.
        Trabajo con Neon sobre 16.04 y Kubuntu 18.04. En los dos me carga toda la base de Zotero, si lo tengo abierto.
        Por otro lado, en uno me exporta automáticamente lo que le sumo a la libreria (en 18.04) y en el otro no, tengo que forzarlo.

        Y, cambiando de tema. Qué le tenés puesto a Zotero para que quede así. Probé con las extensiones de ahora de Firefox y no me las acepta

        • Hola Juan. No he entendido muy bien si al final te ha funcionado o no la conexión Zotero-RStudio. Respecto a la apariencia de Zotero, esto no es del propio Zotero. Yo trabajo con Linux Mint y tengo configurada la apariencia del escritorio en modo oscuro, por lo que todas mis aplicaciones se ven oscuras. Así se me cansan menos los ojos cuando estoy horas delante del ordenador.

  2. Hola,
    Puede que no haya entendido cuál es el flujo. El problema no es que RStudio no se conecte a Zotero. Lo que yo vivo como problema es que sí se conecta y lee toda la base de datos de Zotero y no los datos del archivo `.bib` que menciono en la cabecera YAML.

    Pero seguro que nadie se murió por eso.

    Buena la de cambiar toda la apariencia. Yo, voy aplicación por aplicación; por eso quería hacerlo solo con Zotero. Pero es cuestión de planteárselo también.

Deja un comentario

*