Vous êtes sur la page 1sur 143

A Joli manuel pour LTEX 2"

Guide local de l'ESIEE Benjamin BAYART Geut

Compil le 18 d cembre 1995

cole Sup rieure d'Ing nieurs en lectrotechnique et lectronique

A Durant l' t 1994, une nouvelle version de L TEX est apparue, et a t quasi-imm diatement install e sur le r seau de l' cole par mes bons soins. Je d cidais, ce moment pr cis, de r diger une microdocumentation sur les di rences entre cette version et l'ancienne. En m rissant, cette documentation A a grandi. Elle d crit maintenant m me les bases de L TEX 2" et non plus seulement ses di rences avec A L TEX 2.09. Elle d crit galement un grand nombre d'extensions utiles tout et tous.

R sum

Renvoi
A Pour tout ce qui touche de pr s ou de loin L TEX2" , je ne puis que renvoyer le lecteur passionn ATEX : A document preparation system 61 deuxi me dition, aux excellents ouvrages de Leslie Lamport L A A revue et adapt e L TEX2"  et de Frank Mittelbach, Michel Goossens, et Alexander Samarin The L TEX Companion 81 qui contient une description compl te de nombreux packages existants ou en pr paration A pour le projet L TEX3. Ces deux ouvrages sont disponibles en Doc-Tek, et, si un jour geut des nances, alors ils seront empruntables aussi aupr s du responsable moi, l'heure actuelle, mais pas ternellement. Pour plus de d tails sur chacun des packages que je d cris dans le pr sent document, se r f rer l'ouvrage associ que je cite en bibliographie.

Table des mati res

1 2 3 4 5

Introduction 7 Avertissement 7 17 Introduction 7 10 Sp ci cit de l'installation locale  chier ESIEE.sty 17 Introduction la seconde dition 7 10.1 Le chier ESIEE.sty . . . . . . . . . . 17 10.2 Gestion des caract res . . . . . . . . . 17 Introduction la premi re dition 7 10.3 Tous les accents : mapcodes . . . . . . 18 10.4 Bug dans les packages . . . . . . . . . 18 Groupe des Esieeens Utilisateurs de TEX 8 11 Gestion des langues  L TEX polyglotte 18 A 5.2 tat des lieux . . . . . . . . . . . . . . 8
5.3 Projets . . . . . . . . . . . . . . . . . . 8

9.3 CV type . . . . . . . . . . . . . . . . . 9.3.1 Bonjour . . . . . . . . . . . . . 9.3.2 Rentrons dans le vif du sujet 9.3.3 La faute n'est pas la faute, la faute, c'est de recommencer . .

14 14 14

Overview 6 Pr sentation g n rale 7 Premiers pas


7.1 7.2 7.3 7.4 7.5 8.1 8.2 8.3 8.4

diter ton premier document . . Ta premi re compilation . . . . . Regarder ton premier document . Pour imprimer : : : . . . . . . . . Derni re fois . . . . . . . . . . . . Les classes . . . . . Les options . . . . Les packages . . . Mode compatibilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

9 12 Gestion des fontes 21 9 12.1 Comment changer de fonte . . . . . . 21 12.2 Changements longue port e . . . . . 21 9 9 13 Gestion des tailles 22 9 9 14 Accents, caract res sp ciaux et sym9 boles 22
9

11.1 Le Fran ais . . . . . . . . . . . . . . . 20 11.2 L'Allemand . . . . . . . . . . . . . . . 20 11.3 Les autres langues . . . . . . . . . . . 21

8 Structuration du document

10

9 Structure de documents types

9.1 Rapport type . . . . . . . . . 9.1.1 En-t te du document . 9.1.2 Le titre . . . . . . . . 9.1.3 Le d but . . . . . . . 9.1.4 Le corps du document 9.1.5 La n du rapport . . . 9.2 Lettre type . . . . . . . . . .

10 10 10 10 15 Constructions simples 15.1 Environnements . . . . . . 11 15.2 Les listes . . . . . . . . . . 11 15.3 Tableaux faciles . . . . . . 11 11 16 Chapitres et table des mati 12 16.1 Le titre . . . . . . . . . . 12 16.2 Division du document . . 13 16.3 Chapitre d'introduction . 13 16.4 Tables diverses . . . . . . 3

14.1 14.2 14.3 14.4 14.5

Les accents . . . . . . . . Caract res non-am ricains Caract res sp ciaux . . . Ponctuation . . . . . . . . Paragraphe . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

22 22 24 24 24

. . . . . . . 24 . . . . . . . 25 . . . . . . . 25 . . . .

24 26
26 26 26 27

res
. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

17 Inclusion de chiers

17.1 Inclusion simple . . . . . . . . . . . . . 27 17.2 Compilation partielle . . . . . . . . . . 27

27

29 18 Principe, environnements, g n ralit s 29

Math matiques

18.1 Principe . . . . . . . . . . . . . . . . . 29 18.2 Les environnements . . . . . . . . . . . 29 24 Les ottants 18.3 G n ralit s . . . . . . . . . . . . . . . 29 24.1 La base . . . . . . . . . . . . . . . . . 24.2 Le package endfloat . . . . . . . . . . 19 Symboles math matiques 29 24.3 Flottants am lior s : float . . . . . . 19.1 Package latexsym . . . . . . . . . . . 30 ATEX2" . . . . . . . . . . . 30 24.4 Flottants en landscape : rotating . . 19.2 Symboles L 24.5 Les titres des ottants : caption . . . 19.3 Le package amssymb . . . . . . . . . . 32 24.6 D coupages rigolos : floatfig . . . . . 19.4 Le package stmaryrd . . . . . . . . . . 33 19.5 Le package qsymbols . . . . . . . . . . 34 24.7 D coupages rigolos, version ten19.5.1 Les symboles simples . . . . . . 34 due : floatflt . . . . . . . . . . . . . 19.5.2 Symboles de relation . . . . . . 34 24.8 Le package window . . . . . . . . . . . 19.5.3 Fl ches standard . . . . . . . . 34 24.9 Le package endnotes . . . . . . . . . . 19.5.4 Fl ches tendues . . . . . . . . 34 24.10Le package fn2end . . . . . . . . . . . 19.6 Le package ulsy . . . . . . . . . . . . 34 19.7 Le package wasysym . . . . . . . . . . 36 25 Tableaux avec L TEX 2" A 25.1 Quelques pr cisions . . . . . . . . . . . 20 Constructions math matiques 39 25.1.1 Le multicolonnage . . . . . . . 20.1 Sommes . . . . . . . . . . . . . . . . . 39 25.1.2 Les lets horizontaux . . . . . 20.2 Op rateurs et fonctions . . . . . . . . 39 25.2 Le package array . . . . . . . . . . . . 20.3 Fractions, racines et accolades . . . . . 39 25.3 Le package delarray . . . . . . . . . . 20.4 D limiteurs . . . . . . . . . . . . . . . 40 25.4 Le package dcolumn . . . . . . . . . . 20.5 Les matrices . . . . . . . . . . . . . . . 40 25.5 Le package tabularx . . . . . . . . . . 20.6 Les accents et les espaces . . . . . . . 40 20.7 Constructions avanc es amsmath . . 40 25.6 Le package hhline . . . . . . . . . . . A 20.8 Options de chargement de AMS-L TEX 42 25.7 Gros tableaux : supertab . . . . . . . 20.9 Le package vector . . . . . . . . . . . 43 25.8 Gros tableaux : longtable . . . . . . .

23.4 La package a4 . . . . . . . . . 23.5 Le package afterpage . . . . 23.6 Changement de page am lior 23.7 Format de page : vmargin . . 23.8 Obtenir du landscape . . . . 23.9 En-t te : fancyheadings . . . 23.10Le package ssqquote . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

50 50 51 51 52 53 53

55

55 55 55 58 58 58 59 60 61 61

62

21 Alphabets math matiques


21.1 21.2 21.3 21.4 D nition . . . Gras amsmath A Gras L TEX2"  Alphabets . . . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

43 26 Les r f rences
43 43 44 44 26.1 26.2 26.3 26.4 27.2

62 62 62 62 63 63 65 66 67 69 71 71 71 71 72 72 73 73 75 75 76 76 77 77 78

Utilisation avanc e A 22 Gestion des fontes avec L TEX 2"


22.1 euscript . . . . . . . 22.2 eufrak . . . . . . . . . 22.3 pandora . . . . . . . . 22.4 beton . . . . . . . . . 22.5 xavier . . . . . . . . . 22.6 Le package mflogo . . 22.7 Le package oldstyle . 22.8 Le package ulem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

47 27 Environnements 72 27.1 La package enumerate . . . . . . . . . 72 47


47 47 47 47 47 47 48 48 49 ...... 27.2.1 L'environnement expdlist . . . 27.2.2 Commentaire . . 27.3 verbatim . . . . . . . . 27.4 moreverb . . . . . . . . 27.5 alltt . . . . . . . . . . 27.6 theorem . . . . . . . . . 27.7 Le package multicol . . 27.8 subeqnarray . . . . . . 27.9 Le package acronym . . 27.10Le package parallel . .
description

Les bases . . . . . . . Le package showkeys . Le package varioref . Le package lastpage .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

71

23 Mise en page

23.1 Style de page . . . . . . . . . . . . . . 23.2 Changement de ligne, changement de page, espacement . . . . . . . . . . . . 23.2.1 Changement de ligne, c sure . 23.2.2 Espacement . . . . . . . . . . . 23.2.3 Changement de page . . . . . . 23.3 Le package indentfirst . . . . . . . .

49

49 49 A 50 28 Interaction L TEX Mathematica 50 Images 50 4

........ tendu ........ ........ ........ ........ ........ ........ ........ ........ ........ ........

79 81

A 29 Dessins avec L TEX

A 29.1 Le plus bestial : L TEX pur . . . . 29.1.1 L'environnement picture 29.1.2 Lignes . . . . . . . . . . . 29.1.3 Cercles . . . . . . . . . . 29.1.4 Textes . . . . . . . . . . . 29.1.5 Fl ches . . . . . . . . . . 29.1.6 Courbes de B zier . . . . 29.1.7 Exemple . . . . . . . . . . 29.2 Le package bar . . . . . . . . . . 29.3 Le package eclbip . . . . . . . . 29.4 Le package ecltree . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

81 42 Conception avanc e d'un index, multiindexage 103 81


42.1 Utilisation avanc e . . . . . . 81 42.2 Renvoi d'une entr e l'autre 81 42.3 Encore plus avanc e . . . . . 81 42.4 Multi-indexage . . . . . . . . 81 82 Con guration et installation 82 82 82 43 La librairie kpathsea 43.1 Trouver un chier . . . . . . . 84 43.2 Con guration . . . . . . . . . 85 43.3 Syntaxe . . . . . . . . . . . . 43.4 Le programme kpsewhich . . 86 86 87 44 TEX Introduction, formats . . . . . 44.1 87 44.2 G n ration de latex.fmt . . 88 44.3 G n ration de tex.fmt . . . . 88 44.4 Arborescence des chiers . . . 88 45 METAFONT 45.1 Introduction, bases . . . . . . 89 45.2 G n ration de plain.base . 89 45.3 G n ration de cmmf.base . . 89 45.4 Arborescence des chiers . . . 89 89 46 xdvi 89 46.1 Arborescence des fontes . . . 46.2 Fichier de ressources . . . . . . . . . . . . . . . . . . . . . . . . .

103 104 104 104

30 Dessins inclure
30.1 30.2 30.3 30.4 30.5 30.6 31.1 31.2 31.3 31.4 31.5

A Inclusion de code L TEX . . . . . . . . Inclure du PostScript graphics . . . Extensions rigolotes . . . . . . . . . . Rotation PostScript . . . . . . . . . Zoom PostScript . . . . . . . . . . . Une syntaxe plus intuitive encore : le package graphicx . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

105 105

105 105 105 107 107 108 108 108 109 109 109 109

107

31 Production des dessins inclure


Xg ..... Gnuplot . . . Mathematica Khoros . . . . xv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

109

. . . . .

. . . . .

. . . . .

. . . . .

32 Sch mas lectroniques Bibliographie, index 33 Introduction 34 Approche manuelle A 35 Les commandes L TEX 36 Production de la bibliographie 37 Le chier de bibliographie 38 Les champs 39 Les di rents types d'entr e 40 Saisie d'une entr e
40.1 40.2 40.3 40.4

91 95 95 95 96 97 97 98 99 100
100 100 101 101

. . . . . 110 . . . . . 110

110 110

47 dvips

47.1 Arborescence des fontes . . . . . . . . 110 47.2 Fichier config.ps . . . . . . . . . . . 110 47.3 Options de ligne de commande . . . . 111 48.1 Syntaxe d'appel . . . . . . . . . . . . . 111 48.2 Con guration . . . . . . . . . . . . . . 111

48 Makeindex

111

49 BibTEX  arborescence des chiers 112 A 50 Installer un package L TEX 112 51 Mon installation pour Linux
51.1 51.2 51.3 51.4 TEX . . . . . METAFONT . dvips . . . . HomeTeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

50.1 Automatique dernier cri . . . . . . . . 112 50.2 Semi-automatique . . . . . . . . . . . 112 50.3 Antiquit . . . . . . . . . . . . . . . . 113 . . . . . . . . . . . . . . . . . . . . . . . . . . . .

113

41 Principe de r alisation d'un index

115 41.1 Approche manuelle . . . . . . . . . . . 102 52 Divers packages et macros pour A 41.2 Approche automatis e, makeindex . . 102 L TEX 2" 115 102
41.3 Insertion de l'index . . . . . . . . . . . 103 41.4 Changement de fonte . . . . . . . . . . 103 5

Choix du type d'entr e . . . . . . Recherche des r f rences crois es Choix des champs . . . . . . . . Choix de la clef de r f rence . . .

. . . .

. . . .

. . . .

113 113 113 113

Divers

52.1 ftnright . . . . . . . . . . . . . . . . 115 52.2 Le package xspace . . . . . . . . . . . 115

53 Incompatibilit s

Liste des gures


1 2 3 4

53.1 Le package bar . . . . . . . . . . . . . 53.2 Le package eufrak et les packages de l'AMS . . . . . . . . . . . . . . . . . . 53.3 Le package multind . . . . . . . . . . 53.4 Les packages varioref et showkeys . 53.5 Le package babel . . . . . . . . . . . . 53.5.1 Le package array . . . . . . . . 53.5.2 Le package graphics . . . . . . 53.5.3 Le package window . . . . . . . 53.5.4 Le package qsymbols . . . . . . 53.5.5 Le package hhline . . . . . . .

115

115 116 116 116 116 116 116 116 116 117

Annexes 54 Remerciements Index g n ral Index des commandes Index des environnements Index des packages Index des symboles math matiques
5 6 7 8 9 10 11 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63

119 119 120 124 128 130 133


81 82 83 86 90 90 93

Liste des tableaux


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

R sultat de la compilation de la lettre type . . . . . . . . . . . . . . . . . . . CV type r alis avec le package ESIEEcv. Exemple de oating gure selong floatfig . . . . . . . . . . . . . . . . Exemple de oating gure selon floatflt . . . . . . . . . . . . . . . .
A Classes utilisables par L TEX2" . . . . Options de mapcodes . . . . . . . . . . A Langues disponibles sous L TEX2" . . Changements de fontes standards . . . Changements de fontes . . . . . . . . . Changements de taille . . . . . . . . . Accents en mode texte . . . . . . . . . Caract res non-am ricains . . . . . . . Caract res sp ciaux . . . . . . . . . . Commandes de sectionnement . . . . . D clarations des trois types de tables les plus courants . . . . . . . . . . . . Symboles d nis par latexsym . . . . Lettres Grecques . . . . . . . . . . . . Op rateurs binaires . . . . . . . . . . . Symboles de relation . . . . . . . . . . Fl ches . . . . . . . . . . . . . . . . . . Divers symboles . . . . . . . . . . . . . Symboles taille variable . . . . . . . Noms de fonctions log-like . . . . D limiteurs . . . . . . . . . . . . . . . Grands d limiteurs . . . . . . . . . . . Constructions math matiques . . . . . Fl ches ajout amsmath . . . . . . . . Fl ches n gatives ajout amsmath . . Symboles de relation ajout amsmath Symboles de relation n gatifs ajout amsmath . . . . . . . . . . . . . . . . Op rateurs binaires ajout amsmath . Divers symboles ajout amsmath . . . Op rateurs ajout stmaryrd . . . . . Op rateurs taille variable ajout stmaryrd . . . . . . . . . . . . . . . . Symboles de relation ajout stmaryrd Fl ches ajouts stmaryrd . . . . . . .

15 15 59 59 11 19 19 22 22 23 23 23 25 27 27 30 30 30 30 30 31 31 31 31 31 31 32 32 32 32 32 33 33 33 34 34 6

Petit dessin, merci B zier ! . . . . . . . Courbe de B zier : exemple . . . . . . Exemple de dessin . . . . . . . . . . . Exemple d'arbre complexe avec ecltree Graphique Mathematica . . . . . . . . Image export e depuis Khoros . . . . . Premier essai de symboles lectroA niques avec L TEX . . . . . . . . . . . .

D limiteurs ajout stmaryrd . . . . . 34 Symboles simples avec qsymbols . . . 35 Symboles de relation avec qsymbols . 35 Symboles taille variable avec qsymbols 35 Fl ches standard avec qsymbols . . . . 35 Fl ches non-standard avec qsymbols . 35 Fl ches longues avec qsymbols . . . . 36 Fl ches complexes avec qsymbols . . . 36 Symboles g n raux ajout s par masysym 36 Symboles de physique et d' lectricit ajout s par wasysym . . . . . . . . . . 37 Polyg nes et toiles wasysym . . . . 37 Notes de musique wasysym . . . . . . 37 Cercles divers wasysym . . . . . . . . 37 Symboles phon tiques wasysym . . . 37 Symboles d'astronomie wasysym . . . 38 Symboles d'astrologie wasysym . . . 38 Symboles APL wasysym . . . . . . . 39 Accents en mode math matiques . . . 41 Espaces en mode math matiques . . . 41 Accents doubl s ajout amsmath . . . 41 Exemples des di rents alphabets math matiques . . . . . . . . . . . . . . . 45 Les quatres principaux types de ottants 56 Options de chargement du pakage endfloat . . . . . . . . . . . . . . . . 56 Exemple de tableau avec array . . . . 64 Titre du bas . . . . . . . . . . . . . . . 69 Styles de th or mes accept s par le package theorem . . . . . . . . . . . . . 76 Clefs utilisables par graphicx . . . . . 88 Entr es d'une bibliographie . . . . . . 100 Liste des constantes d nies pour kpathsea . . . . . . . . . . . . . . . . 106 Constantes de kpathsea utilis es par chaque application . . . . . . . . . . . 106

Introduction 1 Avertissement
Ce document que tu as entre les mains n'est pas un document de r f rence. Il n'engage que son lecteur toi et donc pas son auteur moi. Cependant, je pense qu'il ne comporte plus trop d'erreurs. Il se veut conforme aux documentations cit es en bibliographie. Un moyen simple de savoir s'il est obsol te est de savoir si l'un de ces documents l'est. Autre chose en n, ce document est le Local guide de l'ESIEE, c'est- -dire que lorsque j'ai besoin de faire r f rence une installation type, c'est celle de l'ESIEE que je me r f re. Je ne suis pas omniscient, donc je ne peut pas en d crire d'autres. Toutes mes excuses pour cette g ne aux gens ext rieurs l'ESIEE qui me lisent.

2 Introduction
Cette remise jour du Joli Manuel pour A L TEX2"  n'a que tr s peu de choses de plus que l' dition pr c dente. On retiendra tout de m me la partie sur la r alisation d'un index, celle sur les incompatibilit s entre packages, l'ajout d'un CV dans les documents types, une partie sur l'utilisation du landscape, Ce fascicule que tu tiens dans tes petites mains potel es est la seconde dition du Joli Manuel pour A L TEX2" . Elle est une remise jour majeure de la pr c dente la premi re dition, et contient les informations que contenait son a n  Joli Manuel pour A A L TEX qui tait consacr L TEX 2.09. C'est donc le troisi me document que je di use l'ESIEE sur A L TEX. Il a une longue histoire pleine de rebondissements. Son origine est le fait qu'un ami m'avais demand un chier d'exemple contenant un peu de tout. Ensuite, on me f t remarquer qu'un tel document pouvait tre d'une grande utilit , ce qui le t se r pandre sur le r seau de l' cole. Ce manuel n'est pas un manuel pour d butant A sous L TEX, il suppose que tu connais d j au moins A les rudiments de L TEX2.09. Si tel n' tait pas le cas, alors reporte toi son grand fr re comme c'est dit dans l'avertissement que si tu l'as pas lu, il faudra A bien le lire. L TEX volue, alors la doc aussi. Il y a plein de nouveaut s, de changements, de coups de g nie: : : Il tait n cessaire de r gler ce probl me rapidement en indiquant dans un petit fascicule ce qui fonctionne l'ESIEE et ce qui n'y fonctionne pas. Toutefois, certains d'entre vous ont des documents A qui compilent tr s bien sous L TEX2.09 et qui risquent de ne pas passer avec la nouvelle version. Dans le soucis de vous rendre service, je garantis encore le 7 quelques remarques sur babel, quelques packages nouvellement d cris endnotes, fn2end, oldstyle, lastpage et d'autres, une di usion l'ext rieur de l'ESIEE et une partie sur le lien entre Mathematica A et L TEX.

3 Introduction la seconde dition


Vint ensuite l' pisode geut, ce groupe que j'avais c ur de cr er, pour essayer d'insu er une certaine A solidarit aux utilisateurs de L TEX. Lors de l'appaA rition de L TEX 2" l'ESIEE, c'est dire d s sa sorA tie comme version o cielle de L TEX en juin 1994, j'entrepris la r daction d'une documentation sp cique. Elle a volu jusqu' atteindre le stade o tu la trouves. Cette histoire se termine, pour l'heure, sur un constat d' chec. L'administration de l' cole m'a en effet demand de ne pas poursuivre mes travaux. Toutefois, une solution semble se pro ler l'horizon. Il reste donc un tr s mince espoir.

4 Introduction la premi re dition


bon fonctionnement de l'ancienne version, c'est dire qu'elle ne fonctionnera pas moins bien qu'au premier juin 1994. Pas forc ment mieux. Je pense qu'aucune correction de bugs n'aura lieu. Ou alors titre absolument exceptionnel. Il est n cessaire que vous appreA niez la nouvelle version de L TEX pour vos nouveaux documents, tout simplement parce que l'ancienne est obsol te et ne survivra pas ternellement. Les garanties que je donne ne sont valable que tant que je garde A une certaine in uence sur le devenir de L TEX sur le r seau de l' cole, c'est dire de mani re s re jusqu'en juin 1995, mais probablement pas apr s. Bonne lecture.

5 Groupe des Esieeens Utilisateurs de TEX


Le geut n'est pas un club, il ne d pend pas exclusivement du BdE1 . Il n'est pas une association, n'ayant ni nances2 ni tr sorier. Il n'est pas autonome non plus. Le geut doit au BdE de pouvoir publier des documents comme celui-ci, et seulement a. Le geut doit au SMIG l'acc s au mat riel pour travailler locaux, machine : : : . Le geut doit l'administration son droit d'exister. D pendant de toutes les parties de l' cole, il se veut ouvert tous : profs, l ves, et administratifs. Le geut n'est pas une secte, il n'y a pas de rite initiatique, tout le monde y est bienvenu et nous sommes pr ts prendre avec nous n'importe qui. La seule obligation de type mystique est un in ni respect des p res fondateurs D.E. Knuth, L. Lamport, F. Mittel5.3 Projets A bach: : :  sans qui TEX et L TEX ne seraient pas. Le geut n'est qu'un groupe petit d' l ves qui Les A connaissent un petit peu TEX ou L TEX et qui sont vants : projets plus ou moins en cours sont les suipr ts empi ter un peu beaucoup pour certains sur leurs loisirs pour aider tous les utilisateurs de l' cole L'installation sur Mac sous System7. produire des documents de bonne facture avec l'un des meilleurs logiciels qui soit. La tenue jour du Joli manuel pour Le geut se propose de vous o rir des documenA L TEX2" . tations en fran ais sur certains th mes qui int resseront su semment ses membres pour qu'ils crivent A La tenue jour de L TEX. des docs. L' criture et la mise au point d'une documen5.2 tat des lieux tation en HTML. Un prototype d'installation pour PC MS-DOS L'aide aux utilisateurs par mail. mimant parfaitement celle des stations existe et est,

5.1 Pr sentation

ce jour, en d monstration sur un des PCs du d partement info. Elle sera probablement remise niveau bient t. Une installation pour Linux existe et est disponible sur disquette ou sur le r seau. Une installation pour amiga r pondant aux m mes exigences existe. Nous la devons Julien Wilk, Yves Surantin et Patrick Reuter. Il existe des docs en fran ais sur pas mal de th mes A Mathematica, L TEX2.09, construction des tableaux, composition de partitions: : : . Il existe aussi des docs sur peu pr s tout en anglais mais elles ne sont pas toujours disponibles sur papier. De toutes fa ons, poser la question ne co te rien et te laisse une chance d'obtenir une doc.

de livres de r f rence

1 Il d pend plus du SMIG que du BdE, pour pouvoir travailler et plus du BdE que du SMIG pour di user ses docs 2 La vente de cette pr sente doc un prix symbolique permettra cependant de faire face d' ventuels frais du type achat

Overview 6 Pr sentation g n rale


A L TEX est un outil de compilation de documents. Ce n'est pas un traitement de texte au sens classique du terme. Il te permettra, l'aide de mots clef sp ci ques de dire comment tu veux voir appara tre ton document, la logique qui le caract rise, tes conventions de mise en page : : : pour qu'il puisse, tout seul, produire un document le plus convenable possible. A L TEX est particuli rement tudi pour les math matiques, il permet la mise en forme de rapports, de th ses, de polys : : : d'une qualit exceptionnelle. On peut, sans trop se tromper, dire que personne ne vient lui faire d'ombre pour tout ce qui touche l' dition d' quations, et que ses possibilit s sont grandes pour

tout le reste. A Cependant, L TEX n'est pas fait pour produire des a ches et ne peut par cons quent pas r aliser simplement des travaux d' dition de texte tordus. Il y a pour cela d'autres outils puissants et gratuits, dont X g A Toutefois avant de renoncer utiliser L TEX, demande-moi, j'ai quelques jolies choses dans ma besace. A L TEX compile des chiers ascii standards, avec l'extension .tex. Il reconna t ses commandes au fait que celles-ci commencent par un backslash  , et reconna t certains caract res comme tant sp ciaux. C'est un chier auxilaire parmi plusieurs autres pour certains documents A plus complexes tr s pr cieux L TEX. C'est le r sultat de la compilation, celui que tu visualiseras.

7 Premiers pas
7.1

Lance ved, par exemple en cliquant sur son ic ne. Tapes, par exemple, le document suivant :
documentclass french,12pt usepackage T1 fontenc usepackage babel begin document Bonjour, Monde! end document premier.tex article

diter ton premier document

premier.aux

premier.dvi

7.3 Regarder ton premier document


xdvi premier

Pour regarder le r sultat de tout cela l' cran, double-clique sur le chier premier.dvi, ou tape au clavier dans un terminal :

Si, satisfait de ton travail, tu souhaites l'imprimer, l encore, deux options s'o rent toi : 7.2 Ta premi re compilation Il te reste le compiler. Pour cela, deux choix. Clique avec le bouton de droite de la souris sur l'ic ne du chier premier.dvi et choisis l'opla souris, il te su t de double-cliquer avec le bouton tion Print_lps20. de gauche sur l'ic ne de ton chier. Au clavier, dans un terminal, tu taperas la ligne suivante : Tape dans un terminal
latex premier

Sauve le sous un nom nissant par .tex, mettons . a y est, ton premier document existe.

7.4 Pour imprimer : : :

en ayant soin d' tre dans le bon r pertoire. A ce stade plusieurs chiers ont t cr s : 7.5 Derni re fois premier.log C'est la transcription d taill e de tout Autant te le dire tout de suite, c'est la derni re ce qui s'est pass la compilation. En fois que je perdrais autant de temps et de place particulier des ventuelles erreurs. t'expliquer des choses aussi simples et futiles.

dvips premier

A Dans L TEX2" on structure les documents de mani re di rente de l'ancienne version. En e et apparaissent de nouvelles notions comme la notion de classe, d'option, de package: : :

8 Structuration du document

Ainsi, si tu souhaites utiliser les macros du chier a4.sty, tu placeras cette ligne entre le documentclass et le begin document :
usepackage a4

Cela fait exactement la m me chose que lorsque tu pla ais a4 dans les options de documentstyle. Toutefois, les packages admettent d sormais des options et peuvent l encore avoir des dates de version respecter. Pour viter d'avoir r p ter sans cesse cette commande, il est possible de donner une liste de packages charger, simplement en s parant leurs noms par des virgules. De plus pour les options, toutes les options positionn es dans un usepackage sont pass es tous les packages lus par cette commande. En n, les options d clar es dans le documentclass sont glo8.2 Les options bales et inchangeables, elles sont donc pass es tous Tu te souviens sans doute que dans les options du les packages sans les r p ter. Par exemple, l'en-t te actuel de ce document est : documentstyle4 on pla ait un peu tout et n'importe quoi : aussi bien les options du style principal 11 pt, documentclass french,10pt article par exemple que les macros d'extension charger usepackage german,english babel pour la compilation eepic, epsf: : : . L'option french a t plac e dans les options du A L TEX2" , dans un souci de clari cation, a d cid documentclass car tout mon document est en frande s parer les choses selon leur sens. Les options sont des options, les extensions packages sont des exten- ais, et je ne souhaite pas avoir la r p ter sans cesse. Les di rents packages ainsi que les options qu'ils sions, deux syntaxes di rentes sont d sormais utilireconnaissent sont d crits tout au long de ce docus es pour les appeler. A Conform ment aux habitudes sous L TEX, les op- ment. tions sont plac es entre crochets juste apr s le nom de la commande. Ainsi pour charger la classe de do- 8.4 Mode compatibilit cument report en 12 points, on tapera en t te de A Les auteurs de L TEX2" tant des gens s rieux, document : A une compatibilit avec l'ancienne version de L TEX a t pr vue. Ainsi, si ton document commence documentclass 12pt report avec l'ancien documentstyle au lieu du nouveau Il a aussi t constat que des versions di rentes documentclass, L TEX2" passera tout seul en mode A survivaient selon les endroits o on les cherchait. compatibilit 2.09, c'est dire qu'il fera comme si Ainsi, en recevant un document d'une autre univer- on compilait avec L TEX 2.09. A sit , il pouvait supposer une version di rente de celle Quelques remarques rapides : actuellement utilis e. Pour cela, on peut sp ci er une Aucune des nouvelles possibilit s n'est accesdate de version partir de laquelle on accepte le sible depuis ce mode. chier : La compatibilit n'est garantie que pour l'utilidocumentclass 12pt report 1994 06 01 sation des commandes de haut niveau. En parA permet de demander L TEX2" d'utiliser le style ticulier pour la gestion des fontes, il peut s'av report avec l'option 12pt dans une version datant rer utile de charger le package rawfonts si cerd'apr s le premier juin 1994. Si une version plus antaines de tes macros font appel des macros cienne est trouv e, un message te le signalera lors de bas-niveau pour les fontes. la compilation. Ce cas tant di cile d tecter, parle-m'en avant de dire que le mode compatibilit ne 8.3 Les packages marche pas. Certaines extensions faisaient appel des comLes paquets de macros-commandes charger A mandes bas-niveau et ne sont donc plus tol avant la compilation sont d sormais l gion sous L TEX r es. C'est pour cela que nous conservons les plusieurs dizaines, rien qu' l'ESIEE. Une comdeux versions. mande sp ciale a donc t pr vue. En fait, tu sais d j de quoi il s'agit3, ce sont les sempiternels report, article, book, et letter. Avant, c' taient des chiers de styles tout b tes, si ce n'est qu'il en fallait un par document. Et forc ment un de ceux-l . Pour marquer leur sp ci cit , on leur a donn un nom : ce sont des classes de documents, et les chiers correspondants portent l'extension .cls. A Les classes de L TEX2" sont r f renc es de mani re peu pr s exhaustive dans le tableau 1 page ci-contre.
3 Si tu as d j travaill avec l'ancienne version, L TEX 2.09. Sinon tu vas apprendre tr s vite. A 4 Anc tre du documentclass

8.1 Les classes

10

article report book letter slides refman refman-s proc exam ltxguide ltxdoc ltnews

Inchang . Inchang . Inchang . Je ne sais toujours pas m'en servir. Rempla ant et successeur de SliTEX. Classe permettant la mise en page de manuels de r f rence. Comme refman mais en plus petit. Classe sp ciale pour les compte rendus de conf rences proceedings.
A Classe sp ciale utilis e par les concepteurs de L TEX2" pour crire un mode d'emploi. Classe de documents utilis e pour fournir un exemplaire tr s lisible et A bien document des sources de L TEX2" . A Classe utilis e pour crire la lettre d'information di us e avec L TEX2" . A Tableau 1: Classes utilisables par L TEX 2"

Il est fortement recommand de ne pas utiliser ce mode pour de nouveaux documents car il n'est l que pour viter les pertes et ne sera A probablement plus dans L TEX3. Si le mode compatibilit choue lamentable-

A ment, essaie de passer en L TEX2" pur en corrigeant l'en-t te et les changements de fonte  bf, it,: : :  A La majorit des extensions pour L TEX 2.09 ATEX 2" . fonctionnent encore avec L

9 Structure de documents types


Je ne te donnerais ici que deux documents types. L'un est un rapport bidon, dont le seul int ret est de te montrer comment cela se pr sente normalement. Je n'y utilise pas le syst me d'inclusion de chiers, mais il est recommand de le faire en respectant le principe qui dit un chapitre par chier.
Le package indentfirst pour que le premier paragraphe suivant un titre de section soit indent , alors qu'en anglais on ne le fait pas. L'option french qui est mise comme globale alors que ce n'est pas une option de report. Simplement, elle sera pass e tous les packages qui en auront besoin. C'est dire tous les packages qui sont suceptible de produire du texte. L'option twoside qui demande ce que l'on travaille en recto-verso. a a deux cons quences. La premi re est que les parties commencent sur des pages impaires, et la deuxi me est que les marges  et ventuellement les ent tes de pages  seront altern es selon que l'on est sur une page de droite recto ou de gauche verso. L'option openright, qui n'a de sens que si la pr c dente est l , indique que m me les chapitres doivent commencer sur des pages impaires de droite.

9.1 Rapport type

Ce document est disponible sur le reseau sous le nom :


user tex Exemples rapport.type.tex

9.1.1 En-t te du document


documentclass french,twoside,openright usepackage T1 fontenc usepackage babel,indentfirst begin document report

A noter : L'utilisation du package fontenc qui doit se 9.1.2 Le titre faire comme cela pour permettre la c sure convenable de notre belle langue ou de toute langue begin document ayant des caract res accentu s. De toutes fa on, title Rapport bidon a ne nuit pas dans les autres cas. author Benjamin textsc L'utilisation du package babel. C'est lui qui se chargera de faire les traductions utiles par exemple chapter en chapitre.

Bayart and Moi textsc M ^eme and Moi textsc Aussi and Personne textsc d'Autre date Le today

11

maketitle strut thispagestyle empty vfill pagebreak setcounter page 1

standard am 'ericain. L `a o `u cela se corse c'est que si tu met du fran c c ais, il risque de faire des fautes. Par exemple, avec les mod `eles de c 'esure footnote coupure des mots en fin de ligne am 'ericain, il tol `ere une c 'esure entre le n et le c de donc . Si et donnent des points d'interrogation bizarres, c'est que tu as vir 'e la ligne sur le verb"fontenc".

A noter : A noter : Le titre, la date, l'auteur et la g n ration de la La table des mati res  tableofcontents. page de titre, sans commentaire. L'introduction. Cette construction complexe Juste apr s, c'est dire pile l'endroit o se sert produire un chapitre non-num rot et trouvent les r f rences ISBN et autres formarecens dans la table des mati res. Une comlit s pour les livres, je met un truc invisible mande toute faite existe dans le package ESIEE,  strut. Ensuite je demande ce que cette mais celui-ci n'est pas un standard internatiopage l ne soit pas num rot e. Ensuite je la remnal 6 . plis  vfill. En n, je change de page. Le but de toute cette man uvre est d'ins rer une page blanche au dos de la couverture pour que lorsque l'on imprime directement en recto-verso, tout 9.1.4 Le corps du document ne soit pas d cal d'une page sous pr texte que Attention: l'exemple r el contient un texte, mais la couverture est en recto simple. je n'ai pas souhait le reproduire ici pour ne pas perdre Il convient de penser ramener le compteur de de place. page 1 sinon toute la man uvre pr c dente n'a A servi rien. L TEX devine si une page est recto part 'Etude pr 'eliminaire ou verso d'apr s sa parit page impaire=recto, chapter On a commenc 'e page paire=verso5 .
section Le commencement

9.1.3 Le d but
tableofcontents chapter* Introduction addcontentsline toc chapter Introduction markboth uppercase Introduction uppercase Introduction Voici l'introduction de mon rapport, elle est tr `es jolie et tout et tout. Tu noteras que dans un rapport en LaTeX , il n'y a que ce qui se trouve textsc avant le verb" begin document " qui est d 'ependant de la machine utilis 'ee. En effet, le reste est du standard LaTeX `a peu pr `es ind 'ependant de l'installation effectu 'ee. Par exemple, il est probable que sur ton site en Grande-Bretagne le fran c c ais soit convenablement install 'e. De toutes fa c c ons tu t'en fiches, je pense que ton rapport sera en anglais. Pour ce faire, il suffit de virer le verb" french " dans la premi `ere ligne, le verb" usepackage T1 fontenc " et le verb"babel". Apr `es, tu te retrouves avec le

C'est par l `a qu'on a commenc 'e, comme d'habitude. section Juste apr `es Ben on a continu 'e de commencer. Mais plus fort. section Enfin ............................................ tr `es long rapport tr `es intelligent ............................................ chapter Euthanasie des profs cons chapter Euthanasie des administratifs cons section Y sont nombreux en plus

A noter : Les commandes de sectionnement C'est principalement cette partie l qu'explique le reste de la doc.

5 Convention typographique plus que classique. tel point que les pages de droites sont dites belles pages et les pages de gauche sont dites fausses pages. 6 C'est d j pas un standard l'ESIEE
:::

12

9.1.5 La n du rapport
chapter* Conclusion addcontentsline toc chapter Conclusion markboth uppercase Conclusion uppercase Conclusion Heureusement que le projet il durait pas plus longtemps parce que c c a co ^ute vachement cher de glander `a la Kfet toute la journ 'ee. part Annexes appendix chapter R 'esultats chiffr 'es begin tabular |l|r|r|r| hline & D 'epenses & Recettes & Bilan hline Caf 'e & 3658,25 F & 1,75 F & -3656,50 hline Croissant & 1548,12 F & 0,00 F & -1548,12 hline Beignet & 925,30 F & 8,25 F & -917,05 hline hline Total & 6131,67 F & 10,00 F & textbf -6121,67 hline end tabular chapter R 'esultats humains Ben je m'est beaucoup amus 'e. Pas vous? end document

Les cinq d clarations globales : name pour le nom de l'exp diteur ; signature pour sa signature ; address pour son adresse ; location pour un ajout de pr cision l'adresse, par exemple cellule 1452 ; telephone y faut vraiment te faire un dessin? Chaque lettre est en fait un environnement . Il est jug comme essentiel que le nom du destinataire soit la premi re ligne de l'argument, et que chaque ligne de celui-ci soit s par e des autres par un
letter

Voil l'exacte tendue de mes connaissances sur le sujet. Je sais aussi que l'on peut se servir du style letter pour g n rer des lettres automatiquement partir d'un chier d'adresses de destinataires, mais je ne souhaite pas d velopper ici ce genre de cuisine. Voil ce que peut tre une lettre type. On trouvera le document ci-dessous dans le chier
user tex Exemples lettre.type.tex

Le source est le suivant et le r sultat est illustr gure 1 page 15


documentclass french,12pt usepackage T1 fontenc usepackage babel usepackage ESIEE begin document name Benjamin textsc Bayart signature address 1, rue de Beaumont 95 560 Maffliers location telephone 34~69~88~17 begin letter Beno ^it Joly 33, rue du Duc de Dantzig 77 340 Pontault-Combault opening Tr `es cher Beno ^it, Depuis ces presque cinq semaines que nous ne nous sommes vu, bien des choses se sont produites. Bien des 'ev `enements ont 'et 'e c 'el 'ebr 'es. Il faudra que je te racontes combien int 'eressant fut ce projet, que je te dise `a quel point il est d 'elicat de travailler sur d'aussi complexes sujets sans avoir de solides bases th 'eoriques auxquelles se raccrocher. letter

A noter : La conclusion qui marche comme l'intro. On utilisera volontier le m me syst me pour les remerciements et la pr face. Pour la bibliographie A c'est pas la peine, c'est pr vu par L TEX. L'exemple le plus simple de cr ation de tableau. Pour passer du corps du document aux annexes, on indique simplement le mot clef appendix. Note qu'il ne produit pas de page avec cris en gros Annexes. C'est toi de le faire. Les deux chapitres viendront en fait cr er l' Annexe A et l' Annexe B. C'est le A choix fait automatiquement par L TEX.

9.2 Lettre type

La lettre type est donn e un peu plus loin. Avant, je vais exposer comment on utilise la classe letter. Il s'agit d'une classe de documents que j'utilise plus que rarement, aussi me bornerais-je te donner les commandes usuelles en te rappelant que la mise en page choisie est celle l'am ricaine.

13

Comme convenu je pense que nous nous retrouverons tr `es bient ^ot pour discuter de tout cela et du reste. closing Tr `es affectueusement, end letter end document

Les pr -requis Votre CV doit inclure le package


ESIEEcv

de la mani re suivante :

usepackage ESIEEcv

9.3 CV type

Nous devons ce paragraphe Pierre Le Maguet qui par son insistance folle r ussi a me faire crire un petit package r pondant au doux nom de ESIEEcv et qui sert produire des CVs comme il les aime. Pierre tant peu pr s aussi fou que moi, il a tenu ce que ce package soit ultra-param trable. En change de l'e ort que m'a demand l' criture du package, je lui ai demand d'en r diger la documentation en fran ais. C'est ce texte que vous allez lire. Qu'il soit ici chaleureusement remerci de sa g n reuse et grande contribution la d fense et la promotion A de L TEX l'ESIEE. Un CV type, cris avec ce package est disponible sur le r seau comme tant le chier suivant :
user tex Exemple cv.type.tex

N.B. : Dans sa version de base, ESIEEcv appelle les packages tabularx et stmaryrd. tabularx, package bien connu, est utilis pour la cr ation de tableaux. Il est requis car chaque rubrique cf plus loin d clare un tableau, qui va aider la mise en page. stmaryrd est un package d nissant une quantit impressionnante de caracteres sp ciaux, notemment celui utilis en d but de champ Apport cf plus loin aussi.

La Rubrique Un CV est en g n ral structur en

grandes rubriques du style tat civil, tudes, exp riences, etc : : : Nous avons donc cr une fonction permettant de faire une Rubrique. Les pros s'y retrouveront mieux si je leur dit que Benjamin a cr un environnement. La rubrique a un titre, sens r summer son th me : On utilisera donc les commandes suivantes :
begin rubrique titre de la rubrique notre & rubrique est & vide nous & devons maintenant la remplir end rubrique

Libre toi, lecteur feignant, de recopier ce CV et de le modi er pour faire le tien.

avec un r sultat dont la magni ance nous chappe encore :

Titre de la rubrique
notre est nous

9.3.1 Bonjour

A Cher lecteur adepte de L TEX, je te salue. A Je ne suis pas un sp cialiste de L TEX, mais j'aime bien son rendu. Aussi ai-je tann Benjamin pas mal de temps pour faire mon CV. Il en est sorti un package : ESIEEcv.sty qu'il m'a demand de pr senter. Le but du package est de proposer des outils facilitant la mise en page de CVs et permettant de changer cette derni re rapidement. Pour cela, on s'est attach A avoir un chier L TEX contenant un CV organis par aspects, et un chier ESIEEcv.sty assurant la mise en page de ce dernier. Pour changer l'aspect du CV, on modi era le chier .sty, pour en changer le contenu, on reprendera le chier .tex. Dans un premier temps, je vais essayer de pr senter le chier .tex. Je ne m'attarderai donc pas trop sur les consid rations techniques mais plus sur la m thode d'utilisation. Ensuite, si tu veux personnaliser le layout7, tu peux recopier ESIEEcv.sty dans ton r pertoire de travail et le changer souhait8.

rubrique vide devons la remplir

La sous-rubrique A l'int rieur de la rubrique, on

trouvera plusieurs sous-rubrique, que nous avons class es comme suit : Les sous-rubrique de type exp rience situ e dans le temps, l'espace, la fonction, etc. Les sous-rubrique du type comp tence telles que les langues, les outils CAO ou les langages informatiques. Les autres sous-rubrique, auxquelles nous n'avons pas pens . Ces sous-rubrique n'ont pas t impl ment es, nous n'en parlerons donc pas. A En langage L TEX, la sous-rubrique est, comme la rubrique, un environnement. On la d clare donc de la m me mani re, au titre pr s :
begin sousrubrique . . . end sousrubrique

9.3.2 Rentrons dans le vif du sujet

autant, certes, mais quand m me pas mal.

7 Foutu angliciste de m : : : en fran ais, on dit personnaliser la mise en page! 8 Pierre est d'une bestialit sans bornes. Il est tout fait possible de personnaliser sans corriger le chier ESIEEcv.sty, pas

un philosophe inconnu, un jour brumeux de l'automne 1991.

14

1, rue de Beaumont 95 560 Ma iers 28 juin 1995 Benot Joly  33, rue du Duc de Dantzig 77 340 Pontault-Combault Tr s cher Benot,  Depuis ces presque cinq semaines que nous ne nous sommes vu, bien des choses se sont produites. Bien des v nements ont t c l br s. Il faudra que je te racontes combien int ressant fut ce projet, que je te dise quel point il est d licat de travailler sur d'aussi complexes sujets sans avoir de solides bases th oriques auxquelles se raccrocher. Comme convenu je pense que nous nous retrouverons tr s bientt pour diso cuter de tout cela et du reste. Tr s a ectueusement, Benjamin Bayart
Figure 1: R sultat de la compilation de la lettre type
Pierre Le Maguet

68, rue Jacques Pr vert e 95320 Saint-Leu-la-For^t e T l: 1 39-32-05-38 e E-mail: lemaguep@esiee.fr

N le 28 mai 1973 22 ans e Franais c Non d gag des obligations militaires e e C libataire e Permis B

Formation
1990-96

ESIEE, Ecole Sup rieure d'Ing nieurs en Electrotechnique et Electroe e nique.

Langages: CAO: Logiciels

Langues

Sp cialisation en Micro-Electronique et Traitement de Signal. e C, VHDL, Pascal, ASM TMS320C50 & 680x0, Signal. Compass, Cadence, Mentor Graphics, PSpice. A Matlab, Mathematica, SPW, L TEX. Courant. Courant. Un an en Saxe.

Anglais Allemand
1995

Exp rience Technique e


6 mois

Fraunhofer-Institut, Dresden. Aide de recherche 10 h semaine.

Conception d'une interface graphique pour la visualisation de r sultats de recherche. e 3 D veloppement sous Unix Sun OS. e 3 Etablissement d'un cahier des charges en coop ration avec les futurs utilisateurs. e 3 Projet enti rement r alis en langue allemande. e e e
ESIEE-Paris. D veloppement d'un Modem QPSK selon la norme V26. e

1994 1993

ESIEE-Paris. Conception et r alisation d'une carte PC pour le traitee 6 semaines ment d'image.

6 semaines Etude de la correction de d rive de fr quence porteuse. Int gration Full duplex. e e e Carte architecture recon gurable du fait de l'utilisation d'un Xilinx 3050. a 3 Implantation de ltres morphiques de pr d tection. ee 3 Premi re exp rience pratique cons quente. e e e

Exp rience Personnelle e


1992-94

2 ans

Linguaform, Paris. Auxiliaire P dagogique. e

Aide l'encadrement et l'organisation de voyages linguistiques au Royaume-Uni. a a 3 Travail d'organisation. 3 Sensibilisation aux probl mes d ontologiques pos s par l'encadrement d'enfants. e e e 3 Contact client.
Bonduelle, Beauvais. Stage ouvrier.

1990

1 mois

Travail a la chaine, organisation en trois huit.

Figure 2: CV type r alis avec le package ESIEEcv.

15

Le titre a disparu. En e et, le titre, de m me que les autres champs, est optionnel. On trouve 6 champs dans une sous-rubrique. 6 champs utiles si la sousrubrique sert d crire une exp rience :

Antiquit

quelques si cles

Paradis. cole du r ve.

 la date de l'exp rience, introduite par la    

Apprentissage des bases de la th orie relative l'imaginaire et la mythologie. Sp cialisation en mythologie juv nile. 3 Acquisition d'une bonne
base de connaissances, qui m'a permis, par la suite, de m'adapter aux di rentes volutions culturelles de la sph re chr tienne. 3 maturation de mon projet professionnel.

Toutes couramment. Lues, crites, parl es. Ai t  amen , depuis 30 ans et suite la globalisation du march de No l, voyager de plus en plus fr quemment hors d'Europe. NB : Il est possible de remplir une rubrique sans 2 champs utiles pour la description de compt - passer par les sous-rubriques. La rubrique sera alors tences. Le champ Comp tence commande remplie comme un tableau normal. Ainsi, Competence, qui sera associ avec le champ Description  Descr, d j pr sent plus begin rubrique Essai: rubrique sans sous-rubrique haut. Mais & ce n'est pas tr 'es propre, donc ne dites pas `a & Benjamin que Voici un exemple : c'est moi qui vous en ai parl 'e
begin rubrique Formation begin sousrubrique Titre 'Ecole du r ^eve Date Antiquit 'e Duree quelques si 'ecles Lieu Paradis Descr Apprentissage des bases de la th 'eorie relative `a l'imaginaire et `a la mythologie. Sp 'ecialisation en mythologie juv 'enile. Apport Acquisition d'une bonne base de connaissances, qui m'a permis, par la suite, de m'adapter aux diff 'erentes 'evolutions culturelles de la sph `ere chr 'etienne Apport Maturation de mon projet professionnel end sousrubrique end rubrique begin rubrique Langues begin sousrubrique Competence Europ 'eennes Descr Toutes couramment. end sousrubrique begin sousrubrique Competence Autres Descr Lues, 'ecrites, parl 'ees. Ai 'et 'e amen 'e, depuis 30 ans et suite `a la globalisation du march 'e de No "el, `a voyager de plus en plus fr 'equemment hors d'Europe. end sousrubrique end rubrique end rubrique

commande Date, la dur e de l'exp rience, introduite par la commande Duree, le lieu de l'exp rience, introduit par la commande Lieu, le titre de l'exp rience, introduit par la commande Titre, une description, introduite par la commande Descr, le champ Apport, qui permet de mettre en style t l graphique ce qui manque. Contrairement aux autres champs, Apport pr sente la particularit d' tre r p table. Il correspond la commande Apport.

Langues
Europ ennes Autres

donne

Essai : rubrique sans sous-rubrique

Mais ce n'est pas propre, tr s donc ne dites pas Benjamin que c'est moi qui vous en ai parl

, j'ajouterais qu'il reste un l ment y ins rer. Vous aurez compris qu'en fait, chaque rubrique cr e un tableau bi-colonne, et chaque sous-rubrique se contente de remplir une ligne de ce tableau. Or, pour obtenir une jolie mise en page, il faut que la premi re colonne de chacun de ces tableaux aie la meme largeur que ses petites copines des tableaux des autres rubriques. On a tout d'abord pens faire un syst me qui prendrait la plus grande de ces largeurs, et l'imposeA rait aux autres. Mais il n'y a pas de commandes L TEX permettant de faire cela simplement. La plus grande largeur est en e et connue apr s la compilation, et A L T X n'est pas vraiment d'accord pour recommenqui, apr s compilation, donne le r sultat suivant : cerEla compilation. L'utilisateur est donc oblig , s'il ne veut pas de la largeur par d faut 3 cm, de red Formation nir lui-m me cette largeur.
.tex

Pr -nonrequis Avant d'en nir avec le chier

16

Elle est rang e dans la variable largeurcolonne. coup toute envie d'aller plus loin. Je dirais : Ouvrez L'utilisateur devra donc  en d but de document  ESIEEcv.sty et lisez le. Il est su samment petit pour crire quelque-chose dans ce go t l 9 : tre facile comprendre.
setlength ou settowidth largeurcolonne largeurcolonne 1.2cm texte de r 'ef 'erence

parlez-en Benjamin11. C'est lui le Dieu12, il est donc normal que ce soit lui qui crive la partie technique de sa doc13 . Si sa r ponse vous fait craindre pour votre survie, venez me voir14. Il est parfois un peu surmen . Je suis un TEXnicien de seconde zone, mais 9.3.3 La faute n'est pas la faute, la faute, j'ai la chance d'avoir t form par un Dieu. J'essaierai donc de vous d panner du mieux que je pourrai15. c'est de recommencer Bon CV ! Platon, un jour vraissemblablement peu brumeux de Voil . Si vous n'avez pas envie d'en savoir plus, vous pouvez vous d brouiller. Mais pour ceux que cela int resse, je propose que nous voyons comment changer le layout10.
l'antiquit grecque.

Mode d'emploi Si vous trouvez la chose indigeste,

Pourquoi ce titre? C'est ce que je me suis dit

en commen ant cette deuxi me partie, et a m'a

Le CV type dont je parle au d but fait l'objet de la gure 2 page 15. Voila donc ce quoi peut mener ce package.

10 Sp ci cit de l'installation locale  chier ESIEE.sty


A Lorsque j'ai install L TEX 2" l'ESIEE, j'ai eu l'occasion d' crire certaines macros assez simplistes mais qui permettaient de faciliter la vie de pas mal de gens dans des situations relativement fr quentes. J'en ai pro t pour corriger certaines erreurs que j'ai r ussi comprendre, donc grossi res contenues dans quelques packages standard. Au lieu d'e ectuer toutes ces petites choses soit 10.2 Gestion des caract res A dans le noyau de L TEX2" soit directement dans les Comme tu le sais peut- tre, les stations de trapackages concern s, j'ai pr f r garder un jeu de vail de l'ESIEE sont capables de travailler avec un chiers standard et placer le tout dans un chier part ESIEE.sty. Il s'utilise comme tous les autres pa- jeu de 256 caract res complet comportant entre autre les accents fran ais. Toutefois, je ne connais aucune ckages : bidouille clavier permettant d'atteindre simplement usepackage ESIEE chaque caract re int ressant17 . Il e ectue ses corrections d'apr s ce que vous avez Toutefois dans certains diteurs ved, celui par choisi de pr charger, par exemple, pour varioref16, d faut ; vuepad, un des grands classiques certains

10.1 Le chier ESIEE.sty

la ligne de correction n' tait prise en compte que si varioref tait lu. Il est donc recommand d'appeler le package ESIEE en dernier, sur une ligne part un usepackage pour lui tout seul puisque lorsque deux packages sont dans la m me requ te, rien ne garantit l'ordre de lecture.

9 Pierre expose ici des commandes que j'ai toujours refus de d crire dans mes docs. En e et, ces commandes ne servent A g n ralement qu' faire de la programmation pour L TEX et je n'ai jamais voulu faire peur mes lecteurs avec de tels sujets. Je le laisse donc libre d'agir et ne me porte par garant du r sultat. 10 La mise en page pour les mono-francophone comme moi. 11 Je serais tr s clair sur ce point, Pierre, je refuse cat goriquement toute explication technique d'un de mes sources toute personne qui n'aurait pas pr alablement lu avec la plus grande attention les ouvrages de r f rences, c'est dire celui de Knuth 58 et celui de Lamport 61 . Et quiconque aura lu ces livres trouvera mes bidouilles tellement enfantines qu'il n'aura pas la moindre question poser. Le seul point que j'aborderais est celui de la red nition des 6 commandes qui sont d nies au d but du chier ESIEEcv.sty. Les deux premi res, PreApport et PostApport correspondent ce qui est mis avant et apr s chaque Apport dans une liste d'apport. Les deux suivantes, PrePreApports et PostPostApports correspondent ce qui est mis avant et apr s la liste des apports. En n les deux derni res, FonteApport et TailleApport permettent de changer la taille et la fonte des apports facilement. Pour red nir une commande on utilisera la commande renewcommand, non document e ici. Par exemple, pour que les apports soient cris en gras au lieu de l'italique par d faut, il su ra de faire:

C'est aussi simple que a. 12 Ouais, euh, pas vraiment, mais bon, je vais pas contrarier Pierre sur un d tail aussi ridicule. Je ne suis qu'un supp t des Grands que sont des gens comme Knuth, Mittelbach, Lamport et quelques autres. 13 Cette partie technique existe bel et bien. Elle est simplement r serv e un usage limit . Toi, lecteur moyen, tu te fous perdument de savoir comment on cris un package ou comment on g re une liste cha n e en TEX pur et dur. 14 Ce sera priori, toujours le cas. 15 Pierre sera souvent un conseiller su sant. Il est moins sot qu'il essaye de le faire croire. 16 Ce package comportait autrefois un bug. 17 Du moins, je n'ai pas encore trouv une bidouille qui marche sur toutes les stations de l' cole; mais je cherche
:::

renewcommand

FonteApport

bfseries

17

caract res sont faciles obtenir. Il s'agit des deux cc dilles et des guillemets la fran aise. Ces caract res ont donc t red nis dans le chier ESIEE.sty pour A tre correctement exploit s par L TEX2" . Pour obtenir un , il faut taper Alt-c18 ; pour le , il faut faire Alt-Shift-C, pour le , on utilisera Alt-touche en haut gauche celle avec le tilde et en n pour le , ce sera pareil avec Shift. Si on tape les quatre la suite, on obtient : . Une petite remarque sur l'obtention des guillemets la fran aise. Ils ne sont pas disponibles A dans les fontes par d faut de L TEX connues sous le nom de cm comme Computer Modern  ce qui fait qu'autrefois on utilisait le symbole math matique en plus petit, ce qui donnait et . Fort heureusement, de nouvelles fontes sont apparues contenant ces symboles, les fontes dc. Elles permettent, en plus, de c surer les mots accentu s, ce qui n' tait pas possible avant. Pour les utiliser, il te faut appeler
usepackage T1 fontenc

n ral puisqu'il pr voit un grand nombre de codages possibles. On lui indique le codage utiliser par une option qu'on lui passe. Les options valides sont celles du tableau 2 page suivante. Bon, en gros tu tapes
usepackage hproman8 mapcodes

et tu poses pas de questions. Ou, encore plus simple, le package ESIEE appelle automatiquement mapcodes avec l'option de codage hproman8 puisque c'est ce qui correspond aux stations de travail HP que nous avons l' cole.

10.4 Bug dans les packages


Certains packages, lorsque nous les recevons, sont bugg s. Il m'arrive, quand on me le fait remarquer ou lorsque je m'en rends compte tout seul en les utilisant, de trouver des corrections pour ces bugs. J'ins re alors lesdites corrections dans le package ESIEE. Ce qui fait que si tu le charges apr s le package erronn , les erreurs peuvent tre corrig es. C'est pourquoi je te recommande de charger le package ESIEE en dernier, ainsi que de me tenir inA form des bugs que te d couvres dans L TEX2" , je suis suceptible de les corriger, ou, tout au moins, de les signaler aux auteurs des packages. En n, si tu souhaites exp dier ton joli petit document un pote, et que tu utilises le package ESIEE, il vaut mieux m'en causer parce qu'il a probablement pas a sur sa b cane.

Pour obtenir des guillemets la fran aise, c'est facile, tu tapes et 19. Et a marche tout seul20 !

10.3 Tous les accents : mapcodes

Tu le sais peut- tre, certains caract res accentu s sont accessibles directement depuis le clavier de nos ch res stations avec une grosse bidouille faire. Pour ceux qui auraient trouv comment faire, il ne reste A plus qu' faire manger tous ces beaux accents L TEX. Pour cela, Michael Piotrowski, nous a crit un tr s joli package, mapcodes 92 . Ce package est assez g -

A La nouvelle version de L TEX permet d'utiliser tout plein de langues sans se fouler trop. Plus de probl mes d'options tordues dans le choix du compilateur ou de trucs dans ce genre. Le compilateur A L TEX2" standard l'ESIEE comprend d j plusieurs langues. Ainsi, j'ai, arbitrairement, d cid d'installer ce qui me paraissait int ressant, mais je suis pr s en rajouter d'autres. Nous disposons donc en standard de : anglais USA, fran ais, portugais, allemand, italien, anglais GB, et esp ranto. Il parait que les r gles de c sure de l'anglais ne sont pas les m mes aux USA et en Grande-Bretagne, ce qui explique la pr sence de deux langues di rentes. De nombreuses autres langues sont accessibles, mais pas de mani re simple, ou alors incompl tement. Par exemple, on peut utiliser pr s de 20 langues l'ESIEE mais sans les c sures voir tableau 3 page ci-contre. Plusieurs m thodes existent pour exploiter les

A 11 Gestion des langues  LTEX polyglotte

A changements de langues sous L TEX. Celle retenue A l'ESIEE pour le noyau L TEX 2" est connue sous le nom de babel. C'est la plus courante sur le plan international, mais l'une des plus contest e en France. On lui pr f re souvent ce qui est connu sous le nom de style french. Je ne l'ai pas retenu parce qu'il n'o re pas la m me souplesse au niveau des changements de langue et de la reconnaissance au plan international. Ce choix est contestable, et a t contest , principalement par Bernard Gaulle, auteur du style french. Un travail de rapprochement entre ces deux options incompatibles semblait en cours la derni re fois que nous en avons discut .

marche que sur stations HP, et peut- tre m me pas tous les mod les

18 Appuyer sur Alt, maintenir la touche enfonc e, puis taper c, puis relacher Alt 19 Oui, deux fois le signe inf rieur et deux fois le signe sup rieur. 20 La di rence avec la m thode expos e plus haut est que a, a marche partout dans le monde. La premi re solution ne
:::

Donc, retenir, l'ESIEE on utilise babel, un point c'est tout. La question ne sera re-d battue que lorsque quelqu'un d'assez comp tent pour refaire l'installation de l' cole se pr sentera et que les deux styles di rents seront devenus compatibles.

18

Option

iso8859-1 iso8859-2

latin1 latin2 ibm850 ibm852 hproman8 macroman atari

Sens Codage de la norme ISO N8859 alin a 1. Utilis par de nombreux syst mes unix, Windows et l'amiga-OS. Codage de la norme ISO N8859 alin a 2. Comme son pr d cesseur, mais pour les alphabets cyriliques. Peu usit dans nos contr es. Synonyme de iso8859-1 Synonyme de iso8859-2 Code ascii tendu IBM, page 850. Utilis par MS-DOS. Code ascii tendu IBM, page 852. Tentative malheureuse de standardisation roman sur 8 bits. Encore en usage chez Hewlett-Packard. Codage utilis par le System7 des Macintosh d'Apple. Comme son nom l'indique.

Tableau 2: Options disponibles pour le package mapcodes

Langue

Allemand Anglais USA Anglais GB Autrichien Br silien Catalan Croate Danois Espagnol Esp ranto Finnois Fran ais Galicien Hongrois Italien N erlandais Polonais Portugais Roumain Slovaque Slov ne Su dois Tch que Turque

Option
ou

german germanb american english austrian brazil catalan croatian danish spanish esperanto finnish francais french galician hungarian magyar italian dutsh polish portuges romanian slovak slovene swedish czech turkish

C sure
Oui Oui Oui Oui Non Non Non Non Non Oui Non Oui Oui Non Non Non Oui Non Non Oui Oui Non Non Non Oui Non

ou ou

A Tableau 3: Langues disponibles sous L TEX2"

19

11.1 Le Fran ais

A Pour l'utilisation des langues sous L TEX2" tel qu'il est install l'ESIEE tu devras faire appel au package babel, que nous devons Johannes Braams 9 , avec comme option les langues que tu souhaites utiliser, par exemple :
usepackage francais babel

pour obtenir : 5 , 12345 C'est quand m me agr able. D'autres modifs sp cial ESIEE sont tudiables, mais ne compte pas trop sur moi pour obtenir une installation en contradiction totale avec les standards et habitudes li s A L TEX2" .

Mais tu peux aussi faire comme moi, d clarer les langues21 dans les options principales et ne pas les rappeler. D'autres packages que babel se posent la question de la langue. Pour s lectionner la langue courante, il te faudra ensuite utiliser :
selectlanguage francais

11.2 L'Allemand

Les sp ci cit s du fran ais l'ESIEE : tous les rafnements n'ont pas t install s l'heure actuelle, mais c'est appel bouger rapidement au rythme de la demande, probablement. Les espacements fran ais sont g r s une espace ne avant le point-virgule, et une espace pleine apr s, par exemple ; il n'est plus utile de taper ^ i pour obtenir , un simple ^i devrait su re ; pour le tr ma, c'est idem : "i produira ; quant au il n'a pas chang ; la date est r adapt e automatiquement de telle sorte que l'habituel today produise : 18 d cembre 1995. Un tas de petites choses ont t rajout es, comme notre bien aim degr : qui s'obtient par degre. En n des facilit s pour nos num rotations tranges et assez incomprises des anglo-saxons et autres non-francophones. Il est du meilleur go t de pouvoir obtenir : 1o C'est un essai 2o en deuxi me 3o en troisi me 4o en quatri me. J'ai pour cela utilis primo, secundo, tertio, quatro. Et pour aller 5? Facile ! Tu fais :
FrenchEnumerate5, FrenchEnumerate 12345 .

pour obtenir : 5o , 12345o . En n, et toujours dans la s rie des num rotations, il y a les 1 , 2 , 3 et 4 qui sont obtenus par fprimo, fsecundo, ftertio et fquatro et que l'on peut tendre par :
FrenchPopularEnumerate5, FrenchPopularEnumerate 12345

utiliser ce joli caract re, mais ces titres sont report s en haut des pages dans certains cas, et ils sont alors convertis en majuscule. C'est pour que cette conversion se passe bien que le "S a t cr .

21 Un document peut en e et tre totalement polyglotte. 22 En e et, il n'existe pas de en majuscule, or dans certains titres de chapitre ou de section, les allemands aiment pouvoir

Pour les germanistes, de grandes nouveaut s, toutes plus belles les unes que les autres. Les tripartites seront heureux, ils peuvent en n pondre des documents en anglais, fran ais et allemand m lang s sans avoir trop de probl mes de typographie ou de c sure. L'histoire de l'implantation de l'Allemand dans A L TEX est assez chaotique tout comme celle du franais ce qui fait que l'on arrive a des choses bizarres. Il semblerait que le plus fr quent dans les universit s allemandes soit d'utiliser une installation sp ci que daA tant en majeure partie de L TEX 2.09 et qui tait tr s pouss e et tr s avanc e. Cependant, mon but n'est pas d'obtenir que l'Allemand soit g r parfaitement A par une version vieillissante de L TEX l'exclusion de toute autre langue. Aussi, je me suis restreint ce que pr voit le package babel, que les allemands qui me lisent et qui connaissent mieux chez eux me le pardonnent. A L'allemand pose de gros probl mes L TEX pour de nombreuses raisons, en particulier pour la c sure. En anglais, ou en fran ais, quand on veut c surer un mot mettons bonjour on rajoute un trait d'union l'emplacement de la c sure bon-jour, alors qu'en allemand, les lettres peuvent changer. Par exemple ck ne se c surera pas c-k mais k-k, et  qui viendra se c surer -f. De plus les germanophones utilisent ce joli petit caract re : de mani re assez courante, ainsi que l'accent tr ma. A En allemand, sous L TEX2" , le guillemet ou double-quote devient un caract re sp cial, comme le backslash : Le "a donne . Le "s donne , "S donne SS22 pour tre utilis comme tant le caract re associ au pr c dant en majuscule. "` et "' produiront et
. De m me, en Allemand, des guillemets la fran aise sont accessibles partir des commandes " et " qui viennent produire et . Les c sures sp ciales devront tre indiqu es au cas par cas l'aide de ce m me guillemet : "ck et "ff. Pas forc ment vident exploiter, en n c'est ce qu'il me semble, moi qui n'ai jamais fait d'allemand et qui le regrette, d'ailleurs. Pour s lectionner le style allemand, il faut compiler en chargeant le package babel avec l'option german ou germanb. Pourquoi les deux? Parce qu'en A Allemagne, german c'est le style datant de L TEX 2.09 qui tend se remettre jour, et que germanb c'est le style li babel.

20

11.3 Les autres langues

Les autres langues peuvent tres appel es de faons similaires, comme tant des options du package Si tu demandes une langue autre et que le combabel. Les noms courants sont donn s par le compi- pilateur ne te jette pas comme un malpropre, c'est lateur sit t qu'on le lance, en e et, il a che : qu'il a compris et qu'il ne fera pas de c sures dans Hyphenation patterns for english, francais, ton texte puisqu'il ne ma trise pas la langue.

portuges, german, italian, ukenglish, esperanto, loaded.

12 Gestion des fontes

12.1 Comment changer de fonte

L'une des premi res choses que l'on cherchera faire avec un traitement de texte sera de changer de fonte pour mettre en vidence certains passages. Par exemple en mettant quelques mots en italique ou en gras. Le principe est simple. Pour obtenir toto on tape :
obtenir textbf toto on ta...

emph un usage tr s particulier. Il met en vidence un passage dans son contexte. Dans un texte normal il passe en italique, dans un passage italique, il remet en textup. C'est assez pratique : si on d cide de passer tout un paragraphe en italique, les mots mis en vidence par ce moyen le restent.

12.2 Changements longue port e

On peut bien- videmment passer plusieurs mots comme param tre la commande textbf. Par contre on vitera de lui passer plusieurs paragraphes ou plusieurs pages, a devient beaucoup plus di cile de compter les accolades et a complique la vie du compilateur il doit tout lire jusqu' l'accolade fermante avant de commencer son travail. D'autres changements que le gras peuvent tre envisag s. Ils sont exhaustivement recens s dans le ta- itshape toto bleau 4 page suivante. est quivalent23 crire Certains changements de fontes n cessitent une explication. Par exemple, textmd sert repasser en textit toto normal lorsque l'on est en gras. Deux exemple pour et presque quivalent bien comprendre :
textbf Mot en textit Mot en textmd textmd textmd textmd dans du gras. dans de l'italique.

Lorsque l'on souhaite changer de fonte sur une grande portion de texte plusieurs pages, voire tout le document, il est tr s d sagr able de devoir se trimbaler des accolades partout. Il serait plus simple de dire c'est du gras et puis c'est tout. Il existe des commandes pour cela, la liste fait l'objet du tableau 5 page suivante. crire

itshape toto upshape

En e et, la troisi me forme ne ram ne pas forc ment la fonte de d part, par exemple si l'on est Et a donne ces deux lignes l : d j en italique au d but, ou si l'on est en petites capitales. Mot en textmd dans du gras. normalfont comme textnormal change la Mot en textmd dans de l'italique. fois la famille, la s rie, et la forme24 pour te rameNote, au passage, que le choix de la graisse n'a ner la fonte par d faut qui est, a priori, du romain pas d'in uence sur l'italicisation.  textrm en graisse moyenne  textmd et en forme De m me textup sert annuler un textit, droite  textup. C'est la seule commande dans le lot un textsl ou un textsc. a ecter plus d'un param tre la fois.

23 un microscopique d tail pr s 24 shape en anglais pour ceux qui comprennent pas bien le grand breton

21

textrm textbf textit textsc textsf textsl texttt textmd textup textnormal emph

Normal romain Gras bold face


Italique
Petites Capitales Small Caps

Sans s ri cations Pench Slanted


Machine

crire Tele Type Graisse normale Medium Droit Fonte par d faut Mise en vidence

Tableau 4: Changements de fontes standards

rmfamily sffamily ttfamily bfseries mdseries itshape slshape scshape upshape normalfont em

Changement de fonte long terme court terme


textrm textsf texttt textbf textmd textit textsl textsc textup textnormal emph

Tableau 5: Changements de fontes

13 Gestion des tailles


a fonctionne tout simplement comme les chan- comme ceci : gements de fonte longue port e section 12.2 page pr c dente. En e et, on ne change normale- begin small ment pas de taille pour un mot en plein milieu d'une Passage du texte 'ecrit plus petit que le reste. phrase. Les commandes de changement de taille font l'ob- end small jet du tableau 6 page ci-contre. Pour obtenir : On pourra galement envisager les changements Passage du texte crit plus petit que le reste. de taille comme des environnements, c'est dire

14 Accents, caract res sp ciaux et symboles


14.1 Les accents
Toi qui travaille sur ces superbes stations de travail HP, tu auras sans nul doute compris que les caract res accentu s n' taient pas directement accessibles au clavier, ce qui pose probl me pour la saisie de textes, en fran ais du moins. A De plus L TEX a t pr vu pour fonctionner sur 14.2 Caract res non-am ricains tous les ordinateurs et dans toutes les con gurations, donc il sait produire les accents s'ils n'existent pas sur La plupart des caract res non-am ricains utilis s la machine o il tourne. Il y a des commandes expr s dans les langues europ ennes ont t pr vus. Les compour cela. Elle sont dans le tableau 7 page suivante. mandes permettant de les obtenir font l'objet du taNote qu'elles fonctionnent de mani re tr s g n - bleau 8 page ci-contre. 22 rale, c'est dire que R-c dille R s'obtient le plus naturellement du monde : c R .

tiny scriptsize footnotesize small normalsize large Large LARGE huge

Exemple

Exemple

Exemple

Exemple

Exemple

Exemple

Exemple

Exemple

Tableau 6: Changements de taille

Exemple

'a `a ^a "a

a a a 

~a =a .a H a

a  a a .

u v t d

a a a a

a a

b a c c c a

Tableau 7: Accents en mode texte

oe OE ae AE ss SS aa AA

dh DH dj DJ ng NG th TH

o O l L i j textquestiondown textexclamdown pounds

guillemotleft guillemotright guilsinglleft guilsinglright quotesinglbase quotedblbase textquotedblleft textquotedblright

Tableau 8: Caract res non-am ricains

23

14.3 Caract res sp ciaux

Certains caract res sont interpr t s de mani re A sp ciale par L TEX, comme tu t'en seras s rement rendu compte. On rel vera : & utilis dans les tableaux ;  espace inseccable entre deux mots ;  commentaire jusqu' la n de la ligne ; n d but d'un nom de commande ; _ indice en mode math matiques ; $ d but ou n de mode math matiques ; d limiteurs. Pour les obtenir dans du texte, il n'y a que deux solutions. La premi re est celle que j'utilise pour te montrer les noms de commandes comme texttt : verb" texttt". Le premier caract re non lettre qui suit cette commande sert de d limiteur pour marquer la zone sur laquelle elle s'applique. Cette commande A indique simplement L TEX qu'il ne doit pas traiter la zone de texte concern e. La m thode plus l gante et moins bourrine est d'utiliser les commandes du tableaux 9 page suivante. En e et, crire 12 c'est plus joli que 12 m me si a fait une touche de plus taper. Le fran ais a des r gles d'espacement de la ponctuation25 qui sont assez strictes 84 et que tr s peu de traitements de texte respectent. Par exemple, avant un point d'exclamation, il faut un espace ne ins A cable. L TEX respectera ces r gles, pour peu que tu aies indiqu que ton document est en fran ais, dans deux cas : si tu mets un espace avant les signes de poncA tuation qui en ont besoin  !? ; :, L TEX le mettra la bonne taille et le rendra ins cable si n cessaire.

si tu oublies, mais que tu utilises le package ESIEE. Notons au passage que les points de suspension  : : :  s'obtiennent l'aide de la commande ldots, et pas autrement. En particulier pas en tapant trois points. Ceci pour l'espacement soit le bon  : : :  au lieu de .... Pr cisons clairement que les points de suspension ou ellipse sont au nombre de trois. Jamais moins, en aucun cas plus, comme le pr cise d'ailleurs 84 .

14.5 Paragraphe

Contrairement aux ignominies que j'ai entendues prof rer des centaines de fois l'ESIEE, il n'y a qu'une seule et unique mani re d'indiquer la n d'un paragraphe : laisser une ligne blanche dans le chier source. On peut r gler facilement l'alin a en donnant une nouvelle valeur la variable parindent :
parindent=15pt

14.4 Ponctuation

La typographie fran aise tol re de 0,5 2 fois le corps de la fonte en cours d'utilisation, en pr f rant une valeur entre 1 et 1,5 fois sa taille 84 , c'est dire
parindent=15pt

pour un document en 12pt. Note au passage que le A corps par d faut sous L TEX est 10pt le plus courant en typographie et que l'on peut le passer 11pt ou 12pt en sp ci ant 11pt ou 12pt en option au documentclass. De plus il existe une unit sp ciale correspondant pile poil au corps en cours d'utilisation, c'est em. On pourra donc faire :
parindent=1.25 em

15 Constructions simples
15.1 Environnements
Ceci est un paragraphe d'exemple de texte mis au Tu as d j vu certains environnements la sec- fer gauche avec l'environnement flushleft. tion 13 page 22, ceux qui sont utilis s pour les changements de taille. De m me que pour les changements de taille Eh bien, il en existe plein d'autres ! Les plus couril existe une autre commande pour faire la m me rants sont ceux permettant d' crire du texte centr center, au fer droite flushright, ou au fer chose, ces trois environnements l ont des commandes quivalentes : centering pour centrer du gauche flushleft. Par exemple : texte, raggedright pour mettre au fer gauche si, begin flushleft si, gauche et raggedleft pour mettre au fer Ceci est un paragraphe d'exemple de droite. En e et, pour l'exemple ci-dessus il eut t texte mis au fer `a gauche avec quivalent d' crire :
l'environnement end flushleft texttt flushleft .

25 L'anglais aussi, mais c'est pas les m mes.

produira :

raggedright Ceci est ldots

24

&

& $ sim$

 $ backslash$

_ $

_ $

Tableau 9: Caract res sp ciaux

la preuve, a produit : 15.3 Tableaux faciles Ceci est : : : Obtenir pas On s'en servira, par exemple, dans les tableaux ; avec L T X. un tableau n'est c'est une chose enfantine A E Mais, tu verras, tout fait faisable. comme c'est le cas dans la section 25.2 page 62. La premi re chose retenir est qu'un tableau est un environnement tabular qui prends comme argu15.2 Les listes ment le type des di rentes colonnes qui doivent apTrois autres environnements sont bons retenir, para tre dans le tableau. l'int rieur de ce tableau, ceux qui permettent d'obtenir des listes : itemize le texte des di rentes colonnes est d limit par le pour des listes normales, enumerate pour des listes caract re & et celui des di rentes lignes par la comnum rot es, et description pour des listes type dic- mande . Les trois types de colonnes les plus classiques tionnaire. Un exemple vaut toujours mieux qu'un sont : long discours : l colonne de type gauche left  begin itemize r colonne de type droite right  item Premier truc `a savoir c colonne de type centr center  item Second truc `a savoir item Troisi `eme truc `a savoir Voyons tout de suite un premier exemple simple : end itemize produira : Premier truc savoir Second truc savoir Troisi me truc savoir
begin enumerate item En premier lieu; item en second lieu; item en dernier lieu. end enumerate begin tabular lr Premier mot & Second mot Troisi `eme mot & Quatri `eme mot end tabular

produira 1. En premier lieu ; 2. en second lieu ; 3. en dernier lieu. Et en n


begin description item itemize liste normale item enumerate liste num 'erot 'ee item description liste comme celle-ci. end description

produira Premier mot Second mot Troisi me mot Quatri me mot La largeur des colonnes sera automatiquement adapt e la largeur du texte qu'elles contiennent. Cela peut parfois poser probl me, par exemple lorsque le texte mettre dans une case est un peu A long. Pour r gler ce probl me pr cis, L TEX pr voit un type de colonnes expr s, le type p, auquel on indique la largeur de la colonne cr er. On verra un exemple tout l'heure. Le prochain probl me r gler est de mettre des lets26 entre les lignes et entre les colonnes du tableau. Deux choses retenir cet e et : un | entre deux descripteurs de colonne ins rera un let entre deux colonnes, et un hline entre deux lignes les s parera par un let. Voyons maintenant l'exemple promis :
begin center begin tabular |l|p 4cm hline Descripteur & Sens hline texttt l & Colonne de hline texttt c & Colonne de hline texttt r & Colonne de hline |

produira :

itemize liste normale enumerate liste num rot e description liste comme celle-ci.
26 traits

type gauche type centr 'e type droite

25

texttt p & Colonne d'une largeur donn 'ee `a l'avance. Plusieurs unit 'es peuvent ^etre utilis 'ees pour sp 'ecifier des distances `a LaTeX : texttt cm centim `etre, texttt mm millim `etre, texttt in pouce, texttt pt point typographique anglais, 72,27 texttt pt =1 texttt in  ldots hline end tabular end center

Descripteur Sens l Colonne de type gauche c Colonne de type centr r Colonne de type droite p Colonne d'une largeur donn e l'avance. Plusieurs unit s peuvent tre utilis es pour sp ci er A des distances L TEX : cm centim tre, mm millim tre, in pouce, pt point typographique anglais, 72,27pt=1in : : : Tu vois bien, c' tait pas si terrible que a, les tableaux. Cependant, un grand nombre de ra nements sont possibles, pour en savoir plus, reporte toi la section 25 page 62.

produira :

16 Chapitres et table des mati res


Notons au passage que le niveau de division27 chapter existe pour les rapports et pas les La premi re chose que tu vas taper dans ton do- articles. Notons galement que les chapitres pour nusont A cument, c'est son titre. Donc L TEX a pr vu des commandes pour cela. Elles viennent g n ralement juste m rot s continuement au travers des parties. C'est 1 dire que la premi re partie contiendra les chapitres apr s i et la seconde les chapitres i + 1 n.
begin document

16.1 Le titre

Un exemple su ra :
title Reconnaissance de phon `emes par cartes de Kohonen sans apprentissage supervis 'e author Benjamin textsc Bayart I$_4$PASTI and Pascal textsc Vincent I$_4$PASTI date today maketitle

16.3 Chapitre d'introduction

L'introduction, dans un rapport, tout comme la conclusion d'ailleurs, est souvent un probl me. En effet, elle a valeur de chapitre, mais g n ralement on ne la num rote pas. Il te su t de savoir que pour toutes les commandes de sectionnement, en leur ajoutant une * elles viennent cr er des parties, sections : : : nonnum rot es pour croire qu'un simple
chapter* Introduction

Selon que tu cris un report ou un article, A L TEX d cidera s'il est n cessaire ou non de r server est la solution id ale. Malheureusement tel n'est pas une page enti re au titre. le cas. En e et, un chapter* n'est pas recens en table des mati res et posera, pour ce cas pr cis et pour certaines mises en page, des probl mes. 16.2 Division du document La meilleure solution est d'utiliser pour cela la Un document classique se divise en plusieurs par- commande introchapter qui est d nie dans le paties, chapitres, sections, etc. Chacun a un num ro qui ckage ESIEE. lui est propre et une mise en page qui doit tre toujours la m me au long du document si l'on souhaite introchapter Introduction A rester coh rent. C'est pour ces raisons que L TEX pr Sinon sache simplement que cette commande est voit des commandes. Elles sont recens es dans le taquivalente bleau 10 page suivante. Par exemple :
chapter Cahiers des charges

Commence un nouveau chapitre en le num rotant convenablement et en lui donnant le titre Cahiers et ne pose surtout pas de question l -dessus sans avoir lu avant 61 et 81 . des charges.
27 Ou niveau de sectionnement

chapter* Introduction addcontentsline toc chapter Introduction markboth INTRODUCTION INTRODUCTION

26

part chapter section subsection subsubsection paragraph subparagraph

Commande

Niveau de sectionnement
1 2 3 4 5 6 7

Tableau 10: Commandes de sectionnement

Table des mati res Liste des tableaux Liste des gures

tableofcontents listoftables listoffigures

Tableau 11: D clarations des trois types de tables les plus courants

16.4 Tables diverses


Comme je te sais impatient de savoir comment on produit une table des mati res, je vais te donner la bonne m thode pour en faire une. En premier lieu, sache qu'il existe plusieurs sortes de tables, et donc plusieurs fa ons de les produire. Les trois principales font l'objet du tableau 11.

Pour obtenir une table n'importe o dans le document, tu ins res la commande correspondante. Tu peux donc sans di cult aucune faire appara tre plusieurs fois la table des mati res, si cela te fait plaisir. Il est noter que dans un article les trois tables gurent sur la m me page que le texte qui les suit, A alors que pour un report L TEX change de page la n de chaque table.

17 Inclusion de chiers
Toi, lecteur programmeur, tu as l'habitude compilation partielle des documents quand il est utid' crire tes programmes dans plusieurs chiers, avec lis avec includeonly. un syst me d'inclusion : un chier principal qui fait Exemple : appel plusieurs petits chiers annexes. C'est plus facile utiliser pour des programmes, il en serait s - include intro A rement de m me pour un document L TEX, non? Mais include chap1 include chap2 oui. Tu n'as qu' le faire. A Pour cet usage L TEX, qui est grand, pr voit deux include chap3 commandes : input et include. Leur usage est ex- include chap4 include concl pliqu ci-dessous. 17.1 Inclusion simple lira les 6 chiers comme il faut, puis si tu ajoutes AVANT input permet d'importer purement et simplement un chier : input toto agira exactement includeonly intro.tex,concl.tex comme si le contenu de toto.tex tait dans ton texte. A L TEX ne compilera que l'introduction et la conclusion, et en gardant les bons num ros de page, en Cela permet de se cr er ses propres biblioth ques conservant une table des mati res compl te et tout de macros. comme il faut. Toutefois, il faudra qu'au moins une compilation compl te ait eu lieu pour qu'il puisse se 17.2 Compilation partielle rep rer. include marche di remment. Tout chier imDe plus aucun include ne doit appara tre avant port par lui doit contenir des chapitres complets. Il le begin document et dans les chiers lus avec cr era un chier .aux par chier inclus. Il permet une include.

27

28

Math matiques 18 Principe, environnements, g n ralit s


18.1 Principe
A Comme tu le sais d j , L TEX est tudi particuli rement pour la mise en page de textes scienti ques. Il est donc particuli rement tudi pour les quations. Le principe de base de la saisie de math matiques A sous L TEX est simple : sp ci e-lui que tu passes en mode maths, indique-lui ton quation, indique que tu ressors du mode maths. La notion de mode maths est importante parce que les conventions typographiques entre autres sont di rentes de la normale.
... plut t que $$...$$ parce que l'on voit clairement si on ouvre ou si l'on ferme le mode math matique. $...$ pour citer un nom de variable ou un morceau tr s court $x$ pour x ou $fx$ pour f x. ...  pour tout passage un peu long une demi-ligne, par exemple dans un paragraphe. De plus, si tu souhaites que les quations display28 soient non pas centr es, mais au fer gauche, alors indique l'option fleqn documentclass. Tu pourras alors faire mathindent=1cm

18.2 Les environnements

Pour passer en mode maths, il y a six m thodes : L'environnement displaymath L'environnement math ... , quivalent displaymath ... , quivalent math $$...$$, quivalent displaymath $...$, quivalent math La grande di rence entre displaymath et math est que le premier est pr vu pour faire appara tre une quation seule centr e sur une ligne, alors que le second est pr vu pour mettre une petite quation dans le texte. On pr ferera utiliser, par soucis de lisibilit du chier .tex : les deux environnements pour tous les passages longs 5 6 lignes, voire plus, dans le chier source

pour que ces quations se retrouvent marge gauche.

1cm de la

18.3 G n ralit s

Les trucs de base savoir pour taper la majorit des quations sont peu nombreux et assez simples A retenir. Le premier est que L TEX tape spontan ment les maths en italique, ainsi en disant
on a a qui vaut 12 , le deuxi me `a' est en italique, on sait que c'est une variable. C'est plus facile lire. C'est pour a qu'on peut passer en mode maths facilement, pour le `a' j'avais tap $a$. Facile, non? Le second truc savoir est le probl me des exposants et des indices. Pour les indices, le caract re magique est _, et pour les exposants, c'est ^. Exemple : $x_0^2$ donnera x2. Pour mettre plus 0 d'une lettre en indice ou en exposant, il faut faire $x^ 12 $ : x12.

19 Symboles math matiques


On peut, grossi rement, les regrouper en cinq 3 Les symboles accessibles par le package amsmath, grandes cat gories : ou plus exactement son sous-ensemble amssymb. A 1 Les symboles que L TEX2e reconnait spontan 4 Les symboles ajout s par stmaryrd. ment. A 2 Les symboles que reconnaissait L TEX 2.09 et que 5 Les raccourcis claviers et extensions o erts par A L TEX2" ne reconna t plus tout seul29 . qsymbols.

n'en a pas besoin.

28 Je pr f re le mot fran ais de hors-ligne 29 Il s'agit de symboles peu nombreux qui monopolisent une fonte

eux seuls, ce qui gaspille de la place en m moire si on

29

19.1 Package latexsym

Le tableau 12 te pr sente les symboles d nis dans le package latexsym. Ton observation attentive et minutieuse t'am nera tr s vite constater que tous ces symboles sont aussi d nis dans le package amssymb qui est un sous-ensemble de amsmath, mais c'est pas utile de d placer un mammouth pour craser une mouche, ou alors si mais une grosse mouche.

A 19.2 Symboles LTEX 2"

A L TEX2" pr voit en standard peu pr s les m mes A symboles que L TEX 2.09 le faisait. Mais tu as t lev avec une version que j'avais arti ciellement tendue pour qu'elle puisse produire beaucoup plus de symboles. Tous les symboles qui sont dans les tableaux 13 22 page suivante ne n cessitent pas de package d'extension.

mho lhd sqsubset

f  @

Join unlhd sqsupset

1  A

Box rhd leadsto

2  ;

Diamond unrhd

3 

Tableau 12:
alpha epsilon theta lambda pi varsigma varphi Gamma Xi Phi beta varepsilon vartheta mu varpi tau chi Delta Pi Psi

Symboles d nis par latexsym e


gamma zeta iota nu rho upsilon psi Theta Sigma Omega

  & ' ,  

"   $

   

 

delta eta kappa xi sigma phi omega Lambda Upsilon

  !  

Tableau 13:
pm ast cdot oplus bircirc sqcap vee setminus diamond

Lettres Grecques
times  circ cup otimes ddagger z bigtriangleup bigtriangledown triangleleft triangleright div bullet uplus oslash amalg

    u _ n 

mp star cap ominus dagger sqcup wedge wr odot

 q a

y t ^ o

` C B

Tableau 14:
leq equiv sim simeq subset sqsubset parallel neq in vdash

Op rateurs binaires e
geq prec preceq ll subseteq sqsubseteq bowtie cong smile

  '

le models perp mid supset sqsupset approx doteq ni dashv

 j= ? j

  v
succ succeq gg supseteq sqsupseteq Join approx frown asymp

 w

@
k 6= 2 `

A


: =
3 a

BC
 = ^

Tableau 15:
leftrightarrow longleftrightarrow Leftrightarrow Longleftrightarrow longleftarrow longrightarrow Longleftarrow Longrightarrow Updownarrow leftharpoonup leftharpoondown hookleftarrow

Symboles de relation
 "  * 7!  rightarrow downarrow Rightarrow Downarrow longmapsto searrow swarrow

$ ! ,  , ,! = = m

leftarrow uparrow Leftarrow Uparrow mapsto nearrow nwarrow

!   + 7,! & . l

  -

updownarrow rightharpoonup rightharpoondown hookrightarrow

* + ,!

Tableau 16:

Fl ches e

30

ldots forall nabla hbar sharp clubsuit angle Box Re

:::
8 r

cdots exists triangle emptyset neg diamondsuit surd ell Im

 9 4 ; : p

vdots imath prime natural wp heartsuit top aleph

. . .
0 ~ @

ddots jmath infty flat partial spadesuit bot Diamond

.. . |
1

@
?

Tableau 17:
sum bigcap bigodot bigvee

Divers symboles
coprod bigsqcup bigoplus

P T J W

prod bigcup bigotimes bigwedge

Q S N V

` F L

int oint biguplus

R H U

Tableau 18:
arccos cos csc exp ker limsup min sinh

Symboles taille variable a


arctan cot det hom lim log sec tan

arccos cos csc exp ker lim sup min sinh

arcsin cosh deg gcd lg ln Pr sup

arcsin cosh deg gcd lg ln Pr sup

arctan cot det hom lim log sec tan

arg coth dim inf liminf max sin tanh

arg coth dim inf lim inf max sin tanh

Tableau 19:
uparrow lfloor langle |

Noms de fonctions log-like


downarrow updownarrow lceil

" f b h j

Uparrow rfloor rangle |

* g c i k

 l d

Downarrow Updownarrow rceil backslash

+ m e n

Tableau 20:
rmoustache arrowvert lmoustache

D limiteurs e
rgroup bracevert

Arrowvert

lgroup

Tableau 21:

Grands d limiteurs e

f g abc  , overleftarrowfabcg abc overlinefabcg abc


widetilde abc

widehat abc

f g f g f g

overrightarrow abc underline abc

overbrace abc sqrt abc f'

z|

c abc , ! abc abc


p n

abc abc f0

f g sqrt n fabcg fracfabcgfxyzg


underbrace abc

|abc z
abc xyz

abc

Tableau 22:

Constructions math matiques e

31

19.3 Le package amssymb

au complet, soit son sous-ensemble g rant seulement Par contre ceux des tableaux 23 28 page sui- les symboles, amssymb. vante n cessitent d'utiliser soit le package amsmath
dashleftarrows leftleftarrows rightleftarrows upuparrows twoheadleftarrow Lleftarrow leftarrowtail curvearrowleft circlearrowleft loopharpoonleft Lsh leftsquigarrow upharpoonleft downharpoonleft leftrightharpoon multimap

 W x   

dashrightarrows rightrightarrows leftrightarrows downdownarrows twoheadrightarrow Rrightarrow rightarrowtail curvearrowright circlearrowright loopharpoonright Rsh rightsquigarrow upharpoonright downharpoonright rightleftharpoon leftrightsquigarrow


V y     !

Tableau 23:
nleftarrow nLeftarrow nleftrightarrow

Fl ches ajout amsmath e


nrightarrow nRightarrow nLeftrightarrow

8 : =
6 ' T k A B  a m s I

9 ;
n o Q R ; c D 3 v G q $ t * w

Tableau 24: Fl ches e


leqq geqq lesssim gtrsim lesseqqgtr subseteqq sqsubset vartriangleleft precsim vDash smallsmile bumpeq triangleq blacktriangleleft varpropto preccurlyeq

n gatives ajout amsmath e


eqslantless eqslantgtr lessdot gtrdot risingdotseq Subset trianglelefteq curlyeqprec precapprox Vdash shortmid eqcirc thickapprox therefore backsim

5 = . & S j @ C ` l , J _ 4

leqslant geqslant lessapprox gtrapprox gtreqqless supseteqq sqsupset vartriangleright succsim Vvdash smallfrown Bumpeq thicksim blacktriangleright backepsilon succcurlyeq

0 1 l m : b E 2 w p P t  v

lll ggg lesseqgtr gtreqless fallingdotseq Supset trianglerighteq curlyeqsucc succapprox between shortparallel circeq pitchfork because backsimeq

Tableau 25:
nless ngtr lneq gneq lnapprox gnapprox precnapprox succnapprox nvdash nvDash nsubseteq nsupseteq varsubsetneqq varsupsetneqq

Symboles de relation ajout amsmath


nleqslant ngeqslant lvertneqq gvertneqq npreceq nsucceq nshortmid nparallel ntriangleleft ntriangleright varsubsetneq varsupsetneq nleqq

    0 2
6 6

nleq ngeq lneqq gneqq nprec nsucc nsim napprox nvDash nVDash subsetneq supsetneq nsubseteqq nsupseteqq

    
6

,  . , 6 7  !

ngeqq lnsim gnsim precnsim succnsim nmid nshortparallel ntrianglelefteq ntrianglerighteq subsetneqq supsetneqq

& '

2 3   " 

 
5 4 $ 

Tableau 26:
dotplus barwedge boxtimes ltimes curlywedge circledcirc

Symboles de relation n gatifs ajout amsmath e


r o g 
Cap veebar boxplus leftthreetimes circleddash intercal

u Z  n f

smallsetminus doublebarwedge boxdot rtimes curlyvee centerdot

e Y  h |

Cup boxminus divideontimes rightthreetimes circledast

d i ~

Tableau 27:

Op rateurs binaires ajout amsmath e 32

hbar square measuredangle Game blacktriangle blacktriangledown sphericalangle

~  a H ^

hslash lozenge nexists Bbbk bigstar blacksquare complement

 @ | F 

vartriangle circledS mho backprime eth blacklozenge diagup

M s f 8 g 

triangledown angle Finv varnothing diagdown

O ` ?

Tableau 28:

Divers symboles ajout amsmath

19.4 Le package stmaryrd

Ce package d nit une tripot e de symboles, en fait tous ceux des tableaux 29 33 page suivante. Ce package, crit par Jeremy Gibbons et Alan Jef- Note en particulier que sur les d limiteurs tableau 33 frey 41 donne acc s aux symboles de leur propre page suivante, seuls llbracket et rrbracket sont fonte, celle qu'ils ont appel e St Mary's Road sym- de taille variable et peuvent tre utilis s avec left et right. bol font30.
Ydown Yup binampersand boxbar boxslash boxbslash boxempty curlyveedownarrow curlywedgeuparrow fatslash fatsemi leftslice sslash minuso obar obslash owedge ovee talloblong varcurlyvee varobar varobslash varoslash varominus varolessthan varowedge vartimes

  N  . &   2 : ; ? 8    4 7 " e g b ` p

Yleft Yright bindnasrepma boxbox boxcircle boxast boxdot curlyveeuparrow curlywedgedownarrow fatbslash interleave rightslice nplus moo oblong ogreaterthan olessthan varbigcirc varcurlywedge varoast varocircle varoplus varotimes varogreaterthan varovee

  O  '  9 3 C @ = ,
  5 6

Tableau 29: Op rateurs ajout stmaryrd


bigbox biginterleave bigcurlyvee bigtriangledown bignplus bigsqcap bigparallel bigcurlywedge bigtriangleup

d f c a

Tableau 30: Op rateurs taille variable ajout stmaryrd


30 Faut pas me demander pourquoi. Peut- tre qu'ils l'on dessin e dans un couvent ou devant une glise.

33

inplus subsetplus subsetpluseq trianglelefteqslant ntrianglelefteqslant

A D F P R

niplus supsetplus supsetpluseq trianglerighteqslant ntrianglerighteqslant

B E G Q S

Tableau 31: Symboles de relation ajout stmaryrd


Mapsfrom Longmapsfrom leftarrowtriangle leftrightarrowtriangle shortleftarrow mapsfrom longmapsfrom nnwarrow sswarrow shortdownarrow

 =
^ , 0 $ 

 ,

Mapsto Longmapsto rightarrowtriangle leftrightarroweq shortrightarrow lightning nnearrow ssearrow shortuparrow

Z Z= _   1  

Tableau 32: Fl ches ajouts stmaryrd


Lbag lbag llceil llfloor llbracket llparenthesis

H * V T J L

Rbag rbag rrceil rrfloor rrbracket rrparenthesis

I + W U K M

Tableau 33: D limiteurs ajout stmaryrd

19.5 Le package qsymbols

On les obtiendra souvent en utilisant deux ``, Ce package est crit par Kristo er H. Rose 102 . comme le montre le tableau 35 page ci-contre. Son utilit n'est pas agrante : aucun nouveau Relevons galement les symboles taille variable symbole, aucune nouvelle fonctionnalit . Simplement, une syntaxe abr g e pour acc der de nombreux du tableau 36 page suivante. A symboles. Ces symboles sont ceux usuels sous L TEX, une partie de ceux du package amsmath, du package 19.5.3 Fl ches standard stmaryrd ainsi que certaines possibilit s o ertes par A Les ches les plus courantes avec L TEX sont acXy-pic pour les ches. cessibles avec une syntaxe simpli e31 comme indiqu par le tableau 37 page ci-contre.

19.5.2 Symboles de relation

19.5.1 Les symboles simples

On les obtient l'aide du caract re ` comme l'in- 19.5.4 Fl ches tendues dique le tableau 34 page suivante. Les tableaux 38 page suivante 40 page 36 t'indiNote qu'on peut encadrer ou encercler m me des queront comment obtenir des ches de plus en plus symboles qui ne sont pas pr vus c'est le cas du a. complexes avec le m me type de syntaxe32. Le gras d'un symbole s'obtient en le faisant pr c der de `", par exemple `"`a donne : 0. Tu peux ajouter un nouveau symbole la liste : 19.6 Le package ulsy Ce petit package, que nous devons Ulrich Goldnewqsymbol `code signification schmitt 43 d nit 6 nouveaux symboles. Ce ne sont pas des symboles math matiquesen ce sens qu'ils peuO code peut tre une lettre ou une lettre entre vent tre appel s n'importe o dans le texte. , , . Ces six symboles sont les suivants :
c'est mon opinion et elle n'engage que moi.

31 a c'est l'avis de l'auteur du package, et pas tout fait le mien, parce que bon, faut pas pousser, c'est pas toujours intuitif. 32 L , j'aime de moins en moins, en particulier les ches du tableau 40 page 36. Je les trouve ignobles taper ces trucs, mais

34

x x x `x x `x x `x ` x
`

a t

w x !  + * : + -

  2
 
 

h y z D
 ; U - _ 2 n = ` ? `* | ` `.

i F  o

j  G , O
?

k  J .


 7 6 4 5 ^ _       

* `o `^ `V

  9 8 : ^ _
! :- a

l  L  =

m  P 
~

n  Q  E

p q r s  S W X Y    A ! ^ V
, a ^ ,  _ a

Tableau 34: Symboles simples avec qsymbols

2 3
 

``

`` 

``

@
~ -

6@
 6

C  `

6
0

2=  v  E ' j=

``

2=

```

6 6v 6' j= 6
5

````

u f M o

V2 T
d c a

``

`` 

``

A B v a

6A
 7

6v 6a

3=  w  D w =j

``

3=

```

6 6w 6w 6=j
4

````

t g O s ?

W3 S F
b `

Tableau 35: Symboles de relation avec qsymbols

``

S ^ V S P V W P Q
U

Tableau 36: Symboles taille variable avec qsymbols


" -" " =" " 3" " -!" " =!" " -" " =" " 3!" " -'" " -" " - " " ~" " |-" "o-" "o -" "^ -" "_ -" "o -!"

  W , =
o

 
jt o o o o o

^
o

 
o o

"- " "= " "3 " "-! " "=! " "- " "= " "3! " "`- " "- " " - " "~ " "-| " "-o" "- o" "^- " "_- " "!- o"

!  V ,! =


,! ! !
o o

_
*4

 !  * +

" - " " = " "" " -! " " =! " " - " " = " "" "" " - " " ~! " " ~ " " |-| " "o-o" "o - o" "^ - " "_ - " "o -! o"
o

$ , ! 
o

o o

o o

Table 37: Fl ches standard avec qsymbols

x "x"

`



?

`- +

|-- *
_

_ _

Table 38: Fl ches non-standard avec qsymbols

35

" "

x x

! ,!

-!

-!!

-!!!

-!!!!

Table 39: Fl ches longues avec qsymbols


x
"x"

- _1
1

= ^ sin !!!
sin
+3 +3

= | `b

!!!|
,2

1
1

2
2 

x "x"

-1!!
1

- 1 !!
1 

-1!!
1

- `a !!!

|= `c !!!
ks ks

+3

+3

Table 40: Fl ches complexes avec qsymbols

odplus blitza blitzb blitzc blitzd blitze

19.7 Le package wasysym

Ce package, que nous devons Axel Kielhorn 55 A d nit une opp e de nouveaux symboles pour L TEX dont certains sont des symboles math matiques et d'autres sont des symboles normaux utilisables dans le texte.

male female currency phone recorder clock lightning pointer kreuz smiley frownie blacksmiley sun checked bell

  


RIGHTarrow LEFTarrow UParrow DOWNarrow diameter invdiameter


K L  5 m g h |  1 0

6
, ^

varangle wasylozenge ataribox cent permil brokenvert wasytherefore Bowtie agemO

. 

Tableau 41: Symboles g n raux ajout s par masysym

36

AC photon gluon

: :::: QPPPPPPR 2 D 7 9 8

HF VHF

: @ 4  2 A B

Tableau 42: Symboles de physique et d' lectricit ajout s par wasysym


Square pentagon hexagon varhexagon octagon XBox CheckedBox hexstar varhexstar davidstar

Tableau 43: Polyg nes et toiles wasysym


eighthnote halfnote twonotes quarternote fullnote

Tableau 44: Notes de musique wasysym


Circle Leftcircle Rightcircle leftturn rightturn

 I J " ! i j l

CIRCLE LEFTCIRCLE RIGHTCIRCLE LEFTcircle RIGHTcircle

 G H  G  H

Tableau 45: Cercles divers wasysym


thorn Thorn openo dh Dh inve

k U
D 

Tableau 46: Symboles phon tiques wasysym

37

vernal ascnode descnode fullmoon newmoon leftmoon rightmoon uranus pluto

    $  Z  ^ _ ` a

astrosun mercury venus earth mars jupiter saturn neptune

'  & X Y

Tableau 47: Symboles d'astronomie wasysym


aries taurus gemini cancer leo virgo libra scorpio sagittarius capricornus aquarius pisces conjunction opposition

b c d e f V W

Tableau 48: Symboles d'astrologie wasysym

38

APLstar APLlog APLbox APLup APLdown APLinput APLcomment APLinv APLuparrowbox

E  ~ , F ~  n

APLdownarrowbox APLleftarrowbox APLrightarrowbox notbackslash notslash APLnot APLcirc APLcert APLminus

, n , = 

o p q

j ,

Tableau 49: Symboles APL wasysym

20 Constructions math matiques


20.1 Sommes
Et comment qu'on fait pour obtenir

Ce qu'il est convenu d'appeler les fonctions standard sin, cos, : : :  sont plus jolies quand elles n X sont tap es en texte normal alors que le reste des ui quations principalement les variables est en itai=0 lique. Pour cela, ces fonctions correspondent des me demanderas-tu, lecteur curieux et impatient. commandes, parmi lesquelles tu retrouveras aussi la C'est fastoche : A limite, puisque ces commandes sont ce que L TEX appelle des mathop ou op rateurs math matiques. Tous sum_ i=0 ^ n u_i ces op rateurs math matiques sont regroup s dans le De nombreux symboles peuvent tre utilis s tableau 19 page 31. Certains fonctionnent comme la comme cela, plus exactement, tous les symboles limite, toi de savoir lesquels : : : taille variable recens s dans le tableau 18 page 31. Cas particulier : la limite Relevons au passage la di rence entre math et Pn u dans displaymath. Dans un cas on produit lim u = ` i=0 n n!+1 n la lignes avec s'obtient en tapant  sum_ i=0 ^nu_n  Alors que dans l'autre cas on produit l'exemple pr c dent. Sache toutefois que si tu souhaites voir un truc du n X genre un en plein dans le texte comme ici, alors il i=0 faudra faire appel la commande displaystyle :
 displaystyle sum_ i=0 ^nu_n  lim_ n rightarrow + infty u_n= ell

20.2 Op rateurs et fonctions

20.3 Fractions, racines et accolades


Allons-y grands coups d'exemples :
x 2x n! = e = e n=0 n X i=0

+1 n Xx

Les autres commandes du m me accabit sont : Pn u textstyle quation dans le texte i=0 n P scripstyle quation en indice n un i scriptscriptstyle quation en indice d'indice Pn un i
=0 =0

ui = u0 + u1 +z   + un |
n+1 termes

s'obtiennent partir de

39

sum_ n=0 ^ + infty frac x^n n! =e^x= sqrt e^ 2x sum_ i=0 ^n u_i = underbrace u_0+u_1+ cdots+u_n _ n+1 hbox scriptsize~termes

Fastoche non? noter : le `c' dans l'argument du `array' indique que l'on souhaite une colonne centr e. On peut pr f rer indiquer `l' pour une colonne gauche ou `r' pour une colonne droite.

Si tu voulais taper un texte en mode math matiques, tu apprendrais tr s vite que les accents ne x_0,x_1, ldots,x_n  sont pas compris et que les espaces sont ject s. De plus, les ligatures sont sauvagement ignor es, ce qui Terminons avec est normal : en mode maths fi signi e le produit overbrace u_0+u_1+ cdots+u_n ^ x de f par i et ne doit donc pas tre ligatur puisque ce sont deux entit s distinctes. qui donne A Toutefois, L TEX est quand m me gentil, il acx cepte de faire des accents en mode math matiques, z | mais il faut alors le demander di remment de ce qui u0 + u1 +    + un est dit dans le tableau 7 page 23. Il devient n cessaire de se conformer au tableau 50 page ci-contre. 20.4 D limiteurs Pour rem dier la suppression des espaces en En math matiques, on aime bien avoir des mode math matiques, il faut imp rativement dire exgrandes parenth ses, pour cela, on proc dera comme plicitement combien on veut d'espaces, et de quelle nature. Les six sortes d'espaces sont illustr es dans le suit : tableau 51 page suivante.
left sum_ i=0 ^n u_i right

Note au passage le cdots qui permet d'aligner les points convenablement, alors que pour x0 ; x1; : : : ; xn on tapera :

20.6 Les accents et les espaces

pour obtenir

X ! n
i=0

20.7 Constructions avanc es amsmath


En premier lieu voyons les int grales multiples. Un exemple, c'est tr s parlant :
iint_V neq iint limits_V

ui

Tous les d limiteurs qui peuvent se trouver deriint neq iiint neq iiiint neq ri re left ou right sont recens s dans le ta- idotsint bleau 20 page 31. Rappelons le d limiteur vide un point qui est bien utile pour les syst mes d' quations Pour voir les deux quations suivantes : ZZ ZZ une accolade gauche et rien droite, comme, par 6= exemple :
left system right.

20.5 Les matrices

ZZ

Pour faire une matrice c'est tr s simple. Regarde l'exemple l et tu sauras :


A= left begin array ccccc 1 & 2 & 3 & cdots & n 2 & 3 & 4 & cdots & n+1 3 & 4 & 5 & cdots & n+2 vdots & vdots & vdots & ddots & vdots n & n+1 & n+2 & cdots & 2n-1 end array right^ 2

6=

ZZZ

6=

ZZZZ

6=



Sans commentaire. Quelques petits jeux sur les ches pour les vecteurs par exemple. Juste pour s'amuser.
overrightarrow A_ i,j B_ k,l underrightarrow A_ i,j B_ k,l

produira

,i;j B! ,,,, A k;l


Ai;j Bk;l , ! ,,,,

produira :

0 B B A=B B B @

1 2 3 2 3 4 3 4 5 .. .. .. . . . n n + 1 n + 2    2n , 1

   n 12  n+1 C C  n+2 C C .. C ... . A

Et a marche m me en indice ou en exposant m me la pointe de la che !. Des accents math matiques ont t red nis pour qu'on puisse en mettre deux sur la m me lettre sans trop de di cult . Pour en savoir plus, voir tableau 52 page ci-contre. On peut dor navant encadrer des formules : 40

a ^ a  a ~ a a a _ a a  a  ~ a

$ hat a $ check a $ tilde a $ acute a $ grave a $ $ dot a $ $ ddot a $ $ breve a $ $ bar a $ $ vec a $ $ $ $ $

Tableau 50: Accents en mode math matiques

; : , ! quad qquad

grand espace xx x espace moyen xx x petit espace xx x espace n gatif xxx espace d'un cadratin xx x espace de deux cadratins xx x

Tableau 51: Espaces en mode math matiques

   A Bar A Breve A Check A ^ _ Grave A Hat Ddot A A Dot A ~ ~ Vec A Tilde A Chaque commande est appel e deux fois dans l'exemple. Tableau 52: Accents doubl s ajout amsmath
Acute

41

boxed sum_iu_i boxed sum_iv_i

neq

produira

X
i

ui 6=

X
i

vi

Fl ches rallonge. C'est tr s pratique pour cerA taines formules, mais a parasite pas mal L TEX dans ses habitudes. Le caract re @ est intens ment utilis 33, ce qui posera probl me dans d'autres applications34.
xleftarrow texte xleftarrow texte long texte xrightarrow texte xrightarrow texte long texte

donnera
texte ,,,

S'amuse avec les th or me. Le package de Frank Mittelbach est meilleur voir ce sujet la section 27.6 page 76. texte amsintx : Pour les choses rigolotes sur les int ,,,! grales. amscd : Pour les diagrammes commutatifs,mais j'en , texte ! ,,,,, textelong cause pas. 20.8 Options de chargement de AMS- amsxtra :trTrop compliqu pour que je te raconte. Pas s utile. A LTEX de macros utiles aux Les extensions de l'AMS sont nombreuses et font amsgen : ChargementSeraquelquesautomatiquement. autres packages. charg l'objet de plusieurs packages qui tous ensemble porA tent le joli nom de AMS-L TEX. Un particulier est amsmath puisqu'il comprends Maintenant tudions les symboles les trois packages amstext, amsbsy, amsopn sans le dire. amsfonts : Pour charger les fontes, inint ressant. Les packages sont les suivants : L'option psamsfonts est reconnue. amsmath : Le monstre d crit ci-dessus. Il fait appel amssymb : Pour charger les symboles, appel tout amstext, amsbsy et amsopn et fournit tout un seul amsfonts, reconna t l'option psamsfonts tas de constructions math matiques que je ne d crite plus loin. documente pas. Il prend tout un tas d'options possibles : euscript : Pour charger l'alphabet EuScript. Admet trois options : intlimits bornes au-dessus et au-dessous des int grales psamsfonts utilise les versions PostScript des fontes. On les a pas l'ESIEE et a sert nointlimits bornes c t des int grales grosso-modo pas grand chose35 . sumlimits pareil pour les sommes mathcal mathcal devient alors quivalent nosumlimits ben, euh, je te fais un dessin? EuScript. namelimits comme pour amsopn mathscr mathscr est cr et est quivalent nonamelimits comme pour amsopn EuScript.

tions hors-texte sont mises gauche et non pas centr es Par d faut nointlimits, sumlimits, namelimits, et centertags. amstext : Cr e l'alphabet text. amsbsy : Pour les alphabets boldsymbol et pmb. amsopn : Retouche les lim, max et autres du m me accabit. L'option nonamelimits doit interdire de mettre les commandes du type lim ou du moins rendre innactif le positionnement de l'indice en dessous. Par exemple en produisant limn!+1 un = ` au lieu de n!+1 un = ` lim
amsthm : theorem

leqno num ros d' quations gauche reqno num ros d' quations droite centertags je sais pas tbtags je sais pas non plus eqn option globale prise en compte  qua-

 texte , ,,,,, textelong

33 Du moins tait-ce le cas dans les versions pr c dentes de ce package; je ne suis pas tout a fait sur qu'il en soit toujours ainsi, mais, en r gle g n rale, on pourra retenir sans trop se tromper que les packages de l'AMS ont tendances parasiter les autres. 34 Ce n'est apparemment plus le cas, mais a change chaque remise jour des packages, alors bon, je laisse la remarque, m me si elle est plus tr s vraie. 35 Pour nous tout au moins. Il parait que dans certains cas c'est utile, sur MacIntosh entre autre, mais je suis pas s r.

42

eufrak :

Pour charger l'alphabet EuFrak. Admet  irvec x  l'option psamsfonts. left icvec eucal : Comme euscript avec l'option mathcal par pour obtenir : d faut.

x 

20.9 Le package vector

x1 ; : : : ; xn

0x 1 Ce package, que nous devons au britanique Nick E ord 38 , tend consid rablement le traditionnel B ..1 C @ . A accent math matique vec  cf. tableau 50 page 41. xn Je te rappelle, avant d'aller plus loin, que $ vec a $ produit ~ . C'est la notation la plus usuelle a On pourra vouloir sp ci er l'indice du dernier en math matiques, jusqu' la terminale. D'autres terme : sont pr vues, pour les physiciens par exemple :  irvec k x  uvec a a
De plus on note souvent les vecteurs de norme 1 avec un accent circon exe. C'est en e et ce qui est pr vu ici pour les uvec unary vector : uuvec a a ^ D'autres commandes sont pr vues, pour taper directement les vecteurs et non plus simplement leurs noms :
 rvec x 1 5  left cvec x 1 5 right buvec a suvec a bvec a svec a

a
a

left

icvec 12

right

pour obtenir : x1 ; : : : ; xk 

^ a
^ a

0 B @

x1 .. C . A x12

Ou encore changer l'indice du premier l ment :


firstelement 0 left icvec 12 x  irvec 12 x ^t right =

pour obtenir :

x1; x2; x3; x4; x5

x5 Voil , tu devrais tout savoir faire sur les vecteurs On manipulera souvent des vecteurs de taille n : maintenant.

0x B x1 B x2 B 3 Bx @ 4

1 C C C C A

nous donnera :

0 B @

x0 .. C = x0; : : : ; x12t . A x12

21 Alphabets math matiques


21.1 D nition
ne sont pas des alphabets, mais simplement des com-

Un alphabet math matiqueest, peu pr s, aux A math matiques sous L TEX ce que les fontes sont aux textes. Il ne s'agit par vraiment de fontes, puisse que dans une fonte donn e on a plusieurs alphabets. Par A exemple, dans la fonte usuelle sous L TEX qui s'appelle Computer Modern, on trouves alphabets diff rents tels que mathbb pour obtenir les lettres double barre, ou mathcal pour obtenir des lettres rondes. Je vais te montrer dans cette section tout ce qui ressemble de pr s ou de loin des alphabets pour A L TEX. Ne te e pas trop ce que je raconte, il m'arrive de te mentir : certaines des choses pr sent es ici

mandes permettant de modi er l'aspect visuel des caract res produits.

21.2 Gras amsmath

Si tu souhaites obtenir des symboles en gras dans une formule math matique, sans pour autant que toute la formule soit en gras, deux choix s'o rent toi : soit le symbole existe en gras, et alors tu utiliseras :
boldsymbol ...

soit le symbole n'existe pas en gras, et alors tu utiliseras

43

A Par d faut, L TEX2" ne connait qu'un alphabet la deuxi me forme servant produire des op rateurs math matique rigolo, c'est mathcal. On peut lui en du type sum. Un exemple rapide et c'est boucl : apprendre d'autres. Deux tr s bons exemples sont les sum_ i=1 ^nu_i alphabets Euler Script et Euler Frakture page 47. neq Le package amsmath permet d'en cr er 5 autres. boldsymbol sum _ i=1 ^nu_i Etudions les rapidement. mathbb sers pour les lettres neq double barre, boldsymbol est expliqu plus haut mathop pmb sum _ i=1 ^nu_i avec pmb. Ne reste plus que frak qui red nit Euler Frakture36 et text qui permet de placer du texte dans une quation. Le texte sera dans la m me fonte a donne a : que celle valide en dehors de l' quation : n n X Xn X ui 6= i=1 ui 6= ui
i=1 i=1

pmb ... mathop pmb ...

21.4 Alphabets

A 21.3 Gras LTEX2" 

sum_ i=1 ^nu_i text un petit mot sum_ i=1 ^nu_i

Pour faire du gras dans toute une quation voire Produira : dans toutes tes quations, il y a des m thodes moins n n X X brutales que celle vue ci-dessus, et en plus elles ne reui un petit mot ui A qui rent pas de package d'extension. L TEX2" pr voit i=1 i=1 une commande mathversion ... Un exemple de l'alphabet le plus utile, savoir qui permet de commuter entre bold et normal en mathbb qui permet d'obtenir les lettres double standard. Le package concrete o re aussi la possibi- barre pour noter les ensembles : lit d'utiliser la version euler, en n d s qu'il sera install . Un exemple rapide : forall n in mathbb N
mathversion sum_ i=1 mathversion sum_ i=1 bold ^nu_i normal ^nu_i quad u_n=v_ n+1

Produira :

Pour produire :

8n 2 N un = vn+1

X
n i=1

n X i=1

ui

Un autre alphabet rigolo est o ert par le package voir section 22.7 page 48 ce sujet. C'est l'alphabet mathos qui permet de produire a : 123. Le tableau 53 page suivante donne un exemple sur les lettres A, B et C de chaque alphabet en rappelant leur lieu de d nition.
oldstyle

36 Tr s exactement comme le fait le package eufrak qui est expos section 22.2 page 47, sauf que la commande d nie ici s'appelle frak au lieu de EuFrak.

44

Nom de l'alphabet Package inclure mathcal aucun


mathbb mathbf mathos boldsymbol mathfrak EuFrak EuScript

R sultat produit

amsfonts amsfonts oldstyle amsbsy amsmath amsfonts eufrak eufrak euscript

ou

ABC 123 ABC


ABC ABC

ABC

ABC

ABC

Attention, boldsymbol n'est pas proprement parler un alphabet, c'est plus un modi eur, comme textbf en est un. On peut le combiner avec EuScript, mathfrak ou mathcal. De m me il agit sur les symboles et pas que sur les lettres latines.
Tableau 53: Exemples des di rents alphabets math matiques

45

46

Utilisation avanc e
A 22 Gestion des fontes avec LTEX 2"
Certains packages d'extension donnent acc s place des Computer Modern usuelles. Je les trouve d'autres fontes que celle que tu connais d j . Voyons un peu moins jolies, mais c'est chacun selon son go t. ensemble les plus courants. Voici un paragraphe rigolo tap en pandora. e Ben oui, nalement, a force de fouiller dans NFSS 22.1 euscript j'ai ni par trouver comment lui faire avaler cette Ce package, crit par Frank Mittelbach et Rainer fonte m^ me en Sans Serif ou en Gras, voire en Itae Sch pf 83 , d'une simplicit extr me, permet d'utili- lique. Je n'aime pas particuli rement cette fonte, e ser, en mode maths, une nouvelle collection de fontes, mais je te la montre, au cas ou elle te tenterait. qui sont les Euler Script telles qu'elles ont t La suite en Computer Modern, bien entendu. dessin es par Hermann Zapf. On d clare le package dans le pr ambule du document et, en suite, en mode 22.4 beton maths, on peut faire : Le package beton, crit par Frank Jensen 52 perEuScript ABC neq mathcal ABC met d'utiliser les fontes Concrete de la m me fapour comparer avec les fontes calligraphiques stan- on que le package pandora permettait d'utiliser les fontes Pandora. dard de TEX. C'est assez di rent. Voici un paragraphe aussi rigolo que tout a l'heure, tap en Concrete. Mais tout est faisable e puisque cette fonte est construite sur la base des ABC 6= ABC Computer Modern, on doit donc pouvoir, a l'aide de quelques param tres r crire toutes les variantes e ee 22.2 eufrak utiles. M'en n, pour l'heure, c'est pas dans mes proa ressemble beaucoup au pr c dent, c'est aussi jets urgents. Un Italique, Sans Serif Tele Text: : : Et de Frank Mittelbach et Rainer Sch pf 82 et a le tout en Concrete. donne :
EuFrak ABC EuScript ABC mathcal ABC neq neq

22.5

xavier

pour obtenir : ABC 6= ABC 6= ABC Attention Lorsque tu utilises les packages de l'AMS, ils d nissent un alphabet math matique mathfrak qui est le m me que EuFrak. Le package eufrak pour sa part d nit aussi ce m me alphabet sous les deux noms. a cr e d' vidents conits re-d nition d'une commande d ja existante. Il faut donc savoir que si le package amsmath37 est d j charg , le package eufrak n'est plus utile. Le con it a t lev dans les versions plus r centes, mais le fait de charger les deux packages peut toujours provoquer, au moins des messages d'avertissement, au plus des probl mes, selon l'ordre de chargement.

Ce package te permet de charger et d'utiliser une nouvelle famille de fontes la famille xav que Xavier m'a demand d'intaller pour son usage personnel. Les seule commandes int ressantes sont :
textxav ... xavfamily ...

Ce texte a t produit par cette fonte. Il faudra faire attention aux apostrophes, c'est pas toujours joli. Pour faire mieux il faut appeler la commande app 'l esth tique du r sultat est bien plus grande.

Sinon, les autres fontes ne sont pas touch es par tout cela.

Ce package, que nous devons Ulrick Vieth 112 nous permet d'utiliser les fontes qui correspondent au logo de METAFONT. En e et, le logo METAFONT est traditionnellement crit dans cette fonte qui comporte d'ailleurs juste assez de caract res pour faire ce 22.3 pandora logo et celui d'un programme associ METAPOST. Ce package de Frank Mittelbach 77 permet, pour Ce package cr e quatre commandes utiles : MP et sa part, de s lectionner les fontes pandora la MF pour produire les deux logos que tu viens de voir,
37 ou un de ses d riv s qui chargera cette fonte

22.6 Le package mflogo

47

et textlogo et logofamily pour acc der la fonte partait que certains diteurs attendent du soulign de mani re normale. la place de l'italique, et dans ce cas pr cis, a peut a n'est pas d'un int ret d bordant, mais lorsque tre pratique de ne pas avoir reprendre tout le dol'on parle d'un programme, il est bon d'utiliser son cument. logo de mani re convenable. Une des fonctionnalit s int ressantes apport es par ce package est le fait que les commandes qu'il d nit pour le soulignement sont capables de g rer con22.7 Le package oldstyle venablement les changement de lignes dans les parties Ce package, que nous devons Robin Fair- soulign es, ce qui n'est pas le cas pour la commande bairns 39 permet de produire des nombres comme underline de L TEX. A en utilisaient les anciens typographes, tu sais, des Par contre, certaines restrictions sont annonc es trucs du genre 123456. C'est assez joli. dans la documentation38 du package. En e et, le Pour ce faire, ce package cr e trois commandes. La chengement de ligne est g r automatiquement, les plus utile, qui est celle que je viens d'utiliser l'ins- commandes de soulignement d nies par ulem sont tant est textos qui donne acc s ces chi res. Son incapables d'utiliser les c sures, par contre elles sont pendant directe, qui permet la m me chose, mais avec capables de tenir compte de la commande - qui inA une syntaxe plus proche de L TEX 2.09 est oldstyle. dique explicitement un point de c sure possible voire Elle s'utilise l'ancienne mani re, c'est- -dire qu'au ce sujet la section 23.2.1 page ci-contre, de m me lieu d'appeler ces commandes savent tenir compte de commandes comme newline ou linebreak. Cependant, elles textos 123456 seront tr s fortement perturb es par les appels de commandes et par les accolades. Ainsi, s'il te venait la on appelle fantaisie de mettre un niveau d'accolades de trop lors oldstyle 123456 de l'appel d'une de ces commandes, alors toutes les s de passage la En n, la troisi me commande est mathos qui possibilit fait de mettre une ligne disparaitraient. De m me, le permet d'utiliser ces chi res dans une quation. C'est en gras39 posera probl me. partie du texte soulign un alphabet math matique comme un autre. Bien, rentrons un petit peu dans le vif du sujet. Ce package cr e, pour l'utilisateur de base que tu es, 22.8 Le package ulem 5 commandes : Le package ulem que nous devons Donald Aruline pour utiliser du soulignement normal et A seneau 5 est un joli reste de L TEX 2.09 qui a t qui sait se propager convenablement sur les ATEX 2" . Il permet sommairement remis jour pour L changement de lignes. de g rer de mani re plus pouss e les soulignement. Je sais, c'est pas en lien troit avec les probl mes de changement de fontes, mais je voyais pas o le mettre uuline le m me pour le double soulignement. ailleurs. Ce package remplace les deux commandes em uwave le m me avec un soulignement::::::: . :::::::::::: ondul et emph de mani re parfaitement transparente pour qu'au lieu de mettre du texte en italique elles le sou- sout pour rayer du texte comme a. lignent. C'est l sa premi re raison d' tre, bien que, de mon point de vue, ce soit plut t un e et secon- xout pour rayer du texte comme a. daire d sagr able. Je pr cise donc tout de suite que ce package admet plusieurs options, en particulier : Je ne pense pas que cela n cessite beaucoup plus d'explication pour un usage simple, le reste sera donc normalem lui indique qu'il ne faut pas qu'il touche consacr un usage avanc , voir tr s avanc . aux deux commandes em et emph. Donald Arseneau donne deux exemple int ressant pour un usage avanc de son package, je vais les ULforem fait le contraire. reprendre tels quels et les commenter ensuite : normalbf lui indique de ne pas toucher aux commandes bfseries et textbf. UWforbf lui indique d'utiliser un soulignement ondul la place du gras. Pour ma part, histoire de ne pas perturber mes A petites habitudes avec L TEX j'aurais tendance pr ciser les deux options normalem et normalbf. Mais il
L'exemple simple: noindent 'Twas em brillig and the em slithy~toves did em gyre and em gim -ble in the em wabe, 2pt All em mim -sey were the em boro -goves and the em mome raths outgrabe . L'exemple compliqu 'e: No, I did em not act in the movie em emph The  Nested emph Persecu - emph tion emph and emph Assassination emph of emph Jean-Paul emph Marat , as per -formed by the Inmates of the Asylum of Charenton under the Direc -tion of the Marquis de~Sade! But I em did see it.

38 On peut di cilement parler de documentation puisqu'il s'agit du chier source du package, cependant, ce chier contient toute une partie explicative sur le fonctionnement du package la n. 39 Par exemple, parce que, en italique ou en plus petit ou en plus grand, ou a pose les m mes probl mes bien entendu.
:::

48

Ce qui produit le r sultqt suivant : L'exemple simple : 'Twas brillig and the slithy toves did gyre and gimble in the wabe, All mimsey were the borogoves and the mome raths outgrabe. L'exemple compliqu : No, I did not act in the movie The Persecution and Assassination of Jean-Paul Marat, as performed by the Inmates of the Asylum of Charenton under the Direction of the Marquis de Sade ! But I did see it. Dans le cas de l'exemple compliqu , on rel vera

que l'imbrication de passages soulign s40 n'est pas simple obtenir. En particulier, les espaces sont laiss s en dehors de l'imbrication pour leur permettre de changer de taille41 et pour autoriser le changement de ligne. De m me, le - est laiss en dehors de l'imbrication pour permettre la c sure de se faire en cas de besoin. L'exemple simple permet de tester une bonne partie des commandes de changement de ligne et de gestion de l'espacement que tol re ce packages, comme par exemple le ~ ou le .

23 Mise en page
23.1 Style de page
Trois styles de page classiques existent pour A L TEX2" : 1 empty : rien. Ni en-t te, ni pieds de page. Le num ro de page ne gure donc nulle part. Classiquement employ pour les lettres ou les couvertures de rapport. 2 plain : c'est le style de page par d faut. Pas d'ent te, et le num ro de page centr en pieds de page. 3 headings : avec en-t te. Le num ro et le nom du chapitre en cours sont report s en en-t te gauche des pages de droite, et le num ro et le nom de la section sont report s en en-t te droite des pages de gauche. Le num ro de page est en haut droite des pages de droite et en haut gauche des pages de gauche  l' ext rieur, pour aider la recherche d'une page pr cise. Un document recto est compos exclusivement de pages de droite. On demande un document recto-verso en passant l'option twoside au documentclass. Les pages de droite se reconnaissent au fait qu'elles ont des num ros impaires, comme l'imposent les r gles l mentaires de la typographie classique 84 . Avec ce style de page, les premi res pages de chapitre seront compos es en plain pour viter qu'un en-t te ne se retrouve au dessus du titre du chapitre. On pourra souhaiter que les chapitres commencent toujours sur des pages de droite42 , cela s'obtient en mettant l'option openright du documentclass. Deux commandes existent pour changer de style de page : thispagestyle : pour changer le style de la page en cours. pagestyle : pour changer le style des pages jusqu' nouvel ordre.

23.2 Changement de ligne, changement de page, espacement


23.2.1 Changement de ligne, c sure
Plusieurs m thodes existent pour changer de ligne. La premi re est de changer de paragraphe cf 14.5 page 24. La seconde est d'imposer un changementbrutal comme ici avec la commande newline. En n, il est possible d'autoriser un changement de ligne bizarre l'aide de la commande linebreak n o n peut avoir les valeurs suivantes : 1 ,! changement de ligne autoris ; 2 ,! changement de ligne acceptable ; 3 ,! changement de ligne bon ; 4 ,! changement de ligne pr f rable ; 5 ,! quivalent un linebreak sans param tre ; changement de ligne impos . Attention, contrairement au newline, le linebreak laisse la justi cation du paragraphe se faire. On peut interdire un changement de ligne avec nolinebreak qui admet les m mes options que linebreak.
A Dans certains cas pr cis, L TEX ne trouve pas un point de c sure dans un mot, on peut alors les lui indiquer :
fonc -tion -nai -re

NB : le troisi me, entre le i et le r, n'est tol r par la typographie fran aise que dans les cas extr mes puisqu'il renvoit seulement 2 lettres la ligne. On peut aussi, pour des mots fr quents, les ajouter son dictionnaire d'exceptions avec la commande
hyphenation fonc-tion-nai-re
em

40 ou plus pr cis ment l'appel de emph dans em, puisque cet exemple utilise le fait de remplacer 41 Pour pouvoir faire la justi cation 42 aussi appel es belles pages par les typographes

par du soulign

49

A Attention, L TEX di rencie majuscules et minuscules, il faudra donc plus vraissemblablement entrer :
hyphenation fonc-tion-nai-re Fonc-tion-nai-re

23.4 La package a4
Le package a4 qui est un des grands standard pour A A L TEX a t r crit pour L TEX2" par Nico Poppelier et Johannes Braams 93 . Il a l'air assez joli et semble pr voir tous les cas. On peut lui passer une option widemargins qui permet d'obtenir de grandes marges. Fais ga e, je n'ai pas corrig le style, aussi les marges sont d j trop grandes mon go t. Il n'est pas exclu que je rajoute la main une option nonstandard qui sera shortmargins pour gagner un peu de place sur les pages.

23.2.2 Espacement

Un espacement par d faut est ajout entre deux paragraphes, on le trouvera parfois insu sant, par exemple pour s parer deux s ries de paragraphes sur deux id es di rentes th se et anti-th se dans une dissertation. On aura alors recours l'une des trois commandes suivantes : smallskip laisse une espace troite. medskip laisse une espace moyenne. 23.5 Le package afterpage bigskip laisse une grande espace. Tu voudras parfois, pour d'autres raisons, laisser Ce package est une vaste bidouille crite par Daplus de blanc encore. Tu auras alors recours une vid Carlisle 20 d cid ment, un habitu  qui permet commande plus g n rale : des petits trucs assez cools au niveau de la mise en page de documents un peu bizarres. L'id e est de stovspace 5cm cker des commandes qui seront appliqu es juste apr s Commande laquelle on peut sp ci er la la n de la page courante. Par exemple, tu as un tadistance laisser en cm, mm, in pouce, pt bleau dont tu sais pertinemment qu'il sera grand. Tu 72,27pt=1in=2,54cm, bp big point, ou point Post- as la possibilit de couper la page pour ins rer ton tableau puis de reprendre ton texte apr s, mais a a Script, 72bp=1in et bien d'autres unit s encore. hspace permettra d'obtenir un espacement ho- le d savantage de laisser une page non-pleine avant le tableau. C'est pas beau. Tu vas alors d cider de rizontal d'une taille choisie. Note bien que le blanc produit par hspace et mettre ton tableau en ottant. Oui, mais Dieu seul vspace est de la m me nature que celui qui est entre sait quand il va appara tre, peut- tre bien des pages deux mots ou entre deux lignes, c'est dire qu'il et des pages de l . A diapara t en n de ligne pour hspace ou en n de Alors que si tu intimes l'ordre L TEX2" de le page pour vspace. Pour qu'il en soit autrement, il placer juste apr s la n de la page courante, tu pourte faudra utiliser hspace* et vspace*. ras ais ment dire dans ton texte : le tableau en haut de la page suivante vous indique: : : , ce qui est tr s joli. 23.2.3 Changement de page On peut ottants De m me que pour le changement de ligne, il d'un chapitreaussi, pour viter que tous lesn du chane viennent s'entasser la existe plusieurs commandes. newpage, pagebreak pitre, indiquer un clearpage juste apr s la n de la et nopagebreak sont similaires leurs homologues page. a ne changera pas ta page, mais a viendra pours les lignes tudi s plus haut. les ottants en m Il existe en sus clearpage qui fait l' quivalent vider tousdans le texte. encoreparfois moire avant de continuer C'est pratique. d'un newpage puis s'assure que tous les ottants Comment on utilise ce package? Facilement : en attentes soient plac s. cleardoublepage fait la m me chose en veillant en plus  quitte laisser une page blanche  ce que l'on reparte bien sur une afterpage page de droite. framebox En haut de la page suivante

23.3 Le package indentfirst


Un petit
usepackage indentfirst

te permettra de r soudre ce di cile probl me avec A L TEX qui est qu'il n'indente pas le premier paragraphe apr s un titre alors qu'on voudrait pas toujours qu'il en soit ainsi. C'est tr s bourrin, mais a marche impeccable, y'a qu' voir ce document. Ce package nous est o ert par David Carlisle 16 .

Attention! Ce package est une version b ta. La commande n'est pas particuli rement robuste et pourrait probablement introduire des erreurs. De plus, ce package pose probl me quand il est utilis avec multicol puisque multicol d tourne la gestion des pages pour g rer ses colonnes. Il ne fonctionnera donc que dans les passages en une seule colonne, ou plus exactement le texte appara tra au prochain changement de page se faisant en une seule colonne.

50

23.6 Changement de page am lior

Il fournit quelques commandes dont voici la syntaxe : A L'une des grandes di cult s avec L TEX 2.09 tait de lui expliquer o il avait le droit de changer de page. setpapersize A4 En e et, dans un texte un peu compliqu contenant A des tableaux ou des blocs de texte ins cables43  L TEX La premi re permet de s lectionner le format de ne savait jamais vraiment bien o couper sa page, et il papier dans une liste relativement impressionnante : avait tendance faire des pages pleines de vide alors tous les An et tous les Bn pour n entre 1 et 9. Ton qu'une petite ligne de plus aurait bien arrang ses poly sur du papier A1? Bien s r... Et puis si tu le a aires. souhaites en landscape  l'italienne pour les francoIl y a maintenant une solution phones puristes comme moi, il te su ra de le dire en option et d'en parler tendrement ton driver pr f r : enlargethispage longueur qui permettent d'allonger la page de la longueur sp ci e pour faire tenir une ligne de texte en plus ou pour en retirer une longueur n gative de mani re arranger un peu les choses. A La forme avec une * impose L TEX de r duire au strict minimum toutes les longueurs lastiques mises en uvre dans l'espacement vertical, c'est dire qu'il comprime au maximum la page pour en faire tenir le plus possible dessus.
enlargethispage* longueur setpapersize landscape A1

Et puis, pour les gens comme toi, il reste la possibilit de cr er de nouveaux formats de papier. Pour positionner les marges? Eh bien voici la m thode la plus simple qui soit :
setmarginsrb a b c d e f g h

Avec la signi cation suivante : a est la marge de gauche, b est la marge haute, c la marge de droite et d la marge basse. Il ne reste plus que quelques pa23.7 Format de page : vmargin ram tres pr ciser. e est la hauteur de l'en-t te, f Nous devons la g n rosit de Volker Kuhlmann, est la distance entre l'en-t te et le texte, g la hauteur un N erlandais, un joli package du nom de vmargin du pied-de-page et h la hauteur totale entre le bas de qui permet sans trop se fouler de changer les marges la page et le bas du pied de page. d'un document. Facile, non?

43 th or mes, d nitions: : :

51

Il ne reste plus alors qu' expliquer dvips que tu imprimes en landscape. Pour ce faire, il su t d'appeler dvips au clavier et de lui donner les options suivantes : On cherche utiliser du landscape g n ralement pour trois classes de probl mes di rents. Ils y a donc trois types de r ponses : dvips -t landscape -t a4 toto 1. Tu cherches faire tout ton document en landscape, par exemple pour des transparents pour une soutenance. pour imprimer, ou en rajoutant encore l'option -o pour obtenir le chier PostScript 2. Tu cherches alterner r guli rement entre landscape et portrait selon les pas- associ . Le second probl me, savoir alterner entre landscape et portrait dans un m me sages du document. document, est relativement simple. Il te su t de conna tre le package lscape que 3. Tu cherches mettre un tableau ou un sch ma en landscape parce qu'il est trop nous devons David Carlisle 17 . Ce package fonctionne en collaboration avec grand pour la page. graphics. Il cr e un environnement landscape dans lequel toutes les pages sont Ces trois probl mes sont relativement di rents. On rel vera surtout le troisi me en landscape. Enfantin. Pour obtenir un document principal en landscape avec cerqui est plus proche des probl mes de ottants que des probl mes de mise en page. taines pages en mode portrait, tu auras devin tout seul, il faut combiner les deux. Tu utilises la premi re m thode correction de la largeur du texte et des marges, Donc il sera trait la section 24.4 page 58 qui traite du package rotating. A Le premier probl me est relativement simple. Il su t de sp ci er L TEX que tu et appel de dvips avec les bonnes options pour sp ci er que tout le document est fais du landscape, soit avec l'option pr vue sp cialement dans le documentclass, en landscape et tu fais appel l'environnement fourni par le package lscape pour soit avec le package vmargin. Attention, l'option de documentclass ne change repasser en mode portrait pour certaines pages. pas les marges, c'est toi de le faire. C'est pourquoi je te recommande le package Ce passage en deux colonnes et en mode landscape t produit par l'environvmargin. Vois ce sujet la section qui lui est consacr e  23.7 page pr c dente. nement du package lscape.

23.8 Obtenir du landscape

52

Texte gauche impaire

23.9 En-t te : fancyheadings

Centre

Texte droit impaire

A Ce package est un vieux reste de L TEX2.09 crit par Piet van Oostrum 111, 100 mais qui fonctionne encore tout fait bien. Regardons rapidement la structure d'une page. Texte gauche impaire On s'int resse l'en-t te et au pied de page. Chacun de ces morceaux est compos de trois parties : droite, On pourra, simplement, souhaiter mettre une gauche, et centre. Ce package est capable, avec une ligne entre l'en-t te et le texte ou entre le texte et le aisance hors du commun, d'intervertir la droite et la pied. Pour cela fancyheadings pr voit que tu puisses gauche, selon que l'on soit sur une page paire ou une utiliser quatre longueurs : page impaire. Tr s joli, comme e et. De plus, il pr voit que certaines pages sont sp ciales, comme les pre- headrulewidth mi res pages de chapitres. Les habitudes veulent que footrulewidth plainheadrulewidth pour ces pages sp ciales, on sp ci e

lhead fancyplain Texte gauche paire plain Texte gauche paire normal

Reste e ectuer le choix des textes a cher, Cette habitude est respect e, quand on le souhaite. Il alors, juste pour m moire je te rapelle, lecteur perdu reste s'y retrouver. dans ces m andres de complexit , que thepage est Il existe trois pagestyles pour ce package : une macro qui est remplac e par le num ro de la page en cours. De plus leftmark contient g n ralement fancy le titre du chapitre dans un rapport ou de la section plain dans un article et que rightmark contient le titre fancyplain de la section dans un rapport ou de la sous-section o fancy fait en sorte que toutes les pages soient dans un article. comme tu les d nis, et respecte le style plain de En n, et pour nir, rappelons aux plus courageux TEX. Ainsi, si ton document est d clar avec que les titres des chapitres, sections: : : sont transmis via des commandes du type pagestyle plain et que tu tentes
thispagestyle fancy chaptermark Titre du chapitre

thispagestyle plain

plainfootrulewidth

alors seule une page serait construite par les d nitions de ce package, toutes les autres utiliseraient le markboth gauche droite markright droite format de TEX. Le dernier de ces formats fancyplain vient re- Aussi il su t de d clarer : d nir le format plain d'apr s tes instructions, ainsi tu auras deux types de mise en page : les pages nor- renewcommand chaptermark 1 males et les plages plain qui sont g n ralement markboth Chapitre thechapter. 1 celles de d but de chapitre. A retenir, les noms des macros d nissant l'appa- pour faire appara tre dans la marque du c t gauche le num ro du chapitre et dans celle du c t droit le rence des en-t tes et pieds de pages : titre de celui-ci. lhead Texte gauche paire Voila, tu as maintenant toutes les clefs en main, Texte gauche impaire lecteur courageux et la limite du t m raire.
rhead Texte droit paire Texte droit impaire chead Centre lfoot Texte gauche paire Texte gauche impaire rfoot Texte droit paire Texte droit impaire cfoot Centre

et que l'on peut xer les valeurs de leftmark et de son petit fr re avec les commandes suivantes :

23.10 Le package ssqquote

Pour sp ci er ce qui doit appara tre si la page est plain au lieu de normale, il faut utiliser la commande
fancyplain Texte plain Texte normal

Ce petit package, crit par Ulrik Vieth 113 permet de faire des citations en n de chapitre comme il fait Knuth dans le TEXbook et m me que je trouve que c'est joli. Alors je vais faire une citation, l , tout de suite.
begin chapterquotes nextquote Y fait B ^o ^o ^o ^o ^o ^o- ^o ^o ^o ^o- ^o ^o ^o ^o author P. Vincent Un jour de printemps nextquote Nous allons `a jamais vers demain. author J.R.R. Tolkien, title The Lord of the Rings Bilbo Baggins end chapterquotes

Ainsi, une d nition pourra ressembler

53

Prends garde un fait g nant : la fonte utilis e n'existe pas en codage T1, il te faut repasser en encodage OT1 avant d'utiliser ce package. Ce d faut est tr s temporaire et devrait disparaitre dans l'une des futures release des fontes. Le passage de T1 en OT1 se fait avec la ligne
renewcommand encodingdefault OT1

et le retour en sens inverse est assur par


renewcommand encodingdefault T1

Y fait B^^o^^o-^o^^-^^o^ oo^oo^ o^oo oo^o | P. Vincent Un jour de printemps Nous allons jamais vers demain. a | J.R.R. Tolkien, The Lord of the Rings Bilbo Baggins

54

24 Les ottants
C'est tr s joli tout a, me diras-tu, mais toi tu arrives savoir quel num ro portent tes tableaux, et o ils se trouvent dans le document. En plus, ils sont jamais l o a ferait tache, par exemple d passant en bas de la page. Passerais-tu donc ton temps recompiler ta doc pour voir o pr cis ment mettre les tableaux? A Que neni. C'est L TEX qui se charge de les positionner. En fait, je lui dit d'en faire des ottants, c'est- -dire qu'il les garde en m moire jusqu ce qu'une place ad quate leur soit trouv e. Les di rents types de ottants font l'objet du tableau 54 page suivante. Ils sont bien pratiques puisqu'ils te permettront de les r f rencer comme c'est dit en 26 page 71. Pour donner un titre et un num ro un ottant, on utilise la commande caption n'importe o dans le ottant. De plus le titre sera repris dans la liste correspondante. La syntaxe de caption est la suivante :
caption titre1 titre2

24.1 La base

et des dessins partout, a n'aide pas la lecture. Ramener toutes les images en n de rapport a peut tre une bonne solution. Ce package ne fournit aucune commande, il suft de l'appeler avec les bonnes options, et il fera son travail tout seul sans rien demander personne. Les options? Elles sont d crites dans le tableau 55 page suivante. Quelques petits d tails pour conclure sur ce package : L'adaptation babel est possible, mais n'a pas t faite. Je pense la sugg rer aux auteurs par mail, et, si j'ai le courage de le faire, leur envoyer les corrections apporter leur package. Il n'est pas impossible non plus que les corrections pour les langues usuelles l'ESIEE franais, allemand et espagnol soient faites tr s rapidement. Quand ce package d place une gure ou un tableau vers la n du document, il laisse dans le texte une marque du type Figure 4 about here . Si tu sais le faire tu peux red nir les commandes figureplace et tableplace qui produisent le texte. A cet e et, je te donne le code source de ces commandes :
newcommand figureplace  begin center figurename~ thepostfig about here. end center newcommand tableplace  begin center tablename~ theposttbl about here. end center

Le titre1 est celui pris pour la table des mati res, et le titre2 est celui pris pour le ottant parfois beaucoup plus long. Si le titre1 n'est pas sp ci , c'est le titre2 qui sera report dans la table des mati res comme c'est le cas pour la majorit des ottants de ce document. La syntaxe devient alors :
caption titre2

Tu peux, avec certaines options, imposer des contraintes sur la postion du ottant, en fait en o rant A certaines possibilit s L TEX parmis les quatre admises par d faut. Elles sont h comme here pour autoriser le ottant appara tre exactement l o il est d clar , t comme top pour autoriser le mettre en haut d'une page, b comme bottom pour autoriser le mettre en bas d'une page, et en n p pour autoriser le mettre sur une page sp ciale qui sera compos e uniquement de ottants. Ainsi
begin table h

vite tout de m me de jouer aux apprentis sorciers si tu ne sais pas bien manipuler les d clarations de commandes. De m me une adaptation des titres des sections sp ciales Figures et Tables peut tre faite juste selon tes go ts et tes besoins, mais l aussi il faut passer par des red nitions.

indique un tableau qui ne pourra se trouver qu'en haut ou en bas d'une page mais nulle part ailleurs. Joli, non?

24.3 Flottants am lior s: float

24.2 Le package endfloat

Ce package a t cris par MM. McCauley et JunA ker 68 et permet d'indiquer L TEX que tous les ottants d'un document soient plac s la n. C'est une chose qui complique quelque peu la lecture d'un article devoir se reporter aux derni res pages pour lire des donn es concernant le d but, c'est pas top mais qui est r guli rement demand par certaines revues scienti ques. a peut aussi tre agr able pour des rapports dans lesquels il y a trop de ottants. En e et, avoir quelques lignes de texte sur chaque page

Ce package, d'Anselm Lingnau 65 , te permettra une manipulation des ottants d'un niveau que tu n'as jamais esp r atteindre. En fait, que peut-on demander de plus que ce qui A est d j pr vu par L TEX? Eh bien des choses savantes. Je vais prendre un ou deux exemples simples de probl mes qui sont r solus par ce package. Dans un rapport que j'ai t amen rendre et qui parlait de traitement d'images, il y avait, c'est la sp cialit du genre, pleins d'images original, retrait e par tel ltre, retrait e par tel autre: : : , il y avait aussi une repr sentation des ltres par des diagrammes,

55

D but

begin begin begin begin

table table* figure figure*

Fin

end end end end

table table* figure figure*

Pour d clarer : : : Tableau sur une colonne Tableau sur toute la largeur de la page Figure sur une colonne Figure sur toute la largeur de la page

Tableau 54: Les quatres principaux types de ottants

Option

nofiglist notablist nolists figlist

tablist lists nofighead

notabhead

noheads fighead tabhead heads markers nomarkers tablesfirst figuresfirst

Sens Supprime la liste des gures. Supprime la liste des tableaux. Equivalent aux deux pr c dentes. Demande une liste des gures. Cette option est prise si on ne sp cie rien quant la liste des gures. Il est videmment contradictoire de demander la fois figlist et l'une des trois premi res options. Demande une liste des tableaux. M mes remarques que ci-dessus. Demande les deux listes. Equivalent aux deux pr c dentes. Supprime la section Figures qui peut tre ajout e en n de document. Oui, une section, parce que c'est tudi pour les articles. A l'heure actuelle, le nom de la section est impos Figures ce qui est convenable la fois pour le fran ais et l'anglais. Il n'est pas impossible que je fasse une adaptation babel un de ces jours. Cette adaptation se fera alors dans le package ESIEE en attendant qu'il y en ait une o cielle. Cette option est prise si rien n'est sp ci quant la section en question. La m me chose, mais pour les tableaux. Dans ce cas, le nom de la section est Tables ce qui est d ja moins convenable puisqu'en fran ais on souhaiterait plus volontiers trouver Tableaux. Peuttre dans une adapatation ESIEE: : : Equivalent choisir les deux pr c dentes options. C'est le contraire de noheadfig. Bien videmment, on vitera, l aussi de faire des demandes contradictoires. La m me chose, mais pour les tableaux. Equivalent choisir les deux options pr c dentes. Impose de laisser les marques dans le texte. Option prise par d faut si rien n'est sp ci quant aux marques. Supprimes les-dites marques. Place les tableaux avant les gures. Place les gures avant les tableaux. Option prise par d faut si rien n'est sp ci quant la position respective des tableaux et des gures.

Tableau 55: Options de chargement du pakage endfloat

56

ainsi que, pour la partie th orique, des courbes sorties de Mathematica ou de Gnuplot. Dans la version de ce rapport que j'ai rendue, tout tait recens comme gure et apparaissait dans la liste des gures. Si j'avais eu la possibilit de faire une liste des images, une liste des diagrammes et une liste des courbes, c'eut t plus esth tique. Mais l' poque, ce package n' tait pas encore install l'ESIEE. L'autre exemple simple de probl mes qui peuvent se poser, c'est l'ancienne version de cette doc. Il y avait beaucoup de ottants qui venaient se positionner en haut ou en bas de chaque colonne, et, bien souvent, on avait l'impression de continuer lire le texte, alors que pas du tout, on avait commenc lire un bout d'explication donn dans une gure. Il eut en fait t tr s agr able que les gures soient s par es du texte par un trait ou quelque chose du genre. A C'est maintenant pr vu par L TEX, mais en plus, c'est tendu par ce package. Voyons les choses dans l'ordre. Tout d'abord ce package introduit la notion de style de ottant. Un style, pour un ottant, a peut tre : A plain Le style habituel sous L TEX. boxed Le ottant est encadr , et le caption est plac dessous. ruled On voit appara tre, dans cet ordre, un trait, le caption, un trait, le ottant, et un trait pour nir. L' paisseur des di rents traits n'est pas toujours partout la m me. C'est ce tyle de ottant que Knuth a utilis dans son livre Concrete Mathematics. D'autres choses que le style permettent de caract riser un ottant. Par exemple son nom, qui est le texte qui appara t juste avant son num ro. Les haA bitudes li es la programmation avec L TEX veulent que les noms des deux types de ottants habituels soient d clar s dans des variables : figurename et tablename pour qu'un package comme babel puisse les red nir en fonction de la langue. Le jour o je pr voirai la d claration de tout un tas de ottants standard dans le package ESIEE44 je pr voirai aussi la traduction de leurs titres par babel, mais pour l'instant l n'est pas la question. Une autre caract ristique d'un ottant est son placement par d faut. En e et, A L TEX pr voit que l'on puisse ventuellement indiquer les positions possibles pour un ottant t, b, p ou h. Et puis, si on ne sp ci e rien, il faut bien qu'il prenne une valeur par d faut. C'est elle qui caract rise le ottant. Entrons maintenant dans les syntaxes o ertes par ce package :
newfloat type placement ext compt floatstyle style

floatplacement type restylefloat type listof type Titre

placement

Dans la description ci-dessus on a : type le nouveau type de ottant. Les types standard sont table et figure. style l'un des trois styles enum r s ci-avant. placement une r gle de placement telle qu'on a le droit de la sp ci er dans l'option de d claration d'un ottant. nom le nom qui devra tre pris par ce type de ottant. ext l'extension du chier qui sera utilis pour r aliser la liste correspondant ton nouveau type de ottants. Pour les ottants habituels, c'est lof pour les gures et lot pour les tableaux. compt le nom d'un compteur. Expliquons un peu les syntaxes, maintenant, et les habitudes d'utilisation. La premi re commande sert d clarer un nouveau type de ottant type en lui attribuant une r gle de placement par d faut placement. Le chier utilis pour dresser la liste de ces ottants se terminera par l'extension ext, de plus le compteur de ces ottants sera remis z ro chaque fois que le compteur compt sera incr ment . Par exemple :
newfloat prog tph lop section

44 Tr s bient t

floatname type

nom

Attention cette commande ne peut appara tre qu'avant le begin document . Le nouveau type de ottant aura comme style le style courant. Pour qu'il en aille autrement, il faut changer le style courant, l aussi dans le pr ambule. a marche un peu comme la d nition de nouveaux th or mes, qui, elle, est expliqu e la section sur le package theorem section 27.6 page 76. La commande pour changer de style courant est la deuxi me, savoir floatstyle. On pr cise le nom d'un type de ottant par un floatname judicieusement appel . De m me on peut changer en cours de document les r gles de placement par d faut d'un type de ottant. Ne reste plus qu' pouvoir dresser la liste des ottants d'un type donn , c'est le r le de listof. En n, la moins utile des commandes de ce package est restylefloat qui permet de changer le style des ottants standard. Cela ne peut se faire que dans le m me contexte que la cr ation de ottants, c'est dire dans le pr ambule et sous l'in uence de floatstyle. Derni re nouveaut , la r gle de placement suppl mentaire. Une nouvelle r gle de placement est introduite par ce package, il s'agit de H, oui, un h majuscule. Si tu t'en souviens encore, le h indiquait

57

A L TEX qu'il devait essayer autant que possible de placer le ottant l'endroit m me o celui-ci apparaissait, mais que s'il y arrivait pas il pouvait le d placer. Avec H on lui impose de le mettre strictement et obligatoirement l o il est apparu. M me si a doit faire une mise en page toute moche. Mais alors, quel est l'int r t d'avoir des ottants? Simplement que ton truc tableau, image, gure: : :  soit r f renc dans la liste avec ses copains et qu'il soit num rot comme eux et qu'il soit mis en page  lets, cadres: : :  comme eux.

feldt 109 ne fournit pas de commande, et que ses options de chargement seules sont int ressantes. On peut sp ci er quatre sortes d'options : 1 Les options de taille. Elles permettent de sp ci er la taille du texte dans les caption. Les options reconnues sont :
scriptsize footnotesize small normalsize large Large

24.4 Flottants en landscape : rotating

et

Un probl me fr quent dans un rapport est de faire tenir un tableau un poil trop large dans une page. Face de tels probl mes, tu n'as que deux solutions. Soit tu cris ton tableau en fonte microscopique, et a fait tr s moche dans ton rapport, soit tu es tr s fort, et tu joues pendant une heure ou deux essayer de faire tenir ton tableau l'aide de la commande rotatebox. Dans un cas comme dans l'autre, c'est pas fabuleux. Pour r soudre ce di cile probl me, Leonor Barroca nous a crit expr s pour nous le package rotating 6 . Ce package pr voit deux nouveaux types de ottants, les sidewaysfigure et les sidewaystable. Ces deux type de ottants seront mis en landscape dans un document en mode portrait. De plus, leur titre sera, lui aussi, mis en landscape. En n, ils seront recens s, num rot s, et list s dans les diverses tables, comme les ottants traditionnels figure et table. Il est noter que les ottants produits par ces deux environnements seront mis sur des pages enA ti res. En e et, il n'est pas trop surprenant que L TEX refuse de m langer des bouts de page en mode portrait avec d'autres bouts en mode landscape. Par contre, on aurait pu souhaiter que deux petits ottants en mode landscape puissent se retrouver sur la m me page. Et bien ce n'est pas le cas. Dans la pratique, c'est assez peu g nant puisque l'on a rarement des tableaux tr s larges trop pour une page et tr s peu long su sament peu pour que l'on puisse mettre deux ottants, titre y-compris, dans une m me page. Cette restriction n'est donc pas dramatique.

2 Les options de style. Elles permettent de choisir quelle fonte doit tre utilis e pour taper le nom du type de ottant Tableau, Figure: : : . Les valeurs admises sont : up, it, sl, sc, md, bf, rm, sf, et tt. 3 Les options de mise en page. Elles sp ci ent comment doit tre tap le texte du caption. Fait comme d'habitude hang Pr voit une indentation, c'est dire que si le texte est sur plusieurs lignes, alors la premi re sera normale, et les suivantes seront indent es de la largeur du nom du type de ottant, on aura donc un r sultat similaire ce que l'on obtient dans les listes comme celle-ci. isu Identique la pr c dente. center Toutes les lignes sont centr es. centerlast Toutes les lignes sont justi es sauf la derni re qui est centr e.
normal

4 L'option ruled n cessaire pour que ce package fonctionne convenablement avec le package float quand on choisit le style ruled. Dans ce cas l , seules la taille et la fonte seront prises en compte. Le seul truc autre qui peut tre franchement utile retenir est le fait qu'il existe une longueur captionmargin qui permet d'imposer le rajout d'une marge droite et gauche du texte. a fait 24.5 Les titres des ottants : caption parfois joli. a s'utilise comme toutes les longueurs : La seule chose que tu ne saches pas encore param trer dans les ottants, ce sont leurs titres. Tu as setlength captionmargin 2cm la possibilit de choisir le texte, mais pas sa mise en page. Ben d s que tu auras lu les lignes qui suivent Ce document a t tap avec dans son pr ambule tu sauras. la ligne suivante : Pour le n ophyte que tu es on peut consid rer que ce package, crit et o ert par Harald Axel Sommer- usepackage normalsize,normal,sc caption L'id e de ce package, crit par Thomas Kneser 56 est tout fait simple. G n ralement, une gure ne prend pas toute la largeur de la page, et c'est dommage de g cher du papier qui co te si cher et que le blanc 58

24.6 D coupages rigolos : floatfig

en grande quantit a fait pas toujours tr s joli dans un livre s rieux. Dans un rapport de stage a rallonge, mais il y a des cas o c'est trop encombrant. Ce genre d'exploit, savoir fondre une gure dans le texte tait autrefois r serv aux traitements de texte wysiwyg qui, se souciant peu des exigences typographiques rigides, pouvaient e ectuer ce genre de placement assez simplement. L'algorithme impl ment est e cace, pr voit beaucoup de cas d'exceptions qui sont indiqu s la compilation par des erreurs et des warnings. Donc recommander. C'est une chose assez jolie, mais peu recommandable en deux colonnes, c'est pour cela que je l'ai utilis en une colonne. La documentation de ce package sp ci e clairement qu'il ne doit pas tre utilis avec l'option twocolumn mais Figure 3: il ne dit rien au sujet de multicols. En fait, il y a con it entre floatfig et multicol pour des raisons b tes et simples : l'un cr e des ottants floatfig tandis que l'autre ne les g re pas encore compl tement. En e et, les seuls ottants tol r s par multicol sont les notes de pied de page et les ottants occupant toute la largeur de la page. A A De plus ce package est pr vu pour L TEX2.09 et n'a visiblement pas t r adapt L TEX2" . Donc, n'utiliser que pour du texte sur une colonne. Le principe est simple : juste apr s le pr ambule on initialise le package :
begin document initfloatingfigs

et ensuite, n'importe o entre deux paragraphes, on ins re :


begin floatingfigure Dessin caption titre end floatingfigure 12cm

et a marche tr s bien. Lorsque ce type de ottants est utilis dans multicols, alors il am ne des e ets bizzares. Par exemple, le fait que l'indentation des paragraphes destin e laisser de la place la gure est syst matique et irr versible, ou dure trop longtemps, ou se r percute sporadiquement jusqu' la n de l'environnement. C'est f cheux. De plus si une de ces gures tait incluse dans le multicols lui m me le r sultat serait en premier lieu de faire hurler le compilateur, mais cela n'est pas dramatique, en second lieu de faire commencer l'indentation l o la gure commence et de la faire se poursuivre jusqu' la n du multicols, et, en n, multicols ne g rant pas les ottants, si la gure commence trop bas dans la colonne, elle d passera en bas de la page. Bref, rien que des b tises. Donc jusqu' nouvel ordre, une gure incluse par ce moyen doit tre enti rement noy e dans du texte sur une seule et unique colonne. C'est ton devoir d'y veiller. Fais attention aux plaintes du compilateur, elles sont toujours justi es sur ce genre de probl me. Peut- tre qu'un jour multicol g rera les ottants, et alors aura-t-on droit des choses magni ques, mais pas pour aujourd'hui de toutes fa ons. Tu as tudi tout l'heure la possibilit de mettre une gure dans un paragraphe. Tu as lu, puisque je l'ai crit, que le package qui faisait a tait un A A poil vieux il date de L TEX2.09. Ben, en fait, une version sp ciale L TEX2" t crite par Thomas Kneser et Mats Dahlgren 57 , elle s'appelle flotflt. Ce paragraphe un peu long et totallement inutile sers juste remplir la page pour viter la gure de venir s'a cher sur le verbatim qui arrive juste apr s. En e et, l'environnement verbatim tant extr mement rudimentaire il Figure 4: il supprime toutes ses fonctionnalit s TeX, il n'est pas pris en compte dans la majorit des traitements de la mise en page. Par exemple, ici, le texte mis en verbatim ne peut pas tre d cal sur le c t pour faire de la palce une gue. Ce n'est pas un cas dramatique puisque dans la majorit des rapport et documents que tu pourrais tre amen utiliser, tu ne feras normalement pas appel A verbatim dont l'utilit la plus agrante est permettre de montrer directement du code source L TEX. Tout d'abord, un rappel de syntaxe :
begin floatingfigure La figure... end floatingfigure option largeur

24.7 D coupages rigolos, version tendue : floatflt

Notons les options possibles : 59

La gure sera plac e du c t gauche du paragraphe. r Idem mais droite. p Selon la page. Sur les pages impaires pages de droite la gure devra appara tre droite ; et sur les paires pages de gauche la gure devra appara tre gauche. De cette mani re, elle sera toujours l' ext rieur du paragraphe, et jamais dans la pliure. v La gure sera plac e selon l'option pr cis e lors du chargement du package. C'est de plus la valeur prise par d faut. Puisqu'il y a des options au chargement du package, regardons les : rflt Les ottants  gures ou tableaux positionn s avec l'option v appara tront droite de leurs paragraphes respectifs. lflt Idem, mais droite. vflt C'est l'option prise par d faut, qui dit que les ottants positionn s avec l'option v seront consid r s comme positionn s avec l'option p. Voyons maintenant le nouvel environnement, celui qui permet d'utiliser les tableaux :
l
begin floatingtable begin tabular ... ... end tabular caption Si on veut... end floatingtable option

Note bien que le tableau est pass comme un argument au begin floatingtable . Les options sont les m mes que pr c demment. Notons en n que ce package est cens 45 tre compatible avec multicol ce qui est un immense atout. A Toutefois il est pr cis dans la doc originale, mais a rel ve du simple bon sens, que si on veut que L TEX s'en sorte pas trop mal, il faut que le ottant soit troit : en multicolonnage, les lignes sont d j pas longues, alors A si en plus on rajoute un ottant elles deviennent franchement ridicules. Et puis L TEX il aime pas manipuler des colonnes franchement ridicules. En n, il te faudra retenir le fait qu'il n'est plus utile, lorsque l'on utilise ce package de faire appel la A commande initfloatingfigs en tout d but de document puisque L TEX2" pr voit une syntaxe sp ciale pour automatiser ce genre d'appel.

24.8 Le package window


Le package window, de Elmar Schal ck 105 , permet d'ins rer une gure quelconque dans un paraA graphe. Ce package a t crit pour L TEX 2.09, et A fonctionne encore pas mal du tout pour L TEX2" . Toutefois, certaines restrictions sont noter. En particulier pour ce qui est des incompatibilit s avec les autres packages ou avec l'environnement multicols. Comme d'habitude des con its ont t s d tect s avec le package babel46, en particulier, window fait appel au caract re : qui est red ni par ailleurs par babel. Donc, si window est lu avant babel, alors il fonctionne, mais attend le : normal, alors que s'il est lu apr s il attend le : modi par babel. D'o la conclusion suivante : si window est lu avant babel, il doit tre utilis dans une langue ne modiant pas le :, c'est dire peu pr s n'importe laquelle sauf le fran ais. Si par contre window est lu

45 Mon exp rience en la mati re tendrait plut t prouver que non, puisque dans la pr sente doc, j'ai d supprimer le multicolonnage pour faire marcher ce package. Ceci dit, les probl mes que j'ai rencontr s sont probablement li s au fait que j'utilise la nouvelle et l'ancienne version dans le m me document, ce qui est tout fait d conseill . 46 En e et, la version de babel qui tait install e l'ESIEE jusqu'au d but septembre 1995 comportait un bug tr s s rieux sur la gestion des caract res sp ciaux tels que le deux-points en fran ais.

alors que babel l'a d j t et qu'il est sorti con gur en fran ais c'est dire que le fran ais est la derni re des options qu'il ait re u alors ce sont les d nitions particuli res qui seront attendues. Pour ce qui est de l'incompatibilit avec le package multicol, il su t de savoir que le paragraphe dans lequel on inclut l'image est monobloc et ne peut tre divis sur deux colonnes par multicol. Il faudra donc veiller ce que ce paragraphe soit assez long pour contenir l'image, mais pas trop, pour ne pas trop fortement p naliser la mise en page. Le principe de la commande windowbox est assez simple. Cette commande prends trois options, toutes entre crochets  tonnant et inhabituel qui sp cient, dans cet ordre : le nombre de lignes laisser avant de faire appara tre le dessin, le dessin faire appara tre, et le ratio de centrage. Le formalisme respecter est tr s strict, la premi re option doit tre de la forme toplines :

60

n , la seconde inwindow : image , et la troi- marque de renvoi en note de n de documents. Par si me ratio : n1 n2 . Deux points semblent exemple, pour faire deux appels la m me note. Par

bons pr ciser. Tout d'abord le fait que si des crochets apparaissent dans l'image, alors il semble n cessaire de mettre celle-ci entre accolade ; ensuite, les deux nombres du ratio indiquent la proportion de place laisser droite et gauche de la gure. Par exemple, un ratio 0 1 placera l'image gauche du texte, 1 1 au centre et 1 0 droite. Toutes sortes de variations semblent possibles ! A titre d'exemple, la fa on dont a t tap le paragraphe pr c dent :
windowbox toplines: 3 inwindow: includegraphics width=1cm eye.ps ratio: 1 1 Le principe de la commande ... 

exemple, ici2, j'ai r -ins r un appel ma deuxi me note d'exemple de tout l'heure. Pour ce faire, j'ai fait appel
endnotemark 2

Facile, non?

24.9 Le package endnotes

A L TEX 2.09 qui permet de g rer les notes de n de document. Ce package fournit en gros trois commandes utiles l'utilisateur de base. La commande endnote qui fonctionne comme footnote permet de cr er une note en n de document, par exemple1 ici. La commande theendnotes indique o doivent appara tre les commandes pas forc ment tout la n du document et la commande addtoendnotes permet d'ajouter du texte aux notes comme addtocontents permet d'ajouter du texte dans une table des mati res. Un petit exemple :

Ce package, que nous devons Dominik Wujastyk et John Lavagnino 118 est un vieux reste de

Ceci dit, a marche plus par hasard que pour toute autre raison. On pourra aussi relever que le texte Notes au d but de la liste des notes est produit automatiquement par ce package et qu'il ne change pas selon la langue utilis e. a peut tre g nant, par exemple, pour un document en allemand. De m me, d'autres commandes existent, mais je ne souhaite pas les documenter ici, leur usage n' tant pas toujours sans risque. Attention: il y a con it entre ce package et le suivant fn2end puisque les deux font appel la commande theendnotes, mais normalement je suis le seul assez d bile pour vouloir les appeler tous les deux en m me temps vu qu'ils font la m me chose.

Ce package fort int ressant que nous devons K.C. Border 8 permet de transformer les notes de pieds de page d'un document en notes de n de document. Ce package fournit trois commandes int ressantes pour l'utilisateur. La plus vidente est theendnotes qui fait appara tre les notes en attente. Ainsi, on peut faire appara tre les notes en n de chapitre en faisant appel cette commande la n de chaque chapitre. Les deux autres commandes permettent de basculer entre les modes notes de pied de page et addtoendnotes Ce texte `a 'et 'e ajout 'e notes en n de document sont makeendnotes et artificiellement aux notes en fin de document produites par le package texttt endnotes . restorefootnotes. Donc les trois notes47 de pied de page48 qu con2 les notes de n de docuPour faire appara tre tient cette phrase49 devraient se retrouver un petit ment ici, je vais utiliser : peu plus loin.
theendnotes

24.10 Le package fn2end

Et a donne a :

Notes

Cette note inutile sers d'exemple au package endnotes. l Ce texte t ajout arti ciellement aux notes en n de Attention il y a con it entre ce package et le pr document produites par le package endnotes. 2 Ceci est un deuxi me exemple de note en n de document c dent endnotes puisque tous les deux d nissent g r e par le package endnotes la commande theendnotes. Normalement c'est pas
1

Notes

47 Ceci est une note. 48 Justement pas, puisque j'utilise le package 49 Il m'en fallait une troisi me, alors je l'ai mise

Pour une utilisation un peut plus avanc e, g nant, je devrais tre le seul type assez idiot pour quelques autres commandes sont accessibles, en par- charger deux packages di rents qui font la m me ticulier endnotemark qui permet de positionner une chose.

61

A 25 Tableaux avec LTEX 2"


Comme tu l'auras devin , lorsque j' voque les taCe gigantesque et magni que package nous est ofbleaux dans la section 15.3 page 25, je suis un petit fert par deux grand noms : Frank Mittelbach et David peu succint. Voire, carr ment bref. Carlisle 79 . Il y a trois d tails qui font partie du noyau de base Tout d'abord de nouvelles options pour les desA de L TEX et que je passe sous silence. criptions de colonnes. J'ai bien dit nouvelles, les anciennes demeurent inchang es. La premi re, m largeur permet d'obtenir une colonne de largeur 25.1.1 Le multicolonnage donn e, tout comme p ... mais le contenu centre La commande multicolumn permet d' crire une verticalement sur la ligne. b largeur fait pareil en case sur plusieurs colonnes, par exemple : pla ant le texte en bas de la ligne. Pour ins rer syst matiquement un texte au d but begin tabular |l|c|c| hline ou la n d'une colonne, deux options ont t pr & multicolumn 2 c| Ventes vues : declaration et declaration . & 1993 & 1994 hline De plus la barre verticale | sert toujours la Chaussures & 850 & 737 hline m me chose, mais en venant ajouter son paisseur Tables & 18 & 25 hline l'espacement entre les colonnes, ce qui est plus joli. Chaises & 175 & 127 hline Dans le m me esprit, pour les fous qui se souviennent Manteaux & 2 & 175 hline de @ ... il y a maintenant ! ... qui a le bon go t end tabular de laisser les espaces d'origine et de rajouter ce que tu souhaites rajouter. C'est un peu moins casse gueule. produira : Un joli exemple vaut mieux qu'un long discours. Ventes Le source ci-apr s produira le tableau 56 page 64. 1993 1994 Chaussures 850 737 begin center Tables 18 25 begin tabular Chaises 175 127 | raggedright p 1in Manteaux 2 175 | raggedleft p 1in Pour la red nition des colonnes, le truc utile retenir c'est que le s parateur qui se trouve APR S | centering p 1in une colonne lui appartient, et que celui qui est avant |  raggedright p 1in  revient la pr c dente. La seule exception tant bien |l|! texte |l| hline videmment la premi re colonne.

25.1 Quelques pr cisions

25.2 Le package array

25.1.2 Les lets horizontaux

Le trac de lets horizontaux partiels est possible en rempla ant le hline par un  ou plusieurs  cline comme column line.
begin tabular |l|c|c| cline 2-3 multicolumn 1 l| & multicolumn 2 c| Ventes multicolumn 1 l| & 1993 & 1994 hline Chaussures & 850 & 737 hline Tables & 18 & 25 hline Chaises & 175 & 127 hline Manteaux & 2 & 175 hline end tabular

produira :

Ventes 1993 1994 Chaussures 850 737 Tables 18 25 Chaises 175 127 Manteaux 2 175

 Paragraphe court. & Paragraphe nettement plus long que le pr 'ec 'edent se trouvant dans la seconde colonne. &  Paragraphe excessivement long puisqu' 'etudi 'e pour cr 'eer une ligne tout `a fait haute dans un tableau pour bien mesurer l'effet de certaines commandes.& Colonne rigolote. & Un & Deux hline end tabular  begin tabular | raggedright m 1in | raggedleft m 1in | centering m 1in |  raggedright m 1in  |l|! texte |l| Paragr... hline end tabular

62

 begin tabular | raggedright b 1in | raggedleft b 1in | centering b 1in |  raggedright b 1in |l|! texte |l| Paragr... hline  end tabular end center

que, comme d'habitude, si tu souhaites un d limiteur d'un seul c t , il te faudra, bien entendu, mettre un point comme d limiteur de l'autre c t . Deux petits exemples pour bien comprendre :
 $ displaystyle begin array cc a & b c & d end array quad hbox et begin array rl . fx & = xx+1 & = x^2+x end array $

quad

D'autres possibilit s nouvelles sont o ertes, comb f x = xx + 1 me, par exemple, celle d'ajouter syst matiquement produiront a d et c = x2 + x une longueur donn e entre deux lignes d'un tableau. Toi qui es un grand connaisseur, tu n'ignores pas Cette longueur s'appelle extrarowheight et se rel'option de l'environnement array, aussi tu te soud nit comme toute longueur avec : viens de petites choses comme 0 1 0 1 setlength extrarowheight longueur 0 1 1B 1 C B C En n, une commande nouvelle permet de d nir B 1 C@ 2 AB 2 C B C des types de colonne pour viter de se r p ter trop B2C 3 B3C B C @ A @ A souvent quand on commence avoir ses petites habitudes : 3 qu'on obtenait en tapant newcolumntype A m 3cm permet de d clarer l'en-t te du tableau donn en exemple de mani re plus simple. On peut m me faire du param trique assez facilement :
newcolumntype a 1 m 1 left begin array t c 2 3 end array right left begin array c c 1 2 3 end array right left begin array b c 1 2 3 end array right 1

o dans le maxi.

tu placeras le nombre de param tre 9 Et bien maintenant on obtient0

25.3 Le package delarray

Ce package, crit par David Carlisle 22 n cessite l'emploi du package array, aussi se charge-t-il de le en tapant lire lui-m me si tu ne l'as pas fait. Il su t donc de sp ci er begin array
usepackage delarray
begin array begin array

1 0 1 1@ 1 A 0 1 1@ 2 A 2 3 @2A 3
3
t  c  1 c  c  1 b  c  1 2 2 2 3 3 3 end array end array end array

pour que les deux soient charg s. Ce package vient red nir l'environnement des tace qui bleaux en mode maths, savoir array. Il ne corrige l'ancienne est plus joli mais n'emp che pas de garder mani re. pas tabular. Il permet de mettre automatiquement des d limiteurs autour d'un tableau, ce qui est un gain de temps pour l' criture des matrices, par exemple. 25.4 Le package dcolumn Un petit exemple vaut mieux qu'un long discours : Ce package, encore un, nous est o ert par David Carlisle 21 . $ displaystyle L encore, il est n cessaire de pr charger array begin array  cc  pour utiliser ce package, mais il s'en charge tout seul a & b comme un grand, si tu oublies. c & d Ce package relativement simpliste vient cr er un end array $ A type de colonne encore manquant sous L TEX qui est a b celui des colonnes align es sur le point d cimal, et produira c d comme M. Carlisle l'auteur est tr s gentil, il a pens Pense toutefois bien que tu peux ne pas mettre de aux petits fran ais qui utilisent une virgule. La syntaxe est la suivante : d limiteur pour r obtenir la m me chose qu'avant et 63

Paragraphe court.

Paragraphe court.

Paragraphe court.

Paragraphe Paragraphe nettement plus excessivement long que le long pr c dent se puisqu' tudi trouvant dans la pour cr er une seconde colonne. ligne tout fait haute dans un tableau pour bien mesurer l'e et de certaines commandes. Paragraphe excessivement long Paragraphe puisqu' tudi nettement plus pour cr er une long que le ligne tout fait pr c dent se haute dans un trouvant dans la tableau pour seconde colonne. bien mesurer l'e et de certaines commandes. Paragraphe excessivement long puisqu' tudi pour cr er une ligne tout fait Paragraphe haute dans un nettement plus tableau pour long que le bien mesurer l'e et de pr c dent se certaines trouvant dans la seconde colonne. commandes.

Colonne rigolote.

Un texte Deux

Colonne rigolote.

Un texte Deux

Colonne rigolote.

Un texte Deux

Tableau 56: Exemple de tableau avec array

64

begin tabular

|D .

2 |

d clare que le s parateur recherch est le ., qu'il est remplac pas une virgule dans la sortie et que l'on ne s'autorise que deux chi res derri res la virgule. Si on A met -1 chi res derri re la virgule, L TEX2" cherchera ajuster la colonne tout seul, mais ce sera moins joli, comme le montrent les deux exemples ci-dessous, le premier avec l'en-t te ci-avant et le second pareil mais avec -1 au lieu de 2. 12345678901;1 ;12 1;1 12 begin center 125;2589 begin tabularx linewidth |l|X|l|X| 12345678901;1 hline ;12 multicolumn 2 |c| Sur deux & 3 & 1;1 Un texte `a largeur variable hline 12 1 & Un autre texte `a largeur 125;2589 non-pr 'evisible & 3 & Toujours pas Si l'on reprend le premier en respectant les 2 d - facile `a pr 'edire hline cimales indiqu es, voici le r sultat : 1 & Plus court & 3 & Un roman fleuve 12345678901;1 pour faire paniquer un peu LaTeXe ;12 au niveau des calculs de largeurs de 1;1 colonnes, faut qu'il en chie un max. 12 hline 125;25 end tabularx Comme quoi il est absolument n cessaire de res- end center pecter ce qui est dit pour obtenir un bon r sultat. Il avait comme largeur impos e la largeur de la Ce package est particuli rement utile pour mettre ligne, ie linewidth. Mettons seulement les troisen page des tableaux de r sultats g n r s par des pro- quarts de cette largeur. grammes, car on peut dans ce cas xer facilement le Sur deux 3 Un texte nombre de d cimales. largeur Tu pourra t'amuser red nir, par exemple : variable 1 Un autre 3 Toujours newcolumntype , D , , 2 texte pas facile largeur nonpr dire pr visible 1 Plus court 3 Un roman 25.5 Le package tabularx euve pour Ce superbe package nous est o ert, encore une faire panifois, par David Carlisle 29 . quer un peut A L TEX2" au Pour comprendre de quoi il retourne, il faut se niveau des souvenir de l'environnement tabular* te l'avais-je calculs de d crit? qui permet d'ajuster la largeur d'un tableau largeurs de en ajustant l'espace entre les colonnes : colonnes, faut qu'il en begin tabular* 250pt ... chie un max. Pour sa part, ce package viendra r gler la largeur Tu constat de certaines colonnes en fonction de la taille du ta- de la mauraslargeur. que toutes les colonnes X sont me bleau souviens toi des exemples que je donnais dans Quelques d tails pour que saches vraiment ma doc sur les tableaux. Ces colonnes sont d nies tout. En interne, toute colonne Xtuest transform e en sous le nom X. En fait, en interne, toute colonne X colonne p par une macro dont le d nition est sera remplac e par une colonne p l o l est une longueur qui sera ajust e selon les besoins. C'est bien newcommand tabularxcolumn 1 p 1 pratique. De plus, on peut continuer utiliser les en- tu pourras ais ment, pour les besoins de la cause retr es sur plusieurs colonnes. Une petit exemple rapide d nir cette commande selon ton bon vouloir, par pour bien comprendre. exemple 65

3 Un texte largeur variable 1 Un autre texte 3 Toujours pas facile largeur nonpr dire pr visible 1 Plus court 3 Un roman euve pour faire paniquer A un peu L TEX2" au niveau des calculs de largeurs de colonnes, faut qu'il en chie un max. A t produit par :

Sur deux

renewcommand tabularxcolumn small m 1

1 

E begin tabular ||c|c|c||c|c|c|| hhline t:===:t:===:t 1 & 2 & 3 & 4 & 5 & 6 hhline ===||=== 1 & 2 & 3 & 4 & 5 & 6 hhline b:===:b:===:b end tabular F

25.6 Le package hhline

C'est un package assez complet et complexe qui nous est o ert, pour changer, par David Carlisle 24 . Ce machin est assez imbitable et m'a l'air relativement a reux utiliser, bien qu'il soit tr s complet et visiblement tr s puissant dans sa gestion. Il vient Alors on remplacer le traditionnel hline par un hhline obtient unque si plus se plante entre les : et les | on truc rigolo beaucoup plus di cile utiliser mais o rant des pos1 2 3 4 5 6 sibilit s immenses. Il reste donc en comprendre la syntaxe. Il prend un param tre qui n'est pas sans rap1 2 3 4 5 6 peler celui des environnements type tabular. avec comme code source Tout d'abord les truc compr hensibles : = correspond une ligne double, - une ligne simple et ~ E pas de ligne du tout. Pour ce qui est du vertical, | indique que la ligne verticale coupe la ligne horizon- begin tabular ||c|c|c||c|c|c|| tale ie ===||=== indique six colonnes, une s para- hhline :t|===|t|===|t: tion entre la ligne avant et la ligne apr s par un trait 1 & 2 & 3 & 4 & 5 & 6 double et que le trait double qui s pare les colonnes hhline ===||=== 3 et 4 vient interrompre le double trait de s paration 1 & 2 & 3 & 4 & 5 & 6 des lignes. Pas clair? Comment a pas clair? Bon, un hhline |b:===|b|===:b| petit dessin pour te faire plaisir : end tabular F 1 2 3 4 5 6 L o a devient carr ment immonde, c'est que 1 2 3 4 5 6 le : en fran ais il a une d nition sp ciale, c'est qui s'obtient partir de : plus un caract re normal pour des histoires d'espabegin tabular ||c|c|c||c|c|c|| hline cements respecter alors il faut repasser en anglais 1 & 2 & 3 & 4 & 5 & 6 ou toute autre langue n'utilisant pas le : pour un but particulier avant tout tableau contenant un hhline hhline ===||=== utilisant le :. J'ai d nit deux macros cet e et, E 1 & 2 & 3 & 4 & 5 & 6 hline pour passer en anglais et F pour revenir au franend tabular ais. Joli non? Bon, en fait, pas tant que a, parce Le : indique le contraire, savoir que c'est le que j'ai m me t oblig de jouer avec les codes de double trait horizontal qui est interrompu par le cat gories de certains caract res pour contourner une double trait vertical, comme dans l'exemple ci-apr s. m sentente entre babel et hhline mes deux macros E et F sont donc les suivantes : 1 2 3 4 5 6 def E selectlanguage english catcode`:=12 1 2 3 4 5 6 def F catcode`:=13 selectlanguage francais dont voici le source Bon, continuons la torture. Il reste un symbole E voir, c'est le  qui indique que les lignes se croisent compl tement. En n, pour simpli er sic l' criture, begin tabular ||c|c|c||c|c|c|| hline il existe l aussi la commande * qui permet de r p ter 1 & 2 & 3 & 4 & 5 & 6 un certains nombre de fois un motif ainsi * 3 == hhline ===::=== donnera ======. a peut tre pratique. 1 & 2 & 3 & 4 & 5 & 6 hline Je te re le l'exemple qui est dans la doc origiend tabular F nale et te renvoie elle si t'as un p pin. M'en n, On complique un peu la sauce. Quand on fait une t:|=~=-::=-b:=, c'est tout fait compr hensible. premi re ligne, il faut que le double trait soit moi- C'est des gros mots dans une BD. ti coup , ou plus exactement que le trait du bas soit E coup et que le trait du haut reste intacte. Haut c'est top en anglais, alors pour ce cas de gure, begin tabular ||cc||c|c|| c'est t. Pour le cas oppos , savoir le bas du tableau, hhline |t:==:t:==:t| c'est b. Comme dans l'exemple ci-apr s : a&b&c&d 1 2 3 4 5 6 hhline |:==:|~|~|| 1 2 3 4 5 6 1&2&3&4 hhline ==~|= obtenu avec 66

i&j&k&l hhline ||--||--|| w&x&y&z hhline |b:==:b:==:b| end tabular F

tablefirsthead ... tablehead ... tabletail ... tablelasttail ...

a b c d 1 2 3 4 i j k l w x y z Bon, ben j'ai pas tout compris ce que j'ai expliqu et je trouve a tr s immonde, mais a l'air puissant et pas souple du tout. Ce n'est pas sans rapeler certaines syntaxes unix, genre awk. Visiblement, David Carlisle l'auteur c'est pas un pro du plug-and-play.

A retenir : Le bas de chaque tail doit contenir son


hline

Le haut de chaque tail ne doit PAS contenir son hline : il viendra du tableau. Si y en a pas dans le tableau l'endroit de la coupure, t'es dans la mouise. Le haut de chaque head doit contenir son
hline

25.7 Gros tableaux: supertab

Le bas de chaque head doit contenir son hline, vu que celui entre les deux lignes du Ceci n'est pas proprement parler un package de tableau a servi pour le bas de la partie pr c A A L TEX2" , c'est en fait un beau reste de L TEX2.09, dente. crit par un illustre inconnu qui n'a pas donn son nom 1 . L'id e est la m me que celle du suivant Tout head doit se nir par le parce que longtable mais un peu moins subtile, et donc un sinon, l'en-t te est pas sur une pleine ligne. peu plus stable. La magouille de base pour mettre un tableau sur Tu peux consid rer que chaque sous tableau est plusieurs pages est de le couper la main. C'est pas construit comme suit : cool, il faut le refaire d s qu'on change le texte avant 8 table rsthead ben oui, a d cale tout vers le haut ou vers le bas. La deuxi me ruse de sioux, d j plus volu e, c'est Premi re partie : corps coup n'importe o de pr voir de terminer le tableau et le recommencer tabletail entre chaque ligne :
end tabular begin tabular |p 5cm |p 5cm | begin tabular |p 5cm |p 5cm | hline Titre 1 & Titre 2 hline Ligne 1 & Ligne 1 A hline Ligne 2 & Ligne 2 A hline Ligne 3 & Ligne 3 hline end tabular def A

Enni me partie

8 tablehead 8 tablehead

: corps coup n'importe o tabletail : corps coup n'importe o tablelasttail

Derni re partie

Mais, primo, c'est tr s lourd, deusio, a remet pas l'en-t te du tableau Titre 1 & Titre 2 en d but de page suivante. En plus, a serait chouette que a dise suivre: : :  en bas de la premi re partie du tableau. Il faudra donc pr voir que A d tecte les changements de page et agisse en fonction. a nit par faire une macro assez norme qu'on peut tout fait appeler pour retrouver une criture traditionnelle. C'est l le principe de fonctionnement de supertab. On xe l'en-t te de la premi re partie et de chaque suivante, ainsi que le bas de la derni re partie et de chaque pr c dente. Ensuite l'environnement supertabular viendra red nir pour fonctionner. Quelques commandes : En n, et pour conclure, un petit exemple :

Quelques remarques : le titre du tableau produit avec caption est lui aussi r glable : soit en haut avant la premi re partie, soit en bas apr s la derni re partie. Tu as la possibilit d'utiliser l'environnement supertabular* qui fonctionne comme tabular*, c'est dire en espa ant les colonnes. Si je suis courageux, il y aura un jour un supertabularx, qui permettra d'utiliser le type de colonne X qui est tout de m me joli tout plein. Comme ce package fait violemment appel tabular qui est red ni dans le package array, toutes les nouveaut s sont utilisables.

bottomcaption Titre du bas tablefirsthead hline Titre 1 & Titre 2 & Titre 3 tablehead hline multicolumn 3 |c| Suite$ ldots$ hline

hline

67

Titre 1 & Titre 2 & Titre 3 tabletail hline multicolumn 3 |c| tablelasttail hline begin supertabular |c|c|c| Ligne 0 & ligne 0 & ligne 0 hline Ligne 1 & ligne 1 & ligne 1 hline Ligne 2 & ligne 2 & ligne 2 hline ... Ligne 50 & ligne 50 & ligne 50 end supertabular

A suivre$ ldots$

hline

Titre 1 Ligne 0 Ligne 1 Ligne 2 Ligne 3 Ligne 4 Ligne 5 Ligne 6 Ligne 7 Ligne 8 Ligne 9 Ligne 10 Ligne 11 Ligne 12 Ligne 13 Ligne 14 Ligne 15 Ligne 16 Ligne 17 Ligne 18 Ligne 19 Ligne 20 Ligne 21 Ligne 22 Ligne 23 Ligne 24 Ligne 25 Ligne 26 Ligne 27 Ligne 28 Ligne 29 Ligne 30 Ligne 31 Ligne 32 Ligne 33 Ligne 34 Ligne 35 Ligne 36 Ligne 37 Ligne 38 Ligne 39 Ligne 40 Ligne 41 Ligne 42 Ligne 43

Titre 2 ligne 0 ligne 1 ligne 2 ligne 3 ligne 4 ligne 5 ligne 6 ligne 7 ligne 8 ligne 9 ligne 10 ligne 11 ligne 12 ligne 13 ligne 14 ligne 15 ligne 16 ligne 17 ligne 18 ligne 19 ligne 20 ligne 21 ligne 22 ligne 23 ligne 24 ligne 25 ligne 26 ligne 27 ligne 28 ligne 29 ligne 30 ligne 31 ligne 32 ligne 33 ligne 34 ligne 35 ligne 36 ligne 37 ligne 38 ligne 39 ligne 40 ligne 41 ligne 42 ligne 43 A suivre: : :

Titre 3 ligne 0 ligne 1 ligne 2 ligne 3 ligne 4 ligne 5 ligne 6 ligne 7 ligne 8 ligne 9 ligne 10 ligne 11 ligne 12 ligne 13 ligne 14 ligne 15 ligne 16 ligne 17 ligne 18 ligne 19 ligne 20 ligne 21 ligne 22 ligne 23 ligne 24 ligne 25 ligne 26 ligne 27 ligne 28 ligne 29 ligne 30 ligne 31 ligne 32 ligne 33 ligne 34 ligne 35 ligne 36 ligne 37 ligne 38 ligne 39 ligne 30 ligne 41 ligne 42 ligne 43

68

Titre 1 Ligne 44 Ligne 45 Ligne 46 Ligne 47 Ligne 48 Ligne 49 Ligne 50

Suite: : : Titre 2 Titre 3 ligne 44 ligne 44 ligne 45 ligne 45 ligne 46 ligne 46 ligne 47 ligne 47 ligne 48 ligne 48 ligne 49 ligne 49 plus longue pour compliquer. ligne 50 ligne 50
Tableau 57: Titre du bas

25.8 Gros tableaux: longtable


Ce package, que nous devons David Carlisle50 27 , dans le m me esprit le pr c dent, permet de g rer de gros tableaux. Mais contrairement au pr c dent, il garantit que sous certaines conditions relativement strictes, tout de m me les di rentes pages d'un m me tableau auront la m me largeur. Pour cela, il est amen prendre des notes dans le chier .aux et donc, en cas de modi cation du tableau, il est recommand de supprimer ce chier avant de recompiler le document. De plus pour que ces notes soient productives, il faudra compiler jusqu' 3 fois le document. Toutefois, lorsque tu pr pares ton rapport, tu t'en fous un peu de ce probl me de largeur des colonnes, alors le truc tout b te c'est que cet ajustement n'est pas fait automatiquement, il faut le demander en d but de document par un
setlongtables

Il su ra de le mettre durant les deux ou trois derni res compilations pour que tout se passe tr s bien, m me pendant les moments o on modi e le tableau. La syntaxe est l g rement di rente de la pr c dente, mais suit le m me esprit. On commence par ouvrir un environnement longtable qui se pr sente exactement comme un environnement tabular. Ensuite, on placera le contenu du premier en-t te, des en-t tes suivants, des bas de tableaux et du bas du dernier tableau. Pour cela, quatre commandes sont pr vues :
endfirsthead endhead endfoot endlastfoot

Le plus simple pour bien comprendre est de regarder le bout de source suivant et le tableau produit avec :
begin longtable c |* 3 p 0.3 linewidth | hline Colonne 1 & Colonne 2 & Colonne 3 endfirsthead hline Colonne 1 & Colonne 2 & Colonne 3 textit suite & textit suite & textit suite endhead multicolumn 3 |c| textit A suivre$ ldots$ hline endfoot endlastfoot hline Ligne 0 & ligne 0 & ligne 0 hline Ligne 1 & ligne 1 & ligne 1 hline ....................................... Ligne 50 & ligne 50 & ligne 50 hline end longtable

Et a produit le tableau suivant : Colonne 1 Ligne 0 Ligne 1 Ligne 2 Ligne 3 Ligne 4


50 a nous change, hein.

Colonne 2 ligne 0 ligne 1 ligne 2 ligne 3 ligne 4

A suivre: : :

Colonne 3 ligne 0 ligne 1 ligne 2 ligne 3 ligne 4

69

Colonne 1
suite

Colonne 2
suite

Colonne 3
suite

Ligne 5 Ligne 6 Ligne 7 Ligne 8 Ligne 9 Ligne 10 Ligne 11 Ligne 12 Ligne 13 Ligne 14 Ligne 15 Ligne 16 Ligne 17 Ligne 18 Ligne 19 Ligne 20 Ligne 21 Ligne 22 Ligne 23 Ligne 24 Ligne 25 Ligne 26 Ligne 27 Ligne 28 Ligne 29 Ligne 30 Ligne 31 Ligne 32 Ligne 33 Ligne 34 Ligne 35 Ligne 36 Ligne 37 Ligne 38 Ligne 39 Ligne 40 Ligne 41 Ligne 42 Ligne 43 Ligne 44 Ligne 45 Ligne 46 Ligne 47 Ligne 48 Ligne 49 Ligne 50

ligne 5 ligne 6 ligne 7 ligne 8 ligne 9 ligne 10 ligne 11 ligne 12 ligne 13 ligne 14 ligne 15 ligne 16 ligne 17 ligne 18 ligne 19 ligne 20 ligne 21 ligne 22 ligne 23 ligne 24 ligne 25 ligne 26 ligne 27 ligne 28 ligne 29 ligne 30 ligne 31 ligne 32 ligne 33 ligne 34 ligne 35 ligne 36 ligne 37 ligne 38 ligne 39 ligne 40 ligne 41 ligne 42 ligne 43 ligne 44 ligne 45 ligne 46 ligne 47 ligne 48 ligne 49 ligne 50

ligne 5 ligne 6 ligne 7 ligne 8 ligne 9 ligne 10 ligne 11 ligne 12 ligne 13 ligne 14 ligne 15 ligne 16 ligne 17 ligne 18 ligne 19 ligne 20 ligne 21 ligne 22 ligne 23 ligne 24 ligne 25 ligne 26 ligne 27 ligne 28 ligne 29 ligne 30 ligne 31 ligne 32 ligne 33 ligne 34 ligne 35 ligne 36 ligne 37 ligne 38 ligne 39 ligne 30 ligne 41 ligne 42 ligne 43 ligne 44 ligne 45 ligne 46 ligne 47 ligne 48 ligne 49 ligne 50

70

26 Les r f rences
Maintenant tu dois avoir compris comment je fais pour num roter mes tableaux et mes gures sans me tromper et comment je proc de pour les positionner. Mais tu dois51 te demander comment je fais pour parler avec tant d'aisance du tableau 7 page 23 qui te d crit les di rents accents possibles, alors je ne sais pas du tout quel num ro il porte ni quelle page il A se trouve. Eh bien c'est tr s simple : c'est L TEX qui se charge de le savoir ! Ce petit package, crit par Frank Mittelbach 78 permet de faire de jolies choses avec les r f rences. En A lisant l'anc tre de cette doc, savoir celle sur L TEX 2.09, tu, lecteur l' il aussi vif qu'exerc , auras remarqu sans la moindre di cult que j'avais une forte tendance t'indiquer qu'un tableau se trouvait la page 15, alors que tu lisais la page 15, et que si j'avais pu dire sur cette page a aurait pas t plus mal 26.1 Les bases que si a avait t pire. Mais, voila, je n' tais pas Pour pouvoir faire r f rence un point quelconque ma tre du positionnement des tableaux. Maintenant, je n'en suis toujours pas ma tre, mais du texte, il faut sp ci er ce point pr cis en lui donA L TEX2" a appris faire tout seul, et en fran ais, des nant un nom52 l'aide de la commande label : petits bouts de phrase assez agr ables, dans le genre label refs-bases tableau 18 la page pr c dente ou tableau 12 sur cette m me page. Pour cela, il faut utiliser vref au Ensuite on pourra conna tre la valeur du dernier lieu de ref et il n'est plus besoin de faire r f rence compteur incr ment avant l' tiquette 26.1 : la page. Pour simplement indiquer au lecteur d'aller voir une page donn e, genre rendez-vous page 157 ref refs-bases dans les livres dont on est le h ros, il su t d'utiliser vpageref. Avec un peu d'entra nement on se fait Ainsi que la page o se trouve l' tiquette 71 : tr s bien aux tournures utiliser, tu verras. pageref refs-bases A titre d'exemple, je place un label dans le texte de la pr sente page et je te rappelle que la section C'est ultra facile. concernant les tableaux commence page 62. Pour produire le texte ci-dessus, j'ai tap :

26.3 Le package varioref

26.2 Le package showkeys

Ce petit quelque chose o ert par David Carlisle 28 est assez agr able utiliser. Cela permet de voir toutes les r f rences, par exemple, lorsque l'on fait
label toto

... le texte

vpageref ici-meme

et je...

26.4 Le package lastpage

un petit toto encadr est imprim dans la marge, et, de plus, chaque fois qu'on y fera r f rence, juste au-dessus de la r f rence, se trouvera le texte toto en petit. C'est tr s pratique pour se souvenir des noms utilis s, ou pour localiser les fautes de frappe la relecture. Personnellement, j'utilise d sormais syst matiquement ce package. En plus, comme il est assez bien tudi , les textes qu'il ajoute ne viennent en rien perturber la mise en page du document. Pratique et joli. Attention: Un probl me d'utilisation surgit lorsque l'on utilise ce package avec le suivant varioref car ce dernier cr e automatiquement de nombreux labels automatiques qu'il utilise g n ralement au m me endroit, ce qui rend le document particuli rement di cile lire. Ce n'est pas a proprement parler un bug, ni m me une restriction d'utilisation, c'est juste que le document qui sort est une grosse m: : : et que c'est pas beau, mais tant pis.

51 ou tu devrais 52 On parlera aussi volontiers d' tiquette 53 Voire ce sujet le package endnotes la section 24.9 page 61 et le package fn2end la section 24.10 page 61 54 Ou plus exactement quelque chose qui agit comme un label bien que ce n'en soit pas un

Ce package, crit par Je Goldberg 42 permet de faire r f rence la derni re page, m me si celle-ci n'est pas g r e par l'utilisateur comme c'est parfois le cas. En e et, dans certains cas, par exemple si on utilise des notes en n de document53 alors les derni res A pages sont g n r es automatiquement par L TEX et on ne peut plus y mettre de label. Ce package se chargera donc de mettre un label54 sur la derni re page du document. Toutefois, il est bon de prendre garde ce que l'on fait, en e et, les package qui travaillent sur la n du document, comme endfloat section 24.2 page 55 ou endnotes section 24.9 page 61 ou encore fn2end section 24.10 page 61, ont tendance ne pas s'entendre tr s bien. En e et, ils fonctionnent en disant A L TEX quelque chose comme lorsque tu n'auras plus rien d'autre faire, juste avant de nir le docuA ment, fais a pour moi. Et L TEX ex cute ces trucs dans l'ordre o ils sont donn s. Donc, en cas de p pin, changer l'ordre d'appel des packages pourra avoir des e ets int ressants.

71

LastPage55

Le label cr par le package . Donc en appelant

lastpage

s'appelle Je n'ai pas de di cult s particuli res pour te dire que cette doc fait 143 pages.

pageref LastPage

Certains environnements ont t tendus par des A packages dans L TEX2" , d'autres totalement nouveaux ont t cr s. Voici un petit aper u de ceux des packages que je connais. Que voil un joli petit package que David Carlisle 23 il a crit pour nous. Bien b . a sert num rer de mani re un poil plus pouss e que d'habitude. C'est b te comme ch vre utiliser. Tu prends un enumerate normal, tu lui colles en option la fa on dont tu souhaites num roter des items et puis voil . Mais faut quand m me faire ga e, les caract res A, a, I, i et 1 sont sp ciaux, ils indiquent le type de num rotation et doivent tre prot g s dans l'option. Un petit exemple ou deux et puis c'est marre. Exemple 1 premier item Exemple 2 second item Exemple 3 troisi me item Liste I num ro 1 Liste II num ro 2 Liste III num ro 3 Liste IV num ro 4 Ces exemples ont t produits par
begin enumerate Exemple 1 item premier item item second item item troisi `eme item end enumerate begin enumerate item num 'ero 1 item num 'ero 2 item num 'ero 3 item num 'ero 4 end enumerate L i ste I

27 Environnements

setleftmargin taille

ou automatiquement, avec
setlabelphantom texte

27.1 La package enumerate

Si on sp ci e les deux, c'est la deuxi me variante qui a priorit . On a aussi la possibilit de sp ci er comment se comporter si le `label' est plus large que la marge pr vue. Le comportement normal est de continuer sur la m me ligne, mais on peut, l'aide de breaklabel demander ce que le texte soit alors pass la ligne, comme dans l'exemple ci-apr s, pas tr s loin. Une autre chose, encore, est r glable, c'est le style des labels. Par d faut, ils sont en gras. On pourra vouloir les mettre en italique avec un
setlabelstyle itshape

Comme c'est le cas dans l'exemple ci-apr s :


Toto : h ros de l'histoire. Belge : nationalit de Toto. Utilis aussi pour d noter

l'aspect histoire voire absurde de ce r cis.

Z ro : l ment neutre de l'addition et absorbant de

la multiplication dans les environnements math matiques habituels. Utilis ici en tant que neutre de l'addition, il ne sert rien. premi re des structures de corps dans le vocabulaire enfantin ou plus globalement nonmath maticien.

Plus : nom signi ant la loi de composition interne

Qu'on obtient facilement partir de l'en-t te suivant :


begin description breaklabel setlabelstyle itshape setlabelphantom Belge: item Toto: h 'eros de l'histoire. ... globalement non-math 'ematicien. end description

27.2

27.2.1 L'environnement tendu expdlist

description

Le joli package expdlist, qui nous est o ert par Rainer H lse et Wolfgang Kasper 46 , deux AlleEn n, il y a une option, compact, pour virer les mands, fournit un nouvel environnement qui porte le m me nom que l'ancien, mais o re un argument op- blancs entre les items successifs. Style genre que a tionnel dans lequel on peut ajouter plein de r glages donnerait a : rigolos. Le premier est la marge, que l'on peut xer la Toto : main, avec h ros de l'histoire.

55 Les utilisateurs chevronn s de L TEX remarqueront que ce label comporte des majuscules et auront peut- tre l'id e que A A ce n'est pas tr s conforme au sch ma de nommage recommand par l' quipe du projet L TEX 3. Je leur rapellerais simplement A qu'il s'agit d'un label et non d'une commande et donc qu'il chappe au r gles souhait es par l' quipe L TEX 3.

72

Belge : Z ro : Plus:

nationalit de Toto. Utilis aussi pour d noter l'aspect histoire voire absurde de ce r cit. l ment neutre de l'addition et absorbant de la multiplication dans les environnements math matiques habituels. Utilis ici en tant que neutre de l'addition, il ne sert rien. nom signi ant la loi de composition interne premi re des structures de corps dans le vocabulaire enfantin ou plus globalement non-math maticien. En utilisant l'en-t te suivant :

16. Le Monde. Qui en forme crypt e donne :


begin enumerate 1. listpart Indispensable item 8 paquets de caf 'e item 2 bo ^ites de filtres item 3 kg de sucre item 2 cartouches de cigares listpart Miam miam item 1 poulet item 2 bo ^ites de p'tits pois item 1 pot de bolognaise item 500g de spaghetti listpart Pour offrir item 45 l de jus d'orange item 1 t 'el 'e item 1 Plantu item 2 MC Escher item 1 bouteille d'Armagnac listpart A lire item Dernier SVM item Le canard item Le monde. end enumerate

begin description breaklabel setleftmargin 5mm compact item Toto: h 'eros de l'histoire. ... globalement non-math 'ematicien. end description

27.2.2 Commentaire

Le dernier truc apport par ce package est la commande listpart qui permet d'ins rer un pa- 27.3 verbatim ragraphe dans une liste sans en boulverser la num Ce package, crit par Rainer Sch pf, Bernd rotation ou la structure. Par exemple, voici ma liste Raichle et Chris Rawley 106 permet d'utiliser plude courses : sieurs environnements sans grande nouveaut , si ce n'est le comment qui est assez agr able et pas trop mal Indispensable chu. Il tend les deux environnements verbatim et verbatim* de mani re ne plus saturer b tement. 1. 8 paquets de caf En e et, avant, tout le texte devait tre m moris 2. 2 bo tes de ltres par TEX avant de commencer la mise en page, alors un verbatim de plusieurs pages pouvait poser pro3. 3 kg de sucre bl me pour peu que le document en cours soit d j charg c'est le cas de celui-ci par tout un tas de ma4. 2 cartouches de cigares cros compliqu es. Pour m moire, un petit exemple de verbatim* Miam miam 5. 6. 7. 8. 9. 10. 11. 12. 13. 1 poulet 2 bo tes de p'tits pois 1 pot de bolognaise 500g de spaghetti 45 l de jus d'orange 1tl 1 Plantu 2 MC Escher 1 bouteille d'Armagnac
C'estuntexteen`verbatim*' avectoutlescaract `eresindiqu 'es commeilfautetsanssetromper. Siontapeuntrucpasascii,genre unc-cedille` 'jesaispasceque cadonne.Logiquementrien,ouplus exactementselonlafonte.

Pour o rir

A lire 14. Dernier SVM 15. Le Canard

L'environnement verbatim ne se termine que sur la cha ne de caract re end verbatim . Il en va de m me pour la forme avec *. On ne pouvait pas laisser d'espace entre le end et le nom de l'environnement, maintenant, on peut. Ce qui veut dire qu'on ne peut plus laisser ce nom avec un espace dans un verbatim. C'est pas clair? Tant pis. L'environnement comment marche pareil, mais au lieu d'imprimer le texte sans le comprendre, TEX l' jecte sans r chir. On peut donc virer n'importe quoi, alors que les bidouilles usuelles du type
long def A1 A texte a virer

73

n' taient pas satisfaisantes : on pouvait prendre plus d'un paragraphe gr ce au long, mais pas une accolade fermante, puisqu'elle venait fermer l'argument, et pas non plus une accolade ouvrante non referm e, alors que maintenant on peut sans di cult . Une jolie commande a t pr vue pour montrer facilement le source d'un chier en respectant l'indentation pas de tabulations !, c'est le verbatiminput qui prend comme argument le nom du chier charger. Par exemple
verbatiminput manuel2ep.ltx

Part Utilisation avanc 'ee input input input input input input input fontes.precisions mise.en.page flottants tableauxP references environnementsP mathematica.olivier.tex

Part Images let bar NewDrawingBar input dessins.pur let bar OldMathBar input dessins input dessins.prod input tronique Part Bibliographie, index input biblio input index begin optionnel Part Configuration et installation input input input input input input input input input kpathsea tex.config mf.config xdvi.config dvips.config makeindex.config bibtex.config package.install install.linux

Viendra charger le chier source de ce document chaque compilation. En toute logique, il devrait- tre relativement court.
documentclass francais,french,twoside  batchmode vfuzz 3pt  def dest pascal def dest all def Index yes  def Index no def Optionnel yes  def Optionnel no input preambule begin document selectlanguage francais  let OldIat Iat  gdef Iat string@  let NewIat Iat input initials input couverture Part Introduction input introP input geut Part Overview input presentation.generale input premier.pas input structure.du.documentP input doc.types input ESIEE input languesP input fontes.overview newpage input taille input accents input constructions input tables.overview input inclusion Part Math 'ematiques input math.principes catcode`"=12 input math.symboles catcode`"=13 input math.constructions input math.alphabets article

end optionnel choice Part Programmation

input programmation begin optionnel Part Divers input diversP input incompatibilites cleardoublepage nocite * Part Annexes input remerciements printindex printindex printindex printindex printindex Gal Com Env Pak Sym Index Index Index Index Index g 'en 'eral des commandes des environnements des packages des symboles math 'ematiques

end optionnel begin multicols NbCols bibliographystyle frplain bibliography manuel2ep end multicols end document

74

25 30

****************************************************** ** ** ** c1995 Benjamin BAYART & Pascal VINCENT ** ** ** ** I4, PASTI ** ** ** ****************************************************** ****************************************************** *

27.4

moreverb

35 40 45

include iostream.h include "set.h" class Voisinage public: Voisinage

Ce package, que nous devons un illustre inconnu, est une tr s jolie extension construite sur verbatim. Plusieurs commandes ont t pr vues. On retiendra quatre environnements : 1 listing qui permet de num roter les lignes d'un environnement de type verbatim. Le param tre obligatoire est le num ro attribuer la premi re ligne, et le param tre optionnel est celui indiquant de combien en combien on num rote. Un exemple de syntaxe :
begin listing Contenu... end listing 5 1

virtual set applyint,baseset* const=0; ; endif

if !defined__voisinage define __voisinage * ****************************************************** ****************************************************** ** ** ** PROJET ** ** ** ** Reconnaissance de phonemes en parole continue ** ** ** ** par cartes de Kohonen ** ** ** ****************************************************** ** ** ** c1995 Benjamin BAYART & Pascal VINCENT ** ** ** ** I4, PASTI ** ** ** ****************************************************** ****************************************************** * include iostream.h include "set.h" class Voisinage public: Voisinage

2

qui produit du texte comme , mais encadr . Le seul petit probl me est que cet environnement vient g n rer une grosse bo te ins cable. 3 verbatimtab g re les tabulations convenablement, ce qui est tr s utile pour les listings indent s. 4 verbatimcmd qui est en verbatim, sauf pour les trois caract res , et , ce qui permet de mettre en page comme du verbatim, mais en ayant la possibilit de faire de la mise en page. Int ressant pour r cup rer de l'ASCII pur d j mis en page, mais o l'on souhaite r gler des choix de fonte ou des clowneries comme a. Il existe aussi pour deux de ces environnements des versions pour inclure directement depuis un chier, il s'agit de listinginput et verbatimtabinput. Les quelques lignes ci-dessous donnent les deux exemplaires de code source qui suivent :
boxedverbatim verbatim
tiny listinginput 5 10 voisinage.h

virtual set applyint,baseset* const=0; ; endif

27.5

alltt

Ce package, que nous devons Johannes Braams 12 peut, au premier abord, appara tre comme une restriction du pr c dent, mais il est plus que cela. En e et, il fourni un environnement similaire verbatimcmd, mais semble se passer du package verbatim et est tr s court. L'avantage? a va plus vite la compilation ! Par exemple, pour compiler ce document, TEX passe autant de temps lire les packages d'extension qu'a compiler les pages !56 Histoire d' tre plus complet, fournissons un rapide exemple :
begin alltt Une 'equation en verbatim : $fx=x^2, f'x=2x$ La m ^eme en mieux:  fx=x sp 2 , f sp prime x=2x  end alltt

tiny verbatimtabinput voisinage.h

10 15 20

if !defined__voisinage define __voisinage * ****************************************************** ****************************************************** ** ** ** PROJET ** ** ** ** Reconnaissance de phonemes en parole continue ** ** ** ** par cartes de Kohonen ** ** **

Produira :
Une quation en verbatim $fx=x^2, f'x=2x$ La m me en mieux: 2 0 :

56 Je t'accorde que ce document comporte plus de packages  beaucoup plus  que le rapport moyen.

f x = x ; f x = 2x

75

plain break marginbreak changebreak change margin

A C'est l' quivalent du theorem de L TEX de base. L'en-t te du th or me est s par du corps par un changement de ligne. Comme break mais le num ro du th or me est dans la marge. Comme break mais en changeant le titre et le num ro. Comme plain mais en changeant le titre et le num ro. Comme plain mais le num ro est mis dans la marge.

Tableau 59: Styles de th or mes accept s par le package theorem

On notera donc les commandes sp et sb pour ex- theoremheaderfont scshape posant superscript et indice subscript puisque les Une telle d claration ne doit appara tre que dans le caract res ^ et _ ont perdu leur sens sp cial. pr ambule et ne saurait en rien tre modi e. Si tu souhaites que tes lemmes et tes d nition n'aient pas 27.6 theorem la m me fonte pour leur en-t te, il te faudra revenir A L'environnement standard L TEX tant limit ou aux anciennes m thodes qui sont toujours valables. Un exemple : assez complexe utiliser, Franck Mittelbach 72 a concoct un petit package d'extension qui, bien que Dans le preambule: ne permettant pas de r aliser plus simplement ce que theoremheaderfont scshape j'aime utiliser comme environnement pour les th o- theoremstyle break r mes, permet toutefois un param trage assez sym- theorembodyfont upshape pathique et devrait pouvoir tre tendu par mes bons newtheorem Def D 'efinition subsection soins le jour o j'en aurai le courage et le besoin. L'id e forte de ce package est qu'un th or me texte: ou tout ce qui s'en rapproche : d nition, lemme, Dans leDef Suite convergente begin proposition: : :  c'est un nonc portant un nom g - $ forallu_n in mathbb R ^ mathbb N ; ; ;
n ralement mis en vidence par des espaces et des changements de fonte.

Pour permettre de sp ci er la fa on dont on doit mettre en page un tel type de theorem, un package a t crit celui-ci qui contient quelques commandes de r glages simples. En premier lieu, tu dois r gler le style du theorem en choisissant dans la liste qui gure sur le tableau 59. Pour cela tu utiliseras la commande
theoremstyle style a utiliser

forall ell in mathbb R $ si forall varepsilon in mathbb R _+ ; ; ; exists n_0 in mathbb N ; ; ; forall n in mathbb N ; ; ; n geqslant n_0 Rightarrow |u_ n - ell| leqslant varepsilon On dira que $u_n$ converge vers $ ell$ noindent On notera: lim_ n rightarrow + infty u_n= ell end Def

Cette commande e ectue un changement global, c'est dire que tous les types de theorem qui seront d nis apr s seront dans ce style l , jusqu' la prochaine apparition de cette commande. Une autre commande permet de choisir la fonte du corps du th or me. Attention, il faut indiquer la fonte l'ancienne mani re et non pas avec les commandes du NFSS. Cette commande est
theorembodyfont upshape

D finition 27.6.1 Suite convergente 8un 2 RN 8` 2 R si

8" 2 R+ 9n0 2 N 8n 2 N n n0  jun , `j 6 "


On dira que un converge vers ` On notera : lim u = ` n!+1 n

pour d cider que les prochains theorem seront en caract res droits au lieu d' tre en italique par d faut. Attention, le chemin de fonte est pris depuis la fonte par d faut, tu peux donc tre amen sp ci er des choses un poil plus complexes. Si un argument vide lui est pass , on revient la fonte par d faut. Une troisi me commande permet de choisir la fonte de l'en-t te du theorem. Elle fonctionne comme la pr c dente :

27.7 Le package multicol

Ce somptueux package est un petit bijou o ert par Frank Mittelbach 71 . Il te permettra sans aucune di cult de placer des textes sur une, deux, trois ou n  9 colonnes dans un texte et m me de changer en cours de document. C'est, mon sens, l'un des plus A beaux packages pour L TEX2" . Faisons un petit test.

76

Faux titre pour faire semblant


Ce package fonctionne assez simplement, on passe le nombre de colonnes comme param tre l'environnement et ventuellement un titre mettre sur toute la largeur et ensuite tout travail tout seul. On a aussi la possibilit de sp ci er si les colonnes doivent tre balanc es de m me longueur sur la derni re page ou non ainsi que quelques autres d tails sur la mise en page. L'une des options de ce package est la possibilit de faire appara tre un texte en-travers des colonnes comme ci-avant Faux titre pour faire semblant. On a m me la possibilit de mette des vrais insA tructions L TEX utiles et tout.

Une autre option de l'environnement est la hau- rapide. teur minimale pour commencer les colonnes, pour vif 0 x = x2 0 cosx2  5a ter de se retrouver avec une ligne sur quatre colonnes en bas de page toute seule, alors qu'elle aurait tr s = 2x cosx2  5b bien pu aller batifoler dans les pages suivantes avec ix ,ix ses copines. 5c = 2x e + e 2 a se pr sente comme a : On peut, tr s facilement, parler du volet 5b de begin multicols 3 coucou 6cm l' quation 5. D'ailleurs voici le source de l' quation 5 :
2 2

pour faire du texte sur 3 colonnes, crire coucou au dessus des trois colonnes et pr voir au moins six centim tres de libre pour commencer les colonnes en comptant dans les 6cm la hauteur du coucou.

27.8

begin subeqnarray f^ primex & = & x^2^ prime cosx^2 label eq slabel seq1 & = & 2x cosx^2 slabel seq2 & = & 2x frac e^ ix^2 +e^ -ix^2 2 slabel seq3 end subeqnarray

subeqnarray

Ce petit package, que nous devons Johannes Braams 11 permet bien des jolies choses pour la manipulation des quations en mode math matique. Un environnement equation, que j'ai peu l'habitude d'utiliser permettait d j de num roter les quations. Comme par exemple :

slabel est une variante de label qui au lieu de sauvegarder b tement le dernier compteur incr ment sauvegarde le num ro de la derni re sous- quation ou du dernier volet. C'est b te comme ch vre, mais il fallait y penser.

f x = sinx2

1

27.9 Le package acronym

Il existait m me un environnement, eqnarray, ni re relativement rationnelle. L'id e de base est relativement simple. Dans un permettant de mettre plusieurs quations dans un taarticle ou un rapport o on utilise plein d'acronymes bleau : barbares genre un truc sur les GSM ou sur les r 2 f x = sinx 2 seaux il est de bon ton de donner la d nition compl te de l'acronyme une fois de temps en temps, par ix ,ix = e ,ie 3 exemple la premi re fois qu'on l'utilise. De m me, 2 lorsque leur sens n'est pas vident et intuitif ce qui iex e , e,iex quent, on aime 4 est frune explication suravoir une liste des acronymes = avec chaque quelque part dans le 2i document. Mais, si tu regardes avec une attention soutenue Ce package permet de r aliser ce travail automatice que tu viens de lire, tu te rendras compte bien vite quement et assez joliment. Il repose sur un environnequ'il ne s'agit que d'une seule quation en trois vo- ment et cinq commandes. L'environnement est celui lets, et qu'il n'y a pas de raison de donner de nouveau o l'on d nit le sens de chaque acronyme et c'est num ro chaque volet de cette unique quation. On lui qui produira la liste compl te. G n ralement on le peut alors indiquer qu'il s'agit d'une seule quation place la n du document en annexe, par exemple et la rentrer sous forme d'un tableau, mais alors il n'y ou au d but, dans une introduction ou un chapitre a pas de moyen simple de r f rencer chaque volet: : : z ro genre vocabulaire utile ou pr -requis. Les Bref un probl me insoluble. commandes permettront de rappeler les acronymes En n presque. Il y a maintenant le package sous forme compl te avec le rappel du sens, sous subeqnarray qui permet d'entrer une quation en forme abr g e sans le rappel du nom, de faire un plusieurs volets en les sous-num rotant. Un exemple choix automatique entre les deux, de d nir un nouvel
2 2 log2 log2

Ce package, que nous devons Tobias Oetiker 86 permet d'utiliser des acronymes57 de ma-

57 Pour ceux qui savent pas ce que c'est, SNCF est un acronyme pour Soci t Nationale des Chemins de Fer. Dans des articles scienti ques, on en utilise souvent plein.

77

acronyme dans l'environnement, ou d nir un acronyme en dehors de l'environnement pour qu'il ne soit pas dans la liste. La commande ac d terminera automatiquement si l'acronyme doit appara tre sous forme longue comme ceci Soci t Nationale des Chemins de Fer SNCF parce que c'est la premi re fois qu'il est appel ou comme cela SNCF parce que ce n'est pas la premi re fois. On peut tout fait forcer le choix du syst me, par exemple en utilisant acs pour obtenir la forme courte comme SNCF ou une forme longue en utilisant acf, o le f signi e full comme ici R gie Autonome des Transports Parisiens RATP. Pour d nir les acronymes utilisables, il y a deux approches. Soit on les d nis dans l'environnement acronym et ils sont dans la liste des acronymes, comme SNCF ou bien on les d nit en dehors comme c'est le cas pour R gie Autonome des Transports Parisiens RATP. Dans l'environnement acronym, on utilise la commande acro pour d nir chaque nouvel acronyme, en dehors, on utilise la commande acrodef. Leurs syntaxes sont les suivantes :
acro acro nom complet explication acrodef acro nom complet

plication puisque l'explication n'appara t que dans la liste des acronymes. Pour d nir mes deux acronymes de test, j'ai fait appel aux commandes suivantes :
subsection* Acronymes utilis 'es begin acronym acro SNCF Soci 'et 'e Nationale des Chemins de Fer , organisme publique dont le but officiel est de transporter des voyageurs et dont le but officieux est de bloquer l'Ile-de-France en cas, fr 'equent, de gr `eve. La acs SNCF est en effet l'un des rares organismes publiques `a ^etre r 'eguli `erement en gr `eve. end acronym acrodef RATP R 'egie Autonome des Transports Parisiens

Et a produit a :

Acronymes utilis s

SNCF Soci t Nationale des Chemins de Fer, organisme publique dont le but o ciel est de transporter des voyageurs et dont le but o cieux est de bloquer l'Ile-de-France en cas, fr quent, de gr ve. La SNCF est en e et l'un des rares organismes publiques tre r guli rement en gr ve.

videmment, pour

acrodef

, il n'y a pas d'ex-

27.10 Le package parallel

Ce package, que nous devons Matthias Eckermann 37 , permet de r soudre un probl me fr quemment A pos par des utilisateurs de L TEX : crire un texte en deux langues di rentes sur deux colonnes en parall le, de mani re ce que les traductions soient en vis- -vis quasiment ligne ligne. On peut cependant imaginer d'utiliser ce package pour synchroniser deux textes quelconques. Ce package est relativement simple d'emploi. Il repose sur un environnement et trois commandes. L'environnement s'apelle Parallel et indique que l'on est en train de synchroniser deux textes. La premi re commande, ParallelLText indique le texte qui devra appara tre dans la colonne de gauche, la seconde ParallelRText indique celui qui doit appara tre dans la colonne de droite, et la troisi me ParallelPar doit58 permettre d'indiquer les points de synchronisation importants. L'environnement Parallel prends deux arguments : la largeur d sir e pour chacune des colonnes. En e et, si l'un des textes est plus long que l'autre par exemple peu de commentaires et un long texte commenter alors il est plus prudent de lui allouer une plus grande largeur de colonne pour viter de perdre de la place. Les deux commandes ParallelLText et ParallelRText, pour leur part, prennent un argument : le texte sur lequel elles s'appliquent. Voici, par exemple, un texte agr ment de son commentaire :
begin Parallel 0.49 linewidth 0.49 linewidth ParallelLText Pour bien 'etudier la synchronisation des textes, il convient d' 'etudier plusieurs cas. Le premier, et de loin le plus simple, est celui o `u les deux textes ont une longueur voisine. ParallelRText Pour commenter et ilustrer ce cas pr 'ecis, il me faut faire un commentaire d'une longueur voisine de celle du texte pr 'ec 'edent, c'est- `a-dire quatre ligne et quelques. ParallelPar ParallelLText Le second cas int 'eressant est celui du d 'es 'equilibre total, par exemple, comme ici, un texte fort long, sur plusieurs paragraphes d'ailleurs, et tr `es sobrement comment 'e, puisque c'est le jeu.

58 La doc est en allemand, ce qui fait que j'ai pas tout compris les d tails, vu que je parle pas un mot d'allemand.

78

Le second paragraphe se doit, lui aussi, d' ^etre relativement long, au moins par rapport au commentaire qui en sera fait. Le commentaire ne comptant que quelques mots, quelques lignes devraient suffir a ma d 'emonstration. ParallelRText Rien `a redir sur le premier paragraphe. Ni sur le second. ParallelPar ParallelLText Enfin, le cas extr ^eme qui m'int 'eresse est celui o `u l'un des deux textes est vide. Pour ce qui nous concerne, il s'agira du texte de droite. Donc rien dans la colonne de commentaires. ParallelRText ParallelPar end Parallel

Pour bien tudier la synchronisation des textes, il convient d' tudier plusieurs cas. Le premier, et de loin le plus simple, est celui o les deux textes ont une longueur voisine.

Pour commenter et ilustrer ce cas pr cis, il me faut faire un commentaire d'une longueur voisine de celle du texte pr c dent, c'est- -dire quatre ligne et quelques.

Le second cas int ressant est celui du d s quilibre Rien redir sur le premier paragraphe. total, par exemple, comme ici, un texte fort long, Ni sur le second. sur plusieurs paragraphes d'ailleurs, et tr s sobrement comment , puisque c'est le jeu. Le second paragraphe se doit, lui aussi, d' tre relativement long, au moins par rapport au commentaire qui en sera fait. Le commentaire ne comptant que quelques mots, quelques lignes devraient su r a ma d monstration. On notera cependant que les paragraphes ne s'alignent pas spontan ment. En n, le cas extr me qui m'int resse est celui o l'un des deux textes est vide. Pour ce qui nous concerne, il s'agira du texte de droite. Donc rien dans la colonne de commentaires.

A 28 Interaction LTEX Mathematica


Nous devons ce paragraphe la pr cieuse et amicale collaboration d'Olivier Gutknecht. Qu'il en soit vivement remerci , et que des g n rations d'ESIEE ns lui vouent un culte sans faille pour cette pr cieuse aide.
In 1 := F = Sin x Sin x Out 1 = -----x x

Et maintenant, d rivons-la par rapport x en une A La collaboration entre Mathematica et L TEX peut fonction G : m me aller encore plus loin59. En e et, si on le lui In 2 := G = D F,x demande gentiment, Mathematica peut parler TEX. Imaginons qu'on veuille prendre une belle fonction, Cos x Sin x et utiliser Mathematica pour la d river, puis inclure Out 2 = ------ - -----les deux fonctions dans son rapport pr f r . x 2 Commen ons par d nir notre premi re fonction x F:
59 Que la simple exportation de graphiques en PostScript vue la section 31.3 page 89

79

Comment demander la forme TEX de ces expressions? Facile, il n'y a qu' utiliser la commande TeXForm, qui va te traduire ton expression en code TEX que tu n'auras plus qu' inclure dans le source A de ton document L TEX :
In 3 := TeXForm F Out 3 TeXForm= sin x over x

Et a va donc te donner au nal ceci : F = sinx x

G = cosx , sin2x x x 60 ? Magique, non

In 4 := TeXForm G Out 4 TeXForm= sin x over cos x x^2 over x -

60 En fait pas tant que a. En e et, un probl me grave, d tect sur le rapport d'un l ve oui, JC, le tien est que Mathematica A g n re du code TEX, et fait donc appel la primitive over, alors que, o ciellement, L TEX pr f rerait que l'on utilise frac. A En fait, la base, L TEX reconnait encore tr s bien la primitive over, mais le package amsmath le mauvais go t de la red nir pour un autre usage. D'o l'on conclut que le code TEX produit par Mathematica ne pourra pas tre inclus directement dans un document utilisant le package amsmath. Toutefois il me semble que le sous ensemble le plus int ressant d'amsmath celui sur les symboles, amssymb ne pose pas de probl me. Dans la pratique, on prendra garde l'utilisation conjointe des produits de l'AMS et du code Mathematica.

80

Images
A 29 Dessins avec LTEX
A 29.1 Le plus bestial : LTEX pur

29.1.2 Lignes
Le premier objet que nous verrons est la ligne, qui se demande par line avec la syntaxe suivante :
putx,y linea,b n

Figure 5: Petit dessin, merci B zier !

A Tu le sais, L TEX sait aussi faire des petits dessins, mais comment lui demande-t-on de le faire, te demandes-tu, en me le demandant? Il su t de lui demander POLIMENT. Avant tout, lui donner la taille de ton dessin, puis les coordonn es du point de r f rence le coin en bas gauche de ton dessin avant de lui dire ce qu'il faut dessiner. Tu as la possibilit de dessiner plusieurs choses : des lignes dans quasiment tous les sens et de presque 29.1.3 Cercles toutes les longueurs, des cercles, mais pas trop grands, Le second objet des courbes de B zier discr tes  gure 5, des boites syntaxe d'appel est que nous verrons est le cercle. Sa avec ou sans texte : : :

O x,y est le point de d part de la ligne et a,b le taux d'accroissement relatif, c'est dire que lorsque l'on avance de a unit s sur l'abscisse, on avance de b unit s sur l'ordonn e. Ainsi un accroissement relatif de 0,1 indique une ligne verticale croissante partir du point d'origine, et un accroissement relatif de -1,-1 indique une diagonale partant vers le bas et vers la gauche depuis le point d'origine. Attention : toutes les pentes ne sont pas possibles, et de plus il faut indiquer les accroissements avec des entiers premiers entre eux61 . Pour obtenir des pentes bizarres, se reporter aux courbes de Bezier. La valeur n, pas forc ment enti re, indique la longueur de la ligne d'une fa on assez sp ciale : pour les diagonales, n indique la longueur projet e sur l'abscisse longueur toujours positive, alors que pour les lignes horizontales ou verticales, c'est la longueur normale.

29.1.1 L'environnement picture

putx,y

circle a

O le point de r f rence x,y est le centre et a est le rayon. L encore toutes les dimensions ne sont Voyons les diverses d clarations. Tout d'abord possibles, des cercles le d but de l'environnement picture : il commence pasdiam tre ne sont g nde plus de deux centim tres de comme tous les autres par un begin et se termine des courbes de B zier. ralement faisables qu'avec par end : Le troisi me objet que nous allons voir est la bo te rectangulaire de texte avec cadre. Sa syntaxe d'apIci, le couple x1,y1 repr sente la dimension du pel est : dessin dans l'unit courante et le couple x2,y2 re- putx,y frameboxa,b Texte pr sente les coordonn es du point en bas gauche de A ton dessin. C'est dire que L TEX va te pr voir une O a,b est la dimension du cadre dans lequel bo te de x1 sur y1 avec des coordonn es variant de x2 le texte vient appara tre. Il existe des options pour x2+x1 en abscisse et de y2 y2+y1 en ordonn e. r gler sa convenance le centrage du texte dans le En r gle g n rale, tout objet gurant dans un des- boite, mais je te les donne pas. sin y est introduit par Le quatri me objet que je vais survoler est la bo te de texte sans cadre : c'est tout comme framebox sauf putx,y objet que a s'appelle makebox.
61 Explications: mail weberj
begin picture x1,y1x2,y2 ... end picture

29.1.4 Textes

81

29.1.5 Fl ches
vector

Le cinqui me objet que nous allons survoler est le  che. Une che s'obtient de fa on tout fait similaire celle dont on obtient les lignes, si ce n'est que l'on tape vector au lieu de line.

A t produit par
qbezier0,00,5050,50

29.1.6 Courbes de B zier

En n, voyons les courbes de B zier. La syntaxe est assez di rente de celle des autres objets :
bezier n x1,y1x2,y2x3,y3

A Tout d'abord il faut savoir que L TEX ne sait pas, spontan ment, tracer de courbe de B zier. Par contre il sait tracer un point. Alors une macro commande lui a t ajout e pour placer un nombre n de points sur la courbe de B zier d nie par les trois points dont les coordonn es sont pass s en param tres. Le point x1,y1 est le point de d part de la courbe et x3,y3 est le point d'arriv e. Le point x2,y2 que je vais appeler point de contrainte joue un r le d cisif : c'est lui qui indique comment la courbe passe du point de d part au point d'arriv e. Il est l'intersection le la tangente au d part avec la tangente l'arriv e. Voir un exemple sur la gure 6 dont le code 29.1.7 Exemple source est le suivant : Un exemple assez complet de toutes les comunitlength 1mm mandes est en gure 7 page ci-contre. Le code complet begin picture 80,1000,0 pour l'obtenir est :
bezier 400 0,040,10080,0 put0,0 line2,5 40 put40,100 line2,-5 40 end picture unitlength=1mm begin picture 80,100-10,-10 put-10,0 vector1,0 80 put0,-10 vector0,1 100 put30,30 framebox40,10 Origine put30,30 vector-1,-1 29 put30,57 makebox15,5 axe put30,57 vector-1,0 29 end picture

On peut, en option, passer le nombre de points placer pour r obtenir la m me chose qu'avec l'ancienne commande. En plus, l'ancienne commande avec sa vieille syntaxe62 est toujours valide63. Deux applications bizarres des courbes de B zier sont souvent utilis es : obtenir une droite de pente quelconque, ou obtenir un cercle de rayon quelconque. Pour la droite, c'est simple : il su t de placer le point de contrainte dans l'alignement et de demander su samment de points pour obtenir l'impression de la continuit lors de la visualisation. Pour le cercle, par contre, il faudra biaiser un peu plus. Un quart de cercle approximatif est obtenu en demandant un angle droit entre les deux tangentes. Cependant en r unissant quatre quarts de cercle, on obtient quelque chose qui ne ressemble plus tellement un cercle : il est tass  aux quatre points de jonction. La solution? Si tu la trouves, tu me la les.

29.2 Le package bar


Figure 6: Courbe de B zier : exemple

Ce que tu viens de voir, ce sont les courbes de A B zier selon L TEX 2.09. Une nouvelle mouture des A courbes de B zier est arriv e avec L TEX2" . Tout A d'abord cette macro est inclue dans le noyau L TEX2" et ne n cessite donc plus de chargement ind pendant.

ESIEE

62 Celle expos e en premier. 63 La preuve: je l'ai utilis e. 64 Il est noter que cette commande crase et remplace l'accent math matiques

Le tr s joli package bar qui nous est o ert par Joachin Bleser et Edmund Lang 81 te permettra de A r aliser directement sous L TEX2" de tr s beaux diagrammes. Il y a pas mal de commandes, et je ne les explique pas toutes. Commen ons par la plus simple : bar64 c'est elle qui viendra g n rer chacune des barres de l'histogramme. Elle demande deux arguments obligatoires, savoir sa hauteur et le type de hachur qu'on veut voir appara tre dessus parmi les huit possibles. Un argument optionnel permet d'indiquer le texte attach la barre de l'histogramme. La commande hlineon indique que le fond du dessin devra tre quadrill .
bar

pr voira tr s vite une solution de remplacement optimale. Reste savoir laquelle

. C'est assez d sagr able. Le package

:::

82

6
axe Origine

Figure 7: Exemple de dessin

La commande legend permet de g n rer des petits carr s contenant le hachur indiqu et d' crire c t un texte. a sert faire des l gendes comme son nom l'indique. Pour les graphes en 3D, la commande setdepth permet d'indiquer la profondeur du graphe sous la forme d'un entier sup rieur dix. sethspace permet d'indiquer l'espacement entre les barres. C'est exprim comme une partie de la largeur de la barre, ainsi 0.5 indiquera que si les colonnes ont une largeur A de 1, L TEX devra laisser un espace de 0,5 entre elles. setlinestyle permet de choisir le type de ligne qui formeront le quadrillage en fond de gure. Deux valeurs sont possibles solid et dotted. La largeur des barres est donn e en nombre de points en argument la macro setwidth. L' chelle de repr sentation est priori xe mais on peut facilement lui appliquer un facteur multiplicatif en hauteur en utilisant setstretch. Si on veut changer de fonte en cours de graphe, il faut utiliser setstyle pour cela. Un premier exemple pour se faire la main et pour saliver un peu :
begin barenv sethspace 0.5 setwidth 28 setstretch 5 setstyle bfseries bar 12 0 Z 'ero setstyle itshape bfseries bar 3 1 Un setstyle itshape bar 6 2 Deux setstyle sffamily bar 4 3 Trois end barenv

D'autres options? Oui mon lapin, r gale toi. te permettra de r gler la profondeur du graphe il sera alors en 3D. La valeur qui lui est pass e doit au moins valoir dix. Pour graduer les axes setxaxis avec trois arguments : le d but, la n et le pas. setyaxis r alise le m me exploit pour l'axe des ordonn es. Toutefois un premier argument, optionnel, permet d'indiquer un o set par exemple pour que le bas de l'axe ne soit pas gradu . setxname permet de donner un nom l'axe des x et son homologue setyname fait la m me chose pour l'axe des y. En n, ultime d tail, setnumberpos permet d'indiquer la position du nombre associ la barre de l'histogramme. Les valeurs admises sont empty, axis, down, inside, outside, et up. Un dernier exemple et c'est marre :
setdepth begin barenv setwidth 25 setstretch 5 setdepth 20 setnumberpos inside setstyle setxaxis setstyle setxname setstyle setyaxis setyname hlineon setstyle bar 12 4 setstyle bar 3 5 setstyle bar 6 6 setstyle bar 4 7 setstyle bar 8 8 end barenv bfseries Z 'ero itshape bfseries Un itshape Deux sffamily Trois ttfamily Quatre bfseries itshape 4 1 large Axe X bfseries 5 0 12 3 Axe Y 0

donnera l'histogramme suivant.

12

Deux Trois Z ro Un Note que le style de texte n'est valable que pour le prochain texte produit. 83

Pour obtenir

12 9 6 12 8 3 4 3 6 Trois 0 Z ro Un Deux Quatre

Axe Y: :: ::::: :: :::: :: ::::: :: : : :: ::::: :: :::: :: ::::: :: : : :: ::: :: :

match left right . Trace une ligne entre l' tiquette left du c t gauche et l' tiquette right du c t droit. On utilisera volontiers des noms abr g s si les tiquettes sont trop longues.

3 Les commandes de base :


brush outil pour indiquer avec quel outil il faut tracer les prochaines lignes. Tous les outils de epic peuvent tre utilis s. Petits rappels : quelques outils de epic drawline : ligne pleine. dashline n1 n2 : ligne tirets. dottedline n : ligne pointill e.

Axe X

A C'est-y clair dans ta t te maintenant? L TEX sait faire du dessin. Et en plus il n'y a rien en PostScript l dedans, ce qui rend l'exercice bien plus p rilleux. Attention : Ce package vient remplacer l'accent math matiques bar, il conviendra d'y faire attention cf. note 64 page 82 ce sujet.

29.3 Le package eclbip

Vite fait, un exemple : a Num ro un tr s Ce petit package, crit par Hideki Isozaki 47 , un long. ricain, permettra aux plus matheux de taper les cours b de Weber puisqu'il permet de produire a : c Num ro deux tr s a long. 1 b 2 Num ro trois tr s c long. 3 Num ro quatre 4 qui, si mes souvenirs sont bons, n'est ni injectif, ni franchement trop surjectif. long pour tre Le principe est simple, il repose sur : retap chaque fois. 1 Un environnement : bipartite Le source, pour que tu puisses bien tout comprendre : Il demande 5 arguments :
labels left. C'est la largeur pr vue des tiquettes pour la partie gauche. wg width of gap. C'est la largeur de l'espace entre les deux parties du graphe. wlr width of labels right. Faut vraiment te faire un dessin? hg height of gap. Hauteur maximale entre deux n uds successifs. wnl width between a node and its label. Y'a qu'a traduire. On d clare :
wll width of
begin bipartite wll wg wlr hg wnl begin bipartite 1cm 2cm 3cm 3mm 5mm leftnode a leftnode b leftnode c rightnode 1 Num 'ero un tr `es long. rightnode 2 Num 'ero deux tr `es long. rightnode 3 Num 'ero trois tr `es long. rightnode 4 Num 'ero quatre franchement trop long pour ^etre retap 'e `a chaque fois. brush dashline 50 match b 2 match b 3 brush dottedline 3 match c 4 brush drawline match a 1 match a 2 end bipartite

2 Trois commandes : ajoute un nouveau n ud gauche dont l' tiquette sera nom et auquel on se r f rera par son nom ou par son nom abr g na s'il est donn . rightnode na nom . J'aime pas me r p ter.
leftnode na nom

Ce package fait partie des beaux restes de A A L TEX2.09, et n'a pas encore t adapt L TEX 2" au jour o j' cris. Il faut donc charger pr alablement les packages epic et eepic. Le jour o eclbip A sera adapt L TEX 2" , il s'en chargera tout seul. a vaut peut- tre le coup de v ri er en commen ant par ne pas charger les packages dont il a besoin.

84

Ce petit package, lui aussi crit par Hideki Isozaki 48 a visiblement t d velopp en m me temps que le pr c dent. Il sert dessiner des arbres n-aires. Comme le pr c dent, ce package n'a pas encore t A adapt aux normes L TEX 2" , d'o ton attention foudroyante alli e ton esprit prodigieux d duit qu'il faut charger au pr alable les deux packages epic et eepic, dans cet ordre. Le principe de fonctionnement est b te comme ch vre. Il repose sur un environnement bundle et une commande  chunk. L'environnement d crit un n ud de l'arbre, alors que la commande d crit une branche. Soyons plus clair. Entre le begin bundle et le end bundle se trouvent des chunk qui corTu me feras tr s vite remarquer quelques petits respondent autant de branches partant du n ud. Le points d licats, comme par exemple que l'on sp ci e nom du n ud est le param tre de l'environnement et le type du trac en dernier. En fait on peut le sp cile param tre de chunk est le nom de la feuille. er o l'on veut, mais il faut savoir qu'il n'est valu Un exemple tout de suite pour comprendre : qu' la n, ce qui est logique, avant de pouvoir tracer les branches, il faut conna tre la taille des feuilles. begin bundle racine Donc en d clarant les drawwith en n de n ud, on chunk feuille 1 est s r qu'il n'y aura pas de probl me de red nition chunk feuille 2 en cours de route. Oui, me diras-tu, toi qui est touchunk feuille 3 jours aussi perspicace que tout l'heure, mais a me chunk feuille 4 dit toujours pas comment qu'on fait pour que deux end bundle branches du m me n ud soient trac es avec des styles di rents, vu que si je sp ci e un changement de style devrait en toute logique produire ceci : entre deux n uds, seul le dernier sera pris en compte et valu la n. Tout d'abord sache que tu es fort racine intelligent d'avoir trouv tout seul le probl me et que je suis tr s bon de te donner la bidouille. A Lorsque L TEX va valuer le drawwith au mofeuille 1 feuille 2 feuille 3 feuille 4 ment du trac des branches, il va ex cuter les ordres Si en guise de nom de feuille tu redonnes un n ud d'arbre, tu obtiens une structure beaucoup plus rigo- qui sont dedans. Si on met un ordre de changement de A trac ET un drawwith alors L TEX ex cute les deux, lote que je te laisse le soin de d couvrir plus loin. c'est dire qu'il change de trac et qu'il enregistre L' tape suivante est de mettre des noms non trac apr plus sur les n uds et les feuilles, mais aussi sur les qu'il DEVRA changer de pr c dent s. arbre binaire, Transformons l'arbre en branches, par exemple pour indiquer la signi cation avec les deux relations dessous et cot . On obtient la d'une relation. Pour ce faire, on indique le nom de la gure 8 page suivante. branche comme param tre optionnel entre crochets. conviens l'arbre obtenu n'est pas Gardons notre sou e pour l' tude d'un cas simple ul- plusCertes, j'enmais il correspond ce qu'indiquedes discrets, la t rieurement. th orie pour convertir un arbre n-aire en arbre biEn n, l'ultime ra nement, le choix du type de o cela tourne au c'est trac pour les branches. Le truc s'appelle drawwith naire. L mais bon, a c'est gag, grave.sur la longueur du code, pas et permet d'utiliser les types de trac fournis par epic et eepic. C'est dire, les m mes que pour eclbip. pas Bon, le code de l'exemple, pour que tu ne te sentes frustr : Voyons tout de suite l'exemple un peu tordu que je te promets depuis fort longtemps. Il s'agit d'un b te setlength GapDepth 1.5cm setlength GapWidth 0.5cm petit arbre ternaire. D'abord le r sultat : drawwith drawwith drawline dottedline 3
racine gauche centre droite niv 1g niv 1c niv 1d gauchecentre droitegauchecentre droitegauchecentre droite feuil1 feuil2 feuil3 feuil4 feuil5 feuil6 feuil7 feuil8 feuil9
begin bundle racine chunk dessous begin bundle niveau 1g chunk dessous begin bundle feuille1 chunk dessous chunk cot 'e begin bundle feuille2 chunk dessous chunk cot 'e feuille3 end bundle end bundle chunk cot 'e

29.4 Le package ecltree

chunk gauche feuil1 chunk centre feuil2 chunk droite feuil3 drawwith drawline end bundle chunk centre begin bundle niv 1c chunk gauche feuil4 chunk centre feuil5 chunk droite feuil6 drawwith drawline end bundle chunk droite begin bundle niv 1d chunk gauche feuil7 chunk centre feuil8 chunk droite feuil9 drawwith drawline end bundle drawwith dottedline 3 end bundle

Regardons tout de suite le code source correspondant :


begin bundle chunk gauche racine begin bundle niv 1g

85

racine dessous niveau 1g dessous feuille1 dessous cot feuille2 dessous feuille4 dessous cot feuille5 cot niveau 1c cot niveau 1d dessous feuille7 cot cot

dessous cot feuille3 dessous cot dessous cot feuille6 feuille8 dessous cot feuille9
Figure 8: Exemple d'arbre complexe avec ecltree
begin bundle niveau 1c setlength GapDepth 1cm chunk dessous begin bundle feuille4 chunk dessous chunk cot 'e begin bundle feuille5 chunk dessous chunk cot 'e feuille6 end bundle end bundle chunk cot 'e begin bundle niveau 1d chunk dessous begin bundle feuille7 chunk dessous chunk cot 'e begin bundle feuille8 chunk dessous chunk cot 'e feuille9 end bundle end bundle chunk cot 'e end bundle end bundle end bundle chunk cot 'e end bundle

Une petite remarque : si le drawwith avait t plac la n comme je le pr conisais pr c demment, alors il n'aurait pas t transmis aux di rents n uds de l'arbre, seule la racine aurait eu deux trac s di rents pour ses deux branches. Saches, en n, que pour que cet arbre ne soit pas trop crado, j'ai du r -adapter certains param tres d'espacement. Ces param tres d'espacement sont au nombre de trois : GapDepth Hauteur de l'espace entre deux n uds cons cutifs. GapWidth Largeur de l'espace entre deux n uds adjacents. EdgeLabelSep Hauteur du nom de la branche, mesur e depuis le bas de la branche.

30 Dessins inclure

A Le plus souvent, on pr ferera ne pas coder tous ses 30.1 Inclusion de code L TEX ATEX bestialement, parce que a demande dessins en L quand m me pas mal de temps. C'est pourquoi il est Certains logiciels sont directement capables de possible d'inclure des dessins fait avec d'autres logi- produire du code compr hensible par L TEX. C'est, A ciels plus adapt s. entre autres, le cas de X g et gnuplot. On utilisera alors les commandes pr vues par A L TEX en standard pour inclure le chier ainsi proPour cela, deux solutions sont envisager. duit :
86

begin figure input nom_du_fichier caption Titre de la figure end figure

30.2 Inclure du PostScript graphics

Pour l'inclusion des dessins PostScript encapsul s, il est des choses retenir, comme la disparition ou plus exactement l'incompatibilit  de l'ancien epsf qui permettait tant de choses de mani re assez simple. Toutefois, un rampla ant est arriv . Il s'appelle graphics. Ce package nous est o ert par David Carlisle 18 . Il o re quelques commandes comme me le montre le chier .log que je ne souhaite rigolotes, selon le driver qui lui est impos . Le driver pas te montrer. de l'ESIEE est dvips. On aura donc soin d'inclure le Le package graphics est d'ores et d j pr vu pour package comme cela : tre tendu, par exemple en lui apprenant a g rer d'autres types de chiers qui seront inclure avec usepackage dvips graphics des directives sp ci ques. A priori rien d'autre que le La premi re commande importante est celle per- PostScript n'est pr vu par les drivers que ce soient drivers d' crans ou l'ESIEE mettant d'inclure un graphique dans un document des sont les plus standardd'imprimantes deCette d qui dvips et xdvi. A L TEX2" . claration n'a donc que peu d'int r t, si ce n'est de permettre de futures extensions. Je t'en donne tout includegraphics fichier.ps de m me la syntaxe : viendra placer l'endroit courant le dessin contenu DeclareGraphicsRule ext type readfile command dans le chier qui est pass en param tre. Le syst me utilisera cette r gle de lecture pour tous les chiers qui porteront l'extension ext  ventuellement d tect e avec les commandes vues pr c 30.3 Extensions rigolotes demment. Ces chiers seront rattach s au type g Le premier r glage, mais aussi probablement l'un n rique type. Par exemple, si ps et eps ne sont pas des plus int ressant, est celui permettant de d nir en forc ment g r s exactement de la m me fa on, ils interne le chemin de recherche des chiers contenant sont toujours indiqu s pareillement au driver nal, A les images. Par d faut, L TEX2" cherchera ses images seul leur pr traitement sera chang pr sence ou non aux m mes endroits que les chiers sources TEX et d'une BoundingBox, par exemple. Le troisi me paraA L TEX. C'est un peu restrictif. En indiquant : m tre, readfile indique l'extension du chier lire A r ellement lors de la compilation L TEX pour obtenir graphicspath EPSF images . les informations. Par exemple, ton chier toto.ps qui ne contient pas de BoundingBox, tu as la possibilit A tu indiques L TEX2" trois voies de recherche pos- d'en mettre une dans toto.bb faite la main ou insibles : le r pertoire EPSF se trouvant la racine, le terpol e par ailleurs et d'indiquer L TEX bb en guise A r pertoire images se trouvant dans le r pertoire cou- de readfile pour qu'il lise toto.bb et qu'il trouve rant et le r pertoire courant celui-ci est tout fait tout seul ses infos. Le driver qui lira le .dvi pour inutile, il est toujours pris en compte. A priori la liste sa part ne verra que toto.ps. C'est assez pratique est balay e dans l'ordre indiqu . comme tu le verras. On peut aussi indiquer des extensions par d faut, Le dernier param tre, savoir command permet par exemple, si je sp ci e d'indiquer le texte qui sera pass au driver via le .dvi en fonction du nom qui sera pass la routine DeclareGraphicsExtensions . toto,ps,eps d'inclusion du graphique. Un exemple bien sympathique : indique au syst me qu'il doit chercher dans cet ordre, DeclareGraphicsRule ps.Z eps ps.bb `zcat 1 si aucune extension n'est indiqu e, les chier .toto, fait en sorte que puis .ps, puis en n .eps. Si aucun n'est pr sent, il indiquera un chier absent. . toto,ps,eps includegraphics toto.ps.Z Ainsi, le petit dessin ci-dessous est inclus par vienne bien inclure le bon chier  quivalent de toto.ps si sa BoundingBox est bien dans includegraphics Garf_02c toto.ps.bb. On peut tout a fait crire le joli petit A et L TEX se chargera tout seul de savoir que c'est un script suivant sous Unix, et alors a devient carr .ps. ment beau : 87

angle width height scale clip draft

Permet de sp ci er l'angle de la rotation. Permet d'imposer la largeur. Impose la hauteur. Indique un facteur de zoom qui devra tre le m me en horizontal et en vertical. Indique si on doit clipper le graphique ou non. On peut sp ci er clip=true ou clip tout seul. Indique un mode brouillon. a marche comme clip.
Tableau 60: Clefs utilisables par graphicx

la hauteur totale hauteur plus profondeur qui sera prise en compte et non plus la hauteur seule. Comme d'habitude lors de la manipulation des bo tes, les longueurs height, depth, width et totalheight d signent respectivement la hauteur, C'est b te comme ch vre mais a marche souvent as- la profondeur, la largeur et la hauteur totale de la sez bien et c'est pas mal du tout utiliser. bo te avant zoom. Ainsi
! bin tcsh set nom=`dirname $1` `basename $1 .ps` grep BoundingBox $nom.ps $nom.ps.bb compress $nom.ps

30.4 Rotation PostScript

resizebox

linewidth

height

bo ^ite

Le package graphics permet d'e ectuer la rota- viendra tirer la bo te sur toute la ligne sans en chantion de n'importe quelle bo te de texte ou de dessin ger la hauteur. Juste comme ci-dessous : A sous L TEX2" . bo te C'est vachement dur utiliser :
rotatebox angle boite

angle

est en degr s dans le sens trigo.

30.6 Une syntaxe plus intuitive encore : le package graphicx

Un exemple :
rotatebox 45

obtenu avec :

exemple

Facile. Th oriquement le point de rotation est le point gauche de la ligne porteuse de la bo te.

Les commandes d nies dans graphics aussi puissantes qu'elles soient ne sont toutefois pas toujours tr s simples utiliser. Le package graphicx se charge de simpli er la syntaxe de bien des commandes. L'id e de base est d'a ecter des valeurs des mots clef. Par exemple pour que le dessin soit de la m me largeur que la ligne o il se trouve :
includegraphics width= linewidth fichier.ps

On peut aussi demander la largeur d'une demiDeux m thodes : soit on indique les facteurs ATEX calcule la taille nale, soit on in- ligne, mais centr : de zoom et L A dique la taille nale et L TEX calcule les facteurs begin center de zoom. Il n'y a aucune raison que le zoom soit le includegraphics width=0.5 linewidth fichier.ps m me horizontalement et verticalement. end center Tout d'abord indiquons le facteur de zoom : D'autres clefs que width peuvent tre utilis es. scalebox hscale vscale boite Elles sont r f renc es dans le tableau 60. Attention, l'ordre dans lequel on sp ci e les choses Si vscale n'est pas sp ci alors sa valeur par d faut peut in uer fortement sur le r sultat. Par exemple est celle de hscale. Ensuite regardons le cas o l'on sp ci e la dimen- height=1in,angle=90 sion : indiquera une LARGEUR de un pouce puisque le resizebox largeur hauteur boite zoom est e ectu avant la rotation, alors que Si l'une des deux longueurs est remplac e par ! angle=90,height=1in alors elle est calcul e de fa on ne pas d former l'objet respect du rapport d' chelle. Si on sp ci e fera le contraire, et l'image aura donc un pouce de resizebox* comme nom de commande, alors c'est HAUT. 88

30.5 Zoom PostScript

exe

mp

le

31 Production des dessins inclure


31.1 X g
Plusieurs formats sont possibles pour r cup rer un dessin fait depuis X g : A 1. Le code L TEX inclure. Pour l'obtenir, dans le menu Export de X g, choisit le format LaTeX picture + eepic macros dans le menu Export, indique un nom de chier, puis exporte. 2. Le code PostScript. Pour l'obtenir, c'est pareil, sauf qu'il faut choisir Encapsulated Postscript. La grande di rence entre les deux est que PostA Script permet tous les dessins l o L TEX en interdit certains les gris s, par exemple. Donc, par prudence, si tu dois simplement travailler l' cole o tu disposes d'une bonne imprimante PostScript, utilise de pr f rence l'encapsul PostScript. Par contre, si tu es amen travailler sur ton ordinateur personnel, le A code L TEX sera accept par toutes les imprimantes.

31.3 Mathematica

Commen ons par produire le graphique juste un exemple, pas plus :


A= 1,9,38,79,102,79,38,9,1 B=Transpose A .A ListPlot3D B

Et on voit l' cran le joli dessin de la gure 9 page suivante. Maintenant que nous obtenons la courbe, g n rons le chier PostScript inclure dans le docuA ment L TEX : 1. Tra ons un graphique. Par exemple :
In 15 = ListPlot3D B Out 15 = -- Surface Graphics --

2. Exportons-le en pseudo PostScript, ce que j'appelle le mps :


Display "fichier.mps",15

31.2 Gnuplot

C'est un logiciel gratuit o ert par GNU, tout comme X g qui permet de tracer tout un tas de courbes partir d'une fonction ou d'un chier de valeurs. Il fonctionne sur peu pr s tous les types d'ordinateurs. Pour obtenir une sinuso de65, c'est facile :
plot sinx

3. Une fois sorti de Mathematica, convertissons en PostScript :


psfix -epsf fichier.mps fichier.ps

4. Reste plus qu' inclure pour obtenir la gure 9 page suivante.

Pour plus d'informations :


help plot

31.4 Khoros

Ou plus g n ralement
help

Pour obtenir un chier depuis Khoros qui foncA tionne avec L TEX, proc der comme suit : 1. Choisir l'option Print image dans le menu Output. 2. Indiquer comme commande d'envoi l'imprimante
| grep -v initgraphics ... nom.fic.ps

L encore, le choix du type de chier produire et donc de la fa on de l'inclure apr s s'o re toi. 1. Le PostScript
set term postscript portrait set output "mon_fichier.ps" plot sinx set term X11

3. Penser

output

mettre sur

NO

l'option

Force page

65 Des fois que t'aurais pas tout bien compris, les commandes donn es ici concernent gnuplot et non pas L TEX. Donc elles A A sont utiliser avec gnuplot, pas avec L TEX.

Le r sultat de tout ce travail pourra tre l'image La derni re ligne servant repasser en mode de la gure 10 page suivante. normal, pour visualiser d'autres courbes l' cran, par exemple. A 31.5 xv 2. Le code L TEX Ce logiciel est capable de lire peu pr s tous les set term latex formats d'images classiques gif, jpg, tiff, et bien set output "mon_fichier.tex" d'autres. Il est capable de sauvegarder en PostScript plot sinx avec tout un tas d'options et de r glages possibles. set term X11 Le seul point important est de rester en PostScript, Qui fonctionne similairement. le reste n'est qu'une question de go t. 89

10000 7500 5000 2500 0 2 4 6 8 2 4

8 6

Figure 9: Graphique Mathematica

Figure 10: Image export e depuis Khoros

90

32 Sch mas lectroniques


A Il existe un vieux reste de L TEX 2.09, crit autrefois pas Dieter Jurzitza 54 qui fonctionne presque A encore avec L TEX2" et qui permet de faire des sch mas lectriques bas s sur les diodes, les transistors, les r sistances, les bobines et quelques autres petites choses. Je donne juste un exemple pour montrer que a marche. De toute fa on c'est assez lourd utiliser et personnellement je pr f re de tr s loin dessiner tout a avec X g. De plus il existe des choses plus r centes et plus e caces pour faire le m me travail. Simplement, j'ai pas eu le temps de les explorer, alors c'est pas dans cette doc. Si un jour il y a un autre fascicule racontant A d'autres extensions de L TEX2" , alors a sera s rement dedans. Toujours est-il que pour utiliser ce truc il te su t d'inclure le chier e_symbol par exemple avec un
input e_symbol
 put3.5,7.5 line0,1 1.0 n fet 3.5 8.5 l put3.8,8.0  $T_2$  put3.5,9.5

line0,1 1.5 11

vwiderstand 3.5 put3.8,11.5  $R_2$ 

put3.5,13 line0,1 0.5 put3.5,13.5 circle* 0.1 put3.5,10.5 put3.5,10.5 put4.5,13.5 put4.5,13.5 circle* 0.1 line1,0 2.5 circle* 0.1 line0,-1 1.0 11.5

L'exemple, c'est la gure 11 page 93 et le code source c'est le suivant. Oui, moi aussi j'ai trouv a rigolo que les noms des symboles soient donn s en allemand...
unitlength8mm begin picture 15,14 thicklines put0,0 makebox10,14 put2.5,0.5 line1,0 7.0 put9.6,0.5 circle 0.2 put9.0,0.8  $-V_B$  put1.5,13.5 line1,0 8.0 put9.6,13.5 circle 0.2 put9.0,13.0  $+V_B$  put2.5,0.5 line0,1 0.5

vkondensator 4.5 put4.8,11.5  $C_1$  put4.5,10.5 put4.5,10.5 put5.5,13.5 put5.5,13.5

circle* 0.1 line0,1 1.0 circle* 0.1 line0,-1 0.5 11

vwiderstand 5.5 put5.8,11.5  $R_3$  put5.5,11.0

line0,-1 8.25 o

zdiode 5.5 1.25 put5.8,1.5  $ZD_1$ 

vwiderstand 2.5 1.0 put2.8,1.5 Widerstand R1  $R_1$  put2.5,3.0 line0,1 0.5 l n n

put5.5,0.5 circle* 0.1 put5.5,0.5 line0,1 0.75 put5.5,4.25 circle* 0.1 put5.5,4.25 line-1,0 2.0 put4.5,9.0 line0,-1 2.5 put4.5,6.5 line-1,0 4.3 put0.1,6.5 circle 0.2 put0.0,6.0  $+E$  put7.0,13.5 put7.0,13.5 circle* 0.1 line0,-1 0.5

biptrans 2.5 3.5 put3.3,3.5  $T_3$  put2.5,5.0 put2.5,7.5 put1.5,7.5 put1.5,7.5

line0,1 2.5 circle* 0.1 line1,0 2 line0,1 1 n

vwiderstand 7 11 put7.3,11.5  $R_4$  biptrans 6.0 9.75 put7.3,10.0  $T_4$  put7.0,9.75 r p i

fet 0.5 8.5 r put0.8,8.0  $T_1$ 

put0.2,9 line1,0 0.3 put0.1,9.0 circle 0.2 put1.5,9.5 line0,1 4 put0.0,9.3  $-E$

line0,-1 0.5

diode 7 9.25 u put7.3,8.25 

91

$D_1$  diode 7 7.75 u put7.3,6.75  $D_2$  diode 7 6.25 u put7.3,5.25  $D_3$  put7.0,4.75 vwiderstand 7.0 put7.3,1.5  $R_5$  put7.0,1.0 put7.0,0.5 put8.5,13.5 put8.5,13.5 line0,-1 2.25 1.0

 put7.0,9.5 put7.0,9.5 circle* 0.1 line1,0 0.5 7.0

vwiderstand 8.5 put8.8,7.5  $R_6$  put8.5,7.0 put8.5,7.0 put9.4,7.0

circle* 0.1 line1,0 0.9 circle 0.2 5.0

vwiderstand 8.5 put8.8,5.5  $R_7$ 

line0,-1 0.5 circle* 0.1 circle* 0.1 line0,-1 3.25 r n n

biptrans 7.5 3.75 put8.8,4.0  $T_6$ 

biptrans 7.5 8.75 put8.8,9.0  $T_5$

put7.0,4.5 circle* 0.1 put7.0,4.5 line1,0 0.5 put8.5,3.75 line0,-1 3.25 put8.5,0.5 circle* 0.1 end picture

92

+VB

R2

C1

R3

R4 T4

,E

T1 T2 D1 D2

T5 R6

+E

D3

R7 T6


R1

T3

ZD1

R5

,VB

A Figure 11: Premier essai de symboles lectroniques avec L TEX

93

94

Bibliographie, index
Toute la partie sur la bibliographie sera sur une seule colonne pour permettre aux lignes d'exemple parfois longues d' tre crites dans une taille lisible. Il eut t d sagr able d'utiliser une police de corps 4 ou 5 pour des exemples importants.

33 Introduction
Bon, pour rien te cacher, tu viens d'attaquer un monstre. Produire une bibliographie a toujours t un A casse-t te. a l'est plus encore avec L TEX. Si tu es emmard, c'est la seule intro dont tu aies besoin; sinon le reste n'est pas d nu d'int r t. D j les typographes d'antan n'aimaient pas les bibliographies. D'abord parce que c'est un jeux foireux de r f rences. En e et, si dans le texte tu parles de 45 comme d'un article sur la sexualit des mouches et qu'en bibliographie la r f rence 45 t'indique le petit Larousse illustr , c'est que quelque chose a merd A quelque part. Pour cela, L TEX, en g n rant lui-m me toutes les r f rences, t' vite tout probl me. Ensuite, chaque livre  quasiment  a sa mise en page de la bibliographie. Si tu regardes deux articles dans deux revues scienti ques di rentes, tu trouveras deux pr sentations di rentes, et c' tait d j le cas le si cle dernier. C'est ce merdier ambiant qui justi e la foultitude de styles di rents. A En fait, le but ouvertement vis par la communaut des utilisateurs de L TEX est de g rer les bibliographies A comme L TEX g re les documents, c'est dire que tu indiques la logique du truc, et le soft se charge d'en d duire une mise en page que tu pourras changer en retouchant juste quelques d tails, par exemple en red nissant une commande ou deux, ou plus typiquement en chargeant un autre chier de style.

34 Approche manuelle
Avant toute chose, je la d conseille, mais tu n'es pas oblig de m' couter. Si tu me fais con ance, passe la section suivante66. L'approche manuelle est assez enfantine, elle repose sur une commande et un environnement. L'environnement : thebibliography, et la commande bibitem. L'environnement prend un argument : la plus large des r f rences; et la commande, elle, prend un argument optionnel la r f rence et un argument obligatoire la clef. Un exemple rapide :
begin thebibliography 99 bibitem Irving1 J. Irving, bibitem Irving2 J. Irving, end thebibliography textit Le monde selon Garp , Seuil, 1986. textit Un mariage poids moyen , Seuil, 1988.

donnera :

R f rences
1 J. Irving, Le monde selon Garp, Seuil, 1986. 2 J. Irving, Un mariage poids moyen, Seuil, 1988. Un doigt d'explication : 1 J'ai pris 99 comme r f rence la plus large parce que j'ai suppos que ma bibliographie contiendrait moins de 100 r f rences et qu'elles y sont num rot es depuis 1. 2 Je n'ai pas sp ci la r f rence produire parce qu'une version num rot e me satisfaisait. 3 J'ai d cr t qu'il fallait mettre le titre en italique parce que c'est l'usage. Tu me diras bien vite qu'une biblio laquelle on ne fait pas r f rence c'est d bile. J'en conviens. Parlons donc de 1 et 2 , ou plus bri vement de 1, 2 qui sont les deux livres de John Irving que je cite en bibliographie. Pour ce faire, trois commandes :
66 C'est un manuel dont vous tes le h ros.

95

cite Irving1 cite Irving2 cite Irving1,Irving2

Maintenant, si tu pr f res l'autre grand classique qui consiste mettre les trois premi res lettres du nom de l'auteur et l'ann e de parution comme r f rence, libre toi :
begin thebibliography WWW99 bibitem IRV86 Irving3 J. Irving, bibitem IRV88 Irving4 J. Irving, end thebibliography textit Le monde selon Garp , Seuil, 1986. textit Un mariage poids moyen , Seuil, 1988.

donnera :

R f rences
IRV86 IRV88 J. Irving, Le monde selon Garp, Seuil, 1986. J. Irving, Un mariage poids moyen, Seuil, 1988. Sit t que tu citeras le second livre, tu obtiendras IRV88 . Si j'ai pris des clefs di rentes c'est parce qu'il est n cessaire de di rencier les deux r f rences puisque tel est mon propos ! Voil , tu sais tout faire. C'est dire que tu as toute latitude pour faire ce que tu souhaites, et si jamais ton but tait de respecter une mise en page impos e par une revue, un diteur, un chef : : :  tu es libre de te tromper !

A 35 Les commandes LTEX


cite commentaire clef1,clef2,...

La premi re commande retenir est celle permettant de faire une citation :

fait r f rence aux livres ayant comme clef d'acc s clef1, clef2 : : : avec le commentaire donn , par exemple, cite page 30 texbook donnera 58, page 30 . La seconde commande retenir est celle indiquant les chiers de la base de donn es bibliographiques exploiter :
bibliography fichier1,fichier2...

indique que les donn es utilis es sont dans les chiers fichier1.bib, fichier2.bib : : : La troisi me commande est celle indiquant le style de mise en page et de formatage utiliser :
bibliographystyle plain

Attention, dans un m me document il ne peut y avoir : 1. qu'un seul bibliographystyle 2. qu'un seul bibliography chacun devant se trouver apr s le
begin document

La commande indiquant les chiers de base de donn es bibliographiques, savoir bibliography, produit aussi la biblio elle-m me, c'est dire que c'est l o se trouve cette commande que la bibliographie se trouvera. On la trouve d'habitude en n de document, tout pr s de bibliographystyle. La quatri me commande est celle permettant de faire appara tre un ouvrage en bibliographie sans le citer explicitement dans le texte. En e et, le syst me de g n ration automatique de bibliographies ne met dans ladite bibliographie que les ouvrages cit s pour permettre, par exemple, l'utilisation de chiers .bib beaucoup plus g n raux et beaucoup plus vastes que les stricts besoins du document en cours. Cette commande est :
nocite clef1,clef2...

96

elle admet une variante rigolote :


nocite *

qui permet de voir appara tre tous les ouvrages de tous les chiers de la base de donn e. Un d tail cependant : dans certains styles les ouvrages sont class s dans la biblio dans l'ordre o ils sont cit s. Un nocite * fait semblant de citer tous les ouvrages des chiers .bib dans l'ordre o ils y apparaissent, donc si un nocite * appara t en d but de document, les ouvrages seront class s dans l'ordre o ils sont dans les chiers .bib. Alors que si le nocite * apparait en n de document, les ouvrages appara tront dans l'ordre o ils sont cit s, ceux qui ne le sont pas ne venant qu'apr s.

36 Production de la bibliographie

Le programme clef est BibTEX. Il lit plusieurs chiers : 1. Le chier .aux pour savoir les livres cit s l'ordre des citations le style de la bibliographie g n rer les chiers .bib utiliser 2. Les chiers .bib pour avoir les donn es utiliser 3. Un chier .bst d nissant le style de la bibliographie. Il produit deux chiers : 1. un chier .bbl qui contient la bibliographie nale mise en page convenablement et qui sera inclus par bibliography. 2. un chier .blg bib-log qui contient un listing des ventuelles erreurs trouv es similaire au chier .log produit par TEX. Il se lance comme suit :

bibtex nom

o nom.aux est le chier .aux principal, c'est dire que  priori nom.tex est le chier que tu compiles pour produire ton document.

37 Le chier de bibliographie
Tout d'abord comprendre le principe : on travaille en indiquant BibTEX le type du document, puis toutes les infos dont on dispose, ou, plus raisonnablement, les infos qu'on souhaite lui donner. Un exemple pour comprendre :
@BOOKtexbook, author="Knuth, Donald Ervin", title="The TeX book", publisher="Addison-Wesley", year=1984 

Un doigt de terminologie : BOOK est un type de document, ou type d'entr e dans le chier, author est un champ de cette entr e, texbook est la clef, "The TeX book" est le contenu d'un champ. Quelques chi res pour faire peur : 14 types di rents, 24 champs possibles, 3 sortes de champs. 97

38 Les champs
Ils sont donc 24 possibles :
address annote author booktitle chapter crossref edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year

Certains semblent redondants institution et organization, par exemple ou idiots howpublished. D'autres peuvent laisser dubitatif booktitle et title quant au choix faire. D broussaillons un peu : dans un rapport de conf rence, il y a plusieurs papiers ayant chacun un titre propre, alors que le livre qui les contient tous le rapport67  a un titre lui. C'est aussi dans ce cas l que le champ pages peut tre utile. Selon le type d'entr e dont il fait partie, un champs peut tre : Oligatoire: il est jug obligatoire, et g n ralement on imagine mal une entr e de ce type l qui n'ait pas ce type de renseignement fournir. Par exemple, l'auteur d'un livre. Au pire, c'est le c l bre anonyme. Optionnel: il a un sens, mais n'est pas exig . Si on lui attribue une valeur alors il sera peut- tre utilis pour produire le texte nal, mais pas forc ment. Tout d pendra du type de bibliographie qui sera demand e. Ignor : il n'est ni obligatoire ni optionnel. On le met que si on est tr s rigoureux, ou pour s'en servir comme aide m moire, genre notes de lecture68 . Plusieurs points sont retenir : La saisie d'un nom : de mani re rapide, disons que l'on doit respecter la forme suivante : Noms, Jr., Pr noms. BibTEX se chargera, partir de l , de faire la mise en page n cessaire ne mettre que les initiales du pr nom, changer l'ordre : : : . Quand il y a plusieurs auteurs, le mot and les s pare, par exemple, pour A le L TEX Companion :
author="Mittelbach, Frank and Samarin, Alexander and Goossens, Michel"

La virgule est importante. En e et, il e t t quivalent d' crire :


author="Frank Mittelbach and Samarin, Alexander and Michel Goossens"

Elle prend en fait tout son sens dans les noms longs, complexes, ou particule. Si le and est entre accolades  and  alors il perd son aspect de mot clef. En n, si la liste des noms est trop longue, on peut toujours contourner le probl me :
author="Benjamin Bayart and Pascal Vincent and others"

Pour voir le r sultat produit, il te su rait de te r f rer 7 dans la bibliographie g n rale de cette doc si cette fonctionnalit xistait en fran ais. Mais a n'est pas le cas. En e et, en fran ais, il est consid r comme tant de bon go t de donner la liste compl te des auteurs, alors qu'en anglais on juge plut t de bon go t de perdre les auteurs mineurs dans un g n rique et al. qui vient du latin et qui signi e et autres. Donc cette construction est proscrire en fran ais puisqu'elle produit 7 , ce qui n'est pas le r sultat que l'on pouvait l gitimement esp rer. Les accents peuvent poser probl me ! Ne serait-ce que pour le classement alphab tique. Retiens simplement que, pour la typo comme pour le classement,
commandequelconque lettre

de donner via un programme et un style sp ciaux tout le contenu toutes les infos de toutes les entr es de la base de donn es bibliographiques.

67 Ce que les anglais appellent proceedings. 68 Il me semble que dans certains cas extr me, il est parfois imprim . Le cas extr me type, c'est quand on demande L TEX A

est quivalent cette lettre. Par exemple :

98

' e

^ o

me

est la fa on la plus id ale de saisir le pr nom J r me comme dans l'exemple 15 Cette technique est aussi utilis e pour fausser les classements. Par exemple, un livre en deux tomes, le premier, paru en 1960 t r - dit en 1975, alors que le second 1962 ne l'a pas t . Dans ton document, tu parles de l' dition la plus r cente 1975 et 1962. Si ta bibliographie est class e par auteur et par date de publication ce qui est fr quent, le tome 2 va tre avant le tome 1, ce qui n'est pas dr le. Un coup d' il sur l'astuce ci-dessous :
date=" date=" rien a rien b 1975" 1962" rien

en admettant que la commande d nir avec :


newcommand rien 1

prenne un argument et n'en fasse rien, par exemple, on peut la

Ne cherche pas comprendre ce que a veut dire, a te concerne tr s peu. Ce n'est pas moi qui A t'apprendrais programmer des macros L TEX, tel n'est pas mon but. Les abr viations. En particulier, les noms d'organismes souvent repris plusieurs fois dans une m me base de donn es, pour tre toujours cris pareillement, peuvent tre abr g s, par exemple :
@STRINGESIEE=" 'Ecole Sup 'erieure d'Ing 'enieurs en 'Electronique et 'Electrotechnique"

On utilisera ensuite, le plus simplement du monde :


school=ESIEE

ou
organization="Groupe "ESIEE

o le  sert d'op rateur de concat nation entre les deux cha nes. Certaines abr viations standard sont pr vues : jan, feb : : : pour les mois. Cela garantit qu'ils soient cris comme le demande le style de la bibliographie.

39 Les di rents types d'entr e


Il y a en tout 14 types d'entr e dans un chier de base de donn es bibliographique :
article book booklet conference inbook incollection inproceedings manual masterthesis misc phdthesis proceedings techreport unpublished

Le tableau 61 page suivante te donne, type par type, les champs obligatoires et les champs optionnels. En plus de ceux cit s dans le tableau 61 page suivante, chaque type admet un champ key qui est utilis , selon le style de la bibliographie, pour classer, faire des r f rences crois es, ou produire la r f rence qui appara t dans le texte. Par exemple, quand il n'y a pas d'auteur, on pourra prendre un acronyme la place. Exemple :
@BOOKlex-typo, title="Lexique des r `egles typographiques en usage editor="Imprimerie Nationale", year=1994, edition="Troisi `eme", key="IN"  `a l'imprimerie nationale",

sera r f renc IN94 dans les style ou on doit th oriquement prendre le d but du nom de l'auteur. Le champs note sera utilis , en particulier, pour les bibliographies dites annot es69 . Ces notes contiennent g n ralement des remarques et commentaires sur l' uvre en question. Relevons, pour n'y plus revenir, le type conference qui n'est l que par soucis louable de compatibilit avec un autre syst me appel Scribe. Je ne sais pas dans quel sens fonctionne la compatibilit BibTEX comprend Scribe, ou le contraire, ou les deux, et ne connais pas Scribe.
69 Annotated-bibliography pour nos amis anglo-saxons

99

Type
article book booklet conference inbook incollection

author, title, journal, year author editor, title, publisher, year title

obligatoire

Champs ou

ou

author editor, title, chapter pages, publisher, year author, title, booktitle, publisher, year

et ou

ou

Synonyme inutile de

inproceedings

title, year, author, booktitle

manuel masterthesis misc phdthesis proceedings

title author, title, school, year

author, title, school, year title, year, author, booktitle

techreport unpublished

author, title, institution, year author, title, note

volume, number, pages, month, note volume number, series, address, edition, month, note author, howpublished, address, month, year, note inproceedings volume year, series, type, address, edition, month, note volume year, series, type, address, edition, month, note, chapter, pages, editor editor, volume number, series, pages, address, month, organization, publisher, note author, organization, address, edition, month, year, note type, address, month, note author, title, howpublished, month, year, note type, address, month, note editor, volume number, series, address, month, organization, publisher, note type, number, address, month, note month, year

optionnel

ou ou

ou

ou

graphiques

Tableau 61: Champs obligatoires et optionnels pour chaque type d'entr e dans une base de donn es biblio-

40 Saisie d'une entr e


La saisie d'une entr e dans un chier de donn es bibliographiques devra, g n ralement, suivre les tapes suivantes, m me si dans leur ensemble elles repr sentent moins de 10 secondes de r exion.

40.1 Choix du type d'entr e

Il n'est pas aussi vident qu'il y para t, en e et, il ne faut pas confondre article et inproceedings. Ils ont souvent la m me forme, mais l'un est tir d'un magazine ou d'une revue scienti que, l'autre de minutes70 de conf rence. De m me, par soucis de rigueur, on di renciera masterthesis  quivalent du m moire de ma trise en France en plus gros et phdthesis th se de doctorat m me si les deux types d'entr e ont la m me structure. Retenons aussi la di rence entre book et inbook ainsi que entre proceedings et inproceedings. Dans un cas on parle de la globalit de l'ouvrage et dans l'autre part d'un extrait. En particulier, on se r f re rarement un ouvrage tr s long dans son entier, ou l'int gralit d'un compte rendu de conf rence. Par exemple, on fera r f rence un tome de The Art of Computer Programming 7 volumes, sauf erreur de ma part, ou l'intervention d'une personne lors d'une conf rence. Lorsque l'on fait r f rence plusieurs parties d'un m me ouvrage global, par exemple plusieurs interventions une m me conf rence, ressaisir toutes les informations, outre le surco t de saisie, repr sente un risque majeur d'incoh rence. C'est pour ce cas pr cis qu'est pr vu le champs crossref. C'est BibTEX qui se chargera de g rer tout seul les r f rences de ce type. Relevons tout de m me que les entr es qui sont ainsi r f renc es doivent se trouver dans le m me chier que les entr es qui y font r f rence, et avant celles-ci.
70 proceedings en anglais

40.2 Recherche des r f rences crois es

100

40.3 Choix des champs

En r gle g n rale, on remplira, autant que faire se peut, tous les champs possibles pour une m me entr e. Une des ambigu t es fr quentes est celle entre editor et publisher. En e et, un compte rendu de conf rence IEEE dit par IEEE, n'aura pas d'auteur, et pourra tre publi par Addison-Wesley ou Sybex. On pourra aussi viter la redondance de certaines informations, comme par exemple l'ann e. Un exemple un classique du genre :
@BOOKalmanach79-gnu, title="The 1979 GNU Almanach", publisher="Addison Wesley", editor="Free Software Foundation" 

On ne tiendra alors pas compte des protestations de BibTEX. De m me, quand les champs editor et publisher devraient contenir strictement le m me texte, ce qui est tr s rare, on pourra envisager de supprimer l'un des deux.

40.4 Choix de la clef de r f rence

Elle doit absolument tre unique et su sament claire pour que l'on puisse s'en souvenir facilement, donc viter les clowneries du genre IEEE-nn-1991-12-1825 pour indiquer un extrait de conf rence IEEE sur les r seaux de neurones71 en 1991 12e extrait, pages 1825 et suivantes. Il vaudra mieux retenir le th me et le nom de l'auteur, ou le titre.

71 nn=neural network

101

41 Principe de r alisation d'un index

Le principe de la r alisation d'un index est dans 41.2 Approche automatis e, makeindex le fond assez simple. La commande fondamentale a peu comme la retenir c'est index. Elle prend un argument, le mot mais a fonctionne unEn fait l'id e est bibliographie, en plus simple. la m me : des qui doit gurer en index. A macros L TEX et l'utilisation d'un programme externe Par exemple pour e ectuer le tri et quelques fonctions avanc es de mise en page de l'index. Le principe est simple : index index pour sp ci er que c'est ici que je parle des index72. latex toto.tex D'ailleurs tu n'as qu'a v ri er, le num o de cette page makeindex toto 102 gure bien au mot clef index dans l'index g - latex toto.tex n ral du pr sent volume. Le programme makeindex permet d'e ectuer le Cette commande viens ajouter une ligne au chier classement des entr es ainsi que quelques autres tra.idx associ ton document, cette ligne t te sui- vaux. Par exemple, lorsque qu'une entr e de l'index vante : appara t sur les pages 11, 12, 13 et 14, au lieu de faire une entr e avec 4 num ros de page, il en produira une indexentry mot clef page avec 11-14, ce qui est beaucoup plus esth tique. Ensuite, il reste bien peu de chose savoir pour Ce programme produit, partir d'un chier .idx, pouvoir naliser la r alisation de l'index, en fait, juste deux nouveaux chiers : un .ind qui est l'index en lui-m me, et un chier .ilg qui est le chier contela mise en page. nant la liste des ventuelles erreurs survenues durant l'ex cution75. 41.1 Approche manuelle De plus makeindex r glera la mise en page conform ment un chier de style donn , et accepte un C'est de loin la m thode la plus idiote et la plus mauvaise que je connaisse, mais bon, ca peut interes- certain nombre d'options rigolotes. Je rel verais simplement les plus int ressantes : -s pour xer le style ser du monde. C'est une bidouille toute simple qui consiste a de mise en page a utiliser, -o pour indiquer dans quel classer le chier .idx, par exemple l'aide de la com- chier l'index pr par doit tre crit, -t pour indiquer dans quel cheir makeindex doit crire la transcripmande unix sort : tion des erreurs qu'il rencontre  quivalent du .log A de L TEX. sort toto.idx toto.ind En e et, pour g n rer un glossaire, le principe est puis d nir la commande indexentry pour qu'elle tr s proche de celui de la g n ration d'index76, et fasse la mise en page que tu attends, par exemple73 : donc le m me programme de classement est utilis , savoir makeindex. Mais, pour di rencier le glosnewcommand indexentry 2 1, 2 saire de l'index, le chier associ , au lieu de l'extenEn n, il ne reste plus qu' inclure le chier class sion .idx, porte l'extension .glo. Et la version clasl'endroit o tu souhaites voir appara tre l'index74 : s e de ce dernier sera un chier .cls, donc la suite de commande pour un document toto avec un glossaire pourra ressembler ceci : introchapter Index
begin multicols 2 input FICHIER.ind end multicols latex toto makeindex toto makeindex -o toto.gls -t toto.glg toto.glo latex toto

72 L'index du pr sent document est r alis de mani re un poil plus complexe puisque cette doc comporte 5 index di rents. C'est plus loin, dans la section 42.4 page 104 sur le multi-indexage que j'aborderais ce type de m thode. 73 Non, je ne r pondrais pas aux questions sur comment qu'on fait pour d nir une commande? ou Dis, Benjamin, a veut A dire quoi ce qu'y y a cris l ?. Je ne donne pas de cours de programmation en L TEX. Seuls les utilisateurs avertis pourront donc utiliser ce genre de bidouille, et c'est pas un mal. 74 Pour la commande introchapter, voir la section 10 page 17 propos du package ESIEE, pour l'environnement multicols, voire la section 27.7 page 76 qui lui est consacr e 75 ilg=Index LoG 76 En gros, l'id e est d'utiliser la commande glossary au lieu de index, ainsi que toutes les commandes associ es, c'est dire makeglossary et printglossary.

Ceci dit, je n'aime pas cette approche parce qu'elle ne permet quasiment aucun ra nnement. En plus elle demande de d nir soi-m me des commandes plus ou moins complexe, par exemple si tu as besoin de faire un traitement particulier sur l'index, tu seras oblig de le programmer en TEX, ce qui est tout sauf simple. C'est pourquoi je pr f re l'approche automatis e.

En e et, invoquer quelque chose comme


latex toto makeindex toto makeindex toto.glo latex toto

102

pourrait bien crire le glossaire class dans un chier .ind ce qui serait du plus mauvais e et puisque, non seulement a craserait le pr c dent, mais a ferait appara tre le glossaire la palce de l'index.

Ben oui, mais bon, y'a l'index il est dans le chier , soit apr s un tri manuel soit apr s un tri 41.4 Changement de fonte automatique, mais il est pas encore dans mon doUn des qui fonctionne bizarement dans les cument, me diras-tu. Y f donc l'inclure. Et pour cela index, c'esttrucschangement de fonte. Par exemple, les une seule commande que l'on place l o l'on souhaite si je souhaite faire appara tre en index le mot avoir l'index : makeindex dans cette typographie l , puisque printindex c'est celle que j'ai utilis dans tout le document, la Encore que, pas tout fait. Il nous manque une premi re id e est de faire appel : A commande, celle qui indique L TEX que durant cette compilation l , il doit g n rer le chier .idx qui est index texttt makeindex la base de tout. En e et, la correction et la mise en ce qui marche tr s peu puisque c'est alors le texte page de l'index sont deux des t ches tout fait - pass en index est class comme commen ant par le nales lorsque l'on travail sur un document. Donc il caract re , ce qui n'est pas tout fait faux : : : n'est pas utile de g n rer les chiers correspondant Il faudrait donc lui que le mot est classer chaque compilation. Il vaut mieux le g n rer la sous une identit , maisdirefaire appara tre sous une demande. La commande indiquant qu'il est temps de autre. Par exemple comme ceci : g n rer ce chier donc que l'on incluera  avant le begin document  durant les derni res phases du index makeindex@ texttt makeindex travail sur le document est Ce qui se trouve gauche du @ est le mot utimakeindex lis pour d terminer le classement, ce qui se trouve Ces deux commandes ne sont pas toujours acces- droite du @ est l' tiquette qu'il faut faire appara tre sibles, en e et, il n'est pas utile d'encombrer la m - l'emplacement d termin . C'est costaud77 .
.ind

41.3 Insertion de l'index

A moire le L TEX avec tout ce qui touche l'index alors m me que l'on n'en fait pas. Donc pour ajouter les deux commandes makeindex et printindex il faudra inclure le package makeidx. Ce n'est pas une extension en ce sens que ce package est livr syst matiA quement avec le noyau L TEX.

42 Conception avanc e d'un index, multi-indexage


42.1 Utilisation avanc e
Le plus simple des ra nements que l'on peut apporter un index, apr s le changement de fonte, est la notion de sous-entr e dans un index. Par exemple, dans l'index g n ral du pr sent document, tu trouveras deux entr es entr e1 et entr e2 chacune pourvue de trois sous-entr es sous-entr e1, sous-entr e2, sous-entr e3 et sous-entr e4, ainsi que par-ci par-l quelques sous-sous-entr es. Pour saisir cet exemple j'ai fait78 :
index index index index index index index entr entr entr entr entr entr entr 'ee1@ 'ee1@ 'ee1@ 'ee1@ 'ee2@ 'ee2@ 'ee2@ textsf textsf textsf textsf textsf textsf textsf entr entr entr entr entr entr entr 'ee1 'ee1 'ee1 'ee1 'ee2 'ee2 'ee2 !sous-entr 'ee1@ textsf sous-entr 'ee1 !sous-entr 'ee1@ textsf sous-entr 'ee1 !sous-sous !sous-entr 'ee2@ textsf sous-entr 'ee2 !sous-entr 'ee3@ textsf sous-entr 'ee3 !sous-entr 'ee4@ textsf sous-entr 'ee4

Une seconde utilisation avanc e est de pr ciser que l'on parle d'un mot sur toute une portion du texte sans avoir remettre un index toutes les 5 lignes. Pour cela on placera au d but de la zone en court :
index mot|

et la n :
index mot|

C'est tr s pratique, par exemple pour indiquer qu'on parle d'index dans toute une partie d'une documentation.
77 La preuve en est que le mot makeindex est pas trop mal class dans l'index g n ral du pr sent document. 78 En n bon, pas tout fait parce que je travaille en multi-indexage, ce qui complique un poil la man uvre.

103

Une chose relativement classique dans un index, est d'avoir deux ou trois synonymes. G n rallement, on en d signe un comme tant le vrai mot, et les autres renvoient sur celui-l . Par exemple, on pourra pr voir qu'une entr e Operating System nous renvoie l'entr e plus francophone Syst me d'exploitation. Pour ce faire on utilisera le |see :
index Operating System|see Syst `eme d'exploitation

42.2 Renvoi d'une entr e l'autre

En fait l'id e directrice est bonne, et relativement simple utiliser ou impl menter. Le jeu consiste utiliser autant de chiers que d'index, appeler makeindex une fois par chier, et pr ciser aux diff rentes commandes traitant des index sur lequel elles doivent s'appliquer. Par exemple, dans le pr sent document, le fait que je souhaite r aliser 5 index est pr cis dans l'en-t te :
makeindex makeindex makeindex makeindex makeindex Com Env Gal Pak Sym

42.3 Encore plus avanc e

L'id e est de, maintenant, cherche obtenir ce que j'ai mis dans l'index du pr sent document, c'est dire o ce que je sp ci e comme argument est le nom du les lettres crites en gras va voir et tu comprendras. chier dans lequel seront stock es les informations sur Pour a c'est tr s simple, je me suis d nit un chier de style d'index et ensuite pour compiler mon l'index. la suite, pour ajouter une entr e mon index Par index j'ai utilis 79 : g n ral je faisais dans le document :
makeindex -s manuel2ep toto

Tu souhaites crire ton propre style d'index? Libre En n, les di rents toi, tu n'as qu' regarder ceux qui sont dans le r - appel, par pour imprimercommande : index j'ai fait exemple, la 80. pertoire par d faut

index Gal

entr 'ee

42.4 Multi-indexage

L c'est carr ment la dimension au-dessus. Il s'agit de faire, comme moi dans cette doc, plusieurs index. En fait c'est relativement simple. a repose sur un package qui n'est d'ailleurs plus maintenu qui s'appelle multind. D'ailleurs en plus de n' tre plus maintenu, il n'est pas document non plus : : :

Attention : Il y a un bug dans ce package sur une commander pondant au doux nom de see. Pour la corriger il est bon de charger le package ESIEE apr s multind. En e et, de longues secondes 30 ou 40 de travail attentif m'ont permis, non pas de corriger le bug, mais de le contourner sans avoir toucher au chier original multind.sty.

printindex Gal

Index g 'en 'eral

la m me place.

79 En n presque, parce que je travail en multi-index. 80 Celui qu'utilise makeindex pour aller chercher ses chiers. Je ne le pr cise pas ici puisqu'il est succeptible de ne pas rester

104

Con guration et installation 43 La librairie kpathsea


Savoir o TEX et ses acolytes doivent aller chercher leurs chiers toujours t un grand probl me. En e et, Knuth sp ci e clairement que c'est lors de l'adaptation de TEX un nouveau syst me d'exploitation que ce probl me doit tre r solu. Or, au l des ann es, ces adaptations ont t faites par de nombreuses personnes qui, au d but du moins, ne se sont pas concert es. De plus, un minimum de coh rence doit tre garanti si l'on souhaite s'y retrouver. Par exemple, si tous les chiers concernant les fontes sont un endroit de l'arborescence, tous les softs doivent le savoir : 1. TEX pour les chiers .tfm, 2. METAFONT pour les chiers .mf, 3. xdvi pour les chiers .tfm et .pk81 4. dvips pour les chiers .tfm et .pk. Et je ne parle ici que des deux drivers dvi classiques sous unix. Il doit en exister une petite centaine, tous syst mes confondus. Sous unix, pour esp rer rendre le syst me coh rent, une librairie t crite dont le r le est de trouver un chier dans l'arborescence d'un r seau d'apr s son nom. Cette librairie s'appelle kpathsea. Son utilisation garantie que toutes les applications vont bien aller chercher les chiers au m me endroit et de la m me mani re.

43.1 Trouver un chier

2. Via un chier texmf.cnf qui contient une liste des variables et de leurs valeurs. S'il existe, les valeurs d clar es dedans viennent remplacer celles sp ci es la compilation. 3. Via une variable d'environnement portant le nom de la constante red nir. Si une telle variable existe, son contenu est pris de pr f rence tout autre. On r servera volontiers ce type de con guration des corrections hyperponctuelles du genre j'ai des fontes sur mon compte et je souhaite les utiliser. Remarque cependant qu'en rajoutant un : la n de ta variable d'environnement, son contenu sera pris avant celle par d faut et non pas la place de celle par d faut. C'est assez agr able. Une liste des constantes est donn e au tableau 62 page suivante.

43.3 Syntaxe
texmf.cnf

Je vais juste te d crire la syntaxe du chier , pour les deux autres variantes, la seule di rence est qu'elles sont mono-application. La forme g n rale de chaque ligne du chier est la suivante :
variable .application

= chemin1 : chemin2 : chemin3

43.2 Con guration

L'id e est simple, un certain nombre de constantes sont d clar es dont les noms voquent des types de chiers, et leur valeur indique o les chercher. Par exemple, la constante PKFONTS indique o trouver les bitmaps de fontes au format .pk. Si l'un des programmes besoin du chier cmr10.300pk la librairie parcourera le contenu de tous les r pertoires d sign s par PKFONTS jusqu' trouver le bon chier. PKFONTS.xdvi = chemin1 Pour assigner des valeurs ces constantes, trois PKFONTS.dvips = chemin2 PKFONTS = chemin3 moyens sont possibles : Ceci r alise bien ce quoi on s'attend : xdvi fouil1. la compilation, en allant mettre les doigts dans le Make le, ou de toute autre mani re lera chemin1, dvips fouillera chemin2 et toute autre similaire ajout d'une option make, par application cherchant un chier .pk fouillera chemin3. Par contre exemple.
au moyen de xer une valeur au bidulle, donc il se comporte comme une variable. Ceci dit, durant l'ex cution d'une application donn e, il ne change pas de valeur, le bidulle, alors il se comporte comme une constante. D'o l'ambigu t .
81 Plus g n ralement les bitmaps .pk, .gf et .pxl, mais de nos jours on ne rencontre plus gu re que des .pk. 82 Oui, on parle plus souvent de variable que de constantes, bien que cela soit un abus de langage. Mais bon, on s'interesse ici

Les variables utilis es par les applications ont, par convention, des noms tout en majuscule. Mais on peut en utiliser d'autres de mani re interne au chier comme tu le verras. La liste des variables82 utilis es par les applications fait l'objet du tableau 63 page suivante. On peut sp ci er des contenus de variables selon l'application, par exemple, pour que dvips et xdvi ne cherchent pas leurs chiers au m me endroit. Lorsqu'une application lit le chier, elle retient, pour une variable donn e, la premi re qui lui convienne. Par exemple :

105

TEXMF

Variable

TEXINPUTS MFINPUTS TEXFORMATS MFBASES TEXPOOL MFPOOL VFFONTS TFMFONTS PKFONTS GFFONTS GLYPHFONTS BIBINPUTS BSTINPUTS TEXCONFIG DVIPSHEADERS TEXMFLOG TEXMFCNF

Position globale des librairies TEX. Utile pour changer d'un seul coup toute l'installation en cours d'utilisation. Position des chiers de macros pour TEX Position des chiers de macros pour METAFONT Position des formats pour TEX Position des bases pour METAFONT Position du chier tex.pool Position du chier mf.pool Position des fontes virtuelles .vf Position des chiers de m triques de fontes .tfm. Utilis par quasiment toutes les applications li es TEX. Position des fontes .pk Position des fontes .gf Position du chier texfonts.map Position des bases de donn es bibliographiques utilis es par BibTEX. Position des chiers de style de bibliographie utilis s par BibTEX. Position des chiers de con guration de dvips. Position des chiers d'en-t te de dvips. Nom du chier o , ventuellement, kpathsea listera tous les chiers utilis s avec l'heure de la recherche. Position du chier textmf.cnf.
Tableau 62: Liste des constantes d nies pour kpathsea

Sens

Application Variables utilis es TEX TEXINPUTS


TEXFORMATS TEXPOOL TFMFONTS TEXMFLOG MFINPUTS MFBASES MFPOOL TEXMFLOG BIBINPUTS BSTINPUTS TEXMFLOG TFMFONTS VFFONTS PKFONTS GFFONTS TEXMFLOG TFMFONTS VFFONTS PKFONTS GFFONTS TEXCONFIG DVIPSHEADERS TEXMFLOG

METAFONT

BibTEX
xdvi

dvips

Tableau 63: Constantes de kpathsea utilis es par chaque application

106

PKFONTS = chemin1 PKFONTS.xdvi = chemin2 PKFONTS.dvips = chemin3

L'utilisation de variables permet d'all ger certaines syntaxes, par exemple :


Fontes = user tex lib texmf fonts PKFONTS = $Fontes pk TFMFONTS = $Fontes tfm GFFONTS = $Fontes gf VFFONTS = $Fontes vf

ne fera pas ce quoi on s'attend. Toutes les applications se referreront chemin1. L'utilisation d'une variable se fait en mettant un $ devant son nom comme pour les variables d'environnement. Par exemple :

Ce qui, en plus, te permet d'indiquer explicitement la logique interne de ton arborescence. C'est PKFONTS.xdvi = chemin1 assez agr able. Je l'ai d j utilis , par exemple, pour PKFONTS.dvips = chemin2 PKFONTS = $PKFONTS.xdvi :$PKFONTS.dvips :chemin3 changer d'installation TEX en passant une seule vaAvec une telle con guration, toute autre applica- riable de usr esiee tex user tex. tion que xdvi et dvips cherchera ses chiers pk dans 43.4 Le programme kpsewhich chemin1, puis dans chemin2, puis dans chemin3. L'expression d'un chemin ressemble celle que Lorsque souhaiteras v ri la pr sence d'un l'on a sous unix, savoir une suite de noms de r per- chier sur le tuseau, par exempleerpour savoir si tu as r toires s par s par des . Un  indiquera une une fonte donn e, find te permettra de v ri er que le suite quelconque de sous-r pertoires. C'est une syn- chier existe, ou ventuellement qu'il est en double. taxe puissante. Par exemple on peut indiquer TEX Par contre, il ne te permettra pas de v ri er que T X E que ses chiers sont quelque part sous un r pertoire : ou xdvi le trouvera. Pour cel , il faudrait un proTEXINPUTS = user tex lib texmf tex gramme qui utilise le m me algorithme de recherche. C'est relativement pratique. On peut m me utili- Ce programme s'appelle kpsewhich. Je te donne juste un exemple d'utilisation titre ser cette fonctionnalit au beau milieu d'un nom de de mode d'emploi : chemin :
PKFONTS

= user tex lib texmf fonts pk

Cela indique de fouiller dans fonts tmp pk et dans fonts public cm pk et dans fonts pk, mais pas dans fonts tmp pk oldies. C'est on ne peut plus puissant.

info6 : kpsewhich cmr10.tfm tmp lib texmf fonts public cm tfm cmr10.tfm info6 : kpsewhich graphics.sty kpsewhich: Can't guess format for graphics.sty, using tex. tmp lib texmf tex latex2e packages graphics graphics.sty

44 TEX

Je vais ici supposer que tu connais TEX, que tu sais rudimentairement t'en servir, et que tu es vivement anim par l'envie de l'installer et de le con gurer. Comme tu connais d j TEX, tu sais surement que ce que l'on utilise le plus souvent ce sont des macroscommandes et non des primitives. Tu te doutes bien que pour apprendre ces macros, TEX ne relit pas les d nitions chaque fois, ce serait trop lent. En fait, TEX les lit une fois, puis fait une copie de sa m moire dans un gros chier qu'il re-lira ensuite chaque compilation. Ce chier s'appelle un format et porte l'extension .fmt. Celui que choisit TEX par d faut s'appelle plain.fmt. Quand on travaille avec ce format, on dit souvent que l'on travail en plain TEX ou encore en TEX pur. Un autre format asA sez c l bre est L TEX qui est g n ralement dans le chier latex.fmt. La m thode o cielle pour compiler un chier avec un format donn est la suivante :

44.1 Introduction, formats

la norme indique que l'on doit travailler en plain TEX. G n rallement, cela signi e que le chier plain.fmt est recherch . Sous unix, les choses sont l g rement plus subtiles. Le nom du chier de format par d faut est d termin par le nom du moteur appel . Ainsi, si tu fais une copie de tex en latex, alors en tapant
latex toto.tex

TEX cherchera tout seul, spontan ment, latex.fmt. Ce qui fait que lorsque l'on tape
tex toto.tex

il a tendance chercher tex.fmt. Note tout de suite qu'une copie n'est pas n cessaire, un simple lien symbolique su t faire son bonheur. Le vrai moteur TEX s'appelle normalement virtex. tex, latex et les autres, ne sont normalement que des liens symboliques vers virtex. tex "&latex" toto.tex Il ne nous reste plus qu' savoir cr er un format. C'est fort simple, la primitive dump rencontr e lors Notons tout de suite que les guillemets servent compilation de toto.tex entra nera une copie prot ger le & qui est un caract re sp cial sous unix. de la diate de la m moire de T X dans toto.fmt. imm E Lorsque l'on tape un d tail pr s : cette primitive ne fait pas partie tex toto.tex du dialecte TEX standard. En e et, certaines t ches 107

ne sont e ectu es que lors de la cr ation d'un forUne fois que ton language.dat personnalis mat. Par exemple, la primitive dump et le charge- est pr t, mets-le dans latex base, ainsi que ment des motifs de c sure. Pour ne pas encombrer le lthyphen.cfg en le renommant hyphen.cfg. Le A programme TEX avec tous ces morceaux inutiles, une format L TEX est alors pr t tre g n r . Dans version sp ciale g n ration de formats existe, elle latex base, lance s'appelle initex initialise TEX. initex latex.ltx

44.2 G n ration de latex.fmt

Le premier gros probl me qui va se poser ici est le choix des motifs de c sure et la fa on de les utili- 44.3 G n ration de tex.fmt ser. Je d crirais ici simplement ce que j'ai l'habitude Alors l , c'est vachement tr s simple : d'installer, savoir babel. Pour installer autre chose, cherches les informations ailleurs, par exemple dans initex plain.tex 40 pour le french de Bernard Gaulle. A Commen ons par r cup rer L TEX sur un s te ftp, puis, lorsque TEX te rends la main il te montre une par exemple sur * tapes
ftp.loria.fr pub ctan macros latex base.tar.gz

Et admire le tout joli chier latex.fmt. Il ne te reste plus qu' tout ranger sa place.

dump

Ensuite, r cup rons les packages standard fournis et puis c'est tout. Tu r cup res alors plain.fmt que tu n'as plus qu' renommer en tex.fmt. Sans comA par l' quipe du projet L TEX3 : mentaire.
ftp.loria.fr pub ctan macros latex packages.tar.gz

D compactons tout cela et commen ons l'instalA lation. Tout d'abord L TEX. On se place dans le bon r pertoire latex base et on lance
tex unpack.ins

44.4 Arborescence des chiers

qui va, en gros, g n rer plein de trucs des chiers , , , , , , : : :  et quelques chiers dont le tr s joli qui contient A la d nition du format L TEX. Passons ensuite babel. Pour cela, va dans son r pertoire latex packages babel et lance l'extraction des nombreux chiers :
.sty .cfg .def .cls .clo .fd .ltx latex.ltx tex babel.ins

On se retrouve alors avec plein de chiers des , , , , : : :  et en particulier et . Le premier indiquera quelles langues il doit apprendre, et A le second indiquera L TEX qu'il doit utiliser babel. Le chier language.dat de l'ESIEE ressemble a :
.sty .def .ldf .cfg language.dat lthyphen.cfg babel
 File : language.dat  Updated at ESIEE by B. BAYART for latex2e & babel  Purpose : specify which hypenation patterns to load  while running iniTeX english ushyph1.tex francais fr8hyph.dc portuges portug.hyphen german ghyph31.tex italian lahyph.tex ukenglish ukhyphen.tex esperanto eshyph.tex

TEX s'int resse de pr s 4 types de chiers : 1. Les chiers de m triques de fontes ou .tfm avec la variable TFMFONTS : TFMFONTS=$HomeTeX fonts tfm 2. Les chiers de formats .fmt avec la variable TEXFORMATS : TEXFORMATS=$HomeTeX ini 3. Le chier tex.pool avec la variable TEXPOOL : TEXPOOL=$HomeTeX ini 4. Les chiers de macros .tex, .sty, .cls, .clo, .def, .cfg, : : :  avec la variable TEXINPUTS. Note que les macros ayant un sens pour plain A TEX n'en ont pas forc ment pour L TEX et r ciproquement. De plus, si tu gardes un vieux A L TEX2.09 alors ses chiers de macros ne sont pas les m mes que pour le nouveau. On retiendra donc :

latex209=$HomeTeX tex latex209 latex2e=$HomeTeX tex latex2e texgeneric=$HomeTeX tex generic TEXINPUTS.latex209=.:$latex209:$texgeneric TEXINPUTS.latex2e=.:$latex2e :$TEXINPUTS.latex209 TEXINPUTS.tex=.:$HomeTeX tex

Fais tout de m me attention, les moteurs TEX normaux ne sont pas capables d'apprendre autant de langues. Celui de l'ESIEE t dop tout particuli rement. Les chiers fr8hyph.tex et autres portug.hyphen sont, eux aussi, r cup rer sur les mirroirs CTAN traditionnels, par exemple :
ftp: ftp.loria.fr pub ctan hyphenation ...

De plus, initex aura besoin des sources des formats et des motifs de c sure, que TEX ne saurait pas utiliser, alors autant les stocker part :
TEXINPUTS.initex=.:$HomeTeX TEXINPUTS=$TEXINPUTS.tex

tex :$HomeTeX initex

La derni re ligne indiquant que le comportement par d faut est celui de plain TEX, ce qui est la norme la plus usuellement admise.

108

Remarque tout de suite que j'ai cr la variable d'une maintenance par leur auteur. On y trouve HomeTeX pour que ce soit elle qui change d'une insaussi, l'ESIEE, les packages que j'ai d velopp tallation l'autre par exemple sur les stations HP ESIEE et ESIEEcv par exemple puisque j'en de l'ESIEE, elle est positionn e user tex lib texmf, assure la maintenance. alors que sur mon PC sous Linux elle est positionn e tex latex2e othercontribs usr lib texmf. Pour tous les packages qui ne font l'objet d'auLa structure d'arborescence que j'ai retenue pour cune maintenance. A les chiers de macros de L TEX l'ESIEE est simple. Tout se passe dans les deux r pertoires tex latex2e et tex latex209 tex latex20983. J'ai essay de respecter la structure A Pour tout ce qui touche L TEX 2.09. Donc, des archives CTAN le plus possible, et d'appliquer plus en d tail : l'id e simple : un package par r pertoire. On obtient alors la structure suivante : tex latex209 contrib A Tous les packages d'extension de L TEX 2.09 que tex latex2e kernel je r cup re de temps en temps sur les archives A Pour tout ce qui touche le noyau L TEX2" . Il CTAN. En n, plus exactement ceux que j'arrive y a ensuite plusisuers sous-r pertoires : inputs faire marche. Pas de di rence entre maintepour les classes de documents et autres chiers nus et non-maintenus puisque l' norme majode con g et fd pour les descripteurs de fontes A rit est non-maintenue au pro t de L TEX2" . .fd.
tex latex2e packages

Les packages livr s avec dvips et qui sont mainPour tous les packages o ciels qui sont fourtenant plus ou moins remplac s par graphics. A nis par l' quipe du projet L TEX3. On notera plusieurs sous-r pertoires, un par package en tex latex209 kernel gros : babel, tools tabularx, multicol, : : : , Les sources pour g n rer les formats, en gros. mfnfss, : : : Pour tous les packages non-o ciels que l'on peut trouver dans macros latex contrib Pour ce qui est de savoir installer un package, il supported, c'est- -dire ceux qui font l'objet te faudra te r f rer la section 50 page 112. et du .
tex latex209 musictex Bin, tout musictex.

tex latex209 dvips

tex latex2e contribs

45 METAFONT

45.1 Introduction, bases

METAFONT est un logiciel permettant de g n rer des fontes de tr s grande qualit , juste comme les 45.3 G n ration de cmmf.base aime TEX. Il fonctionne sur des principes tr s tr s Bin c'est tout pareil : similaires ceux de TEX. Comme pour TEX, il y a deux versions du programme virmf et inimf, la inimf " input cmmf.mf; dump" seconde servant faire du pr compil pour la precmmf est la base de r f rence des fontes Computer mi re. Comme pour TEX, la base on parle ici de bases Modern, c'est- -dire les plus utilis e. a permet de et plus de formats charger peut tre sp ci e par recompiler tr s rapidement ces fontes l . un & ou par un lien symbolique.

45.2 G n ration de plain.base

plain.base est la base par d faut de METAFONT. Normalement elle est cr e automatiquement lors de la compilation de METAFONT, ou fournie avec l'ex cutable. La proc dure de cr ation doit beaucoup ressembler cela : inimf " input plain.mf; dump"

45.4 Arborescence des chiers

METAFONT ne s'int resse qu' deux types de chiers : ses bases et ses sources. Les bases sont g n ralement au m me endroit que les formats de TEX variable MFBASES et ses sources sont de deux types : ceux d crivant des macros et des bases et ceux d crivant r ellement des fontes :
Fontes=$HomeTeX fonts MFBASES=$HomeTeX ini MFINPUTS=$HomeTeX mf :$Fontes src

a peut tout de m me varier un peut selon les syst mes d'exploitation r le des ", du point-virgule

83 Je parle ici de r pertoires relatifs $HomeTeX, comme tu l'auras compris.

109

46

46.1 Arborescence des fontes

xdvi

Les fontes utilis es par TEX, le plus souvent, sont des fontes li es METAFONT. Il arrive, parfois, que l'on d cide d'utiliser des fontes autres, par exemple PostScript ou TrueType. Ce cas d' cole ne m'int resse pas ici puisque, souvent, il revient simuler le cas METAFONT par des biais plus ou moins simples. Une fonte est, avant tout, un chier source .mf qui sera compil par METAFONT pour produire un chier de m triques et des chiers de description bitmap. Le chier de m trique d'une fonte donne les r gles d'espacement utiliser pour la fonte, les dimensions et r gles de positionnement de chaque caract re et les ligatures84 utiliser pour cette fonte. Un chier de bitmap d'une fonte contient le trac en point par point de la fonte une r solution donn e. Le chier de m triques porte l'extension .tfm alors que les chiers de bitmap peuvent porter des noms nissant par pk, gf ou pxl. Le plus courrant de nos jours est le pk parce qu'il prend moins de place. Le plus souvent l'extension exacte du nom de chier bitmap est .r solutionpk, par exemple .300pk pour un chier 300 dpi. Sous MS-DOS, le sch ma de nommage di rera l g rement. De plus une m me fonte 300 dpi n'aura pas exactement le m me bitmap selon l'imprimante laquelle il sera destin . Par exemple les imprimates laser et jet d'encre n'ont pas exactement le m me rendu d'un m me motif. METAFONT sait en tenir compte.

Chaque ensemble de fontes est donc structur en trois sous r pertoires : src qui contient les sources METAFONT, tfm qui contient les chiers de m triques, et pk qui contient les bitmaps au format pk. Le r pertoire pk contiendra un sous-r pertoire par mode METAFONT par imprimante di rente, en gros, ce sous-r pertorie porte le nom du mode. xdvi cherchera seulement deux types de chiers sur les fontes : les tfm et les pk. vrai dire, les tfm ne sont pas trop utiles puisqu'ils ne servent qu' v ri er que la fonte trouv e par xdvi est la m me que celle que TEX avait utilis e lors de la compilation, par exemple pour signaler les di rences entre deux installations distinctes qui changent des chiers dvi. Les trois variables utiles seront donc :
PKFONTS.xdvi=$HomeTeX fonts GFFONTS.xdvi=$HomeTeX fonts TFMFONTS=$HomeTeX fonts tfm

pk LeModePourXdvi gf LeModePourXdvi

46.2 Fichier de ressources


xdvi

Comme tous les programmes pour XWindows, fait appel un chier de ressources pour trouver certains de ses r glages par d faut. Pour ma part, j'ai pris l'habitude de m'en passer et de faire tous ces r glages via la ligne de commande. a m' vite d'avoir demander l'accord des ing nieurs syst mes et a permet les m mes choses. ce sujet, la page de man sur xdvi est tout fait claire, je ne tiens pas paraphraser.

47

dvips
M CanonCX

47.1 Arborescence des fontes

dvips utilise la m me arborescence que xdvi, mais pas forc ment les m mes bitmaps, ce qui fait que, souvent, on s pare la variable PKFONTS en deux parties :
PKFONTS.xdvi=$HomeTeX fonts PKFONTS.dvips=$HomeTeX fonts PKFONTS=$HomeTeX fonts pk

2. R solution de l'imprimante :
D 300

pk ModePourXdvi pk ModePourDvips

3. Autres r solutions chercher, faute de mieux :


R 300,600,900

On proc dera de m me pour GFFONTS. En n, dvips cherchera ses chiers d'en-t te PostScript et ses chiers de con g dans les deux variables suivantes :
TEXCONFIG=$HomeTeX dvips DVIPSHEADERS=$HomeTeX dvips :$HomeTeX

4. O set de centrage de la page, r gler avec le A document L TEX testpage.tex


O -17pt,45pt

fonts type1

47.2 Fichier config.ps


dvips

5. Fichier de sortie standard par d faut


o fichier

admet un tr s grand nombre d'options. Un grand nombre d'entre-elles sont positionn es dans le chier config.ps. Quelques options utiles tous : 1. Mode METAFONT utiliser pour g n rer les bitmaps manquants. Cette option est sur une ligne commen ant par M :
84 Une ligature c'est, par exemple, f+i=

Si l'on ne sp ci e rien, alors dvips toto cr era toto.ps partir de toto.dvi. On peut ais ment sp ci er un programme, comme c'est le cas l'ESIEE :
o |lp -dlps20

110

6. M moire de l'imprimante. dvips en tiendra compte pour la cr ation de ses chiers PostScript
m 3000000

Si on ne sp ci e pas le nom du chier g n rer, alors il est d duit du nom du chier imprimer :
dvips toto -o

Le chier config.ps permet aussi de sp ci er les formats de papier que l'on souhaite pouvoir utiliser. En r gle g n rale, tous les formats utiles sont d j d nis. Si a t'int resse de rajouter d'autres formats de papier, reporte toi 101 .

-t

cr era donc toto.ps. pour indiquer le format de papier que l'on va utiliser, par exemple pour du A4 en landscape :
dvips -t a4 -t landscape toto -o

47.3 Options de ligne de commande


dvips

Le truc savoir absolument c'est que de lancer sans aucune option lui fait a cher la liste des options qu'il comprend. Je ne donnerais donc ici que les options les plus fr quemment utilis es : -f pour le mode ltre, c'est- -dire que le chier PostScript g n r est envoy sur la sortie standard. Ainsi, par exemple, l'ESIEE, pour imprimer en recto-verso :
dvips toto -f | lpspr -K2 | lp -dlp20 -o

-p

La liste des formats de papier disponibles et leurs descriptions est dans le chier config.ps pour indiquer le num ro de la premi re page imprimer, par exemple pour tout imprimer de la page 12 la n du document :
dvips -p 12 toto

-n

pour indiquer le nombre de pages imprimer, par exemple pour imprimer les pages 12 20 incluses :
dvips -p 12 -n 9 toto

pour sp ci er le nom du chier PostScript g n rer. Par exemple :


dvips toto -o fichier.ps

Fais ga e, c'est -n 9 parce que de 12 20 a fait 9 pages, et pas 8.

48 Makeindex

48.1 Syntaxe d'appel

Bien que cela fasse un peu redite avec la section 41.2 page 102, je te rappelle que makeindex est un programme utilis pour classer les index, glossaires et autres babiolles du m me accabit. Le principe est simple : tu appelle makeindex en lui disant quel chier il doit classer :
makeidnex toto.idx

mon sens, il doit y avoir deux niveaux de conguration pour makeindex : 1. indiquer le r pertoire par d faut o se trouvent les chiers de style, 2. crire un chier de style.

Pour le premier point, ne voulant pas attaquer violament le source de makeindex, j'utilise le script Parfois, comme c'est le cas dans cette doc, on sou- suivant : haite que l'index ait une autre gueule que celle par ! bin tcsh d faut. Fastoche :
makeidnex -s fichier.ist toto.idx

est un index style85. l'ESIEE, un monstrueux script-shell a t crit pour remplacer fichier.ist par le nom complet du chier de style parce que j'ai pas trouv la variable d'environnement positionner pour obtenir que makeindex aille chercher tout seul les chiers standard. o
fichier.ist

set TeXHome= user tex set istname = ' ' restart: if  AW$1 == AW-s  then echo $1 shift echo $1 set istname = "$istname -s $TeXHome lib texmf makeindex $1" shift endif if  AW$1 == AW-s  then goto restart endif $TeXHome GEUT bin makeindex $istname $*

48.2 Con guration

Par soucis de coh rence, j'ai, pour ma part, rang les styles d'index dans le r pertoire $HomeTeX makeindex. Je ne sais pas ce qu'indiquent les habitudes o cielles en la mati re.
85 Style d'index pour les mono-francophones simplets.

Pour le second point, c'est relativement simple. Il faudrait voir a dans 81 .

111

49 BibTEX  arborescence des chiers

Pour trouver les .bst il se r f rera la variable Le mode d'emploi de BibTEX tant donn la section 36 page 97, je ne parlerais ici que de son BSTINPUTS de la librairie kpathsea, et, pour trouver les .bib la variables BIBINPUTS. l'ESIEE, a arborescence de chiers. 86 donne a : BibTEX ne s'interesse qu' deux types de chiers savoir les .bst ou bibliography style87  et les .bib BIBINPUTS=.:$HomeTeX bibtex bst BSTINPUTS=.:$HomeTeX bibtex bib qui sont les bases de donn es bibliographiques. A 50 Installer un package LTEX

50.1 Automatique dernier cri

endif latex " batchmode latex " batchmode end input $i" input $i"

Un des grands probl mes des programmeurs c'est de commenter leurs programmes et d'en crire une documentation. Si c'est un probl me pour toi, l ve qui rends un source, sache que a l'est pour tout le monde. Une grande tradition dans le petit monde de TEX est de voir listings et documentation partager le m me chier. A La tradition t reprise par L TEX2" . Les packages les plus modernes sont livr s sous la forme de deux chiers : un chier .dtx qui contient le package et sa documentation, et un chier .ins qui permet l'installation. Ainsi, pour obtenir le package dans sa forme exploitable, savoir un chier .sty et ventuellement d'autres il faut appeler

Pour certains packages, le chier int ressant sera un chier .drv et non pas .dtx. C'est selon : : :

Il s'agit de packages que je pourrais quali er de pr -moderne. Ce sont en fait les premiers avoir utilis le syst me permettant, partir du m me chier, d'obtenir la doc et le package et : : : Ce syst me se nomme docstrip. En fait, ces packages supposent que tu sais appeler la main ce programme d'extraction crit en latex toto.ins TEX. La seule fois que j'ai eu y fait appel, a a t et r cup rer les chiers utiles qui auront t g n r s. Moi, je les range dans un r pertoire, avec comme ha- pout installer le package bnf. Je vais donc t'indiquer bitude un r pertoire par packages, mais c'est chacun comment j'ai proc d pour a. Tout d'abord, j'ai lanc docstrip : comme il a envie. Pour r cup rer la doc, c'est pas franchement plus latex docstrip compliqu : Ensuite, je lui ai latex toto.dtx bnf Il faut lancer docstrip a la main comme suit : a peut devenir un tout petit peu plus complexe dans latex docstrip Puis indiquer comme extension de decertains cas, par exemple lorsqu'il y a un index et un part `doc' d'arrivee `sty' comme option `style' et historique des changements. Tout ou partie des lignes comme chier `bnf'. Ensuite il faut refaire pareil avec suivantes peut tre util : les indications doc, tex, driver et bnf pour produire bnf.tex qui est la documentation. makeindex -s gind.ist toto.idx Voici en clair, tout ce que TEX m'a racont penmakeidnex -s gglo.ist toto.glo dant l'utilisation de docstrip pour le packages bnf : latex toto.dtx Pour compiler automatiquement toutes les docs de ce type l , j'utilise ce script shell sous unix :
! bin tcsh foreach i  $*  set nom = `basename $i .dtx` latex " batchmode latex " batchmode input $i" input $i"
This is TeX, Version 3.1415 C version 6.1  tmp lib texmf tex latex2e kernel inputs docstrip.tex LaTeX2e 1995 06 01 patch level 3 Hyphenation patterns for english, francais, portuges, german, italian, ukenglis h, esperanto, loaded. Utility: `docstrip' 2.2i 1994 12 15 English documentation 1994 06 09 ********************************************************** * This program converts documented macro-files into fast * * loadable files by stripping off nearly all comments! * **********************************************************

50.2 Semi-automatique

if -f $nom.glo then makeindex -s gglo.ist -o $nom.gls $nom.glo endif if -f $nom.idx then makeindex -s gind.ist $nom.idx

**************************************************** * First type the extension of your input files: * infileext=doc **************************************************** **************************************************** * Now type the extension of your output files : * outfileext=sty ****************************************************

86 Ormis, bien entendu, les chiers .aux qui lui sont donn s en argument 87 Style de bibliographie pour toi qui ne cause pas le grand breton ais ment

112

**************************************************** * Now type the names of options to include : * Options=style **************************************************** **************************************************** * Finally give the list of input files without * * extension seperated by commas if necessary : * filelist=bnf **************************************************** . . . . . . Processing File bnf.doc style .  . . . . . . .                                                                     . . . . . . . . . . . . .       . . .      . . . .     . . . . . . . .     . . Lines processed: Comments removed: Comments passed: Codelines passed: . .               . . . .   . . .  . . 528 354 39 112 .         .  .  . .         .  .  . .         .    . .         .   . . .         .   . . .         . . . . .

**************************************************** . . . . . . Processing File bnf.doc driver .  . . . . . . . . . . . . . . . .                                                                                                             Lines processed: Comments removed: Comments passed: Codelines passed: . . . .                         528 354 39 23 . .             . .             . .             . .             . .             . .             . .            

bnf.tex . .             . . . . . *style                                                          . . . .             . .             . .             . .             . .             . .             . .             .             +driver . . .                                                                                    

bnf.sty .        . . . . .  .        .  .  .  . . . . . *style                               .       .   . . . . .    . . . .    .  . . . .        .  . .  . .        .  .   . .        .  .  . . . .       .    . . .         .  . . . .            . . .            . .            . +driver                                                . . . .            . . . . . . .    . . .

         .  .

. . More files to process y n? answer=y **************************************************** * First type the extension of your input files: * infileext=doc **************************************************** **************************************************** * Now type the extension of your output files : * outfileext=tex **************************************************** **************************************************** * Now type the names of options to include : * Options=driver **************************************************** **************************************************** * Finally give the list of input files without * * extension seperated by commas if necessary : * filelist=bnf

. . More files to process y n? answer=n Overall statistics: Files processed: 2 Lines processed: 1056 Comments removed: 708 Comments passed: 78 Codelines passed: 135  No pages of output. Transcript written on docstrip.log.

50.3 Antiquit

A Lorsque L TEX tait tr s jeune, les macros taient livr es directement sous formes de chiers .sty rarement lisibles en tous cas pas par un humain, et parfois document s, mais pas souvent. Bref, l' poque a s'installait tout seul il su sait de mettre le bon chier dans le bon r pertoire mais personne savait faire marcher les packages88.

51 Mon installation pour Linux


Comme jedispose, chez moi, d'un vulgaire PC et pas d'une jolie station de travail HP, j'ai fais une insA tallation de L TEX aussi performante sur mon PC que sur les HPs de l'ESIEE, mais comme je suis pas compl tement fou, je l'ai faite sous Linux et pas sous DOS. Cette version est disponible l'ESIEE l'URL suivante89 :

51.2 METAFONT 51.3


dvips

Bin, rien signaler.

Retenons simplement quelques r glages int ressant dans config.ps. http: www.esiee.fr ~tex forlinux En particulier : a fait cinq disquettes et c'est mis jour relativement souvent. Le mode pour les Canon BJ est bjtenex. Cette section indique simplement les quelques peLe mode pour les 9 aiguilles est epsonhi. tits r glages qui peuvent tre utiles, ou plus exactement que j'ai pu rencontrer en l'installant droite et L'o set pour les BJs est o -17pt 45pt si ma gauche chez plein de copains. m moire est bonne. Bin, c'est la version dop e comme sur nos HPs 51.4 HomeTeX pour permettre de charger autant de motifs de c sure Sous Linux, j'ai plac toute l'archive dans ce r et pour pouvoir compiler cette doc en e et, il est n - pertoire : cessaire d'augmenter certaines des dimensions de la usr lib texmf ... m moire de TEX pour y parvenir.

51.1 TEX

88 Si, leurs auteurs, des fois. Mais pas toujours. 89 Ou sur disquettes si tu me croises dans les couloirs de l'ESIEE

113

114

Divers
Un bon paquet de macros ne sont pas classables 52.2 Le package xspace dans les cat gories que j'ai pr vues, aussi j'ai cr Pour ceux d'entre mes lecteurs qui ont appris a une classe divers dans laquelle tu trouveras tout A et n'importe quoi dans un ordre a priori quelconque. crire une macro en L TEX, David Carlisle cris un Si je me d cide classer tout, a dispara tra, mais le petit package assez utile : xspace. Il l'a m me document dans 19 . contenu sera retrouv ailleurs. Imaginons que tu cr e unecommande qui produise 52.1 ftnright du texte, par exemple TeX qui produise TEX. Tu Ce package, o ert par Frank Mittelbach 74 , stri- remarqueras que si tu fais TeX en plein milieu a ctement incompatible avec le joli multicol permet fait TEXsans mettre d'espace derri re. Pour que a en de placer les notes de pieds de page sur la colonne mette un, il faut mettre une paire d'accolades derri re de droite dans des documents en twocolumns stan- l'appel la commande, comme par exemple TeX dards. Il su t de l'invoquer sans autre complica- qui produit TEX avec un espace. tion pour qu'il se mette au travail. C'est joli et efPour viter ce petit d sagr ment, si j'ajoutais un cace. Peut- tre, un jour futur, Frank Mittelbach appel la commande xspace la n de la d nil'auteur nous grati era-t-il d'une version compa- tion de TeX, alors TeX serait capable de d tecter tible avec multicols, mais il ne faut pas r ver. automatiquement s'il faut un espace ou pas. Ce package est particuli rement agr able a utiliser Par exemple, la commadne cpp d nie ci-dessous quand on se sert souvent des notes de pieds de page d tectera toute seule s'il faut un espace derri re ou et qu'on en a ras le bol de voir des places r serv es pas. pour les notes qui ne soient pas de la m me hauteur dans chaque colonne. C'est assez disgracieux, et en newcommand cpp textsc c small++ xspace plus, a g ne la lecture.

A 52 Divers packages et macros pour LTEX 2"

53 Incompatibilit s
plusieurs endroits dans cette doc j'ai voqu des probl mes de compatibilit entre certains packages. Ces probl mes devenant plus subtiles ma triser au fur et mesure que cette doc augmente, j'ai d cid de les regrouper en une section par enti re qui sera probablement celle qui sera le plus susceptible d' voluer entre deux versions de cette doc. Plusieurs sortes d'incompatibilit s sont envisager : crasement C'est le cas o deux packages diff rents d nissent la m me commande. Cela cr e un con it vident qui se manifestera de deux fa ons. Soit proprement par une erreur la compilation si les deux packages sont conformes aux normes de d veloppement de A L TEX2" c'est rare. L'erreur en question dira en gros Vous re-d nissez une commande d j d nie, c'est pas bien. Je garde la d nition pr c dente.. L'autre manifestation, totalement silencieuse, sera que c'est le package charg en dernier qui fonctionnera et pas l'autre. Il n'y a pas de rem de simple ce probl me. Con it au chargement C'est une incompatibilit qu' peu pr s seul babel est capable d'engendrer. La solution est g n ralement de changer l'ordre de chargement des packages.

Caract res actifs C'est le cas le plus subtil

d'incompatibilit . Bien que j'y ai t confront de tr s nombreuses fois, il m'arrive encore de mettre tr s longtemps trouver d'o viens le probl me. La solution peut tre soit enfantine, soit extr mement complexe. C'est le genre de probl me que j'essaye d'intercepter dans le package ESIEE. et souvent le plus incontournable d'incompatibilit . G n ralement c'est celui qui caract rise A les packages pr vus pour L TEX 2.09 qui ne foncA tionnent plus avec L TEX2" . Ce probl me est d certains packages qui red nissent certaines A fonctions du noyau de L TEX souvent output pour faire leur travail, mais ne prennent pas les pr cautions n cessaires. Le r sultat est alors immanquablement une catastrophe.

Red nition du noyau C'est le cas le plus brutal

53.1 Le package bar


C'est le cas le plus b nin de red nition du noyau puisque la commande red nie en l'occurrence n'est pas vitale du tout. Il s'agit de la commande

115

bar. Normalement, il s'agit d'un accent math matiques. Apr s lecture du package, il s'agit d'une commande de dessin : : : La solution que j'ai adopt dans la doc est un peu brutale, mais e cace. L'id e est de stocker la d nition originale de la commande bar quelque part pour pouvoir ensuite l'utiliser mon gr . Pour charger le package bar j'utilise donc la m thode suivante : let OldMathBar bar usepackage bar let NewDrawingBar bar let bar OldMathBar

lorsque array croise la macro-commande qui est associ e au caract re, il se f che tout rouge. Et des exemples comme a, j'en ai a la pelle.

53.5.1 Le package array

Le con it entre array et babel n'a lieu qu'au chargement et se r sout simplement en chargeant babel apr s avoir charg array. Bien entendu, lorsque j'indique array ici, tous ses d riv s sont concern s tabularx, par exemple. Il semble que la version de babel annonc e pour d cembre 1995 corrige cette d cience.

Et ensuite, je me retrouve avec le bar originel. 53.5.2 Le package graphics Sit t que j'ai besoin du bar de dessin, je le remet en Le package graphics, ainsi que son avatar place : graphicx pose exactement le m me probl me que let bar NewDrawingBar array, savoir que l'ordre d'inclusion des packages est primordiale textttgraphicx ou graphics puis Et vice-versa pour l'accent math matiques. babel. De m me que pour array, le probl me devrait dis53.2 Le package eufrak et les packages para tre dans la version de d cembre 1995. Du moins, les patchs que j'ai re us de J. Braams fonctionnaient de l'AMS convenablement. Nous avons l l'incompatibilit la plus propre et la moins g nante possible. C'est fort simple : eufrak 53.5.3 Le package window et les packages de l'AMS d nissent tous les deux la commande mathfrak qui d nit dans les deux cas le Pour lui le probl me c'est l'utilisation du :. La m me alphabet math matiques. Si l'on souhaite faire solution n'est pas enfantine. En fait il faut r unir pluappel aux deux packages, il su t de ne faire appel sieurs conditions pour que cela fonctionne bien : qu' la partie due l'AMS puisqu'eufrak ne contient 1. que babel soit charg avec une derni re option rien qu'elle ne contienne. qui ne soit pas le fran ais, 2. que window soit charg apr s babel, 53.3 Le package multind 3. que la commande windowbox soit utilis e dans C'est le cas typique de red nition du noyau. En une langue o le : n'est pas utilis pas le frane et, ce package crase la commande see, et la ais. remplace par une d nition ne supportant par l'internationalisation. Pour r tablir les choses convenaJe n'ai v ri si derni re version blement, il su t de charger le package ESIEE apr s pose encorepas probl me.laJe pense que non.de babel ce multind.

53.4 Les

showkeys

packages

varioref

et

53.5.4 Le package qsymbols

Il ne s'agit pas d'une incompatibilit , simplement d'un comportement trange. Explication la section 26.2 page 71.

53.5 Le package babel

Lui, c'est le gros morceau. Son principal probl me, c'est qu'il rend certains caract res actifs, et que forc ment apr s a pose des probl mes tout le monde. Par exemple, la caract re ! est rendu actif pour g rer convenablement l'espacement sp cial de ce signe de ponctuation en fran ais. C'est dire que, a chaque A fois que L TEX croisera ce caract re, il le remplacera par une commande choisie. Or, un package comme array utilise ce caract re comme descripteur de colonne dans les tableaux. Ce qui fait que forc ment,

Le caract re probl me est cette fois-ci le " qui est utilis non pas en fran ais mais en Allemand. Il semble que le probl me soit carr ment un bug dans babel et pas une simple incompatibilit . En e et, babel devrait permettre cette utilisation du caract re mais sa gestion interne se termine en A une boucle in nie, c'est dire que L TEX ne signale pas d'erreur, mais ne termine pas la compilation. Il boucle. Le seul moyen de contournement que j'ai pu trouver est de changer localement le code de cat gorie du caract re. C'est un contournement e cace pour cette doc o les particuliarit s du style germanique ne sont utiles que dans un seul paragraphe, et pas dans le reste. Dans un vrai rapport en allemand, il serait plus sage de ne pas faire appel ces raccourcis. Ou de les utiliser la hache comme je le s moi-m me.

116

Pour changer le code de cat gorie des caract res, pose de vrais probl mes c'est que contrairement on proc de comme suit : array, une simple correction de l'ordre de lecture ne semble pas r gler le probl me. Il faudra, l encore, catcode`"=12 jouer sur les codes de cat gorie. Pour cela on repasUtilisation de qsymbols: sera en caract re normal avant tout tableau utilisant A " = " B hhline puis en caract re actif apr s. catcode`"=13 Pour Un autre caract re probl me avec ce package dessus : passer en caract re normal, c'est comme ciest le point d'exclamation. En e et celui-ci est utilis pour allonger les ches, alors que le style fran ais de babel l'utilise pour r gler des probl mes d'espa- catcode`:=12 cement. Le probl me est alors que babel remplace Pour revenir en caract re actif, c'est tr s similaire : un point d'exclamation en mode math matiques par un point d'exclamation suivi d'un espace. Ce qui est un tors incontestable. On utilisera volontiers la m me catcode`:=13 bidouille pour r soudre le probl me. Ou, encore plus volontiers, le package ESIEE qui red nit un peu vioOu pourra s'amuser changer de code de cat golemment : : :  les raccourcis claviers de babel pour rie chaque hhline, a permet de rester conforme ne pas ajouter d'espace en mode math matiques. Cela la typographie fran aise dans un tableau qui contient devrait permettre au syst me de fonctionner90. du texte. Par contre a fait un peu plus de frappe La solution consistant utiliser les ches de faire. qsymbols la hache est la suivante. On remplace Une petite bidouille non test e qui pourrait "XXX" par ArrXXX et comme on la chance que mettre de d tourner habilement le probl me : perpour les ches le XXX ne soit jamais form de lettres cela se passe tr s bien. Si cela n' tait pas le cas, il A su rait d'utiliser Arr XXX. En e et, L TEX devine let Originalhhline hhline qu'un nom de commande est ni au fait qu'il croise def hhline catcode`:=12 Internalhhline un caract re qui ne soit pas une lettre. On laissera def Internalhhline1  par contre volontiers un espace apr s le XXX corres- Originalhhline 1 catcode`:=13 pondant la che que l'on souhaite produire pour Pour ceux d'entre mes lecteurs qui ne savent pas viter toute confusion. programmer en TEX pur, c'est dire la tr s grande Exemple : majorit , les questions ne seront admises sur ce bout A Arr = B de code qu'apr s une lecture attentive et d taill e du livre de Leslie Lamport  61  et de celui de Donald 53.5.5 Le package hhline Ervin Knuth  58 . Pour ceux qui ont d j lu avec Le caract re probl matique est ici le : qui est as- attention ces deux ouvrages, ils n'ont pas besoin d'exsez intens ment utilis dans ce package. L o cela plications.

90 Assertion non v ri e.

117

118

Annexes 54 Remerciements
La r daction de cette doc n'eut pas t possible sans un certain nombre de personnes. En premier lieu les gens qui m'ont directement aid s. Olivier Gutknecht qui m'a guid sur Mathematica91, Xavier B nech sur Khoros, J r me Breton qui m'a relu : : : Je dois aussi remercier les amis qui m'ont soutenu, et heberg parfois, quand je bossais sur cette doc. Citons Pascal Vincent, Pierre-J r me Gauriat, Xavier B nech, et Benoit92 Joly. Il me faut aussi remercier tous les gens qui m'emmerdent longueur de journ e, alors que j'ai mieux faire, avec des questions la con. Ils m'indiquent, sans le savoir, les points d velopper et tendre. Je ne saurais oublier mes professeurs, qui, en me demandant sans cesse d'innombrables rapports, me poussent me perfectionner. Citons Bernadette Miara TP Ananum, Olivier De Cambry projet maths, projet RdF, Mohamed Akil projet Signal, projet PTAH, Michel Couprie projet compilation, Jean-Marie Ri et TP Unix, Ren Natowicz premier module I4, projet Prolog, second module I4, et j'en oublie forc ment. En n, je tiens remercier tr s chaleureusement Frank Bonnet qui m'a toujours soutenu et n'a jamais laiss passer une occasion de m'aider. Merci tout de m me ceux qui ne m'ont pas aid , pas soutenu, qui n'ont pas lu la version pr c dente, qui s'en foutent perdument. Merci m me aux autres.

91 La majuscule Mathematica a t ajout e la demande explicite d'Olivier, qui m'a promis en change d' crire un bout de A doc sur les liens que l'on peut tablir entre Mathematica et TEX ou L TEX. En particulier sur l'utilisation des modes TEX de Mathematica. 92 Benoit, c'est bien pour te faire plaisir que je met pas l'accent sur le i.

119

Index g n ral
A
Accents, 17 Acronymes, 77 Allemand, 19, 20 Alphabets math matiques, 45 Am ricain, 19 Anglais, 21 Anglais GB, 19 Anglais USA, 19 Auteur Arseneau, 48 Bleser, 82 Border, 61 Braams, 20, 50, 75, 77 Carlisle, 50, 62, 63, 6567, 69, 71, 72, 87 Dahlgren, 59 Eckerman, 78 Fairbairns, 48 Gaulle, 18 Gibbons, 33 Goldberg, 71 Goldschmitt, 34 H lse, 72 Isozaki, 84, 85 Je rey, 33 Jensen, 47 Junker, 55 Jurzitza, 91 Kasper, 72 Kielhorn, 36 Kneser, 58, 59 Kuhlmann, 51 Lang, 82 Lavagnino, 61 Lingnau, 55 McCauley, 55 Mittelbach, 47, 62, 71, 76, 115 Oetiker, 77 Oostrum van, 53 Piotrowski, 18 Poppelier, 50 Raichle, 73 Rawley, 73 Sch pf, 47 Schal ck, 60 Sch pf, 73 Sommerfeldt, 58 Vieth, 47, 53 Wujastyk, 61 Autrichien, 19

B
B zier courbes de, 81, 82 Base, 109 Bayart, 1 BibTEX, 112 Br silien, 19

C
C sure, 20 Caract res 8 bits, 17 sp ciaux, 17 Catalan, 19 Catcode, 117 Classe, 10, 11 article, 10, 11 book, 10, 11 exam, 11 letter, 10, 11 ltnews, 11 ltxdoc, 11 ltxguide, 11 proc, 11 refman-s, 11 refman, 11 report, 10, 11 slides, 11 Option openright, 11 Optiontwoside, 11 report, 11 letter, 13 report, 11 Codage de fonte, voir Sch ma de codage de fonte Code de cat gorie, voir Catcode Compatibilit , 10 Compilation, 9 Conclusion comment faire, 13 Croate, 19

D
Danois, 19 Dessins, 86 dump, 108 dvips, 87, 110111

120

E
dition, 9 lectronique, 91 Encodage de fonte, voir Sch ma de codage de fonte ESIEE.sty, 17 Esp ranto, 21 Espagnol, 19 Esp ranto, 19

I
Impression, 9 Incompatibilit , 117 Incompatibilit s, 115 Index, 102104 inimf, 109 initex, 108 Introduction comment faire, 12 Italien, 19, 21

F
Famille, voir Fonte, Famille Family, voir Fonte, Famille Fichier config.ps, 111 texmf.cnf, 105 Finnois, 19 Floatstyle boxed, 57 plain, 57 ruled, 57 Fonte, 47 Changement de, 21 Computer Modern, 18 Concrete, 47 Encodage, voir Sch ma de codage de fonte Euler Fraktur, 47 Euler Script, 47 Famille ccr Concrete, 47 panr Pandora, 47 pss Pandora Sans Serif, 47 xav Xavier Calligraphique, 47 Pandora, 47 Xavier, 47 Format, 107 Forme, voir Fonte, Forme Fran ais, 19, 20

K
kpathsea kpsewhich

, 105107 , 107

L
Landscape, 52 Langues, 18, 19, 21 Longueur
captionmargin footwidth headwidth plainfootwidth plainheadwidth

, 53 , 53

, 58 , 53 , 53

M
, 111 , 102 Math matiques accents Acute, 41 Bar, 41 Breve, 41 Check, 41 Ddot, 41 Dot, 41 Grave, 41 Hat, 41 Tilde, 41 Vec, 41 alphabet
makeindex makeindex

G
Gaellique, 19 German, 20 Geut, 1 GNU, 89 gnuplot, 89 Groupe des Esiee ns Utilisateurs de TEX, voir Geut

H
Hongrois, 19 121

, 43, 44 , 44 , 44 , 44 , 44 , 44 alphabets, 45
boldsymbol frak mathbb mathcal pmb text

commande boxed, 42 limits, 40

, 44 symboles, voir Symboles math matiques index des version bold, 44 euler, 44 normal, 44 Mode compatibilit , voir Compatibilit

mathversion overleftarrow overleftrightarrow overrightarrow underleftarrow underleftrightarrow underrightarrow mathop

, 44 , 40

, 40 , 40

, 40 , 40

, 40

mapcodes atari hproman8 ibm850 ibm852 iso8859-2 iso8895-1 latin1 latin2 macroman setpapersize landscape documentclass 11pt 12pt a4paper openright twosides

, 19

, 19 , 19 , 19 , 19 , 19 , 19 , 19 , 19 , 51

, 11 , 11 , 11 , 11 , 11

N
N erlandais, 19 NFSS, 76

P
Package, 10 Pagestyle
fancyplain fancy plain

O
Option, 10
a4 widemargins babel german caption Large bf centerlast center footnotesize hang isu it large md normalsize normal rm ruled scriptsize sc sf sl small tt up documentclass twocloumn

, 50

Pascal, 77 Polonais, 19 Portugais, 19, 21 PostScript, 87 Pr -view, 9

, 53 , 53

, 53

, 20

, 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58 , 58

R
Roumain, 19 , 58

, 58

, 58

S
S rie, voir Fonte, S rie Shape, voir Fonte, Forme Slov ne, 19 Slovaque, 19 Style de ottant, voir Floatstyle Style de page, voir Pagestyle Su dois, 19

, 58

, 58 , 58

T
Taille changement de, 22 122

, 59

Tch que, 19 Turque, 19 Type de colonne , 62 , 62 D, 65 X, 65 @, 62 !, 62 b, 62 m, 62 p, 62

V
Variable
BIBINPUTS BSTINPUTS DVIPSHEADERS GFFONTS MFBASES MFINPUTS PKFONTS TEXCONFIG TEXFORMATS TEXINPUTS TFMFONTS

, 17 , 109 , 107 Visualisation, 9 vuepad, 17


ved virmf virtex

, 112 , 112 , 110 , 110 , 109 , 109 , 110 , 110 , 108 , 108 , 108, 110

X
xdvi
dvips xdvi

, 110 X g, 89

, 110

123

Index des commandes


 Symbols 
, 20 , 29 , 29 , 29 , 29 , 29 , 29 , 29 _, 29
" $ $$   chapter* chaptermark chead chunk circle cite cleardoublepage clearpage cline compact Competence

, 12

, 53 , 85 , 81 , 95, 96 , 62 , 72

, 53

, 50

, 50

, 16

A
ac acf acro acrodef acs addcontentsline address addtoendnotes afterpage appendix Apport Arr author

D
dashline Date date DeclareGraphicsExtensions DeclareGraphicsRule degre Descr displaystyle documentclass fleqn openright twoside documentstyle dottedline drawline dump Duree

, 77, 78 , 77, 78 , 77, 78 , 77, 78 , 77, 78 , 13 , 50 , 13 , 16 , 117 , 11

, 16 , 11

, 84

, 12

, 20 , 16

, 87

, 87

, 61

, 29 Option Option

, 39 , 10, 11 , 10

, 49 , 49

, 84 , 84 , 107, 108 , 16

B
bar bezier bfseries bibitem bibliography bibliographystyle bigskip boldsymbol breaklabel brush

, 82, 116 , 82 , 22 , 95

E
em emph endnote enlargethispage enlargethispage* EuFrak EuScript EuScript

, 96

, 50 , 45 , 72 , 84

, 96

, 22, 48 , 22, 48 , 61

, 45, 47 , 47 , 45

, 51 , 51

C
caption catcode cdots cfoot chapter

F
fancyplain floatname floatplacement floatstyle FonteApport

, 55, 67 , 117 , 40 , 53 , 12 124

, 53 , 57

, 57 , 17

, 57

footnotesize fprimo fquatro frac framebox FrenchEnumerate FrenchPopularEnumerate fsecundo ftertio

, 20 , 20 , 40 , 81

, 23

, 20

, 20 , 20

, 20

line linebreak listinginput listof listoffigures listoftables listpart location logofamily

, 81

, 49

, 57

, 75 , 27 , 27

, 73 , 13 , 47

G
glossary graphicspath

M
, 87
makebox makeglossary maketitle markboth markright mathbb mathbf mathcal mathfrak mathos mdseries medskip MF MP multicolumn

, 102

H
hbox hhline hline hlineon hspace* huge

, 40 , 66, 67, 117 , 67 , 82 , 50 , 23

, 47 , 47

, 102 , 11 , 12, 53 , 53 , 45 , 45 , 45 , 45, 47, 116 , 44, 45, 48 , 22 , 50 , 62

, 81

I
include includegraphics includeonly index initfloatingfigs input introchapter itshape

, 27

N
, 59
name newcolumntype newfloat newline newpage nopagebreak normalfont normalsize

, 102 , 27

, 27

, 87, 88

, 13

, 22

, 102

, 57 , 49 , 50

, 63, 65

, 50 , 22 , 23

L
label LARGE Large large largeurcolonne ldots left leftmark leftnode legend lfoot lhead Lieu

, 71 , 23 , 23 , 23

O
oldstyle

, 48

, 24 , 40 , 53 , 84 , 83 , 53 , 53 , 16

, 17

P
pagebreak pagestyle ParallelLText ParallelPar ParallelRText

, 11, 50 , 49, 53 , 78 , 78 , 78

125

part PostApport PostPostApports PreApport PrePreApports primo printglossary printindex put

, 12

, 17

, 17

, 17

, 20

, 17

, 81

, 102 , 103

Q
qbezier quarto

, 82 , 20

setxname setyaxis setyname sffamily signature slabel slshape small smallskip sout sqrt strut strut sum

, 83 , 83 , 83 , 22 , 13 , 77 , 22 , 23 , 50 , 48 , 40 , 11 , 12 , 40

R
renewcommand resizebox ! restylefloat rfoot rhead right rightmark rightnode rmfamily rotatebox

T
tablefirsthead tablehead tablelasttail tableofcontents tableofcontents tabletail tabularxcolumn TailleApport telephone tertio text textbf textit textlogo textmd textnormal textos textrm textsc textsf textsl textstyle texttt textup textxav theendnotes theorembodyfont theoremheaderfont theoremstyle thepage thispagestyle tiny title Titre today ttfamily

, 17 , 88 Option , 88 , 57 , 53 , 53 , 40 , 53 , 84 , 22 , 88

, 67 , 67

, 67

, 67 , 12, 27 , 12

S
scalebox scriptscriptstyle scriptsize scriptstyle scshape section secundo selectlanguage setcounter setdepth sethspace setlabelphantom setlabelstyle setleftmargin setlinestyle setmarginsrb setpapersize landscape setstretch setstyle setwidth setxaxis

, 88

, 23 , 39 , 22 , 12 , 20 , 11 , 83 , 83

, 39

, 20

, 13 , 20 , 42 , 21, 22 , 22 , 47 , 22 , 22 , 48 , 22 , 11, 22 , 22 , 22 , 39 , 22 , 22 , 47 , 61 , 53

, 66 , 17

Option

, 72 , 72 , 72 , 83 , 51 , 51

, 76

, 76 , 76

, 83 , 83 , 83 , 83

, 51

, 23 , 11 , 16 , 11

, 11, 49, 53

, 22

126

U
uline uppercase upshape usepackage uuline uwave

, 48

, 12 , 22 , 10, 11, 17 , 48 , 48

V
vector verbatiminput verbatimtabinput vfill vfill vspace vspace*

, 82

, 74

, 11 , 12 , 50 , 50

, 75

X
xavfamily xspace

, 47 , 115

127

Index des environnements


A
acronym alltt array

I
itemize

, 77, 78 , 75 , 63

, 25

L B
bipartite boxedverbatim bundle

, 84

, 85

, 75

landscape LARGE Large large letter listing longtable

, 52 , 22 , 22 , 22 , 13 , 75 , 69

C
center comment

, 24 , 73

M
math multicols

, 29

, 60, 77, 102

D
description displaymath

, 25, 72 , 29

N
normalsize

, 22

E
enumerate eqnarray equation

P
Parallel picture

, 25, 72 , 77 , 77

, 78 , 81

S F
floatingfigure floatingtable flushleft flushright footnotesize

, 24 , 24 , 22

, 59 , 60

scriptsize sidewaysfigure sidewaystable small subeqnarray supertabular supertabular* supertabularx

, 22

, 22

, 58 , 58

, 77 , 67 , 67 ?, 67

H
huge

T
tabular

, 22 128

, 63, 66, 67

tabular* tabular thebibliography theorem tiny

, 65 , 25

, 76 , 22

, 95

V
verbatim verbatim* verbatimcmd verbatimtab

, 73 , 73 , 75 , 75

129

Index des packages


A
a4 acronym afterpage alltt amsbsy amscd amsfont amsfonts asmgen amsintx amsmath amsopn amssymb amstext amsthm amsxtra array bar beton

, 82, 115 , 47

, 10, 50 , 77 , 50 , 75 , 42, 45 , 42 , 116 , 42, 45 , 42 , 42 , 30, 40, 42, 43, 45, 116 , 42 , 29, 30, 32, 42, 116 , 42 , 42 , 42 , 62, 64, 67, 116

C
caption

, 58

D
dcolumn delarray

, 63, 116 , 63

E
eclbip eepic endfloat fighead figlist figuresfirst heads lists markers nofighead nofiglist noheads nolists nomarkers notabhead notablist tabhead tablesfirst tablist endnotes enumerate epic ESIEE ESIEE ESIEEcv eucal eufrak euscript expdlist

B
babel french babel american austrian brazil catalan croatian czech danish dutsh english esperanto finnish francais french galician german germanb hungarian italian magyar polish portuges romanian slovak slovene spanish swedish turkish ukenglish

, 11 , 18, 20, 60, 108, 116117 , 19 , 19 , 19 , 19 , 19 , 19 , 19 , 19 , 19, 21 , 19, 21 , 19 , 19, 20 , 19 , 19 , 19, 20 , 19, 20 , 19 , 19, 21 , 19 , 19 , 19, 21 , 19 , 19 , 19 , 19 , 19 , 19 , 21 130

, 11

, 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 56 , 61 , 72 , 84, 85 , 12 , 17, 24, 57 , 14 , 42 , 42, 45, 47, 116 , 42, 45, 47 , 72, 73

, 84 , 84, 85 , 55 , 56 , 56

F
fancyheadings

, 53

float floatfig fn2end fontenc ftnright

, 55 , 58, 59 , 61 , 11 , 115

multicol multind

, 59, 60, 76, 102 , 104, 116

O
oldstyle

G
graphics graphicx angle bb clip draft height scale width

, 44, 45, 48

Cl Cl Cl Cl Cl Cl Cl

, 116 , 88, 116 , 88 , 88 , 88 , 88 , 88 , 88 , 88

P
parallel

, 78

Q
qsymbols

, 29, 34, 116

H
hhline

, 66, 117

R
rawfont rotating

I
indentfirst indentfirst

, 10 , 58

, 11 , 50

S
showkeys ssqquote stmaryrd subeqnarray supertab supertabx

L
latexsym longtable lscape

, 30 , 69 , 52

, 71, 116 , 53 , 14, 29, 33, 34 , 77 , 67 ?, 67

M
, 103 , 18 Option atari, 19 Option hproman8, 19 Option ibm850, 19 Option ibm852, 19 Option iso8859-1, 19 Option iso8859-2, 19 Option latin1, 19 Option latin2, 19 Option macroman, 19 mflogo, 47 moreverb, 75
makeidx mapcodes

T
tabularx theorem

, 14, 65, 116 , 76 Style break, 76 Style changebreak, 76 Style change, 76 Style marginbreak, 76 Style margin, 76 Style plain, 76

U
ulem

, 48

131

ulsy

, 34

V
varioref vector verbatim vmargin

, 71, 116 , 43 , 73 , 51

W
window

, 60, 116

X
xavier xspace

, 47 , 115

132

Index des symboles math matiques


A
AC agemO aleph alpha amalg angle APLbox APLcirc APLcomment APLdown APLdownarrowbox APLinput APLinv APLleftarrowbox APLlog APLminus APLnot APLrightarrowbox APLstar APLup APLuparrowbox APLvert approx aquarius arccos arcsin arctan arg aries Arrowvert arrowvert ascnode ast astrosun asymp ataribox

, 37 , 36 , 31 , 30 , 30 , 31, 33 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39 , 39

, 39 , 39 , 39

, 39 , 39

, 39 , 30 , 38 , 31 , 31 , 31 , 31 , 38 , 31 , 31 , 38 , 30 , 38 , 30 , 36

, 39

B
backepsilon backprime backsim backsimeq backslash barwedge Bbbk because bell beta between bigbox

, 32 , 33 , 32 , 32 , 31 , 32 , 33 , 32 , 36 , 30 , 32 , 33 133

bigcap bigcup bigcurlyvee bigcurlywedge biginterleave bignplus bigodot bigoplus bigotimes bigparallel bigsqcap bigsqcup bigstar bigtriangledown bigtriangleup biguplus bigvee bigwedge binampersand bindnasrepma bircirc blacklozenge blacksmiley blacksquare blacktriangle blacktriangledown blacktriangleleft blacktriangleright blitza blitzb blitzc blitzd blitze bot Bowtie bowtie Box boxast boxbar boxbox boxbslash boxcircle boxdot boxempty boxminus boxplus boxslash boxtimes bracevert brokenvert bullet Bumpeq bumpeq

, 31 , 31

, 33 , 31 , 31 , 31 , 33 , 33 , 31 , 33

, 33 , 33 , 33

, 31 , 31 , 31 , 30

, 30, 33 , 30, 33

, 33 , 33

, 33 , 36 , 33 , 33

, 31

, 34 , 34 , 34 , 34 , 34

, 33 , 32 , 32

, 36 , 30 , 30, 31 , 33 , 33 , 33 , 33 , 33 , 32, 33 , 33 , 32 , 32 , 33 , 32 , 31 , 36 , 30 , 32 , 32

C
cancer Cap cap capricornus cdot cdots cent centerdot checked CheckedBox chi circ circeq CIRCLE Circle circlearrowleft circlearrowright circledast circledcirc circleddash circledS clock clubsuit complement cong conjunction coprod cos cosh cot coth csc Cup cup curlyeqprec curlyeqsucc curlyvee curlyveedownarrow curlyveeuparrow curlywedge curlywedgedownarrow curlywedgeuparrow currency curvearrowleft curvearrowright

, 38 , 32 , 30 , 30 , 31 , 36

, 38

, 30 , 30 , 32 , 37 , 37

, 32 , 36 , 37

, 32 , 32 , 32 , 33 , 36 , 31 , 33 , 30 , 38 , 31 , 31 , 31 , 31 , 31 , 31 , 32 , 30 , 32 , 32 , 32 , 32

, 32 , 32

Delta delta descnode det Dh dh diagdown diagup diameter Diamond diamond diamondsuit dim div divideontimes doteq dotplus doublebarwedge DOWNarrow Downarrow downarrow downdownarrows downharpoonleft downharpoonright

, 30 , 30 , 38 , 31 , 37 , 37 , 33 , 33 , 36 , 30, 31 , 30 , 31 , 31 , 30 , 32 , 30 , 32 , 32 , 36 , 30, 31 , 30, 31 , 32 , 32 , 32

E
earth eighthnote ell emptyset epsilon eqcirc eqslantgtr eqslantless equiv eta eth exists exp

, 38

, 31

, 37

, 33 , 33 , 33 , 33

, 31 , 30 , 32 , 32 , 32 , 30 , 30 , 33 , 31 , 31

, 36

, 32 , 32

F
fallingdotseq fatbslash fatsemi fatslash female Finv flat forall frown frownie fullmoon fullnote

D
dagger dashleftarrows dashrightarrows dashv davidstar ddagger ddots deg

, 30

, 37 , 30 , 31 , 31

, 30

, 32 , 32

, 33 , 33 , 33 , 36 , 33 , 31 , 31 , 30 , 36 , 38 , 37

, 32

134

G
Game Gamma gamma gcd gemini geq geqq geqslant gg ggg gluon gnapprox gneq gneqq gnsim gtrapprox gtrdot gtreqless gtreqqless gtrsim gvertneqq

iota

, 30

, 33 , 30 , 30 , 31 , 38 , 30 , 32 , 32 , 30 , 32 , 37 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32

J
jmath Join jupiter

, 31 , 30 , 38

K
kappa ker kreuz

, 30 , 31 , 36

L
Lambda lambda langle Lbag lbag lceil ldots le leadsto LEFTarrow Leftarrow leftarrow leftarrowtail leftarrowtriangle LEFTCIRCLE LEFTcircle Leftcircle leftharpoondown leftharpoonup leftleftarrows leftmoon Leftrightarrow leftrightarrow leftrightarroweq leftrightarrows leftrightarrowtriangle leftrightharpoon leftrightsquigarrow leftslice leftsquigarrow leftthreetimes leftturn leo leq leqq leqslant lessapprox

H
halfnote hbar heartsuit hexagon hexstar HF hom hookleftarrow hookrightarrow hslash

, 37 , 31, 33 , 31 , 37 , 37 , 37 , 31 , 33

, 30 , 30 , 31 , 34 , 34 , 31 , 31 , 30 , 30 , 36 , 30 , 30

, 30 , 30

, 32

, 37 , 37 , 37

, 34

I
idotsint iiiint iiint iint Im imath in inf infty inplus int intercal interleave invdiameter inve

, 38

, 30 , 30 , 32

, 40 , 40 , 40 , 40 , 31 , 31 , 30 , 31 , 31 , 34 , 31 , 32 , 33 , 36 , 37 135

, 30 , 30 , 34 , 32 , 32

, 34

, 33

, 32

, 38 , 30 , 32

, 37

, 32 , 32

, 32 , 32

lessdot lesseqgtr lesseqqgtr lesssim lfloor lg lgroup lhd libra lightning lim liminf limsup ll llbracket llceil Lleftarrow llfloor lll llparenthesis lmoustache ln lnapprox lneq lneqq lnsim log Longleftarrow longleftarrow Longleftrightarrow longleftrightarrow Longmapsfrom longmapsfrom Longmapsto longmapsto Longrightarrow longrightarrow loopharpoonleft loopharpoonright lozenge Lsh ltimes lvertneqq

, 31

, 32 , 32 , 32 , 32 , 31

, 31 , 30 , 38 , 34, 36 , 31 , 31 , 31 , 30 , 34 , 34 , 32 , 34 , 32 , 34 , 31 , 31 , 32 , 32 , 32 , 32 , 31 , 30 , 30

minuso models moo mp mu multimap

, 33 , 30 , 30

, 33 , 30 , 32

N
nabla napprox natural nearrow neg neptune neq newmoon nexists ngeq ngeqq ngeqslant ngtr ni niplus nLeftarrow nleftarrow nLeftrightarrow nleftrightarrow nleq nleqq nleqslant nless nmid nnearrow nnwarrow notbackslash notslash nparallel nplus nprec npreceq nRightarrow nrightarrow nshortmid nshortparallel nsim nsubseteq nsubseteqq nsucc nsucceq nsupseteq nsupseteqq ntriangleleft ntrianglelefteq ntrianglelefteqslant ntriangleright ntrianglerighteq ntrianglerighteqslant

, 32 , 32 , 32

, 34 , 34 , 34 , 30 , 30 , 30 , 32 , 32 , 33

, 30 , 30

, 31 , 32 , 31 , 30 , 31 , 38 , 30 , 38 , 33 , 32 , 32 , 32 , 32 , 30 , 34 , 32 , 32 , 32 , 32 , 32 , 32

, 32 , 32

, 32

, 34 , 34

, 33 , 32 , 32

, 39 , 32

, 39

M
male Mapsfrom mapsfrom Mapsto mapsto mars max measuredangle mercury mho mid min

, 32 , 32 , 32 , 32 , 32

, 34 , 34 , 34 , 30 , 38 , 31 , 38 , 30, 33 , 30 , 31

, 36

, 32

, 32

, 32 , 32 , 32 , 32

, 33

, 32 , 32

, 32 , 32

, 34 , 34

136

nu nVDash nvDash nvdash nwarrow

, 30

, 32 , 32 , 32 , 30

prod Psi psi

, 31 , 30 , 30

Q O
obar oblong obslash octagon odot odplus ogreaterthan oint olessthan Omega omega ominus openo oplus opposition oslash otimes ovee owedge quarternote

, 37

, 33 , 33 , 33 , 37 , 30 , 34 , 31

R
, 33
rangle Rbag rbag rceil Re recorder rfloor rgroup rhd rho RIGHTarrow Rightarrow rightarrow rightarrowtail rightarrowtriangle RIGHTCIRCLE RIGHTcircle Rightcircle rightharpoondown rightharpoonup rightleftarrows rightleftharpoon rightmoon rightrightarrows rightslice rightsquigarrow rightthreetimes rightturn risingdotseq rmoustache rrbracket rrceil rrfloor Rrightarrow rrparenthesis Rsh rtimes

, 33 , 30 , 30 , 30 , 37 , 30 , 38 , 30 , 30 , 33 , 33

, 31 , 34 , 34 , 31 , 31 , 36 , 31 , 31 , 30 , 30 , 36 , 30 , 30

, 32

P
parallel partial pentagon permil perp Phi phi phone photon Pi pi pisces pitchfork pluto pm pointer Pr prec precapprox preccurlyeq preceq precnapprox precnsim precsim prime

, 37 , 37 , 37

, 34

, 30 , 31 , 37 , 36 , 30 , 30 , 30 , 36 , 37 , 30 , 30 , 38 , 32 , 38 , 30 , 36 , 31 , 30 , 32 , 32 , 30 , 32 , 32 , 32 , 31 137

, 38

, 30 , 30 , 32 , 32 , 32 , 32 , 32

, 33

, 32

, 32 , 31 , 34 , 34 , 34 , 32 , 34 , 32

, 37

S
sagittarius saturn scorpio

, 38 , 38

, 38

searrow sec setminus sharp shortdownarrow shortleftarrow shortmid shortparallel shortrightarrow shortuparrow Sigma sigma sim simeq sin sinh smallfrown smallsetminus smallsmile smile smiley spadesuit sphericalangle sqcap sqcup sqsubset sqsubseteq sqsupset sqsupseteq Square square ssearrow sslash sswarrow star Subset subset subseteq subseteqq subsetneq subsetneqq subsetplus subsetpluseq succ succapprox succcurlyeq succeq succnapprox succnsim succsim sum sun sup Supset supset supseteq supseteqq supsetneq supsetneqq supsetplus

, 31

, 30

, 30 , 31 , 32

supsetpluseq surd swarrow

, 31 , 30

, 34

, 34 , 34

, 30 , 30 , 30 , 30 , 31 , 31

, 32 , 34 , 34

T
talloblong tan tanh tau taurus therefore Theta theta thickapprox thicksim Thorn thorn times top triangle triangledown triangleleft trianglelefteq trianglelefteqslant triangleq triangleright trianglerighteq trianglerighteqslant twoheadleftarrow twoheadrightarrow twonotes

, 31 , 31 , 30 , 38 , 30 , 30

, 33

, 32

, 32

, 33 , 30 , 30 , 30, 32 , 30 , 30, 32 , 30 , 37 , 33 , 34 , 33 , 34 , 30 , 32 , 30 , 30 , 32 , 32 , 32 , 34 , 34 , 30 , 32 , 32 , 30 , 32 , 32 , 32 , 31 , 36 , 31 , 32 , 30 , 30 , 32 , 32 , 32 , 34 138

, 32 , 30 , 36 , 31

, 32

, 37 , 37 , 30 , 31

, 32

, 32

, 31

, 33 , 30 , 32

, 32

, 34 , 34

, 30 , 32

, 37

, 32 , 32

U
unlhd unrhd UParrow Uparrow uparrow Updownarrow updownarrow upharpoonleft upharpoonright uplus Upsilon upsilon upuparrows uranus

, 30 , 30 , 36 , 30, 31 , 30, 31 , 30, 31 , 30, 31 , 32 , 32 , 30 , 30 , 30 , 32 , 38

V
varangle

, 36

varbigcirc varcurlyvee varcurlywedge varepsilon varhexagon varhexstar varnothing varoast varobar varobslash varocircle varogreaterthan varolessthan varominus varoplus varoslash varotimes varovee varowedge varphi varpi varpropto varsigma varsubsetneq varsubsetneqq varsupsetneq varsupsetneqq vartheta vartimes vartriangle vartriangleleft vartriangleright Vdash vDash vdash vdots vee veebar venus vernal VHF virgo Vvdash

, 33 , 33

, 33 , 33 , 33 , 30 , 37 , 37 , 33 , 33 , 33

Xi xi

, 30 , 30

Y
Ydown Yleft Yright Yup

, 33 , 33 , 33 , 33 , 33 , 33 , 30 , 30 , 32 , 30

, 33

, 33

, 33 , 33 , 33 , 33

Z
zeta

, 30

, 30 , 33

, 32 , 32 , 32 , 32

, 33

, 32 , 32 , 30 , 31 , 30 , 32 , 38 , 38 , 37 , 38 , 32

, 32 , 32

W
wasylozenge wasytherefore wedge wp wr

, 30 , 31 , 30

, 36 , 36

X
XBox

, 37 139

R f rences
1 The Supertabular . En anglais. A 2 Essential Mathematical L TEX . En anglais, septembre 1989. A 3 AMS-L TEX Version 1.2 User's Guide . En anglais avec bibliographie, octobre 1994. A 4 Technical notes on AMS-L TEX 1.2 . En anglais, d cembre 1994. 5 Donald Arseneau. Fichier ulem.sty . En anglais, 405 lignes, bien comment pour un chier source, ao t 1994. 6 Leonor Barroca. A style option for rotated A objects in L TEX . En anglais, avril 1995. 7 Benjamin Bayart, Pascal Vincent, et others. Architecture pour le traitement d'images  r alisation de deux ltres . Rapport Technique, cole Sup rieur d'Ing nieurs en lectronique et lectrotechnique, d cembre 1994. 8 K. C. Border. The fn2end.sty style . En anglais, cach la n du chier source du package, mai 1995. 9 Johannes Braams. Babel, a multilingual A package for use with L TEX's standard document classes . Version courte et compr hensible, J.L.Braams@research.ptt.nl, en anglais avec bibliographie, juin 1994. 10 Johannes Braams. Creating a mailing . En anglais, septembre 1994. 11 Johannes Braams. Numbering individual lines of equations array's . J.L.Braams@research.ptt.nl, en anglais, f vrier 1994. 12 Johannes Braams. the alltt environment . J.L.Braams@research.ptt.nl, en anglais, octobre 1994. 13 Johannes Braams, David Carlisle, Alan Jeffrey, Chris Rowley, et Rainer Sch pf. A Producing proceedings articles with L TEX2" . En anglais, mai 1994. 14 Johannes Braams et Kent Mc Pherson. Displaying page layout variables . En anglais, octobre 1994. 15 J r me Breton, Pierre Rzekiecki, et Franois Chaumartin. Matrice de commutation vid o . Rapport Technique, cole Sup rieur d'Ing nieurs en lectronique et lectrotechnique, mai 1995. 16 David Carlisle. The indent package . carlisle@cs.man.ac.uk, en anglais. 140

17 David Carlisle. The lscape package . carlisle@cs.man.ac.uk, en anglais. 18 David Carlisle. Packages in the `graphics' bundle . carlisle@cs.man.ac.uk,en anglais, octobre 1994. 19 David Carlisle. The xspace package . en anglais, novembre 1994. 20 David Carlisle. The afterpag package . carlisle@cs.man.ac.uk, en anglais, mai 1994. 21 David Carlisle. The dcolumn package . carlisle@cs.man.ac.uk, en anglais, mars 1994. 22 David Carlisle. The delarray package . carlisle@cs-man-ac-uk, en anglais, mars 1994. 23 David Carlisle. The enumerate package . carlise@cs.man.ac.uk, en anglais, janvier 1994. 24 David Carlisle. The hhline package . carlisle@cs.mac.ac.uk, en anglais, mai 1994. 25 David Carlisle. The ifthen package . carlisle@cs.man.ac.uk, en anglais, novembre 1994. 26 David Carlisle. The keyval package . carlisle@cs.man.ac.uk, en anglais, f vrier 1994. 27 David Carlisle. The longtable package . carlisle@cs.man.ac.uk, en anglais, d cembre 1994. 28 David Carlisle. The showkeys package . carlisle@cs.man.ac.uk, en anglais, septembre 1994. 29 David Carlisle. The tabularx package . carlisle@cs.mac.ac.uk, en anglais, mai 1994. 30 David Carlisle. The trig package . carlisle@cs.mac.ac.uk, en anglais, mars 1994. 31 David Carlisle. The xr package . carlisle@cs.man.ac.uk, en anglais, mai 1994. 32 Mats Dahlgren. Wecome to deleq.sty ! . matsd@physchem.kth.de mats@tenk.wav.nl, en anglais, octobre 1994. 33 Michael Downes. Di erences between AMSA A L TEX version 1.1 and AMS-L TEX 1.2 . En anglais avec bibliographie, novembre 1994. 34 Peter Dyballa. The charter package . En anglais, juin 1994. 35 Peter Dyballa. The nimbus package . En anglais, juin 1994.

36 Peter Dyballa. The utopia package . En anglais, juin 1994. 37 Matthias Eckermann. Paralleles Setzen l ngerer Texte . u311aa@sunmail.lrz-muenchen.de, en allemand avec bibliographie, 1994. 38 Nick Efford. The vector package . nde@dcre.leeds.ac.uk, en anglais, septembre 1994. 39 Robin Fairbairns. The le oldstyle.dtx A for use with L TEX2" . En anglais, mai 1995. 40 Bernard Gaulle. Notice d'utilisation du style french multilingue . En fran ais, avec bibliographie, octobre 1995. 41 Jeremy Gibbons. The St Mary's Road symbol font . En anglais, mars 1994. 42 Je Goldberg. The lastpage package . goldberg@nytud.hu, en anglais, juillet 1994. 43 Ulrich Goldschmitt. The ulsy package . en anglais, f vrier 1995. 44 Norman Gray. The showlabel package . norman@astro.gla.ac.uk, en anglais, octobre 1994. 45 Aloyius G. Helminck. The mathtime package . En anglais, juin 1994. 46 Rainer H lse et Wolfgang Kaspar. EXPDLIST  an Expanded description Environment . kaspar@dmswwu1a.uni-muenster.de, en anglais, septembre 1992. 47 Hideki Isozaki. A bipartite graph macro . En anglais, novembre 1990. 48 Hideki Isozaki. A tree macro . En anglais, novembre 1990. 49 Alan Jeffrey. A font sampler . En anglais, octobre 1994. 50 Alan Jeffrey. The rawfonts package . Version 0.01, en anglais, mai 1994. 51 Alan Jeffrey. The somedefs toolkit package . En anglais, juin 1994. 52 Frank Jensen. The beton package . en anglais, avec bibliographie, janvier 1995. 53 Frank Jensen et Frank Mittelbach. The euler package . En anglais, avec bibliographie, janvier 1995. A 54 Dieter Jurzitza. Schalkbilder mit L TEX . En allemand. 55 Axel Kielhorn. The wasysymbol fonts for A use with L TEX2" . en anglais, mai 1994. 141

A 56 Thomas Kneser. L TEX-Paragraphes Floating around Figures . En anglais, ao t 1990. 57 Thomas Kneser et Mats Dahlgren. Welcome to the floatflt package ! . matsd@physchen.kth.de, en anglais, octobre 1994. 58 Donald Ervin Knuth. The TEXbook. AddisonWesley, 1984. 59 Tobias Kuipers. A rst look at harpoon.sty . kuipers@fwi.uva.nl, en anglais, novembre 1994. 60 Leslie Lamport. MakeIndex : An Index ProA cessor For L TEX . En anglais, f vrier 1987. A 61 Leslie Lamport. L TEX : A document preparation system. Addison-Wesley, 1994. Second edition. 62 Leslie Lamport, Frank Mittelbach, et Rainer Sch pf. Standard Letter Document A Class for L TEX2" . En anglais, mars 1995. A 63 L TEX2" font selection . En anglais avec bibliographie, juin 1994. A 64 L TEX2" for class and package writers DRAFT . En anglais avec bibliographie, juin 1994. 65 Anselm Lingnau. An Improved environment for Floats . lingnau@math.uni-frankfurt.de, en anglais, juin 1994. 66 van der Loan, C. G. Typesetting Bridge via A L TEX . En anglais avec bibliographie. 67 I. L. Maclaine-cross. Curves A in L TEX Pictures. A manual for CURVES.STY and CURVESLS.STY . S7301164@csdvax.csd.unsw.edu.au, en anglais, juin 1994. 68 James Darrell Mc Cauley. The endfloat package . En anglais, avec bibliographie, novembre 1994. 69 van der Mecr, Hans. The exam package . hansm@fwi.uva.nl, en anglais, novembre 1994. 70 Michael Mehlich. Fichier readme.fp . Distribu avec le package fp, mehlich@informatik.uni-muenchen.de, en anglais, 163 lignes, octobre 1994. 71 Frank Mittelbach. An environment for multicolumn output . En anglais, novembre 1994. 72 Frank Mittelbach. An Extension of the A L TEX theorem environment . En anglais, f vrier 1994.

73 Frank Mittelbach. File not found error . 90 En anglais, d cembre 1994. 74 Frank Mittelbach. Footnotes in a multi- 91 column layout . En anglais, f vrier 1994. 75 Frank Mittelbach. Producing slides with A L TEX2" . En anglais, d cembre 1994. 76 Frank Mittelbach. The doc and shortvrb 92 Packages . En anglais, avec bibliographie, octobre 1994. 77 Frank Mittelbach. The pandora fonts for A use with L TEX . En anglais, avec bibliogra- 93 phie, mai 1994. 78 Frank Mittelbach. The varioref.sty package . En anglais, septembre 1994. 79 Frank Mittelbach et David Carlisle. A A new implementation of L TEX's 94 tabular and array environment . carlisle@cs.man.ac.uk, en anglais, avec bibliographie, d cembre 1994. 95 80 Frank Mittelbach et Yannis Haralambous. A The oldgerm package for use with L TEX2" . En anglais, avec bibliographie, juin 1994. 96 81 Frank Mittelbach, Alexander Samarin, et A Michel Goossens. The L TEX companion. 97 Addison-Wesley, 1994. 82 Frank Mittelbach et Rainer Sch pf. The 98 A eufrak package for use with L TEX2" . En anglais, mai 1994. 83 Frank Mittelbach et Rainer Sch pf. The 99 A euscript package for use with L TEX2" . En anglais, mai 1994. 84 Imprimerie Nationale, diteur. Lexique des 100 r gles typographiques en usage l'imprimerie nationale. Troisi me dition, 1994. 85 Christianne Notarmarco et Rod Mulvey. 101 A Formal Aspects of Computing : L TEX Style Guide for Authors . En anglais avec bibliographie, 1994. 102 86 Tobias Oetiker. An Acronym Environment A for L TEX2" . En anglais, juin 1995. 87 Thorsten Ohl. mcite : Multiple Citations on One Key . En anglais avec bibliographie, ao t 103 1994. 88 Thorsten Ohl. feynMF : Drawing FeynA man Diagrams with L TEX and METAFONT 104 . Thorsten.Ohl@Physik.TH-Darmstadt.de, en anglais avec bibliographie, janvier 1995. 89 Hubert Partl et Axel Kielborn. DocuA ment Class refman for L TEX2" . En anglais, 105 octobre 1994. 142

A Mike Piff. Backus Naur Form in L TEX . en anglais, septembre 1992. A Mike Piff. Text merges in TEX and L TEX . En anglais avec bibliographie, paru dans TUG Boat, vols 13, num ro 14, 1992, p. 518523, 1992. Michael Piotrowski. Using 8bit Caharcter Sets with mapcodes . mlpiotro@linguistik.uni-erlangen.de, en anglais et allemand, d cembre 1994.

Nico Poppelier et Johannes Braams. A style option to adapt the stanA dard L TEX document styles to A4 paper . Poppelier@elsevier.nl, ou J.L.Braams@research.ptt.nl, en anglais, avec bibliographie, mars 1994. Sebastian Rahtz. Notes on seA tup of PostScript font for L TEX2" . spqr@ftp.tex.ac.uk, en anglais, juin 1994. Sebastian Rahtz. The lucida package . spqr@ftp.tex.ac.uk, en anglais, juin 1994. Sebastian Rahtz. The psfonts package . spqr@ftp.tex.ac.uk, en anglais, juin 1994. Sebastian Rahtz. The textures package . spqr@ftp.tex.ac.uk, en anglais, juin 1994. Sebastian Rahtz et Leanor Barroca. A A package for making sticky labels L TEX . En anglais, octobre 1994. Sebastian Rahtz et Phil Taylor. The textfit package for scaling up text to a desired size . En anglais, avril 1994. . Fichier fancyheadings.doc . 201 lignes, en anglais. Tomas Rokicki. Dvips : A DVI-toPostScript Translator . en anglais, janvier 1995. Kristo er H. Rose. Summary of qsymbols . kris@diku.dk, ou http : www.diku.dk users kris , en anglais, avec bibliographie, novembre 1994. Kristo er H. Rose. XY-pic User's Guide . Kris@diku.dk, en anglais avec bibliographie, version 2.12, octobre 1994. Kristo er H. Rose et Ross Moore. XY-pic Reference Manual . Kris@diku.dk ross@mpce.mq.edu.au, en anglais avec bibliographie, version 2.12 3 , octobre 1994. Elmar Schal ck. Fichier window.sty . En anglais, avril 1991.

106 Rainer Sch pf, Bernd Raichle, et Chris 113 Ulrick Vieth. The ssqquote package . En Rowley. A New Implementation of anglais, mars 1995. A L TEX's verbatim and verbatim* Environments . schoepf@Uni-Mainz.DE, ou 114 Martin Ward. Fichier program-demo.tex . Marint.Ward@durham.ac.uk, en anglais, raichle@azu.Informatik.Uni-Stuttgart.DE, 307 lignes, source de A demonstration of the ou C.A.Rowley@open.ac.uk, en anglais, ocprogram environment, novembre 1994. tobre 1994. 107 Martin Schr der. The everyshi package 115 Martin Ward. Fichier program.sty . . MS@Dream.HB.North.de, en anglais, janvier Martin.Ward@durham.ac.uk, en anglais, 901 1995. lignes, novembre 1994. 108 Axel Sommerfeldt. The rplain package . 116 Nigel Ward, Dan Jurafsky, et Jean-Pierre axel@ang-physik.uni-kiel.de,octobre 1994. Druclet. The minitoc style option . En anglais, avec FAQ. 109 Harald Axel Sommerfeldt. The caption package . Harald-Sommerfeldt@ki.maus.de, A demonstraen anglais avec bibliographie, novembre 1994. 117 Martin Wrad. tion of the program environment . 110 Harald Axel Sommerfledt. The umlaute Martin.Ward@durham.ac.uk, en anglais, package . Harald-Sommerfledt@ki.maus.de, novembre 1994. en anglais avec bibliographie, novembre 1994. Dominik Wujastyk et John Lavagnino 111 Piet van Oostrum. Page headers and footers 118 Fichier endnotes.sty . En anglais, . 325 A in L TEX . En anglais, janvier 1995. lignes, sobrement comment , crit par Lava112 Ulrick Vieth. The mflogo Package for gnino d'apr s un source de Leslie Lamport, A L TEX2" . En anglais, 1995. modi par Wujastyk, septembre 1991.

143