Aller au contenu
Topos Uranos

Résumé

Cette leçon clôt la cinquième unité du cours, consacrée aux tableaux et aux figures. Elle reconstruit la chaîne de principes et de mécanismes qui va du tableau le plus simple au dessin TikZ placé dans une figure, en indiquant à chaque maillon quel principe est utilisé et dans quelle leçon il est établi ; elle situe l’acquis par rapport au plan du cours et précise quelles questions, à peine anticipées, restent pour les unités suivantes ; elle reprend dans son évaluation de sortie les compétences de l’évaluation d’entrée ; et elle se termine par six défis, d’une difficulté supérieure à celle des problèmes des leçons, qui exigent d’en combiner plusieurs pour composer le tableau d’un rapport de laboratoire selon la règle d’une faculté, diagnostiquer un document qui compile sans avertissement et présente six défauts, composer une figure avec une photographie et un schéma dessiné, produire un tableau à partir d’un fichier de données, refaire un schéma qui ne survit pas au passage à deux colonnes et choisir l’environnement de trois tableaux différents.

Objectifs d’apprentissage

  1. Reconstruire l’ordre des mécanismes de l’unité, en identifiant le principe sur lequel chacun s’appuie.
  2. Expliquer pourquoi tant de défauts des tableaux, des images et des flottants compilent sans avertissement, et où chercher leur trace dans le résultat.
  3. Distinguer ce que l’unité a établi de ce qu’elle a seulement anticipé et que les unités suivantes développeront.
  4. Composer des tableaux et des figures qui combinent nombres alignés, légendes, noms, renvois, sous-figures et dessins, et prévoir ce que produit un source qui les combine.
  5. Choisir, pour chaque tableau, image ou dessin, l’environnement, la mesure et la place qui résistent aux changements du document.

L’acquis de l’unité

L’unité se proposait que les données, les images et les dessins d’un travail se lisent avec la même clarté que son texte, se numérotent et se renvoient comme ses sections et ses équations, et trouvent leur place dans la page sans que l’auteur la fixe à la main. Ce but a été atteint en s’appuyant sur ce que l’introduction a tenu pour acquis des unités précédentes : les renvois, qui dépendent de ce qu’enregistre une étiquette ; l’alignement de l’unité précédente, où chaque \\ ouvre une ligne et chaque & sépare une cellule ; et le préambule avec ses commandes personnelles, où les décisions se prennent une fois. Dès lors, le chemin parcouru peut se lire comme une seule chaîne en cinq tronçons.

Tableaux lisibles

La leçon sur les tableaux lisibles a appliqué au texte le principe de l’alignement : tabular construit une ligne pour chaque \\ et une cellule entre chaque paire de &, avec une lettre de colonne par cellule, et l’ensemble est une boîte que le moteur place d’un seul tenant. De la règle de compte, elle a déduit ses deux sortes d’erreurs : la bruyante, « Extra alignment tab », qui, lorsqu’il manque un \\, est signalée à la ligne suivante, et la silencieuse, la ligne qui a moins de cellules, que le moteur admet. Elle a remplacé la grille par les trois filets de booktabs, avec \cmidrule rogné et \addlinespace ; elle a aligné les nombres sur la virgule avec la colonne S de siunitx, dont le table-format réserve une place qu’un nombre plus large dépasse sans autre trace qu’un « Overfull \hbox » dans le journal, qui ne nomme pas la cellule, et dont la virgule doit se déclarer avec \sisetup, car siunitx ne la prend pas à babel ; elle a porté les unités dans les en-têtes, entre accolades dans les colonnes S ; et elle a composé du texte en drapeau avec \raggedright\arraybackslash.

Tableaux complexes et longs

La leçon sur les tableaux complexes et longs a étendu la règle de compte à \multicolumn, qui occupe la place de plusieurs cellules, et a montré qu’un & initial oublié décale un en-tête regroupé sans que le moteur le signale, parce que les filets partiels ne dépendent que de leurs numéros. Elle a donné aux tableaux la largeur de la ligne avec tabularx ou avec tabular* et \extracolsep{\fill}, et a écarté \resizebox, qui change le corps de la police ; elle a réparti les tableaux longs sur plusieurs pages avec longtable, qui répète ses en-têtes, ne numérote qu’une fois si la suite porte \caption[], a besoin d’une autre passe pour fixer ses largeurs et perd des lignes si on l’enferme dans table ; et elle a produit les tableaux à partir d’une seule source, le fichier de données, avec csvsimple et pgfplotstable, en avertissant que filecontents* sans overwrite ne réécrit pas le fichier.

