Detesto instalar programas, aprender dónde están los botoncillos en un programa nuevo y que luego no me convenza y vuelta a empezar. Supongo que es uno de los motivos por los que me encanta Emacs: mismo programa, miles de tareas diferentes.
Últimamente he estado hurgando un poco en sus habilidades como gestor bibliográfico. Como ya os conté, yo suelo usar Jabref que es el programa que aprendí a usar en su momento y con el que me apaño bien para añadir referencias directamente desde la web, pero hay veces en las que manejar texto plano a pelo me parece más conveniente. ¡Y para eso no hay nada que iguale a Emacs! Os cuento un poco.
El modo BibTeX
La forma más básica para trabajar con bibliografías en Emacs es el modo BibTeX: se carga directamente al abrir un archivo con extensión .bib
y nos permite organizar (M-x bibtex-sort-buffer
) y adecentar (C-c C-c ) nuestras referencias.
Para insertar entradas tenemos el comando genérico C-c C-b tras el que podemos usar autocompletado, o el grupo de comandos que empiezan por C-c C-e. Por ejemplo, para crear una entrada de tipo artículo podemos hacer lo siguiente:
- con C-c C-e C-a (o
M-x bibtex-Article
) creamos una plantilla para artículo; - rellenamos los datos necesarios, algunos comienzan por
OPT
porque son opcionales; - al acabar hacemos C-c C-c (o
M-x bibtex-clean-entry
) para quitar los campos opcionales que no hemos rellenado y que nos corrija el formato; - si no le hemos puesto una palabra clave nos sugerirá una y la entrada estará finiquitada y lista para ser citada.
Otro comando interesante es M-x bibtex-fill-entry
(generalmente C-c C-q ) para alinear correctamente cada entrada bibliográfica. Y tampoco está mal establecer la variable bibtex-maintain-sorted-entries
para tener las referencias en orden alfabético.
Como siempre, podemos recurrir a M-x describe-mode
para que Emacs nos explique qué hace el modo. Es un modo chiquitico, pero muy útil para embellecer la lista de referencias ya que ayuda a cambiar de mayúsculas a minúsculas, quitar espacios innecesarios y míticas mierdas que, a las que somos maniáticas, nos ponen muy nerviosas.
Helm-bibtex
Mi modo favorito para gestionar las referencias bibliográficas en Emacs es Helm-bibtex. Lo descubrí intentando abrir los artículos que cito directamente desde Emacs y lo he introducido directamente en mi rutina de escritura científica (que algún día os contaré) junto con AUCTeX y RefTeX.
Es sencillito de usar: una vez instalado, lo llamamos con M-x helm-bibtex
. Nos aparecerá entonces una lista de nuestras referencias bibliográficas en la que podremos elegir la entrada que queramos. Dándole a TAB vemos las acciones posibles, que se ejecutan todas en las teclas F1–F12.
Como sugieren en su ayuda, he enlazado M-x helm-bibtex
a la combinación Menú + b añadiendo esta línea al archivo de configuración:
(global-set-key (kbd "<apps> b") 'helm-bibtex)
con la idea de configurar el resto de las historietas de Helm también en la tecla Menú y pulsar menos botoncicos.
Evidentemente, aunque sea muy listo este modo, tenemos que decirle dónde tenemos el archivo de bibliografía, los artículos en cuestión y las notas al respecto, si las estamos usando. Yo, como tengo un archivo y una carpeta con referencias para cada tema, establezco unas variables locales para el artículo que esté escribiendo
%%% Local Variables: %%% eval:(setq bibtex-completion-bibliography '("refs.bib")) %%% eval:(setq bibtex-completion-library-path '("references/")) %%% End:
pero si tuviera todas las referencias juntas, podría añadir ese par de líneas al archivo de configuración directamente con las rutas correspondientes.
ACTUALIZACIÓN (16/10/2019) Por algún motivo que desconozco (Windows), la ruta relativa dejó de funcionar de un día para otro y tuve que poner la ruta absoluta.
Una cosa que me encanta de este modo es que, por medio de RefTeX, localiza la bibliografía local si se usa helm-bibtex-with-local-bibliography
en lugar de helm-bibtex
. Algo bastante útil sobre todo cuando estamos manejando bibliografías de otras personas.
De esta manera, cuando estoy escribiendo un artículo y quiero citar algo o a alguien, abro mis referencias, busco entre ellas lo que necesito y abro directamente el archivo en el propio Emacs usando pdf-tools. En Windows (sorpresa) esto no me carrula, así que he añadido esto al archivo de configuración
(setq bibtex-completion-pdf-open-function (lambda (fpath) (call-process "acrobat" nil 0 nil fpath)))
para que me abra los pdfs con al Acrobat Reader. Si, por lo que sea, lo que busco no está entre mis referencias, el cacharro me busca en repositorios online. Me falta investigar cómo funcionan las notas, que hasta ahora no he tenido necesidad de ellas.
Org-ref
Si Helm-bibtex os ha gustado y sois fanáticos de Org como la que escribe, org-ref os va a enamorar. Sirve para gestionar las referencias bibliográficas y cruzadas en Org y nos permite añadir letreros ref
, label
y cite
como los de LaTeX.
Lo que más me gusta de este modo es que su propia ayuda es un archivo Org en el que se usan las funcionalidades del modo. Se abre con M-x org-ref-help
y nos cuenta todo lo necesario para jugar con él. Hace cosas molonas como permitir navegar por el documento siguiendo las referencias, mostrar el título y demás de los trabajos citados si ponemos el cursor encima o ser capaz de extraer la información bibliográfica de un pdf (como Jabref). Es muy chulo y lo mejor para entender cómo funciona es abrir el archivo de ayuda y hurgar.
En fin, una cosa más que puedo hacer con Emacs.
Referencias
Managing BibTeX Files with Emacs
Research Literature Management with Emacs
Suena:
Yo también hablé de estos temas en su día, lo puedes mirar en https://notxor.nueva-actitud.org/blog/2019/06/30/gestionar-bibliografia-con-emacs/ te ha faltado mención a «ebib», que es otro paquete.
En lugar de «helm-bibtex» utilizo «ivy-bibtex», porque utilizo «ivy» y no «helm», básicamente, pero veo que es similar.
Me acabo de instalar «org-ref» para probarlo… ya te contaré.
Oh! Le echaré un ojo a tu artículo 😀
Me encanta leer tus artículos y no entender ni jota. Y me digo a mí mismo: «Ho veus, borinot?! Podies haver aprofitat l’estiu per practicar amb Emacs i ara sabries de què està parlant!»
Aix…
Jajaja, borinot, qué hermosa palabra.
¿Qué prisa tienes, Giorgio? Ya entenderás y si no, ¿qué más da?
Pingback: 2019-10-07 Emacs news –