Lecture de l’été : The L^{A}TEX Companion

Ce livre, écrit par Michel Goossens, Frank Mittelbach et Alexander Samarin, et paru chez Addison-Wesley, vient à point au moment où l’utilisation de L^{A}TEX 2ε, la nouvelle version standard de L^{A}TEX, tend à se généraliser (j’espère que vous avez franchi le pas). Mais bien plus qu’un livre à jour sur L^{A}TEX, The L^{A}TEX Companion est le complément idéal du manuel de référence de Leslie Lamport^{1}, et à ce titre je conseille vivement à chaque utilisateur de L^{A}TEX d’avoir le sien et de toujours le garder à portée de main.

En effet, les nombreux packages disponibles sous L^{A}TEX font de cet outil de Pao l’un des plus puissants et des plus complets qui soient, mais on peut vite se perdre dans la foule des options, commandes et extensions disponibles. Voici un livre qui fait le tri, qui présente les principaux packages ou donne au minimum un pointeur sur leur documentation et leurs caractéristiques, qui explique de manière claire et compréhensible par un utilisateur non gourou les remarquables mécanismes de sélection de police du New Font Selection Scheme (NFSS, ou plutôt NFSS2 pour être précis), qui explique les nombreux moyens d’inclure du graphique ou des images dans un texte, etc.

Pour vous mettre en appétit, voici un rapide aperçu du contenu de ce livre. Après une brève introduction aux concepts sous-jacents en L^{A}TEX, un chapitre complet est consacré aux outils de structuration d’un document. Avez-vous déjà coincé sur des exigences particulières d’une conférence ou d’un éditeur quant à la présentation des sections (en italiques avec un point derrière le numéro, par exemple), ou avez-vous cherché comment peaufiner votre table des matières ou faire une table des matières par chapitre, pour ne prendre que quelques exemples? La réponse est dans le livre. Le chapitre 3 donne ensuite tout un tas de pointeurs sur des outils et packages de formattage particuliers : espacements des lettres, justifications, adaptation des structures de listes, verbatim et autres listings, notes de bas de page, de fin ou de marge, texte sur plusieurs colonnes, et j’en passe... Au chapitre 4, vous trouverez beaucoup de conseils pratiques pour peaufiner la mise en page (haut et bas de pages, dimensions, ajustages fins...). Puis vient un chapitre très complet sur les tableaux, où j’ai découvert des possibilités insoupçonnées pour mettre en forme des données sous forme tabulaire (tabbing, tabular, array, tabularx, tabular*, supertabular, longtable...). Le chapitre 6, quant à lui, fait le tour des floats, ces figures et tables qu’on ne retrouve jamais exactement là où on voudrait les mettre. En plus des nouvelles possibilités offertes

                                 par L^{A}TEX 2ε (\suppressfloats,

!h), on y trouve la description de packages tels que afterpage, float, floatfig, wrapfig, subfigure ou endfloat.

Vient ensuite un long chapitre sur la sélection de polices NFSS, qui est probablement l’aspect le plus nouveau dans L^{A}TEX 2ε. Ce chapitre est tellement dense et riche que je ne sais pas trop comment le résumer en quelques mots. On peut n’en extraire que les informations les plus élémentaires, à savoir les nouveaux mécanismes de choix de police dans le texte

                                 (\textbf{texte en gras}, \emph

pour remplacer \em, etc.), mais il y a tellement d’autres choses à y apprendre : comment combiner des déclarations pour avoir du texte en gras et en italiques par exemple, comment changer la famille de polices par défaut qu’on utilise, les différentes polices utilisées en mode mathématique, les packages standards donnant accès à d’autres polices que la (trop) fameuse famille Computer Modern, des précisions sur les codages de polices (si vous écrivez en français, je vous conseille de ne pas oublier d’utiliser le package t1enc pour avoir accès au nouveau codage Cork ), et ainsi de suite.

Le chapitre 8 est intitulé avec raison Higher Mathematics ; il faut savoir que les anciennes fonctionnalités de AMS-L^{A}TEX sontmaintenant quasiment toutes disponibles directement sous L^{A}TEX 2ε, à condition d’utiliser le package amstex. Le nombre et la puissance des constructions ainsi disponibles sont impressionnants. À lire absolument par tous ceux qui doivent inclure plein de maths dans leurs écrits... Après un chapitre plus court consacré principalement au package babel, qui permet d’écrire dans plusieurs langues^{2}, viennent deux chapitres consacrés au graphique. Le premier décrit un certain nombre de manières de réaliser des graphiques portables en L^{A}TEX, c’est-à-dire en n’utilisant que les fonctionnalités de TEX, sans adjonction de Postscript ou autres à coups de \special. On y trouve notamment des environnements tels que picture avec ses extensions fournies par différents packages : bezier pour des courbes du même nom, trees pour tracer des arbres binaires ou ternaires, bar, curves, etc. Le package epic et ses extensions eepic, eclbib, ecltree sont aussi décrits. Le chapitre 11, quant à lui, explique comment inclure du Postscript dans un document L^{A}TEX (epsfig, rotating, changebar, psboxit...), donne un petit guide d’utilisation de dvips et montre comment on peut utiliser des polices Postscript à l’aide de NFSS et du mécanisme de fontes virtuelles. Les trois derniers chapitres du livre concernent des utilitaires autour de L^{A}TEX, à savoir makeindex pour créer un index correct, BibTEX et les styles de bibliographie (avec une petite documentation sur le langage servant à écrire un fichier style.bst), et le système doc permettant d’écrire des packages directement documentés. À noter aussi l’annexe A, qui contient un survol des commandes de L^{A}TEX pour ceux qui souhaitent écrire de nouveaux packages ou classes.

Au total, voilà un livre que vous ne regretterez pas d’avoir acheté, à mon avis. En ce qui me concerne, je le garde précieusement à portée de main, près de mon terminal, et il n’est pas rare que je m’y reporte pour un détail ou un autre.

K. Tombre

1. Qui vient d’ailleurs également de sortir en nouvelle version, à jour pour L^{A}TEX 2ε.

2. Cependant, malgré ses quelques imperfections, je conseille plutôt d’utiliser pour écrire en français le package french de Bernard Gaulle, qui va beaucoup plus loin dans la francisation.