Images dans le document

La leçon sur les images dans le document a établi que \includegraphics produit une boîte que le moteur place dans la ligne comme une grande lettre, et elle en a déduit l’alinéa qui fait déborder une image de la largeur de la ligne, la manière de la centrer et celle d’en placer deux côte à côte. Elle a exprimé les tailles par rapport à \linewidth, qui s’ajuste à l’endroit ; elle a montré que largeur et hauteur sans keepaspectratio déforment sans avertissement et que les options s’appliquent dans l’ordre écrit ; elle a distingué les graphiques vectoriels, qui s’exportent en PDF, des photographies, dont le moteur ne vérifie pas la résolution ; et elle a étudié la recherche des fichiers : sans extension, le PDF est préféré au PNG sans avertissement, et \graphicspath exige des accolades doubles.

Figures et tableaux flottants

La leçon sur les figures et les tableaux flottants a déduit de la boîte indivisible le flottement : ce qui ne se coupe pas et ne tient pas est porté là où il tient, et c’est pourquoi on y renvoie par son numéro. Elle a expliqué les spécificateurs comme des places permises, l’élargissement de [h] en [ht], les trous de [H] et la figure sans place possible qui retient les autres ; elle a composé la légende, qui numérote, inscrit dans la liste et va au-dessus des tableaux avec l’espacement de l’extension caption ; elle a changé « Table » en « Tableau » avec \setlocalecaption, parce que babel annule le \renewcommand, et a constaté que cleveref disait déjà « tableau », alors qu’un autre nom exigerait \crefname ; elle a vérifié que caption dénonce l’étiquette placée avant la légende ; et elle a composé des sous-figures, des figures indépendantes dans un seul figure et des notes de tableau avec threeparttable, après avoir montré que \footnote perd son texte dans un flottant.

Dessins avec TikZ

La leçon sur les dessins avec TikZ est passée de l’image qu’on insère à celle qu’on écrit. Elle a commencé par le préambule : les modules de babel de langues comme l’espagnol rendent actif le signe > des flèches, et sans \usetikzlibrary{babel} la première flèche provoque une cascade d’erreurs. Elle a parcouru les coordonnées cartésiennes, polaires et relatives, avec la différence entre + et ++ ; les chemins, les options du tracé et les pointes d’arrows.meta ; les nœuds nommés avec leurs ancres, placés les uns par rapport aux autres avec positioning ; les styles de \tikzset et les répétitions de \foreach ; les schémas de plusieurs disciplines, le graphe d’une fonction, dont le sinus se mesure en degrés sans avertissement, et pgfplots ; et elle a terminé en plaçant le dessin dans une figure et en comparant les trois manières de le réduire.

La figure suivante réunit les cinq tronçons en une seule chaîne. Chaque nœud de la colonne est un mécanisme ou une règle, numéroté selon l’ordre dans lequel ils s’appuient les uns sur les autres et relié par un arc aux maillons antérieurs qu’il utilise ; autour flottent les appuis, c’est-à-dire les principes auxquels la chaîne recourt sans cesse, chacun relié par un trait plein aux maillons qui s’appuient sur lui et par un trait pointillé au maillon où il est établi, sauf ceux qui ont été établis dans des unités précédentes, qui sont dessinés comme des anneaux. Un clic sur un appui met en évidence tous les maillons qui l’utilisent, et chaque maillon renvoie à la leçon où il est étudié.

