Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une...

56
3 e édition

Transcript of Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une...

Page 1: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

3e édition

ISBN : 978-2-8073-2362-9

www.deboecksuperieur.com

Appr

entis

sage

, gu

ide e

t réf

éren

ceBE

RNAR

D

DESG

RAUP

ESLa

TeX

LaTeX est un système de composition de textes de haute qualité basé sur le célèbre noyau TeX de Donald Knuth. Le succès de LaTeXSon succès, tout particulièrement dans les domaines scientifiques et techniques, n’a jamais faibli depuis son apparition en 1984. Il est dû à la qualité typographique exceptionnelle des documents qu’il produit, à sa gratuité et à sa disponibilité sur les principales plateformes informatiques (Unix, Mac ou PC). C’est un outil extrêmement flexible, doté d’une syntaxe très souple pour la production d’expressions mathématiques, la gestion des sections, des index et des tables des matières, la production de bibliographies.

Un plan progressifLa partie Apprentissage expose à travers des leçons progressives les bases indispensables pour commencer à travailler avec LaTeX. La partie Guide aborde, sous formes de chapitres thématiques, l’utilisation avancée du logiciel. Un chapitre entier est consacré

aux réglages fins permettant de personnaliser la mise en forme d’un document. La partie Référence comporte de nombreuses annexes permettant de retrouver rapidement macros et symboles.

Un ouvrage actualiséLa troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes : certains packages classiques ont été remplacés par de nouvelles solutions et de nouveaux outils sont apparus en particulier dans le domaine de la production de graphiques et de documents de présentation. On trouvera en particulier des présentations détaillées des packages Beamer pour la création de diapositives à la PowerPoint, et Tkiz pour la conception de graphiques.

Par son approche pédagogique et son souci d’exhaustivité, cet ouvrage comblera tout utilisateur de LaTeX, néophyte ou chevronné, souhaitant publier des documents de caractère aussi bien scientifique, technique que littéraire.

Bernard Desgraupes : ancien élève de l’Ecole Normale Supérieure et Maitre de conférence et chercheur en Mathématiques à l’université Paris-10, il est l’auteur de plusieurs ouvrages consacrés à la programmation informatique et au traitement de données.

Z

9782807323629_LATEX.indd Toutes les pages 04/09/2019 16:38

Page 2: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes
Page 3: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

LaTeXApprentissage, guide et référence

LaTeX-Liminaires.indd 1 03/09/2019 10:36:43

Page 4: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

Dans la collection InformatiqueT. THIRY, Les pratiques de l’équipe agile. Définissez votre propre méthode

R. A. GRIMES, Hacking et contre-hacking. La sécurité informatique

LaTeX-Liminaires.indd 2 03/09/2019 10:36:43

Page 5: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

Apprentissage, guide et référence

BERNARD DESGRAUPES

LaTeX

LaTeX-Liminaires.indd 3 03/09/2019 10:36:43

Page 6: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

© De Boeck Supérieur s.a., 2019 Rue du bosquet 7, B - 1348 Louvain-la-Neuve

Il est interdit, sauf accord préalable et écrit de l’éditeur, de reproduire (notamment par photoco-pie) partiellement ou totalement le présent ouvrage, de le stocker dans une banque de données ou de le communiquer au public, sous quelque forme et de quelque manière que ce soit.

Dépôt légal : ISBN 978-2-8073-2362-9Bibliothèque Nationale, Paris : octobre 2019Bibliothèque royale de Belgique, Bruxelles : 2019/13647/147

Pour toute information sur notre fonds et les nouveautés dans votre domaine de spécialisation, consultez notre site web: www.deboecksuperieur.com

LaTeX-Liminaires.indd 4 03/09/2019 10:36:43

Page 7: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page V — #1 ii

ii

ii

Table des matières

Introduction XIX

I APPRENTISSAGE 1

Leçon 1 : Où l’on parle de source. . . 3

Leçon 2 : Où l’on parle de composition. . . 9

Leçon 3 : Où l’on parle d’édition. . . 13

Résumé des principes de base 16

II GUIDE 17

1 Principe de fonctionnement 191.1 Chaîne de production d’un document . . . . . . . . . . . . . . . . . . . 191.2 Emplacement des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . 221.3 Les modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.3.1 Déclaration d’un module . . . . . . . . . . . . . . . . . . . . . 231.3.2 Installation d’un module . . . . . . . . . . . . . . . . . . . . . 24Installer un module à partir d’un fichier .ins . . . . . . . . . . . . . 25Installer un module à partir d’un fichier .dtx . . . . . . . . . . . . . 26Installer un module à partir d’un fichier .sty . . . . . . . . . . . . . 28Installer des fichiers de polices à partir d’un fichier .fdd . . . . . . . 28

1.3.3 Documentation d’un module . . . . . . . . . . . . . . . . . . . 281.4 Mise à jour du format . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.5 Traitement des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2 Structure d’un document 332.1 Classes de document . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.1.1 Ouvrir un nouveau document . . . . . . . . . . . . . . . . . . . 332.1.2 Déclaration de classe . . . . . . . . . . . . . . . . . . . . . . . 34

2.2 Le corps du document . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.3 Options de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

V

Page 8: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page VI — #2 ii

ii

ii

VI TABLE DES MATIÈRES

2.4 Parties d’un document . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.5 Sauts de page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.6 Références dans un document . . . . . . . . . . . . . . . . . . . . . . . 42

2.6.1 Fonctionnement de l’indexation . . . . . . . . . . . . . . . . . . 422.6.2 Contrôle des étiquettes : le module showlabels . . . . . . . . . 43

2.7 Page de titre prédéfinie . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3 Mise en forme du texte 473.1 Taille des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.2 Style des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.3 Aspect des caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.4 Compatibilité avec les anciennes versions . . . . . . . . . . . . . . . . . 523.5 Accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.5.1 Le problème de l’accentuation . . . . . . . . . . . . . . . . . . 523.5.2 Les accents du mode texte . . . . . . . . . . . . . . . . . . . . 53

3.6 Caractères spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.7 Blancs, tirets et points de suspension . . . . . . . . . . . . . . . . . . . 563.8 Espacement vertical . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.8.1 Découpage en paragraphes . . . . . . . . . . . . . . . . . . . . 603.8.2 Sauts de ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . 603.8.3 Blancs verticaux . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.9 Alignement du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623.10 Indentation des paragraphes . . . . . . . . . . . . . . . . . . . . . . . . 63

Environnements de citations . . . . . . . . . . . . . . . . . . . . . . 64Environnement de poésie . . . . . . . . . . . . . . . . . . . . . . . . 65

3.10.1 Indentation multiple . . . . . . . . . . . . . . . . . . . . . . . . 653.11 Énumération de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.12 Texte non interprété . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.12.1 Le module verbatim . . . . . . . . . . . . . . . . . . . . . . . . 713.12.2 Le module alltt . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.12.3 Le module moreverb . . . . . . . . . . . . . . . . . . . . . . . . 733.12.4 Chemins et adresses électroniques : le module path . . . . . . . 753.12.5 Formatage de code source : le module listings . . . . . . . . . . 75

3.13 Réglages fins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

4 Structuration des pages 834.1 Les éléments d’une page . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.1.1 Style global d’une page . . . . . . . . . . . . . . . . . . . . . . 84En-têtes particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Numéro de dernière page . . . . . . . . . . . . . . . . . . . . . . . . 87

4.1.2 Notes de bas de page . . . . . . . . . . . . . . . . . . . . . . . 88Notes de bas de page dans une boîte . . . . . . . . . . . . . . . . . . 89Notes de bas de page en fin de section : le module endnotes . . . . . 90

4.1.3 Notes marginales . . . . . . . . . . . . . . . . . . . . . . . . . . 924.1.4 Colonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Changement de colonnage . . . . . . . . . . . . . . . . . . . . . . . . 94

Page 9: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page VII — #3 ii

ii

ii

TABLE DES MATIÈRES VII

4.1.5 Le module multicol . . . . . . . . . . . . . . . . . . . . . . . . 95Réglages fins de l’environnement multicolonnes . . . . . . . . . . . . 95

4.2 Boîtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.2.1 Boîtes de lignes . . . . . . . . . . . . . . . . . . . . . . . . . . 97Dimensions des boîtes . . . . . . . . . . . . . . . . . . . . . . . . . . 99Positionnement vertical d’une boîte . . . . . . . . . . . . . . . . . . 99Mémorisation des boîtes . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.2.2 Boîtes de paragraphes . . . . . . . . . . . . . . . . . . . . . . . 100Différences entre parbox et minipage . . . . . . . . . . . . . . . . . . 102Dimensions naturelles d’une boîte de paragraphe . . . . . . . . . . . 104

4.2.3 Boîtes noires et filets . . . . . . . . . . . . . . . . . . . . . . . 104Filets invisibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.3 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.3.1 Tabulations simples . . . . . . . . . . . . . . . . . . . . . . . . 1064.3.2 Constitution de tableaux . . . . . . . . . . . . . . . . . . . . . 108Commandes de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . 109Construction pratique d’un tableau . . . . . . . . . . . . . . . . . . 111Environnement tabular* . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.3.3 Meilleure maîtrise des tableaux avec le module array . . . . . 117Le module tabularx . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4.3.4 Les très longs tableaux : longtable et supertabular . . . . . . . 121Le module longtable . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Le module supertabular . . . . . . . . . . . . . . . . . . . . . . . . . 124

4.3.5 Le module multirow . . . . . . . . . . . . . . . . . . . . . . . . 126Utilisation du module bigstrut . . . . . . . . . . . . . . . . . . . . . 128

4.4 Tables et figures flottantes . . . . . . . . . . . . . . . . . . . . . . . . . 1294.4.1 Environnements flottants . . . . . . . . . . . . . . . . . . . . . 129Options de placement . . . . . . . . . . . . . . . . . . . . . . . . . . 130Légendes d’un flottant . . . . . . . . . . . . . . . . . . . . . . . . . . 130Liste des flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Références à un flottant . . . . . . . . . . . . . . . . . . . . . . . . . 131Flottants sans légendes . . . . . . . . . . . . . . . . . . . . . . . . . 132Flottants sur deux colonnes . . . . . . . . . . . . . . . . . . . . . . . 132

4.4.2 Le placement des flottants . . . . . . . . . . . . . . . . . . . . 132Compléments sur le placement des flottants . . . . . . . . . . . . . . 133

4.4.3 Le module float . . . . . . . . . . . . . . . . . . . . . . . . . . 1344.4.4 Le module subfig . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.4.5 Le module subfloat . . . . . . . . . . . . . . . . . . . . . . . . . 1394.4.6 Le module floatflt . . . . . . . . . . . . . . . . . . . . . . . . . 1414.4.7 Le module wrapfig . . . . . . . . . . . . . . . . . . . . . . . . . 1434.4.8 Le module afterpage . . . . . . . . . . . . . . . . . . . . . . . . 1444.4.9 Le module nonfloat . . . . . . . . . . . . . . . . . . . . . . . . 145

Page 10: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page VIII — #4 ii

ii

ii

VIII TABLE DES MATIÈRES

5 La gestion des polices 1475.1 Les cinq attributs des caractères . . . . . . . . . . . . . . . . . . . . . 1475.2 Les fichiers de définition d’une police . . . . . . . . . . . . . . . . . . . 152

5.2.1 Les mécanismes de LATEX . . . . . . . . . . . . . . . . . . . . . 1525.2.2 La structure des fichiers de définition . . . . . . . . . . . . . . 1525.2.3 Déclarations d’attributs en préambule . . . . . . . . . . . . . . 1555.2.4 Déclaration d’attributs par défaut . . . . . . . . . . . . . . . . 1555.2.5 Nommer une police . . . . . . . . . . . . . . . . . . . . . . . . 1565.2.6 Contrôle du système nfss . . . . . . . . . . . . . . . . . . . . . 156

5.3 Les polices METAFONT . . . . . . . . . . . . . . . . . . . . . . . . . . 1575.3.1 Les différents aspects d’une police . . . . . . . . . . . . . . . . 158Fichiers de description . . . . . . . . . . . . . . . . . . . . . . . . . . 158Fichiers métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158Fichiers images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Fichiers de police génériques . . . . . . . . . . . . . . . . . . . . . . 160

5.3.2 Fabriquer les fichiers de métriques (tfm) . . . . . . . . . . . . . 1615.3.3 Modifier les polices avec METAFONT . . . . . . . . . . . . . . . 162

5.4 Les polices PostScript . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665.4.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1685.4.2 Les polices virtuelles . . . . . . . . . . . . . . . . . . . . . . . . 171Le concept de police virtuelle . . . . . . . . . . . . . . . . . . . . . . 171Utilisation de polices virtuelles . . . . . . . . . . . . . . . . . . . . . 171

5.4.3 Les mécanismes de dvips . . . . . . . . . . . . . . . . . . . . . 1725.4.4 Les mécanismes de pdflatex . . . . . . . . . . . . . . . . . . . . 1745.4.5 Installation d’une nouvelle police PostScript . . . . . . . . . . 1745.4.6 Les versions PostScript de la famille Computer Roman . . . . 1785.4.7 Utilisation des polices résidentes . . . . . . . . . . . . . . . . . 181Les polices résidentes . . . . . . . . . . . . . . . . . . . . . . . . . . 181Le module times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183La distribution psnfss . . . . . . . . . . . . . . . . . . . . . . . . . 184Le module pifont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

6 Indexation d’un document 1896.1 Sommaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

6.1.1 La table des matières principale . . . . . . . . . . . . . . . . . 1896.1.2 Tables des matières par sections : le module minitoc . . . . . . 191Fonctionnement du module minitoc . . . . . . . . . . . . . . . . . . 192Profondeur des mini-tables . . . . . . . . . . . . . . . . . . . . . . . 193Francisation du module minitoc . . . . . . . . . . . . . . . . . . . . 193Pagination dans les mini-tables . . . . . . . . . . . . . . . . . . . . . 194Choix des polices dans les mini-tables . . . . . . . . . . . . . . . . . 195Numérotation des mini-tables . . . . . . . . . . . . . . . . . . . . . . 195Le module mtcoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196Création de nouvelles tables des matières . . . . . . . . . . . . . . . 196

6.2 Création d’un index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1966.2.1 Relevé des mots à indexer . . . . . . . . . . . . . . . . . . . . . 1976.2.2 Structuration des données : le module makeidx . . . . . . . . . 197

Page 11: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page IX — #5 ii

ii

ii

TABLE DES MATIÈRES IX

Les trois niveaux d’entrées . . . . . . . . . . . . . . . . . . . . . . . 197Renvois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Entrées regroupées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198Critères de tri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Style de la numérotation . . . . . . . . . . . . . . . . . . . . . . . . 199Caractères spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

6.2.3 Tri des données : le programme makeindex . . . . . . . . . . . 2016.2.4 Constitution d’un index . . . . . . . . . . . . . . . . . . . . . . 2026.2.5 Style de l’index . . . . . . . . . . . . . . . . . . . . . . . . . . . 2026.2.6 Analyser les commandes d’index : le module showidx . . . . . 203

6.3 Création d’un glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 2036.4 Index multiples et nouveaux types d’index . . . . . . . . . . . . . . . . 204

6.4.1 Le module multind . . . . . . . . . . . . . . . . . . . . . . . . . 2056.4.2 Le module genindex . . . . . . . . . . . . . . . . . . . . . . . . 2056.4.3 Le module index . . . . . . . . . . . . . . . . . . . . . . . . . . 206

