Depuis la rédaction de mon Cours de trigonométrie, et plus encore depuis le début de mon stage, je suis devenu un fervent adepte de LaTeX, langage de traitement de texte créé par Leslie Lamport en 1982.

Son utilisation rebute, et pour cause : on est à l’opposé des solutions logicielles grand public « What You See Is What You Get » (WYSIWYG) prônées à l’heure actuelle, et qui ont le mérite de rendre la bureautique accessible au plus grand nombre, au prix d’une quantité invraisemblable de clics dans des sous-sous-sous menus.

Non, sous $\LaTeX$, tout se fait en code et ligne de commande, avec une syntaxe qui rappelle largement celle du HTML (balisage, déclaration d’objets). La phase d’apprentissage du code est souvent fastidieuse, même si d’excellents cours existent de même que des éditeurs LaTeX proposant une bibliothèque de fonctions avec l’autocomplétion. Le temps perdu dans les logiciels du pack Microsoft Office à naviger des menus, rubans, bandeaux, menus contextels etc. est ici investi à apprendre la syntaxe du langage, et une fois maîtrisée, il ne suffit plus que de taper sans quitter le clavier des mains.

Alors quel est l’intérêt d’utiliser cette solution ancienne et complexe en lieu et place de Office Word, par exemple ?

#Le temps gagné dans la séparation du fond et de la forme

LaTeX, dans sa conception, sépare le fond et la forme. Vraiment. La forme est prise en charge par des classes  qui déclarent des feuilles de styles  et des macros , fournissant des commandes de raccourcis pour effectuer des tâches répétitives et standardisées.

Concrètement, vous n’avez qu’à choisir une classe, puis à taper le contenu, c’est à dire à déclarer vos objets (listes, titres de niveaux décroissants, boîtes, …) et le programme se charge seul de toute la partie mise en forme, avec respect natif des normes typographiques. Plus besoin de se battre contre un élément de liste qui ne s’est pas indenté comme les autres (vécu), un titre qui ne veut pas apparaître dans la table des matières sans raison valable (idem), ou une bibliographie qui ne veut pas remettre à jour ses références quand vous ajoutez une entrée.1

Il est tout à fait possible pour ceux qui le souhaitent, d’écrire leurs propres macros et de personnaliser tout ce qui est personnalisable (polices, couleurs, alignements, marges, espacement, puces, en-tête, pied de page, etc.).

Depuis des années, je fais également tout mon courrier sous LaTeX :

 1\documentclass[a4paper,french]{lettre}
 2\usepackage[fontsize=12pt]{fontsize}
 3\usepackage{libertine}
 4\usepackage{pdfpages}
 5\begin{document}
 6
 7%% Destinataire
 8\begin{letter}{
 9	Stupide Administration\\
10	1 place des Petits-Branleurs\\
11	75001 La France
12}
13
14%% Émetteur
15\def\moi{Jean \textsc{Dupont}}
16\def\ville{Paris}
17\name{\moi}
18\address{
19	\moi \\
20	1 avenue des Champs Élysées \\
21	75008 \ville
22}
23\telephone{+33 7 00 00 00 00}
24\email{moi@moi.com}
25\nofax
26
27%% Méta-données : lieu, date
28\date{le 5 mai 2012} % si non spécifié : date du jour
29\lieu{\ville}
30
31%% Objet
32\conc{Suivi de dossier N°123456}
33\opening{Madame, Monsieur}
34
35%% Contenu
36Toujours sans nouvelles du traitement de mon dossier depuis 3 mois, je me demande à quoi servent mes impôts. À l'évidence, c'est un énième souci informatique. J'espère néanmoins que la machine à café fonctionne. Pensez à faire une pause travail, à l'occasion.
37
38%% Formule de politesse et signature
39\closing{Je vous prie d'agréer, Madame, Monsieur, l'expression de mes sentiments respectueux,}
40\signature{\moi}
41% Optionnel: signature manuscrite scannée
42\hspace*{10.5cm}\includegraphics[width=3.5cm]{signature-dupont.jpg}
43
44%% Pièces jointes
45%\encl{Justificatifs}
46
47\end{letter}
48
49%% Décommenter pour inclure un justificatif PDF au format A4 directement dans le PDF final :
50%\includepdf{/chemin/vers/justificatif.pdf}
51
52\end{document}
image

Le rendu PDF du code ci-dessus. Éditer ce modèle sur Overleaf 

Notez que LaTeX présente l’avantage de pouvoir inclure tout document PDF (par exemple, un formulaire ou un justificatif scanné) dans le courrier généré (qui sera au format PDF dans la plupart des cas). Ceci est pratique pour générer un seul fichier PDF multipages, à imprimer en une seule fois, avec les pages dans l’ordre correct.

#Les maths sous LaTeX

L’autre gros avantage de LaTeX est sa prise en charge de la mise en forme des formules mathématiques. L’édition de formules sous Microsoft est longue, fastidieuse et souvent buggée, surtout lorsqu’on commence à rentrer dans des formules complexes. Avec LaTeX, il devient simple (en connaissant toutefois le code) de développer un coefficient de corrélation:

$$r=\dfrac{\sigma_{xy}}{\sigma_x \sigma_y} = \dfrac{\sum_{i=1}^N (x_i - \bar{x})\cdot(y_i - \bar{y})}{\sqrt{\sum_{i=1}^N(x_i-\bar x)^2}\cdot\sqrt{\sum_{i=1}^N(y_i - \bar y)^2}}$$

C’est la raison pour laquelle il est encore largement utilisé pour la rédaction de mémoire, thèses, livres etc. Sur ce domaine, les logiciels du pack Office ont un rendu très approximatif et sont incapables de rivaliser…

Il est également possible, via le paquet pstricks, de dessiner directement en lignes de commande des fonctions mathématiques avec axes gradué, de même que toute la géométrie qui vous passera par la tête. Les dessins ainsi créés sont vectoriels, c’est à dire générés par des fonctions mathématiques, de sorte que vous pourrez zoomer dessus à volonté sans jamais avoir d’effet « pixélisé » (à la différence des bitmaps générés par des matrices de pixels).

image
Fonctions dessinées directement en code LaTeX dans mon Cours de Trigonométrie

#Écosystème

#Robustesse

En plus de 30 ans d’existence, LaTeX a eu largement le temps d’être doté de tout ce qui était nécessaire et a été largement éprouvé. C’est un programme robuste et fiable. Toutes les fonctions qu’on peut attendre d’un traitement de texte sont proposées dans LaTeX, via des modules complémentaires à activer au besoin (les packages).

#Fonctions

Avec 3 lignes de codes, LaTeX est capable de vous créer une table des matières avec des liens cliquables. De même pour un index propre, et une bibliographie, et beaucoup d’autres choses. Il suffit souvent d’ajouter la ligne d’appel du module concerné, la ligne d’appel de la fonction correspondante, éventuellement une ligne ou simplement des paramètres de configuration de ladite fonction, et c’est fait.

#Commentaires

Comme dans tout programme, il est possible d’insérer des commentaires qui seront ignorés lors de la compilation, mais affichés lors de l’édition du programme. On peut donc envisager des portions de codes inactives, des mémos sur le contenu, où comme je l’ai fait dans le cas d’une traduction, la conservation du texte en langue originale (commenté) juste en dessous du texte traduit, pour référence ultérieure.

#Typographie professionnelle

Depuis l’édition de mon premier livre, j’ai été amené à m’intéresser de près à la typographie, et en particulier à l’orthotypographie. LaTeX est à ce jour le seul logiciel de traitement de texte à offrir un support complet et natif de toutes les règles de typographie (gestion des césures, veuves-orphelins, gris typographique, ligatures, marges optiques, crénage, approche  etc.), permettant de fait une mise en page professionnelle compatible d’origine avec les exigences des éditeurs. Un texte composé sous LaTeX est vraiment plus beau qu’un texte composé avec tout autre éditeur…

#Gratuit, libre et multiplateformes

LaTeX est gratuit, libre (opensource) et fonctionne aussi bien sous Unix/Linux, que Mac ou Windows (même s’il préfère Linux).

#Particularité

Les traitements de texte devenus classiques stockent le fichier rendu et sa source dans un même document, compressé dans le format maison (mais vous ne voyez que le rendu, pas le code source), ce qui est à l’origine de nombreux bugs. J’ai ainsi vu des étudiants qui prenaient leurs notes de cours sous OpenOffice perdre plusieurs mois de notes suite à des corruptions de fichiers.

Sous LaTeX, votre programme restera un ensemble de commandes rebutantes balisant le contenu, stockés dans des fichiers textes simples (lisibles par tout éditeur de texte), que vous devrez compiler de façon à produire un fichier de rendu en PDF qui sera la version lisible de votre travail. Le code source et le fichier rendus seront donc à jamais séparés, évitant de perdre les deux en cas de problème d’enregistrement. Fini les problèmes de fichiers corrompus !

#Compliqué oui mais…

Taper des commandes au fur et à mesure, c’est rebutant, et ça demande un apprentissage assez long. Mais ça n’est pas une nécessité.

De nombreux logiciels d’édition de code LaTeX permettent de composer un texte en ajoutant les commandes via des menus. Le code reste du code, mais le logiciel se charge d’intégrer les commandes pour vous… L’utilisation se rapproche donc sensiblement d’un document Word.

Mon éditeur LaTeX préféré est TeXmaker.

#En vrac

LaTeX permet également :

  • les mises en pages multicolonnes
  • la réalisation de diaporamas PDF
  • l’insertion d’images, de fichiers PDF, avec recadrage à la volée
  • l’insertion automatique de tables des illustrations
  • l’insertion de flottants (cadres de textes ou d’images)
  • la réalisation de bibliographies normalisées avec références dans le texte
  • l’appel de références et renvois dans le documents, avec liens cliquables
  • les notes de bas de page ou dans la marge

#Relative compatibilité

Pour vous aligner sur vos collègues qui ne jurent que par Microsoft Word et qui ne savent pas ce qu’il perdent, il peut être nécessaire de convertir votre travail en LaTeX vers le .doc ou le .docx. Ceci est possible grâce au logiciel Pandoc dont je viens d’écrire la documentation française, qui permet également une conversion en EBook, HTML, etc.

Le fichier ainsi converti respecte, en gros, la mise en page initiale, mais il convient de bien le relire pour corriger les erreurs d’exportation. Il sera éditable par d’autres, et après tout, c’est juste ce qu’on lui demande.

#Ses faiblesses

Clairement, la faiblesse de LaTeX réside dans le fait qu’il demande un apprentissage plus poussé qu’un traitement de texte classique, principalement parce que vous ne voyez pas la mise en forme au moment où vous rédigez, et que les non-développeurs sont peu habitués à la séparation forme/fond (le contraire du What You See Is What You Get, qui n’est simple et intuitif que lorsqu’on cherche à faire des choses simples).

D’autre part, votre code source devra être propre et respectueux de la syntaxe, sans quoi la compilation renverra une constellation d’erreurs aux noms poétiques, et vous n’aurez jamais le résultat escompté.

Mais avec l’habitude, on s’y fait et ça ne devient plus un problème. Une fois rodé, on peste après Word lorsqu’il faut fouiller ses menus, quand on a l’habitude de faire la même chose avec une ligne de code (plus rapidement, finalement…).

#Conclusion

Comme toujours, le meilleur outil est celui qui vous convient, qui correspond à votre besoin et avec lequel vous êtes à l’aise. À vous de tester, et de comparer, en gardant à l’esprit qu’un logiciel puissant sera forcément complexe, alors qu’un logiciel simple sera forcément plus limité. Mon cours de trigonométrie ne serait rien sans LaTeX.

Il est assez regrettable que LaTeX ne soit pas enseigné dès les premières années d’enseignement supérieur, mais peut-on attendre d’avantage d’un système qui a remplacé l’apprentissage du langage C par celui du Visual Basic, quand le premier permet de coder un système d’exploitation entier depuis n’importe quel OS, alors que le second permet d’écrire des programmes à bugs fantômes uniquement sous Windows ?

Quoi qu’il en soit, si j’ai réussi à apprendre LaTeX seul, cela devrait être possible au plus grand nombre.

#Ressources

Pour bien démarrer avec LaTeX :

Pour tout le reste, Google est votre ami (comme tous les logiciels libres, les ressources disponibles sur le net - documentations, forums - sont conséquentes).

Quelques livres PDF de référence pour utiliser $latex LaTeX$ :


  1. La gestion des bibliographies est le point de rupture qui pousse beaucoup d’étudiants au doctorat à passer sous LaTeX, après des heures perdues en batailles stériles contre MS Word. ↩︎