Aller au contenu
Topos Uranos

Résumé

Cette leçon enseigne à dessiner à l’intérieur du document avec TikZ. Elle explique ce que l’on gagne à dessiner en LaTeX (la police et les formules du texte, l’agrandissement sans perte, la correction dans la source et la gestion des versions), ce que cela coûte, et quand il vaut mieux exporter un graphique depuis R ou Python ; elle montre que, dans un document rédigé dans une langue dont le module babel transforme des signes en raccourcis actifs, comme l’espagnol, TikZ a besoin de sa bibliothèque babel, sans laquelle la première flèche provoque une cascade d’erreurs ; elle présente l’environnement tikzpicture et la commande \tikz, les coordonnées cartésiennes, polaires et relatives, et les chemins (segments, rectangles, cercles, arcs et courbes) ; elle passe en revue les options du tracé et les pointes de flèche de la bibliothèque arrows.meta ; elle enseigne les nœuds, nommés, avec leurs ancres et placés les uns par rapport aux autres avec la bibliothèque positioning ; elle fixe la notation par des styles personnels ; elle répète avec \foreach ; elle compose un organigramme, un schéma de forces, un arbre de concepts, un arbre syntaxique et le graphe d’une fonction, en avertissant que plot mesure les angles en degrés ; elle présente pgfplots pour les graphiques de données ; elle place la figure dans un flottant et compare les trois manières de la mettre à l’échelle ; et elle termine par les erreurs typiques, le temps de compilation et ce qu’il vaut mieux éviter.

Objectifs d’apprentissage

  1. Décider, raisons à l’appui, si une figure doit être dessinée avec TikZ, tracée avec pgfplots ou exportée depuis un logiciel d’analyse de données.
  2. Préparer le préambule d’un document pour TikZ et expliquer quand et pourquoi la bibliothèque babel est nécessaire.
  3. Dessiner avec des coordonnées absolues, polaires et relatives, et prévoir le chemin que trace une suite de coordonnées avec + et ++.
  4. Composer des schémas avec des nœuds nommés, placés avec la bibliothèque positioning, et avec des styles personnels définis une seule fois.
  5. Insérer un dessin dans un flottant avec sa légende et son étiquette, le mettre à l’échelle en prévoyant ce qui arrive au texte et diagnostiquer les erreurs typiques à partir du journal.

Pourquoi dessiner en LaTeX

Les leçons précédentes ont inséré des images faites hors du document. Un dessin fait avec TikZ, au contraire, s’écrit dans la source au moyen de commandes, et le moteur le compose comme il compose le texte. Il en découle quatre avantages. Le premier est l’unité typographique : les étiquettes du dessin utilisent la même police et le même corps que le texte, et une formule dans une étiquette est identique à celle du paragraphe qui la commente. Le deuxième est l’agrandissement sans perte : le résultat est vectoriel, de sorte qu’on l’agrandit sans voir apparaître les pixels. Le troisième est que le dessin se corrige dans la source : changer une étiquette ou déplacer un point revient à changer une ligne, sans retourner à un logiciel de dessin ni chercher le fichier original. Le quatrième est que le dessin se versionne avec le texte, puisqu’il est du texte : il reste dans le même fichier, dans la même sauvegarde et dans le même historique.

Or ces avantages ont un prix. TikZ est un langage doté de sa propre syntaxe, dont le manuel dépasse mille pages, et un dessin qu’un logiciel graphique permet de faire à la souris en une minute peut demander ici une demi-heure la première fois. Il convient donc de distinguer. Les schémas, les diagrammes et les figures géométriques, composés de quelques formes accompagnées d’étiquettes, sont le terrain naturel de TikZ. Les graphiques de données, en revanche, se font mieux avec pgfplots, construit sur TikZ et présenté à la fin de cette leçon, ou, si les données sont analysées avec R ou Python, avec le programme même qui les analyse : le graphique est exporté en PDF et inséré comme dans la leçon consacrée aux images, et il reste lié aux données et à l’analyse qui le produisent. Les deux langages offrent en outre des sorties qui écrivent le graphique sous forme de code pour LaTeX (le paquet tikzDevice dans R et la sortie PGF de matplotlib dans Python), de sorte que les étiquettes adoptent la police du document.