6.5 Bibliographies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2086.5.1 Bibliographies simples . . . . . . . . . . . . . . . . . . . . . . . 209Bibliographies à partir d’une base de données . . . . . . . . . . . . . 211Style des bibliographies . . . . . . . . . . . . . . . . . . . . . . . . . 212Utilisation de BiBTEX . . . . . . . . . . . . . . . . . . . . . . . . . . 214Première exécution de LATEX . . . . . . . . . . . . . . . . . . . . . . 214Exécution de BibTEX . . . . . . . . . . . . . . . . . . . . . . . . . . 215Deuxième exécution de LATEX . . . . . . . . . . . . . . . . . . . . . . 215Troisième exécution de LATEX . . . . . . . . . . . . . . . . . . . . . . 216Créer un nouveau fichier .bib . . . . . . . . . . . . . . . . . . . . . . 216Remarques complémentaires . . . . . . . . . . . . . . . . . . . . . . 220

6.5.2 Les modules cite et overcite . . . . . . . . . . . . . . . . . . . 2256.5.3 Bibliographies multiples . . . . . . . . . . . . . . . . . . . . . . 2276.5.4 Le module chapterbib . . . . . . . . . . . . . . . . . . . . . . . 2276.5.5 Le module bibunits . . . . . . . . . . . . . . . . . . . . . . . . 2286.5.6 Le module bibtopic . . . . . . . . . . . . . . . . . . . . . . . . . 2296.5.7 Références bibliographiques en bas de page . . . . . . . . . . . 232

6.6 Références externes : le module xr . . . . . . . . . . . . . . . . . . . . 2356.7 Références explicitées : le module varioref . . . . . . . . . . . . . . . . 2366.8 Références stylisées : le module fancyref . . . . . . . . . . . . . . . . . 238

7 Personnaliser LATEX 2457.1 Créer de nouvelles macrocommandes . . . . . . . . . . . . . . . . . . . 245

7.1.1 Créer une macro simple . . . . . . . . . . . . . . . . . . . . . . 2467.1.2 Créer une macro avec paramètres . . . . . . . . . . . . . . . . 2477.1.3 Créer une macro avec argument optionnel . . . . . . . . . . . . 247

7.2 Caractéristiques d’un document . . . . . . . . . . . . . . . . . . . . . . 2487.2.1 Renommer une macro . . . . . . . . . . . . . . . . . . . . . . . 249

7.3 Redéfinir une macro existante . . . . . . . . . . . . . . . . . . . . . . . 2497.3.1 Commandes fragiles et robustes . . . . . . . . . . . . . . . . . 2507.3.2 Contrôle d’une définition . . . . . . . . . . . . . . . . . . . . . 250

7.4 Créer de nouveaux compteurs . . . . . . . . . . . . . . . . . . . . . . . 250

Page 12: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page X — #6 ii

ii

ii

X TABLE DES MATIÈRES

7.5 Arithmétique avec LATEX : le module calc . . . . . . . . . . . . . . . . 2537.6 Le module ifthen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

Instructions répétitives . . . . . . . . . . . . . . . . . . . . . . . . . 256Contrôle par une variable booléenne . . . . . . . . . . . . . . . . . . 258

7.7 Macros interactives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2587.8 Le module xspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2597.9 Créer de nouveaux environnements . . . . . . . . . . . . . . . . . . . . 2607.10 Macros avec arguments courts . . . . . . . . . . . . . . . . . . . . . . . 2637.11 Organisation du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

7.11.1 Fichiers utilitaires . . . . . . . . . . . . . . . . . . . . . . . . . 2657.11.2 Recherche rapide des erreurs : le module syntonly . . . . . . . 265

8 Les mathématiques 2678.1 Le mode mathématique . . . . . . . . . . . . . . . . . . . . . . . . . . 267

8.1.1 Principes de fonctionnement . . . . . . . . . . . . . . . . . . . 2698.1.2 Commandes mathématiques de base . . . . . . . . . . . . . . . 2698.1.3 Symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Lettres grecques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272Opérateurs binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Symboles relationnels . . . . . . . . . . . . . . . . . . . . . . . . . . 273Flèches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Symboles en deux tailles . . . . . . . . . . . . . . . . . . . . . . . . . 275Fonctions mathématiques . . . . . . . . . . . . . . . . . . . . . . . . 276Symboles divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Lettres calligraphiques . . . . . . . . . . . . . . . . . . . . . . . . . . 277

8.1.4 Tableaux et champs . . . . . . . . . . . . . . . . . . . . . . . . 2788.1.5 Taille et style des symboles en mode mathématique . . . . . . 279Sélection de la taille dans les formules . . . . . . . . . . . . . . . . . 279Style de caractères en mode mathématique . . . . . . . . . . . . . . 280

8.1.6 Particularités du mode mathématique . . . . . . . . . . . . . . 281Accents en mode mathématique . . . . . . . . . . . . . . . . . . . . 281Espaces et points en mode mathématique . . . . . . . . . . . . . . . 282

8.1.7 Parenthèses et accolades . . . . . . . . . . . . . . . . . . . . . 2838.1.8 Symboles empilés . . . . . . . . . . . . . . . . . . . . . . . . . 2888.1.9 Structures et formules . . . . . . . . . . . . . . . . . . . . . . . 2918.1.10 L’environnement theorem . . . . . . . . . . . . . . . . . . . . . 294

8.2 Le module latexsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2968.3 Le module AMS-LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . 297

8.3.1 Le module amsmath . . . . . . . . . . . . . . . . . . . . . . . . 298Options du module amsmath . . . . . . . . . . . . . . . . . . . . . . 298Équations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306Fractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Fractions continues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308Blancs et points de suspension . . . . . . . . . . . . . . . . . . . . . 308Boîtes et empilements . . . . . . . . . . . . . . . . . . . . . . . . . . 309Intégrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

Page 13: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XI — #7 ii

ii

ii

TABLE DES MATIÈRES XI

Accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311Racines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311Flèches inférieures et supérieures extensibles . . . . . . . . . . . . . 312Césures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

8.3.2 Le module amstext . . . . . . . . . . . . . . . . . . . . . . . . . 3138.3.3 Le module amsbsy . . . . . . . . . . . . . . . . . . . . . . . . . 3138.3.4 Le module amsopn . . . . . . . . . . . . . . . . . . . . . . . . . 3148.3.5 Le module amscd . . . . . . . . . . . . . . . . . . . . . . . . . 3158.3.6 Le module amsthm . . . . . . . . . . . . . . . . . . . . . . . . 3168.3.7 Le module amsxtra . . . . . . . . . . . . . . . . . . . . . . . . 3188.3.8 Le module amstex . . . . . . . . . . . . . . . . . . . . . . . . . 3188.3.9 Le module amsintx . . . . . . . . . . . . . . . . . . . . . . . . 319

8.4 Les modules amsfonts et amssymb . . . . . . . . . . . . . . . . . . . . 3198.4.1 Le module amsfonts . . . . . . . . . . . . . . . . . . . . . . . . 3198.4.2 Le module amssymb . . . . . . . . . . . . . . . . . . . . . . . . 321

8.5 Autres modules mathématiques . . . . . . . . . . . . . . . . . . . . . . 3248.5.1 Le module theorem . . . . . . . . . . . . . . . . . . . . . . . . 3248.5.2 Le module delarray . . . . . . . . . . . . . . . . . . . . . . . . 3258.5.3 Le module dcolumn . . . . . . . . . . . . . . . . . . . . . . . . 3258.5.4 Le module pb-diagram . . . . . . . . . . . . . . . . . . . . . . . 3278.5.5 Le module trees . . . . . . . . . . . . . . . . . . . . . . . . . . 331

9 Dessins et graphiques 3359.1 L’environnement picture de LATEX . . . . . . . . . . . . . . . . . . . . 336

Placement des éléments . . . . . . . . . . . . . . . . . . . . . . . . . 337Boîtes et placement de texte . . . . . . . . . . . . . . . . . . . . . . 341

9.1.1 Compléments à l’environnement de dessin de LATEX :le module epic . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

9.1.2 Le module graphpap . . . . . . . . . . . . . . . . . . . . . . . . 3529.2 Création de graphiques avec METAFONT . . . . . . . . . . . . . . . . . 352

9.2.1 Utilisation directe de METAFONT . . . . . . . . . . . . . . . . 3539.2.2 METAFONT par le module mfpic . . . . . . . . . . . . . . . . . 359Installation de mfpic . . . . . . . . . . . . . . . . . . . . . . . . . . . 360Utilisation de mfpic . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

9.3 Le module graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370Le module graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . 375Le module lscape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377Le module color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378Le module trig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381Le module keyval . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382Le module epsfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384

9.4 Le module rotating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3849.5 Le module XY-pic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

9.5.1 Positionnement et placement des objets . . . . . . . . . . . . . 3889.5.2 Connexions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3899.5.3 Insertion de texte . . . . . . . . . . . . . . . . . . . . . . . . . 3909.5.4 Les sous-modules xymatrix et xyarrow . . . . . . . . . . . . . . 390

Page 14: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XII — #8 ii

ii

ii

XII TABLE DES MATIÈRES

9.5.5 Cadres avec le sous-module xyframe . . . . . . . . . . . . . . . 3939.5.6 Le sous-module xygraph . . . . . . . . . . . . . . . . . . . . . . 3939.5.7 Les autres sous-modules . . . . . . . . . . . . . . . . . . . . . . 395

9.6 Le module TikZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3969.6.1 Chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3979.6.2 Coordonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399Coordonnées absolues et relatives . . . . . . . . . . . . . . . . . . . 399Intersections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

9.6.3 Figures de base . . . . . . . . . . . . . . . . . . . . . . . . . . . 4009.6.4 Nœuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4029.6.5 Arêtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4049.6.6 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4059.6.7 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . 4069.6.8 Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4079.6.9 Boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4089.6.10 Graphes de fonctions . . . . . . . . . . . . . . . . . . . . . . . 4089.6.11 Sous-modules TikZ . . . . . . . . . . . . . . . . . . . . . . . . 4109.6.12 Compatibilité avec d’autres modules . . . . . . . . . . . . . . . 410

10 Chimie et physique avec LATEX 41310.1 Les modules XΥMTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

10.1.1 Généralités sur XΥMTEX . . . . . . . . . . . . . . . . . . . . . . 41410.1.2 Le module carom . . . . . . . . . . . . . . . . . . . . . . . . . 41710.1.3 Le module lowcycle . . . . . . . . . . . . . . . . . . . . . . . . 41810.1.4 Le module ccycle . . . . . . . . . . . . . . . . . . . . . . . . . . 41910.1.5 Le module hcycle . . . . . . . . . . . . . . . . . . . . . . . . . 42010.1.6 Le module hetarom . . . . . . . . . . . . . . . . . . . . . . . . 42010.1.7 Le module hetaromh . . . . . . . . . . . . . . . . . . . . . . . . 42310.1.8 Le module aliphat . . . . . . . . . . . . . . . . . . . . . . . . . 42310.1.9 Créer des structures composées . . . . . . . . . . . . . . . . . . 42510.1.10 Problèmes de compatibilité avec XΥMTEX . . . . . . . . . . . . 427

10.2 Le module chemfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42710.2.1 Liaisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42710.2.2 Angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42810.2.3 Longueurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42910.2.4 Ancrage des liaisons . . . . . . . . . . . . . . . . . . . . . . . . 42910.2.5 Attributs graphiques . . . . . . . . . . . . . . . . . . . . . . . . 43010.2.6 Sous-molécules . . . . . . . . . . . . . . . . . . . . . . . . . . . 43010.2.7 Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43110.2.8 Étiquettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43110.2.9 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

10.3 Les modules feynMF et feynmp . . . . . . . . . . . . . . . . . . . . . . 433Installation de feynmf . . . . . . . . . . . . . . . . . . . . . . . . . . 433Principe de fonctionnement de feynmf . . . . . . . . . . . . . . . . . 433Construction des diagrammes . . . . . . . . . . . . . . . . . . . . . . 435Mode immédiat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

Page 15: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XIII — #9 ii

ii

ii

TABLE DES MATIÈRES XIII

11 Multilinguisme 44711.1 Traduire les mots-clés de LATEX . . . . . . . . . . . . . . . . . . . . . . 44811.2 Les césures avec LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 44911.3 Babel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

11.3.1 Les langues supportées par babel . . . . . . . . . . . . . . . . . 45311.3.2 Installation de babel . . . . . . . . . . . . . . . . . . . . . . . . 45311.3.3 Utilisation de babel . . . . . . . . . . . . . . . . . . . . . . . . 45511.3.4 Problèmes de compatibilité avec Babel . . . . . . . . . . . . . 45711.3.5 L’option french de Babel . . . . . . . . . . . . . . . . . . . . . 45711.3.6 L’option german de Babel . . . . . . . . . . . . . . . . . . . . 46011.3.7 L’option dutch de Babel . . . . . . . . . . . . . . . . . . . . . . 46211.3.8 L’option russian de Babel . . . . . . . . . . . . . . . . . . . . . 46211.3.9 L’option ukrainian de Babel . . . . . . . . . . . . . . . . . . . 46411.3.10 L’option greek de Babel . . . . . . . . . . . . . . . . . . . . . . 46511.3.11 Les langues latines avec Babel . . . . . . . . . . . . . . . . . . 46911.3.12 Les langues scandinaves avec Babel . . . . . . . . . . . . . . . 471

11.4 Le module e-french . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472Macros du module french . . . . . . . . . . . . . . . . . . . . . . . . 473Environnements du module french . . . . . . . . . . . . . . . . . . . 473Ponctuation française . . . . . . . . . . . . . . . . . . . . . . . . . . 474Lettrines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475Symboles particuliers avec le module french . . . . . . . . . . . . . . 477Outils d’indexation et de références du module french . . . . . . . . 477Contrôle des fonctionnalités du module french . . . . . . . . . . . . 478Francisation de la classe letter . . . . . . . . . . . . . . . . . . . . . 478

11.4.1 Problèmes de compatibilité . . . . . . . . . . . . . . . . . . . . 47811.5 Les langues asiatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

11.5.1 Les encodages des langues asiatiques . . . . . . . . . . . . . . . 47911.5.2 Les polices asiatiques . . . . . . . . . . . . . . . . . . . . . . . 48011.5.3 Fonctionnement du module CJK . . . . . . . . . . . . . . . . . 481Environnements de CJK . . . . . . . . . . . . . . . . . . . . . . . . . 481Principales commandes de CJK . . . . . . . . . . . . . . . . . . . . 483Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484

11.5.4 Le module pinyin . . . . . . . . . . . . . . . . . . . . . . . . . 48511.6 Le module vietnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48611.7 L’arabe et l’hébreu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486

11.7.1 Le module arabtex . . . . . . . . . . . . . . . . . . . . . . . . . 48611.7.2 Le module hebtex . . . . . . . . . . . . . . . . . . . . . . . . . 494

11.8 Le sanscrit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49811.8.1 Principe de fonctionnement . . . . . . . . . . . . . . . . . . . . 49911.8.2 Commandes du module devanagari . . . . . . . . . . . . . . . 50011.8.3 Options de devnag . . . . . . . . . . . . . . . . . . . . . . . . . 500

11.9 Phonétique internationale : le module tipa . . . . . . . . . . . . . . . . 50111.9.1 Installation du module tipa . . . . . . . . . . . . . . . . . . . . 501Options du module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502Environnements IPA . . . . . . . . . . . . . . . . . . . . . . . . . . . 502Saisie des symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

Page 16: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XIV — #10 ii

ii