Appuis de la chaîne

  • ACe qu’enregistre une étiquette. Une étiquette enregistre le dernier numéro attribué avant elle, dans son environnement, sans savoir à quoi elle est attachée. Établi dans la troisième unité. Admis sans démonstration dans cette unité.
  • BUn alignement est un tableau. Un environnement d’alignement construit une ligne pour chaque \\ et une cellule pour chaque tronçon entre deux &, même si la ligne reste incomplète. Établi dans l’unité précédente. Admis sans démonstration dans cette unité.
  • CDécider une fois. Ce qui se décide en un seul endroit (une commande ou un format dans le préambule, un style, un fichier de données) change dans tout le document quand on le change là ; ce qui se recopie à la main cesse de concorder. Établi dans les unités précédentes. Admis sans démonstration dans cette unité.
  • DPasses. Le moteur note dans les fichiers auxiliaires ce qu’il calcule lors d’une passe, et s’en sert à la suivante. Établi dans la première unité. Admis sans démonstration dans cette unité.
  • ECe que fait babel en français. Avec LuaLaTeX, le module français ne rend actif aucun signe ; il fixe ses noms au début du document et ne change pas le séparateur décimal, tandis que d’autres modules, comme l’espagnol, rendent actifs < et >. Établi en partie dans l’unité précédente. Admis sans démonstration dans cette unité.
  • FUne boîte ne se coupe pas. Un tableau, une image ou un dessin est une boîte que le moteur place d’un seul tenant, comme une grande lettre, et qui ne se coupe pas entre deux pages. Établi dans: 1. Lignes et cellules.
  • GCe qui est valide n’avertit pas. Le moteur n’avertit que de ce qu’il ne peut pas composer ; un source valide qui ne dit pas ce que l’auteur voulait compile sans avertissement, et le défaut ne se voit que dans le résultat. Établi dans: 1. Lignes et cellules.
  • HFlotter et renvoyer. Ce qui ne se coupe pas et ne tient pas là où il a été écrit est porté là où il tient ; c’est pourquoi on renvoie à un flottant par son numéro, et jamais par sa place. Établi dans: 13. Pourquoi ils flottent.
  1. Tronçon 1 Tableaux lisibles

    • Choisir entre tableau, liste et figure selon la manière dont les données seront consultées.
    • Composer un tableau avec tabular et les filets de booktabs, sans grille.
    • Aligner les nombres sur la virgule décimale avec la colonne S.
    • Diagnostiquer les erreurs d’un tableau, y compris celles qui n’avertissent pas.
    1. Lignes et cellules. tabular porte dans le texte la règle de l’alignement : une lettre par colonne, & entre les cellules et \\ à la fin de la ligne ; une ligne qui a plus de cellules donne « Extra alignment tab », à la ligne suivante s’il manque le \\, une qui en a moins est valide, et l’ensemble est une boîte qui ne se coupe pas.

      Repose sur: B (Un alignement est un tableau), F (Une boîte ne se coupe pas), G (Ce qui est valide n’avertit pas). Démontré dans: Tableaux lisibles.

    2. Des filets au lieu d’une grille. Ni filets verticaux ni filets doubles : \toprule, \midrule et \bottomrule, \cmidrule avec ses rognages et \addlinespace ; \hline mêlé à eux ne donne aucun avertissement et laisse deux systèmes de filets.

      Utilise: 1. Lignes et cellules. Repose sur: G (Ce qui est valide n’avertit pas). Démontré dans: Tableaux lisibles.

    3. Les nombres sur la virgule. La colonne S aligne sur le séparateur ; table-format réserve la place, et un nombre plus large déborde sans autre trace qu’un « Overfull \hbox » dans le journal, qui ne nomme pas la cellule ; \sisetup fixe la virgule, sans quoi siunitx imprime le point, quoi que dise babel ; une virgule de milliers recopiée de l’anglais se lit comme décimale.

      Utilise: 1. Lignes et cellules. Repose sur: E (Ce que fait babel en français), G (Ce qui est valide n’avertit pas), C (Décider une fois). Démontré dans: Tableaux lisibles.

    4. En-têtes et texte. L’unité figure une fois dans l’en-tête, qui dans une colonne S va entre accolades ; \makecell coupe un en-tête long ; la colonne de paragraphe en drapeau porte \raggedright\arraybackslash, et sans \arraybackslash apparaît « Misplaced \noalign ».

      Utilise: 3. Les nombres sur la virgule, 2. Des filets au lieu d’une grille. Repose sur: B (Un alignement est un tableau). Démontré dans: Tableaux lisibles.

  2. Tronçon 2 Tableaux complexes et longs

    • Regrouper des colonnes et compter les cellules de chaque ligne.
    • Donner à un tableau la largeur de la ligne sans le mettre à l’échelle.
    • Répartir un tableau long sur plusieurs pages.
    • Produire un tableau à partir de son fichier de données.
    1. Des cellules qui couvrent des colonnes. \multicolumn occupe la place de plusieurs cellules, et le compte d’une ligne ne doit pas dépasser le préambule ; un & initial oublié décale le groupe sans avertissement, parce que \cmidrule ne dépend que de ses numéros ; la largeur excédentaire va à la dernière colonne du groupe.

      Utilise: 1. Lignes et cellules, 2. Des filets au lieu d’une grille. Repose sur: B (Un alignement est un tableau), G (Ce qui est valide n’avertit pas). Démontré dans: Tableaux complexes et longs.

    2. La largeur de la ligne. tabularx élargit ses colonnes X, ou une L déclarée avec \newcolumntype ; tabular* répartit le blanc entre les colonnes avec \extracolsep{\fill} ; \resizebox est écarté, parce qu’il donne à chaque tableau un autre corps de police.

      Utilise: 4. En-têtes et texte. Repose sur: F (Une boîte ne se coupe pas), C (Décider une fois). Démontré dans: Tableaux complexes et longs.

    3. Tableaux de plusieurs pages. longtable se coupe et répète ses en-têtes avec \endfirsthead et \endhead ; il numérote avec \caption et continue avec \caption[] ; il note ses largeurs et demande une autre passe ; dans table, il redevient une boîte et perd des lignes.

      Utilise: 5. Des cellules qui couvrent des colonnes. Repose sur: F (Une boîte ne se coupe pas), D (Passes). Démontré dans: Tableaux complexes et longs.

    4. Des tableaux à partir des données. Les données ont une seule source, le fichier : csvsimple en recopie le texte et pgfplotstable met en forme ses nombres ; filecontents* sans overwrite ne réécrit pas un fichier existant et se contente de l’indiquer.

      Utilise: 3. Les nombres sur la virgule, 7. Tableaux de plusieurs pages. Repose sur: C (Décider une fois), G (Ce qui est valide n’avertit pas). Démontré dans: Tableaux complexes et longs.

  3. Tronçon 3 Images dans le document

    • Dimensionner une image par rapport à la ligne et prévoir ses mesures.
    • Choisir le format de chaque image et vérifier sa résolution.
    • Nommer, ranger et retrouver les fichiers d’images.
    • Placer une image dans la ligne comme un caractère.
    1. L’image est une grande lettre. \includegraphics produit une boîte posée sur la ligne de base : après l’alinéa, une image de width=\linewidth déborde ; pour la centrer on centre la ligne, et deux images vont côte à côte si elles y tiennent.

      Repose sur: F (Une boîte ne se coupe pas). Démontré dans: Images dans le document.

    2. Taille et ordre des options. Les mesures relatives à \linewidth s’ajustent à l’endroit ; largeur et hauteur sans keepaspectratio déforment sans avertissement ; les options s’appliquent dans l’ordre écrit ; trim demande clip, et une page inexistante arrête la compilation.

      Utilise: 9. L’image est une grande lettre. Repose sur: G (Ce qui est valide n’avertit pas). Démontré dans: Images dans le document.

    3. Formats et résolution. Les graphiques sont vectoriels et s’exportent en PDF à la taille d’emploi ; les photographies sont matricielles et demandent environ 300 pixels par pouce, ce que le moteur ne vérifie pas ; un SVG se convertit avant, et un EPS est converti par graphicx.

      Utilise: 10. Taille et ordre des options. Repose sur: G (Ce qui est valide n’avertit pas). Démontré dans: Images dans le document.

    4. Noms et chemins. Sans extension, le moteur essaie un ordre fixe et prend le PDF avant le PNG, sans avertissement ; \graphicspath demande des accolades doubles, et avec des simples chaque lettre est un dossier ; le mode brouillon montre quel fichier a été pris.

      Utilise: 11. Formats et résolution. Repose sur: G (Ce qui est valide n’avertit pas). Démontré dans: Images dans le document.

  4. Tronçon 4 Figures et tableaux flottants

    • Expliquer pourquoi une figure flotte et y renvoyer par son numéro.
    • Orienter et contenir la place des flottants.
    • Donner à chaque flottant sa légende, son nom et son étiquette.
    • Composer des sous-figures et des notes dans un tableau.
    1. Pourquoi ils flottent. figure et table portent la boîte là où elle tient, et l’on renvoie par le numéro ; les lettres sont des places permises, [h] ne s’élargit qu’en [ht], [H] laisse des trous, et une figure sans place possible retient celles de son espèce.

      Utilise: 1. Lignes et cellules, 9. L’image est une grande lettre. Repose sur: F (Une boîte ne se coupe pas), H (Flotter et renvoyer). Démontré dans: Figures et tableaux flottants.

    2. La légende. \caption numérote, compose et inscrit dans la liste, qui demande une autre passe, et admet un titre court ; elle va au-dessus des tableaux et au-dessous des figures, et l’extension caption fixe son espacement et sa mise en forme pour tout le document.

      Utilise: 13. Pourquoi ils flottent. Repose sur: D (Passes), C (Décider une fois). Démontré dans: Figures et tableaux flottants.

    3. Nom et renvoi. \setlocalecaption{french}{table}{Tableau} donne « Tableau » à la légende, et babel annule \renewcommand{\tablename} ; cleveref disait déjà « tableau », mais tout autre nom exigerait \crefname ; l’étiquette va après la légende, et avec caption une étiquette mal placée donne un avertissement et deux points d’interrogation.

      Utilise: 14. La légende. Repose sur: A (Ce qu’enregistre une étiquette), E (Ce que fait babel en français). Démontré dans: Figures et tableaux flottants.

    4. Sous-figures et notes. subcaption donne des lettres aux parties d’une figure, que cleveref nomme « figure 1b » ; les figures indépendantes vont dans des minipages à l’intérieur d’un seul figure, jamais l’inverse ; \footnote dans un flottant perd son texte sans avertissement, et threeparttable attache la note au tableau.

      Utilise: 15. Nom et renvoi, 9. L’image est une grande lettre. Repose sur: H (Flotter et renvoyer), G (Ce qui est valide n’avertit pas). Démontré dans: Figures et tableaux flottants.

  5. Tronçon 5 Dessins avec TikZ

    • Préparer le préambule d’un document pour dessiner.
    • Placer des points avec des coordonnées absolues, polaires et relatives.
    • Composer des schémas avec des nœuds nommés et des styles personnels.
    • Placer un dessin dans une figure et le réduire sans perdre la police du texte.
    1. TikZ et les raccourcis de babel. Un module qui rend actif le > des flèches, comme l’espagnol, provoque une cascade d’erreurs à la première flèche, dans n’importe quel ordre de chargement ; \usetikzlibrary{babel} le corrige ; sans arrows.meta ou sans positioning, les messages sont « Unknown arrow tip kind » et « Unknown function of ».

      Repose sur: E (Ce que fait babel en français). Démontré dans: Dessins avec TikZ.

    2. Coordonnées et chemins. Les coordonnées sont cartésiennes, polaires ou relatives : ++ déplace le point de référence et + non ; un point-virgule oublié est signalé à la ligne suivante, et sin(\x) mesure l’angle en degrés sans avertissement.

      Utilise: 17. TikZ et les raccourcis de babel. Repose sur: G (Ce qui est valide n’avertit pas). Démontré dans: Dessins avec TikZ.

    3. Nœuds et styles. Un nœud est une boîte avec un nom et des ancres ; positioning le place par rapport à un autre selon la distance entre les bords, de sorte que le schéma se réarrange tout seul ; \tikzset fixe les styles et \foreach répète.

      Utilise: 18. Coordonnées et chemins. Repose sur: F (Une boîte ne se coupe pas), C (Décider une fois). Démontré dans: Dessins avec TikZ.

    4. Le dessin dans la figure. Le dessin est une boîte et va dans figure avec sa légende et son étiquette ; scale conserve la police, transform shape la réduit et \resizebox réduit tout ; pgfplots, avec compat, demande la virgule décimale par use comma, car babel en français ne la donne pas.

      Utilise: 19. Nœuds et styles, 15. Nom et renvoi, 6. La largeur de la ligne. Repose sur: H (Flotter et renvoyer), E (Ce que fait babel en français). Démontré dans: Dessins avec TikZ.

Vers la bibliographie. La chaîne s’arrête là où les tableaux, les images et les dessins sont composés, numérotés et renvoyés : la provenance des données et des images d’autrui, qu’on a déclarée ici à la main dans une ligne de crédit, sera citée dans l’unité suivante à partir d’une base bibliographique, dans le style de chaque discipline.