Zotero et Emacs
L’écriture dans Emacs
J’ai écrit mon master presque intégralement dans Emacs1 avec org-mode2. J’ai principalement utilisé les fonctions suivantes :
- la structuration hiérarchique du texte par entêtes,
- l’utilisation de marqueurs d’état [À FAIRE], [FAIT], etc.,
- la possibilité de déplacer facilement les paragraphes dans une structure,
- la facilité de modifier le niveau hiérarchique d’un entête et de ses contenus,
- ainsi que la possibilité de coder des fonctions en Lisp.
La fonction qui m’a été de la plus grande utilité a été le surlignage de parties marquées du texte3. Cette fonction m’a surtout servi lors des étapes de relectures des parties écrites, pour indiquer visuellement les éléments qui manquaient ou qui gagneraient à être développés.
Travailler en format texte pur permet également une grande liberté : il est possible d’écrire dans d’autres éditeurs de texte, le document est léger, facile à sauvegarder, peu propice à une corruption, etc.
Une fois l’essentiel fait dans Emacs, j’ai exporté l’ensemble en format LibreOffice4 à partir duquel j’ai finalisé le mémoire, et je l’ai rendu à partir d’une sortie PDF.
C’est au moment du travail dans LibreOffice que j’ai (mal) utilisé Zotero5. Au lieu d’avoir travaillé en amont, dans Emacs, pour insérer mes références, je copiais manuellement les éléments de bibliographie dont j’avais besoin dans mon document LibreOffice.
L’absence d’utilisation systématique de Zotero dans la rédaction du document fait que je n’ai absolument pas pu bénéficier de l’automatisation de la gestion de la bibliographie permise par Zotero à partir des notes que j’y avais écrites dans Emacs : certaines références ont donc manqué et d’autres étaient mal rédigées. Mais le plus gros problème a résidé dans le fait que je n’ai absolument pas utilisé les fonctions de citation ou d’export de notes offertes par Zotero qui auraient considérablement enrichi mon écriture.
Bref, si l’écriture dans Emacs n’est pas remise en question, il va me falloir trouver une méthode de travail qui me permette d’associer Zotero à l’écriture dans Emacs, pour mieux y intégrer ma prise de note.
L’écriture dans Zotero
D’un autre côté, l’écriture dans Zotero est longtemps restée pour moi un mystère. Je pouvais surligner ou annoter des lectures (PDF, etc.), mais sans trop comprendre comment utiliser ces éléments. Même si je sentais bien qu’il y avait un potentiel pour utiliser cet espace comme lieu d’écriture sans pour autant abandonner Emacs.
Par ailleurs, je me suis souvenu que ma directrice m’avait un jour dit enregistrer toutes ses idées dans Zotero en créant des documents « vides » associés à des fichiers de traitement de texte dans lesquels elle posait ses réflexions. Je trouvais l’utilisation de fichiers de traitement de texte un peu lourd pour gérer ces éléments, et leur format étant incompatible avec une écriture dans Emacs il me fallait trouver une autre solution.
Trois formations à Zotero dans divers Urfist plus tard (débutant, intermédiaire, avancé) m’ont fait comprendre qu’il me suffisait d’utiliser la fonction d’ajout de notes indépendantes6 pour reproduire un système équivalent au sien et qui ne nécessite pas le passage par un logiciel tiers.
Les notes de Zotero acceptent la syntaxe Markdown et sont enregistrées automatiquement. Elles peuvent être reliées entre elles, être associées à des balises Zotero et il est possible de les exporter vers plusieurs formats (Markdown/html/RDF). Les notes « normales » sont associées à un document, mais les notes indépendantes sont seulement associées à la librairie où elles sont enregistrées. Elles peuvent donc être considérées comme des fichiers autonomes, même si elles ne sont pas des fichiers mais simplement des données enregistrées dans la base de données de Zotero.
La capacité d’exporter ces notes est intéressante, mais l’absence d’une fonction de synchronisation entre les notes dans Zotero et celles hors de Zotero rend plus difficile l’intégration avec Emacs.
C’est là qu’intervient Better Notes7. Better Notes est une extension de Zotero qui permet, entre autres choses, la synchronisation des notes exportées entre Zotero et le lieu où elles ont été exportées. Cela signifie qu’il me devient possible de travailler dans Zotero et également dans Emacs sur une note donnée. Better Notes permet également d’insérer dans les notes des pointeurs dynamiques vers des références bibliographiques présentes dans la bibliothèque.
Librairies partagées et synchronisation double
Avec la fonction d’export et de synchronisation des notes, il m’est possible d’écrire dans Emacs, qui pour le moment est mon environnement préféré d’écriture, et de reprendre ces modifications dans Zotero une fois la synchronisation effectuée8.
La synchronisation n’existe qu’au niveau local, sur mon ordinateur. Cependant, en utilisant une librairie de groupe partagée sur le serveur de Zotero, je peux utiliser ces notes également sur ma tablette et même sur mon téléphone.
Pouvoir écrire hors de Zotero permet d’avoir accès à un environnement d’écriture auquel on est habitué, en plus de réduire les risques de pertes de données. Les modifications effectuées dans Emacs sont reprises dans la version de la note qui est sur l’ordinateur, et la fonction de synchronisation de la librairie partagée me permet de modifier la note également sur ma tablette quand je suis loin de l’ordinateur. Cependant, là aussi il est nécessaire d’être vigilant pour s’assurer que toutes ces synchronisations soient synchrones…
Un espace de travail limité à l’essentiel
Pour me concentrer sur un ensemble limité de textes à lire et à travailler, j’ai créé une librairie partagée : « Espace de travail ». Cette librairie contient les documents en cours de lecture, et mes notes de travail.
Cet espace de travail ne contient que quelques documents à lire et à annoter, ainsi que la totalité des notes indépendantes que j’écris. L’espace est amené à évoluer puisque je retirerai les documents traités pour les remplacer par de nouveaux documents9.
La synchronisation des données de la librairie partagée sur mes trois appareils (ordinateur, tablette, téléphone) produit un environnement équivalent à l’application Notes.app d’Apple10, ce qui me permet de ne plus l’utiliser.
Ce travail sur les notes me rappelle le document que j’avais écrit après mon master pour aider les personnes qui ne savaient pas comment se mettre à l’écriture en M1. J’en profite pour le publier ici aujourd’hui.
Limites et perspectives
En plus du problème de synchronisation entre librairies, une des limites du système est liée au format d’export. Markdown, ça n’est pas org-mode. Si l’export était en org-mode, j’aurais une encore plus grande flexibilité puisque je pourrais vraiment intégrer ces fichiers dans mon écriture Emacs.
Par exemple, org-mode est nécessaire pour gérer les marqueurs d’état ou pour publier ces notes vers mon site avec org-publish
11. Il semble cependant possible de convertir simplement un document Markdown en org-mode12, mais cela n’a pas grande utilité puisque Zotero ne comprend que la syntaxe Markdown et réinterprète avec cette syntaxe tout ce qui lui parvient.
En ce qui concerne un mode de travail qui intègre Zotero et Emacs, il y a quantité de sites à explorer et j’ai le sentiment que je ne suis pas loin du but :
- Zotero and Org-roam academic research workflow (2023)
- Integrate Zotero pdf notes with org roam (2023)
- A research workflow with Zotero and Org mode (2022)
- A workflow for reading papers and managing notes in emacs (2022)
- Reference management with Emacs, BibTeX, and Zotero (2015)
- zotero workflow into emacs? (2013)
Conclusion
En l’état, la capacité à synchroniser les notes Zotero entre plusieurs appareils et celle de BetterNotes à synchroniser ces notes au niveau local permet de nouveaux modes de travail plus flexibles et fiables que ce que j’avais adopté en master. L’intégration de la gestion de la bibliographie dans Zotero à l’écriture dans Emacs est encore à explorer, mais d’autres l’on fait avant moi.
(Publié le 8 juin 2025)
Notes de bas de page:
La documentation relative à la fonction de synchronisation de BetterNotes n’était pas très claire, et j’avais l’impression que le système ne fonctionnait pas. Une vérification sur le site de développement me montra qu’il ne s’agissait que de réglage de paramètres. J’ai donc proposé une modification de la documentation pour que de futurs utilisateur·ices n’aient pas à s’inquiéter. https://github.com/windingwind/zotero-better-notes/pull/1396
Il n’existe pas de fonction de synchronisation entre deux librairies. Il est donc nécessaire de faire attention à ne pas modifier la même référence dans deux librairies différentes. Une fois terminé le travail sur la référence il est possible de la copier intégralement (avec les notes attachées et les annotations) dans une autre librairie, à condition que celle-ci ne contienne pas la même référence.