ii

XIV TABLE DES MATIÈRES

Ligatures et ponctuation . . . . . . . . . . . . . . . . . . . . . . . . 503Saisie simplifiée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503Saisie des accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505Exposants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506Saisie des tons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506Macros générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

11.10Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508

12 Modifier les réglages de LATEX 509Généralités sur les méthodes de modification . . . . . . . . . . . . . . . . . 509Thème I Modifier les éléments d’une page . . . . . . . . . . . . . . . . . 511

Variation I.a Modifier les dimensions de page . . . . . . . . . . . . 511Variation I.b Le module geometry . . . . . . . . . . . . . . . . . . . 515

Thème II Modifier les formats de sections . . . . . . . . . . . . . . . . . . 517Variation II.a Modifier la numérotation des sections . . . . . . . . . 517Variation II.b En-têtes des sections et paragraphes . . . . . . . . . . 520Variation II.c Créer de nouvelles sections . . . . . . . . . . . . . . . 524Variation II.d Parties et chapitres . . . . . . . . . . . . . . . . . . . 526

Thème III Modifier les paragraphes . . . . . . . . . . . . . . . . . . . . . . 530Variation III.a Modifier l’indentation . . . . . . . . . . . . . . . . . . 530Variation III.b Modifier l’espacement des paragraphes . . . . . . . . 531Variation III.c Modifier l’interlignage . . . . . . . . . . . . . . . . . . 531

Thème IV Modifier en-têtes et pieds de pages . . . . . . . . . . . . . . . . 532Variation IV.a Modifier les en-têtes . . . . . . . . . . . . . . . . . . . 534Variation IV.b Nouveaux en-têtes et pieds de page . . . . . . . . . . 535Variation IV.c Nouveaux styles de page . . . . . . . . . . . . . . . . 536Variation IV.d En-têtes de dictionnaires . . . . . . . . . . . . . . . . 538Variation IV.e Le module fancyhdr . . . . . . . . . . . . . . . . . . . 540

Thème V Modifier les notes de bas de page . . . . . . . . . . . . . . . . . 543Variation V.a Modifier la numérotation des notes . . . . . . . . . . 543Variation V.b Modifier le compteur des notes . . . . . . . . . . . . . 544Variation V.c Modifier les symboles d’appel d’une note . . . . . . . 544Variation V.d Modifier la composition des notes . . . . . . . . . . . 545Variation V.e Le module fnpara . . . . . . . . . . . . . . . . . . . . 547Variation V.f Le module footnpag . . . . . . . . . . . . . . . . . . . 548Variation V.g Le module footmisc . . . . . . . . . . . . . . . . . . . 548

Thème VI Modifier les notes marginales . . . . . . . . . . . . . . . . . . . 550Thème VII Modifier les paramètres d’un tableau . . . . . . . . . . . . . . . 550Thème VIII Modifier les paramètres de colonnage . . . . . . . . . . . . . . . 551Thème IX Modifier les environnements flottants . . . . . . . . . . . . . . . 552

Variation IX.a Modifier les paramètres d’un flottant . . . . . . . . . 552Variation IX.b Modifier les légendes d’un flottant . . . . . . . . . . . 554

Thème X Modifier les listes d’énumération . . . . . . . . . . . . . . . . . 556Variation X.a Modifier une liste non numérotée . . . . . . . . . . . 556Variation X.b Modifier une liste de description . . . . . . . . . . . . 557Variation X.c Modifier une liste numérotée . . . . . . . . . . . . . . 558Variation X.d Créer un nouveau type de liste . . . . . . . . . . . . . 559

Page 17: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XV — #11 ii

ii

ii

TABLE DES MATIÈRES XV

Variation X.e Le module enumerate . . . . . . . . . . . . . . . . . . 564Thème XI Modifier les paramètres

du mode mathématique . . . . . . . . . . . . . . . . . . . . . . 565Thème XII Modifier le style des index . . . . . . . . . . . . . . . . . . . . . 566

Variation XII.a Créer un fichier de style . . . . . . . . . . . . . . . . . 569Variation XII.b Index sur trois colonnes . . . . . . . . . . . . . . . . . 570

Thème XIII Modifier les tables des matières . . . . . . . . . . . . . . . . . . 572Variation XIII.a Modifier la structure de la table

des matières . . . . . . . . . . . . . . . . . . . . . . . 572Variation XIII.b Nouveaux types d’entrées dans la table

des matières . . . . . . . . . . . . . . . . . . . . . . . 574Variation XIII.c Modifier les listes de figures et de tableaux . . . . . . 574Variation XIII.d Créer de nouveaux types de tables

et sommaires . . . . . . . . . . . . . . . . . . . . . . . 575

III ANNEXES 577

A Les unités de mesure de LATEX 579A.1 Unités de mesure fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . 579A.2 Unités relatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580A.3 Grandeurs rigides et grandeurs élastiques . . . . . . . . . . . . . . . . 581A.4 Manipuler les dimensions des objets . . . . . . . . . . . . . . . . . . . 582A.5 Dimensions des polices . . . . . . . . . . . . . . . . . . . . . . . . . . . 583

B Encodages et polices de LATEX2ε 585B.1 Saisie du texte : le module inputenc . . . . . . . . . . . . . . . . . . . 586B.2 Déclaration d’un encodage : le module fontenc . . . . . . . . . . . . . 586B.3 L’encodage OT1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587

B.3.1 La famille Computer Roman . . . . . . . . . . . . . . . . . . . 587B.3.2 Polices complémentaires pour LATEX . . . . . . . . . . . . . . . 595B.3.3 Répartition des caractères en encodage OT1 . . . . . . . . . . 596Polices de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596Symboles mathématiques . . . . . . . . . . . . . . . . . . . . . . . . 599

B.3.4 Les commandes particulières de l’encodage OT1 . . . . . . . . 600B.4 Les encodages OML, OMS et OMX . . . . . . . . . . . . . . . . . . . . 601B.5 L’encodage T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601

B.5.1 Installation des polices de la famille ec . . . . . . . . . . . . . . 604B.5.2 Disposition des caractères en encodage T1 . . . . . . . . . . . 604B.5.3 Les commandes particulières de l’encodage T1 . . . . . . . . . 606

B.6 Les encodages cyrilliques . . . . . . . . . . . . . . . . . . . . . . . . . . 606B.6.1 La famille des polices LH . . . . . . . . . . . . . . . . . . . . . 607B.6.2 Les encodages OT2 et LWN . . . . . . . . . . . . . . . . . . . 610B.6.3 L’encodage LCY . . . . . . . . . . . . . . . . . . . . . . . . . . 612B.6.4 Les encodages T2 et X2 . . . . . . . . . . . . . . . . . . . . . . 612B.6.5 Les encodages de saisie . . . . . . . . . . . . . . . . . . . . . . 613

B.7 L’encodage LGR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617

Page 18: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XVI — #12 ii

ii

ii

XVI TABLE DES MATIÈRES

B.8 L’encodage U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618B.9 L’encodage T3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618B.10 L’encodage ET5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621B.11 La structure générale des fichiers d’encodage . . . . . . . . . . . . . . 623

C Les extensions de fichiers 627

D La classe letter 633D.1 Fonctionnement de la classe letter . . . . . . . . . . . . . . . . . . . . 633D.2 La classe letter francisée . . . . . . . . . . . . . . . . . . . . . . . . . . 635

E Présentations avec LATEX 637E.1 Transparents avec la classe slides . . . . . . . . . . . . . . . . . . . . . 637Les environnements de la classe slides . . . . . . . . . . . . . . . . . . . . . 638E.2 Présentations avec le module beamer . . . . . . . . . . . . . . . . . . . 639

E.2.1 Les thèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639E.2.2 Les commandes . . . . . . . . . . . . . . . . . . . . . . . . . . 640E.2.3 Le module beamerarticle . . . . . . . . . . . . . . . . . . . . . 642E.2.4 Francisation des mots-clés . . . . . . . . . . . . . . . . . . . . . 642

F Structure modèle d’une installation LATEX 645F.1 Organisation de l’arbre standard . . . . . . . . . . . . . . . . . . . . . 645F.2 Les chemins d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646

G Les satellites de LATEX 649Pilotes de fichier dvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649Le programme dvips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650Outils annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652Catalogue des polices PostScript . . . . . . . . . . . . . . . . . . . . . . . . 653Traitement des fichiers PostScript . . . . . . . . . . . . . . . . . . . . . . . . 653

La suite psutils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654Utilitaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655Programmes de conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655

H Production de documents PDF : le module hyperref 657H.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658H.2 Chargement du module . . . . . . . . . . . . . . . . . . . . . . . . . . 659H.3 Configuration du module . . . . . . . . . . . . . . . . . . . . . . . . . . 659H.4 Les commandes de base . . . . . . . . . . . . . . . . . . . . . . . . . . 659H.5 Les options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662

H.5.1 Options générales de configuration . . . . . . . . . . . . . . . . 663H.5.2 Options de liens . . . . . . . . . . . . . . . . . . . . . . . . . . 664H.5.3 Options d’affichage du document PDF . . . . . . . . . . . . . . 665H.5.4 Options d’information . . . . . . . . . . . . . . . . . . . . . . . 666

H.6 Polices utilisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667H.7 Les commandes spécifiques à Acrobat . . . . . . . . . . . . . . . . . . 667H.8 La création de formulaires . . . . . . . . . . . . . . . . . . . . . . . . . 668H.9 Exemples complets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670

Page 19: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XVII — #13 ii

ii

ii

TABLE DES MATIÈRES XVII

H.9.1 Exemple de document . . . . . . . . . . . . . . . . . . . . . . . 670H.9.2 Exemple de formulaire . . . . . . . . . . . . . . . . . . . . . . . 671

I Dénomination des polices PostScript 673I.1 Le système Fontname . . . . . . . . . . . . . . . . . . . . . . . . . . . 673

I.1.1 Principe de dénomination . . . . . . . . . . . . . . . . . . . . . 674Cas des polices PostScript résidentes . . . . . . . . . . . . . . . . . . 675

I.2 Les encodages littéraux . . . . . . . . . . . . . . . . . . . . . . . . . . 676I.2.1 Les principaux encodages en vigueur . . . . . . . . . . . . . . . 678I.2.2 Les fichiers d’encodage littéral . . . . . . . . . . . . . . . . . . 679I.2.3 Tableaux d’encodages comparés . . . . . . . . . . . . . . . . . 679

J Création de polices virtuelles 695Le module fontinst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695

Généralités sur fontinst . . . . . . . . . . . . . . . . . . . . . . . . . . 696Exemple 1 : une police virtuelle simple . . . . . . . . . . . . . . . . . 698Exemple 2 : caractères cachés et réencodage des polices . . . . . . . . 700Exemple 3 : le fichier latin.mtx . . . . . . . . . . . . . . . . . . . . . . 702Exemple 4 : la famille complète . . . . . . . . . . . . . . . . . . . . . 703Exemple 5 : petites capitales . . . . . . . . . . . . . . . . . . . . . . . 704Exemple 6 : polices expertes . . . . . . . . . . . . . . . . . . . . . . . 705Exemple 7 : caractères plus espacés . . . . . . . . . . . . . . . . . . . 705Exemple 8 : caractères soulignés . . . . . . . . . . . . . . . . . . . . . 708Exemple 9 : caractères barrés . . . . . . . . . . . . . . . . . . . . . . 711Exemple 10 : caractères légèrement inclinés . . . . . . . . . . . . . . . 712Exemple 11 : police composite . . . . . . . . . . . . . . . . . . . . . . . 714Exemple 12 : caractères négatifs . . . . . . . . . . . . . . . . . . . . . . 716Exemple 13 : caractères gras artificiels . . . . . . . . . . . . . . . . . . 718Exemple 14 : ligatures . . . . . . . . . . . . . . . . . . . . . . . . . . . 719Exemple 15 : caractères limites . . . . . . . . . . . . . . . . . . . . . . 726

IV RÉFÉRENCE 733

Référence rapide 735

Bibliographie 749

Lexique anglais-français des termes typographiques 753

Index 757

Page 20: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XVIII — #14 ii

ii

ii

Page 21: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XIX — #15 ii

ii

ii

Introduction

Quod non insulse scribis tetrasticha quaedam,Disticha quodbelle pauca, Sabelle, facis,Laudo nec admiror. Facile est epigrammata belleScribere, sed librum scribere difficile est.

Martial, Épigrammes, Livre VIII. lxxxv

à Hélène

À la fin des années soixante-dix, alors qu’il corrigeait les épreuves du premier volume deson Art de la Programmation (The Art of Computer Programming), le mathématicienet informaticien Donald Knuth, constatant la très médiocre qualité de la typographienumérique de l’époque, décida de créer pour ses propres besoins un système capablede satisfaire le plus haut degré d’exigence en matière de composition et de prendreen charge, en particulier, la mise en pages très spécifique des mathématiques. Lacommunauté scientifique dans son ensemble témoigna tout de suite de son intérêt pource système qui, outre sa gratuité, annonçait des caractéristiques tout à fait novatrices.

C’est après une étude approfondie des règles typographiques en vigueur aussi biendans le domaine scientifique que littéraire que D. Knuth définit les objectifs et lesprincipes de base sur lesquels reposerait son programme. Il fallut plusieurs annéespour que le projet atteigne sa pleine maturité et, en fait, ce sont deux programmes quivirent simultanément le jour : METAFONT et TEX. Ils correspondent aux deux facettesprincipales de la tradition du livre : la gravure et la composition. METAFONT est unprogramme destiné à la création de polices de caractères et de symboles tandis queTEX est l’outil de mise en page.

Le nom de TEX, qui devrait en fait s’appeler τεχ, provient de la racine grecque tèqnhqui signifie « art, métier ». Les concepts qui président à son fonctionnement en fontun système aux performances à ce jour inégalées :

– TEX est un langage. Il est entièrement paramétrable et programmable. Il com-porte environ trois cent vingt commandes de base dites « primitives » assortiesde règles syntactiques qui permettent de construire tous les outils nécessaires àla composition des textes ;

– TEX assure la mise en pages sur la base de paragraphes entiers et non pas lignepar ligne comme c’est le cas pour la plupart des traitements de textes ordinaires.

Page 22: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XX — #16 ii

ii

ii

XX Introduction

Les algorithmes de coupure de lignes fournissent ainsi des résultats incompara-blement meilleurs ;

– TEX est capable de gérer plusieurs langues à la fois en respectant leurs particu-larités en matière de césures ;

– TEX utilise la notion de fichier source à exécuter qui assure une portabilité totaledes documents sur les diverses plates-formes existantes ;

– TEX dispose d’un système d’unités de mesure flexibles qui autorise une extrêmesouplesse dans la recherche des espacements, aussi bien entre les mots qu’entreles paragraphes ;

– TEX se fonde par ailleurs sur un système de manipulation de boîtes qui permetde réaliser les mises en pages les plus complexes.

Avec tous ces éléments de base, il est possible de forger des outils qui simplifient etoptimisent les tâches de rédaction d’un ouvrage. Un ensemble cohérent d’outils peutêtre réuni dans ce qu’on appelle un format : c’est une autre caractéristique de TEX.Dans les premiers temps, les utilisateurs se servaient essentiellement du format dit plainconstruit par D. Knuth lui-même, jusqu’au jour, au début des années quatre-vingt-dix,où un nouveau format est apparu : il s’agit de LATEX conçu par Leslie Lamport.

