jeudi 29 mars 2012

Évolutions d'un outil avec son auteur : l'exemple de TeXnicle

Je réalise régulièrement des documents en utilisant le système TeX/LaTeX, principalement dans le cadre de mes activités de recherche (mais pas seulement). Ce système permet de travailler sur le contenu d'un document en dehors de la page, donc de la présentation (de l'apparence). Cela l'oppose à l'approche Wysiwig (what you see is what you get) qui est mise en œuvre le plus souvent dans les traitements de texte. J'ai commencé à étudier TeX et LaTeX au début des années 90 et je suis toujours admiratif devant l'efficacité avec laquelle il est possible d'obtenir un document d'une qualité typographique exceptionnelle.

Travailler en dehors de la page

Travailler en dehors de la page, c'est, dans ce contexte, éditer le contenu dans un fichier texte (ou plus) qui contient le texte ainsi que des commandes. Par exemple : \section{Introduction} indique l'intitulé d'une section. Pour cela, on peut simplement utiliser un éditeur de texte, puis lancer par exemple pdflatex en ligne de commande afin de produire un fichier au format PDF et enfin afficher ce fichier dans un lecteur adéquat. L'alternative principale consiste à utiliser un éditeur spécialisé prenant en charge l'appel à pdflatex ainsi que l'affichage du fichier résultant. L'outil de ce type que j'utilise sur Mac depuis plus de 10 ans se nomme TeXShop. Son utilisation est devenue particulièrement intéressante en terme de rapidité depuis qu'il intègre (comme d'autres) une fonction d'allers-retours ciblés entre le code et le document (synchronisation entre l'éditeur et le lecteur PDF).

Vers un nouveau choix d'outil

Récemment, j'ai remarqué une actualité assez importante au niveau des éditeurs spécialisés dans le code LaTeX. Et par ailleurs, il se trouve que la navigation au sein de longs fichiers ne m'est pas très agréable avec TeXShop (elle se fait par le biais d'une liste déroulante qui présente les sections sans les hiérarchiser). Je me suis donc lancé dans un comparatif des éditeurs de code LaTeX pour Mac OS X. Les critères les plus importants étaient : les allers-retours ciblés et la navigation par plan hiérarchisé.

TeXnicle

Rapidement, TeXnicle a attiré mon attention. Plus précisément, TeXnicle 2.0 en version bêta. Dans une interface plaisante, j'ai retrouvé la plupart des fonctions que je recherchais. J'ai alors commencé à personnaliser cet éditeur et à compiler (appeler pdflatex) quelques documents pour le tester. Étant donné qu'il s'agissait d'une version bêta, j'ai été assez naturellement confronté à des bugs : la couleur du fond de l'éditeur n'était pas mémorisée et les allers-retours ciblés ne fonctionnaient pas toujours.

Évolutions

C'était ainsi l'occasion de contacter l'auteur : lui montrer mon intérêt pour TeXnicle et lui signaler ces deux bugs. J'ai eu une réponse instantanée et une nouvelle version bêta est sortie juste après, avec cette ligne dans le journal des changements :

+ Bug fix: setting background colour of editor now persists across app restarts.

Nous avons alors échangé de nombreux messages. J'ai reçu de nouvelles versions de TeXnicle, spécialement compilées pour les tests, et j'ai renvoyé les messages d'erreur liés à la synchronisation entre l'éditeur et le lecteur PDF avec la technologie SyncTeX. Quelques jours après, une nouvelle version bêta sortait :
+ Bug fixes to synctex support. In some cases the file paths are absolute; this wasn't handled properly before.

La suite

Je suis donc heureux d'avoir pu contribuer à l'amélioration de TeXnicle et, libéré de ces bugs, je me suis mis à l'utiliser en tant qu'éditeur de code LaTeX principal. J'en suis vraiment très satisfait ! Mais... Il reste une fonction que j'avais avec TeXShop et que je n'ai pas retrouvée : la possibilité de diviser en deux l'éditeur pour faire des allers-retours rapides entre deux parties du code. J'en discute actuellement avec l'auteur de TeXnicle et j'espère bientôt pouvoir en profiter...

Aucun commentaire: