Gestionar bibliografía con Emacs
Llevo tiempo utilizando documentos en formato texto para todo. La
documentación, como ya he contado muchas veces en este blog, la
escribo utilizando LaTeX y como sabéis, la bibliografía de esos
documentos se guarda normalmente en ficheros .bib
. Hasta ahora
utilizaba la herramienta JabRef para gestionar esas bases de datos
y todo funcionaba perfectamente: es una gran aplicación. Pero de un
tiempo a esta parte, las versiones que van sacando de JabRef me han
dejado de funcionar. No tengo muy claro por qué, lo estoy achacando a
la versión de OpenJDK, --y todo su entorno--, que instala
Tumbleweed.
El otro día, escribiendo un documento, me di cuenta que JabRef no me
funcionaba. Afortunadamente, cuando abrí el fichero .bib
con Emacs
se me abrió un modo que se llama BibTex
. Colorea sintaxis y agrega
una gran lista de funciones para gestionar las entradas en la base de
datos. Además, era una lista pequeña, sólo había cinco documentos que
citar y se podía gestionar a mano de forma fácil.
Probé varias veces a recuperar JabRef, lanzándolo desde línea de comandos, descargando varias versiones para al final llegar a la conclusión de que no me funcionaba y que haría bien en buscar una alternativa y, puesto que, últimamente mis herramientas tienen a orbitar alrededor de Emacs miré alternativas con mi editor favorito.
Como ya dicho podemos modificar el fichero de texto, algo que puede
ser útil para bibliografías pequeñas pero que puede ser un infierno
para las grandes, sobre todo buscando una entrada concreta. Tenía que
encontrar algo mejor y rebuscando un poco me topé con el paquete
ebib
y decidí probarlo. Escribo este artículo desde el
descubrimiento, es decir: lo estoy probando para ver si me es útil y
no conozco al 100% la herramienta. A diferencia de BibTex
, ebib
no
es un modo, ni mayor ni menor, sino una aplicación que corre teniendo
emacs como entorno... pero empecemos por el principio.
Instalación y primeros pasos
ebib
se puede instalar desde el gestor de paquetes de emacs y no
tiene mayor misterio. En el manual de la herramienta recomienda
definir una combinación de teclas para acceder directamente a la
herramienta (C-c e
). Yo no he definido ninguna combinación de teclas
y llamo a la aplicación desde la general M-x
.
Para salir de la aplicación se pueden utilizar varias teclas según lo que queramos hacer. Lo primero que sorprende es que desaparecen las ventanas que tenemos abiertas y aparecen sólo dos. La de arriba es una lista para las entradas de la(s) base(s) de datos y la de abajo son los detalles de cada una de esas entradas.
Si queremos volver a los buffers con los que estábamos trabajando
sin cerrar ebib
, podemos pulsar z
y si realmente queremos salir
utilizaremos q
.
Abrir un fichero .bib
Una vez lanzado el programa con la combinación M-x ebib
, podemos
abrir cualquier fichero .bib
pulsando la tecla o
. Una de las cosas
que me ha gustado es que se pueden abrir simultáneamente varios
ficheros y saltar de una base de datos a otra pulsando las teclas del
1 al 9. Además, las teclas de movimiento dentro del fichero se
corresponde con las habituales en emacs p
(o C-p
) para ir al
registro anterior y n
(o C-n
) para ir al siguiente, también se
pueden utilizar las teclas de cursor. Para cerrar una base de datos
basta con pulsar c
para hacerlo, aunque sin cerrar ebib
.
Si hemos pulsado o
y le damos un nombre de fichero que no existe,
ebib
creará una nueva base de datos.
Trabajar con las referencias
Las operaciones más habituales son las de crear, editar y borrar
entradas, como en todas las bases de datos. Para añadir una referencia
en la ventana de ebib
pulsaremos la tecla a
. Esto creará una nueva
entrada y nos pasará el control a la ventana de campos, donde podemos
modificar cada uno de ellos pulsando enter
sobre él. Cuando
terminemos la edición, pulsaremos q
y volveremos a la lista de
entradas. Si ya tenemos la entrada y lo que queremos es modificarla,
pulsaremos la tecla e
.
Podemos también borrar una entrada pulsando k
, este comando pasará
dicha entrada al anillo de borrado: podemos recuperar lo borrado
pulsando y
. Esto es bastante útil cuando estamos trabajando con
varios ficheros, porque podemos recuperar entradas entre distintas
bases de datos. Aunque sería más recomendable que se utilizara el
comando M-x ebib-copy-entry
.
Si queremos insertar una cita en un buffer en el que estemos
trabajando, podemos buscar la referencia que necesitamos pulsando la
tecla /
y después la cadena de búsqueda. Una vez encontrada la
referencia que buscamos pulsaremos i
, nos preguntará el buffer y
siguiendo las instrucciones ebib
insertará la referencia.
Guardar la base de datos
Pulsando la tecla s
guardará la base de datos que se haya
modificado, aunque también funciona la combinación habitual de emacs
C-x C-s
. Si utilizamos la tecla w
, como su equivalente de emacs
C-x C-w
nos permitirá guardar el fichero con cualquier otro nombre.
Filtros
Si estamos trabajando con una base de datos muy grande y queremos
reducir el número de entradas a algo más manejable, pero sin borrar
nada, podemos establecer filtros pulsando la tecla &
. Por ejemplo,
si queremos que muestre sólo las entradas de un determinado autor,
haríamos las siguientes acciones:
- Pulsamos
&
- Seleccionamos
author
en la lista (por defecto, filtra por el tipo de documento) - Escribimos el autor que nos interesa y pulsamos
enter
.
En realidad, el carácter &
añade una condición and
al filtro
establecido por defecto, que normalmente está vacío. Además, en la
barra de estado de la base de datos nos indicará qué filtro tiene
activado. Para acceder las funciones de filtro utilizaremos la tecla
F
. Por ejemplo, para cancelar el filtro utilizaremos la combinación
F c
o para guardar el filtro para posteriores usos, podemos utilizar
la combinación F s
. El fichero donde se guardan esos filtros, según
la documentación es ~/.emacs.d/ebib-filters
.
Impresión de la base de datos
Una funcionalidad que encontré de casualidad es la capacidad de
imprimir el fichero .bib
. Bueno, en realidad no lo imprime, lo que
hace ebib
es generar un fichero LaTeX que luego se puede
imprimir. Tiene dos modos que se pueden acceder desde el menú de
emacs o lanzando los comandos ebib-print-*
.
Conclusión
No he utilizado la herramienta en profundidad por eso tampoco voy a
pronunciarme sobre ebib
de una forma rotunda. Resulta un poco
decepcionante después de haber utilizado durante años JabRef
, con
cientos de funciones y facilidades, tener sólo unas pocas en la
herramienta. A favor cuenta la integración con nuestro editor
favorito. Parece una aplicación bastante potente, a pesar de su
sencillez, pero echo de menos JabRef
, veremos el uso que consigo
darle a ebib
.
Comentarios