Le succès de LATEX fut immédiat car, d’une part, il apportait une syntaxe unifiée etsimplifiée qui rendait l’utilisation de TEX très facilement accessible et, d’autre part,il déchargeait entièrement les utilisateurs du souci de formater et structurer leursdocuments. Pour prolonger la comparaison avec les métiers du livre, il étendait ainsiles capacités du système à la phase de l’édition.

LATEX a su exploiter de façon très intelligente toutes les capacités de TEX et aintroduit des notions nouvelles qui ont permis de clarifier bien des points difficiles deTEX et de rendre son utilisation transparente. Citons en particulier :

— la notion d’environnement ;— les arguments optionnels dans les macros ;— le système de gestion des polices de caractères qui ouvre la voie à des dévelop-

pements infinis ;— la notion de module (en anglais package) qui rend le système extensible. C’est

un des points qui ont le plus contribué au succès de LATEX car il a permis dedévelopper une bibliothèque considérable d’extensions dans les domaines les plusvariés.

Depuis que LATEX existe, TEX n’est plus seulement un outil génial réservé aux mathé-maticiens et astrophysiciens. Les champs d’application concernent maintenant l’éditionde documents dans toutes les disciplines y compris les disciplines littéraires : établir unapparat critique, faire cohabiter du français, du grec, du russe, du chinois, de l’hébreuet du sanscrit dans un même texte ne présentent rigoureusement aucune difficulté, toutcomme introduire des schémas de chimie organique ou des diagrammes de Feynman.

Comment lire ce livre ? Compte-tenu des développements récents, nous avonschoisi, en plus d’une présentation classique de la syntaxe et de l’utilisation de LATEX,de mettre un accent tout particulier sur quelques points forts qui sont insuffisammentou pas du tout traités dans la littérature en langue française :

– les nombreux modules disponibles : plus de 175 modules, dont la documentationn’est pas toujours facile d’accès, sont ici présentés en détail ;

– l’utilisation des polices PostScript ;

Page 23: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XXI — #17 ii

ii

ii

XXI

– l’utilisation et la création de fontes virtuelles ;– la modification des réglages de LATEX ;– les possibilités graphiques de LATEX ;– le multilinguisme. À une époque où les grands organismes scientifiques ou uni-versitaires se développent à l’échelle de l’Europe et s’ouvrent sur le monde entier,la question de l’édition multilingue devient en effet primordiale.

Le sous-titre de cet ouvrage, « Apprentissage, Guide et Référence », évoque lestrois niveaux d’utilisation. La première partie est destinée aux débutants absolus quipourront, à travers trois leçons préliminaires, acquérir l’intégralité des bases du fonc-tionnement de LATEX et seront alors en mesure de se lancer immédiatement dans laproduction de leurs propres documents. Ces leçons seront aussi profitables pour lesutilisateurs ayant déjà une certaine pratique de TEX mais qui abordent LATEX pour lapremière fois.

La deuxième partie présente les macros disponibles dans LATEX lui-même ou biendans de nombreux modules spécialisés. Chaque chapitre aborde un aspect particulierde la production d’un document. La lecture des quatre premiers chapitres est indis-pensable : ils présentent le fonctionnement général de LATEX ainsi que les questionsd’ordre structurel et stylistique. Le chapitre 5 est important lui aussi puisqu’il concernela gestion des polices de caractères : la question de l’utilisation des polices PostScripty est particulièrement développée. Le chapitre 6 explique comment LATEX s’acquittedes tâches typiquement éditoriales : constitution de tables des matières, d’index, debibliographies, etc. Le chapitre 7 traite de la question passionnante de la création denouvelles commandes : l’utilisateur peut facilement définir ses propres macros. Les cha-pitres 8 et 10 sont consacrés aux mathématiques qui restent un des grands points fortsde TEX et à quelques grands modules scientifiques : le module AMS-LATEX est ainsiprésenté dans son intégralité, ainsi que XΥMTEX pour la chimie organique, chemfigpour la chimie moléculaire et feynMF pour la physique nucléaire. Le chapitre 9 étudiediverses solutions pour la création de graphiques, diagrammes, illustrations, etc. Lechapitre 11 porte sur le multilinguisme : il n’épuise pas toutes les possibilités de LATEXmais couvre un très grand nombre de langues les plus diverses (jusqu’au sanscrit, àl’ourdou ou à la phonétique internationale).

Pour terminer cette deuxième partie, un très long chapitre est consacré entièrement àla question récurrente de la modification du comportement de LATEX. Tous les réglagesprédéfinis de LATEX peuvent être modifiés mais il n’est pas toujours facile d’en trouverl’accès. Ce chapitre passe en revue tous les grands thèmes sur lesquels il exécute denombreuses variations.

Les annexes abordent ensuite des thèmes plus particuliers : les unités de mesure,les encodages, les classes spécialisées (courrier, transparents), les pilotes et autres pro-grammes satellites de TEX. Deux annexes importantes traitent de la question despolices virtuelles et donnent de nombreux exemples de leurs possibilités très étendues.La seconde édition ajoute une annexe entièrement consacrée à la génération de docu-ments au format PDF et au module hyperref, qui permet de créer des liens hypertextesà partir d’un fichier source LATEX.

La troisième partie est destinée à la référence rapide. Toutes les macros de LATEXy sont reprises afin de permettre de retrouver très rapidement leur syntaxe. On ytrouvera également les tables de symboles mathématiques de LATEX ainsi que celles dessymboles supplémentaires de la distribution AMS-LATEX. Une bibliographie recense les

Page 24: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page XXII — #18 ii

ii

ii

XXII Introduction

principaux ouvrages en français et en anglais qui devraient figurer dans toute bonnebibliothèque (ou plutôt biblioTEX !).

L’un des objectifs majeurs de cet ouvrage a été de montrer que LATEX était un outilqui s’adressait aussi bien aux auteurs de travaux littéraires qu’aux scientifiques : hel-lénistes, orientalistes, éditeurs critiques, spécialistes de littérature et de linguistiquey trouveront, tout autant que les mathématiciens, physiciens, chimistes ou informa-ticiens, un outil d’édition puissant et simple d’emploi. Nous nous sommes efforcés defaire une présentation aussi complète et précise que possible de ce système et de fournirau lecteur un instrument de travail efficace.

La troisième édition de cet ouvrage a été l’occasion d’une vaste mise à jour et intro-duit de nouvelles sections consacrées à des modules essentiels qui se sont développés etimposés au cours de la dernière décennie. On trouvera en particulier des présentationsapprofondies des modules TikZ, beamer et chemfig.

Je veux remercier ici tout particulièrement mon ami François Vercken†, musicien etcompositeur, passionné de LATEX, qui a bien voulu relire les épreuves avec une vigilanceinfatigable et mener une chasse implacable aux imperfections et aux erreurs. Le lecteurvoudra bien nous pardonner si malgré tout le soin que nous y avons mis, nous n’avonspas réussi à toutes les débusquer.

Bernard DesgraupesTroisième édition, Paris, novembre–décembre

Page 25: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 1 — #19 ii

ii

ii

Première partie

APPRENTISSAGE

Page 26: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 2 — #20 ii

ii

ii

Page 27: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 3 — #21 ii

ii

ii

Leçon 1

Où l’on parle de source. . .

Les trois leçons qui suivent s’adressent aux débutants absolus ou bien aux lecteursayant déjà une expérience de TEX lui-même et souhaitant passer à LATEX. Nous allonsdonner, en une dizaine de pages, un aperçu aussi complet que possible des capacitésde LATEX et de son mode de fonctionnement. Le premier contact est parfois déroutantmais nous verrons qu’en réalité, il suffit de très peu de temps pour s’habituer auxparticularités de LATEX. Après lecture de ces quelques pages, chacun sera déjà enmesure de préparer des documents complets. Les bases sont simples et le reste estaffaire d’expérience.

À quoi sert LATEX?

Tout simplement à créer des documents de la plus haute qualité typographique enlibérant l’auteur de toutes les tâches de mise en pages et de construction : ces tâchespeuvent aller de la simple structuration du document en chapitres, sections, para-graphes à la confection d’index et de tables des matières, à la tenue à jour des nu-mérotations et des références croisées, la gestion de bibliographies, la construction detableaux, l’inclusion de graphiques, la composition de formules mathématiques, l’in-sertion de textes multilingues, etc.

Le principe de base consiste à donner des ordres à LATEX au sein même du textepour lui indiquer ce que l’on souhaite : LATEX exécute les ordres qu’on lui donne etproduit un document mis en pages.

Toutes ces notions vont être abordées sur un exemple concret. LATEX étant aussi douépour la confection de textes scientifiques que littéraires, nous allons nous mettre dansla situation d’un professeur de littérature préparant une édition critique des traitésscientifiques de Blaise Pascal. Nous commencerons avec le Traité sur la roulette. Lapremière chose à faire sera de créer un fichier que nous appellerons roulette.tex.Ce fichier constituera ce que l’on appelle habituellement le fichier source : c’est luiqui contient le texte que l’on veut éditer. Pour rédiger le fichier source, il faut être enpossession d’un éditeur de texte : il s’agit d’un programme permettant de rédiger et decréer des fichiers au format texte, c’est-à-dire contenant exclusivement le texte qu’on asaisi, sans y ajouter des instructions cachées comme le font la plupart des traitementsde texte. Il en existe d’excellents sur toutes les plates-formes : en particulier emacs sousunix, ou bien Alpha sous MacOS qui possède un mode spécialement dédié à LATEX.L’usage d’un traitement de texte est déconseillé : si l’on n’a pas d’autres possibilités,il faudra veiller à sauvegarder le fichier en format texte.

Exécution d’un fichier source

Voici quel sera, pour commencer, le contenu de notre fichier roulette.tex :

Page 28: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 4 — #22 ii

ii

ii

4 LEÇON 1

\documentclass[a4paper]{article}\begin{document}La roulette est une ligne si commune, qu’après la droite et lacirculaire, il n’y en a point de si fréquente ; et elle se décrit sisouvent aux yeux de tout le monde qu’il y a lieu de s’étonner qu’ellen’ait point été considérée par les anciens, dans lesquels on n’entrouve rien : car ce n’est autre chose que le chemin que fait enl’air le clou d’une roue, quand elle roule de son mouvementordinaire, depuis que ce clou commence à s’élever de terre, jusqu’àce que le roulement continu de la roue l’ait rapporté à terre, aprèsun tour entier achevé.\end{document}

Cet exemple nous montre la structure adoptée par tout document source destinéà LATEX : une première ligne contient ce que l’on appelle une déclaration de classe.Nous déclarons ici un document de classe article qui adoptera le format d’une feuillede papier A4. Tous les mots précédés par une contre-oblique \ sont des commandes :ce sont donc les ordres que l’on place dans le document et que LATEX doit comprendre,interpréter et exécuter. La commande \begin{document} indique où commence ef-fectivement le document. Ce dernier s’achève impérativement avec une commande\end{document}.

Une fois que le fichier roulette.tex est prêt, il faut le faire exécuter par LATEX.Suivant les systèmes, on devra écrire (dans une fenêtre de terminal) une commandetelle que

latex roulette.tex

ou bien lancer le programme TEX (par exemple MikTeX sous Windows ou TeXShopsous Mac OS X) et demander l’exécution à partir d’un article de menu qui pourraits’appeler Tex. . . ou Typeset. . . ou Exécuter. . . , etc. Chacun devra consulter la do-cumentation de son implémentation de TEX. Il faut savoir en effet que LATEX n’esten réalité qu’une forme dérivée de TEX : lorsque l’on donne un fichier à exécuter àLATEX, c’est en réalité TEX qui fait le travail. Il va lire la signification des commandesqu’il rencontre dans ce que l’on appelle un format : LATEX est en fait un format pourTEX. Il existe souvent un menu, dans le programme TEX, qui permet de choisir leformat souhaité. Dans notre cas ce sera toujours latex. Ne confondez pas, d’autrepart, le programme TEX avec l’éditeur de texte qui vous aura permis de créer le fi-chier roulette.tex. Ce sont des programmes distincts et on passe sans cesse de l’unà l’autre.

LATEX, après exécution de roulette.tex, produit un fichier nommé roulette.dvi.C’est ce fichier qui contient le document mis en forme et prêt à l’édition. Là encore, ilpeut y avoir de petites différences suivant les systèmes mais le principe reste toujours lemême : on doit visualiser le fichier dvi pour juger du résultat. Cela se fait soit à partird’un article de menu ad hoc, soit en appelant un programme dit prévisualisateur dedvi comme xdvi, dvipreview etc. Une autre possibilité consiste à utiliser le programmepdflatex plutôt que latex : cela produit directement un document pdf plutôt qu’undvi. La commande, depuis une fenêtre de terminal, sera dans ce cas :

pdflatex roulette.tex

Page 29: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 5 — #23 ii

ii

ii

5

Quelle que soit la méthode adoptée, on verra finalement à l’écran notre texte s’affi-cher comme ceci :

La Roulette est une ligne si commune, qu’après la droite et la circulaire,il n’y en a point de si fréquente ; et elle se décrit si souvent aux yeux detout le monde qu’il y a lieu de s’étonner qu’elle n’ait point été considéréepar les anciens, dans lesquels on n’en trouve rien : car ce n’est autre choseque le chemin que fait en l’air le clou d’une roue, quand elle roule de sonmouvement ordinaire, depuis que ce clou commence à s’élever de terre,jusqu’à ce que le roulement continu de la roue l’ait rapporté à terre, aprèsun tour entier achevé.

Le résultat produit est un paragraphe parfaitement assemblé dont les lignes sontjustifiées à gauche et à droite. On peut d’ores et déjà noter plusieurs points importants :

— le texte source peut être saisi sans se préoccuper le moins du monde des coupuresde lignes car c’est LATEX qui s’en charge.

— on n’a pas à se préoccuper non plus de l’espace entre les mots : celui-ci estcalculé automatiquement par LATEX de façon à obtenir un paragraphe équilibréau mieux. Il n’y a pas de blanc fixe : l’espace entre les mots peut être amené àvarier en fonction des circonstances.

— certains mots peuvent être coupés en fin de ligne par LATEX.— il se peut que le résultat que vous obtenez ne soit pas tout à fait identique au

texte ci-dessus : cela dépend évidemment des marges de votre document. Il sepeut aussi que les lettres accentuées aient été supprimées si votre installationn’est pas encore adaptée à la langue française : le problème des accents seraabordé par la suite et peut être résolu de diverses manières. Nous ne nous enpréoccuperons pas pour le moment. C.f. § 3.5.1.

La notion de commande

Nous allons voir maintenant comment introduire des commandes dans le texte. Lescommandes, aussi appelées macros, sont toujours préfixées par une contre-oblique \ :c’est comme ça que LATEX les distingue du reste du texte. Par exemple, LATEX netenant pas compte des fins de ligne dans le document source, il doit exister des com-mandes permettant d’aller à la ligne : le plus simple est d’utiliser la commande \parqui signifie « fin de paragraphe ». Lorsqu’il la rencontre, LATEX compose le paragraphequ’il était en train de lire puis en commence un nouveau dès qu’il rencontre le motsuivant. Voyons l’exemple suivant : la colonne de gauche contient le texte source etcelle de droite ce que l’on obtient après exécution par LATEX :

\noindent Le feu P. Mersenne proposadonc la recherche de la nature de cetteligne à tous ceux de l’Europe qu’il encrût capables, et entre autres àGalilée. Mais aucun n’y put réussir,et tous en désespérèrent.\par\noindentPlusieurs années se passèrent de cettesorte jusqu’en 1694.

Le feu P. Mersenne proposa doncla recherche de la nature de cetteligne à tous ceux de l’Europe qu’ilen crût capables, et entre autres àGalilée. Mais aucun n’y put réus-sir, et tous en désespérèrent.Plusieurs années se passèrent decette sorte jusqu’en 1694.

Page 30: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 6 — #24 ii

ii

ii

6 LEÇON 1

La commande \noindent sert à empêcher l’indentation des paragraphes. Signalonsqu’une autre façon de passer à la ligne consiste à laisser une ligne blanche dans lefichier source : autrement dit, deux sauts à la ligne dans le fichier source provoquentun passage à la ligne dans le document produit.

Avec LATEX, tout fonctionne au moyen de commandes qui émaillent ainsi le texte :certaines commandes ont un effet ponctuel comme les deux que nous venons de men-tionner, d’autres un effet plus durable. Par exemple, la commande \large permet depasser à un corps de caractères un peu plus grand. Si ce changement de corps neconcerne qu’une partie du texte, il faudra la délimiter au moyen d’accolades, ce quinous conduit à la notion de groupe ou de zone : si une commande est placée dans unerégion délimitée par une paire d’accolades { et }, sa portée sera limitée à cette zone,sinon elle restera valable jusqu’à ce que l’on rencontre une nouvelle macro définissantun autre réglage. Ajoutons ainsi un titre à notre texte :

{\large HISTOIRE DE LA ROULETTE}\par appelée autrement trochoïdeou cycloïde\par {\small où l’on rapportepar quels degrés on est arrivéà la connaissancede la nature de cette ligne.}\par La Roulette est une ligne\dots.

HISTOIRE DE LA ROULETTEappelée autrement trochoïde ou cy-cloïdeoù l’on rapporte par quels degrés on estarrivé à la connaissance de la nature decette ligne.La Roulette est une ligne. . .

La notion d’environnement

La notion d’environnement vient compléter celle de groupe délimité par des accolades :un environnement délimite une région dans laquelle seront appliquées certaines règlesparticulières. Il en existe de très variés. Un environnement commence toujours par unecommande \begin et se termine par une commande \end : ces deux commandes sontsuivies du nom de l’environnement entre accolades. Si, par exemple, nous voulionscentrer notre titre, il suffirait de le placer dans un environnement \begin{center}...\ end{center} comme ceci :

\begin{center}{\large HISTOIRE DE LA ROULETTE}

\par appelée autrement trochoïde ou cycloïde\par {\small où l’on rapporte par quels degrés on estarrivé à la connaissance de la nature de cette ligne.}

\end{center}\par La Roulette est une ligne si commune, qu’après la droiteet la circulaire, il n’y en a point de si fréquente ;

Ce qui donnerait à présent :

HISTOIRE DE LA ROULETTEappelée autrement trochoïde ou cycloïde

où l’on rapporte par quels degrés on est arrivé à la connaissance de la naturede cette ligne.

Page 31: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 7 — #25 ii

ii

ii

7

La Roulette est une ligne si commune, qu’après la droite et la circulaire,il n’y en a point de si fréquente ;

Les environnements fonctionnent comme les accolades du point de vue de la portéedes macros : une macro placée à l’intérieur d’un environnement sera valable seulementjusqu’à la fin de cet environnement. En revanche, une macro placée avant le début d’unenvironnement sera valable en principe aussi à l’intérieur.

Les environnements peuvent être imbriqués les uns dans les autres mais ne doiventjamais être entrecroisés :

\begin{center}\begin{figure}\end{figure}

\end{center}

est correct mais

\begin{center}\begin{figure}

\end{center}\end{figure}

ne l’est pas.

La notion d’argument

Les macros ont parfois besoin, pour fonctionner, de connaître certains renseignements.Par exemple, la macro \hspace est utilisée pour créer un espace blanc horizontal maisil faut évidemment lui indiquer la dimension de l’espace souhaité. Elle attend doncqu’on lui passe une valeur qui constituera ce qu’on appelle son argument.

Si on écrit par exemple a\hspace{15mm}b on obtiendra a . . . . . . . b (sans les pointillésqui matérialisent ici l’espace entre les lettres). Un argument est toujours encadré pardes accolades et suit immédiatement le nom de la macro.

L’argument d’une macro peut aussi être du texte. Ainsi la macro \emph sert àmettre une partie du texte en italiques. Elle ne porte donc que sur le texte qui lui estpassé en argument. Par exemple :Pour déguiser un peu les choses, ilchangea les premiers noms de\emph{Roulette et Trochoïde} en celuide \emph{Cycloïde}.

Pour déguiser un peu les choses,il changea les premiers noms deRoulette et Trochoïde en celui deCycloïde.

Une macro peut fort bien avoir plusieurs arguments : chaque argument sera placéentre accolades et ils devront se suivre dans l’ordre prévu par la macro en question.Connaître la syntaxe d’une macro, c’est connaître l’ordre et la signification de ses ar-guments. Par exemple, la macro \raisebox permet de déplacer verticalement quelquesmots : elle attend un premier argument qui indique la valeur du déplacement verticalet un second qui contient les mots à déplacer. D’où l’exemple suivant qui montre parailleurs que les macros peuvent en contenir d’autres. Ici la commande \footnotesizequi sert à obtenir des caractères encore plus petits qu’avec \small, est placée à l’inté-rieur du deuxième argument de la macro \raisebox :

B. Pascal\raisebox{5pt}{\footnotesize (1623-1662)} B. Pascal(1623-1662)

Il existe d’autre part des arguments optionnels : ce sont des arguments qu’il n’estpas obligatoire de préciser mais qui peuvent apporter une information supplémentairemodifiant le comportement d’une macro. Nous en avons déjà vu un exemple avec lacommande initiale de notre fichier roulette.tex. Nous avons écrit au début de cefichier : \documentclass[a4paper]{article}. Ici le format a4paper est une valeuroptionnelle. Un argument optionnel est toujours encadré par des crochets tandis qu’unargument obligatoire est toujours encadré par des accolades.

Page 32: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 8 — #26 ii

ii

ii

Page 33: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 9 — #27 ii

ii

ii

9

Leçon 2

Où l’on parle de composition. . .

Maintenant que nous avons vu les principes fondamentaux du fonctionnement deLATEX, nous allons donner un aperçu de ses capacités à prendre en charge réellement lastructure d’un document. C’est à proprement parler un travail de composition puisquel’on transmet à LATEX un matériau sous forme brute afin qu’il le mette en forme. Ils’agit ici non pas seulement de créer les paragraphes et les pages mais bien de structu-rer entièrement le document, d’en gérer les numérotations, de construire des tableauxou des formules complexes, etc.

Structuration d’un document

Notre fichier source sur le Traité de la Roulette de Pascal a été déclaré comme un docu-ment en classe article au moyen de la commande initiale \documentclass{article}.Il existe également deux autres classes appelées book et report. En classe article, onpeut subdiviser le document en sections, sous-sections, sous-sous-sections, paragrapheset sous-paragraphes. LATEX dispose de macros telles que \section, \subsection, etc.qui assurent à la fois la mise en pages et la numérotation de ces subdivisions. Il suffiraitainsi d’écrire simplement dans le fichier source (faites-en l’expérience)

\section{Traité de la roulette}

pour que LATEX crée, dans le document produit, une nouvelle section comme ceci :

1 Traité de la rouletteCette section a automatiquement reçu un numéro (1 puisque c’est la première), son

titre a été écrit en caractères gras et se trouve séparé du texte qui précède ou quisuit par un certain espacement vertical. Cette section pourrait contenir ensuite dessous-sections comme par exemple

\subsection{Présentation du texte}

qui donnera :

1.1 Présentation du texteLa numérotation est maintenant différente, le titre est en gras mais dans un corps

plus petit et l’espacement vertical est légèrement moindre. En classes book et report,on dispose en plus d’une commande \chapter qui permet de créer des chapitres. LATEXse charge alors de commencer une nouvelle page, d’y inscrire le mot chapitre suivi deson numéro, puis le titre du nouveau chapitre (qui est l’argument de la commande\chapter) en grands caractères et compose le texte plus bas sur la page.

Page 34: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 10 — #28 ii

ii

ii

10 LEÇON 2

On peut ainsi s’appuyer entièrement sur les réglages internes de LATEX pour assurerune mise en pages optimale. Nous verrons d’ailleurs par la suite que LATEX fait beau-coup plus que ce qui vient d’être décrit et qu’il s’efforce en particulier de ne pas couperles pages n’importe où : il est capable, quand besoin est, d’augmenter ou de diminuerl’espacement vertical qu’il insère entre les sous-titres, etc.

Une autre expérience instructive consisterait à écrire maintenant à un endroit arbi-traire dans le fichier source roulette.tex la commande suivante :

\tableofcontents

En exécutant deux fois de suite (nous verrons plus tard pourquoi) le fichier, onobtiendra alors une table des matières parfaitement formatée reprenant les titres dessections et sous-sections que nous avons créées, comme ceci :

1 Traité de la roulette . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1 Présentation du texte . . . . . . . . . . . . . . . . . . . . . . . 9

Notion de boîtes

La notion de boîte est, elle aussi, fondamentale. À tous les niveaux, LATEX place leséléments qu’il manipule dans des boîtes qu’il place ensuite côte à côte ou bien l’uneau-dessus de l’autre. Ainsi les lettres elles-mêmes sont vues comme de petites boîtesélémentaires. Lorsqu’il compose une ligne, LATEX place les boîtes-lettres les unes àcôté des autres pour créer des boîtes-mots qu’il juxtapose à leur tour en insérant entreelles l’espacement qu’il juge nécessaire ; il obtient alors des lignes qui sont elles-mêmesconsidérées comme des boîtes qu’il empile pour en faire des pages.

Il est très facile de créer soi-même des boîtes. Supposons que l’on veuille placerl’un à côté de l’autre le texte français et le texte latin du début du Traité sur laRoulette. Il suffirait de mettre chacun dans une boîte et de juxtaposer ces boîtes.Faisons l’expérience en nous servant d’une macro appelée \parbox dont la fonction estjustement de mettre des paragraphes dans une boîte. Celle-ci attend deux argumentsqui sont respectivement la largeur de la boîte et son contenu. Écrivons donc, dans lefichier roulette.tex, les instructions suivantes (nous abrégeons le texte français quia été donné plus haut) :

\parbox{5cm}{La Roulette est une ligne si commune, qu’aprèsla droite et la circulaire, il n’y en a point de si fréquente ;et elle se décrit si souvent aux yeux de tout le monde etc.}\hspace{1cm}\parbox{5cm}{Inter infinitas linearum curvarum species, siunam circularem excipias, nulla est quae nobis frequentiusoccurrat quam Trochoides (gallice \emph{la Roulette}) : utmirum sit quod illa priscorum seculorum geometras latuerit,apud quos de tali linea nihil prorsus reperiri certum est.}

Nous avons placé entre les deux macros \parbox une commande \hspace{1cm} afinde les espacer d’un centimètre.

Page 35: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 11 — #29 ii

ii

ii

11

Le résultat est alors :

La Roulette est une ligne si com-mune, qu’après la droite et la cir-culaire, il n’y en a point de si fré-quente ; et elle se décrit si sou-vent aux yeux de tout le mondequ’il y a lieu de s’étonner qu’ellen’ait point été considérée par lesanciens, dans lesquels on n’entrouve rien.

Inter infinitas linearum curva-rum species, si unam circula-rem excipias, nulla est quae no-bis frequentius occurrat quamTrochoides (gallice la Roulette) :ut mirum sit quod illa prisco-rum seculorum geometras latue-rit, apud quos de tali linea nihilprorsus reperiri certum est.

Notion de liste

Il est une autre façon courante de structurer un texte qui consiste à faire des listes.LATEX dispose de trois environnements qui se chargent de la mise en forme de telleslistes. Nous allons utiliser ici l’environnement \begin{enumerate} ...\ end{enume-rate} qui crée des listes numérotées. Chaque article de la liste est introduit par unecommande \item et LATEX se charge de tout le reste (numérotation, indentation, es-pacements). Il suffit de taper dans le fichier roulette.tex le texte de gauche pourproduire ce qui se trouve dans la colonne de droite :

Les problèmes que je proposai au commencementd’octobre dans l’histoire de la roulette sontceux-ci :\begin{enumerate}\item Trouver le centre de gravité de laligne courbe.\item Trouver la dimension et le centrede gravité de la surface de son demi-solideautour de la base.\item Trouver la dimension et le centrede gravité de la surface de son demi-solideautour de l’axe.\end{enumerate}

Les problèmes que je pro-posai au commencement d’oc-tobre dans l’histoire de la rou-lette sont ceux-ci :

1. Trouver le centre de gra-vité de la ligne courbe.

2. Trouver la dimension etle centre de gravité dela surface de son demi-solide autour de la base.

3. Trouver la dimension etle centre de gravité dela surface de son demi-solide autour de l’axe.

Notion de tableaux

La constitution de tableaux est aussi une des grandes forces de LATEX, suivant leprincipe maintenant bien compris que l’auteur se contente de fournir le matériau brutet que LATEX assure lui-même une composition optimale.

C’est un environnement \begin{tabular} ...\ end{tabular} qui réalise les ta-bleaux : les données y sont inscrites ligne par ligne, séparées par le symbole & etchaque ligne se termine par une double contre-oblique \\. En voici un exemple tiré duTraité du triangle arithmétique de Pascal :

Page 36: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 12 — #30 ii

ii

ii

12 LEÇON 2

\begin{tabular}{|l||ccccc|}\hlineUnités & 1 & 1 & 1 & 1 & 1\\\hlineNaturels & 1 & 2 & 3 & 4 & 5\\\hlineTriangulaires & 1 & 3 & 6 & 10 & 15\\\hlinePyramidaux & 1 & 4 & 10 & 20 & 35\\\hline\end{tabular}

Unités 1 1 1 1 1Naturels 1 2 3 4 5Triangulaires 1 3 6 10 15Pyramidaux 1 4 10 20 35

L’argument |l||ccccc| de l’environnement signifie que la première colonne doit êtrealignée à gauche (l pour left) et que les cinq suivantes seront centrées (c pour centre)tandis que les barres verticales indiquent l’endroit où l’on veut des lignes verticalesdans le tableau. Les commandes \hline permettent de tracer les lignes horizontales.On peut les modifier à volonté. Le plus remarquable est que LATEX a calculé lui-mêmela largeur des colonnes de telle sorte que le matériau s’y insère exactement.

Formules mathématiques

Notre spécialiste de Pascal aimerait maintenant citer une formule mathématique liée àla théorie du Triangle Arithmétique. Il est bien connu que les nombres figurant sur leslignes du triangle sont les coefficients des puissances du binôme, comme par exempleles chiffres 1 3 3 1 dans l’identité :

(a+ b)3 = 1a3 + 3a2b+ 3ab2 + 1b3

Pour indiquer à LATEX qu’il faut composer une formule mathématique, on entourecelle-ci de signes $. Tout ce qui se trouve encadré entre deux signes $ est considérépar LATEX comme des mathématiques. La formule ci-dessus est ainsi obtenue toutsimplement en écrivant :

$(a+b)^3=1a^3+3a^2b+3ab^2+1b^3$

Il suffisait ici de savoir que les exposants sont indiqués au moyen d’un accent cir-conflexe. Pour le reste, LATEX s’est chargé lui-même de mettre les lettres en italiques,d’introduire du blanc autour des signes + et = et de placer les exposants.

Page 37: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 13 — #31 ii

ii

ii

Leçon 3

Où l’on parle d’édition. . .

Cette troisième et dernière leçon est consacrée aux fonctions plus avancées de LATEX etachèveront sans aucun doute de convaincre de son efficacité : il s’agit principalementdes fonctions de référençage et d’indexation, c’est-à-dire de tout ce qui s’apparente àla phase post-rédactionnelle et donc à l’édition. Là encore, l’utilisateur n’a à connaîtrequ’une poignée de macros et c’est LATEX qui accomplit tout le travail. Comme dans lesleçons qui précèdent, nous nous contentons de donner le code et de le commenter. Ilest important d’essayer soi-même de reproduire ce code dans le fichier source que nousavons appelé roulette.tex et de le faire exécuter par LATEX : pour les bibliographieset les références croisées, il faut obligatoirement exécuter le fichier deux fois de suitepour obtenir le résultat définitif.

Notes

Une étude critique sur Pascal nécessitera certainement des notes de bas de page.Celles-ci sont obtenues avec la macro \footnote qui prend le texte de la note commeargument. Par exemple :Expériences nouvelles touchant levide\footnote{Cet opuscule a étépublié en octobre 1647 chez PierreMargat à Paris. On le trouve à labibliothèque de Clermont-Ferrandavec quelques lettres autographes.}

produira Expériences nouvellestouchant le vide 1

Les notes sont numérotées séquentiellement et sont composées en bas de page dans Traitédu videun corps plus petit. On place tout aussi facilement des notes dans la marge avec la

macro \marginpar. La note ci-contre a été obtenue en écrivant l’instruction suivantedans le texte de ce paragraphe :

\marginpar{\tiny Traité du vide}

Références

Nous voudrions maintenant renvoyer le lecteur à la sous-section 1.1 qui figure sur lapage 9. Or, tant que le document n’a pas été composé, nous ne savons ni le numéroque portera cette sous-section ni la page où elle sera placée. Ce sont d’ailleurs desdonnées qui peuvent être amenées à changer, si on modifie le plan du document ousi on ajoute ou retire du texte par la suite. Le moyen fourni par LATEX consiste à

1. Cet opuscule a été publié en octobre 1647 chez Pierre Margat à Paris. On le trouve à la biblio-thèque de Clermont-Ferrand avec quelques lettres autographes.

Page 38: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 14 — #32 ii

ii

ii

14 LEÇON 3

placer une étiquette à l’endroit en question avec la commande \label. Cette étiquettedevra porter un nom et c’est grâce à ce nom qu’on pourra ensuite faire référence à cetendroit du document. Le nom de l’étiquette est arbitraire : nous avons ainsi placé uneétiquette que nous avons appelée josephine au début de la sous-section 1.1 en écrivantla commande \label{josephine}. Avec les commandes \ref et \pageref, on pourraproduire à tout moment respectivement le numéro de la sous-section ainsi que sa page.Par exemple :La sous-section \ref{josephine} setrouve sur la page \pageref{josephine}.

La sous-section 1.1 se trouve surla page 9.

Bibliographies

La gestion des bibliographies est élémentaire avec LATEX mais peut être poussée trèsloin en leur attribuant des styles très élaborés. Nous allons nous contenter d’un exemplesimple.

Grâce à l’environnement \begin{thebibliography} ...\ end{thebibliography}nous allons constituer une liste de deux ouvrages. Cet environnement fonctionnecomme les listes que nous avons vues dans la leçon précédente, si ce n’est que chaquearticle de la liste est introduit par une commande appelée ici \bibitem au lieu de\item. Ainsi, avec les instructions suivantes :

\begin{thebibliography}{9}\bibitem{mair} Albert Maire (1925-1927) \emph{Bibliographiegénérale des œuvres de Blaise Pascal}, 5 vol., Paris,Giraud-Badin.

\bibitem{bibn} \emph{Catalogue des ouvrages de Pascal conservésau Département des Imprimés} (1935), Bibliothèque Nationale,Paris, Imprimerie Nationale.

\end{thebibliography}

nous obtenons le résultat que voici :

Bibliographie[1] Albert Maire (1925-1927) Bibliographie générale des œuvres de Blaise Pascal, 5

vol., Paris, Giraud-Badin.[2] Catalogue des ouvrages de Pascal conservés au Département des Imprimés (1935),

Bibliothèque Nationale, Paris, Imprimerie Nationale.

La numérotation a été faite automatiquement par LATEX. Le chiffre {9}, dans cetexemple, indique la largeur réservée à cette numérotation comme nous le réexplique-rons par la suite : les étiquettes auront la largeur du chiffre 9.

Chacune des macros \bibitem s’est vue attribuer un mot clé (mair pour le premierouvrage et bibn pour le second) qui permettra par la suite d’y faire référence. Ilsfonctionnent comme des étiquettes. Pour citer un de ces ouvrages dans le texte dudocument, on utilisera ensuite la commande \cite qui prend en argument le mot-cléde l’ouvrage que l’on veut citer.

Page 39: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 15 — #33 ii

ii

ii

15

Par exemple :

Consulter le catalogue \cite{bibn}

produira :Consulter le catalogue [2]

Index

LATEX est capable de constituer des index du type de ceux que l’on place en fin d’ou-vrage pour renvoyer le lecteur aux pages traitant d’un sujet particulier. Supposons quenotre professeur de littérature veuille indexer le nom de Galilée qui a été mentionné àla page 5. Il suffit de prendre le soin, chaque fois que ce nom est mentionné, de le fairesuivre de la commande \index{Galilée}. C’est ce que nous avons fait. Le lecteurpourra vérifier dans l’index à la fin de cet ouvrage que Galilée y figure bien.

La commande \index sert à relever tous les mots à indexer. La production de l’indexlui-même est un peu plus longue à expliquer : on se reportera au paragraphe 6.2.4.

Macros personnelles

Pour terminer, voici certainement l’aspect le plus satisfaisant de l’utilisation de LATEX :il s’agit de la possibilité de créer ses propres macros. Il existe une commande deLATEX appelée \newcommand permettant de déclarer et définir de nouvelles macros.Voyons-en tout de suite un exemple : supposons que notre professeur soit lassé d’écrireperpétuellement le titre « Traité du Triangle Arithmétique ». Il va soulager son travailde saisie en définissant une macro qui exécutera cela à sa place. Nous baptiserons cettenouvelle macro \ttra et placerons sa définition au début du fichier source (après lacommande \documentclass et avant la commande \begin{document}) :

\newcommand{\ttra}{Traité du Triangle Arithmétique}

Désormais il suffira d’écrire \ttra chaque fois que l’on voudra obtenir l’expressionentière. Par exemple :

Le \ttra{} date de 1654. Le Traité du Triangle Arithmétiquedate de 1654.

L’intérêt de cette méthode, outre qu’elle facilite ici la saisie, est que l’on peut déciderpar la suite de modifier la définition de cette macro : la modification se répercuteraalors immédiatement à travers tout le document. Si nous voulions que le titre Traité duTriangle Arithmétique soit mis en italiques, il suffirait de changer la définition commececi :

\newcommand{\ttra}{\emph{Traité du Triangle Arithmétique}}

Nous pourrions demander par la même occasion que ce titre soit indexé systémati-quement. La macro \ttra accomplirait ainsi une double tâche : écrire le titre dans lestyle demandé et l’indexer. Pour l’obtenir, on changera la définition en :

\newcommand{\ttra}{\emph{Traité du Triangle Arithmétique}\index{Triangle Arithmétique}}

Page 40: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 16 — #34 ii

ii

ii

16 LEÇON 3

Résumé des principes de baseCes trois leçons ont donné un aperçu des principales fonctionnalités de LATEX maisle panorama n’est pas exhaustif. Il y a encore bien d’autres aspects à explorer. Nousallons cependant résumer ici les traits caractéristiques qui distinguent radicalementLATEX des traitements de texte ordinaires. Il s’agit de points qui paraissent surprenantsau départ mais dont on comprendra et appréciera très rapidement la pertinence :

— il y a une distinction radicale entre fichier source et fichier produit ;— dans le fichier source, les sauts de lignes sont ignorés par LATEX. Des lignes

successives font toutes partie d’un même paragraphe. LATEX remplace un passageà la ligne dans le fichier source par une espace. Pour obtenir un saut de lignedans le fichier produit, il faut placer une commande de fin de paragraphe ;

— des blancs successifs sont ignorés par LATEX : ils sont considérés comme un seulet unique blanc ;

— les blancs au début d’une ligne dans le fichier source sont ignorés. Cela permetparfois de décaler des éléments vers la droite dans le fichier source afin de le rendreplus lisible sans que cela ait la moindre incidence sur le document produit ;

— toutes les actions que l’on souhaite voir réalisées sont obtenues au moyen decommandes ou macros que l’on place à l’endroit requis dans le fichier source ;

— on peut délimiter la portée des macros en définissant des zones au moyen depaires d’accolades { et } ou bien en utilisant des environnements ;

— certains symboles ont une signification particulière dans le corps du fichier source :• la contre-oblique \ au début d’un mot caractérise les macros,• les accolades { et } délimitent des groupes : une commande placée dans un

groupe n’agit que jusqu’à l’accolade fermante de ce groupe,• le symbole & est utilisé dans les tableaux pour séparer les entrées devant

figurer sur un même rang du tableau,• le symbole % sert à placer des commentaires dans le fichier source : tout ce

qui se trouve à droite d’un signe % jusqu’au bout de la ligne est ignoré parLATEX. On peut ainsi placer des annotations ou des explications qui figurerontdans le fichier source mais n’apparaîtront pas dans le document final. Chaqueligne de commentaire est introduite par un %,• nous verrons aussi que le symbole @ ne peut pas être utilisé tel quel dans le

fichier source : il caractérise les commandes internes de LATEX et les protègeen les rendant inaccessibles,

— le fichier source est un fichier de données brutes qui doit être traité par LATEX : àla sortie de ce traitement, on obtient le document final sous la forme d’un fichierdit dvi. Pour juger le résultat, il faut visualiser le fichier dvi à l’écran ou bienl’imprimer. On n’a donc pas une visualisation directe du fichier source au fur età mesure de sa rédaction. Ce point paraît déconcertant au début mais s’expliquepar le mode de fonctionnement de LATEX et est vite contrebalancé à la fois parla puissance du système dans son ensemble et par la qualité typographique durésultat obtenu.

Page 41: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 17 — #35 ii

ii

ii

Deuxième partie

GUIDE

Page 42: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 18 — #36 ii

ii

ii

Page 43: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 19 — #37 ii

ii

ii

Chapitre 1

Principe de fonctionnement

L’objectif de LATEX est de fournir un système simple et flexible afin de faciliter lacomposition d’ouvrages littéraires et scientifiques : il définit un très vaste ensemblede commandes dont le but est de décharger complètement l’auteur d’un ouvrage dusouci de la mise en forme et de la composition, au sens typographique du terme.Toutes les commandes de LATEX s’appuient sur TEX qui est à la fois un programmeet un langage. L’auteur, en principe, se contente de rédiger un document source danslequel il indique, chaque fois que cela est nécessaire, ses souhaits au moyen de cescommandes. Par la suite, TEX se charge de lire le fichier source, d’interpréter lescommandes et de les exécuter. Nous décrivons dans ce chapitre les diverses étapes quijalonnent la production d’un document imprimé de même que les principaux aspectsde ce concept de commandes interprétées avec, en particulier, la notion de modules(en anglais packages), qui permet d’étendre les capacités de LATEX dans un domaineparticulier au moyen de commandes complémentaires.

1.1 Chaîne de production d’un document

Une installation complète de TEX peut être, en fait, comparée à une imprimerie clas-sique. Elle comporte trois ateliers qui assurent :

— la gravure et la fonte des lettres ;— l’assemblage des lettres et la composition des plaques ;— l’impression de ces plaques et donc la production finale.Transposés dans le domaine de la typographie numérique, ces trois ateliers sont

figurés par des programmes : le programme METAFONT assure la gravure, LATEX (etdonc aussi TEX) assurent la composition. Le troisième atelier est représenté par cequ’on appelle les pilotes : il en existe de nombreux qui peuvent traduire le résultatproduit par METAFONT et LATEX soit sur un écran d’ordinateur, soit sous forme d’unfichier destiné à une imprimante.

METAFONT et TEX sont uniques et sont l’œuvre de la même personne, l’informati-cien et mathématicien Donald E. Knuth. Ce dernier n’a pas écrit lui-même de pilotepour une raison très simple : TEX produit un document composé sous la forme d’unfichier qui décrit les pages de manière totalement indépendante du matériel utilisé.

Page 44: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 20 — #38 ii

ii

ii

20 Principe de fonctionnement

Gravure Composition

fichier source.mf

��

fichier source.tex

��

METAFONT

��

// fichier .tfm // TEX

��

//info

##

fichier.log

fichier gf

��

écran

gftopk

��

fichier.dvi

~~

fichier pk

##Pilotes de dvi

xdvi dvips

��

��

Impression fichier .ps

�� $$

écran gs //oo

��

imprimante

fichier .pdf

Figure 1.1: Schéma de production d’un document. xdvi, dvips et gs sont mentionnés àtitre d’exemple et peuvent être remplacés par d’autres pilotes. La commande pdflatexfait passer directement du fichier source au fichier pdf.

Ce fichier porte le nom de fichier dvi (qui est une abréviation de device independant,c’est-à-dire « indépendant du matériel »). Cette universalité du fichier dvi fait partiede la philosophie générale de TEX et est synonyme aussi de portabilité. Chaque sys-tème informatique peut disposer d’un pilote qui lui permet de traduire le fichier dvien fonction de ses caractéristiques propres et des caractéristiques de son imprimante,en particulier de la résolution. Les pilotes ont été écrits par d’autres auteurs : un despilotes les plus complets et les plus utilisés est dvips de Thomas Rokicki dont il existedes versions pour quasiment toutes les plates-formes et qui assure, entre autres, laconversion du fichier dvi en fichier PostScript.

Nous allons décrire plus précisément la chaîne de fonctionnement des trois atelierscar il est important de bien comprendre quelle est la tâche assignée aux différentscomposants du système et comment il la réalise.

Page 45: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 21 — #39 ii

ii

ii

1.1. Chaîne de production d’un document 21

Gravure

METAFONT est, tout comme TEX, à la fois un programme et un langage : sa fonctionest de produire les caractères qui seront utilisés dans un document. Il est donc apteà créer et fabriquer des polices de caractères. Celles-ci sont décrites au moyen descommandes qui constituent le langage METAFONT : toutes les instructions décrivantune police sont réunies dans un ou plusieurs fichiers, dits fichiers sources, dont le nomest terminé par une extension « .mf ». METAFONT se charge, quand c’est nécessaire,de lire ces fichiers. Il interprète et exécute les commandes qui s’y trouvent et produitdeux types d’informations :

— des informations métriques sur les caractères : leur taille, les dispositions relativesde certains couples de caractères, etc. Elles sont réunies dans un fichier portantl’extension .tfm et destiné à TEX ;

— des images représentant les caractères. Ces images sont dépendantes du typed’imprimante que l’on utilise. Elles figurent dans des fichiers dont le nom setermine par les lettres « gf 1 » qui sont transformés en fichiers plus compacts,dits fichiers « pk 2 » directement utilisables par les pilotes.

Toutes ces questions sont reprises et développées au paragraphe 5.3.

Composition

Dans l’atelier de composition, il y a une unique machine qui s’appelle TEX, dont lemode d’emploi est assez austère et dont l’utilisation resterait le secret de quelquestechniciens 3 spécialisés s’il n’y avait l’irremplaçable LATEX : celui-ci est un assorti-ment d’outils à la fois simples d’emploi, extrêmement flexibles, extensibles, adaptableset prêts à accomplir les multiples tâches que peut requérir la production d’un documentcomplet, telles que la réalisation d’un index, de tableaux, d’une table des matières, desommaires divers, de références croisées, de citations bibliographiques, de sectionne-ments, dans le respect de règles typographiques diverses. Le succès de LATEX vient dela syntaxe unifiée qu’il propose : au bout de quelques temps d’utilisation, l’utilisateurcomprend la logique qui préside à l’écriture et à la syntaxe des commandes.

L’extensibilité de LATEX (qui est une caractéristique de base de TEX lui-même) s’esttraduite par l’apparition d’innombrables modules qui sont des collections de macrossupplémentaires qui viennent se greffer au besoin à LATEX et étendre ses capacités.L’unité de syntaxe se retrouve d’ailleurs dans tous ces modules. Les domaines d’ap-plication sont innombrables : multilinguisme, graphiques, mathématiques, physique,chimie, linguistique, phonétique, scripts divers (grec, cyrillique, chinois, sanscrit, etc.).

Lorsqu’un document source a été préparé avec les commandes de LATEX, il est lu etexécuté par TEX, qui utilise, pour tous les caractères qu’il a à assembler, les fichiersde métriques préparés par METAFONT. Il produit alors le fichier dvi mentionné plushaut (ou bien directement un fichier pdf si on utilise la commande pdflatex plutôt quelatex).

Lorsqu’il interprète le fichier source, TEX envoie à l’écran une série d’informations.

1. Pour generic font, c’est-à-dire police générique.2. Pour packed, c’est-à-dire compactés.3. On dit plutôt des TEXniciens.

Page 46: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 22 — #40 ii

ii

ii

22 Principe de fonctionnement

Simultanément, il produit un fichier contenant un compte rendu de son travail d’exé-cution : il s’agit d’un fichier texte dont le nom se termine par l’extension .log 4. C’estun fichier que l’on peut avoir à consulter occasionnellement lorsqu’on recherche lasource ou l’explication d’une erreur. TEX envoie davantage d’informations au fichier.log qu’à l’écran.

Impression

Le fichier dvi produit par TEX décrit le document composé. On peut alors le visualisersoit sur l’écran de l’ordinateur, soit sur papier.

Pour visualiser à l’écran, on utilise des pilotes dits « prévisualisateurs » ; dans cer-tains systèmes, la prévisualisation se fait automatiquement, dans d’autres il faudra lademander explicitement. Un des prévisualisateurs les plus répandus est xdvi, mais ilexiste aussi kdvi, dvipreview, dviwindo, dviwin, etc. Les systèmes textures ou oztex ontun prévisualisateur incorporé.

L’impression d’un fichier dvi peut se faire de plusieurs façons en fonction du matérieldont on dispose. La méthode la plus courante consiste à utiliser un programme telque dvips qui transforme le dvi en fichier PostScript dont le nom se termine parl’extension .ps. PostScript est un langage de description de pages qui est compris parcertaines imprimantes : l’impression du fichier .ps, dans ce cas-là, est directe. Dansle cas où on ne possède pas d’imprimante PostScript, l’interprétation devra être faitepar un programme particulier, tel que ghostview ou ghostscript (appelé aussi gs), quitransforme les pages en images qui sont envoyées ensuite à l’imprimante.

Il existe des situations où certains documents ne peuvent être visualisés à l’écran :c’est le cas lorsque ceux-ci comportent des manipulations particulières telles que lesrotations de texte, l’incorporation de graphiques externes, etc. On aura alors recoursà ghostview qui permet de visualiser les fichiers .ps. Cela fait simplement une étapede plus : on transforme le dvi en fichier .ps puis on visualise ce dernier.

Toutes ces étapes sont représentées schématiquement sur la figure 1.1.

1.2 Emplacement des fichiers

L’emplacement des divers types de fichiers est un des points sur lesquels il faut êtrevigilant pour permettre le bon fonctionnement d’une installation TEX : à la fois META-FONT, TEX et les pilotes doivent pouvoir trouver sur l’installation les fichiers dont ilsont besoin. Ceux qui ont été mentionnés au paragraphe précédent sont loin d’être lesseuls fichiers éventuellement recherchés au cours d’un travail.

La méthode retenue, sous une forme ou sous une autre, par toute implémentationde TEX consiste à déclarer aux divers programmes des chemins d’accès. Les cheminsd’accès sont les noms des répertoires contenant les fichiers en question, indiqués enpartant de la racine du système de fichiers. Par exemple,

/opt/texmf/fonts/tfm

4. Log en anglais signifie « carnet de bord ».

Page 47: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 23 — #41 ii

ii

ii

1.3. Les modules 23

est un chemin d’accès qui indique que les fichiers .tfm sont placés dans un sous-répertoire du répertoire /fonts, lui-même inclus dans /texmf qui fait partie du réper-toire /opt. Il peut y avoir plusieurs chemins d’accès pour un même type de fichier :lorsqu’un programme est à la recherche d’un fichier, il parcourt tous les répertoiresqui lui ont été indiqués comme chemins d’accès possibles.

Il existe des chemins d’accès pour tous les types de fichiers. La manière dont sontstockés ou mémorisés les chemins d’accès peut varier d’un système à l’autre : cettequestion est développée à l’annexe F. Certains systèmes (comme teTeX sous linux),pour accélérer la recherche, utilisent des bases de données qui répertorient tous lesfichiers présents avec leur chemin : il faut périodiquement régénérer ces bases pourque des fichiers nouvellement installés soient pris en compte.

1.3 Les modules

1.3.1 Déclaration d’un module

LATEX est extensible puisqu’il est construit au moyen du langage TEX : il peut donc êtremodifié et complété sans limitations. De nombreux auteurs ont ainsi écrit de nouvellescommandes de caractère général qu’ils ont généreusement mises à la disposition detout un chacun.

Les modules sont des compléments à LATEX qui permettent d’étendre ses fonction-nalités dans des domaines particuliers. Le succès de LATEX est dû en grande partieà la quantité des modules qui ont été développés. Il en existe de toutes sortes, duplus élémentaire au plus complet, traitant de questions extrêmement variées. Certainsont apporté des fonctions tellement essentielles à LATEX qu’ils figurent en principe surtoute installation. Nous en décrirons beaucoup tout au long de cet ouvrage pour quechacun puisse se rendre compte de ce qu’ils apportent.

La contrepartie de cette profusion est parfois un risque d’incompatibilités. Il arriveque deux modules définissent des commandes portant le même nom mais accomplis-sant des tâches totalement différentes : ils ne peuvent pas cohabiter. De même, certainscaractères peuvent parfois être activés afin de déclencher des actions dans certainscontextes : cela peut être une source d’interférences, si un autre module active, luiaussi, ces mêmes caractères avec une signification différente. Ce sont des cas relati-vement rares. Avec un peu d’expérience, on arrive souvent à résoudre ces problèmeset à contourner les difficultés. Des modules offrent par ailleurs la possibilité d’êtredésactivés temporairement, pendant l’utilisation d’une commande qui ne serait pascompatible.

Le système des modules repose sur le fait que TEX est capable d’aller lire des fi-chiers extérieurs et de stocker, pour les utiliser par la suite, toutes les définitions qu’ily trouvera. LATEX fournit une commande pour lire ces fichiers externes ; le systèmed’incorporation de nouveaux modules est élaboré et permet de prendre en compted’éventuelles options de fonctionnement proposées par tel ou tel module. La macroqui permet le chargement d’un module est la suivante :

\usepackage[options éventuelles]{nom du module}

Page 48: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 24 — #42 ii

ii

ii

24 Principe de fonctionnement

On peut déclarer plusieurs modules dans une même commande \usepackage. Ilsuffit d’en donner la liste en argument en les séparant par des virgules : ils seront lusdans l’ordre où ils sont énumérés. Par exemple, pour charger les modules multicol,array et longtable, on écrira :

\usepackage{multicol,array,longtable}

Ces déclarations de modules doivent être faites dans le préambule du document(cf. chap. 2). Il peut y avoir autant de commandes \usepackage que l’on veut. Si unmodule accepte une option particulière 5 que l’on veut utiliser, on écrit celle-ci entrecrochets [ ] dans la commande \usepackage. Par exemple :

\usepackage[dvips]{graphics}

Si une option est commune à plusieurs modules, on peut les déclarer simultanémentcomme ceci :

\usepackage[dvips]{xy,color,rotate}

En revanche, dans cet exemple, on ne pourrait pas mettre le module array dansla même commande car celui-ci ne connaît pas d’option dvips : pour le charger, onutiliserait une commande \usepackage à part.

1.3.2 Installation d’un module

Les modules que l’on trouve sur l’Internet et en particulier sur les archives ctan (Com-prehensive TEX Archive Network) se présentent sous des formes différentes suivant leurdegré d’importance. Cependant, c’est toujours un fichier avec l’extension .sty qui estappelé au moyen de l’instruction \usepackage placée dans le préambule et contenantla définition du code et des macros ajoutés à LATEX. Dans les distributions des modules,on trouve aussi, souvent, des fichiers de documentation qui décrivent les fonctionna-lités que le module apporte à LATEX ainsi que la syntaxe à utiliser pour les mettreen œuvre. Ces fichiers auront l’extension .doc ou encore l’extension .txt lorsque cesont de simples fichiers de texte à ouvrir avec n’importe quel éditeur ou traitement detextes.

Il existe également un format de plus en plus répandu qui amalgame dans un seulfichier le code et la documentation : ce sont des fichiers portant l’extension .dtx.Ces fichiers sont écrits suivant un format et des règles déterminés et, au moyen d’unutilitaire nommé docstrip, on peut en extraire d’une part le code, d’autre part la do-cumentation. Souvent, cette procédure d’extraction est automatisée grâce à un fichierd’installation portant l’extension .ins qui se chargera de tout, y compris d’appelerdocstrip et de le faire exécuter. C’est de loin, comme nous allons le voir en détail plusbas, la solution la plus confortable pour l’utilisateur.

Dans le cas particulier de l’installation de nouvelles polices, on rencontrera parfoisdes fichiers avec l’extension .fdd : ce sont aussi des fichiers d’où on extraira ce donton a besoin (en l’occurrence des fichiers de définition de polices avec l’extension .fd).

5. C’est la documentation du module qui dit quelles options sont éventuellement disponibles.

Page 49: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 25 — #43 ii

ii

ii

1.3. Les modules 25

En conclusion, lorsque vous récupérez un nouveau module, examinez d’abord s’il ya un fichier avec l’extension .ins dans la distribution. Dans le cas contraire, vérifiezs’il y a un fichier avec l’extension .dtx ou bien l’extension .fdd. En dernier ressort,le module sera peut-être distribué comme un unique fichier avec l’extension .sty,accompagné éventuellement d’une documentation extérieure.

Nous allons maintenant passer en revue ces différentes situations avec des exemplesconcrets.

Installer un module à partir d’un fichier .ins

Un exemple typique de cette situation est fourni par le module babel qui sert àrendre LATEX apte à traiter des documents multilingues. Le fonctionnement de babelest expliqué en détail au chapitre 11. Une fois installé, il est contenu dans un fichierbabel.sty et tous les langages que l’on pourra sélectionner en option seront définispar des fichiers avec l’extension .ldf (spanish.ldf, greek.ldf, francais.ldf, etc.).On trouve la distribution de babel sur les archives ctan dans le répertoire/tex-archive/macros/latex/required/babel/.

Ce répertoire contient principalement les fichiers suivants qui représentent la basedu module :

athnum.dtxbabel.dtxbabel.insbahasa.dtxbreton.dtxcatalan.dtxcroatian.dtxczech.dtxdanish.dtxdutch.dtxenglish.dtxesperant.dtxestonian.dtx

finnish.dtxfixes.txtfrenchb.dtxgalician.dtxgermanb.dtxgreek.dtxgreek.fddgreek.insgrmath.dtxhowtoget.txtirish.dtxitalian.dtxlanguage.dat

language.skeletonlcy.dtxlcycmlh.fddlcydefs.texlsorbian.dtxlwn.dtxlwncmlh.fddmagyar.dtxngermanb.dtxnorsk.dtxoldlhfnt.inspolish.dtxportuges.dtx

romanian.dtxrussianb.dtxscottish.dtxslovak.dtxslovene.dtxspanish.dtxswedish.dtxturkish.dtxukraineb.dtxusorbian.dtxwelsh.dtx

et quelques fichiers annexes qui comportent des informations supplémentaires maisn’entrent pas en jeu pour ce qui est du fonctionnement du module lui-même. Le plusimportant, ici, est la présence d’un fichier babel.ins. Nous allons donc faire exécuterce fichier par LATEX comme un fichier source ordinaire :

latex babel.ins

LATEX produit alors automatiquement 6 une quantité de nouveaux fichiers parmilesquels babel.sty qui est le module lui-même et, pour chaque langage, un fichieravec l’extension .ldf 7 et un autre avec l’extension .sty. D’autre part, les trois fi-chiers greek.fdd, lcycmlh.fdd et lwncmlh.fdd avec l’extension .fdd ont produit

6. À condition que le fichier docstrip.tex soit effectivement présent sur le système. Sinon, il estindispensable de se le procurer.

7. Ldf signifie language definition file c’est-à-dire fichier de définition de langue.

Page 50: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 26 — #44 ii

ii

ii

26 Principe de fonctionnement

une quantité de fichiers avec l’extension .fd qui sont des fichiers de définition de po-lices 8 destinés aux polices grecques associées à l’option greek de babel et aux policescyrilliques associées à l’option russian de babel. Tous ces fichiers devront être dépla-cés à l’endroit qui convient sur votre installation : dans des répertoires qui sont visitéspar LATEX, car celui-ci devra les trouver lorsqu’il en aura besoin.

L’installation a aussi produit des fichiers avec l’extension .def tels que babel.def,switch.def, lgrenc.def, lcyenc.def et lwnenc.def qui doivent aussi être dépla-cés dans un répertoire visité par LATEX.

Enfin, le fichier produit hyphen.cfg ainsi que le fichier language.dat fourni dansla distribution servent à la fabrication d’un nouveau format comme expliqué au para-graphe 11.3.2.

Installer un module à partir d’un fichier .dtx

Très souvent, un module sera fourni sous la forme d’un unique fichier avec l’extension.dtx. Ce fichier contient à la fois la documentation et le code à proprement parler :les deux sont mêlés de telle sorte qu’en fait le code se trouve commenté. Tel qu’il estfourni, le fichier .dtx n’est pas très agréable à lire et aussi bien documentation quecode doivent en être extraits.

Extraction du module

Le module lui-même sera un fichier avec l’extension .sty. Il existe un petit programmenommé docstrip qui permet de l’extraire du fichier .dtx. docstrip figure normalementsur toutes les installations : c’est un petit programme écrit en langage TEX. Il s’agitdonc d’un fichier qui se nomme exactement docstrip.tex et que l’on exécute avecLATEX comme n’importe quel fichier source.

Nous allons prendre comme exemple concret l’installation du module enumerateprésenté à la page 564. On le trouve sur les archives ctan dans le répertoire /tex-archive/macros/latex/required/tools/ sous le nom de enumerate.dtx. Le pro-cessus se déroule comme ceci :

1. Pour commencer, mettez le fichier enumerate.dtx dans le même répertoire quedocstrip.tex.

2. Exécutez LATEX sur le fichier docstrip.tex.

3. docstrip vous pose alors quatre questions que nous reproduisons telles quelles ici :

(a) ***************************************************** First type the extension of your input file(s): *\infileext=****************************************************

8. Voir au paragraphe 5.2.

Page 51: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 27 — #45 ii

ii

ii

1.3. Les modules 27

Nous répondons dtx et nous validons avec la touche Enter ;(b) ****************************************************

* Now type the extension of your output file(s) : *\outfileext=****************************************************Nous répondons sty puisque nous voulons obtenir le fichier enumerate.sty ;

(c) ***************************************************** Now type the name(s) of option(s) to include : *\Options=****************************************************Dans notre cas, il faut répondre package qui est le nom anglais pour module ;

(d) ***************************************************** Finally give the list of input file(s) without ** extension seperated by commas if necessary : *\filelist=****************************************************La réponse est enumerate bien entendu,

4. À partir de là, docstrip procède à l’extraction, ce qui se manifeste par un dé-filement de signes pourcentage (%) sur l’écran : effectivement cela signifie quedocstrip est en train d’éliminer tous les commentaires, utiles à la seule documen-tation, pour ne garder que l’essentiel : la définition de nouvelles macros.

5. Pour terminer, docstrip demande si l’on souhaite extraire d’autres fichiers. Pourle moment, la réponse sera n.

More files to process (y/n)?\answer=

On trouvera alors dans le même répertoire que docstrip et enumerate.dtx, le fichierenumerate.sty que l’on devra déplacer pour le mettre dans le répertoire ou sous-répertoire qui contient les modules sur votre installation.

Voici quelques indications complémentaires :— on peut extraire plusieurs fichiers de modules simultanément ; il suffit de donner,

en réponse à la quatrième question posée par docstrip, leurs noms séparés parune virgule ;

— on peut aussi passer plusieurs options d’extraction là où on a répondu packageplus haut. Certains fichiers .dtx requièrent en effet plusieurs options simultanées.C’est le cas par exemple du module array (fichier array.dtx) dont la nouvelleversion incorpore une nouvelle macro importante qui se nomme \newcolumntype.Si on donne seulement l’option package, on obtiendra la version ancienne dearray. Pour avoir la nouvelle, il faudra donner deux options simultanées, commececi : package, ncols

— d’autres options couramment rencontrées sont driver pour faire un fichier avecextension .drv qui permet d’imprimer la documentation, fd (font definition)pour un fichier de définition de polices avec extension .fd. La documentationsignale normalement les options inhabituelles. Encore une fois, s’il y a un fichieravec l’extension .ins, tout se fera automatiquement.

Page 52: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 28 — #46 ii

ii

ii

28 Principe de fonctionnement

Extraction de la documentation dans un fichier .dtxCe point est expliqué en détail au paragraphe 1.3.3

Installer un module à partir d’un fichier .sty

Dans le cas où le module est distribué sous forme d’un fichier avec l’extension .sty, laseule installation consiste à le placer dans le bon répertoire ou sous-répertoire de votrepropre installation. Un fichier de module doit pouvoir être trouvé par LATEX lorsquevous utilisez la commande \usepackage avec ce module. Il doit donc se trouver dansun répertoire (sur un chemin) visité par LATEX (voir au paragraphe 1.2).

L’ancienne version de LATEX (antérieure à 1994), qui s’appelait LATEX 2.09, utilisaitdéjà des modules mais sans le système de documentation intégrée. Les modules se pré-sentaient donc sous la forme d’un simple fichier avec l’extension .sty. Par conséquent,si on rencontre un module distribué sous cette forme, il faudra se demander s’il nes’agit pas d’une version destinée à LATEX 2.09 et peut-être périmée. D’anciens modulesfonctionnent aussi très bien avec LATEX2ε.

Installer des fichiers de polices à partir d’un fichier .fdd

Les fichiers portant l’extension .fdd désignent des distributions de fichiers de défini-tion de polices, c’est-à-dire de fichiers portant l’extension .fd (cf. § 5.2.2). Un fichier.fdd regroupe et combine plusieurs fichiers .fd afin de faciliter leur distribution : il estinutilisable tel quel et il faut en extraire les divers fichiers .fd au moyen de docstrip.En principe, un fichier .fdd est immanquablement accompagné d’un fichier d’instal-lation portant l’extension .ins comme on l’a vu plus haut : il suffit d’exécuter LATEXdirectement sur ce fichier .ins pour que tout se fasse automatiquement. Les fichiers.fd qui seront ainsi produits devront être déplacés jusqu’au répertoire qui contienttous les fichiers de ce type afin que LATEX puisse par la suite les trouver 9.

1.3.3 Documentation d’un module

Dans le cas d’un module avec documentation intégrée (fichier avec l’extension .dtx),on obtient la documentation tout simplement en exécutant LATEX directement sur le fi-chier .dtx comme on le ferait avec n’importe quel fichier source. On obtient ainsi 10 unfichier .dvi que l’on visualisera à l’écran ou que l’on imprimera après l’avoir convertiavec dvips par exemple. Paradoxalement, le module doit souvent avoir été installé aupréalable pour que la documentation puisse être extraite car celle-ci utilise justement,dans ses exemples, le module qu’elle documente : il faut donc en principe d’abord ex-traire le fichier .sty, l’installer puis ensuite extraire la documentation. Dans certaines

9. Si jamais, le fichier .ins n’était pas fourni, il faudrait utiliser docstrip directement commeexpliqué au paragraphe 1.3.2 : la seule question est de savoir le nom des options qu’il faudra passerà chaque fois au lieu de l’option package. Pour le savoir, il faudra ouvrir le fichier .fdd et recherchertoutes les commandes qui apparaissent en couple par exemple sous la forme suivante : <*msb>. . .</msb> . Un tel couple signale qu’il y a une option appelée msb.10. Précisons qu’il faut cependant, pour que tout se passe sans incidents, que quelques fichiers

soient présents sur l’installation : un fichier de classe appelé ltxdoc.cls, un fichier de module appelédoc.sty, et il est souhaitable d’avoir aussi le module multicol, c’est-à-dire le fichier multicol.sty.Ces fichiers sont normalement présents sur toute installation pas trop ancienne de LATEX.

Page 53: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 29 — #47 ii

ii

ii

1.4. Mise à jour du format 29

distributions, le fichier .dvi, est fourni ce qui épargne à l’utilisateur la peine de lefabriquer. Notons aussi qu’il arrive parfois (rarement) que la compilation directe dufichier .dtx ne fonctionne pas : si l’installation du module a produit un fichier avecl’extension .drv, c’est ce dernier qu’il faudra compiler.

Lorsqu’un module est fourni sous la forme d’un fichier avec l’extension .sty, il estbien rare qu’il ne soit pas accompagné d’une documentation sous la forme d’un simplefichier texte intitulé Readme par exemple, ou bien portant une extension .doc ou encore.txt. Parfois aussi, on trouve des fichiers de documentation avec l’extension .ps, cequi signifie qu’il s’agit d’un fichier PostScript à imprimer directement 11.

1.4 Mise à jour du format

Depuis sa sortie en 1994, la version actuelle dite LATEX2ε a subi des évolutions pé-riodiques. Cela signifie que les macros qui constituent ce format ont subi quelquesmodifications afin de les améliorer ou de corriger des erreurs minimes. Ces modifica-tions sont publiées au rythme de deux fois par an au plus (en général en décembre eten juin) et chaque nouvelle version est désignée par sa date de publication. LATEX2εest, de toute façon, un format qui a depuis longtemps fait la preuve de sa stabilité etde sa cohérence.

Si l’on veut mettre à jour son installation, il faut se procurer la version la plusrécente du fichier appelé latex.ltx : c’est lui qui contient les définitions principalesdes macros de LATEX. Ce fichier n’est cependant pas utilisé tel quel par LATEX. Pour desraisons d’efficacité et de rapidité de fonctionnement, ce fichier doit être transformé sousune forme compacte lisible directement par TEX. C’est en réalité cette forme compactequi porte le nom de format : elle prend l’aspect d’un fichier appelé latex.fmt.

Le passage du fichier latex.ltx au fichier latex.fmt est une opération élémentaireque l’on appelle la compilation du format (en anglais dumping). Il suffit d’exécuterTEX sur le fichier latex.ltx en précisant l’option -ini qui désigne une version ou unmode de fonctionnement un peu particulier de TEX le rendant à même de procéderaux réglages internes nécessités par la compilation d’un nouveau format. La syntaxese résume à la ligne de commandes suivante :

tex -ini latex.ltx \dump

Sur certains systèmes, la syntaxe pourra varier quelque peu et invoquer un pro-gramme appelé initex qui n’est en fait qu’un alias de la précédente commande. Onécrit dans ce cas :

initex latex.ltx \dump

C’est au moment de la compilation que peut se faire également le choix des languesqui pourront éventuellement être utilisées. En effet, LATEX est capable de traiter plu-sieurs langages à la fois : pour qu’il pratique des césures correctes dans chaque langue,

11. Les fichiers de documentation n’ont pas à se trouver sur un chemin visité par LATEX : aucontraire même, mettez-les ailleurs pour ne pas faire perdre de temps à LATEX en lui faisant parcouririnutilement des répertoires lorsqu’il cherche quelque chose.

Page 54: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 30 — #48 ii

ii

ii

30 Principe de fonctionnement

il faut que les motifs de césure aient été, eux aussi, compilés dans le format : toute laprocédure est décrite en détail au paragraphe 11.2.

Pour tous les autres fichiers, tels que les fichiers décrivant les caractéristiques dechaque classe de documents (article, book, report, etc.), si une version plus récente estdiffusée, il suffit simplement de remplacer les anciens par les nouveaux.

1.5 Traitement des erreurs

Immanquablement, lorsque l’on prépare un document source, il peut se produire deserreurs. Celles-ci peuvent être suffisamment sérieuses pour stopper l’exécution du fi-chier. LATEX s’arrête en fait dès qu’il ne comprend pas une commande et émet toujoursun message pour tenter d’expliquer ce qui se passe : cela peut se produire tout simple-ment si une coquille s’est glissée dans votre texte et que le nom d’une commande n’estpas correctement épelé ou bien si un fichier recherché est absent ; mais les causes sontparfois plus profondes. Étant donné les constructions à plusieurs étages que consti-tuent parfois les macros, une première en appelant une deuxième qui en appelle unetroisième etc., les erreurs se retrouvent par moment à des niveaux très profonds, cequi rend le message émis par TEX totalement hermétique pour le profane.

En réaction à un message d’erreur, l’utilisateur devra donner une instruction àLATEX : celle-ci prend la forme d’une simple lettre que l’on tape sur le clavier etque l’on valide avec la touche RETURN. Plusieurs lettres sont ainsi autorisées avec lessignifications suivantes :

– on peut tout d’abord frapper la touche RETURN directement. Cela revient à de-mander à LATEX de poursuivre malgré tout, en espérant que l’erreur n’est pasfatale et que l’exécution pourra se poursuivre sans encombres. Par exemple, siLATEX a signalé une commande qu’il ne connaît pas, alors dans ce cas-là il l’igno-rera ;

– [H] ou [h] servent à demander de l’aide à LATEX. Celui-ci a, en général, undeuxième message d’erreurs en réserve pour le cas où le premier ne serait pasassez explicite ;

– [S] ou [s] signifient que LATEX doit poursuivre son exécution et ne plus s’arrêters’il rencontre d’autres erreurs. Il continuera d’envoyer des messages à l’écran etla seule chose qui pourrait encore l’arrêter serait un fichier absent ;

– [R] ou [r] sont encore plus drastiques que les précédentes. LATEX devra pour-suivre l’exécution même en cas de fichier manquant ;

– [Q] ou [q] ont le même effet que les précédentes mais suppriment l’émission desmessages à l’écran ;

– [I] ou [i] permettent d’insérer du texte à l’intention de LATEX afin d’essayerde corriger l’erreur : le texte saisi au clavier sera inséré exactement à l’endroitoù LATEX s’est arrêté (sans pour autant altérer le fichier source qui devra êtrecorrigé par la suite). Une commande utile à insérer est \stop car elle stoppel’exécution en mettant la page courante dans le fichier dvi ;

– on peut aussi taper un nombre n (inférieur à 100). Dans ce cas, TEX élimine ncaractères et macros de ce qu’il s’apprête à lire et attend l’instruction suivantequi peut être un texte de remplacement ;

– [X] ou [x] interrompent l’exécution sans envoyer la page courante dans le dvi ;

Page 55: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

ii

“agr_latex” — 2019/9/2 — 18:06 — page 31 — #49 ii

ii

ii

1.5. Traitement des erreurs 31

– [E] ou [e] ont le même effet que les précédentes mais ajoutent un message indi-quant à quelle ligne du fichier source se trouve l’erreur rencontrée. Sur certainssystèmes, l’éditeur du fichier source est appelé et pointe la ligne en question.

Il existe quelques commandes (qui sont en fait des primitives de TEX) qui permettentde placer a priori LATEX dans un des modes de traitement des erreurs évoqués précé-demment. Il suffit de les placer dans le préambule du fichier source. La tableau suivantprécise leur signification en précisant à quelle lettre elles correspondent :

\scrollmode [S]\nonstopmode [R]\batchmode [Q]\errorstopmode rétablit le comportement par défaut

Page 56: Apprentissage, guide et référence · 2019-09-30 · La troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes

3e édition

ISBN : 978-2-8073-2362-9

www.deboecksuperieur.com

Appr

entis

sage

, gu

ide e

t réf

éren

ceBE

RNAR

D

DESG

RAUP

ESLa

TeX

LaTeX est un système de composition de textes de haute qualité basé sur le célèbre noyau TeX de Donald Knuth. Le succès de LaTeXSon succès, tout particulièrement dans les domaines scientifiques et techniques, n’a jamais faibli depuis son apparition en 1984. Il est dû à la qualité typographique exceptionnelle des documents qu’il produit, à sa gratuité et à sa disponibilité sur les principales plateformes informatiques (Unix, Mac ou PC). C’est un outil extrêmement flexible, doté d’une syntaxe très souple pour la production d’expressions mathématiques, la gestion des sections, des index et des tables des matières, la production de bibliographies.

Un plan progressifLa partie Apprentissage expose à travers des leçons progressives les bases indispensables pour commencer à travailler avec LaTeX. La partie Guide aborde, sous formes de chapitres thématiques, l’utilisation avancée du logiciel. Un chapitre entier est consacré

aux réglages fins permettant de personnaliser la mise en forme d’un document. La partie Référence comporte de nombreuses annexes permettant de retrouver rapidement macros et symboles.

Un ouvrage actualiséLa troisième édition de cet ouvrage est une complète révision et mise à jour qui tient compte des évolutions récentes : certains packages classiques ont été remplacés par de nouvelles solutions et de nouveaux outils sont apparus en particulier dans le domaine de la production de graphiques et de documents de présentation. On trouvera en particulier des présentations détaillées des packages Beamer pour la création de diapositives à la PowerPoint, et Tkiz pour la conception de graphiques.

Par son approche pédagogique et son souci d’exhaustivité, cet ouvrage comblera tout utilisateur de LaTeX, néophyte ou chevronné, souhaitant publier des documents de caractère aussi bien scientifique, technique que littéraire.

Bernard Desgraupes : ancien élève de l’Ecole Normale Supérieure et Maitre de conférence et chercheur en Mathématiques à l’université Paris-10, il est l’auteur de plusieurs ouvrages consacrés à la programmation informatique et au traitement de données.

Z

9782807323629_LATEX.indd Toutes les pages 04/09/2019 16:38