TOUT CE QUE VOUS AVEZ TOUJOURSVOULU SAVOIR SUR

TOUT CE QUE VOUS AVEZ TOUJOURSVOULU SAVOIR SUR

LATEX

LATEX

SANS JAMAIS OS ER LE DEMANDERSANS JAMAIS OS ER LE DEMANDER

Ou comment utiliser LATEX quandon n’y connaît goutte

Ou comment utiliser LATEX quandon n’y connaît goutte

Vincent Lozano
lozano@enise.fr

Vincent Lozano
lozano@enise.fr

Version du 1er mars 2011
Dernière mise à jour sur :http://lozzone.free.fr

Version du 1er mars 2011
Dernière mise à jour sur :http://lozzone.free.fr

Enfin voilà deux jeunes corps enlacés qui jouissent de leur jeunesse en fleur ; déjà ils pressentent les joies de lavolupté et Vénus va ensemencer le champ de la jeune femme. Les amants se pressent avidement, mêlent leursalive et confondent leur souffle en entrechoquant leurs dents. Vains efforts, puisque aucun des deux ne peutrien détacher du corps de l’autre, non plus qu’y pénétrer et s’y fondre tout entier. Car tel est quelquefois lebut de leur lutte, on le voit à la passion qu’ils mettent à serrer étroitement les liens de Vénus, quand toutl’être se pâme de volupté. Enfin quand le désir concentré dans les veines a fait irruption, un court momentd’apaisement succède à l’ardeur violente ; puis c’est un nouvel accès de rage, une nouvelle frénésie. Car
savent-ils ce qu’ils désirent, ces insensés ? Ils ne peuvent trouver le remède capable de vaincre leur mal, ilssouffrent d’une blessure secrète et inconnaissable.
Lucrèce De natural rerum, Livre IV

Enfin voilà deux jeunes corps enlacés qui jouissent de leur jeunesse en fleur ; déjà ils pressentent les joies de lavolupté et Vénus va ensemencer le champ de la jeune femme. Les amants se pressent avidement, mêlent leursalive et confondent leur souffle en entrechoquant leurs dents. Vains efforts, puisque aucun des deux ne peutrien détacher du corps de l’autre, non plus qu’y pénétrer et s’y fondre tout entier. Car tel est quelquefois lebut de leur lutte, on le voit à la passion qu’ils mettent à serrer étroitement les liens de Vénus, quand toutl’être se pâme de volupté. Enfin quand le désir concentré dans les veines a fait irruption, un court momentd’apaisement succède à l’ardeur violente ; puis c’est un nouvel accès de rage, une nouvelle frénésie. Car
savent-ils ce qu’ils désirent, ces insensés ? Ils ne peuvent trouver le remède capable de vaincre leur mal, ilssouffrent d’une blessure secrète et inconnaissable.
Lucrèce De natural rerum, Livre IV

Introduction

Introduction

Mieux vaut la malice d’un hommeque la bonté d’une femme1 .

Mieux vaut la malice d’un hommeque la bonté d’une femme1 .

L’ecclésiastique Si 42 14.

L’ecclésiastique Si 42 14.

Il était une fois...

Il était une fois...

Tout a commencé lorsqu’au tout début des années 1990, j’utilisais sur un ordinateur
PC 286 une version du logiciel Word Perfect pour m’initier à ce qu’on appelait alors le« traitement de texte ». Ce logiciel — qui existe toujours, édité par la société Corel —proposait à l’époque sous le désormais célèbre MS-DOS, une interface composée d’unvague aperçu du document, et surtout laissait à l’utilisateur la possibilité de « voir
les codes » c’est-à-dire de visualiser le document avec une sorte de langage à balises
en permettant un contrôle très souple.

Tout a commencé lorsqu’au tout début des années 1990, j’utilisais sur un ordinateur
PC 286 une version du logiciel Word Perfect pour m’initier à ce qu’on appelait alors le« traitement de texte ». Ce logiciel — qui existe toujours, édité par la société Corel —proposait à l’époque sous le désormais célèbre MS-DOS, une interface composée d’unvague aperçu du document, et surtout laissait à l’utilisateur la possibilité de « voir
les codes » c’est-à-dire de visualiser le document avec une sorte de langage à balises
en permettant un contrôle très souple.

Un peu plus tard, avec la prolifération de Windows 3.1 et l’engouement soudain
pour les interfaces graphiques, je me laissais convaincre — faible que j’étais — d’utiliser le logiciel de traitement de texte devenu très célèbre aujourd’hui dans sa version
d’alors : la version 2.0 (avec une petite lettre derrière qui avait toute son importanceà l’époque)... Cette version, je ne l’appris qu’un peu plus tard, avait la particularité
intéressante de comporter un bug très sérieux qui empêchait à partir d’un certain
volume de données, la sauvegarde ! Il n’y a avait alors aucune solution pour sauvegarder ni récupérer son document ; les plus teigneux d’entre nous se hasardaient à
supprimer quelques lignes et tentaient à nouveau une sauvegarde, mais en vain...

Un peu plus tard, avec la prolifération de Windows 3.1 et l’engouement soudain
pour les interfaces graphiques, je me laissais convaincre — faible que j’étais — d’utiliser le logiciel de traitement de texte devenu très célèbre aujourd’hui dans sa version
d’alors : la version 2.0 (avec une petite lettre derrière qui avait toute son importanceà l’époque)... Cette version, je ne l’appris qu’un peu plus tard, avait la particularité
intéressante de comporter un bug très sérieux qui empêchait à partir d’un certain
volume de données, la sauvegarde ! Il n’y a avait alors aucune solution pour sauvegarder ni récupérer son document ; les plus teigneux d’entre nous se hasardaient à
supprimer quelques lignes et tentaient à nouveau une sauvegarde, mais en vain...

À cette époque où les logiciels édités par la société dont nous tairons le nom ici,
faisaient l’objet de railleries non dissimulées2 , la plupart des utilisateurs qui m’entouraient acceptait malgré tout la situation : il était normal d’utiliser des logiciels
qui se vautraient lamentablement et notoirement sans crier gare. Cette particularitéa fait naître en moi une certitude : je n’accepterai pas d’utiliser de tels logiciels.
J’étais alors élève ingénieur et je pressentais qu’une partie de mon travail serait
consacrée à l’élaboration de documents et à l’utilisation de systèmes informatiquesen général, il me fallait des outils robustes pour y parvenir.

À cette époque où les logiciels édités par la société dont nous tairons le nom ici,
faisaient l’objet de railleries non dissimulées2 , la plupart des utilisateurs qui m’entouraient acceptait malgré tout la situation : il était normal d’utiliser des logiciels
qui se vautraient lamentablement et notoirement sans crier gare. Cette particularitéa fait naître en moi une certitude : je n’accepterai pas d’utiliser de tels logiciels.
J’étais alors élève ingénieur et je pressentais qu’une partie de mon travail serait
consacrée à l’élaboration de documents et à l’utilisation de systèmes informatiquesen général, il me fallait des outils robustes pour y parvenir.

C’est au cours de mon DEA (appelé aujourd’hui master recherche) à l’universitéJean Monnet et à l’École des Mines de Saint-Étienne que j’ai découvert à la fois
Unix (dans sa version Solaris) puis Linux. C’est alors que le mot « latèque » fut lâché
pas loin de moi au début de ma thèse (1993-94). Il était apparemment question d’unlogiciel indispensable pour produire des formules mathématiques, et surtout il semblait évident que LATEX était le choix incontournable pour produire des documentsscientiﬁques. À vrai dire la question n’avait même pas l’air de se poser !

C’est au cours de mon DEA (appelé aujourd’hui master recherche) à l’universitéJean Monnet et à l’École des Mines de Saint-Étienne que j’ai découvert à la fois
Unix (dans sa version Solaris) puis Linux. C’est alors que le mot « latèque » fut lâché
pas loin de moi au début de ma thèse (1993-94). Il était apparemment question d’unlogiciel indispensable pour produire des formules mathématiques, et surtout il semblait évident que LATEX était le choix incontournable pour produire des documentsscientiﬁques. À vrai dire la question n’avait même pas l’air de se poser !

1
Les épigraphes de ce document sont tirées de l’Ancien et du Nouveau testament. Ces citations
sont insérées par pure provocation de ma part, et ont — parfois — un lien avec le titre du chapitre.
2
Parmi celles-ci, même si elles n’apparurent que quelques années après, on pourra noter lacélèbre intervention du patron de General Motors en réponse à une provocation de Bill Gates etle non moins célèbre « Piège dans le cyberespace » de Roberto Di Cosmo.

1
Les épigraphes de ce document sont tirées de l’Ancien et du Nouveau testament. Ces citations
sont insérées par pure provocation de ma part, et ont — parfois — un lien avec le titre du chapitre.
2
Parmi celles-ci, même si elles n’apparurent que quelques années après, on pourra noter lacélèbre intervention du patron de General Motors en réponse à une provocation de Bill Gates etle non moins célèbre « Piège dans le cyberespace » de Roberto Di Cosmo.

iii

iii

iv

iv

J’entrepris donc d’installer cette « chose » qu’était LATEX à la fois sur un système Mac avec une distribution nommée OzTEX et sur un système Solaris, avec la
distribution fournie par l’association Gutenberg. Il avait fallu pour cela soudoyerl’administrateur système pour qu’il accepte de créer un utilisateur privilégié texadm
dont le but était d’administrer la distribution...

J’entrepris donc d’installer cette « chose » qu’était LATEX à la fois sur un système Mac avec une distribution nommée OzTEX et sur un système Solaris, avec la
distribution fournie par l’association Gutenberg. Il avait fallu pour cela soudoyerl’administrateur système pour qu’il accepte de créer un utilisateur privilégié texadm
dont le but était d’administrer la distribution...

Début 1994, je commençais ma thèse avec bien évidemment la ferme intention
de la rédiger avec LATEX. Courant 1995, enthousiasmé par ce que je découvrais,
j’entrepris de rédiger un guide d’initiation à LATEX pour mes collègues de laboratoire,
guide qui est à l’origine du présent manuel. C’est au cours de l’année 1997, après
environ deux ans de pratique et d’initiation au monde de la typographie, que jeme confortais dans l’idée que LATEX était eﬀectivement le logiciel de choix pour larédaction d’un document « sérieux » : contrôle global de la mise en page, gestion de la
bibliographie, des index (nom communs et auteurs), légèreté des ﬁchiers manipuléset surtout : la beauté du résultat. Depuis, c’est pour moi l’argument le plus fort etle plus irréfutable pour utiliser LATEX.
Aujourd’hui maître de conférence en informatique à l’école nationale d’ingénieursde Saint-Étienne, j’utilise LATEX pour la rédaction de documents scientiﬁques et desupports pédagogiques. Après maintenant plusieurs années de pratique, je continue
à apprendre et à découvrir, tout en étant encore ébloui par l’ensemble des extensions
proposées par les contributeurs du projet, ensemble d’extensions qui font de LATEX un
joyeux bazar, mais aussi un outil extraordinaire évoluant dans le sens de la véritableergonomie3 , un outil unique dont le souci permanent est « la belle ouvrage ».

Début 1994, je commençais ma thèse avec bien évidemment la ferme intention
de la rédiger avec LATEX. Courant 1995, enthousiasmé par ce que je découvrais,
j’entrepris de rédiger un guide d’initiation à LATEX pour mes collègues de laboratoire,
guide qui est à l’origine du présent manuel. C’est au cours de l’année 1997, après
environ deux ans de pratique et d’initiation au monde de la typographie, que jeme confortais dans l’idée que LATEX était eﬀectivement le logiciel de choix pour larédaction d’un document « sérieux » : contrôle global de la mise en page, gestion de la
bibliographie, des index (nom communs et auteurs), légèreté des ﬁchiers manipuléset surtout : la beauté du résultat. Depuis, c’est pour moi l’argument le plus fort etle plus irréfutable pour utiliser LATEX.
Aujourd’hui maître de conférence en informatique à l’école nationale d’ingénieursde Saint-Étienne, j’utilise LATEX pour la rédaction de documents scientiﬁques et desupports pédagogiques. Après maintenant plusieurs années de pratique, je continue
à apprendre et à découvrir, tout en étant encore ébloui par l’ensemble des extensions
proposées par les contributeurs du projet, ensemble d’extensions qui font de LATEX un
joyeux bazar, mais aussi un outil extraordinaire évoluant dans le sens de la véritableergonomie3 , un outil unique dont le souci permanent est « la belle ouvrage ».

Organisation du manuelOrganisation du manuel

Ce manuel est une introduction au « traitement de texte » LATEX ; il ne s’agit pas
d’un manuel de référence, mais il a pour but de donner les bases pour utiliser LATEX
et si possible d’y prendre goût. Ainsi trouvera-t-on les informations nécessaires pourcommencer en LATEX et quelques conseils sur la rédaction des documents. Pour votre
confort, nous avons eu l’idée lumineuse de diviser ce manuel en chapitres et annexes.
La première partie présente les bases de LATEX :Ce manuel est une introduction au « traitement de texte » LATEX ; il ne s’agit pas
d’un manuel de référence, mais il a pour but de donner les bases pour utiliser LATEX
et si possible d’y prendre goût. Ainsi trouvera-t-on les informations nécessaires pourcommencer en LATEX et quelques conseils sur la rédaction des documents. Pour votre
confort, nous avons eu l’idée lumineuse de diviser ce manuel en chapitres et annexes.
La première partie présente les bases de LATEX :Principes de base expose les concepts fondamentaux de LATEX à lire impérativement pour comprendre le reste ;Principes de base expose les concepts fondamentaux de LATEX à lire impérativement pour comprendre le reste ;Ce qu’il faut savoir présente les outils standard, ceux qu’il faut connaître pourrédiger un document simple ;Ce qu’il faut savoir présente les outils standard, ceux qu’il faut connaître pourrédiger un document simple ;Mathématiques ou comment produire des équations ;Mathématiques ou comment produire des équations ;Un pas vers la sorcellerie pénètre un peu plus profondément dans les rouages de
LATEX ; à lire si vous voulez utiliser LATEX de manière satisfaisante ;Un pas vers la sorcellerie pénètre un peu plus profondément dans les rouages de
LATEX ; à lire si vous voulez utiliser LATEX de manière satisfaisante ;Graphisme permet de comprendre comment insérer des graphiques dans vos documents ;Graphisme permet de comprendre comment insérer des graphiques dans vos documents ;3
Pas celle qui consiste à ajouter une entrée dans un menu, ou un son à l’apparition d’une boîte
de dialogue.

3
Pas celle qui consiste à ajouter une entrée dans un menu, ou un son à l’apparition d’une boîte
de dialogue.

vv

Documents scientifiques donne quelques conseils pour rédiger articles, bibliographies, index et transparents ;Documents scientifiques donne quelques conseils pour rédiger articles, bibliographies, index et transparents ;Documents en français fournit quelques notions élémentaires de typographie etprésente les principaux aspects du package french ;Documents en français fournit quelques notions élémentaires de typographie etprésente les principaux aspects du package french ;À vous de jouer ! une conclusion sous forme de conseils pour chercher des informations sur TEX et LATEX.

À vous de jouer ! une conclusion sous forme de conseils pour chercher des informations sur TEX et LATEX.

La deuxième partie a pour but d’aborder les aspects plus complexes de LATEX en prenant comme prétexte d’expliquer comment ce manuel a été produit. Ne la lisez pas
avant d’avoir lu la première... Toute exposition — même non prolongée — à la deuxième
partie peut provoquer des troubles du comportement et des traumatismes irréversibles.

La deuxième partie a pour but d’aborder les aspects plus complexes de LATEX en prenant comme prétexte d’expliquer comment ce manuel a été produit. Ne la lisez pas
avant d’avoir lu la première... Toute exposition — même non prolongée — à la deuxième
partie peut provoquer des troubles du comportement et des traumatismes irréversibles.

Viennent ensuite les annexes :Viennent ensuite les annexes :Générer des documents en PDF comme son nom l’indique explique la méthodeutilisée pour générer la version pdf de ce manuel ;Générer des documents en PDF comme son nom l’indique explique la méthodeutilisée pour générer la version pdf de ce manuel ;Mémento est un fourre-tout qui propose une liste non exhaustive d’extensions
utiles, les raccourcis de AucTEX, et la conﬁguration de aspell pour emacs ;Mémento est un fourre-tout qui propose une liste non exhaustive d’extensions
utiles, les raccourcis de AucTEX, et la conﬁguration de aspell pour emacs ;Symboles une liste des symboles mathématiques disponibles en standard et avec
l’extension amssymb.

Symboles une liste des symboles mathématiques disponibles en standard et avec
l’extension amssymb.

Il est conseillé de lire dans l’ordre les premiers chapitres jusqu’aux mathématiques.
Les suivants peuvent se lire indépendamment les uns des autres. Encore une fois, ladeuxième partie du manuel n’est à lire qu’après avoir maîtrisé les concepts de base.
Un index en ﬁn de document constitue un bon point d’entrée pour retrouver desinformations. Enﬁn, à l’instar des auteurs de la FAQ française de LATEX, je n’ai pas
fait d’eﬀort particulier pour traduire systématiquement tous les termes du jargon de
LATEX et de l’informatique en général.

Il est conseillé de lire dans l’ordre les premiers chapitres jusqu’aux mathématiques.
Les suivants peuvent se lire indépendamment les uns des autres. Encore une fois, ladeuxième partie du manuel n’est à lire qu’après avoir maîtrisé les concepts de base.
Un index en ﬁn de document constitue un bon point d’entrée pour retrouver desinformations. Enﬁn, à l’instar des auteurs de la FAQ française de LATEX, je n’ai pas
fait d’eﬀort particulier pour traduire systématiquement tous les termes du jargon de
LATEX et de l’informatique en général.

Ce qu’il faudrait que vous sachiez
La lecture de ce manuel qui s’adresse aux débutants, ne demande aucun pré-requisà propos de LATEX. Le lecteur devra cependant posséder une connaissance de based’un système d’exploitation en tant qu’utilisateur, c’est-à-dire savoir manipuler desﬁchiers. Être capable de créer un ﬁchier PostScript encapsulé sur son système, àpartir d’un logiciel de dessin ou de manipulation d’image, est également souhaitable.

Ce que vous ne saurez pas

Ce qu’il faudrait que vous sachiez
La lecture de ce manuel qui s’adresse aux débutants, ne demande aucun pré-requisà propos de LATEX. Le lecteur devra cependant posséder une connaissance de based’un système d’exploitation en tant qu’utilisateur, c’est-à-dire savoir manipuler desﬁchiers. Être capable de créer un ﬁchier PostScript encapsulé sur son système, àpartir d’un logiciel de dessin ou de manipulation d’image, est également souhaitable.

Ce que vous ne saurez pas

Ce fabuleux manuel que vous avez entre les mains souﬀre tout de même de quelques
lacunes ; parmi celles-ci :Ce fabuleux manuel que vous avez entre les mains souﬀre tout de même de quelques
lacunes ; parmi celles-ci :• il manque une explication claire de la manière dont TEX et LATEX gèrent lesfontes. Vous ne trouverez d’ailleurs nulle part le mot METAFONT;• il manque une explication claire de la manière dont TEX et LATEX gèrent lesfontes. Vous ne trouverez d’ailleurs nulle part le mot METAFONT;

vivi• vous n’apprendrez pas comment installer et administrer une distribution LATEX
sur un système Unix ;• vous n’apprendrez pas comment installer et administrer une distribution LATEX
sur un système Unix ;• vous ne trouverez pas de « catalogue » ou d’inventaire des extensions existantes,
utiles ou inutiles, compatibles ou incompatibles, etc. ;• vous ne trouverez pas de « catalogue » ou d’inventaire des extensions existantes,
utiles ou inutiles, compatibles ou incompatibles, etc. ;• la question de l’œuf ou la poule est également occultée, ainsi que celle des liens
entre Dieu et la science ;• la question de l’œuf ou la poule est également occultée, ainsi que celle des liens
entre Dieu et la science ;

• ...

• ...

Il est important de ne pas fonder de faux espoirs sur le contenu de ce manuel :son titre est un mensonge éhonté. D’autre part, les images de la couverture mises
à disposition par Knuth4 sont dessinées par Duane Bibby et n’ont rien à voir avec lesujet du présent manuel puisqu’il s’agit de dessins censés représenter les programmes TEX
et METAFONT.

Il est important de ne pas fonder de faux espoirs sur le contenu de ce manuel :son titre est un mensonge éhonté. D’autre part, les images de la couverture mises
à disposition par Knuth4 sont dessinées par Duane Bibby et n’ont rien à voir avec lesujet du présent manuel puisqu’il s’agit de dessins censés représenter les programmes TEX
et METAFONT.

TEX ?

TEX ?

Le mathématicien Donald Ervin Knuth — à qui l’on doit de nombreux ouvrages
de mathématiques et d’algorithmique (notamment The Art of Computer Programing [8]) — a conçu dans les années 70 un système de traitement de texte nommé
TEX après avoir été déçu par la manière dont ses articles étaient imprimés par lessystèmes du moment. TEX — accessible au public depuis le début des années 80 —est un environnement complexe de programmation composé d’un processeur de macro (macro processsor ) et de quelques centaines de primitives. Un premier ensemble
de macros pré-compilées est apparu assez rapidement sous le nom de format plain.

Le mathématicien Donald Ervin Knuth — à qui l’on doit de nombreux ouvrages
de mathématiques et d’algorithmique (notamment The Art of Computer Programing [8]) — a conçu dans les années 70 un système de traitement de texte nommé
TEX après avoir été déçu par la manière dont ses articles étaient imprimés par lessystèmes du moment. TEX — accessible au public depuis le début des années 80 —est un environnement complexe de programmation composé d’un processeur de macro (macro processsor ) et de quelques centaines de primitives. Un premier ensemble
de macros pré-compilées est apparu assez rapidement sous le nom de format plain.

On pourra noter que TEX n’est ni un traitement de texte (Knuth le nomme« typesetting system » que l’on pourrait traduire par système de composition) ni unlangage de programmation compilé. Voici quelques citations de Knuth à propos de
TEX5 :On pourra noter que TEX n’est ni un traitement de texte (Knuth le nomme« typesetting system » que l’on pourrait traduire par système de composition) ni unlangage de programmation compilé. Voici quelques citations de Knuth à propos de
TEX5 :« Des mots anglais comme « technology » sont dérivés de racines
grecques commençant par les lettres τ ǫχ... ; ce même mot grec voulant
dire à la fois art et technologie. D’où le nom TEX, qui est la forme en
majuscules de τ ǫχ. »« Des mots anglais comme « technology » sont dérivés de racines
grecques commençant par les lettres τ ǫχ... ; ce même mot grec voulant
dire à la fois art et technologie. D’où le nom TEX, qui est la forme en
majuscules de τ ǫχ. »Au sujet de la prononciation du « X » de TEX :Au sujet de la prononciation du « X » de TEX :« [...] C’est le son « ch » en allemand comme dans ach ; c’est le « j » espagnol [...]. Lorsque vous le dites correctement à votre ordinateur, l’écran
doit devenir légèrement humide. »« [...] C’est le son « ch » en allemand comme dans ach ; c’est le « j » espagnol [...]. Lorsque vous le dites correctement à votre ordinateur, l’écran
doit devenir légèrement humide. »Votre humble serviteur se contente lui de le prononcer « TeK » pour contrecarrer
l’aspect caoutchouteux et éviter d’avoir à nettoyer son écran régulièrement.

Votre humble serviteur se contente lui de le prononcer « TeK » pour contrecarrer
l’aspect caoutchouteux et éviter d’avoir à nettoyer son écran régulièrement.

45

http://www-cs-faculty.stanford.edu/~uno/graphics.html
Tiré du chapitre introductif « The Name of the Game » du TEXBook.

45

http://www-cs-faculty.stanford.edu/~uno/graphics.html
Tiré du chapitre introductif « The Name of the Game » du TEXBook.

vii

vii

Enﬁn pour ce qui est du logo lui-même Knuth fait remarquer que ce déplacement du E est là pour rappeler qu’il s’agit de typographie, et insiste sur le fait quedans une situation où l’on veut parler de TEX sans avoir les moyens d’abaisser le E,il faudra écrire « TeX ».

Enﬁn pour ce qui est du logo lui-même Knuth fait remarquer que ce déplacement du E est là pour rappeler qu’il s’agit de typographie, et insiste sur le fait quedans une situation où l’on veut parler de TEX sans avoir les moyens d’abaisser le E,il faudra écrire « TeX ».

La version actuelle de TEX est 3.1415926 (les versions comme vous l’avez compris
tendent vers π) ; dans la préface de son livre « TEX : the program » Knuth estimait
que le dernier bug avait été trouvé et corrigé le 27 novembre 1985 et proposait une
récompense de 20,48 $ à qui en trouvait un nouveau. Aujourd’hui la somme de dollars
hexadecimaux a été ﬁgée à 327,68 $. Les amateurs de puissances de 2 apprécieront...

La version actuelle de TEX est 3.1415926 (les versions comme vous l’avez compris
tendent vers π) ; dans la préface de son livre « TEX : the program » Knuth estimait
que le dernier bug avait été trouvé et corrigé le 27 novembre 1985 et proposait une
récompense de 20,48 $ à qui en trouvait un nouveau. Aujourd’hui la somme de dollars
hexadecimaux a été ﬁgée à 327,68 $. Les amateurs de puissances de 2 apprécieront...

LATEX ?

LATEX ?

En 1985, quelques années après la diﬀusion publique de TEX, Leslie Lamport crée
un format composé de macros permettant d’avoir une vision de plus haut niveau
d’un document, appelé LATEX et portant le numéro de version 2.09. Aujourd’hui,
LATEX est un standard de fait, et seuls quelques sorciers produisent encore des documents uniquement avec TEX. Cependant, LATEX étant une « surcouche » de TEX— contenant donc des appels à des macros de TEX — il est parfois utile de connaître
quelques-uns des concepts de TEX pour se tirer d’un mauvais pas. Voici ce que dit
Lamport à ce propos dans son livre [10] :En 1985, quelques années après la diﬀusion publique de TEX, Leslie Lamport crée
un format composé de macros permettant d’avoir une vision de plus haut niveau
d’un document, appelé LATEX et portant le numéro de version 2.09. Aujourd’hui,
LATEX est un standard de fait, et seuls quelques sorciers produisent encore des documents uniquement avec TEX. Cependant, LATEX étant une « surcouche » de TEX— contenant donc des appels à des macros de TEX — il est parfois utile de connaître
quelques-uns des concepts de TEX pour se tirer d’un mauvais pas. Voici ce que dit
Lamport à ce propos dans son livre [10] :« Imaginez LATEX comme une maison dont la charpente et les clous
seraient fournis par TEX. Vous n’en avez pas besoin pour vivre dans lamaison, mais ils sont pratiques pour y ajouter une nouvelle pièce. »« Imaginez LATEX comme une maison dont la charpente et les clous
seraient fournis par TEX. Vous n’en avez pas besoin pour vivre dans lamaison, mais ils sont pratiques pour y ajouter une nouvelle pièce. »Un peu plus loin :Un peu plus loin :« LATEX a été conçu pour permettre à un auteur de faire abstraction
des soucis de mise en page, et se concentrer sur l’écriture. Si vous passez
beaucoup de temps sur la forme, vous faites un mauvais usage de LATEX. »« LATEX a été conçu pour permettre à un auteur de faire abstraction
des soucis de mise en page, et se concentrer sur l’écriture. Si vous passez
beaucoup de temps sur la forme, vous faites un mauvais usage de LATEX. »Aujourd’hui et depuis 1994, une équipe mi-européenne mi-américaine (autour deFrank Mittelbach) a pris en main le développement de LATEX ; la version de LATEX
parue en 1994 se nomme LATEX 2ε . Le but à long terme est de concevoir un système
nommé LATEX3.

Aujourd’hui et depuis 1994, une équipe mi-européenne mi-américaine (autour deFrank Mittelbach) a pris en main le développement de LATEX ; la version de LATEX
parue en 1994 se nomme LATEX 2ε . Le but à long terme est de concevoir un système
nommé LATEX3.

Licence

Licence

On peut souligner que TEX et LATEX sont des logiciels faisant partie de la famille deslogiciels libres et sont donc — entre autres — gratuits. Ce qui caractérise les logiciels
libres (free software) est également l’aspect ouvert des logiciels. Il est donc possible
d’avoir les sources Web6 de TEX. Les macros de LATEX sont quant à elles distribuées

On peut souligner que TEX et LATEX sont des logiciels faisant partie de la famille deslogiciels libres et sont donc — entre autres — gratuits. Ce qui caractérise les logiciels
libres (free software) est également l’aspect ouvert des logiciels. Il est donc possible
d’avoir les sources Web6 de TEX. Les macros de LATEX sont quant à elles distribuées

6
Le langage Web conçu par Knuth est qualifié de langage de « programmation littéraire. » Àpartir d’un document source Web, on peut produire le code Pascal ou C du programme ainsi qu’une
documentation en TEX de ce code.

6
Le langage Web conçu par Knuth est qualifié de langage de « programmation littéraire. » Àpartir d’un document source Web, on peut produire le code Pascal ou C du programme ainsi qu’une
documentation en TEX de ce code.

viii

viii

sous forme de code source TEX. Le fait de pouvoir obtenir les sources d’un logiciel
peut sembler secondaire à la plupart des utilisateurs ; il faut comprendre que c’est
parce que rien n’est caché que l’amélioration de l’existant et la création d’extensions
sont possibles.

sous forme de code source TEX. Le fait de pouvoir obtenir les sources d’un logiciel
peut sembler secondaire à la plupart des utilisateurs ; il faut comprendre que c’est
parce que rien n’est caché que l’amélioration de l’existant et la création d’extensions
sont possibles.

Le fait qu’un logiciel soit libre ne veut pas dire qu’on puisse en faire tout à fait
ce que l’on veut. Il reste la propriété de son auteur et toute modiﬁcation doit êtredocumentée ; chacune de ces modiﬁcations doit également donner lieu à un nom
de ﬁchier diﬀérent de celui du ﬁchier initial avant modiﬁcation. Ceci pour assurer
cohérence et portabilité au système (voir à ce sujet ftp://ftp.lip6.fr/pub/TeX/
CTAN/macros/latex/base/lppl.txt pour la licence de LATEX 2ε ).

Le fait qu’un logiciel soit libre ne veut pas dire qu’on puisse en faire tout à fait
ce que l’on veut. Il reste la propriété de son auteur et toute modiﬁcation doit êtredocumentée ; chacune de ces modiﬁcations doit également donner lieu à un nom
de ﬁchier diﬀérent de celui du ﬁchier initial avant modiﬁcation. Ceci pour assurer
cohérence et portabilité au système (voir à ce sujet ftp://ftp.lip6.fr/pub/TeX/
CTAN/macros/latex/base/lppl.txt pour la licence de LATEX 2ε ).

Cinq bonnes raisons pour ne pas utiliser LATEX

Cinq bonnes raisons pour ne pas utiliser LATEXIl existe plusieurs raisons pour lesquelles il est « impératif » de ne pas utiliser LATEX :Il existe plusieurs raisons pour lesquelles il est « impératif » de ne pas utiliser LATEX :1. vous utilisez un traitement de texte uniquement pour faire vos cartes de vœux,votre courrier, pour noter quelques idées, etc. ;1. vous utilisez un traitement de texte uniquement pour faire vos cartes de vœux,votre courrier, pour noter quelques idées, etc. ;2. vous adorez les souris (1 ou 3 boutons indiﬀéremment) et vous pensez que laseule manière d’écrire des équations est de les utiliser (les souris) de manière
intensive ;2. vous adorez les souris (1 ou 3 boutons indiﬀéremment) et vous pensez que laseule manière d’écrire des équations est de les utiliser (les souris) de manière
intensive ;3. vous pensez qu’Unix c’est « prise de tête » et « pas convivial » et/ou vous avez
une aversion particulière pour tout langage de programmation ;3. vous pensez qu’Unix c’est « prise de tête » et « pas convivial » et/ou vous avez
une aversion particulière pour tout langage de programmation ;4. vous trouvez normal : 1o que votre logiciel préféré ne puisse pas lire le document que vous aviez produit avec la version précédente, et/ou 2o que lanouvelle version vous oblige à changer de système d’exploitation, et 3o que lanouvelle version dudit système d’exploitation vous oblige à changer d’ordinateur, et 4o que votre nouvel ordinateur...

4. vous trouvez normal : 1o que votre logiciel préféré ne puisse pas lire le document que vous aviez produit avec la version précédente, et/ou 2o que lanouvelle version vous oblige à changer de système d’exploitation, et 3o que lanouvelle version dudit système d’exploitation vous oblige à changer d’ordinateur, et 4o que votre nouvel ordinateur...

5. vous ne savez pas où se trouve la touche \ sur votre clavier ;5. vous ne savez pas où se trouve la touche \ sur votre clavier ;si vous vous reconnaissez dans une de ces catégories, mieux vaut vous contenter devotre système actuel.

Quelques bonnes raisons d’utiliser LATEX

si vous vous reconnaissez dans une de ces catégories, mieux vaut vous contenter devotre système actuel.

Quelques bonnes raisons d’utiliser LATEX

Il n’est pas question ici de convaincre le lecteur de la supériorité de TEX et LATEX
par rapport à un autre système, de toutes manières, vous lisez ce manuel, donc vousêtes inconsciemment convaincu. Laissons donc la parole au concepteur de TEX :Il n’est pas question ici de convaincre le lecteur de la supériorité de TEX et LATEX
par rapport à un autre système, de toutes manières, vous lisez ce manuel, donc vousêtes inconsciemment convaincu. Laissons donc la parole au concepteur de TEX :« By preparing a manuscript in TEX format, you will be telling a computer exactly how the manuscript is to be transformed into pages whose
typographic quality is comparable to that of the world’s finest printers. »« By preparing a manuscript in TEX format, you will be telling a computer exactly how the manuscript is to be transformed into pages whose
typographic quality is comparable to that of the world’s finest printers. »D. E. Knuth in the TEXbook [9]D. E. Knuth in the TEXbook [9]

ix

ix

Les documents générés par TEX ou LATEX sont d’une qualité typographique exceptionnelle (avec possibilité de réglage très ﬁn7 ), ceci grâce notamment à :Les documents générés par TEX ou LATEX sont d’une qualité typographique exceptionnelle (avec possibilité de réglage très ﬁn7 ), ceci grâce notamment à :• un dessin de fontes très soigné ;• un dessin de fontes très soigné ;• des détails typographiques (tirets, ligatures,...) ;• des détails typographiques (tirets, ligatures,...) ;– avez-vous — bien — regardé ces tirets (page 19–23) ?

– avez-vous — bien — regardé ces tirets (page 19–23) ?

– et le « fi » de ﬁn, le « ffl » de souﬄe ou le « fl » de trèﬂe ?

– et le « fi » de ﬁn, le « ffl » de souﬄe ou le « fl » de trèﬂe ?

• un algorithme de césure très performant ;• un algorithme de césure très performant ;• des formules mathématiques particulièrement réussies ;• des formules mathématiques particulièrement réussies ;

• ...

• ...

D’autre part, LATEX est un des rares logiciels de traitement de texte orienté vers la
production de documents scientifiques. Car outre les équations et autres formules,
LATEX possède un grand nombre de fonctionnalités axées autour de la rédaction
d’article et la génération de bibliographie et d’index.

D’autre part, LATEX est un des rares logiciels de traitement de texte orienté vers la
production de documents scientifiques. Car outre les équations et autres formules,
LATEX possède un grand nombre de fonctionnalités axées autour de la rédaction
d’article et la génération de bibliographie et d’index.

Enﬁn, LATEX est particulièrement adapté à la production de gros documents.
Pas seulement parce que la manipulation d’un document LATEX exige par essencepeu de mémoire, mais parce que les mécanismes de macros et de référence croisée(cross reference en anglais) permettent de garder un contrôle global et très souple
du document.

Enﬁn, LATEX est particulièrement adapté à la production de gros documents.
Pas seulement parce que la manipulation d’un document LATEX exige par essencepeu de mémoire, mais parce que les mécanismes de macros et de référence croisée(cross reference en anglais) permettent de garder un contrôle global et très souple
du document.

référence croisée : LATEX permet de faire référence de manière symbolique à toutepartie du document faisant l’objet d’une numérotation. Ainsi, le numéro destitres, ﬁgures, tableaux, équations, pages, références bibliographiques, itemsd’énumération, théorèmes,... peut être mentionné à plusieurs endroits dans undocument de manière très simple, sans se soucier du numéro lui-même.

référence croisée : LATEX permet de faire référence de manière symbolique à toutepartie du document faisant l’objet d’une numérotation. Ainsi, le numéro destitres, ﬁgures, tableaux, équations, pages, références bibliographiques, itemsd’énumération, théorèmes,... peut être mentionné à plusieurs endroits dans undocument de manière très simple, sans se soucier du numéro lui-même.

macros : sans doute l’aspect le plus puissant de LATEX. Il faut savoir que tout processus qui mène à la génération d’un document est une séquence de commandes
ou macros. Chaque utilisateur peut donc modiﬁer l’allure d’un document, en
modiﬁant l’une des ces macros. On peut bien évidemment déﬁnir ses propres
macros pour mettre en page une partie spéciﬁque d’un document. L’idée forte
autour des macros est qu’on peut a priori séparer le fond de la forme lors dela rédaction d’un document.

macros : sans doute l’aspect le plus puissant de LATEX. Il faut savoir que tout processus qui mène à la génération d’un document est une séquence de commandes
ou macros. Chaque utilisateur peut donc modiﬁer l’allure d’un document, en
modiﬁant l’une des ces macros. On peut bien évidemment déﬁnir ses propres
macros pour mettre en page une partie spéciﬁque d’un document. L’idée forte
autour des macros est qu’on peut a priori séparer le fond de la forme lors dela rédaction d’un document.

Les limites du Wysiwyg

Les limites du Wysiwyg

LATEX est le contraire d’un Wysiwyg8 , puisqu’un source LATEX est un document texte
composé du texte lui-même et des commandes de mise en page. Lamport présente

LATEX est le contraire d’un Wysiwyg8 , puisqu’un source LATEX est un document texte
composé du texte lui-même et des commandes de mise en page. Lamport présente7
À titre indicatif l’unité interne de mesure de TEX est le scaled point, noté sp dans le TEXbook,qui vaut 1/65536 points ; 1 point valant environ 1/72e de pouce, 1 pouce valant 2.54 cm, l’unité debase est approximativement 50 Å, ce qui laisse de la marge vis à vis de la résolution des imprimantes
actuelles.
8
Pour « what you see is what you get » terme désignant les logiciels permettant à l’utilisateur devoir à l’écran ce qu’il obtiendrait sur le papier. Le premier traitement texte Wysiwyg serait Bravo
mis au point sur la machine Alto du Xerox Paolo Alto Research Center en 1974.

7
À titre indicatif l’unité interne de mesure de TEX est le scaled point, noté sp dans le TEXbook,qui vaut 1/65536 points ; 1 point valant environ 1/72e de pouce, 1 pouce valant 2.54 cm, l’unité debase est approximativement 50 Å, ce qui laisse de la marge vis à vis de la résolution des imprimantes
actuelles.
8
Pour « what you see is what you get » terme désignant les logiciels permettant à l’utilisateur devoir à l’écran ce qu’il obtiendrait sur le papier. Le premier traitement texte Wysiwyg serait Bravo
mis au point sur la machine Alto du Xerox Paolo Alto Research Center en 1974.

xx

ce type d’approche comme étant une mise en page logique par opposition à la miseen page visuelle 9 .

ce type d’approche comme étant une mise en page logique par opposition à la miseen page visuelle 9 .

On pourrait cependant dire que LATEX est un Wywsiewyg (what you will see
is exactly what you get) puisqu’après compilation on peut visualiser à l’écran une
image exacte du document futur sur papier.

On pourrait cependant dire que LATEX est un Wywsiewyg (what you will see
is exactly what you get) puisqu’après compilation on peut visualiser à l’écran une
image exacte du document futur sur papier.

Voici donc un exemple10 parmi d’autres qui met en évidence les limites du Wysiwyg et les avantages de la mise en page logique : supposons que dans un document
apparaisse un certain nombre de fois, une fonction quelconque ayant deux arguments.
La notation étant un point délicat dans l’élaboration de documents scientiﬁques, on
pourra déﬁnir une macro \mafct permettant de produire une telle fonction. Ainsi lesséquences \mafct{1}{2.5} et \mafct{x}{t} produiront respectivement Fα,β (1, 2.5)
et Fα,β (x, t). Mais si l’on a besoin de changer de notation, il suﬃra de redéﬁnir lacommande \mafct pour produire aux endroits nécessaires : Fαβ [1, 2.5] et Fαβ [x, t].
Et le tour est joué !

Voici donc un exemple10 parmi d’autres qui met en évidence les limites du Wysiwyg et les avantages de la mise en page logique : supposons que dans un document
apparaisse un certain nombre de fois, une fonction quelconque ayant deux arguments.
La notation étant un point délicat dans l’élaboration de documents scientiﬁques, on
pourra déﬁnir une macro \mafct permettant de produire une telle fonction. Ainsi lesséquences \mafct{1}{2.5} et \mafct{x}{t} produiront respectivement Fα,β (1, 2.5)
et Fα,β (x, t). Mais si l’on a besoin de changer de notation, il suﬃra de redéﬁnir lacommande \mafct pour produire aux endroits nécessaires : Fαβ [1, 2.5] et Fαβ [x, t].
Et le tour est joué !

Un autre exemple : imaginons que votre document comporte beaucoup de motstechniques que vous voulez mettre en évidence d’une manière particulière. Vous écrirez alors dans votre document \jargon{implémentation} en ayant préalablement
déﬁni la macro \jargon de manière à ce qu’elle mette en italique le mot du vocabulaire technique. Les 235 mots de jargon auxquels vous faîtes référence dans votre
document pourront être mis en évidence autrement qu’en italique si vous changez
d’avis, et cela sans avoir à passer sur les 235 occurrences des mots du jargon, maisjuste en changeant la déﬁnition de la macro \jargon. Avec un peu d’entraînement
vous arriverez même à faire en sorte que cette macro insère automatiquement le mot
du jargon dans l’index de votre document...

Un autre exemple : imaginons que votre document comporte beaucoup de motstechniques que vous voulez mettre en évidence d’une manière particulière. Vous écrirez alors dans votre document \jargon{implémentation} en ayant préalablement
déﬁni la macro \jargon de manière à ce qu’elle mette en italique le mot du vocabulaire technique. Les 235 mots de jargon auxquels vous faîtes référence dans votre
document pourront être mis en évidence autrement qu’en italique si vous changez
d’avis, et cela sans avoir à passer sur les 235 occurrences des mots du jargon, maisjuste en changeant la déﬁnition de la macro \jargon. Avec un peu d’entraînement
vous arriverez même à faire en sorte que cette macro insère automatiquement le mot
du jargon dans l’index de votre document...

Voici un exemple un peu plus tordu : dans le titre du paragraphe intitulé « Cinq
bonnes raisons de ne pas [...] » un peu plus haut dans ce chapitre, je n’ai pas écrit
« Cinq11 » en toutes lettres dans le document source. En réalité le titre du paragraphe
est produit par : « \ref{nbraisons} bonnes raisons... » qui aﬃche en français lenombre correspondant aux nombres de bonnes raisons de ne pas utiliser LATEX. Si
jamais j’avais à rajouter d’autres entrées dans cette liste de bonnes raisons, il nesera pas nécessaire de refaire la numérotation...

Voici un exemple un peu plus tordu : dans le titre du paragraphe intitulé « Cinq
bonnes raisons de ne pas [...] » un peu plus haut dans ce chapitre, je n’ai pas écrit
« Cinq11 » en toutes lettres dans le document source. En réalité le titre du paragraphe
est produit par : « \ref{nbraisons} bonnes raisons... » qui aﬃche en français lenombre correspondant aux nombres de bonnes raisons de ne pas utiliser LATEX. Si
jamais j’avais à rajouter d’autres entrées dans cette liste de bonnes raisons, il nesera pas nécessaire de refaire la numérotation...

Vous trouverez le long de ce manuel, d’autres exemples mettant en évidence, lesfaiblesses du Wysiwyg. Ce « nota », vous avertissant d’un point important en est
un autre exemple. Car au moment où l’auteur tape ces lignes, la présence du « panneau
danger » est un détail — il s’agit simplement d’un nota. Et l’auteur a écrit :Vous trouverez le long de ce manuel, d’autres exemples mettant en évidence, lesfaiblesses du Wysiwyg. Ce « nota », vous avertissant d’un point important en est
un autre exemple. Car au moment où l’auteur tape ces lignes, la présence du « panneau
danger » est un détail — il s’agit simplement d’un nota. Et l’auteur a écrit :\begin{nota}
Vous trouvez le long de ce manuel...
\end{nota}\begin{nota}
Vous trouvez le long de ce manuel...
\end{nota}

Pour en ﬁnir avec les macros, on peut dire qu’il s’agit d’une « généralisation » desstyles du célèbre logiciel « Mot » de la société « Micrologiciel ». La lecture de ce
document et en particulier la deuxième partie devrait vous convaincre que les macros
permettent d’aller bien au-delà de ces fameux styles...

Pour en ﬁnir avec les macros, on peut dire qu’il s’agit d’une « généralisation » desstyles du célèbre logiciel « Mot » de la société « Micrologiciel ». La lecture de ce
document et en particulier la deuxième partie devrait vous convaincre que les macros
permettent d’aller bien au-delà de ces fameux styles...

9
Pour faire un peu de mauvais esprit, les logiciels du type Wysiwyg ont d’ailleurs été qualifiés
par Kernighan (dixit Lamport dans son livre sur LATEX) de “what you see is all what you’ve got” !
10
Lamport propose un exemple analogue à celui-ci dans son manuel.
11
Là non plus d’ailleurs.

9
Pour faire un peu de mauvais esprit, les logiciels du type Wysiwyg ont d’ailleurs été qualifiés
par Kernighan (dixit Lamport dans son livre sur LATEX) de “what you see is all what you’ve got” !
10
Lamport propose un exemple analogue à celui-ci dans son manuel.
11
Là non plus d’ailleurs.

xi

xi

Pour les accros du Wysiwyg, une équipe de développeur a mis en œuvre uneversion What you see is what you Mean (sic) de LATEX nommé LyX, dont je vous
invite à prendre connaissance à http://www.lyx.org.

Pour les accros du Wysiwyg, une équipe de développeur a mis en œuvre uneversion What you see is what you Mean (sic) de LATEX nommé LyX, dont je vous
invite à prendre connaissance à http://www.lyx.org.

Comment imprimer ce manuel ?

Comment imprimer ce manuel ?

Avec une imprimante12 , en utilisant exclusivement les ﬁchiers proposés sur http://
www.enise.fr/cours/info/latex. Ce manuel est conçu pour être imprimé en deux
pages logiques par page physique (2up printing comme disent nos amis anglosaxons).
En d’autres termes, chaque page de ce document doit apparaître sur une page au
format A5. Quatre solutions — et quatre ﬁchiers associés — sont possibles :Avec une imprimante12 , en utilisant exclusivement les ﬁchiers proposés sur http://
www.enise.fr/cours/info/latex. Ce manuel est conçu pour être imprimé en deux
pages logiques par page physique (2up printing comme disent nos amis anglosaxons).
En d’autres termes, chaque page de ce document doit apparaître sur une page au
format A5. Quatre solutions — et quatre ﬁchiers associés — sont possibles :1. une version destinée à être reliée du long coté de la feuille A4, c’est la solution pour ceux qui ne disposent pas de massicot ; le ﬁchier portant le nom
guide-latex-0.pdf est en outre généré pour présenter la page impaire (ditebelle page) à droite (cf. ﬁgure 1a page xii) ;1. une version destinée à être reliée du long coté de la feuille A4, c’est la solution pour ceux qui ne disposent pas de massicot ; le ﬁchier portant le nom
guide-latex-0.pdf est en outre généré pour présenter la page impaire (ditebelle page) à droite (cf. ﬁgure 1a page xii) ;2. une version pour ceux qui disposent d’un massicot : dans ce cas, il faudra« plier » le document et le relier au niveau de cette pliure (voir ﬁgure 1b
page xii). Le ﬁchier correspondant se nomme guide-latex-1.pdf ;2. une version pour ceux qui disposent d’un massicot : dans ce cas, il faudra« plier » le document et le relier au niveau de cette pliure (voir ﬁgure 1b
page xii). Le ﬁchier correspondant se nomme guide-latex-1.pdf ;3. une version contenant 2 exemplaires (ﬁchier guide-latex-2.pdf). On reliera
ces deux exemplaires comme indiqué à la ﬁgure 1c page xii ;3. une version contenant 2 exemplaires (ﬁchier guide-latex-2.pdf). On reliera
ces deux exemplaires comme indiqué à la ﬁgure 1c page xii ;4. une version au format PostScript guide-latex.ps.gz pour ceux qui voudraient faire « à leur sauce »...

4. une version au format PostScript guide-latex.ps.gz pour ceux qui voudraient faire « à leur sauce »...

Attention, les deux derniers fichiers au format Pdf, sont prévus pour être imprimés
en recto verso en demandant à l’imprimante de retourner la feuille du côté court.
Il faudra donc veiller à ce que le pilote d’imprimante utilise cette option.

Attention, les deux derniers fichiers au format Pdf, sont prévus pour être imprimés
en recto verso en demandant à l’imprimante de retourner la feuille du côté court.
Il faudra donc veiller à ce que le pilote d’imprimante utilise cette option.

Que pouvez-vous faire de ce manuel ?

Que pouvez-vous faire de ce manuel ?

Nom de l’auteur : Vincent Lozano ;Nom de l’auteur : Vincent Lozano ;Titre : Tout ce que vous avez toujours voulu savoir sur LATEX sans jamais avoir osé
le demander ;Titre : Tout ce que vous avez toujours voulu savoir sur LATEX sans jamais avoir osé
le demander ;Date : 1er mars 2011

Date : 1er mars 2011

Copyleft : ce manuel est libre selon les termes de la Licence Art Libre (LAL) :Copyleft : ce manuel est libre selon les termes de la Licence Art Libre (LAL) :http://www.artlibre.org
La LAL stipule en résumé que vous pouvez copier ce manuel. Vous pouvez également
le diﬀuser à condition :12

Arf arf (comme disait Frank Zappa).

http://www.artlibre.org
La LAL stipule en résumé que vous pouvez copier ce manuel. Vous pouvez également
le diﬀuser à condition :12

Arf arf (comme disait Frank Zappa).

xii

xii

(a) Reliure longue(b) Reliure courte « 1 exemplaire »(a) Reliure longue(c) Reliure courte « 2 exemplaires »Figure 1: Les versions imprimables(b) Reliure courte « 1 exemplaire »(c) Reliure courte « 2 exemplaires »Figure 1: Les versions imprimables• d’indiquer qu’il est sous la LAL ;• d’indiquer qu’il est sous la LAL ;• d’indiquer le nom de l’auteur de l’original : Vincent Lozano et de ceux qui
auraient apporté des modiﬁcations ;• d’indiquer le nom de l’auteur de l’original : Vincent Lozano et de ceux qui
auraient apporté des modiﬁcations ;• d’indiquer que les sources peuvent être téléchargés sur http://cours.enise.
fr/info/latex.

• d’indiquer que les sources peuvent être téléchargés sur http://cours.enise.
fr/info/latex.

Enﬁn vous pouvez le modiﬁer à condition :Enﬁn vous pouvez le modiﬁer à condition :• de respecter les conditions de diﬀusion énoncées ci-dessus ;• de respecter les conditions de diﬀusion énoncées ci-dessus ;• d’indiquer qu’il s’agit d’une version modiﬁée et si possible la nature de lamodiﬁcation ;• d’indiquer qu’il s’agit d’une version modiﬁée et si possible la nature de lamodiﬁcation ;• de diﬀuser vos modiﬁcations sous la même licence ou sous une licence compatible.

• de diﬀuser vos modiﬁcations sous la même licence ou sous une licence compatible.

xiii

En avant !

xiii

En avant !

Comme beaucoup de logiciels puissants, LATEX n’est pas toujours simple à utiliser. En
fait lorsque l’on va dans son sens, LATEX est toujours agréable et permet eﬀectivement
comme le souligne Lamport de ne pas se soucier de problèmes de mise en page.
Lorsque l’on veut changer un comportement, et que la solution consiste à choisir une
autre option d’une commande, tout va encore très bien. Cependant, même si les choix
de LATEX répondent à des conventions en vigueur chez tous les bons imprimeurs, ilarrive un jour où l’on désire avoir une mise en page particulière qu’apparemment
LATEX est incapable de fournir. À ce stade, plusieurs solutions s’oﬀrent à vous :Comme beaucoup de logiciels puissants, LATEX n’est pas toujours simple à utiliser. En
fait lorsque l’on va dans son sens, LATEX est toujours agréable et permet eﬀectivement
comme le souligne Lamport de ne pas se soucier de problèmes de mise en page.
Lorsque l’on veut changer un comportement, et que la solution consiste à choisir une
autre option d’une commande, tout va encore très bien. Cependant, même si les choix
de LATEX répondent à des conventions en vigueur chez tous les bons imprimeurs, ilarrive un jour où l’on désire avoir une mise en page particulière qu’apparemment
LATEX est incapable de fournir. À ce stade, plusieurs solutions s’oﬀrent à vous :• inclure un package qui répond à votre problème (LATEX étant un système ouvert, une multitude de packages plus ou moins standardisés sont disponibles
pour réaliser des opérations variées voire farfelues);• inclure un package qui répond à votre problème (LATEX étant un système ouvert, une multitude de packages plus ou moins standardisés sont disponibles
pour réaliser des opérations variées voire farfelues);• demander à un TEXnicien13 de vous dépanner ;• demander à un TEXnicien13 de vous dépanner ;• si les deux premières solutions sont ineﬃcaces, vous n’avez plus qu’à faire ledétective et mettre le nez dans le code14 pour trouver la commande qui vous
fait du tort et la modiﬁer. Vous aurez besoin à ce stade de connaissance dela première couche du système, à savoir TEX. On touche sans doute ici à un
des défauts de LATEX : si d’autres logiciels sont incapables de faire des choses
compliquées, il est parfois diﬃcile de faire faire à LATEX des choses simples(vous en serez probablement convaincu après la lecture de la deuxième partiede ce manuel).

• si les deux premières solutions sont ineﬃcaces, vous n’avez plus qu’à faire ledétective et mettre le nez dans le code14 pour trouver la commande qui vous
fait du tort et la modiﬁer. Vous aurez besoin à ce stade de connaissance dela première couche du système, à savoir TEX. On touche sans doute ici à un
des défauts de LATEX : si d’autres logiciels sont incapables de faire des choses
compliquées, il est parfois diﬃcile de faire faire à LATEX des choses simples(vous en serez probablement convaincu après la lecture de la deuxième partiede ce manuel).

Conventions typographiques

Conventions typographiques

Certaines conventions utilisées dans ce manuel nécessitent d’être quelque peu éclaircies. Les extraits de code LATEX qui parsèment le document peuvent apparaître
comme ceci :% attention les yeux
Ceci est \emph{déjà} du code \LaTeX.

% attention les yeux
Ceci est \emph{déjà} ducode \LaTeX.

0.1

Le choix s’est porté sur la fonte « machine à écrire » de LATEX. Le code est également souvent présenté sous la forme suivante, avec un petit numéro sur la barre
centrale auquel on se réfère parfois :Ceci est déjà du code LATEX.

Le choix s’est porté sur la fonte « machine à écrire » de LATEX. Le code est également souvent présenté sous la forme suivante, avec un petit numéro sur la barre
centrale auquel on se réfère parfois :% attention les yeux
Ceci est \emph{déjà} ducode \LaTeX.

Certaines parties sont présentées sous forme de « notes » pour éclaircir un pointsans que la lecture soit indispensable au premier abord.
13
14

ou un TEXpert, mais c’est assez rare.
C’est la solution la plus plaisante pour ceux qui ont certaines velléités pour xxxxx
pisser du code...

0.1% attention les yeux
Ceci est \emph{déjà} du code \LaTeX.

Certaines conventions utilisées dans ce manuel nécessitent d’être quelque peu éclaircies. Les extraits de code LATEX qui parsèment le document peuvent apparaître
comme ceci :Ceci est déjà du code LATEX.

Certaines parties sont présentées sous forme de « notes » pour éclaircir un pointsans que la lecture soit indispensable au premier abord.
13
14

ou un TEXpert, mais c’est assez rare.
C’est la solution la plus plaisante pour ceux qui ont certaines velléités pour xxxxx
pisser du code...

xiv

xiv
Si la lecture est indispensable, on aura recours au pictogramme ci-contre pourattirer l’attention du lecteur distrait...

Si la lecture est indispensable, on aura recours au pictogramme ci-contre pourattirer l’attention du lecteur distrait...

Les logiciels et les packages de LATEX sont typographiés comme indiqués ci-avant. Lesmots en anglais sont produits like this. Pour mettre en évidence les parties génériquesd’une commande on utilisera hcette notationi. Par exemple :Les logiciels et les packages de LATEX sont typographiés comme indiqués ci-avant. Lesmots en anglais sont produits like this. Pour mettre en évidence les parties génériquesd’une commande on utilisera hcette notationi. Par exemple :Quelques rares fois sont insérées des commandes Unix, comme ceci :Quelques rares fois sont insérées des commandes Unix, comme ceci :Ceci est \emph{htexte à mettre emphasei} du code \LaTeX.

Ceci est \emph{htexte à mettre emphasei} du code \LaTeX.

grep -wi bidule /tmp/truc.dat | sort -n

grep -wi bidule /tmp/truc.dat | sort -n

On trouve même dans une des annexes, des commandes pour emacs :On trouve même dans une des annexes, des commandes pour emacs :M-x doctor

M-x doctor

Et, comble de l’horreur, des extraits de Makefile :Et, comble de l’horreur, des extraits de Makefile :bidule : bidule.o truc.o7−→ gcc -o $@ $^◮ Ch. 3 p. 37

Dans la version papier apparaissent des renvois sur des chapitres ou des paragraphes,
comme celui-ci dirigeant le lecteur vers la production de formules Nmathématiques◭
avec LATEX.

Remerciements

bidule : bidule.o truc.o7−→ gcc -o $@ $^◮ Ch. 3 p. 37

Dans la version papier apparaissent des renvois sur des chapitres ou des paragraphes,
comme celui-ci dirigeant le lecteur vers la production de formules Nmathématiques◭
avec LATEX.

Remerciements

La rédaction de cet ouvrage qui est initialement le guide local du laboratoire d’informatique graphique et d’ingénierie de la vision situé à Saint-Étienne, a débuté en
1995. Je tiens ici à remercier les membres de cette équipe de recherche qui m’ont
fait part de leurs remarques et encouragements. Les personnes participant au forum fr.comp.text.tex m’ont indirectement apporté énormément d’informationsqui ont enrichi ce document, qu’elles en soient ici remerciées.

La rédaction de cet ouvrage qui est initialement le guide local du laboratoire d’informatique graphique et d’ingénierie de la vision situé à Saint-Étienne, a débuté en
1995. Je tiens ici à remercier les membres de cette équipe de recherche qui m’ont
fait part de leurs remarques et encouragements. Les personnes participant au forum fr.comp.text.tex m’ont indirectement apporté énormément d’informationsqui ont enrichi ce document, qu’elles en soient ici remerciées.

Je voudrais également remercier Benjamin Bayart qui m’a aidé à créer certaines
des extensions utilisées dans ce manuel, en particulier la version initiale de la boîte
entourant les « mini » tables des matières en tête de chapitre ; ainsi que Guillaume
Connan pour ses remarques sur l’annexe concernant le format Pdf et pour ses
encouragements.

Je voudrais également remercier Benjamin Bayart qui m’a aidé à créer certaines
des extensions utilisées dans ce manuel, en particulier la version initiale de la boîte
entourant les « mini » tables des matières en tête de chapitre ; ainsi que Guillaume
Connan pour ses remarques sur l’annexe concernant le format Pdf et pour ses
encouragements.

Un merci particulier à Denis Bitouzé pour sa lecture attentive ses conseils
précieux et les nombreuses corrections qu’il a apportées à la première partie dumanuel. Denis m’a mis sur la voie de la rédemption, j’ai fait une croix sur a4wide,
eqnarray, et toutes ces horreurs qui faisaient de moi un pauvre pécheur...

Un merci particulier à Denis Bitouzé pour sa lecture attentive ses conseils
précieux et les nombreuses corrections qu’il a apportées à la première partie dumanuel. Denis m’a mis sur la voie de la rédemption, j’ai fait une croix sur a4wide,
eqnarray, et toutes ces horreurs qui faisaient de moi un pauvre pécheur...

Un grand merci au groupe de relecture du projet FramaBook mené par Vincent« Vim ». Ce groupe — et en particulier Papiray et Antoine Blanche — noncontent de débusquer de nombreuses coquilles qui se tapissaient sournoisement au
fond des paragraphes, a également corrigé de vilaines répétitions. Je tiens donc à lesremercier ici bien chaleureusement, d’autant que les échanges ont été fructueux : l’accentuation correcte de Genèse, le genre de nota, de longues discussion sur pré-requis
et en-tête et j’en passe...

Un grand merci au groupe de relecture du projet FramaBook mené par Vincent« Vim ». Ce groupe — et en particulier Papiray et Antoine Blanche — noncontent de débusquer de nombreuses coquilles qui se tapissaient sournoisement au
fond des paragraphes, a également corrigé de vilaines répétitions. Je tiens donc à lesremercier ici bien chaleureusement, d’autant que les échanges ont été fructueux : l’accentuation correcte de Genèse, le genre de nota, de longues discussion sur pré-requis
et en-tête et j’en passe...

xv

xv

La lecture des « grands classiques » de la littérature autour de TEX et LATEX m’ainconsciemment inﬂuencé dans la rédaction de ce document. La lecture du TEXbook
de Knuth [9] m’a bien évidemment donné l’idée de créer le panneau danger ,la lecture quasi compulsive du LATEX Companion de Goossens, Mittelbach etSamarin [6] a très certainement inﬂuencé beaucoup de passages de cet ouvrage
aussi bien pour le fond que la forme. Enﬁn la lecture de plusieurs manuels en lignea également dû orienter certains de mes choix (Le « Not So Short Introduction to
LATEX » possède par exemple un chapitre que l’on peut traduire par « ce qu’il fautsavoir »)...

La lecture des « grands classiques » de la littérature autour de TEX et LATEX m’ainconsciemment inﬂuencé dans la rédaction de ce document. La lecture du TEXbook
de Knuth [9] m’a bien évidemment donné l’idée de créer le panneau danger ,la lecture quasi compulsive du LATEX Companion de Goossens, Mittelbach etSamarin [6] a très certainement inﬂuencé beaucoup de passages de cet ouvrage
aussi bien pour le fond que la forme. Enﬁn la lecture de plusieurs manuels en lignea également dû orienter certains de mes choix (Le « Not So Short Introduction to
LATEX » possède par exemple un chapitre que l’on peut traduire par « ce qu’il fautsavoir »)...

Avant de commencer je tiens à signaler que même si ce document a mis plusieurs
années à mûrir, il est dans un style tout à fait douteux. La preuve, sur ma machine,la commande :Avant de commencer je tiens à signaler que même si ce document a mis plusieurs
années à mûrir, il est dans un style tout à fait douteux. La preuve, sur ma machine,la commande :grep -E -i ’on peut|permet’ *.tex | wc -l
donne 343 (plus d’une occurrence par page) ce qui dénote un style assez pauvre.

grep -E -i ’on peut|permet’ *.tex | wc -l
donne 343 (plus d’une occurrence par page) ce qui dénote un style assez pauvre.

Bonne lecture et bon courage15 !

Bonne lecture et bon courage15 !

15
Cette ligne est une illustration de la mise en page logique, elle est censée être au 2/3 du blancrestant sur la page, quelle que soit la taille de ce blanc bien sûr.

15
Cette ligne est une illustration de la mise en page logique, elle est censée être au 2/3 du blancrestant sur la page, quelle que soit la taille de ce blanc bien sûr.

SommaireI« Tout »sur LATEX

1SommaireI« Tout »sur LATEX

1

1 Principes de base3
1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Cycle de production . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Le document source : un document type . . . . . . . . . . . . . . . . 7
1.4 C’est parti ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Premiers outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Premières erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1 Principes de base3
1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Cycle de production . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Le document source : un document type . . . . . . . . . . . . . . . . 7
1.4 C’est parti ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Premiers outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Premières erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Ce qu’il faut savoir
2.1 Mise en évidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Environnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Notes de marge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Notes de bas de page . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Entête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Fichiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10 Où il est question de césure . . . . . . . . . . . . . . . . . . . . . . .

17
17
20
25
25
26
27
27
29
30
33

2 Ce qu’il faut savoir
2.1 Mise en évidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Environnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Notes de marge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Notes de bas de page . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Entête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Fichiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10 Où il est question de césure . . . . . . . . . . . . . . . . . . . . . . .

17
17
20
25
25
26
27
27
29
30
33

3 Mathématiques
3.1 Les deux façons d’écrire des maths . . . . . . . . . . . . . . . . . . .
3.2 Commandes usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Des symboles les uns sur les autres . . . . . . . . . . . . . . . . . . .
3.5 Deux principes importants . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Array : simple et eﬃcace . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Équations et environnements . . . . . . . . . . . . . . . . . . . . . . .
3.8 Changer le style en mode mathématique . . . . . . . . . . . . . . . .

37
37
38
41
42
43
44
46
47

3 Mathématiques
3.1 Les deux façons d’écrire des maths . . . . . . . . . . . . . . . . . . .
3.2 Commandes usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Des symboles les uns sur les autres . . . . . . . . . . . . . . . . . . .
3.5 Deux principes importants . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Array : simple et eﬃcace . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Équations et environnements . . . . . . . . . . . . . . . . . . . . . . .
3.8 Changer le style en mode mathématique . . . . . . . . . . . . . . . .

37
37
38
41
42
43
44
46
47

4 Un pas vers la sorcellerie
4.1 Compteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Longueurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Espaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Boîtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Déﬁnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Mais encore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51
51
54
58
60
67
71

4 Un pas vers la sorcellerie
4.1 Compteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Longueurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Espaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Boîtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Déﬁnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Mais encore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51
51
54
58
60
67
71

xvii

xvii

xviii

xviii

5 Graphisme
5.1 Apéritifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Du format des ﬁchiers graphiques . . . . . . . . . . . . . . . . . . . .
5.3 Le package graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Quelques extensions utiles . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Utiliser make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 À part ça . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73
73
74
74
77
80
82

5 Graphisme
5.1 Apéritifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Du format des ﬁchiers graphiques . . . . . . . . . . . . . . . . . . . .
5.3 Le package graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Quelques extensions utiles . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Utiliser make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 À part ça . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73
73
74
74
77
80
82

6 Documents scientifiques
6.1 Article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Diviser votre document . . . . . . . . . . . . . . . . . . . . . . . . . .

83
83
84
88
91

6 Documents scientifiques
6.1 Article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Diviser votre document . . . . . . . . . . . . . . . . . . . . . . . . . .

83
83
84
88
91

7 Des documents en français
7.1 Le problème des lettres accentuées . . . . . . . . . . . . . . . . . . . .
7.2 Rédiger un document en français avec LATEX . . . . . . . . . . . . . .
7.3 Le package babel et la typographie . . . . . . . . . . . . . . . . . . .
7.4 Courrier et fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93
93
94
94
99

7 Des documents en français
7.1 Le problème des lettres accentuées . . . . . . . . . . . . . . . . . . . .
7.2 Rédiger un document en français avec LATEX . . . . . . . . . . . . . .
7.3 Le package babel et la typographie . . . . . . . . . . . . . . . . . . .
7.4 Courrier et fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93
93
94
94
99

8 À vous de jouer !
103
8.1 Livres et autres manuels . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.2 Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3 EﬀTépé, Ouèbe et niouses . . . . . . . . . . . . . . . . . . . . . . . . 104

8 À vous de jouer !
103
8.1 Livres et autres manuels . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.2 Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3 EﬀTépé, Ouèbe et niouses . . . . . . . . . . . . . . . . . . . . . . . . 104

IIII« Tout »sur (« Tout »sur LATEX)

107« Tout »sur (« Tout »sur LATEX)

107

9 Outillage nécessaire111
9.1 Hercule Poirot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2 Outils de bas niveaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.3 Structures de contrôle et tests . . . . . . . . . . . . . . . . . . . . . . 117
9.4 Fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.5 Listes et nouveaux environnements . . . . . . . . . . . . . . . . . . . 126
9.6 Des environnements qui mettent en boîte . . . . . . . . . . . . . . . . 133

9 Outillage nécessaire111
9.1 Hercule Poirot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.2 Outils de bas niveaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.3 Structures de contrôle et tests . . . . . . . . . . . . . . . . . . . . . . 117
9.4 Fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.5 Listes et nouveaux environnements . . . . . . . . . . . . . . . . . . . 126
9.6 Des environnements qui mettent en boîte . . . . . . . . . . . . . . . . 133

10 Cosmétique135
10.1 Allure de l’index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
10.2 Allures des titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10.3 Géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.4 En-tête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.5 Environnements avec caractères spéciaux . . . . . . . . . . . . . . . . 151
10.6 About those so called “french guillemets” . . . . . . . . . . . . . . . . 155
10.7 Une boîte pour la minitable des matières . . . . . . . . . . . . . . . . 156

10 Cosmétique135
10.1 Allure de l’index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
10.2 Allures des titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10.3 Géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.4 En-tête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.5 Environnements avec caractères spéciaux . . . . . . . . . . . . . . . . 151
10.6 About those so called “french guillemets” . . . . . . . . . . . . . . . . 155
10.7 Une boîte pour la minitable des matières . . . . . . . . . . . . . . . . 156

11 De nouveaux jouets
163
11.1 Quelques bricoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
11.2 Des nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.3 Des citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
11.4 Des lettrines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

11 De nouveaux jouets
163
11.1 Quelques bricoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
11.2 Des nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.3 Des citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
11.4 Des lettrines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

xix

xix

11.5 Un sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.6 Un glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.7 Des onglets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.8 Exemples LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

11.5 Un sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.6 Un glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.7 Des onglets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.8 Exemples LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

III

Annexes

197

III

Annexes197

A Générer des « pdf »199
A.1 Principe général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
A.2 Ce qui change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.3 Trucs et astuces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.4 Hyperliens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
A.5 Interaction avec psfrag et pstricks . . . . . . . . . . . . . . . . . . . . 202

A Générer des « pdf »199
A.1 Principe général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
A.2 Ce qui change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.3 Trucs et astuces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.4 Hyperliens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
A.5 Interaction avec psfrag et pstricks . . . . . . . . . . . . . . . . . . . . 202

B Mémento
207
B.1 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
B.2 Les ﬁchiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
B.3 AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
B.4 Aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

B Mémento
207
B.1 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
B.2 Les ﬁchiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
B.3 AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
B.4 Aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

C Symboles
213
C.1 Symboles standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
C.2 Symboles de l’AMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
C.3 Symboles du package textcomp . . . . . . . . . . . . . . . . . . . . . . 219

C Symboles
213
C.1 Symboles standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
C.2 Symboles de l’AMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
C.3 Symboles du package textcomp . . . . . . . . . . . . . . . . . . . . . . 219

D Notes de production
223
D.1 Distribution du moment . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2 Les sources du manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

D Notes de production
223
D.1 Distribution du moment . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2 Les sources du manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Bibliographie

227

Bibliographie

227

Glossaire

229

Glossaire

229

Index

231

Index

231

I

I

Tout ce que vous avez toujours
voulu savoir sur LATEX sans jamais
oser le demander

Tout ce que vous avez toujours
voulu savoir sur LATEX sans jamais
oser le demander

11Principes de baseSommaire

Sommaire

1.1

Installation

1.1

Installation

1.2

Cycle de production

1.2

Cycle de production

1.3

Le document source : un document type

1.3

Le document source : un document type

1.4

C’est parti !

1.4

C’est parti !

1.5

Premiers outils

1.5

Premiers outils

1.6

Premières erreurs

1.6

Premières erreurs

1

1

Lorsqu’un homme a un écoulement
sortant de son corps,cet écoulement est impur.

Lorsqu’un homme a un écoulement
sortant de son corps,cet écoulement est impur.

Le Lévitique Lv 15 2.

Le Lévitique Lv 15 2.

chapitre expose les mécanismes de base de L TEX. Vous y trouverez donc une
Cecourte
introduction à l’installation de L TEX, une présentation d’une « session »chapitre expose les mécanismes de base de L TEX. Vous y trouverez donc une
Cecourte
introduction à l’installation de L TEX, une présentation d’une « session »

A

A

A

A

LATEX classique, la structure d’un document type, des remarques sur les accents,
quelques outils à connaître, et enﬁn, une présentation de l’attitude à avoir devant
les messages d’erreurs de compilation.

1.1

Principes de baseInstallation

LATEX classique, la structure d’un document type, des remarques sur les accents,
quelques outils à connaître, et enﬁn, une présentation de l’attitude à avoir devant
les messages d’erreurs de compilation.

1.1

Installation

Vous voulez utiliser LATEX ? Il vous faudra installer une distribution correspondantà votre système d’exploitation1 . Les distributions fournissent des programmes permettant d’automatiser la conﬁguration et l’installation de LATEX, TEX et tous lesutilitaires connexes.

Vous voulez utiliser LATEX ? Il vous faudra installer une distribution correspondantà votre système d’exploitation1 . Les distributions fournissent des programmes permettant d’automatiser la conﬁguration et l’installation de LATEX, TEX et tous lesutilitaires connexes.

Sous Unix : on trouve encore la distribution teTEX bien que son développement
ait été stoppé en 2006. Aujourd’hui on installe généralement la TEXLive (http://www.tug.org/texlive) sur un système Unix ;Sous Unix : on trouve encore la distribution teTEX bien que son développement
ait été stoppé en 2006. Aujourd’hui on installe généralement la TEXLive (http://www.tug.org/texlive) sur un système Unix ;Sous MacOS : la distribution de référence est MacTEX (http://www.tug.org/
mactex) ;Sous MacOS : la distribution de référence est MacTEX (http://www.tug.org/
mactex) ;Sous Windows : le plus simple est sans doute de choisir proTEXt (http://www.
tug.org/protext) qui installe la distribution MiKTEX (http://www.miktex.
org) et quelques outils de développement dont un programme de visualisationde ﬁchiers au format PostScript (gsview).

Sous Windows : le plus simple est sans doute de choisir proTEXt (http://www.
tug.org/protext) qui installe la distribution MiKTEX (http://www.miktex.
org) et quelques outils de développement dont un programme de visualisationde ﬁchiers au format PostScript (gsview).

1
Si vous ne savez pas ce qu’est un système d’exploitation, le vôtre est MacOS, si vous ne savez
pas quel est exactement le système de votre machine vous avez Fenêtre, sinon vous avez un Unix...

1
Si vous ne savez pas ce qu’est un système d’exploitation, le vôtre est MacOS, si vous ne savez
pas quel est exactement le système de votre machine vous avez Fenêtre, sinon vous avez un Unix...

33

Principes de base4

Il faut parfois ajouter à ces distributions (si elles n’en contiennent pas déjà un) unéditeur de texte puisque vous le découvrirez bien assez tôt, utiliser LATEX c’est taper
du texte et des commandes dans des ﬁchiers :Il faut parfois ajouter à ces distributions (si elles n’en contiennent pas déjà un) unéditeur de texte puisque vous le découvrirez bien assez tôt, utiliser LATEX c’est taper
du texte et des commandes dans des ﬁchiers :• emacs ou vi sous Unix sont deux éditeurs de référence qui, bien que le premiersoit nettement supérieur au second, continuent de faire l’objet d’une guerre
stérile entre utilisateurs la plupart du temps de mauvaise foi ;• emacs ou vi sous Unix sont deux éditeurs de référence qui, bien que le premiersoit nettement supérieur au second, continuent de faire l’objet d’une guerre
stérile entre utilisateurs la plupart du temps de mauvaise foi ;• kile et texmaker sont des environnements de développement intégré grâce auxquels les utilisateurs débutants pourront se sentir à l’aise pour commencer :ils ont en eﬀet la particularité de centraliser dans une même interface : édition, compilation & visualisation. Ces environnements permettent égalementde découvrir les commandes de LATEX par l’intermédiaire de menus, boîtes dedialogue et autres onglets (voir la ﬁgure 1.1a page suivante pour en avoir unaperçu) ;• kile et texmaker sont des environnements de développement intégré grâce auxquels les utilisateurs débutants pourront se sentir à l’aise pour commencer :ils ont en eﬀet la particularité de centraliser dans une même interface : édition, compilation & visualisation. Ces environnements permettent égalementde découvrir les commandes de LATEX par l’intermédiaire de menus, boîtes dedialogue et autres onglets (voir la ﬁgure 1.1a page suivante pour en avoir unaperçu) ;1

1.2

Principes de base

4

1

• TEXnicCenter est l’équivalent (aperçu à la ﬁgure 1.1b) sous la marque « à lafenêtre » ;• TEXnicCenter est l’équivalent (aperçu à la ﬁgure 1.1b) sous la marque « à lafenêtre » ;• TEXshop et iTEXmax sont les équivalents sous la marque « à la pomme »• TEXshop et iTEXmax sont les équivalents sous la marque « à la pomme »Vous apprendrez également bien assez vite que la production d’un document
avec LATEX consiste à traduire (on dit aussi compiler ) un source — donc créépar un éditeur de texte — en un format destiné à l’aﬃchage ou à l’impression2 .
Il existe donc, plus ou moins intégrés aux distributions, des outils célèbres pour lavisualisation des diﬀérents ﬁchiers résultants de la compilation :Vous apprendrez également bien assez vite que la production d’un document
avec LATEX consiste à traduire (on dit aussi compiler ) un source — donc créépar un éditeur de texte — en un format destiné à l’aﬃchage ou à l’impression2 .
Il existe donc, plus ou moins intégrés aux distributions, des outils célèbres pour lavisualisation des diﬀérents ﬁchiers résultants de la compilation :Format DVI : xdvi, kdvi sous Unix et yap sous Windows font partie des programmes
permettant de visualiser le résultat de la compilation d’un ﬁchier LATEX ;Format DVI : xdvi, kdvi sous Unix et yap sous Windows font partie des programmes
permettant de visualiser le résultat de la compilation d’un ﬁchier LATEX ;Format Postscript : la suite ghostscript disponible sous des noms qui peuvent varier selon la plateforme, permet de visualiser des ﬁchiers au format PostScript ;Format Postscript : la suite ghostscript disponible sous des noms qui peuvent varier selon la plateforme, permet de visualiser des ﬁchiers au format PostScript ;Format PDF : mis à part le célèbre acrobat reader, il existe sous Unix des utilitaires
permettant de visualiser le format Pdf : xpdf, evince, ...

Format PDF : mis à part le célèbre acrobat reader, il existe sous Unix des utilitaires
permettant de visualiser le format Pdf : xpdf, evince, ...

Il faudra veiller à ce que la distribution choisie comprenne le module « français » de
LATEX assurant la césure (hyphenation en anglais) correcte des mots. On vérifiera les« logs » (voir § 1.6 page 13) au moment de la compilation d’un document pour contrôler
le chargement des motifs pour le français :Il faudra veiller à ce que la distribution choisie comprenne le module « français » de
LATEX assurant la césure (hyphenation en anglais) correcte des mots. On vérifiera les« logs » (voir § 1.6 page 13) au moment de la compilation d’un document pour contrôler
le chargement des motifs pour le français :LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax,
dumylang, french , loaded.

LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, usenglishmax,
dumylang, french , loaded.

Cycle de productionMême si LATEX n’est pas à proprement parler un langage de programmation compilé,
on peut malgré tout faire une analogie entre le cycle de production d’un document
LATEX et le cycle édition-compilation-exécution d’un développement de logiciel avec
un langage de programmation classique.
2

Ces formats sont présentés un peu plus loin dans ce chapitre.

1.2

Cycle de productionMême si LATEX n’est pas à proprement parler un langage de programmation compilé,
on peut malgré tout faire une analogie entre le cycle de production d’un document
LATEX et le cycle édition-compilation-exécution d’un développement de logiciel avec
un langage de programmation classique.
2

Ces formats sont présentés un peu plus loin dans ce chapitre.

1.2 Cycle de production

1.2 Cycle de production

5

5

1

1

(a) Kile(a) Kile(b) TEXnicCenter(b) TEXnicCenter

Figure 1.1: Deux exemples d’environnement de développement intégré : Kile sousLinux et TEXnicCenter sous Windows. Ils permettent de centraliser dans une mêmeinterface : édition, compilation & visualisation.

Figure 1.1: Deux exemples d’environnement de développement intégré : Kile sousLinux et TEXnicCenter sous Windows. Ils permettent de centraliser dans une mêmeinterface : édition, compilation & visualisation.

Principes de base

6
.tex

Principes de base

6
.tex

.dvi
LATEX

.dvi
LATEX

xdvi

xdvi

.ps

.ps

dvips

dvips

Figure 1.2: Cycle de production sur machines Unix

11

1.2.1 Édition
Un document source LATEX est un ﬁchier texte . Ainsi la manipulation d’un ﬁchier
LATEX ne demande pas de logiciel particulier, si ce n’est un éditeur de texte classique.
Donc, pour manipuler un document LATEX :3ou :Figure 1.2: Cycle de production sur machines Unix

emacs hnom de fichieri.tex &vi hnom de fichieri.tex

devrait suﬃre pour entrer dans ce monde sauvage et inconnu qu’est la saisie d’un
document LATEX. Sous Windows, on s’équipera d’un éditeur de texte de son choix4 .
Notez qu’il est recommandé de donner l’extension .tex aux sources LATEX.

1.2.2 Compilation
On lance la compilation grâce à la commande :latex hnom de fichieri.tex

La compilation génère un jour ou l’autre des erreurs. Il en sera question à la section 1.6 page 13. En tout cas, après suppression des erreurs de compilation, on
obtient un ﬁchier portant l’extension dvi pour device independant. Ce qui signiﬁe que le ﬁchier contient des informations indépendantes du périphérique de sortie(écran, imprimantes, ...). Ce ﬁchier de type binaire contenant une « image » du document portable sur tout système TEX quel que soit le système d’exploitation. Il
existe ensuite des programmes permettant soit :1.2.1 Édition
Un document source LATEX est un ﬁchier texte3 . Ainsi la manipulation d’un ﬁchier
LATEX ne demande pas de logiciel particulier, si ce n’est un éditeur de texte classique.
Donc, pour manipuler un document LATEX :ou :vi hnom de fichieri.tex

devrait suﬃre pour entrer dans ce monde sauvage et inconnu qu’est la saisie d’un
document LATEX. Sous Windows, on s’équipera d’un éditeur de texte de son choix4 .
Notez qu’il est recommandé de donner l’extension .tex aux sources LATEX.

1.2.2 Compilation
On lance la compilation grâce à la commande :latex hnom de fichieri.tex

La compilation génère un jour ou l’autre des erreurs. Il en sera question à la section 1.6 page 13. En tout cas, après suppression des erreurs de compilation, on
obtient un ﬁchier portant l’extension dvi pour device independant. Ce qui signiﬁe que le ﬁchier contient des informations indépendantes du périphérique de sortie(écran, imprimantes, ...). Ce ﬁchier de type binaire contenant une « image » du document portable sur tout système TEX quel que soit le système d’exploitation. Il
existe ensuite des programmes permettant soit :• de visualiser le document : dvi → bitmap écran ;• de visualiser le document : dvi → bitmap écran ;• de l’imprimer : dvi → langage imprimante ;• de l’imprimer : dvi → langage imprimante ;• de le convertir : dvi → ﬁchier PostScript.

• de le convertir : dvi → ﬁchier PostScript.

La ﬁgure 1.2 illustre les divers programmes entrant en jeu dans la production dudocument ﬁnal sur une machine Unix.

La ﬁgure 1.2 illustre les divers programmes entrant en jeu dans la production dudocument ﬁnal sur une machine Unix.

Il est également possible de générer un document au format PDF. On pourra
consulter l’annexe A pour obtenir des informations à ce sujet.
3
4

emacs hnom de fichieri.tex &C’est-à-dire un fichier ne contenant que le code des caractères qui le composent.
Il existe une version d’Emacs pour Micrologiciel Fenêtre, avis aux amateurs.

Il est également possible de générer un document au format PDF. On pourra
consulter l’annexe A pour obtenir des informations à ce sujet.
3
4

C’est-à-dire un fichier ne contenant que le code des caractères qui le composent.
Il existe une version d’Emacs pour Micrologiciel Fenêtre, avis aux amateurs.

1.3 Le document source : un document type

1.3 Le document source : un document type7

1.2.3 Visualisation

1.2.3 Visualisation

La visualisation s’eﬀectue simplement — après compilation sans erreur — grâce au
programme xdvi en tapant la commande :La visualisation s’eﬀectue simplement — après compilation sans erreur — grâce au
programme xdvi en tapant la commande :xdvi hnom de fichieri.dvi &xdvi hnom de fichieri.dvi &il s’agit d’un logiciel tournant sous X Window, très intuitif, qui donne un aperçu très
lisible du document. La distribution teTEX pour Windows propose un visualiseur
nommé yap5 .

il s’agit d’un logiciel tournant sous X Window, très intuitif, qui donne un aperçu très
lisible du document. La distribution teTEX pour Windows propose un visualiseur
nommé yap5 .

On notera qu’il n’est pas nécessaire de relancer xdvi ou yap après chaque compilation. Ils mettent en effet à jour l’affichage automatiquement.

1.2.4 Impression

On notera qu’il n’est pas nécessaire de relancer xdvi ou yap après chaque compilation. Ils mettent en effet à jour l’affichage automatiquement.

1

1.2.4 Impression

Pour imprimer un document, on utilise le programme dvips comme suit :Pour imprimer un document, on utilise le programme dvips comme suit :dvips hnom de fichieri.dvi

dvips hnom de fichieri.dvi

Il est aussi possible de générer un ﬁchier PostScript en redirigeant la sortie de dvips :Il est aussi possible de générer un ﬁchier PostScript en redirigeant la sortie de dvips :dvips hnom de fichieri.dvi -o hnom de fichieri.ps

dvips hnom de fichieri.dvi -o hnom de fichieri.ps

Le ﬁchier hnom de fichieri.ps est un ﬁchier ASCII pur contenant des commandes
PostScript. Par exemple si le ﬁchier source est nommé truc.tex, on écrira :Le ﬁchier hnom de fichieri.ps est un ﬁchier ASCII pur contenant des commandes
PostScript. Par exemple si le ﬁchier source est nommé truc.tex, on écrira :latex truc.tex
dvips truc.dvi -o bidule.ps

latex truc.tex
dvips truc.dvi -o bidule.ps

pour compiler d’abord truc.tex, et pour produire ensuite bidule.ps à partir detruc.dvi. Pour préparer un ﬁchier destiné à d’autres imprimantes, il faut spéciﬁer
en ligne de commande :pour compiler d’abord truc.tex, et pour produire ensuite bidule.ps à partir detruc.dvi. Pour préparer un ﬁchier destiné à d’autres imprimantes, il faut spéciﬁer
en ligne de commande :dvips -Phconfigi hnom de fichieri.dvi

1.3

7dvips -Phconfigi hnom de fichieri.dvi

où hconfigi désigne une imprimante particulière ou une option déﬁnie par l’administrateur du système LATEX que vous utilisez.

où hconfigi désigne une imprimante particulière ou une option déﬁnie par l’administrateur du système LATEX que vous utilisez.

Le format PostScript défini par Adobe est un langage d’impression très répandu surles systèmes Unix. De nombreux utilitaires autour du Postscript sont disponibles,
voir par exemple les très bons psutils disponibles par exemple à ftp://ftp.lip6.fr/
pub/TeX/CTAN/support/psutils ou toute autre bonne crèmerie CTAN6 près de chezvous ou sous la forme d’un paquet Debian.

Le format PostScript défini par Adobe est un langage d’impression très répandu surles systèmes Unix. De nombreux utilitaires autour du Postscript sont disponibles,
voir par exemple les très bons psutils disponibles par exemple à ftp://ftp.lip6.fr/
pub/TeX/CTAN/support/psutils ou toute autre bonne crèmerie CTAN6 près de chezvous ou sous la forme d’un paquet Debian.

Le document source : un document type
Nous allons présenter dans cette section un document type. Tous les documents
LATEX ont en eﬀet une structure commune, de la forme suivante :5
6Pour « yet another previewer », soit « encore un visualiseur » (humour d’informaticien)...
voir le chapitre 8 page 103 pour la signification de ce terme.

1.3

Le document source : un document type
Nous allons présenter dans cette section un document type. Tous les documents
LATEX ont en eﬀet une structure commune, de la forme suivante :5
6Pour « yet another previewer », soit « encore un visualiseur » (humour d’informaticien)...
voir le chapitre 8 page 103 pour la signification de ce terme.

1Principes de base

8

Principes de base8

\documentclass[hcOption1 i,hcOption2 i,...)]{hclassei}\usepackage[hpOption1 i,hpOption2 i]{hpackagei}...
hpréambulei...
\begin{document}...
hle textei...
\end{document}\documentclass[hcOption1 i,hcOption2 i,...)]{hclassei}\usepackage[hpOption1 i,hpOption2 i]{hpackagei}...
hpréambulei...
\begin{document}...
hle textei...
\end{document}

Ainsi tout document LATEX peut se décomposer comme suit :Ainsi tout document LATEX peut se décomposer comme suit :• spéciﬁcation de la hclassei du document ;1• préambule :• spéciﬁcation de la hclassei du document ;1• préambule :– utilisation de hpackagesi particuliers ;– utilisation de hpackagesi particuliers ;– initialisations et déclarations diverses ;– initialisations et déclarations diverses ;• corps du document (entre \begin{document} et \end{document}).
Voici quelques détails sur chacune de ces parties.

1.3.1 Classe du document• corps du document (entre \begin{document} et \end{document}).
Voici quelques détails sur chacune de ces parties.

1.3.1 Classe du document
LAT X

La classe est une indication donnée à
E qui va déterminer la mise en pagede certaines parties du document. Suivant la classe utilisée, certaines commandes
seront disponibles ou non (\chapter disponible pour la classe book mais indisponible
pour la classe article, par exemple). D’autre part, une commande donnée aura
une signiﬁcation spéciﬁque selon la classe choisie (titres, tables des matières,...).
En première approche7 , tout document LATEX commence donc nécessairement parl’instruction \documentclass avec entre accolades une classe de document qui peutêtre :La classe est une indication donnée à LATEX qui va déterminer la mise en pagede certaines parties du document. Suivant la classe utilisée, certaines commandes
seront disponibles ou non (\chapter disponible pour la classe book mais indisponible
pour la classe article, par exemple). D’autre part, une commande donnée aura
une signiﬁcation spéciﬁque selon la classe choisie (titres, tables des matières,...).
En première approche7 , tout document LATEX commence donc nécessairement parl’instruction \documentclass avec entre accolades une classe de document qui peutêtre :• article pour un article ;• article pour un article ;• proc pour un article dans le style IEEE proceedings ;• proc pour un article dans le style IEEE proceedings ;• report pour un rapport de plusieurs dizaines de pages ;• report pour un rapport de plusieurs dizaines de pages ;• book pour un livre ou une thèse ;• book pour un livre ou une thèse ;• letter pour une lettre ;• letter pour une lettre ;• slides pour produire des transparents• slides pour produire des transparents

On peut évidemment déﬁnir sa propre classe de document. Les options de la classe
sont précisées entre crochets et peuvent être parmi les suivantes :On peut évidemment déﬁnir sa propre classe de document. Les options de la classe
sont précisées entre crochets et peuvent être parmi les suivantes :• 11pt,12pt pour changer la taille des caractères de manière globale ;• 11pt,12pt pour changer la taille des caractères de manière globale ;• twoside pour générer un document en recto verso ;7

En réalité on peut insérer d’autres incantations magiques avant le \documentclass...

• twoside pour générer un document en recto verso ;7

En réalité on peut insérer d’autres incantations magiques avant le \documentclass...

1.3 Le document source : un document type

1.3 Le document source : un document type9

• draft pour générer le document en mode brouillon ;• draft pour générer le document en mode brouillon ;

• ...

• ...

On pourra donc par exemple, entrer :On pourra donc par exemple, entrer :\documentclass{article}\documentclass{article}

pour avoir toutes les options par défaut (10pt, une colonne, mode recto,...).

pour avoir toutes les options par défaut (10pt, une colonne, mode recto,...).

\documentclass[12pt]{article}\documentclass[12pt]{article}

pour un article en 12pt (par défaut la taille est de 10pt), ou encore :pour un article en 12pt (par défaut la taille est de 10pt), ou encore :\documentclass[twoside,draft]{report}
pour un rapport en recto verso et mode brouillon.

1.3.2 Le préambule
Le préambule est la zone située entre la clause \documentclass et la clause \begin{document}.
Cette zone est la zone où l’on peut spéciﬁer les extensions que l’on veut inclure (voirle paragraphe suivant), l’initialisation de variables globales (marges,...), la déﬁnition
de styles (titres, numérotation,...), ou de macros particulières.

1.3.3 Ajout d’extension
La commande \usepackage de LATEX pourrait être comparée à une directive #include
du langage C. Elle permet de rajouter des fonctionnalités à LATEX sous forme de macros et/ou d’environnement8 . À ce stade, il faut juste noter que l’on peut inclureplusieurs packages en une seule ligne :\usepackage{hmodule1 i, hmodule2 i, hmodule3 i,...}

Si hmodule1 i, hmodule2 i et hmodule3 i ont en commun une option opt1, on peut
entrer :\usepackage[hopt1i]{hmodule1 i,hmodule2 i, hmodule3 i}

Par contre si l’option hopt1i ne concerne que l’extension hmodule2i, il sera nécessaired’entrer les deux lignes suivantes :\usepackage{hmodule1 i, hmodule3 i}\usepackage[hopt1i]{hmodule2 i}

Voici deux exemples :\documentclass[twoside,draft]{report}

1

pour un rapport en recto verso et mode brouillon.

1.3.2 Le préambule
Le préambule est la zone située entre la clause \documentclass et la clause \begin{document}.
Cette zone est la zone où l’on peut spéciﬁer les extensions que l’on veut inclure (voirle paragraphe suivant), l’initialisation de variables globales (marges,...), la déﬁnition
de styles (titres, numérotation,...), ou de macros particulières.

1.3.3 Ajout d’extension
La commande \usepackage de LATEX pourrait être comparée à une directive #include
du langage C. Elle permet de rajouter des fonctionnalités à LATEX sous forme de macros et/ou d’environnement8 . À ce stade, il faut juste noter que l’on peut inclureplusieurs packages en une seule ligne :\usepackage{hmodule1 i, hmodule2 i, hmodule3 i,...}

Si hmodule1 i, hmodule2 i et hmodule3 i ont en commun une option opt1, on peut
entrer :\usepackage[hopt1i]{hmodule1 i,hmodule2 i, hmodule3 i}

Par contre si l’option hopt1i ne concerne que l’extension hmodule2i, il sera nécessaired’entrer les deux lignes suivantes :\usepackage{hmodule1 i, hmodule3 i}\usepackage[hopt1i]{hmodule2 i}

Voici deux exemples :% package g r a p h i cx avec o p t i o n d r a f t et xdvi
\ usepackage [ xdvi , draft ]{ graphicx }% packages array et s u b f ig
\ usepackage { array , subfig }% package g r a p h i cx avec o p t i o n d r a f t et xdvi
\ usepackage [ xdvi , draft ]{ graphicx }% packages array et s u b f ig
\ usepackage { array , subfig }Toutes les options (de classe, de packages, ou de commandes) sont par définition
des arguments optionnels. On peut donc déjà retenir le fait que tout argument
LATEX donné entre crochets [...] est un argument facultatif.

Toutes les options (de classe, de packages, ou de commandes) sont par définition
des arguments optionnels. On peut donc déjà retenir le fait que tout argument
LATEX donné entre crochets [...] est un argument facultatif.

8

Ce terme est expliqué au chapitre suivant.

98

Ce terme est expliqué au chapitre suivant.

1

Principes de base

1.4

C’est parti !

1.4

1

1.1

Nous allons tenter dans cette section, de présenter, à partir d’un document ne contenant que quelques commandes de mise en page, les principes de base de LATEX.
\documentclass{article}\begin{document}
Un outil qui vous tombe des mains
tombe
toujours
dans
l’endroit le plus
inaccessible, ou sur le composant le plus
fragile.

C’est parti !
Nous allons tenter dans cette section, de présenter, à partir d’un document ne contenant que quelques commandes de mise en page, les principes de base de LATEX.

\documentclass{article}\begin{document}
Un outil qui vous tombe des mains
tombe
toujours
dans
l’endroit le plus
inaccessible, ou sur le composant le plus
fragile.

Un outil qui vous tombe des mains tombe
toujours dans l’endroit le plus inaccessible, ou
sur le composant le plus fragile.
Cette loi est l’une des lois de Murphy.

Cette loi est l’une des lois de \emph{Murphy}.
\end{document}

Principes de base

10

1

1.1

10

Un outil qui vous tombe des mains tombe
toujours dans l’endroit le plus inaccessible, ou
sur le composant le plus fragile.
Cette loi est l’une des lois de Murphy.

Cette loi est l’une des lois de \emph{Murphy}.
\end{document}

Cet exemple illustre un certain nombre de principes parmi les plus importants de
LATEX, à savoir :Cet exemple illustre un certain nombre de principes parmi les plus importants de
LATEX, à savoir :Ligne vierge ≡ saut de paragraphe : une ligne vierge indique à LATEX la ﬁnd’un paragraphe. Ainsi dans l’exemple précédent, le premier paragraphe commence à « Un outil » et ﬁnit avec « fragile. ». La commande \par est équivalente à la ligne vierge et peut donc également être utilisée pour commencer
ou ﬁnir un paragraphe.

Ligne vierge ≡ saut de paragraphe : une ligne vierge indique à LATEX la ﬁnd’un paragraphe. Ainsi dans l’exemple précédent, le premier paragraphe commence à « Un outil » et ﬁnit avec « fragile. ». La commande \par est équivalente à la ligne vierge et peut donc également être utilisée pour commencer
ou ﬁnir un paragraphe.

LATEX ignore les sauts de lignes : ce ne sont pas les sauts de lignes dans le document source qui déﬁnissent les sauts de lignes dans le document ﬁnal. LATEX
coupe, indente et justifie automatiquement chaque paragraphe, sauf contreordre de votre part.

LATEX ignore les sauts de lignes : ce ne sont pas les sauts de lignes dans le document source qui déﬁnissent les sauts de lignes dans le document ﬁnal. LATEX
coupe, indente et justifie automatiquement chaque paragraphe, sauf contreordre de votre part.

LATEX ignore les espaces multiples : taper un espace ou dix huit mille sept centquatre vingt quatre espaces est équivalent, comme le montrent les espacesinsérés avant « tombe » et avant « l’endroit ». Ceci est aussi vrai pour lessauts de paragraphes : entrer une ligne vierge ou plusieurs revient au même.

LATEX ignore les espaces multiples : taper un espace ou dix huit mille sept centquatre vingt quatre espaces est équivalent, comme le montrent les espacesinsérés avant « tombe » et avant « l’endroit ». Ceci est aussi vrai pour lessauts de paragraphes : entrer une ligne vierge ou plusieurs revient au même.

\ est le caractère d’échappement : il indique à LATEX que le « mot » qui suit est
une séquence de contrôle, c’est-à-dire une commande (ou macro) dans le sensle plus général du terme. Ici, il s’agit de mettre en évidence le mot Murphy.
Ceci est eﬀectué grâce à la commande \emph.

\ est le caractère d’échappement : il indique à LATEX que le « mot » qui suit est
une séquence de contrôle, c’est-à-dire une commande (ou macro) dans le sensle plus général du terme. Ici, il s’agit de mettre en évidence le mot Murphy.
Ceci est eﬀectué grâce à la commande \emph.

{ et } sont des délimiteurs de groupe, notions expliquées un peu plus bas.

{ et } sont des délimiteurs de groupe, notions expliquées un peu plus bas.

1.4.1 Quelques caractères sont spéciaux
Comme le suggère l’intervention du caractère \, il existe d’autres symboles ayant
une signiﬁcation spéciale pour LATEX. Il s’agit des 10 caractères suivants :\ $ & % # ^_ { } ~Voici un petit exemple, utilisant une partie de ces symboles :1.4.1 Quelques caractères sont spéciaux
Comme le suggère l’intervention du caractère \, il existe d’autres symboles ayant
une signiﬁcation spéciale pour LATEX. Il s’agit des 10 caractères suivants :\ $ & % # ^_ { } ~Voici un petit exemple, utilisant une partie de ces symboles :1.4 C’est parti !

% paragraphe sans intérêt
\textbf{To be} a subscript : $x_{i+1}$,
or a superscript : $e^{i\pi}$ ?
that’s question~1 ! % or question 2 ?

1.2

11

% paragraphe sans intérêt
\textbf{To be} a subscript : $x_{i+1}$,
or a superscript : $e^{i\pi}$ ?
that’s question~1 ! % or question 2 ?

To be a subscript : xi+1 , or a superscript :eiπ ? that’s question 1 !

Pour l’instant, il faut donc savoir que :To be a subscript : xi+1 , or a superscript :eiπ ? that’s question 1 !

Pour l’instant, il faut donc savoir que :• % indique à LATEX d’ignorer le restant de la ligne. C’est donc le symbole ducommentaire (équivalent au // du C++) ;• $ est le symbole de début et ﬁn de formule. Lorsque LATEX rencontre un $ il
commute en mode ◮mathématiqueN jusqu’au symbole $ suivant ;• ~ est l’espace insécable9 , il empêche LATEX de faire une césure à cet endroit
particulier. Il existe un nombre important de situations où il est nécessaire d’insérer un caractère insécable (tout ce qui est du style : figure~4). Cependant,
il n’existe pas de règles systématisant l’usage d’un tel caractère ;• % indique à LATEX d’ignorer le restant de la ligne. C’est donc le symbole ducommentaire (équivalent au // du C++) ;• $ est le symbole de début et ﬁn de formule. Lorsque LATEX rencontre un $ il
commute en mode ◮mathématiqueN jusqu’au symbole $ suivant ;ch. 3 p. 37 ◭• ~ est l’espace insécable9 , il empêche LATEX de faire une césure à cet endroit
particulier. Il existe un nombre important de situations où il est nécessaire d’insérer un caractère insécable (tout ce qui est du style : figure~4). Cependant,
il n’existe pas de règles systématisant l’usage d’un tel caractère ;1• _ et ^ permettent respectivement de passer en indice et en exposant. Attention, ces symboles ne sont autorisés qu’en mode mathématique ;• _ et ^ permettent respectivement de passer en indice et en exposant. Attention, ces symboles ne sont autorisés qu’en mode mathématique ;• { et } sont respectivement les caractères de début et ﬁn de groupe. Deux types
de groupement sont donnés à titre d’exemple : l’un, en mode mathématique,pour grouper la « sous-formule » à mettre en indice ou en exposant ; l’autre
pour grouper les mots à mettre en gras.

• { et } sont respectivement les caractères de début et ﬁn de groupe. Deux types
de groupement sont donnés à titre d’exemple : l’un, en mode mathématique,pour grouper la « sous-formule » à mettre en indice ou en exposant ; l’autre
pour grouper les mots à mettre en gras.

On peut produire une partie des caractères spéciaux dans le texte grâce aux
commandes suivantes :On peut produire une partie des caractères spéciaux dans le texte grâce aux
commandes suivantes :\$ \& \% \# \{ \} \_\$ \& \% \# \{ \} \_qui donnent respectivement : $ & % # { } _. La section 2.2.5 page 24 expliquecomment produire les autres caractères spéciaux (\ ~ ^).

qui donnent respectivement : $ & % # { } _. La section 2.2.5 page 24 expliquecomment produire les autres caractères spéciaux (\ ~ ^).

1.4.2 Appel des commandes

Vous avez compris que pour appeler une commande ou macro, il est nécessaired’insérer le caractère d’échappement — escape char en anglais — et de le fairesuivre par le nom de la macro que vous voulez utiliser. Mais comment fait LATEX
pour repérer la ﬁn du nom de la macro ? Prenons comme exemple la macro \TeXqui produit le logo TEX.
hackers.

has some powerful macros.

\LaTeX{} is a document preparation system

The \TeX book is for \TeX
1.3

The \TeX book is for \TeXThe TEXbook is for TEXhackers.
TEX has some powerful macros.
LATEX is a document preparation system

On peut résumer le mécanisme en deux règles. Il y a deux types de caractères qui
indiquent à LATEX la ﬁn du nom de la macro :9Vous avez compris que pour appeler une commande ou macro, il est nécessaired’insérer le caractère d’échappement — escape char en anglais — et de le fairesuivre par le nom de la macro que vous voulez utiliser. Mais comment fait LATEX
pour repérer la ﬁn du nom de la macro ? Prenons comme exemple la macro \TeXqui produit le logo TEX.

Voir aussi, le paragraphe 2.10 page 33 sur le contrôle de la césure.

\TeX\

hackers.

has some powerful macros.

\LaTeX{} is a document preparation system

1.3

1.4.2 Appel des commandes

\TeX\

11

1.2

1.4 C’est parti !

The TEXbook is for TEXhackers.
TEX has some powerful macros.
LATEX is a document preparation system

On peut résumer le mécanisme en deux règles. Il y a deux types de caractères qui
indiquent à LATEX la ﬁn du nom de la macro :9Voir aussi, le paragraphe 2.10 page 33 sur le contrôle de la césure.

ch. 3 p. 37 ◭1

Principes de base

12

1

• les espaces ; ils sont cependant ignorés dans la production du document ;• les espaces ; ils sont cependant ignorés dans la production du document ;• tout caractère autre que les caractères de la catégorie « lettre » (alphabet majuscule et minuscule).

• tout caractère autre que les caractères de la catégorie « lettre » (alphabet majuscule et minuscule).

Le caractère \␣ (où ␣ est le caractère espace) est appelé un espace de contrôle ; cetespace n’est jamais ignoré par LATEX. C’est pourquoi : la séquence et\␣\␣\␣hop␣!
produira ; « et hop ! ». En fait, il est bon de prendre l’habitude d’appeler les macros sousla forme \hfonctioni{hargumentsi} et donc d’utiliser la troisième forme de l’exemple
précédent plutôt que la deuxième.Cela évite de se poser le problème de l’espace ignoré10 .
On écrira donc « the TEXbook » avec « the \TeX{}book » et « LATEX is a ... » avec
« \LaTeX{} is a ... ».

Le caractère \␣ (où ␣ est le caractère espace) est appelé un espace de contrôle ; cetespace n’est jamais ignoré par LATEX. C’est pourquoi : la séquence et\␣\␣\␣hop␣!
produira ; « et hop ! ». En fait, il est bon de prendre l’habitude d’appeler les macros sousla forme \hfonctioni{hargumentsi} et donc d’utiliser la troisième forme de l’exemple
précédent plutôt que la deuxième.Cela évite de se poser le problème de l’espace ignoré10 .
On écrira donc « the TEXbook » avec « the \TeX{}book » et « LATEX is a ... » avec
« \LaTeX{} is a ... ».

1.4.3 Accents
Les français ont souvent une appréhension à utiliser LAT X à cause des accents. Pas

1

1.4.3 AccentsEd’aﬀolement ! vous n’aurez pas à saisir les caractères accentués comme indiqué dansle tableau 1.1. Il est quand même bon de noter qu’il est possible d’accentuer (et« cédiller ») n’importe quel type de caractère, y compris les majuscules.

Les français ont souvent une appréhension à utiliser LATEX à cause des accents. Pas
d’aﬀolement ! vous n’aurez pas à saisir les caractères accentués comme indiqué dansle tableau 1.1. Il est quand même bon de noter qu’il est possible d’accentuer (et« cédiller ») n’importe quel type de caractère, y compris les majuscules.

Table 1.1: Saisie des accents avec des caractères 7 bits

Table 1.1: Saisie des accents avec des caractères 7 bits

accent aigu
accent grave
accent circonﬂexe
cédille
tréma

\’z
\‘z
\^z
\c{z}
\"{z}

ź
z̀
ẑ
z̧
z̈

Attention ! S’il est possible de saisir des documents avec des caractères accentués
il ne faut pas perdre de vue qu’il faut alors faire appel à un encodage qui est pourl’instant local à une région du globe. On utilise en France le codage Iso8859 avec
l’extension latin1 qui permet de manipuler nos jolis accents. Avant de lire précisément le chapitre dédié aux documents rédigés en Nfrançais◭, nous vous suggérons derajouter dans votre préambule :◮ ch 7 p. 93

accent aigu
accent grave
accent circonﬂexe
cédilletréma◮ ch 7 p. 93

Voici quelques macros et ligatures à connaître car souvent utilisées dans un document. Tout d’abord, LATEX distingue trois types de tirets :• -pour « attaquer » un document en français.

1.5

Premiers outils
Voici quelques macros et ligatures à connaître car souvent utilisées dans un document. Tout d’abord, LATEX distingue trois types de tirets :pour « Saint-Étienne » ;• -• -- pour « page 12–24 » ;10Mais pourquoi il nous en parle, alors !?

ź
z̀
ẑ
z̧
z̈

\ usepackage [ latin 1]{ inputenc } % c o d a g e du f i c h i e r s o u r c e\ usepackage [ T 1]{ fontenc }% c o d a g e d e s f o n t e s TeX\ usepackage [ francais ]{ babel } % document en f r a n ç a i spour « attaquer » un document en français.

Premiers outils

\’z
\‘z
\^z
\c{z}
\"{z}

Attention ! S’il est possible de saisir des documents avec des caractères accentués
il ne faut pas perdre de vue qu’il faut alors faire appel à un encodage qui est pourl’instant local à une région du globe. On utilise en France le codage Iso8859 avec
l’extension latin1 qui permet de manipuler nos jolis accents. Avant de lire précisément le chapitre dédié aux documents rédigés en Nfrançais◭, nous vous suggérons derajouter dans votre préambule :\ usepackage [ latin 1]{ inputenc } % c o d a g e du f i c h i e r s o u r c e\ usepackage [ T 1]{ fontenc }% c o d a g e d e s f o n t e s TeX\ usepackage [ francais ]{ babel } % document en f r a n ç a i s

1.5

Principes de base

12

pour « Saint-Étienne » ;• -- pour « page 12–24 » ;10Mais pourquoi il nous en parle, alors !?

1.6 Premières erreurs

1.6 Premières erreurs

13• --- pour ouvrir une parenthèse — comme cela.

• --- pour ouvrir une parenthèse — comme cela.

Les guillemets doivent être entrés comme ceci :Les guillemets doivent être entrés comme ceci :• ‘‘ et ’’ pour les textes en “anglais” ;• ‘‘ et ’’ pour les textes en “anglais” ;• « et » si votre clavier le permet11 , pour les textes en « français ». La partie
française du package babel (cf. chapitre 7 page 93) permet la saisie de caractères
à l’aide des commandes \og et \fg, ainsi : \og français\fg{}.

• « et » si votre clavier le permet11 , pour les textes en « français ». La partie
française du package babel (cf. chapitre 7 page 93) permet la saisie de caractères
à l’aide des commandes \og et \fg, ainsi : \og français\fg{}.

Voici pour ﬁnir quelques commandes utiles :Voici pour ﬁnir quelques commandes utiles :• \today produit la date du jour (de la compilation) : 1er mars 2011 ;• \today produit la date du jour (de la compilation) : 1er mars 2011 ;• \S donne le signe paragraphe : § ;• \ldots permet de saisir les points de suspension dans un document anglais. . .
Ils doivent être saisis avec trois points : ... dans un document français (voirle chapitre 7 pour quelques notions de typographie française)...

• \S donne le signe paragraphe : § ;1• \ldots permet de saisir les points de suspension dans un document anglais. . .
Ils doivent être saisis avec trois points : ... dans un document français (voirle chapitre 7 pour quelques notions de typographie française)...

Enﬁn, souvenez-vous qu’en anglais, on ne saisit pas d’espace avant les ponctuations
doubles (: ; ! ?) — contrairement au français. Rappelez-vous aussi que dans ce doux
pays qu’est la France, on roule surtout à droite.

1.6

Premières erreurs

Enﬁn, souvenez-vous qu’en anglais, on ne saisit pas d’espace avant les ponctuations
doubles (: ; ! ?) — contrairement au français. Rappelez-vous aussi que dans ce doux
pays qu’est la France, on roule surtout à droite.

1.6

Dans ce qui suit nous vous proposons d’examiner les états d’âme de LATEX pendantqu’il compile votre document. Lorsqu’on lance la compilation en ligne de commande, on voit directement cette sortie dans le terminal. De manière à utiliser LATEX demanière la plus enrichissante nous vous incitons à trouver dans votre propre environnement
la manière d’examiner les « logs » de LATEX, qui vous indiqueront les messages d’erreurs
et autres avertissements survenant lors de la compilation.

1.6.1 Symptômes

1.6.1 Symptômes

Si vous utilisez
E en interactif vous serez amenés un jour ou l’autre à voir
apparaître à l’écran, un message barbare de ce type :
2
3
4
5
6
7
8
9
10

This is TeX, Version 3.1415 (C version 6.1)
(erreur.tex
LaTeX2e <1995/12/01>(/usr/local/lib/texmf/tex/cls/article.cls
Document Class: article 1995/11/30 v1.3p Standard LaTeX document class(/usr/local/lib/texmf/tex/clo/size10.clo)) (erreur.aux)! Undefined control sequence.
l.5 paragraphe de ce \empha{document}?

Ce message qui vous semble sûrement incompréhensible, est le résultat produit surle terminal après avoir exécuté LATEX sur le document erreur.tex que voici :
11





Alt Gr z et Alt Gr x sur un clavier sous Linux, par exemple.

Premières erreurs
Dans ce qui suit nous vous proposons d’examiner les états d’âme de LATEX pendantqu’il compile votre document. Lorsqu’on lance la compilation en ligne de commande, on voit directement cette sortie dans le terminal. De manière à utiliser LATEX demanière la plus enrichissante nous vous incitons à trouver dans votre propre environnement
la manière d’examiner les « logs » de LATEX, qui vous indiqueront les messages d’erreurs
et autres avertissements survenant lors de la compilation.

LAT X

1

13

Si vous utilisez LATEX en interactif vous serez amenés un jour ou l’autre à voir
apparaître à l’écran, un message barbare de ce type :
1
2
3
4
5
6
7
8
9
10

This is TeX, Version 3.1415 (C version 6.1)
(erreur.tex
LaTeX2e <1995/12/01>(/usr/local/lib/texmf/tex/cls/article.cls
Document Class: article 1995/11/30 v1.3p Standard LaTeX document class(/usr/local/lib/texmf/tex/clo/size10.clo)) (erreur.aux)! Undefined control sequence.
l.5 paragraphe de ce \empha{document}?

Ce message qui vous semble sûrement incompréhensible, est le résultat produit surle terminal après avoir exécuté LATEX sur le document erreur.tex que voici :
11





Alt Gr z et Alt Gr x sur un clavier sous Linux, par exemple.

1

Principes de base14
\documentclass{article}\documentclass{article}\begin{document}
Il me semble bien qu’il y ait une erreur dans le premierparagraphe de ce \empha{document} somme toute assez court.
\end{document}\begin{document}
Il me semble bien qu’il y ait une erreur dans le premierparagraphe de ce \empha{document} somme toute assez court.
\end{document}

1.6.2 Diagnostic

1

Principes de base

14

1.6.2 Diagnostic

On peut donc expliquer de manière simple le message d’erreur :On peut donc expliquer de manière simple le message d’erreur :ligne 1 vous utilisez TEX version π à 10−4 près ;ligne 1 vous utilisez TEX version π à 10−4 près ;1ligne 2 vous compilez le ﬁchier erreur.tex ;ligne 2 vous compilez le ﬁchier erreur.tex ;ligne 3 vous utilisez LATEX 2ε version de décembre 95 ;ligne 3 vous utilisez LATEX 2ε version de décembre 95 ;ligne 4–5 vous utilisez la classe de document standard article ;ligne 4–5 vous utilisez la classe de document standard article ;ligne 6 par défaut, la taille 10pt est utilisée ;ligne 6 par défaut, la taille 10pt est utilisée ;ligne 7 le message d’erreur proprement dit ;ligne 7 le message d’erreur proprement dit ;ligne 8–9 la ligne où s’est produite l’erreur ainsi que son numéro dans le document
source erreur.tex ;ligne 8–9 la ligne où s’est produite l’erreur ainsi que son numéro dans le document
source erreur.tex ;ligne 10 le prompt ? particulièrement angoissant de TEX

ligne 10 le prompt ? particulièrement angoissant de TEX

La « coupure » formée par les lignes 8 et 9, indique précisément l’endroit où LATEX
a perdu les pédales. Le message :La « coupure » formée par les lignes 8 et 9, indique précisément l’endroit où LATEX
a perdu les pédales. Le message :! Undefined control sequence.

! Undefined control sequence.

vous indique que la commande que vous avez entrée n’est pas connue par LAT X. Et
eﬀectivement, la commande \empha n’existe pas.

E1.6.3 Soins
Mais que répondre à LAT X, lorsqu’il nous aﬃche son fameux prompt « ? » ? Voici,Etrois solutions, les plus couramment utilisées pour communiquer un peu avec LATEX :vous indique que la commande que vous avez entrée n’est pas connue par LATEX. Et
eﬀectivement, la commande \empha n’existe pas.

1.6.3 Soins
Mais que répondre à LATEX, lorsqu’il nous aﬃche son fameux prompt « ? » ? Voici,
trois solutions, les plus couramment utilisées pour communiquer un peu avec LATEX :• appuyer sur <Entrée> pour ignorer l’erreur ;• appuyer sur <Entrée> pour ignorer l’erreur ;• taper x permet de quitter la compilation ;• taper x permet de quitter la compilation ;• taper r pour demander à LATEX de continuer en ignorant tous les autres messages d’erreur ;• taper r pour demander à LATEX de continuer en ignorant tous les autres messages d’erreur ;• taper i pour insérer une correction et continuer la compilation. Sachant quecette correction ne sera pas insérée dans le document source ;• taper i pour insérer une correction et continuer la compilation. Sachant quecette correction ne sera pas insérée dans le document source ;• taper h pour demander un peu plus d’information quant à l’erreur ; voici ceque vous dit TEX pour le Undefined control sequence :• taper h pour demander un peu plus d’information quant à l’erreur ; voici ceque vous dit TEX pour le Undefined control sequence :1.6 Premières erreurs

1.6 Premières erreurs

15

The control sequence at the end of the top lineof your error message was never \def’ed. If you have
misspelled it (e.g., ‘\hobx’), type ‘I’ and the correctspelling (e.g., ‘I\hbox’). Otherwise just continue,and I’ll forget about whatever was undefined.

The control sequence at the end of the top lineof your error message was never \def’ed. If you have
misspelled it (e.g., ‘\hobx’), type ‘I’ and the correctspelling (e.g., ‘I\hbox’). Otherwise just continue,and I’ll forget about whatever was undefined.

1.6.4 Une collection de message

1.6.4 Une collection de message

T X et LAT X disposent d’un nombre important de messages d’erreur qui corres-

TEX et LATEX disposent d’un nombre important de messages d’erreur qui correspondent à diverses situations. Ces messages ne sont pas toujours compréhensibles
au premier abord. Cependant on peut dire que la plupart des erreurs viennent leplus souvent :EEpondent à diverses situations. Ces messages ne sont pas toujours compréhensibles
au premier abord. Cependant on peut dire que la plupart des erreurs viennent leplus souvent :• d’une erreur de syntaxe sur les mots réservés de LATEX ;1• d’une erreur de syntaxe sur les mots réservés de LATEX ;• de paires d’accolades mal construites ;• de paires d’accolades mal construites ;• d’une commande mathématique utilisée en mode texte ;• d’une commande mathématique utilisée en mode texte ;• d’un mode mathématique non refermé ;• d’un mode mathématique non refermé ;• d’un package que vous avez oublié d’inclure ;• d’un package que vous avez oublié d’inclure ;• d’une ﬁn de journée diﬃcile ;• d’une ﬁn de journée diﬃcile ;

• ...

• ...

Y a plus qu’à !
Vous avez maintenant compris comment on pouvait créer un document imprimableà partir d’un source LATEX. Ce chapitre vous a également permis de comprendre leprincipe de l’appel des commandes. Il ne vous reste qu’à entamer le chapitre suivant
pour connaître les diﬀérentes fonctionnalités que vous propose le langage LATEX.

15

Y a plus qu’à !
Vous avez maintenant compris comment on pouvait créer un document imprimableà partir d’un source LATEX. Ce chapitre vous a également permis de comprendre leprincipe de l’appel des commandes. Il ne vous reste qu’à entamer le chapitre suivant
pour connaître les diﬀérentes fonctionnalités que vous propose le langage LATEX.

1

2

2

Ce qu’il faut savoir
Sommaire

Sommaire

2.1

Mise en évidence

2.1

Mise en évidence

2.2

Environnements

2.2

Environnements

2.3

Notes de marge

2.3

Notes de marge

2.4

Titres

2.4

Titres2.5

Notes de bas de page

2.5

Notes de bas de page

2.6

Entête et pied de page

2.6

Entête et pied de page

2.7

Flottants

2.7

Flottants

2.8

Références

2.8

Références

2.9

Fichiers auxiliaires

2.9

Fichiers auxiliaires

2

2.10 Où il est question de césure

2

2.10 Où il est question de césure
Quand on châtie le railleur, le simple s’assagit ;quand on instruit le sage, celui-ci gagne en savoir.

Quand on châtie le railleur, le simple s’assagit ;quand on instruit le sage, celui-ci gagne en savoir.

Les proverbes Pr 21 11.

Les proverbes Pr 21 11.

question dans ce chapitre, des commandes de mise en page de base
Ilà seraconnaître pour générer un document avec L TEX. Nous traiterons en vrac desquestion dans ce chapitre, des commandes de mise en page de base
Ilà seraconnaître pour générer un document avec L TEX. Nous traiterons en vrac desAA

mises en évidence, des environnements standard LATEX, des titres, des notes de bas depage, des entête et pied de page et des environnements ﬂottants. Nous terminerons lechapitre par un exposé du système de références suivi d’une présentation des ﬁchiers
auxiliaires générés par LATEX. Enﬁn, ceux qui auront tenu jusque là, auront la chancede pouvoir lire quelques considérations sur la césure.
Toutes ces commandes seront à utiliser avec leur comportement par défaut, c’està-dire que nous ne présenterons pas ici la manière de les redéﬁnir. Vous serez parcontre en mesure de produire un document classique avec les mises en page traditionnelles. Pour taper un article plus évolué, vous aurez besoin d’informations sur lamanière de produire des formules mathématiques (chapitre 3), quelques infos sur les
documents scientiﬁques (chapitre 6), et éventuellement sur l’inclusion de graphiques(chapitre 5).

2.1

Ce qu’il faut savoir

Mise en évidencemises en évidence, des environnements standard LATEX, des titres, des notes de bas depage, des entête et pied de page et des environnements ﬂottants. Nous terminerons lechapitre par un exposé du système de références suivi d’une présentation des ﬁchiers
auxiliaires générés par LATEX. Enﬁn, ceux qui auront tenu jusque là, auront la chancede pouvoir lire quelques considérations sur la césure.
Toutes ces commandes seront à utiliser avec leur comportement par défaut, c’està-dire que nous ne présenterons pas ici la manière de les redéﬁnir. Vous serez parcontre en mesure de produire un document classique avec les mises en page traditionnelles. Pour taper un article plus évolué, vous aurez besoin d’informations sur lamanière de produire des formules mathématiques (chapitre 3), quelques infos sur les
documents scientiﬁques (chapitre 6), et éventuellement sur l’inclusion de graphiques(chapitre 5).

2.1

Mise en évidence

Pour comprendre un tant soit peu le mécanisme de sélection de fontes de LATEX, ilfaut savoir qu’on distingue au moins quatre paramètres dans une fonte :Pour comprendre un tant soit peu le mécanisme de sélection de fontes de LATEX, ilfaut savoir qu’on distingue au moins quatre paramètres dans une fonte :17

17

Ce qu’il faut savoir

18

Ce qu’il faut savoir

18

Table 2.1: Déclarations de changement de fontes

2

Table 2.1: Déclarations de changement de fontes

Commande

Déclarations

OutputCommande

Déclarations\textrm{...}{\rmfamily ...}

roman

\textrm{...}{\rmfamily ...}

roman

\textsf{...}{\sffamily ...}

sans sérif\textsf{...}{\sffamily ...}

sans sérif\texttt{...}{\ttfamily ...}

machine à écrire\texttt{...}{\ttfamily ...}

machine à écrire\textup{...}{\upshape ...}

droit

\textup{...}{\upshape ...}

droit

\textit{...}{\itshape ...}

italique\textit{...}{\itshape ...}

italique\textsl{...}{\slshape ...}

penché

\textsl{...}{\slshape ...}

penché

\textsc{...}{\scshape ...}

Petites Capitales\textsc{...}{\scshape ...}

Petites Capitales\textmd{...}{\mdseries ...}

medium\textmd{...}{\mdseries ...}

medium\textbf{...}{\bfseries ...}

gras

\textbf{...}{\bfseries ...}

gras

2

Outputfamille : c’est la forme globale de la fonte. LATEX utilise par défaut 3 types defamilles : roman, sans sérif et machine à écrire. Le mot anglais utilisé par
LATEX est familyfamille : c’est la forme globale de la fonte. LATEX utilise par défaut 3 types defamilles : roman, sans sérif et machine à écrire. Le mot anglais utilisé par
LATEX est familystyle : c’est l’allure (en anglais shape) de la fonte : italique penché et Petites
Capitales.

style : c’est l’allure (en anglais shape) de la fonte : italique penché et Petites
Capitales.

graisse : c’est l’épaisseur (serie pour LATEX) des traits. Par défaut 2 épaisseurs :médium et gras ;graisse : c’est l’épaisseur (serie pour LATEX) des traits. Par défaut 2 épaisseurs :médium et gras ;taille : taille des caractères.

taille : taille des caractères.

2.1.1 Family-shape-series

une \emph{variable} de type \texttt{char} est\textsc{Toujours} codée sur \textbf{8 bits}.

2.1

On distingue deux types de macros pour changer les trois premiers paramètres (cf.
tableau 2.1) : les commandes et les déclarations. Les commandes agissent sur leurargument donné entre accolades. Les déclarations agissent comme des interrupteursen changeant la valeur d’un de ces paramètres jusqu’à nouvel ordre. En règle générale, on utilisera les commandes pour mettre en évidence un mot ou un groupe demots :
une variable de type char est Toujours codée sur 8 bits.

Notez l’utilisation dans l’exemple précédent, de la commande \emph (dont la déclaration équivalente est \em qui permet de mettre en évidence de manière élégante
un groupe de mots. Il est fortement conseillé d’utiliser les commandes plutôt queles déclarations. Cependant lorsqu’une longue portion de texte est à changer, il sera
parfois plus judicieux d’utiliser les commandes1 :1Ainsi que lors de la définition de commandes.

On distingue deux types de macros pour changer les trois premiers paramètres (cf.
tableau 2.1) : les commandes et les déclarations. Les commandes agissent sur leurargument donné entre accolades. Les déclarations agissent comme des interrupteursen changeant la valeur d’un de ces paramètres jusqu’à nouvel ordre. En règle générale, on utilisera les commandes pour mettre en évidence un mot ou un groupe demots :
une \emph{variable} de type \texttt{char} est\textsc{Toujours} codée sur \textbf{8 bits}.

2.1

2.1.1 Family-shape-series

une variable de type char est Toujours codée sur 8 bits.

Notez l’utilisation dans l’exemple précédent, de la commande \emph (dont la déclaration équivalente est \em qui permet de mettre en évidence de manière élégante
un groupe de mots. Il est fortement conseillé d’utiliser les commandes plutôt queles déclarations. Cependant lorsqu’une longue portion de texte est à changer, il sera
parfois plus judicieux d’utiliser les commandes1 :1Ainsi que lors de la définition de commandes.

2.1 Mise en évidence

2.3\sffamily Le jazz est une musique où le{\slshape silence\/} a toujours raison ;c’est pour cela qu’il n’a pas d’autre
issue que l’impossible.

2

le {\em chef} a toujours raison.\parle {\em chef\/} a toujours raison.\parle \emph{chef} a toujours raison.\par2.4

Une autre raison pour laquelle il est recommandé d’utiliser les commandes plutôt
que les déclarations, est que les commandes eﬀectuent la correction italique contrairement aux déclarations. La correction italique est un espace qu’il est nécessairede rajouter à la ﬁn d’un groupe de mots en italique, pour éviter que celui-ci ne« touche » le mot suivant. Cet espacement est fonction du caractère mis en jeu :le chef a toujours raison.
le chef a toujours raison.
le chef a toujours raison.

On voit donc clairement que la commande \emph eﬀectue la correction, alors qu’il
est nécessaire de la faire explicitement à l’aide de la macro \/, quand on utilise laforme déclaration.

2.1.3 Tailles

The music of Magma is like a mirror where
everyone can see a reflection of who he is.

L’exemple suivant illustre l’utilisation de groupes. La déclaration \slshape se situe
dans un groupe, elle est donc locale à ce groupe. D’autre part, un groupe hérite
les paramètres du groupe qui l’englobe. Ainsi, « silence » est écrit en fonte sans sérif(groupe englobant) et penché (déclaration locale).

Le jazz est une musique où le silence a toujours
raison ; c’est pour cela qu’il n’a pas d’autre issue
que l’impossible.

2.1.2 Correction italique

2.2{\em The music of \bfseries Magma \mdseries islike a mirror where everyone can see
a reflection of who he is.}The music of Magma is like a mirror where
everyone can see a reflection of who he is.

L’exemple suivant illustre l’utilisation de groupes. La déclaration \slshape se situe
dans un groupe, elle est donc locale à ce groupe. D’autre part, un groupe hérite
les paramètres du groupe qui l’englobe. Ainsi, « silence » est écrit en fonte sans sérif(groupe englobant) et penché (déclaration locale).
\sffamily Le jazz est une musique où le{\slshape silence\/} a toujours raison ;c’est pour cela qu’il n’a pas d’autre
issue que l’impossible.

19

2.3

{\em The music of \bfseries Magma \mdseries islike a mirror where everyone can see
a reflection of who he is.}

2.2

19

Le jazz est une musique où le silence a toujours
raison ; c’est pour cela qu’il n’a pas d’autre issue
que l’impossible.

2

2.1.2 Correction italique
Une autre raison pour laquelle il est recommandé d’utiliser les commandes plutôt
que les déclarations, est que les commandes eﬀectuent la correction italique contrairement aux déclarations. La correction italique est un espace qu’il est nécessairede rajouter à la ﬁn d’un groupe de mots en italique, pour éviter que celui-ci ne« touche » le mot suivant. Cet espacement est fonction du caractère mis en jeu :le {\em chef} a toujours raison.\parle {\em chef\/} a toujours raison.\parle \emph{chef} a toujours raison.\par

2.4

2.1 Mise en évidence

le chef a toujours raison.
le chef a toujours raison.
le chef a toujours raison.

On voit donc clairement que la commande \emph eﬀectue la correction, alors qu’il
est nécessaire de la faire explicitement à l’aide de la macro \/, quand on utilise laforme déclaration.

2.1.3 Tailles

On dispose des macros données au tableau 2.2 pour changer la taille de la fonte encours. Ces macros sont des déclarations et il existe pour chacune d’entre elles unenvironnement portant le même nom.

On dispose des macros données au tableau 2.2 pour changer la taille de la fonte encours. Ces macros sont des déclarations et il existe pour chacune d’entre elles unenvironnement portant le même nom.

Table 2.2: Changement de taille

Table 2.2: Changement de taille\huge

immenseénorme\LARGE

très très gros\footnotesize\Largetrès gros\scriptsize\large

gros

\Huge

\normalsize

normal\Huge\small

petit

\huge

immenseénormeplus petit\LARGE

très très gros\footnotesize

rikiki\Largetrès gros\scriptsize

minuscule\large

gros

\tiny

\normalsize\small\tiny

normalpetit
plus petit
rikikiminusculeCe qu’il faut savoir

20

2.1.4 Quelques recommandations

2.1.4 Quelques recommandations

L’usage veut que dans la mesure du possible, on utilise avec parcimonie les changements de fontes. Il est en eﬀet de mauvais goût d’eﬀectuer des mises en évidence
intempestives et inutiles ; le plus généralement elles surchargent le document au lieude le rendre plus lisible. Voici trois suggestions (toujours d’usage !) sur l’utilisation
des changements de fontes :L’usage veut que dans la mesure du possible, on utilise avec parcimonie les changements de fontes. Il est en eﬀet de mauvais goût d’eﬀectuer des mises en évidence
intempestives et inutiles ; le plus généralement elles surchargent le document au lieude le rendre plus lisible. Voici trois suggestions (toujours d’usage !) sur l’utilisation
des changements de fontes :• préférer la commande \emph (par défaut italique) que tout autre commandepour mettre en évidence ;• préférer la commande \emph (par défaut italique) que tout autre commandepour mettre en évidence ;• réserver le gras pour une remarque particulièrement importante ;• réserver le gras pour une remarque particulièrement importante ;• utiliser les petites capitales ne sont à utiliser quasiment exclusivement quepour les noms dans un document en français : Donald Knuth ;• utiliser les petites capitales ne sont à utiliser quasiment exclusivement quepour les noms dans un document en français : Donald Knuth ;• la famille machine à écrire est souvent utilisée pour produire du texte en
langage de programmation ou équivalent.

2• la famille machine à écrire est souvent utilisée pour produire du texte en
langage de programmation ou équivalent.

2

À bon entendeur...
D’autre part nous vous donnons ci-dessous deux considérations quant à l’utilisation du changement de taille et du souligné (commande \underline) :À bon entendeur...
D’autre part nous vous donnons ci-dessous deux considérations quant à l’utilisation du changement de taille et du souligné (commande \underline) :« Perhaps poets who wish to speak in a still small voice will cause futurebooks to make use of frequent font variations, but nowadays it’s only anoccasional font freak (like the author of this manual) who likes such experiments. »« Perhaps poets who wish to speak in a still small voice will cause futurebooks to make use of frequent font variations, but nowadays it’s only anoccasional font freak (like the author of this manual) who likes such experiments. »« Note that underlining for emphasis is considered bad practice in the
publishing world. Underlining is only used when the output device can’t
do highlighting in another way — for example, when using a typewriter. »« Note that underlining for emphasis is considered bad practice in the
publishing world. Underlining is only used when the output device can’t
do highlighting in another way — for example, when using a typewriter. »Donald Knuth in the TEXbook [9]Donald Knuth in the TEXbook [9]Michel Goossens et al. in the LATEX Companion [6]2.2

Ce qu’il faut savoir

20

Environnements
LATEX propose une série d’outils sous la forme d’environnements. Il s’agit d’une
structure de bloc dont la syntaxe est la suivante :\begin{hnom envi}...
\end{hnom envi}

Michel Goossens et al. in the LATEX Companion [6]2.2

Environnements
LATEX propose une série d’outils sous la forme d’environnements. Il s’agit d’une
structure de bloc dont la syntaxe est la suivante :\begin{hnom envi}...
\end{hnom envi}

où hnom envi est le nom d’un environnement. Le premier environnement rencontré
jusqu’ici est l’environnement document. Entre le \begin et le \end on insère une
portion de texte qui va subir une mise en page particulière.

où hnom envi est le nom d’un environnement. Le premier environnement rencontré
jusqu’ici est l’environnement document. Entre le \begin et le \end on insère une
portion de texte qui va subir une mise en page particulière.

Notons tout de suite que toute déclaration est locale à un environnement ; et qu’il
est bien sûr possible de définir ses propres environnements éventuellement à partir
d’autres existants.

Notons tout de suite que toute déclaration est locale à un environnement ; et qu’il
est bien sûr possible de définir ses propres environnements éventuellement à partir
d’autres existants.

Le reste de cette section sera consacré à la description des environnements normalisés de LATEX.

Le reste de cette section sera consacré à la description des environnements normalisés de LATEX.

2.2 Environnements

2.2 Environnements

21

2.2.1 Centrage et alignement

2.2.1 Centrage et alignement
Pour centrer quelques lignes, on utilise l’environnement center :... fin de phrase.
\begin{center}
quelques lignes \\parfaitement centrées \\entre les marges\end{center}
et le paragraphe continue...

quelques lignes
parfaitement centrées
entre les marges
et le paragraphe continue...

De même on peut aisément aligner un paragraphe à droite grâce à l’environnement flushright :... ﬁn de phrase.
deux lignesalignées à droite

2.6... fin de phrase.
\begin{flushright}
deux lignes\\alignées à droite\end{flushright}
et le paragraphe continue...

et le paragraphe continue...

... ﬁn de phrase.
quelques lignes
parfaitement centrées
entre les marges
et le paragraphe continue...

De même on peut aisément aligner un paragraphe à droite grâce à l’environnement flushright :2... fin de phrase.
\begin{flushright}
deux lignes\\alignées à droite\end{flushright}
et le paragraphe continue...

... ﬁn de phrase.
deux lignesalignées à droite

2.6

2.5

... ﬁn de phrase.

2.5

Pour centrer quelques lignes, on utilise l’environnement center :... fin de phrase.
\begin{center}
quelques lignes \\parfaitement centrées \\entre les marges\end{center}
et le paragraphe continue...

21

et le paragraphe continue...

Noter l’emploi dans les deux précédents exemples de la commande \\ pour passer
à la ligne. En dehors de cas particuliers (tableaux, titre et auteur d’un document,
centrage et alignements notamment), cette commande est à proscrire : pour passer
à la ligne, il faut laisser une ligne vierge ou utiliser la commande \par.

Noter l’emploi dans les deux précédents exemples de la commande \\ pour passer
à la ligne. En dehors de cas particuliers (tableaux, titre et auteur d’un document,
centrage et alignements notamment), cette commande est à proscrire : pour passer
à la ligne, il faut laisser une ligne vierge ou utiliser la commande \par.

En général, on emploie l’environnement flushleft avec des commandes \\. Maison peut l’utiliser pour produire un paragraphe comme celui-ci, non justiﬁé àdroite, en laissant à LATEX le soin d’insérer les sauts de lignes.

En général, on emploie l’environnement flushleft avec des commandes \\. Maison peut l’utiliser pour produire un paragraphe comme celui-ci, non justiﬁé àdroite, en laissant à LATEX le soin d’insérer les sauts de lignes.

La grande majorité des environnements passent à la ligne pour insérer leur contenu.
Cependant, il est important de comprendre qu’un environnement interrompt leparagraphe dans lequel il est inséré, mais ne le termine pas — vous pourrez d’ailleursremarquer que la phrase « et le paragraphe continue » n’est pas indentée. En outre, LATEX
insère gracieusement autour de chaque environnement un espace vertical.

La grande majorité des environnements passent à la ligne pour insérer leur contenu.
Cependant, il est important de comprendre qu’un environnement interrompt leparagraphe dans lequel il est inséré, mais ne le termine pas — vous pourrez d’ailleursremarquer que la phrase « et le paragraphe continue » n’est pas indentée. En outre, LATEX
insère gracieusement autour de chaque environnement un espace vertical.

On peut noter qu’aux trois environnements précédents correspondent respectivement les trois déclarations :On peut noter qu’aux trois environnements précédents correspondent respectivement les trois déclarations :• \centering• \centering• \raggedleft• \raggedleft• \raggedright.

• \raggedright.
On peut par exemple écrire :{\centering Emacs\\Makes\\
A\\Computer\\Slow\\}

2.7

Emacs stands for :Emacs stands for :
Emacs
Makes
A
ComputerSlow

Emacs stands for :{\centering Emacs\\Makes\\
A\\Computer\\Slow\\}

2.7

On peut par exemple écrire :Emacs stands for :
Emacs
Makes
A
ComputerSlow2

Ce qu’il faut savoir

22... toujours la ﬁn d’une phrase.
• dans un calcul complexe, un facteur dunumérateur passe toujours au dénominateur
2.8... toujours la fin d’une phrase.
\begin{itemize}\item dans un calcul complexe, un facteurdu numérateur passe toujours audénominateur\item une virgule est toujours mal placée\end{itemize}et le truc continue, imperturbablement...

• une virgule est toujours mal placéeet le truc continue, imperturbablement...

Vient ensuite l’environnement enumerate, sur le même principe que le précédent
mais où les items sont numérotés. Étant donné que ces environnements peuvent êtreinclus les uns dans les autres, nous vous présenterons enumerate et description
dans un même exemple :... encore la fin d’une phrase.
\begin{description}\item[\TeX] The \TeX{}book\item[\LaTeX] deux livres importants :\begin{enumerate}\item \LaTeX{} : A Document preparation
System\item The \LaTeX{} Companion\end{enumerate}\end{description}et le paragraphe continue, encore et encore...

◮ § 9.5 p. 126... encore la ﬁn d’une phrase.
TEX The TEXbook
LATEX deux livres importants :1. LATEX : A Document preparation
System
2. The LATEX Companion
et le paragraphe continue, encore et encore...

Les listes de description, qui n’ont pas d’équivalent dans les traitements de texte
habituels, sont malheureusement au mieux mal employées, au pire ignorées des débutants sous LATEX.

2.2.3 Tabulations
L’environnement tabbing permet d’utiliser les bonnes vieilles tabulations de la machine à écrire. On pose les taquets de tabulations grâce à la commande \= et on
se déplace de taquet en taquet avec la commande \>. En outre, la commande \\permet de passer à la ligne.

2

LATEX oﬀre la possibilité d’utiliser trois principaux types de listes sous forme d’environnement : itemize, enumerate et description. Il est possible de déﬁnir ses
AT X ne vous conviennent pas. Mais voici les listes
Npropres listes◭, si celles de LEstandard :Tout d’abord itemize qui est une liste d’« items » non numérotés dont le premierniveau est marqué par un tiret (–) en version française et par un point (•) par défaut :... toujours la fin d’une phrase.
\begin{itemize}\item dans un calcul complexe, un facteurdu numérateur passe toujours audénominateur\item une virgule est toujours mal placée\end{itemize}et le truc continue, imperturbablement...

... toujours la ﬁn d’une phrase.
• dans un calcul complexe, un facteur dunumérateur passe toujours au dénominateur• une virgule est toujours mal placéeet le truc continue, imperturbablement...

Vient ensuite l’environnement enumerate, sur le même principe que le précédent
mais où les items sont numérotés. Étant donné que ces environnements peuvent êtreinclus les uns dans les autres, nous vous présenterons enumerate et description
dans un même exemple :... encore la fin d’une phrase.
\begin{description}\item[\TeX] The \TeX{}book\item[\LaTeX] deux livres importants :\begin{enumerate}\item \LaTeX{} : A Document preparation
System\item The \LaTeX{} Companion\end{enumerate}\end{description}et le paragraphe continue, encore et encore...

... encore la ﬁn d’une phrase.
TEX The TEXbook
LATEX deux livres importants :2.9

LATEX oﬀre la possibilité d’utiliser trois principaux types de listes sous forme d’environnement : itemize, enumerate et description. Il est possible de déﬁnir ses
AT X ne vous conviennent pas. Mais voici les listes
Npropres listes◭, si celles de LEstandard :Tout d’abord itemize qui est une liste d’« items » non numérotés dont le premierniveau est marqué par un tiret (–) en version française et par un point (•) par défaut :2.9

2

2.2.2 Listes

2.8

2.2.2 Listes◮ § 9.5 p. 126

Ce qu’il faut savoir

22

1. LATEX : A Document preparation
System
2. The LATEX Companion
et le paragraphe continue, encore et encore...

Les listes de description, qui n’ont pas d’équivalent dans les traitements de texte
habituels, sont malheureusement au mieux mal employées, au pire ignorées des débutants sous LATEX.

2.2.3 Tabulations
L’environnement tabbing permet d’utiliser les bonnes vieilles tabulations de la machine à écrire. On pose les taquets de tabulations grâce à la commande \= et on
se déplace de taquet en taquet avec la commande \>. En outre, la commande \\permet de passer à la ligne.

2.10\begin{tabbing}à gauche \= au centre \= à droite \\\> modéré \\\> \> conservateur \\xxxxxxxxxxx \= \kill\> sans opinion\end{tabbing}

2.2 Environnements

23\begin{tabbing}à gauche \= au centre \= à droite \\\> modéré \\\> \> conservateur \\xxxxxxxxxxx \= \kill\> sans opinion\end{tabbing}à gauche au centre à droite
modéré
conservateursans opinion

Cet exemple illustre deux autres principes :

23

2.10

2.2 Environnements

à gauche au centre à droite
modéré
conservateursans opinion

Cet exemple illustre deux autres principes :• on peut positionner une tabulation avec un « modèle » et ne pas aﬃcher laligne correspondante avec la commande \kill ;• on peut positionner une tabulation avec un « modèle » et ne pas aﬃcher laligne correspondante avec la commande \kill ;• une nouvelle commande \= enlève le taquet qui suit logiquement, s’il existe.

• une nouvelle commande \= enlève le taquet qui suit logiquement, s’il existe.

2

L’environnement pour produire les tableaux en LAT X se nomme tabular. Le système

Voici un tableau :\begin{tabular}{|r|c|}\hlinedeux & trois \\cinq & six \\ \hline\end{tabular}

2.11

E
de bordures n’est pas très sophistiqué, mais, pour des tableaux à bordures simples
les résultats sont acceptables2 :Voici un tableau :

deux
cinq

trois
six

on peut donc comprendre grâce à cet exemple, les chose suivantes :• l’environnement tabular attend un paramètre qui est en quelque sorte une« chaîne de format ». À chaque colonne doit correspondre un caractère de positionnement :– r : alignement à droite ;2.2.4 Tableaux2

L’environnement pour produire les tableaux en LATEX se nomme tabular. Le systèmede bordures n’est pas très sophistiqué, mais, pour des tableaux à bordures simples
les résultats sont acceptables2 :Voici un tableau :\begin{tabular}{|r|c|}\hlinedeux & trois \\cinq & six \\ \hline\end{tabular}

2.11

2.2.4 TableauxVoici un tableau :

deux
cinq

trois
six

on peut donc comprendre grâce à cet exemple, les chose suivantes :• l’environnement tabular attend un paramètre qui est en quelque sorte une« chaîne de format ». À chaque colonne doit correspondre un caractère de positionnement :– r : alignement à droite ;– c : centrage ;– c : centrage ;– l : alignement à gauche ;– l : alignement à gauche ;• le caractère & est le séparateur des colonnes ;• le caractère & est le séparateur des colonnes ;• la commande \\ permet de passer à la ligne ;• la commande \\ permet de passer à la ligne ;• les bordures verticales s’insèrent dans la chaîne de mise en page grâce au
caractère | ;• les bordures verticales s’insèrent dans la chaîne de mise en page grâce au
caractère | ;• les bordures horizontales à l’aide de la commande \hline.

• les bordures horizontales à l’aide de la commande \hline.

On peut donc jouer sur le nombre de \hline et de | pour changer l’allure desbordures. Le package array permet quelques fantaisies avec les tableaux.

On peut donc jouer sur le nombre de \hline et de | pour changer l’allure desbordures. Le package array permet quelques fantaisies avec les tableaux.

2
L’annexe B donne quelques pistes pour trouver des packages permettant de créer des tableauxplus complexes.

2
L’annexe B donne quelques pistes pour trouver des packages permettant de créer des tableauxplus complexes.

Ce qu’il faut savoir

Ce qu’il faut savoir

24

Si la plupart des environnements commencent une nouvelle ligne, ce n’est pas lecas de l’environnement tabular. Il crée juste une boîte dans le texte courant.

Si la plupart des environnements commencent une nouvelle ligne, ce n’est pas lecas de l’environnement tabular. Il crée juste une boîte dans le texte courant.

2

2.13

class pixel{
int x,y;public:pixel(int i=0, int j=0);};

L’environnement verbatim insère son contenu mot pour mot. Il oﬀre donc la possibilité de rentrer n’importe quel caractère même spécial, et donc, par exemple d’écrire
une portion de code C++3 :\begin{verbatim}
class pixel{
int x,y;public:pixel(int i=0, int j=0);};\end{verbatim}

On peut tout écrire dans un environnement verbatim sauf la séquence de caractères : \end{verbatim} !

Il existe deux commandes permettant de produire une portion de texte comme lefait l’environnement verbatim : il s’agit de \verb et \verb*. La forme « étoilée »remplace le caractère « » par « ␣ ».
L’argument de ces commandes n’est pas donné entre accolades ({ }) mais par
tout autre caractère : 1o autre que les caractères spéciaux et 2o n’étant pas contenu
dans l’argument.
La déclaration : #include<stdlib.h> permet d’inclure les prototypes de la librairie standard du C.

2.2.6 Citations
Les environnements quote et quotation permettent d’insérer une citation dans letexte. Voici d’abord quote :Notez que le package listings est bien mieux adapté à ce genre de problème.

class pixel{
int x,y;public:pixel(int i=0, int j=0);};On peut tout écrire dans un environnement verbatim sauf la séquence de caractères : \end{verbatim} !

Il existe deux commandes permettant de produire une portion de texte comme lefait l’environnement verbatim : il s’agit de \verb et \verb*. La forme « étoilée »remplace le caractère « » par « ␣ ».
L’argument de ces commandes n’est pas donné entre accolades ({ }) mais par
tout autre caractère : 1o autre que les caractères spéciaux et 2o n’étant pas contenu
dans l’argument.
La déclaration : \verb+#include<stdlib.h>+permet d’inclure les prototypes de la
librairie standard du~C.

La commande \verb ne peut en aucun cas se trouver dans l’argument d’une commande, quelle qu’elle soit.

3cd2.2.5 Simulation de terminal

L’environnement verbatim insère son contenu mot pour mot. Il oﬀre donc la possibilité de rentrer n’importe quel caractère même spécial, et donc, par exemple d’écrire
une portion de code C++3 :La déclaration : \verb+#include<stdlib.h>+permet d’inclure les prototypes de la
librairie standard du~C.

aun : b et deux :Vous avez donc compris que l’argument b (resp. t) « pose » (resp. « accroche ») letableau sur (resp. à) la ligne. Sans cet argument le tableau est centré verticalement,comme dans le premier exemple de la section.
Les tableaux peuvent évidemment ne pas être insérés dans des « phrases » etconstituer des « paragraphes » à eux seuls, par exemple en ﬁgurant centrés au moyend’un environnement center.

2.13

2.2.5 Simulation de terminal\begin{verbatim}
class pixel{
int x,y;public:pixel(int i=0, int j=0);};\end{verbatim}

un :\begin{tabular}[b]{|c|} a\\ b\end{tabular}
et deux :\begin{tabular}[t]{|r|} c\\ d\end{tabular}cdVous avez donc compris que l’argument b (resp. t) « pose » (resp. « accroche ») letableau sur (resp. à) la ligne. Sans cet argument le tableau est centré verticalement,comme dans le premier exemple de la section.
Les tableaux peuvent évidemment ne pas être insérés dans des « phrases » etconstituer des « paragraphes » à eux seuls, par exemple en ﬁgurant centrés au moyend’un environnement center.

2.14

2

a
un : b et deux :On peut en outre préciser le positionnement vertical du tableau grâce à un argument optionnel :

2.14

un :
\begin{tabular}[b]{|c|} a\\ b\end{tabular}
et deux :\begin{tabular}[t]{|r|} c\\ d\end{tabular}

2.12

On peut en outre préciser le positionnement vertical du tableau grâce à un argument optionnel :

2.12

24

La déclaration : #include<stdlib.h> permet d’inclure les prototypes de la librairie standard du C.

La commande \verb ne peut en aucun cas se trouver dans l’argument d’une commande, quelle qu’elle soit.

2.2.6 Citations
Les environnements quote et quotation permettent d’insérer une citation dans letexte. Voici d’abord quote :3

Notez que le package listings est bien mieux adapté à ce genre de problème.

Einstein.

2.15

Il n’est pas certain que tout soit
certain.
Pascal.

Il n’est pas certain que tout soit certain.
\hfill\textbf{Pascal}.
\end{quote}et le paragraphe interrompu, continue...

et le paragraphe interrompu, continue...

La commande \hfill insère un espace qui s’étend horizontalement de ◮manière
inﬁnieN. L’environnement quotation diﬀère quelque peu de quote :L’homme est plein d’imperfections mais on ne peut que semontrer indulgent si l’on songe àl’époque où il fut créé.
Alphonse Allais.
et ce brave paragraphe qui continue...

2... encore la fin d’une phrase.
\begin{quotation}
L’homme est plein d’imperfections mais on
ne peut que se montrer indulgent si l’on
songe à l’époque où il fut créé.\par\raggedleft Alphonse \textsc{Allais}.
\end{quotation}
et ce brave paragraphe qui continue...

En fait ces deux environnements sont présentés par Leslie Lamport, l’un (quote)pour une ou plusieurs citations courtes, et l’autre (quotation) pour une citation
longue.

2.3

2.3

La commande \marginpar crée un mini-paragraphe dans la marge, la syntaxe est
la suivante :Il n’est pas certain que tout soit
certain.
Pascal.
et le paragraphe interrompu, continue...

§ 4.2.4 p. 57 ◭... encore la ﬁn d’une phrase.
L’homme est plein d’imperfections mais on ne peut que semontrer indulgent si l’on songe àl’époque où il fut créé.
Alphonse Allais.
et ce brave paragraphe qui continue...

Notes de marge\marginpar{htextei}

Pour distinguer la page droite de la page gauche en mode recto-verso, on pourra
utiliser :Pour distinguer la page droite de la page gauche en mode recto-verso, on pourra
utiliser :\marginpar[htextegauchei][htextedroitei]\marginpar[htextegauchei][htextedroitei]où htextgauchei et htextdroitei seront respectivement les textes qui apparaîtront enmarge selon la parité du numéro de la page. Ainsi :où htextgauchei et htextdroitei seront respectivement les textes qui apparaîtront enmarge selon la parité du numéro de la page. Ainsi :\marginpar[Youhou !][Coucou !]TitresEinstein.

La commande \marginpar crée un mini-paragraphe dans la marge, la syntaxe est
la suivante :\marginpar{htextei}

2.4

Tout est relatif.

En fait ces deux environnements sont présentés par Leslie Lamport, l’un (quote)pour une ou plusieurs citations courtes, et l’autre (quotation) pour une citation
longue.

Notes de marge

donne ce que vous pouvez constatez dans la marge.

... encore la ﬁn d’une phrase.

La commande \hfill insère un espace qui s’étend horizontalement de ◮manière
inﬁnieN. L’environnement quotation diﬀère quelque peu de quote :§ 4.2.4 p. 57 ◭... encore la ﬁn d’une phrase.

2.16... encore la fin d’une phrase.
\begin{quotation}
L’homme est plein d’imperfections mais on
ne peut que se montrer indulgent si l’on
songe à l’époque où il fut créé.\par\raggedleft Alphonse \textsc{Allais}.
\end{quotation}
et ce brave paragraphe qui continue...

... encore la fin d’une phrase.
\begin{quote}Tout est relatif.\hfill\textbf{Einstein}.

... encore la ﬁn d’une phrase.
Tout est relatif.

25

2.15

... encore la fin d’une phrase.
\begin{quote}Tout est relatif.\hfill\textbf{Einstein}.
Il n’est pas certain que tout soit certain.
\hfill\textbf{Pascal}.
\end{quote}et le paragraphe interrompu, continue...

2.3 Notes de marge

25

2.16

2.3 Notes de marge\marginpar[Youhou !][Coucou !]Coucoudonne ce que vous pouvez constatez dans la marge.

2.4

TitresLe tableau 2.3 montre les commandes de section disponibles dans LATEX. La commande \chapter n’est pas disponible pour la classe de document article ; et aucune
commande de titres ne peut être utilisée dans la classe letter. Pour l’instant, il fautsavoir les deux choses suivantes :Le tableau 2.3 montre les commandes de section disponibles dans LATEX. La commande \chapter n’est pas disponible pour la classe de document article ; et aucune
commande de titres ne peut être utilisée dans la classe letter. Pour l’instant, il fautsavoir les deux choses suivantes :• chaque titre résultant d’une commande de section est automatiquement numéroté et mis dans la table des matières le cas échéant ;• chaque titre résultant d’une commande de section est automatiquement numéroté et mis dans la table des matières le cas échéant ;Coucou2

Ce qu’il faut savoir

26

Ce qu’il faut savoir

26

Table 2.3: Sectioning commands\chapter{...}\section{...}\subsection{...}\paragraph{...}\subparagraph{...}\chapter{...}\section{...}\subsection{...}\paragraph{...}\subparagraph{...}\subsubsection{...}

D’autre part toutes les commandes de titres ont un style associé que l’on peutéventuellement redéfinir. Enfin, ces commandes effectuent automatiquement les
espacements verticaux avant et après le titre ; ainsi toute ligne vierge insérée avant ou
après la commande est ignorée.

D’autre part toutes les commandes de titres ont un style associé que l’on peutéventuellement redéfinir. Enfin, ces commandes effectuent automatiquement les
espacements verticaux avant et après le titre ; ainsi toute ligne vierge insérée avant ou
après la commande est ignorée.

La quantification

Le processus de quantiﬁcation...

Il existe une forme « étoilée » (par exemple : \section*) de chaque commande detitres permettant d’insérer un titre non numéroté. Mais attention, ce titre n’apparaîtra pas dans la Ntable des matières◭. Les commandes de section prennent également
un argument optionnel permettant de préciser une entrée de table matières diﬀérente
du titre de la section. Par exemple :◮ § 2.9.2 p. 32

2.18

Contre toute attente, c’est la commande\verb+footnote+\footnote{Comme son
nom l’indique...} qui insère une notede bas de page.

Contre toute attente, c’est la commandefootnotea qui insère une note de bas de page.
a

Comme son nom l’indique...

Il arrive lorsqu’on travaille en milieu particulièrement hostile que la commande\footnote ne produise pas l’eﬀet désiré. Il est alors nécessaire de procéder en deux
temps :
1. poser une marque de note, commande \footnotemark ;La quantification

Le processus de quantiﬁcation...

Il existe une forme « étoilée » (par exemple : \section*) de chaque commande detitres permettant d’insérer un titre non numéroté. Mais attention, ce titre n’apparaîtra pas dans la Ntable des matières◭. Les commandes de section prennent également
un argument optionnel permettant de préciser une entrée de table matières diﬀérente
du titre de la section. Par exemple :insère « Paulette » dans la table des matières en lieu et place du titre inséré dans ledocument.

2.5

L’insertion d’une note de bas de page s’eﬀectue de manière simple par la commande\footnote{htextei}. La numérotation est automatique, et par défaut, les notes sontnumérotées à l’intérieur d’un chapitre. Voici ce que donne LATEX :3.2\section[Paulette]{C’était bien, c’était chouetteuuuu}

insère « Paulette » dans la table des matières en lieu et place du titre inséré dans ledocument.

Notes de bas de page... tiens c’est la ﬁn d’une phrase.
2.17

3.2

... tiens c’est la fin d’une phrase.
\section{La quantification}
Le processus de quantification...

Notes de bas de page
L’insertion d’une note de bas de page s’eﬀectue de manière simple par la commande\footnote{htextei}. La numérotation est automatique, et par défaut, les notes sontnumérotées à l’intérieur d’un chapitre. Voici ce que donne LATEX :Contre toute attente, c’est la commande\verb+footnote+\footnote{Comme son
nom l’indique...} qui insère une notede bas de page.

2.18... tiens c’est la ﬁn d’une phrase.

2\section[Paulette]{C’était bien, c’était chouetteuuuu}

2.5\part{...}• la commande \tableofcontents produit une table des matières à l’endroit où
est insérée cette commande.

... tiens c’est la fin d’une phrase.
\section{La quantification}
Le processus de quantification...

◮ § 2.9.2 p. 32\subsubsection{...}• la commande \tableofcontents produit une table des matières à l’endroit où
est insérée cette commande.

2.17

2

\part{...}

Table 2.3: Sectioning commands

Contre toute attente, c’est la commandefootnotea qui insère une note de bas de page.
a

Comme son nom l’indique...

Il arrive lorsqu’on travaille en milieu particulièrement hostile que la commande\footnote ne produise pas l’eﬀet désiré. Il est alors nécessaire de procéder en deux
temps :
1. poser une marque de note, commande \footnotemark ;2.6 Entête et pied de page

2. entrer le texte de la note de base de page — commande \footnotetext —lorsque les conditions sont plus favorables.

Par exemple, il semble délicat de mettre une note de bas de page dans un tableau,on écrira donc :Par exemple, il semble délicat de mettre une note de bas de page dans un tableau,on écrira donc :a\begin{tabular}{cc}un & deux\footnotemark \\trois & quatre\end{tabular}\footnotetext{Une note.}

deuxa
quatreUne note.

Entête et pied de page

2.6

un
trois
2.19

2.19

un
trois

Les commandes standard de LATEX permettant de personnaliser les entêtes et piedde page sont assez rudimentaires mais méritent d’être mentionnées ici, puisqu’elles
peuvent suﬃre dans certains cas.

a

deuxa
quatreUne note.

Entête et pied de page
Les commandes standard de LATEX permettant de personnaliser les entêtes et piedde page sont assez rudimentaires mais méritent d’être mentionnées ici, puisqu’elles
peuvent suﬃre dans certains cas.

2Nous ne nous attarderons pas plus sur ces commandes, car il nous semble que lepackage fancyhdr — documenté dans fancyhdr.dvi — est beaucoup plus confortable à utiliser et offre des fonctionnalités bien plus intéressantes que les options standard
de LATEX. L’utilisation de ce package pour produire les entête et pied de page du manuelque vous avez sous les yeux est expliquée à la section 10.4.

Nous ne nous attarderons pas plus sur ces commandes, car il nous semble que lepackage fancyhdr — documenté dans fancyhdr.dvi — est beaucoup plus confortable à utiliser et offre des fonctionnalités bien plus intéressantes que les options standard
de LATEX. L’utilisation de ce package pour produire les entête et pied de page du manuelque vous avez sous les yeux est expliquée à la section 10.4.

Sans faire appel à un package particulier, on peut spéciﬁer le style d’entête et piedde page à l’aide de la commande \pagestyle :Sans faire appel à un package particulier, on peut spéciﬁer le style d’entête et piedde page à l’aide de la commande \pagestyle :\pagestyle{hstylei}\pagestyle{hstylei}

dans le préambule du document ; le paramètre style pouvant prendre les valeurssuivantes :

2.7

27

2. entrer le texte de la note de base de page — commande \footnotetext —lorsque les conditions sont plus favorables.

\begin{tabular}{cc}un & deux\footnotemark \\trois & quatre\end{tabular}\footnotetext{Une note.}

2.6

2.6 Entête et pied de page27

dans le préambule du document ; le paramètre style pouvant prendre les valeurssuivantes :• empty ni entête, ni pied de page ;• empty ni entête, ni pied de page ;• plain c’est le style par défaut, le pied de page contient les numéros de pages
centrés ;• plain c’est le style par défaut, le pied de page contient les numéros de pages
centrés ;• headings suivant le style de document, un certain nombre d’informations est
inséré dans l’entête et le pied de page (par exemple dans le style report en
recto-verso, est inséré en entête : soit le titre du chapitre en cours, soit le titre
de la section en cours) ;• headings suivant le style de document, un certain nombre d’informations est
inséré dans l’entête et le pied de page (par exemple dans le style report en
recto-verso, est inséré en entête : soit le titre du chapitre en cours, soit le titre
de la section en cours) ;• myheadings un style qui permet de personnaliser les informations à insérer.

• myheadings un style qui permet de personnaliser les informations à insérer.

Il existe d’autre part une commande \thispagestyle, qui permet de changer
ou de spéciﬁer le style de la page courante.

Il existe d’autre part une commande \thispagestyle, qui permet de changer
ou de spéciﬁer le style de la page courante.

Flottants
LATEX oﬀre à ses valeureux utilisateurs la possibilité d’utiliser des environnements
flottants. Ces environnements ont la particularité de rendre « ﬂottants » leur contenu.
C’est-à-dire que LATEX choisit à partir d’un algorithme qui tient compte d’un certain
nombre de paramètres, la position de l’environnement dans le document.

2.7

Flottants
LATEX oﬀre à ses valeureux utilisateurs la possibilité d’utiliser des environnements
flottants. Ces environnements ont la particularité de rendre « ﬂottants » leur contenu.
C’est-à-dire que LATEX choisit à partir d’un algorithme qui tient compte d’un certain
nombre de paramètres, la position de l’environnement dans le document.

2

Ce qu’il faut savoir

28

Contrairement à ce que leur nom laisse croire, les environnements de LATEX figure
et table ne sont pas spécialement conçus pour insérer des figures et des tables !
En fait ils sont conçus uniquement pour faire flotter leur contenu et laisser la possibilitéd’insérer une légende. Le contenu à proprement parler peut être constitué de ce que bon
vous semble, pas nécessairement du graphique.

Contrairement à ce que leur nom laisse croire, les environnements de LATEX figure
et table ne sont pas spécialement conçus pour insérer des figures et des tables !
En fait ils sont conçus uniquement pour faire flotter leur contenu et laisser la possibilitéd’insérer une légende. Le contenu à proprement parler peut être constitué de ce que bon
vous semble, pas nécessairement du graphique.

2.7.1 Figure et table

2.7.1 Figure et table

0+0=
Figure 1: La tête à toto

2.20

2

Ce paragraphe contient un environnement ﬂottant de type « ﬁgure ». Le
contenu

est donc susceptible de se déplacerdans la page.

Vous noterez que c’est la commande \caption qui produit la légende. Le texte« Figure 1: » est inséré automatiquement avec le numéro correspondant à la ﬁgure.
Le « style » de la légende est bien entendu personnalisable.

2.7.2 Placement
LAT X tente de placer le contenu ﬂottant en fonction des paramètres qu’on indiqueE
entre crochets après le \begin du ﬂottant :L’environnement figure est en général utilisé pour les graphiques, et l’environnement table, pour les tableaux. Chacun de ces environnements possède une légende.
La syntaxe d’utilisation est la suivante :2

Ce paragraphe contient un environnement
flottant de type « figure ». Le
contenu est donc susceptible de se
déplacer dans la page.
\begin{figure}\begin{center}0 + 0 \\=
\end{center}\caption{La tête à toto}\end{figure}Ce paragraphe contient un environnement ﬂottant de type « ﬁgure ». Le
contenu
0+0=
Figure 1: La tête à toto

2.20

L’environnement figure est en général utilisé pour les graphiques, et l’environnement table, pour les tableaux. Chacun de ces environnements possède une légende.
La syntaxe d’utilisation est la suivante :Ce paragraphe contient un environnement
flottant de type « figure ». Le
contenu est donc susceptible de se
déplacer dans la page.
\begin{figure}\begin{center}0 + 0 \\=
\end{center}\caption{La tête à toto}\end{figure}Ce qu’il faut savoir

28

est donc susceptible de se déplacerdans la page.

Vous noterez que c’est la commande \caption qui produit la légende. Le texte« Figure 1: » est inséré automatiquement avec le numéro correspondant à la ﬁgure.
Le « style » de la légende est bien entendu personnalisable.

2.7.2 Placement
LATEX tente de placer le contenu ﬂottant en fonction des paramètres qu’on indiqueentre crochets après le \begin du ﬂottant :• h : là où il apparaît dans le source ;• h : là où il apparaît dans le source ;• t : en haut de la page ;• t : en haut de la page ;• b : en bas de la page ;• b : en bas de la page ;• p : seul sur une page

• p : seul sur une page

Notons qu’il arrive parfois que l’on s’arrache les cheveux, pour placer les environnements ﬂottants. Pour ne pas s’énerver, il faut comprendre — et accepter — que
LATEX utilise plusieurs paramètres pour placer les figure et table. Notons parmi
ces paramètres :Notons qu’il arrive parfois que l’on s’arrache les cheveux, pour placer les environnements ﬂottants. Pour ne pas s’énerver, il faut comprendre — et accepter — que
LATEX utilise plusieurs paramètres pour placer les figure et table. Notons parmi
ces paramètres :• le nombre maximum d’environnements ﬂottants en haut et en bas de page ;• le nombre maximum d’environnements ﬂottants en haut et en bas de page ;• le pourcentage maximum de la surface de la page qu’occupe un ﬂottant enhaut et en bas de la page ;• le pourcentage maximum de la surface de la page qu’occupe un ﬂottant enhaut et en bas de la page ;• les espacements avant et après le ﬂottant.

• les espacements avant et après le ﬂottant.

2.8 Références29

Si vous avez des problèmes4 pour placer vos ﬁgures, nous vous conseillons desuivre ces quelques recommandations :Si vous avez des problèmes4 pour placer vos ﬁgures, nous vous conseillons desuivre ces quelques recommandations :• si vous tenez à écrire « comme le montre la figure : » en attendant la ﬁgure àla suite, n’utilisez pas l’environnement figure !

• si vous tenez à écrire « comme le montre la figure : » en attendant la ﬁgure àla suite, n’utilisez pas l’environnement figure !

• utilisez plutôt le système de référence et écrivez « comme le montre la ﬁgure 3 » ;• utilisez plutôt le système de référence et écrivez « comme le montre la ﬁgure 3 » ;• on a toujours tendance à faire des ﬁgures énormes : rétrécissez-les !

• on a toujours tendance à faire des ﬁgures énormes : rétrécissez-les !

• si vous avez des tableaux à rallonge, mettez-les en annexe, puisque de toutes
façons ils gêneront le lecteur ;• si vous avez des tableaux à rallonge, mettez-les en annexe, puisque de toutes
façons ils gêneront le lecteur ;• les paramètres de LATEX sont étudiés pour équilibrer le texte et les ﬁgures dansle document. Donc, si votre document est une bande dessinée, attendez vous
au pire...

• les paramètres de LATEX sont étudiés pour équilibrer le texte et les ﬁgures dansle document. Donc, si votre document est une bande dessinée, attendez vous
au pire...

• ne vous souciez du placement des ﬁgures qu’au moment d’imprimer votre
document final.

2.7.3 Liste des figures

2.8

2.8 Références292• ne vous souciez du placement des ﬁgures qu’au moment d’imprimer votre
document final.

2.7.3 Liste des figures

La commande \listoffigures (resp. \listoftables) insère une liste des ﬁgures(resp. des tableaux) de votre document. La liste est imprimée là où apparaît lacommande. Ces commandes produisent un ﬁchier portant l’extension .lof (resp.
.lot). En outre, de manière analogue aux commandes de sections qui alimentent latable des matières, la commande \caption prend un argument optionnel permettant
de déﬁnir l’entrée dans la table des ﬁgures. Par défaut cette commande utilise lalégende comme entrée :La commande \listoffigures (resp. \listoftables) insère une liste des ﬁgures(resp. des tableaux) de votre document. La liste est imprimée là où apparaît lacommande. Ces commandes produisent un ﬁchier portant l’extension .lof (resp.
.lot). En outre, de manière analogue aux commandes de sections qui alimentent latable des matières, la commande \caption prend un argument optionnel permettant
de déﬁnir l’entrée dans la table des ﬁgures. Par défaut cette commande utilise lalégende comme entrée :\caption[Hop]{Ici on peut raconter sa vie puisque ça mettra
pas le « foin » dans la liste des figures avec un titre à
rallonge vu qu’on a mis « Hop » à la place de cette légende quin’en finit pas...}\caption[Hop]{Ici on peut raconter sa vie puisque ça mettra
pas le « foin » dans la liste des figures avec un titre à
rallonge vu qu’on a mis « Hop » à la place de cette légende quin’en finit pas...}Références
Le système de référence de LATEX permet de manipuler le numéro de toute partie
d’un document faisant l’objet d’une numérotation, de manière symbolique. Donc
sans se soucier de savoir s’il s’agit par exemple, de la ﬁgure 4 ou de la ﬁgure 5. C’est
un des aspects de LATEX qui vous évitera beaucoup de travail. Et qui s’explique enquelques lignes.

2.8.1 Principe
Pour utiliser une référence, on a deux tâches à eﬀectuer : 1o poser une étiquette
symbolique dans le texte, 2o appeler cette étiquette pour faire référence, soit aunuméro de l’objet référencé, soit au numéro de la page où se trouve l’objet référencé.
C’est d’une simplicité enfantine :4

Et vous en aurez sûrement...

2.8

Références
Le système de référence de LATEX permet de manipuler le numéro de toute partie
d’un document faisant l’objet d’une numérotation, de manière symbolique. Donc
sans se soucier de savoir s’il s’agit par exemple, de la ﬁgure 4 ou de la ﬁgure 5. C’est
un des aspects de LATEX qui vous évitera beaucoup de travail. Et qui s’explique enquelques lignes.

2.8.1 Principe
Pour utiliser une référence, on a deux tâches à eﬀectuer : 1o poser une étiquette
symbolique dans le texte, 2o appeler cette étiquette pour faire référence, soit aunuméro de l’objet référencé, soit au numéro de la page où se trouve l’objet référencé.
C’est d’une simplicité enfantine :4

Et vous en aurez sûrement...

2

Ce qu’il faut savoir30
1. On pose une étiquette avec la commande \label :1. On pose une étiquette avec la commande \label :\label{hétiquettei}\label{hétiquettei}

où hétiquettei est une chaîne de caractères ne comprenant pas de caractères
spéciaux.

où hétiquettei est une chaîne de caractères ne comprenant pas de caractères
spéciaux.

2. On fait référence au numéro de l’objet référencé avec la commande \ref :2. On fait référence au numéro de l’objet référencé avec la commande \ref :\ref{hétiquettei}\ref{hétiquettei}

On fait ensuite référence à la page avec \pageref :On fait ensuite référence à la page avec \pageref :\pageref{hétiquettei}\pageref{hétiquettei}

2.8.2 Que référencer ?

2.8.2 Que référencer ?

2Les objets que l’on peut référencer sont les suivants :• les titres ;• les ﬂottants (figure, table, ...) ;• les ﬂottants (figure, table, ...) ;• les équations (cf. chapitre 3) ;• les équations (cf. chapitre 3) ;• les items de liste énumérée (enumerate par exemple) ;• les items de liste énumérée (enumerate par exemple) ;• etc.

• etc.

Voici un exemple synthétisant les trois commandes de référencement :Voici un exemple synthétisant les trois commandes de référencement :3.5 Second degré
Ce sont les équations du type :ax2 + bx + c = 0(2.12)

L’équation 2.12 de la section 3.5 page 13 patati
patala...

\section{Second degré}\label{sec-2degre}
Ce sont les équations du type :\begin{equation}ax^2 + bx + c = 0 \label{equ}\end{equation}
L’équation \ref{equ} de la section\ref{sec-2degre} page \pageref{sec-2degre}
patati patala...

3.5 Second degré
Ce sont les équations du type :ax2 + bx + c = 0
2.21\section{Second degré}\label{sec-2degre}
Ce sont les équations du type :\begin{equation}ax^2 + bx + c = 0 \label{equ}\end{equation}
L’équation \ref{equ} de la section\ref{sec-2degre} page \pageref{sec-2degre}
patati patala...

2.9

Les objets que l’on peut référencer sont les suivants :• les titres ;

2.21

2

Ce qu’il faut savoir

30(2.12)

L’équation 2.12 de la section 3.5 page 13 patati
patala...

Dans cet exemple on fait référence à une \section et une \equation (cf. chapitre 3).
En outre, on fait référence à la page où apparaît la section en question.

Dans cet exemple on fait référence à une \section et une \equation (cf. chapitre 3).
En outre, on fait référence à la page où apparaît la section en question.

Lorsque vous placez un \label dans un environnement flottant, placez le toujours
après la commande \caption. Sinon, la référence « pointera » sur la section etnon sur la figure.

Lorsque vous placez un \label dans un environnement flottant, placez le toujours
après la commande \caption. Sinon, la référence « pointera » sur la section etnon sur la figure.

Fichiers auxiliaires
Pour bien comprendre le mécanisme de référencement, il nous reste à examiner ceque LATEX écrit sur votre disque lorsqu’il compile un ﬁchier source. Pour l’instant,voici les ﬁchiers que vous pourrez rencontrer :2.9

Fichiers auxiliaires
Pour bien comprendre le mécanisme de référencement, il nous reste à examiner ceque LATEX écrit sur votre disque lorsqu’il compile un ﬁchier source. Pour l’instant,voici les ﬁchiers que vous pourrez rencontrer :2.9 Fichiers auxiliaires

2.9 Fichiers auxiliaires

31

31

dvi

l’image de votre document ;dvi

l’image de votre document ;log

c’est le bavardage de LATEX lors de la dernière compilation. En général, il
correspond peu ou prou à ce que vous avez sur votre terminal au moment dela compilation ;log

c’est le bavardage de LATEX lors de la dernière compilation. En général, il
correspond peu ou prou à ce que vous avez sur votre terminal au moment dela compilation ;aux

le ﬁchier auxiliaire, il stocke les informations concernant les références, lesnuméros de pages, les titres, ... ;aux

le ﬁchier auxiliaire, il stocke les informations concernant les références, lesnuméros de pages, les titres, ... ;toc

le ﬁchier contenant la table des matières ;toc

le ﬁchier contenant la table des matières ;lof

le ﬁchier contenant la liste des ﬁgures.

lof

le ﬁchier contenant la liste des ﬁgures.

2.9.1 Interaction avec les références

2.9.1 Interaction avec les références

LATEX gère les références de la manière suivante : lors d’une première compilation, il
stocke les références dans le ﬁchier hnom-doci.aux où hnom-doci est le nom de votre
document. À l’aide d’un exemple où l’on aurait placé une étiquette truc pour lasection 3 à la page 35 d’un document, voyons le principe du mécanisme de résolution
des références.
1. la première compilation avec LATEX stocke dans le ﬁchier auxiliaire .aux lenuméro de l’étiquette (le numéro de la section dans notre exemple) et le numéro
de la page où cette étiquette apparaît :doc.tex\label{truc}...

\ref{truc}

LATEX

2

LATEX gère les références de la manière suivante : lors d’une première compilation, il
stocke les références dans le ﬁchier hnom-doci.aux où hnom-doci est le nom de votre
document. À l’aide d’un exemple où l’on aurait placé une étiquette truc pour lasection 3 à la page 35 d’un document, voyons le principe du mécanisme de résolution
des références.
1. la première compilation avec LATEX stocke dans le ﬁchier auxiliaire .aux lenuméro de l’étiquette (le numéro de la section dans notre exemple) et le numéro
de la page où cette étiquette apparaît :doc.aux

doc.texref{truc)=
3/35\label{truc}...

\ref{truc}doc.aux
LATEX

ref{truc)=
3/35

Undefined reference ’truc’

Undefined reference ’truc’

LATEX envoie donc lors de cette compilation un avertissement précisant quel’étiquette truc est indéﬁnie ;LATEX envoie donc lors de cette compilation un avertissement précisant quel’étiquette truc est indéﬁnie ;2. on eﬀectue donc une deuxième compilation qui va cette fois exploiter le contenu
du ﬁchier auxiliaire :2. on eﬀectue donc une deuxième compilation qui va cette fois exploiter le contenu
du ﬁchier auxiliaire :doc.tex\label{truc}...

\ref{truc}

LATEX

doc.aux

doc.texref{truc)=
3/35\label{truc}...

\ref{truc}doc.aux
LATEX

ref{truc)=
3/35

Les références peuvent être incorrectement déﬁnies dans les situations suivantes :Les références peuvent être incorrectement déﬁnies dans les situations suivantes :1. vous avez inséré une nouvelle étiquette, et c’est la première compilation quevous eﬀectuez (les références sont indéfinies) ; et vous aurez pour cette nouvelleétiquette un message :1. vous avez inséré une nouvelle étiquette, et c’est la première compilation quevous eﬀectuez (les références sont indéfinies) ; et vous aurez pour cette nouvelleétiquette un message :Reference ‘vlunch’ on page 2 undefined on input line 17.

Reference ‘vlunch’ on page 2 undefined on input line 17.

2

Ce qu’il faut savoir

32

Ce qu’il faut savoir

32

2. les changements que vous avez apportés à votre document ont sans doutechangé la numérotation des pages ou le placement des objets (ﬁgures, équations,...), les références sont alors mal définies, et vous serez averti par un
message en ﬁn de compilation :2. les changements que vous avez apportés à votre document ont sans doutechangé la numérotation des pages ou le placement des objets (ﬁgures, équations,...), les références sont alors mal définies, et vous serez averti par un
message en ﬁn de compilation :Label(s) may have changed.
Rerun to get cross-references right.

Label(s) may have changed.
Rerun to get cross-references right.

3. vous faites référence à une étiquette qui n’existe pas. Dans ce cas, 18 compilations ne changeront rien à votre problème.

3. vous faites référence à une étiquette qui n’existe pas. Dans ce cas, 18 compilations ne changeront rien à votre problème.

2.9.2 Interaction avec la table des matières

2

2.9.2 Interaction avec la table des matières

On retrouve un peu le même principe avec la table des matières. Lorsque vous insérez
la commande \tableofcontents dans votre document, la table des matières va êtrecréée en deux étapes, comme suit :1. un premier parcours pour récupérer les informations liées aux titres de tout ledocument et stockage dans le ﬁchier hnom-du-documenti.toc :2

On retrouve un peu le même principe avec la table des matières. Lorsque vous insérez
la commande \tableofcontents dans votre document, la table des matières va êtrecréée en deux étapes, comme suit :1. un premier parcours pour récupérer les informations liées aux titres de tout ledocument et stockage dans le ﬁchier hnom-du-documenti.toc :doc.toc
doc.texdoc.toc
doc.aux

doc.tex

LATEX

LATEX

2. un deuxième passage pour inclure hnom-du-documenti.toc— donc la table
des matières — dans le document ﬁnal :doc.texdoc.toc

2. un deuxième passage pour inclure hnom-du-documenti.toc— donc la table
des matières — dans le document ﬁnal :doc.aux

doc.tex

LATEX

5

Et encore il n’a pas encore été question de bibliographie, ni d’index et de glossaires...

doc.aux

Vous serez alors confrontés au phénomène suivant : lorsqu’au cours de la rédaction d’un document contenant déjà l’ordre \tableofcontents, vous insérez une
commande de section, elle n’apparaîtra dans la table des matières qu’après deux
compilations.

2.9.3 Petits conseils
Prenez l’habitude de créer un répertoire pour chaque document que vous rédigez.
LATEX crée en eﬀet plusieurs ﬁchiers autour de votre .tex5 . D’autre part, ne vous
souciez pas trop, lors de la rédaction de votre document, de savoir si les références
ou la table des matières sont à jour : elles le seront bien un jour ou l’autre ! En fait,
il faut s’assurer que les références sont correctes avant d’imprimer.
Enﬁn, de même qu’on eﬀectue de temps en temps un make clean lorsqu’onn’est plus sûr de ses ﬁchiers objets, il est bon quand il vous semble que tout va mal,d’eﬀacer les Nﬁchiers auxiliaires◭ et de reprendre la compilation.

doc.toc

LATEX

Vous serez alors confrontés au phénomène suivant : lorsqu’au cours de la rédaction d’un document contenant déjà l’ordre \tableofcontents, vous insérez une
commande de section, elle n’apparaîtra dans la table des matières qu’après deux
compilations.

◮ § B.2 p. 208

doc.aux

2.9.3 Petits conseils◮ § B.2 p. 208

Prenez l’habitude de créer un répertoire pour chaque document que vous rédigez.
LATEX crée en eﬀet plusieurs ﬁchiers autour de votre .tex5 . D’autre part, ne vous
souciez pas trop, lors de la rédaction de votre document, de savoir si les références
ou la table des matières sont à jour : elles le seront bien un jour ou l’autre ! En fait,
il faut s’assurer que les références sont correctes avant d’imprimer.
Enﬁn, de même qu’on eﬀectue de temps en temps un make clean lorsqu’onn’est plus sûr de ses ﬁchiers objets, il est bon quand il vous semble que tout va mal,d’eﬀacer les Nﬁchiers auxiliaires◭ et de reprendre la compilation.
5

Et encore il n’a pas encore été question de bibliographie, ni d’index et de glossaires...

2.10 Où il est question de césure

2.10

2.10 Où il est question de césure

33

Où il est question de césure

2.10

33

Où il est question de césureLATEX s’appuie sur TEX pour eﬀectuer la césure des mots en fonction d’une langue
déterminée. Cet algorithme décrit à l’annexe H du TEXbook constitue un des aspects
les plus réussis de TEX. Une manière de reconnaître un document généré par LATEX
est d’examiner la manière dont sont coupés les paragraphes ; beaucoup d’autres
logiciels se contentent d’insérer des blancs entre les mots. Il existe cependant dessituations où LATEX ne peut eﬀectuer une césure correcte. Dans ce cas, LATEX vous
avertira par l’un des deux messages terriﬁants :LATEX s’appuie sur TEX pour eﬀectuer la césure des mots en fonction d’une langue
déterminée. Cet algorithme décrit à l’annexe H du TEXbook constitue un des aspects
les plus réussis de TEX. Une manière de reconnaître un document généré par LATEX
est d’examiner la manière dont sont coupés les paragraphes ; beaucoup d’autres
logiciels se contentent d’insérer des blancs entre les mots. Il existe cependant dessituations où LATEX ne peut eﬀectuer une césure correcte. Dans ce cas, LATEX vous
avertira par l’un des deux messages terriﬁants :Underfull \hbox (badness 1810) detected at line 33

Underfull \hbox (badness 1810) detected at line 33

ou bien :ou bien :Overfull \hbox (14.24376pt too wide) detected at line 41

Overfull \hbox (14.24376pt too wide) detected at line 41

À un très bas niveau, TEX produit votre document en assemblant des boîtes.
Chaque caractère est contenu dans une boîte qui lui est propre ; les mots sont forméspar assemblage de ces boîtes. Et ainsi de suite, pour les lignes qui forment desparagraphes puis des pages.
Pour résumer et présenter les choses de manière simple, disons que TEX est
en mode horizontal pour assembler les « mots » et manipule alors des \hbox ; ilest en mode vertical et manipule des \vbox lorsqu’il crée les pages. Aussi, lors del’assemblage de ces boîtes, si TEX juge que le résultat ne sera pas esthétique, il vous
avertira par les deux types de messages présentés plus haut. Ces messages ont lasigniﬁcation suivante :À un très bas niveau, TEX produit votre document en assemblant des boîtes.
Chaque caractère est contenu dans une boîte qui lui est propre ; les mots sont forméspar assemblage de ces boîtes. Et ainsi de suite, pour les lignes qui forment desparagraphes puis des pages.
Pour résumer et présenter les choses de manière simple, disons que TEX est
en mode horizontal pour assembler les « mots » et manipule alors des \hbox ; ilest en mode vertical et manipule des \vbox lorsqu’il crée les pages. Aussi, lors del’assemblage de ces boîtes, si TEX juge que le résultat ne sera pas esthétique, il vous
avertira par les deux types de messages présentés plus haut. Ces messages ont lasigniﬁcation suivante :2• Underfull \hbox les boîtes sont assemblées de manière un peu lâche ; TEX
vous donne la « laideur » de la ligne (badness) sachant qu’une ligne parfaite a
une laideur de 0, et que la pire des lignes, une laideur de 10000 ;• Underfull \hbox les boîtes sont assemblées de manière un peu lâche ; TEX
vous donne la « laideur » de la ligne (badness) sachant qu’une ligne parfaite a
une laideur de 0, et que la pire des lignes, une laideur de 10000 ;• Overfull \hbox les boîtes sont un peu trop serrées ; TEX vous indique en pt
le dépassement dans la marge.

• Overfull \hbox les boîtes sont un peu trop serrées ; TEX vous indique en pt
le dépassement dans la marge.

Si une page est trop lâche, LATEX parlera de \vbox dans ses messages. Le tableau 2.4
illustre le phénomène sur une phrase.

Si une page est trop lâche, LATEX parlera de \vbox dans ses messages. Le tableau 2.4
illustre le phénomène sur une phrase.

Ô rage ! ô désespoir ! ô vieillesse ennemie !

underfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

underfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

underfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

underfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

underfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

underfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

okÔ rage ! ô désespoir ! ô vieillesse ennemie !

okÔ rage ! ô désespoir ! ô vieillesse ennemie !

overfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

overfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

overfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

overfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

overfullÔ rage ! ô désespoir ! ô vieillesse ennemie !

overfullTable 2.4: Under et overfull hbox

Il est possible en utilisant l’option de document draft de faire apparaître dans lamarge une barre noire comme en marge de ce paragraphe, indiquant les Overfull \hbox.
Cette option permet de localiser rapidement la ligne en cause.

Table 2.4: Under et overfull hbox

Il est possible en utilisant l’option de document draft de faire apparaître dans lamarge une barre noire comme en marge de ce paragraphe, indiquant les Overfull \hbox.
Cette option permet de localiser rapidement la ligne en cause.

2

Ce qu’il faut savoir

34

2.10.1 Contrôler la césure

2.10.1 Contrôler la césureLATEX peut avoir des diﬃcultés à couper une phrase pour les raisons suivantes :LATEX peut avoir des diﬃcultés à couper une phrase pour les raisons suivantes :• il ne reconnaît pas le mot à couper : ce cas est exceptionnel ;• il ne reconnaît pas le mot à couper : ce cas est exceptionnel ;• l’endroit où la césure devrait avoir lieu est un objet qui ne peut être coupé,par exemple un objet du type \verb|...|, une équation,...

• l’endroit où la césure devrait avoir lieu est un objet qui ne peut être coupé,par exemple un objet du type \verb|...|, une équation,...

Nous vous donnons ci-dessous quelques méthodes pour contrôler la césure.

Nous vous donnons ci-dessous quelques méthodes pour contrôler la césure.

Lorsqu’aucune de ces méthodes ne vous donne satisfaction — ceci peut se produiresi votre phrase contient trop d’objets que TEX ne peut couper — il n’y a pas d’autre
solution que de tourner sa phrase différemment pour contourner le problème.

2

Lorsqu’aucune de ces méthodes ne vous donne satisfaction — ceci peut se produiresi votre phrase contient trop d’objets que TEX ne peut couper — il n’y a pas d’autre
solution que de tourner sa phrase différemment pour contourner le problème.

Guider la césure

Guider la césure

On peut aider LAT X à couper un mot en lui indiquant les endroits où la césure peut

On peut aider LATEX à couper un mot en lui indiquant les endroits où la césure peutêtre eﬀectuée, en insérant aux endroits nécessaires, la commande \-. Par exemple,
si LATEX a du mal à couper le mot « nonmaiçavapamieu », vous pouvez entrer :Eêtre eﬀectuée, en insérant aux endroits nécessaires, la commande \-. Par exemple,
si LATEX a du mal à couper le mot « nonmaiçavapamieu », vous pouvez entrer :2non\-mai\-ça\-va\-pa\-mieu

non\-mai\-ça\-va\-pa\-mieu

Si vous utilisez ce mot fréquemment, vous pouvez, pour vous épargner d’indiquer lescésures comme ci-dessus, entrer dans le préambule la commande \hyphenation :Si vous utilisez ce mot fréquemment, vous pouvez, pour vous épargner d’indiquer lescésures comme ci-dessus, entrer dans le préambule la commande \hyphenation :\hyphenation{non-mai-ça-va-pa-mieu}\hyphenation{non-mai-ça-va-pa-mieu}

qui indique à LAT X comment couper ce mot étrange.

qui indique à LATEX comment couper ce mot étrange.

Forcer la césure

Forcer la césure

Vous
pouvezforcerlacésure,eninsérant
la commande \linebreak[hnombrei], mais cela peut avoir des résultats catastrophiques. Si vous voyez ce que je veux dire. Le paramètre hnombrei permet demoduler la commande \linebreak. Vous avez la possibilité de formuler un souhaittimide : \linebreak[0] ou un ordre à ne pas discuter : \linebreak[4].
La commande \pagebreak[hnombrei] est la commande correspondant aux coupures de pages. D’autre part, deux commandes sont disponibles pour eﬀectuer unsaut de page :Vouspouvezforcerlacésure,eninsérant
la commande \linebreak[hnombrei], mais cela peut avoir des résultats catastrophiques. Si vous voyez ce que je veux dire. Le paramètre hnombrei permet demoduler la commande \linebreak. Vous avez la possibilité de formuler un souhaittimide : \linebreak[0] ou un ordre à ne pas discuter : \linebreak[4].
La commande \pagebreak[hnombrei] est la commande correspondant aux coupures de pages. D’autre part, deux commandes sont disponibles pour eﬀectuer unsaut de page :E◮ § 4.2 p. 54

Ce qu’il faut savoir

34• \clearpage ﬁnit la page actuelle ;• \clearpage ﬁnit la page actuelle ;• \cleardoublepage ﬁnit la page actuelle, et assure de commencer sur une page
impaire, en mode recto verso.

• \cleardoublepage ﬁnit la page actuelle, et assure de commencer sur une page
impaire, en mode recto verso.

Ces deux commandes forcent LATEX à insérer toutes les ﬁgures ﬂottantes en coursde placement.

Ces deux commandes forcent LATEX à insérer toutes les ﬁgures ﬂottantes en coursde placement.

Une autre intervention manuelle pratique dans certaines situations, consiste àagrandir la hauteur de la page actuelle en faisant appel à la commande :Une autre intervention manuelle pratique dans certaines situations, consiste àagrandir la hauteur de la page actuelle en faisant appel à la commande :\enlargethispage\enlargethispage

suivie d’une Ndimension◭ puis d’insérer un saut de ligne :\enlargethispage{10cm}[...le texte un peu trop long...]\clearpage← au niveau de la page trop courte← fin explicite de la page allongée de 10cm

◮ § 4.2 p. 54

suivie d’une Ndimension◭ puis d’insérer un saut de ligne :\enlargethispage{10cm}[...le texte un peu trop long...]\clearpage← au niveau de la page trop courte← fin explicite de la page allongée de 10cm

2.10 Où il est question de césure

2.10 Où il est question de césure

35Empêcher la césure

Empêcher la césureIl existe trois moyens de forcer LATEX à ne pas couper le texte :Il existe trois moyens de forcer LATEX à ne pas couper le texte :1. insérer l’espace insécable ~ ;1. insérer l’espace insécable ~ ;2. mettre un mot dans une boîte6 avec la commande \mbox{hmoti} ;2. mettre un mot dans une boîte6 avec la commande \mbox{hmoti} ;3. utiliser l’ordre \nolinebreak :3. utiliser l’ordre \nolinebreak :\nolinebreak[hnombrei]\nolinebreak[hnombrei]

pour empêcher les sauts de lignes, et la commande \nopagebreak :pour empêcher les sauts de lignes, et la commande \nopagebreak :\nopagebreak[hnombrei]où hnombrei a la même signiﬁcation que pour les commandes \linebreak et\pagebreak.

Conclusion
Ce chapitre a présenté les fonctionnalités standard de LATEX. Si vous avez lu attentivement jusqu’ici, vous devriez pouvoir produire n’importe quel document simple(sans formule ni graphique, pour l’instant). Si vous n’êtes pas encore en mesurede personnaliser vos documents, ils seront tout de même d’une très bonne qualité
typographique en vous évitant de vous poser des questions métaphysiques sur la« bonne » largeur d’une marge ou le « bon » écart entre un titre et le texte,... En effet, les comportements par défaut de LATEX répondent, pour la plupart, à des règles
en usage dans le monde de l’imprimerie.

6

Car TEX ne coupe jamais une boîte.

35\nopagebreak[hnombrei]où hnombrei a la même signiﬁcation que pour les commandes \linebreak et\pagebreak.

2

Conclusion
Ce chapitre a présenté les fonctionnalités standard de LATEX. Si vous avez lu attentivement jusqu’ici, vous devriez pouvoir produire n’importe quel document simple(sans formule ni graphique, pour l’instant). Si vous n’êtes pas encore en mesurede personnaliser vos documents, ils seront tout de même d’une très bonne qualité
typographique en vous évitant de vous poser des questions métaphysiques sur la« bonne » largeur d’une marge ou le « bon » écart entre un titre et le texte,... En effet, les comportements par défaut de LATEX répondent, pour la plupart, à des règles
en usage dans le monde de l’imprimerie.

6

Car TEX ne coupe jamais une boîte.

2

3

3

Mathématiques
Sommaire

Sommaire

3.1

Les deux façons d’écrire des maths

3.1

Les deux façons d’écrire des maths

3.2

Commandes usuelles

3.2

Commandes usuelles

3.3

Fonctions

3.3

Fonctions3.4

Des symboles les uns sur les autres

3.4

Des symboles les uns sur les autres

3.5

Deux principes importants

3.5

Deux principes importants

3.6

Array : simple et efficace

3.6

Array : simple et efficace

3.7

Équations et environnements

3.7

Équations et environnements

3.8

Changer le style en mode mathématique

3.8

Changer le style en mode mathématique3

3

Voici les noms des douze apôtres :en tête Simon que l’on appelle Pierre [...]

Voici les noms des douze apôtres :en tête Simon que l’on appelle Pierre [...]L’Évangile selon Saint Matthieu Mt 10 2.

L’Évangile selon Saint Matthieu Mt 10 2.

n des aspects pratique et rigolo1 de LATEX est bien sûr la génération de formules mathématiques ; elles seront naturellement belles, sans que vous n’ayez àfaire quoique ce soit2 . De plus, si vous avez un mauvais souvenir d’un certain éditeurd’équations, réjouissez vous : vous n’avez pas besoin de souris pour écrire des équations ! La génération d’équations avec LATEX est un domaine particulièrement vaste.
Nous présenterons ici les bases requises pour produire les formules « usuelles ». Ce
chapitre ne constitue donc qu’une petite introduction à la manipulation des formules
avec LATEX.

n des aspects pratique et rigolo1 de LATEX est bien sûr la génération de formules mathématiques ; elles seront naturellement belles, sans que vous n’ayez àfaire quoique ce soit2 . De plus, si vous avez un mauvais souvenir d’un certain éditeurd’équations, réjouissez vous : vous n’avez pas besoin de souris pour écrire des équations ! La génération d’équations avec LATEX est un domaine particulièrement vaste.
Nous présenterons ici les bases requises pour produire les formules « usuelles ». Ce
chapitre ne constitue donc qu’une petite introduction à la manipulation des formules
avec LATEX.

Les commandes standard de LATEX permettent de produire la plupart des équations mathématiques usuelles. Il est cependant conseillé d’utiliser les extensions del’American Mathematical Society nommées amsmath et amssymb simplifiant la mise en
forme dans beaucoup de situations.

Les commandes standard de LATEX permettent de produire la plupart des équations mathématiques usuelles. Il est cependant conseillé d’utiliser les extensions del’American Mathematical Society nommées amsmath et amssymb simplifiant la mise en
forme dans beaucoup de situations.

U

3.1

Mathématiques

Les deux façons d’écrire des maths
LATEX distingue deux manières d’écrire des mathématiques. L’une consiste à insérer
une formule dans le texte, comme ceci : ax + b = c, l’autre à écrire une ou plusieurs
formules dans un environnement, par exemple :U

3.1

Les deux façons d’écrire des maths
LATEX distingue deux manières d’écrire des mathématiques. L’une consiste à insérer
une formule dans le texte, comme ceci : ax + b = c, l’autre à écrire une ou plusieurs
formules dans un environnement, par exemple :dU = δW + δQ
1
2

Si, si ! Il y a même des gens qui font des formules juste pour le plaisir !
Ou alors juste deux ou trois petites choses...

37

dU = δW + δQ
1
2

Si, si ! Il y a même des gens qui font des formules juste pour le plaisir !
Ou alors juste deux ou trois petites choses...

37

Mathématiquessachant que chacun de ces deux modes respectent un certain nombre de principes
quant à la taille et la position des diﬀérents symboles. Voici un exemple avec lesdeux modes :sachant que chacun de ces deux modes respectent un certain nombre de principes
quant à la taille et la position des diﬀérents symboles. Voici un exemple avec lesdeux modes :Déterminer la fonction dérivéede $f(x)$ :\begin{displaymath}f(x)=\sqrt{\frac{x-1}{x+1}}\end{displaymath}si elle existe.

Déterminer la fonction dérivée de f (x) :rx−1
f (x) =
x+1

3.1

Déterminer la fonction dérivéede $f(x)$ :\begin{displaymath}f(x)=\sqrt{\frac{x-1}{x+1}}\end{displaymath}si elle existe.

si elle existe.

Cet exemple nous montre donc que l’on entre en mode mathématique « interne »grâce au symbole $, et que le même symbole $ permet d’en sortir. D’autre part,on utilise ici l’environnement displaymath qui est le plus simple pour produire deséquations. Ce dernier peut être saisi grâce aux commandes \[ et \] (cf. § 3.7.1
page 46).
Nous vous présenterons au § 3.7 les diﬀérents environnements de LATEX.

3

3.2

3.2.1 Indice et exposant

Déterminer la fonction dérivée de f (x) :rx−1
f (x) =
x+1
si elle existe.

Cet exemple nous montre donc que l’on entre en mode mathématique « interne »grâce au symbole $, et que le même symbole $ permet d’en sortir. D’autre part,on utilise ici l’environnement displaymath qui est le plus simple pour produire deséquations. Ce dernier peut être saisi grâce aux commandes \[ et \] (cf. § 3.7.1
page 46).
Nous vous présenterons au § 3.7 les diﬀérents environnements de LATEX.

3

Commandes usuelles

Mathématiques

38

3.1

38

3.2

Commandes usuelles

3.2.1 Indice et exposantComme mentionné au § 1.4.1 page 10, _ et ^ sont les commandes permettant deproduire respectivement indice et exposant. Il est nécessaire de « grouper » les arguments entre accolades pour que ces commandes agissent sur plusieurs symboles.

Comme mentionné au § 1.4.1 page 10, _ et ^ sont les commandes permettant deproduire respectivement indice et exposant. Il est nécessaire de « grouper » les arguments entre accolades pour que ces commandes agissent sur plusieurs symboles.

x_2

x2

x_{2y}x2yx_{t_0}

xt0

x_2

x2

x_{2y}x2yx_{t_0}

xt0

x^2

x2

x^{2y}x2yx_{t^0}

xt0

x^2

x2

x^{2y}x2yx_{t^0}xt0

x^{2y}_{t_0}x2yt0x_{t^1}^{2y}x2yt1

x^{2y}_{t_0}x2yt0x_{t^1}^{2y}x2yt1

3.2.2 Fraction et racine

3.2.2 Fraction et racine

Voici comment produire racines et fractions :Voici comment produire racines et fractions :• la commande \frac{hnumi}{hdenomi} produit une fraction formée par le numérateur hnumi et le dénominateur hdenomi ;• la commande \frac{hnumi}{hdenomi} produit une fraction formée par le numérateur hnumi et le dénominateur hdenomi ;• la commande \sqrt[hni]{expr} aﬃche la racine hnie de son argument hargi.

• la commande \sqrt[hni]{expr} aﬃche la racine hnie de son argument hargi.

Notons que ces deux commandes ne produisent pas le même aﬃchage selon le mode
mathématique : interne ou équation. Ainsi voici une fraction : sin 1x+1 et une racine :√3x2 − 1 et leur équivalent en mode équation :Notons que ces deux commandes ne produisent pas le même aﬃchage selon le mode
mathématique : interne ou équation. Ainsi voici une fraction : sin 1x+1 et une racine :√3x2 − 1 et leur équivalent en mode équation :1
sin x + 1√

3x2 − 1

Pour en ﬁnir avec ces deux commandes, voyons comment elles peuvent être imbriquées et l’eﬀet que cela produit :1
sin x + 1√

3x2 − 1

Pour en ﬁnir avec ces deux commandes, voyons comment elles peuvent être imbriquées et l’eﬀet que cela produit :3.2 Commandes usuelles

39

s

3.2

\begin{displaymath}\sqrt{\frac{1+\sqrt[3]{3x+1}}{3x+\frac{1-x}{1+x}}}\end{displaymath}39\begin{displaymath}\sqrt{\frac{1+\sqrt[3]{3x+1}}{3x+\frac{1-x}{1+x}}}\end{displaymath}√
1 + 3 3x + 1
1−x
3x + 1+xs

3.2

3.2 Commandes usuelles√
1 + 3 3x + 1
1−x
3x + 1+x3.2.3 Symboles

3.2.3 Symboles

Symboles usuels

Symboles usuels

Le tableau 3.1 donne les macros produisant une partie des symboles dont vouspourriez avoir besoin.

Le tableau 3.1 donne les macros produisant une partie des symboles dont vouspourriez avoir besoin.

Table 3.1: Symboles mathématiques usuels

Table 3.1: Symboles mathématiques usuels

\pm
\mp
\div
\ast
\times\bullets
\circ
\star
\setminus\oplus\ominus± \otimes∓ \oslash
÷
\odot
∗
\leq
×
\geq
•
\equiv
◦
\ll
⋆
\gg
\
\sim
⊕ \simeq⊖ \approx

⊗
⊘
⊙
≤
≥
≡
≪
≫
∼
≃
≈

\cong
\subset\supset\subseteq\supseteq\in\ni\emptyset\forall\infty\exists∼\imath=⊂\jmath⊃\ell⊆\aleph⊇\nabla∈\|∋ \partial∅\wedge
∀
\vee
∞
\cup
∃
\cap

ı

ℓ
ℵ
∇
k
∂
∧
∨
∪
∩

Nous avons recensé près de ◮450 symbolesN disponibles avec les packages latexsym
et amssymb. Notre but n’est donc pas de les présenter ici ! Le tableau 3.1 est unesélection parmi les symboles standard. Nous avons jugé qu’ils faisaient partie des symbolesles plus utiles — ce qui, malgré la présence tout à fait fortuite de l’aleph dans ce tableau,démontre que le niveau en mathématiques de l’auteur de ce document avoisine le ras despâquerettes.

3

ch. C p. 213 ◭

\pm
\mp
\div
\ast
\times\bullets
\circ
\star
\setminus\oplus\ominus± \otimes∓ \oslash
÷
\odot
∗
\leq
×
\geq
•
\equiv
◦
\ll
⋆
\gg
\
\sim
⊕ \simeq⊖ \approx

⊗
⊘
⊙
≤
≥
≡
≪
≫
∼
≃
≈

\cong
\subset\supset\subseteq\supseteq\in\ni\emptyset\forall\infty\exists∼\imath=⊂\jmath⊃\ell⊆\aleph⊇\nabla∈\|∋ \partial∅\wedge
∀
\vee
∞
\cup
∃
\cap

ı

ℓ
ℵ
∇
k
∂
∧
∨
∪
∩

Nous avons recensé près de ◮450 symbolesN disponibles avec les packages latexsym
et amssymb. Notre but n’est donc pas de les présenter ici ! Le tableau 3.1 est unesélection parmi les symboles standard. Nous avons jugé qu’ils faisaient partie des symbolesles plus utiles — ce qui, malgré la présence tout à fait fortuite de l’aleph dans ce tableau,démontre que le niveau en mathématiques de l’auteur de ce document avoisine le ras despâquerettes.

On utilise couramment pour économiser de l’encre des points de suspension dansdes formules. Il en existe de trois types. La commande \dots produit des points« posés » sur la ligne :On utilise couramment pour économiser de l’encre des points de suspension dansdes formules. Il en existe de trois types. La commande \dots produit des points« posés » sur la ligne :C = {~c0 , ~c1 , . . . , ~cN } est l’ensemble des N
couleurs.

$\vec{\mu}=\frac{1}{N}(\vec{c}_0+\vec{c}_1+\cdots+\vec{c}_N)$
est la moyenne des $N$ couleurs.

3.4

La commande \cdots produit des points centrés verticalement sur le signe égal :~ = N1 (~c0 + ~c1 + · · · + ~cN ) est la moyenne desµ
N couleurs.

$C=\{\vec{c}_0,\vec{c}_1,\dots,\vec{c}_N\}$
est l’ensemble des $N$ couleurs.

ch. C p. 213 ◭C = {~c0 , ~c1 , . . . , ~cN } est l’ensemble des N
couleurs.

La commande \cdots produit des points centrés verticalement sur le signe égal :$\vec{\mu}=\frac{1}{N}(\vec{c}_0+\vec{c}_1+\cdots+\vec{c}_N)$
est la moyenne des $N$ couleurs.

3.4$C=\{\vec{c}_0,\vec{c}_1,\dots,\vec{c}_N\}$
est l’ensemble des $N$ couleurs.

3.3

Points de suspension

3.3

Points de suspension3~µ = N1 (~c0 + ~c1 + · · · + ~cN ) est la moyenne desN couleurs.

Mathématiques

40

3

Mathématiques

40

Enﬁn les commandes \vdots et \ddots sont à utiliser essentiellement dans les matrices (cf. § 3.6 et l’exemple 3.15). Ces deux commandes produisent respectivement :..
.
. et . . .

Enﬁn les commandes \vdots et \ddots sont à utiliser essentiellement dans les matrices (cf. § 3.6 et l’exemple 3.15). Ces deux commandes produisent respectivement :..
.
. et . . .

FlèchesFlèches

Voici un moyen simple pour mémoriser les commandes permettant de générer desﬂèches :Voici un moyen simple pour mémoriser les commandes permettant de générer desﬂèches :• toutes les commandes ﬁnissent par arrow ;• toutes les commandes ﬁnissent par arrow ;• le préﬁxe obligatoire left ou right indique la direction ;• le préﬁxe obligatoire left ou right indique la direction ;• le préﬁxe facultatif long donne une version longue ;• le préﬁxe facultatif long donne une version longue ;• la première lettre de la commande mise en majuscule rend la ﬂèche double ;• la première lettre de la commande mise en majuscule rend la ﬂèche double ;• on peut mettre des ﬂèches aux deux extrémités en collant les deux mots left
et right.

• on peut mettre des ﬂèches aux deux extrémités en collant les deux mots left
et right.

ainsi :
\rightarrow\Longleftarrow\Leftarrow\Longleftrightarrow

donne
donne
donne
donne

3

ainsi :→⇐=⇐⇐⇒

\rightarrow\Longleftarrow\Leftarrow\Longleftrightarrow

donne
donne
donne
donne

→
⇐=
⇐
⇐⇒

Lettres grecques

Lettres grecques

Les lettres grecques s’utilisent de la manière la plus simple qui soit : en les appelant
par leur nom. Ainsi : \alpha donne « α » et \pi, « π ». Mettre une majuscule à lapremière lettre de la commande, donne la majuscule correspondante : \Gamma donne« Γ ». Attention, toutes les majuscules ne sont pas disponibles dans l’alphabet grec,
on mettra par exemple α en majuscule, avec la lettre A (la commande \Alphan’existe pas).

Les lettres grecques s’utilisent de la manière la plus simple qui soit : en les appelant
par leur nom. Ainsi : \alpha donne « α » et \pi, « π ». Mettre une majuscule à lapremière lettre de la commande, donne la majuscule correspondante : \Gamma donne« Γ ». Attention, toutes les majuscules ne sont pas disponibles dans l’alphabet grec,
on mettra par exemple α en majuscule, avec la lettre A (la commande \Alphan’existe pas).

L’ensemble des réels

L’ensemble des réels

Une question « cruciale » que se posent les rédacteurs potentiels de documents scientiﬁques est : « Comment peut/doit-on écrire le ‘R’ de l’ensemble des réels ? ». Les avis
sont partagés à ce sujet. Historiquement il semble qu’initialement, dans les ouvrages
de mathématiques, le symbole des réels était typographié en gras (« Soit x ∈ R »)et que les professeurs pour reprendre ces notations sur un tableau avec une craie
avaient recours à l’artiﬁce de repasser plusieurs fois sur la lettre « R » ; cette pratiquepénible aurait évoluée vers l’écriture « bien connue » : « Soit x ∈ ». Il y a donc les
adeptes du R, du R, etc. Pour choisir par soi-même, voir les packages :Une question « cruciale » que se posent les rédacteurs potentiels de documents scientiﬁques est : « Comment peut/doit-on écrire le ‘R’ de l’ensemble des réels ? ». Les avis
sont partagés à ce sujet. Historiquement il semble qu’initialement, dans les ouvrages
de mathématiques, le symbole des réels était typographié en gras (« Soit x ∈ R »)et que les professeurs pour reprendre ces notations sur un tableau avec une craie
avaient recours à l’artiﬁce de repasser plusieurs fois sur la lettre « R » ; cette pratiquepénible aurait évoluée vers l’écriture « bien connue » : « Soit x ∈ ». Il y a donc les
adeptes du R, du R, etc. Pour choisir par soi-même, voir les packages :R• bbm qui propose la commande \mathbbm{R} produisant\mathbbmss{R} produisant R, etc.
• bbold qui propose la commande \mathbbm{R} produisantR, la commandeR, etc.

• amssymb qui propose les commandes \mathbb{R} produisant R et \mathbf{R}produisant RR• bbm qui propose la commande \mathbbm{R} produisant\mathbbmss{R} produisant R, etc.
• bbold qui propose la commande \mathbbm{R} produisantR, la commandeR, etc.

• amssymb qui propose les commandes \mathbb{R} produisant R et \mathbf{R}produisant R

3.3 Fonctions

Fonctions

3.3

3.3.1 Fonctions standards

3.5$\sin^2x + \cos^2 x=1$

sin2 x + cos2 x = 1

sin2 x + cos2 x = 1

3.6

3.5

Lorsqu’on veut produire des fonctions mathématiques classiques (logarithmes, trigonométrie,...), il faut utiliser les fonctions de LATEX prévues à cet eﬀet. Voici un
exemple pour vous en convaincre.

sin2 x + cos2 x = 1

Et sans les fonctions LATEX :3.6

Et sans les fonctions LATEX :$sin^2x + cos^2x=1$

Fonctions3.3.1 Fonctions standards

Lorsqu’on veut produire des fonctions mathématiques classiques (logarithmes, trigonométrie,...), il faut utiliser les fonctions de LATEX prévues à cet eﬀet. Voici un
exemple pour vous en convaincre.
$\sin^2x + \cos^2 x=1$

41$sin^2x + cos^2x=1$

sin2 x + cos2 x = 1

La diﬀérence réside dans le fait que LATEX traite la chaîne cos comme une suitede variable (donc produites en italiques) alors que la fonction \cos produit « cos »en roman. Une autre diﬀérence importante est le placement d’éventuels indices (cf.
l’exemple de la fonction \max ci-dessous). Parmi les fonctions mathématiques standard de LATEX, on trouvera :3

La diﬀérence réside dans le fait que LATEX traite la chaîne cos comme une suitede variable (donc produites en italiques) alors que la fonction \cos produit « cos »en roman. Une autre diﬀérence importante est le placement d’éventuels indices (cf.
l’exemple de la fonction \max ci-dessous). Parmi les fonctions mathématiques standard de LATEX, on trouvera :• les logarithmes népérien et décimal déﬁnis respectivement par les fonctions\ln et \log.

• les logarithmes népérien et décimal déﬁnis respectivement par les fonctions\ln et \log.

• les fonctions \sup, \inf, \max, \min, et \arg qui vous permettront de générer
des formules de ce genre :• les fonctions \sup, \inf, \max, \min, et \arg qui vous permettront de générer
des formules de ce genre :\begin{displaymath}
T=\arg \max_{t<0} f(t)\end{displaymath}T = arg max f (t)t<0Notez l’utilisation de l’opérateur indice _ et le placement résultant avec la commande\max.

3.3.2 Intégrales, sommes et autres limites

T = arg max f (t)t<0Notez l’utilisation de l’opérateur indice _ et le placement résultant avec la commande\max.

3.3.2 Intégrales, sommes et autres limites

LAT X utilise une syntaxe simple pour produire intégrales, sommes, etc. La syntaxeE
est la suivante :\hopi_{hinfi}^{hsupi}où hopi est l’un des opérateurs sum, prod, int ou lim et hinfi et hsupi sont lesbornes inférieure et supérieure de la somme ou de l’intégrale. Ainsi on peut doncécrire :Somme des termes d’une suite géométrique :3.8

Somme des termes d’une suite
géométrique :\begin{displaymath}\sum_{i=0}^{n}q^i=\frac{1-q^{n+1}}{1-q}\end{displaymath}\begin{displaymath}
T=\arg \max_{t<0} f(t)\end{displaymath}

3.7• toutes les fonctions trigonométriques : \sin, \cos et \tan. En rajoutant arc
devant, vous aurez les réciproques, et h derrière vous obtiendrez les versions
hyperboliques.

3.7• toutes les fonctions trigonométriques : \sin, \cos et \tan. En rajoutant arc
devant, vous aurez les réciproques, et h derrière vous obtiendrez les versions
hyperboliques.

n
X
i=0

qi =

1 − q n+1
1−q

LATEX utilise une syntaxe simple pour produire intégrales, sommes, etc. La syntaxe
est la suivante :\hopi_{hinfi}^{hsupi}où hopi est l’un des opérateurs sum, prod, int ou lim et hinfi et hsupi sont lesbornes inférieure et supérieure de la somme ou de l’intégrale. Ainsi on peut doncécrire :Somme des termes d’une suite
géométrique :\begin{displaymath}\sum_{i=0}^{n}q^i=\frac{1-q^{n+1}}{1-q}\end{displaymath}Somme des termes d’une suite géométrique :
3.8

3.3

3.3 Fonctions

41

n
X
i=0

qi =

1 − q n+1
1−q3

MathématiquesQ
Le produits’utilise de manière analogue avec la commande \prod. Un exemple
avec une intégrale, en veux-tu en voilà :On définit le logarithme
népérien de $x>0$ comme suit :\begin{displaymath}\ln(x)=\int_{1}^{x}\frac{1}{t}\,\mathrm{dt}\end{displaymath}On déﬁnit le logarithme népérien de x > 0
comme suit :Z x1ln(x) =dt
1 t

La commande \, permet d’insérer un léger blanc avant le « dtH» (cf. § 3.5.1). Si vousêtes plutôt curviligne, vous pouvez utiliser \oint qui donne : . Bon, je vous donne
juste un exemple avec une limite mais c’est bien parce que c’est vous :3.10

lim f (x) = ℓx→x0

J’espère que vous avez apprécié le beau ℓ ; pour se ﬁxer les idées sur les deux
modes mathématiques, voici
mais incrustées dans
R x le texte. Donc
P les mêmes formules
n+1, ensuite l’intégrale : 1 1t dt = ln(x), etd’abord la sommation : ni=0 q i = 1−q1−q
enﬁn la limite : limx→x0 f (x) = ℓ.

Des symboles les uns sur les autres

f (x) admet une limite ℓ en x0 :lim f (x) = ℓx→x0

J’espère que vous avez apprécié le beau ℓ ; pour se ﬁxer les idées sur les deux
modes mathématiques, voici
mais incrustées dans
R x le texte. Donc
P les mêmes formules
n+1, ensuite l’intégrale : 1 1t dt = ln(x), etd’abord la sommation : ni=0 q i = 1−q1−q
enﬁn la limite : limx→x0 f (x) = ℓ.

3.4

3.4.1 L’opérateur not

Des symboles les uns sur les autres

3.4.1 L’opérateur not

L’opérateur \not permet de produire la « négation » d’une relation :Soit $x \not\in I$ un réel...

3$f(x)$ admet une limite $\ell$ en $x_0$ :\begin{displaymath}\lim_{x\rightarrow x_0}f(x)=\ell\end{displaymath}

Soit x 6∈ I un réel...

le résultat est donc un « slash » sur le symbole suivant. Attention, cet opérateurn’est pas très performant : $\not\longrightarrow$ donne : 6−→, mais est satisfaisant pour les symboles d’une largeur raisonnable.

3.4.2 Accents

L’opérateur \not permet de produire la « négation » d’une relation :Soit $x \not\in I$ un réel...

3.11

3.4

On déﬁnit le logarithme népérien de x > 0
comme suit :Z x1ln(x) =dt
1 t

La commande \, permet d’insérer un léger blanc avant le « dtH» (cf. § 3.5.1). Si vousêtes plutôt curviligne, vous pouvez utiliser \oint qui donne : . Bon, je vous donne
juste un exemple avec une limite mais c’est bien parce que c’est vous :f (x) admet une limite ℓ en x0 :

3.11

3

$f(x)$ admet une limite $\ell$ en $x_0$ :\begin{displaymath}\lim_{x\rightarrow x_0}f(x)=\ell\end{displaymath}

3.9

3.9

Q
Le produits’utilise de manière analogue avec la commande \prod. Un exemple
avec une intégrale, en veux-tu en voilà :On définit le logarithme
népérien de $x>0$ comme suit :\begin{displaymath}\ln(x)=\int_{1}^{x}\frac{1}{t}\,\mathrm{dt}\end{displaymath}

Mathématiques

42

3.10

42

Soit x 6∈ I un réel...

le résultat est donc un « slash » sur le symbole suivant. Attention, cet opérateurn’est pas très performant : $\not\longrightarrow$ donne : 6−→, mais est satisfaisant pour les symboles d’une largeur raisonnable.

3.4.2 Accents

Il est souvent utile d’accentuer les symboles en guise de notation particulière. Voici
les accents disponibles :3\hat{x}\acute{x}\bar{x}x̂ \check{x}x́ \grave{x}x̄ \dot{x}x̌ \breve{x}x̀ \tilde{x}ẋ \ddot{x}

x̆
x̃
ẍ

3
En réalité les mathématiciens dignes de ce nom raffolent de ce genre de petits chapeaux au
dessus des symboles ; certains en superposent même deux, voire trois...

Il est souvent utile3 d’accentuer les symboles en guise de notation particulière. Voici
les accents disponibles :\hat{x}\acute{x}\bar{x}x̂ \check{x}x́ \grave{x}x̄ \dot{x}x̌ \breve{x}x̀ \tilde{x}ẋ \ddot{x}

x̆
x̃
ẍ

3
En réalité les mathématiciens dignes de ce nom raffolent de ce genre de petits chapeaux au
dessus des symboles ; certains en superposent même deux, voire trois...

3.5 Deux principes importants

3.5 Deux principes importants

43

3.4.3 Vecteurs

3.4.3 Vecteurs

Il existe deux façons d’obtenir un vecteur :Il existe deux4 façons d’obtenir un vecteur :4• \overrightarrow dans les autres cas.

• \overrightarrow dans les autres cas.
Soit $\overrightarrow{A\!B}$ défini
dans la base $(\vec{\imath},\vec{\jmath})$.

−→Soit AB déﬁni dans la base (~ı, ~).

~ (voir aussi le paragraphe 3.5.1 pour laNotez que $\vec{A\!B}$ aurait donné : ABsigniﬁcation de la commande \!). Remarquez également les commandes \imath et\jmath qui fournissent les lettres « i » et « j » sans point : ı et .

\stackrel{hsymb1 i}{hsymb2 i}

3.4.4 Commande stackrel
La commande \stackrel permet de poser deux symboles l’un sur l’autre :3\stackrel{hsymb1 i}{hsymb2 i}

met le hsymb1 i sur hsymb2 i. Par exemple :met le hsymb1 i sur hsymb2 i. Par exemple :x\stackrel{f}{\longmapsto}yx\stackrel{f}{\longmapsto}yffdonne : x 7−→ y.

Deux principes importants−→
Soit AB déﬁni dans la base (~ı, ~).

~ (voir aussi le paragraphe 3.5.1 pour laNotez que $\vec{A\!B}$ aurait donné : ABsigniﬁcation de la commande \!). Remarquez également les commandes \imath et\jmath qui fournissent les lettres « i » et « j » sans point : ı et .

3.4.4 Commande stackrel
La commande \stackrel permet de poser deux symboles l’un sur l’autre :3.12• \vec pour les petits symboles car \vec est une commande d’accentuation ;3.12• \vec pour les petits symboles car \vec est une commande d’accentuation ;Soit $\overrightarrow{A\!B}$ défini
dans la base $(\vec{\imath},\vec{\jmath})$.

3.5

43

donne : x 7−→ y.

3.5

Deux principes importants

Pour bien comprendre la manière dont LATEX génère les formules, il faut saisir lesdeux principes suivants :Pour bien comprendre la manière dont LATEX génère les formules, il faut saisir lesdeux principes suivants :Espaces : LATEX ignore les espaces entre les symboles mathématiques ; ainsi : $x+1$
produira la même formule que $x + 1$. C’est LATEX qui insère les espaces à
l’endroit qu’il juge le plus judicieux ;Espaces : LATEX ignore les espaces entre les symboles mathématiques ; ainsi : $x+1$
produira la même formule que $x + 1$. C’est LATEX qui insère les espaces à
l’endroit qu’il juge le plus judicieux ;Texte5 : tout groupe de symboles est considéré comme un groupe de variables ou
fonctions ; ainsi $x=t avec t>0$ produira x = tavect > 0 et non ce que vous
espériez : x = t avec t > 0.

Texte5 : tout groupe de symboles est considéré comme un groupe de variables ou
fonctions ; ainsi $x=t avec t>0$ produira x = tavect > 0 et non ce que vous
espériez : x = t avec t > 0.

Une fois ces deux principes acquis, voyons comment on peut faire avec.

Une fois ces deux principes acquis, voyons comment on peut faire avec.

3.5.1 Espaces en mode mathématique

3.5.1 Espaces en mode mathématique

Tout d’abord, sachez que LATEX fait un choix d’espacement qui est en général correct.
Cependant le jour où vous aurez à jouer l’XXXXX
enculeur de mouche, les commandes du///////
tableau 3.2 vous permettront d’insérer un ou des espaces dans des formules. Dansce tableau, on montre l’eﬀet des commandes d’espacement entre deux symboles .

Tout d’abord, sachez que LATEX fait un choix d’espacement qui est en général correct.
Cependant le jour où vous aurez à jouer l’XXXXX
enculeur de mouche, les commandes du///////
tableau 3.2 vous permettront d’insérer un ou des espaces dans des formules. Dansce tableau, on montre l’eﬀet des commandes d’espacement entre deux symboles .

4
Le package esvect d’Eddie Saudrais permet de produire des vecteurs avec des flèches mieux
dessinées que celles proposées ici.
5
L’insertion de texte dans une formule ne devient un problème que dans un environnement dela famille displaymath, puisque vous pouvez toujours écrire « $x=t$ avec $t>0$ », bien sûr !

4
Le package esvect d’Eddie Saudrais permet de produire des vecteurs avec des flèches mieux
dessinées que celles proposées ici.
5
L’insertion de texte dans une formule ne devient un problème que dans un environnement dela famille displaymath, puisque vous pouvez toujours écrire « $x=t$ avec $t>0$ », bien sûr !

3

Mathématiques

Mathématiques

44

Table 3.2: Espacement en mode mathématique\!

(rien)



\,



\:



\;



\␣



\quad

 

\qquad

Table 3.2: Espacement en mode mathématique

Pour ce qui concerne les mouches, sachez que l’auteur de ce manuel a sournoisement inséré un certain nombre d’espacements au numérateur du calcul de la somme
des termes de la suite géométrique (§ 3.3.2 page 41), pour aligner les deux q de la
fraction. Voici ce que donnait la formule par défaut :
n
X

qi =

i=0

\,



\:





\quad

 

\qquad

Soient les suites (un ) et (vn ) :un = ln n et vn = (1 +

1 − q n+1
1−q

et voyons si les histoires de q vous donnent le sens de l’observation.

3

3.13

qi =

i=0

3.5.2 Texte en mode mathématique

1 n
)
n

Le moyen le plus simple d’insérer du texte dans une formule est de de le mettre « enboîte » et d’insérer quelques espaces :Soient les suites $(u_n)$ et $(v_n)$ :\begin{displaymath}u_n=\ln n\quad\mbox{et}\quad v_n=(1+\frac{1}{n})^n\label{ex-maths-suite}\end{displaymath}

Vous trouverez des détails sur la commande \mbox à la section 4.4.1 page 62. Si vous
avez pensé à mettre en route le package amsmath vous serez en mesure d’utiliser lacommande \text en lieu et place de \mbox.

Array : simple et efficace

3.6

un = ln n et vn = (1 +

1 n
)
n

Array : simple et efficace
L’environnement array est un environnement qui vous permettra de produire la
grande majorité de vos formules. Comme son nom l’indique il range des objets enligne et colonne. En fait c’est le pendant de l’environnement tabular du mode texte.
Et comme tabular, array ne passe pas à la ligne.

3.6.1 Comment ça marche

3.6.1 Comment ça marche

La syntaxe rappelle celle de tabular :La syntaxe rappelle celle de tabular :\begin{array}[hvposi]{hformati} ... \end{array}où hformati précise pour chaque colonne l’alignement : c pour centré, l pour alignéà gauche et r pour aligné à droite ; l’argument optionnel hvposi spéciﬁe quant àlui le positionnement vertical du Ntableau◭. Comme dans les tableaux, on notera
l’utilisation des commandes :Soient les suites (un ) et (vn ) :Vous trouverez des détails sur la commande \mbox à la section 4.4.1 page 62. Si vous
avez pensé à mettre en route le package amsmath vous serez en mesure d’utiliser lacommande \text en lieu et place de \mbox.

L’environnement array est un environnement qui vous permettra de produire la
grande majorité de vos formules. Comme son nom l’indique il range des objets enligne et colonne. En fait c’est le pendant de l’environnement tabular du mode texte.
Et comme tabular, array ne passe pas à la ligne.

◮ § 2.2.4 p. 23



\␣

n
X

Le moyen le plus simple d’insérer du texte dans une formule est de de le mettre « enboîte » et d’insérer quelques espaces :3.6(rien)

1 − q n+1
1−q3.5.2 Texte en mode mathématique

Soient les suites $(u_n)$ et $(v_n)$ :\begin{displaymath}u_n=\ln n\quad\mbox{et}\quad v_n=(1+\frac{1}{n})^n\label{ex-maths-suite}\end{displaymath}\;

Pour ce qui concerne les mouches, sachez que l’auteur de ce manuel a sournoisement inséré un certain nombre d’espacements au numérateur du calcul de la somme
des termes de la suite géométrique (§ 3.3.2 page 41), pour aligner les deux q de la
fraction. Voici ce que donnait la formule par défaut :et voyons si les histoires de q vous donnent le sens de l’observation.

3

\!

3.13

44

\begin{array}[hvposi]{hformati} ... \end{array}◮ § 2.2.4 p. 23

où hformati précise pour chaque colonne l’alignement : c pour centré, l pour alignéà gauche et r pour aligné à droite ; l’argument optionnel hvposi spéciﬁe quant àlui le positionnement vertical du Ntableau◭. Comme dans les tableaux, on notera
l’utilisation des commandes :3.6 Array : simple et efficace

3.6 Array : simple et efficace

45

45• & comme séparateur de colonne ;• & comme séparateur de colonne ;• \\ pour passer à la ligne.

• \\ pour passer à la ligne.

Voici un exemple utilisant les points de suspensions :−1 1
la matrice ...
3 4

Soit A =Voici un exemple utilisant les points de suspensions :

a00

A =  ...

3.15

\begin{displaymath} A=\left[\begin{array}{ccc}a_{00} & \dots & a_{0n}\\\vdots & \ddots & \vdots\\
a_{n0} & \dots & a_{nn}\end{array}\right]\end{displaymath}

3.14

Soit $A=\begin{array}{rc}-1 & 1 \\3 & 4\end{array}$ la matrice ...

−1 1Soit A =la matrice ...
3 4

an0

\begin{displaymath} A=\left[\begin{array}{ccc}a_{00} & \dots & a_{0n}\\\vdots & \ddots & \vdots\\
a_{n0} & \dots & a_{nn}\end{array}\right]\end{displaymath}. . . a0n
.. 
..
.
. 
. . . ann

3

3.6.2 Array et les délimiteurs
On utilise couramment l’environnement array pour produire des matrices. Il fautalors avoir recours à des délimiteurs. Ces délimiteurs sont de la famille des parenthèses et permettent d’englober un objet mathématique entre crochets, accolades,
etc. La syntaxe est la suivante :\lefthdelim1 i hmobjeti \righthdelim2 i

où hdelim1 i et hdelim2 i sont deux délimiteurs et hmobjeti un objet mathématique.
Parmi les délimiteurs, voici les plus usités :



a00

A =  ...

3.15

3.14

Soit $A=\begin{array}{rc}-1 & 1 \\3 & 4\end{array}$ la matrice ...

an0

3

3.6.2 Array et les délimiteurs
On utilise couramment l’environnement array pour produire des matrices. Il fautalors avoir recours à des délimiteurs. Ces délimiteurs sont de la famille des parenthèses et permettent d’englober un objet mathématique entre crochets, accolades,
etc. La syntaxe est la suivante :\lefthdelim1 i hmobjeti \righthdelim2 i

où hdelim1 i et hdelim2 i sont deux délimiteurs et hmobjeti un objet mathématique.
Parmi les délimiteurs, voici les plus usités :( et )(Π)[ et ][Π]( et )(Π)[ et ][Π]\{ et \}

{Π}\lfloor et \rfloor⌊Π⌋\{ et \}

{Π}\lfloor et \rfloor

⌊Π⌋

⌈Π⌉

\langle et \rangle

|Π|

hΠi

kΠk

\|

soit $I=\left[\begin{array}{cc}1&0 \\ 0&1\end{array}\right]$ la matrice identité.

3.16

L’intérêt des délimiteurs est qu’ils s’adaptent automatiquement à la taille des objets
qu’ils entourent :soit I =



1 0
0 1



la matrice identité.

Soient les suites $(u_n)$ et $(v_n)$ :\begin{displaymath}u_n=\ln n\quad\mbox{et}\quad v_n=\left(1+\frac{1}{n}\right)^n\end{displaymath}

3.17

On peut également reprendre l’exemple 3.13 page ci-contre avec des délimiteurs pourajuster la taille des parenthèses :Soient les suites (un ) et (vn ) :
1 nun = ln n et vn = 1 +n\lceil et \rceil|⌈Π⌉\langle et \rangle

|Π|

hΠi

kΠk

\|

L’intérêt des délimiteurs est qu’ils s’adaptent automatiquement à la taille des objets
qu’ils entourent :soit $I=\left[\begin{array}{cc}1&0 \\ 0&1\end{array}\right]$ la matrice identité.

3.16

|

soit I =



1 0
0 1



la matrice identité.

On peut également reprendre l’exemple 3.13 page ci-contre avec des délimiteurs pourajuster la taille des parenthèses :Soient les suites $(u_n)$ et $(v_n)$ :\begin{displaymath}u_n=\ln n\quad\mbox{et}\quad v_n=\left(1+\frac{1}{n}\right)^n\end{displaymath}

3.17\lceil et \rceil. . . a0n
.. 
..
.
. 
. . . ann

Soient les suites (un ) et (vn ) :
1 nun = ln n et vn = 1 +nMathématiques
Il doit toujours y avoir une commande \right pour une commande \left. Cependant, il n’est pas nécessaire d’avoir les mêmes symboles à droite et à gauche.

Il doit toujours y avoir une commande \right pour une commande \left. Cependant, il n’est pas nécessaire d’avoir les mêmes symboles à droite et à gauche.

3.18

Voici un exemple où on utilise la commande \right. pour spéciﬁer que l’on n’utilise
pas de symbole à droite :soit Si =

Voici un exemple où on utilise la commande \right. pour spéciﬁer que l’on n’utilise
pas de symbole à droite :soit $ S_i=\left\{\begin{array}{rl}-1 & \mbox{si $i$ est pair}\\
1 & \mbox{sinon.}\end{array}\right.$−1 si i est pair
1 sinon.

3.6.3 Pour vous simplifier la vie...

3.19¯ = σ11 σ12σ̄
σ21 σ22

3

3.7

Nous présenterons dans ce paragraphe trois environnements standard de LATEX permettant de produire des formules.

−1 si i est pair
1 sinon.

¯ = σ11 σ12σ̄
σ21 σ22

Équations et environnements
Nous présenterons dans ce paragraphe trois environnements standard de LATEX permettant de produire des formules.

3.7.1 L’environnement displaymath

3.7.1 L’environnement displaymath

Vous l’avez compris, si vous avez lu jusqu’ici, displaymath aﬃche une formule centrée, interrompant le paragraphe. Un raccourci agréable de :Vous l’avez compris, si vous avez lu jusqu’ici, displaymath aﬃche une formule centrée, interrompant le paragraphe. Un raccourci agréable de :\begin{displaymath}...\end{displaymath}\begin{displaymath}...\end{displaymath}est : \[...\]. Ainsi :3.20

est : \[...\]. Ainsi :Distance colorimétrique :\[\Delta E=\sqrt{\Delta L^{*2}+ \Delta a^{*2}+\Delta b^{*2}}\]Distance colorimétrique :p∆E = ∆L∗2 + ∆a∗2 + ∆b∗2

3.7.2 L’environnement equation

Distance colorimétrique :p∆E = ∆L∗2 + ∆a∗2 + ∆b∗2

3.7.2 L’environnement equation

L’environnement equation est l’équivalent du précédent, sauf qu’il numérote laformule.
À retenir : si $a>0$ et $b>0$,\begin{equation}\ln(ab)=\ln(a)+\ln(b)\end{equation}\begin{displaymath}\bar{\bar{\sigma}}=\begin{bmatrix}\sigma_{11} & \sigma_{12} \\\sigma_{21} & \sigma_{22} \\\end{bmatrix}\end{displaymath}

3.19



Équations et environnements

Distance colorimétrique :\[\Delta E=\sqrt{\Delta L^{*2}+ \Delta a^{*2}+\Delta b^{*2}}\]Le package amsmath permet de saisir plus simplement les matrices avec notamment
deux environnements : pmatrix (p pour parenthèse) et bmatrix (b pour bracket).

3.20

3.7

L’environnement equation est l’équivalent du précédent, sauf qu’il numérote laformule.

À retenir : si a > 0 et b > 0,
3.21

3

\begin{displaymath}\bar{\bar{\sigma}}=\begin{bmatrix}\sigma_{11} & \sigma_{12} \\\sigma_{21} & \sigma_{22} \\\end{bmatrix}\end{displaymath}soit Si =3.6.3 Pour vous simplifier la vie...

Le package amsmath permet de saisir plus simplement les matrices avec notamment
deux environnements : pmatrix (p pour parenthèse) et bmatrix (b pour bracket).

ln(ab) = ln(a) + ln(b)L’option de classe de document leqno met le numéro des équations à gauche. Et
l’option fleqn aligne les équations à gauche, au lieu de les centrer.

(3.1)

À retenir : si $a>0$ et $b>0$,\begin{equation}\ln(ab)=\ln(a)+\ln(b)\end{equation}

À retenir : si a > 0 et b > 0,
3.21

soit $ S_i=\left\{\begin{array}{rl}-1 & \mbox{si $i$ est pair}\\
1 & \mbox{sinon.}\end{array}\right.$

Mathématiques

46

3.18

46

ln(ab) = ln(a) + ln(b)L’option de classe de document leqno met le numéro des équations à gauche. Et
l’option fleqn aligne les équations à gauche, au lieu de les centrer.

(3.1)

3.8 Changer le style en mode mathématique

3.8 Changer le style en mode mathématique47

3.7.3 Formules multi-lignes

3.7.3 Formules multi-lignes

Dans une précédente édition, nous finissions la présentation des environnements
standard par l’environnement eqnarray qui permet de produire des formules deplusieurs lignes. Sachez que c’est mal. Il existe d’ailleurs des écrits à ce sujet (lire par
exemple [12] ou [14]), vous expliquant comment produire des documents « propres ».
Prenez bien conscience qu’utiliser eqnarray (et bien d’autres choses) est un péché, etque si vous cédez malgré tout à la tentation, l’inquisition vous retrouvera un jour ou l’autre
par l’intermédiaire d’un moteur de recherche. Aucune confession ou indulgence ne pourra
vous sortir de ce mauvais pas, vous êtes prévenus.

Dans une précédente édition, nous finissions la présentation des environnements
standard par l’environnement eqnarray qui permet de produire des formules deplusieurs lignes. Sachez que c’est mal. Il existe d’ailleurs des écrits à ce sujet (lire par
exemple [12] ou [14]), vous expliquant comment produire des documents « propres ».
Prenez bien conscience qu’utiliser eqnarray (et bien d’autres choses) est un péché, etque si vous cédez malgré tout à la tentation, l’inquisition vous retrouvera un jour ou l’autre
par l’intermédiaire d’un moteur de recherche. Aucune confession ou indulgence ne pourra
vous sortir de ce mauvais pas, vous êtes prévenus.

Nous vous présentons donc ici l’environnement align du package amsmath :Nous vous présentons donc ici l’environnement align du package amsmath :• \\ passe à la ligne ;• \\ passe à la ligne ;• chaque ligne est numérotée sauf si la commande \nonumber est présente dansla ligne ;• chaque ligne est numérotée sauf si la commande \nonumber est présente dansla ligne ;(a+b)(a+b)\nonumber\\a^2+b^2+2ab• on procède à l’alignement avec deux6 opérateurs &.

3(a + b)2 = (a + b)(a + b)2

2

= a + b + 2ab(3.2)\begin{align}(a+b)^2 & =& =\end{align}(a+b)(a+b)\nonumber\\a^2+b^2+2ab

3.22\begin{align}(a+b)^2 & =& =\end{align}

3.22• on procède à l’alignement avec deux6 opérateurs &.

3(a + b)2 = (a + b)(a + b)
= a2 + b2 + 2ab

Il existe une forme « étoilée » de l’environnement : align* où aucune des lignes
n’est numérotée. Si vous voulez faire référence à certaines lignes d’un align, il
vous faudra poser autant de \label nécessaires sur chaque ligne correspondante.

Il existe une forme « étoilée » de l’environnement : align* où aucune des lignes
n’est numérotée. Si vous voulez faire référence à certaines lignes d’un align, il
vous faudra poser autant de \label nécessaires sur chaque ligne correspondante.

Pour faire numéroter une équation s’étalant sur plusieurs lignes on peut utiliser
l’environnement split (lui aussi fourni avec amsmath) :Pour faire numéroter une équation s’étalant sur plusieurs lignes on peut utiliser
l’environnement split (lui aussi fourni avec amsmath) :22= a + b + 2ab

Changer le style en mode mathématique

3.8.1 Fontes
LATEX fournit plusieurs commandes permettant de changer de fontes dans les modes
mathématiques. Par défaut tout symbole ou suite de caractères (autre qu’une fonction) est produit en italique dans le document ﬁnal. Or dans certains cas, il est utile
de pouvoir forcer le style de fonte. Voici comment réaliser un tel exploit :6

Puisqu’il y a trois colonnes.

(3.3)\begin{equation}\begin{split}(a+b)^2 & = (a+b)(a+b)\\& = a^2+b^2+2ab\end{split}\end{equation}

3.8(a + b)2 = (a + b)(a + b)
3.23

(a + b)2 = (a + b)(a + b)
3.23

\begin{equation}\begin{split}(a+b)^2 & = (a+b)(a+b)\\& = a^2+b^2+2ab\end{split}\end{equation}

3.8

47

= a2 + b2 + 2ab

Changer le style en mode mathématique

3.8.1 Fontes
LATEX fournit plusieurs commandes permettant de changer de fontes dans les modes
mathématiques. Par défaut tout symbole ou suite de caractères (autre qu’une fonction) est produit en italique dans le document ﬁnal. Or dans certains cas, il est utile
de pouvoir forcer le style de fonte. Voici comment réaliser un tel exploit :6

Puisqu’il y a trois colonnes.

(3.2)

(3.3)

Mathématiques

48
Soit $\mathit{A\in\Phi}$
Soit $\mathrm{A\in\Phi}$
Soit $\mathbf{A\in\Phi}$
Soit $\mathsf{A\in\Phi}$
Soit $\mathtt{A\in\Phi}$
Soit $\mathcal{A}\in\Phi$Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ

Soit $\mathit{A\in\Phi}$
Soit $\mathrm{A\in\Phi}$
Soit $\mathbf{A\in\Phi}$
Soit $\mathsf{A\in\Phi}$
Soit $\mathtt{A\in\Phi}$
Soit $\mathcal{A}\in\Phi$

La commande \mathcal doit prendre exclusivement des lettres majuscules latinescomme argument. Dans le cas contraire, les résultats seront farfelus. Par exemple,
la séquence :Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ
Soit A ∈ Φ

La commande \mathcal doit prendre exclusivement des lettres majuscules latinescomme argument. Dans le cas contraire, les résultats seront farfelus. Par exemple,
la séquence :\mathcal{abcd\Gamma}\mathcal{abcd\Gamma}

donne ⊣⌊⌋⌈−.

donne ⊣⌊⌋⌈−.

3.8.2 Taille des symboles

3.8.2 Taille des symboles

LATEX distingue quatre styles d’écriture des formules. Ces modes sont utilisés suivant la « situation » dans laquelle se trouve LATEX lorsqu’il produit une partie d’une
formule :3

LATEX distingue quatre styles d’écriture des formules. Ces modes sont utilisés suivant la « situation » dans laquelle se trouve LATEX lorsqu’il produit une partie d’une
formule :texte pour une formule insérée dans le texte courant ;texte pour une formule insérée dans le texte courant ;equation pour une formule sous forme d’équation ;equation pour une formule sous forme d’équation ;indice pour l’écriture des indices ;indice pour l’écriture des indices ;sous-indice pour les indices d’indicessous-indice pour les indices d’indiceschacun de ces modes peut être enclenché explicitement par l’utilisateur grâce auxdéclarations suivantes :chacun de ces modes peut être enclenché explicitement par l’utilisateur grâce auxdéclarations suivantes :• \textstyle pour le mode texte ;• \textstyle pour le mode texte ;• \displaystyle pour le mode équation ;• \displaystyle pour le mode équation ;• \scriptstyle pour le mode indice ;• \scriptstyle pour le mode indice ;• \scriptscriptstyle pour le mode indice d’indice• \scriptscriptstyle pour le mode indice d’indicedeux produits : $\prod_{1}^{n}f_i$
et $\displaystyle\prod_{1}^{n}f_i$
et inversement :\[ \prod_{1}^{n}f_i\mbox{ et }\textstyle\prod_{1}^{n}f_i \]deux produits :et inversement :

Qn

n
Y
1

1 fi et

fi et

n
Y

fi

1

Qn

1 fi

3.8.3 Créer de nouveaux opérateurs
Imaginez que vous ayez besoin de créer un opérateur spécial nommé « burps ». Il
suﬃra de procéder comme suit :Voici deux exemples illustrant comment forcer le mode texte en mode équation
et inversement :deux produits : $\prod_{1}^{n}f_i$
et $\displaystyle\prod_{1}^{n}f_i$
et inversement :\[ \prod_{1}^{n}f_i\mbox{ et }\textstyle\prod_{1}^{n}f_i \]deux produits :et inversement :3.24

Voici deux exemples illustrant comment forcer le mode texte en mode équation
et inversement :

3.24

3

Mathématiques

48

Qn

n
Y
1

1 fi et

fi et

n
Y

fi

1

Qn

1 fi

3.8.3 Créer de nouveaux opérateurs
Imaginez que vous ayez besoin de créer un opérateur spécial nommé « burps ». Il
suﬃra de procéder comme suit :$\theta = \arcsin x$\renewcommand{\arcsin}{%\mathop{\textrm{Arcsin}}\nolimits}$\theta = \arcsin x$

3.26

Un autre exemple, pour franciser la fonction « arcsinus » (produisant par défault
arcsin), on pourra écrire :\DeclareMathOperator*{\vlunch}{vlunch}\DeclareMathOperator{\zirgl}{Zirgl}

x = vlunch f (θ)
3.27\[x=\vlunch_i f(\theta)\]où $\theta = \zirgl y$ioù θ = Zirgl yConclusion
Ce chapitre présente les fonctions de base pour produire des formules. Ces commandes suﬃsent pour la plupart des documents scientiﬁques. Si vous êtes amenés à rédiger des documents truﬀés de formules complexes, il est possible que
les seules macros de LATEX ne suﬃsent plus. C’est pourquoi la célèbre American
Mathematical Society a conçu pour vous un package nommé AMSTEX (mise enroute : \usepackage{amsmath}) capable de générer des formules particulièrement« tordues. »x = burpsi f (i)Un autre exemple, pour franciser la fonction « arcsinus » (produisant par défault
arcsin), on pourra écrire :$\theta = \arcsin x$\renewcommand{\arcsin}{%\mathop{\textrm{Arcsin}}\nolimits}$\theta = \arcsin x$

θ = arcsin x θ = Arcsin x

La commande \nolimits indique que l’opérateur concerné ne fera pas usage d’arguments en indice ou exposant comme le font les opérateurs \lim, \int, etc. En outre
les deux exemples précédents utilisent les commandes \newcommand et \renewcommand
dont il est question au paragraphe 4.5 page 67.
Enﬁn une autre voie possible si vous avez pris soin de charger le package amsmath
est de déclarer dans le préambule :3.25\newcommand{\burps}{%\mathop{\textrm{burps}}}$x=\burps_i f(i)$x = burpsi f (i)

49

3

3.26

3.25

\newcommand{\burps}{%\mathop{\textrm{burps}}}$x=\burps_i f(i)$3.8 Changer le style en mode mathématique49

θ = arcsin x θ = Arcsin x

La commande \nolimits indique que l’opérateur concerné ne fera pas usage d’arguments en indice ou exposant comme le font les opérateurs \lim, \int, etc. En outre
les deux exemples précédents utilisent les commandes \newcommand et \renewcommand
dont il est question au paragraphe 4.5 page 67.
Enﬁn une autre voie possible si vous avez pris soin de charger le package amsmath
est de déclarer dans le préambule :\DeclareMathOperator*{\vlunch}{vlunch}\DeclareMathOperator{\zirgl}{Zirgl}\[x=\vlunch_i f(\theta)\]où $\theta = \zirgl y$x = vlunch f (θ)
3.27

3.8 Changer le style en mode mathématiqueioù θ = Zirgl yConclusion
Ce chapitre présente les fonctions de base pour produire des formules. Ces commandes suﬃsent pour la plupart des documents scientiﬁques. Si vous êtes amenés à rédiger des documents truﬀés de formules complexes, il est possible que
les seules macros de LATEX ne suﬃsent plus. C’est pourquoi la célèbre American
Mathematical Society a conçu pour vous un package nommé AMSTEX (mise enroute : \usepackage{amsmath}) capable de générer des formules particulièrement« tordues. »

3

4

4

Un pas vers la sorcellerie
Sommaire

Sommaire

4.1

Compteurs

4.1

Compteurs

4.2

Longueurs

4.2

Longueurs

4.3

Espaces

4.3

Espaces

4.4Boîtes4.4Boîtes

4.5

Définitions

4.5

Définitions

4.6

Mais encore ?

4.6

Mais encore ?

Et lorsque l’Agneau ouvrit le septième sceau
il se fit un silence dans le ciel,
environ une demi-heure...
L’Apocalypse Ap 8 1.

Et lorsque l’Agneau ouvrit le septième sceau
il se fit un silence dans le ciel,
environ une demi-heure...

4

L’Apocalypse Ap 8 1.

vant de continuer l’exploration de ce système monstrueux et magniﬁquevant de continuer l’exploration de ce système monstrueux et magniﬁque

A qu’est LTEX, il est nécessaire de faire une pause et de prendre connaissancede quelques concepts importants. Il nous semble en eﬀet fondamental d’assimiler

A qu’est LTEX, il est nécessaire de faire une pause et de prendre connaissancede quelques concepts importants. Il nous semble en eﬀet fondamental d’assimiler

ces notions pour pouvoir jouer les « Hercule Poirot » dans les nombreux ﬁchiers qui
forment le système. Nous présenterons dans ce chapitre les compteurs, les longueurs,les espaces et les boîtes. Ces quatre notions vous seront utiles pour utiliser LATEX
autrement qu’en acceptant docilement ce qu’il vous propose.

ces notions pour pouvoir jouer les « Hercule Poirot » dans les nombreux ﬁchiers qui
forment le système. Nous présenterons dans ce chapitre les compteurs, les longueurs,les espaces et les boîtes. Ces quatre notions vous seront utiles pour utiliser LATEX
autrement qu’en acceptant docilement ce qu’il vous propose.

Ce chapitre traite de concepts assez subtils à saisir1 ; nous vous conseillons donc
vivement d’expérimenter car les outils présentés ici sont ceux qui offrent le plus desatisfaction mais qui entraînent aussi les plus grandes pertes de cheveux (essentiellement
par arrachage).

Ce chapitre traite de concepts assez subtils à saisir1 ; nous vous conseillons donc
vivement d’expérimenter car les outils présentés ici sont ceux qui offrent le plus desatisfaction mais qui entraînent aussi les plus grandes pertes de cheveux (essentiellement
par arrachage).

A

4.1

Un pas vers la sorcellerie

Compteurs

4.1

Toute partie d’un document faisant l’objet d’une numérotation est gérée par uncompteur. Ces compteurs peuvent être incrémentés ou décrémentés, remis à zéro,
etc. On peut aussi en créer pour un usage personnel.

4.1.1 Compteurs disponibles

Compteurs
Toute partie d’un document faisant l’objet d’une numérotation est gérée par uncompteur. Ces compteurs peuvent être incrémentés ou décrémentés, remis à zéro,
etc. On peut aussi en créer pour un usage personnel.

4.1.1 Compteurs disponibles

Les compteurs sont principalement liés aux titres, aux numéros de pages, aux environnements ﬂottants (environnements figure et table), aux équations (environnement equation), aux notes de bas de page et aux items d’énumération (environnement enumerate).
1

A

L’auteur n’est lui-même pas sûr d’avoir tout compris...

51

Les compteurs sont principalement liés aux titres, aux numéros de pages, aux environnements ﬂottants (environnements figure et table), aux équations (environnement equation), aux notes de bas de page et aux items d’énumération (environnement enumerate).
1

L’auteur n’est lui-même pas sûr d’avoir tout compris...

51

4

Un pas vers la sorcellerie

52

Un pas vers la sorcellerie

52

Table 4.1: Les compteurs de LATEX
part
chapter
sectionsubsection
subsubsection

paragraph
subparagraphpage
equation

figuretable
footnote
mpfootnote

Table 4.1: Les compteurs de LATEX
enumi
enumiienumiii
enumiv

part
chapter
sectionsubsection
subsubsection

Le tableau 4.1 vous donne le nom des principaux compteurs de LATEX. Vous remarquerez qu’ils portent généralement le nom des objets auxquels ils sont associés.
Les compteurs enumi, ..., enumiv sont associés aux items de niveaux 1 à 4 de l’environnement enumerate. Le compteur mpfootnote est le compteur de note de basde page de l’environnement minipage dont il est question au paragraphe 4.4.3 .

4figuretable
footnote
mpfootnote

4.1.2 Manipulation

4

Nous vous donnons, dans les paragraphes qui suivent, les outils de base pour manipuler les compteurs. Il est important de noter que les compteurs sont des variables
globales. Ainsi les trois commandes décrites plus bas ont une portée globale. Il estégalement utile de noter que ces variables sont des entiers.

Création

Création

On peut créer un nouveau compteur grâce à la commande :On peut créer un nouveau compteur grâce à la commande :\newcounter{hcpteuri}[hcpt_maitrei]

enumi
enumiienumiii
enumiv

Le tableau 4.1 vous donne le nom des principaux compteurs de LATEX. Vous remarquerez qu’ils portent généralement le nom des objets auxquels ils sont associés.
Les compteurs enumi, ..., enumiv sont associés aux items de niveaux 1 à 4 de l’environnement enumerate. Le compteur mpfootnote est le compteur de note de basde page de l’environnement minipage dont il est question au paragraphe 4.4.3 .

4.1.2 Manipulation
Nous vous donnons, dans les paragraphes qui suivent, les outils de base pour manipuler les compteurs. Il est important de noter que les compteurs sont des variables
globales. Ainsi les trois commandes décrites plus bas ont une portée globale. Il estégalement utile de noter que ces variables sont des entiers.

paragraph
subparagraphpage
equation\newcounter{hcpteuri}[hcpt_maitrei]qui crée un nouveau compteur hcpteuri. Si l’argument optionnel hcpt_maitrei est
présent, le compteur hcpteuri est remis à zéro à chaque fois que le compteur maître
hcpt_maitrei est incrémenté.

qui crée un nouveau compteur hcpteuri. Si l’argument optionnel hcpt_maitrei est
présent, le compteur hcpteuri est remis à zéro à chaque fois que le compteur maître
hcpt_maitrei est incrémenté.

Affectation

Affectation

On aﬀecte une valeur à un compteur de la manière suivante :On aﬀecte une valeur à un compteur de la manière suivante :\setcounter{hcompteuri}{hvaleuri}\setcounter{hcompteuri}{hvaleuri}

où hcompteuri est le compteur que l’on veut modiﬁer, et hvaleuri la valeur que l’onveut lui aﬀecter.

où hcompteuri est le compteur que l’on veut modiﬁer, et hvaleuri la valeur que l’onveut lui aﬀecter.

Incrémentation

Incrémentation

On peut incrémenter ou décrémenter un compteur grâce à la commande :On peut incrémenter ou décrémenter un compteur grâce à la commande :\addtocounter{hcompteuri}{hvaleuri}
où hvaleuri est un nombre positif (resp. négatif) pour réaliser une incrémentation(resp. décrémentation). Illustrons l’utilisation de cette commande en entrant la ligne
suivante dans notre document :\addtocounter{footnote}{357}\addtocounter{hcompteuri}{hvaleuri}
où hvaleuri est un nombre positif (resp. négatif) pour réaliser une incrémentation(resp. décrémentation). Illustrons l’utilisation de cette commande en entrant la ligne
suivante dans notre document :\addtocounter{footnote}{357}4.1 Compteurs

4.1 Compteurs

53

pour changer359 la numérotation des notes de bas de page. Pour que tout rentre dansl’ordre, avec les notes de bas de page suivantes, nous avons préféré entrer dans notresource, la commande :53

pour changer359 la numérotation des notes de bas de page. Pour que tout rentre dansl’ordre, avec les notes de bas de page suivantes, nous avons préféré entrer dans notresource, la commande :\addtocounter{footnote}{-357}\addtocounter{footnote}{-357}

et normalement3 , nous devrions avoir une numérotation correcte.

et normalement3 , nous devrions avoir une numérotation correcte.

4.1.3 Affichage

4.1.3 Affichage

Pour aﬃcher un compteur on utilise la commande :Pour aﬃcher un compteur on utilise la commande :\thehnom-du-compteuri\thehnom-du-compteuri

En fait, toute commande ou environnement qui donne lieu à l’aﬃchage d’un compteur fait appel à ce type de commande. Ainsi, on a par exemple :En fait, toute commande ou environnement qui donne lieu à l’aﬃchage d’un compteur fait appel à ce type de commande. Ainsi, on a par exemple :• \thepage produit : « 53 » et est appelée notamment à chaque saut de page,• \thepage produit : « 53 » et est appelée notamment à chaque saut de page,• \thefootnote produit : « 3 » et est appelée par \footnote,• \thefootnote produit : « 3 » et est appelée par \footnote,• \thesubsection produit : « 4.1.3 » et est appelée par \subsection,• \thesubsection produit : « 4.1.3 » et est appelée par \subsection,• ...
Les commandes de la famille \the sont généralement déﬁnies à partir des commandes de formatage suivantes :Les commandes de la famille \the sont généralement déﬁnies à partir des commandes de formatage suivantes :• \arabic{hcompteuri},• \roman{hcompteuri} et \Roman{hcompteuri},• \roman{hcompteuri} et \Roman{hcompteuri},• \alph{hcompteuri} et \Alph{hcompteuri}• \alph{hcompteuri} et \Alph{hcompteuri}
en voici quelques exemples :• \arabic{page} produit : « 53 » ;• \arabic{page} produit : « 53 » ;• \alph{footnote} produit : « c » et \Alph{section} produit : « A » ;• \alph{footnote} produit : « c » et \Alph{section} produit : « A » ;• \Roman{subsection} produit : « III » et \roman{page} produit : « liii » ;• \Roman{subsection} produit : « III » et \roman{page} produit : « liii » ;

• ...

• ...

Il est courant de redéﬁnir les commandes de la famille \the pour personnaliser
un document. Par exemple, dans la classe de document utilisée pour ce manuel, lacommande \thefigure est déﬁnie comme suit :\arabic{chapter}.\arabic{figure}ce qui produit dans les légendes des ﬁgures une numérotation formée par : 1) lenuméro du chapitre en chiﬀre arabe, 2) un point, et 3) le numéro de la ﬁgure en
chiﬀre arabe. Il est possible de redéﬁnir cet aﬃchage en déﬁnissant la commande\thefigure par exemple comme suit :(\Roman{chapter}):\arabic{section}.\arabic{figure}
3

• ...

• \arabic{hcompteuri},en voici quelques exemples :359

4Même si ce changement est un peu ridicule...
On croise les doigts !

Il est courant de redéﬁnir les commandes de la famille \the pour personnaliser
un document. Par exemple, dans la classe de document utilisée pour ce manuel, lacommande \thefigure est déﬁnie comme suit :\arabic{chapter}.\arabic{figure}ce qui produit dans les légendes des ﬁgures une numérotation formée par : 1) lenuméro du chapitre en chiﬀre arabe, 2) un point, et 3) le numéro de la ﬁgure en
chiﬀre arabe. Il est possible de redéﬁnir cet aﬃchage en déﬁnissant la commande\thefigure par exemple comme suit :(\Roman{chapter}):\arabic{section}.\arabic{figure}359
3Même si ce changement est un peu ridicule...
On croise les doigts !

4

Un pas vers la sorcellerie

54

Ce qui permet d’obtenir un numéro de ﬁgure —relativement immonde — dans les légendes quelquepeu diﬀérent du style prédéﬁni. Ici, on a donc redéﬁni
la commande \thefigure pour produire une numérotation formée par le numéro du chapitre entre parenthèses et en chiﬀres romains, suivi du numéro de Figure (IV):1.1: La lésection et du numéro de la ﬁgure en chiﬀre arabe, sé- gende
parés par un point. Le « Fig. » ainsi que le tiret qui
suit le numéro de la ﬁgure sont quant à eux déﬁnis au niveau de la commande\caption...

4.2

Ce qui permet d’obtenir un numéro de ﬁgure —relativement immonde — dans les légendes quelquepeu diﬀérent du style prédéﬁni. Ici, on a donc redéﬁni
la commande \thefigure pour produire une numérotation formée par le numéro du chapitre entre parenthèses et en chiﬀres romains, suivi du numéro de Figure (IV):1.1: La lésection et du numéro de la ﬁgure en chiﬀre arabe, sé- gende
parés par un point. Le « Fig. » ainsi que le tiret qui
suit le numéro de la ﬁgure sont quant à eux déﬁnis au niveau de la commande\caption...

Longueurs

4.2

Si les compteurs sont dédiés à la numérotation des objets d’un document, les longueurs déﬁnissent l’encombrement d’une entité. Il s’agit en quelque sorte, d’un typede donnée de LATEX destiné à exprimer les dimensions d’un objet.

Longueurs
Si les compteurs sont dédiés à la numérotation des objets d’un document, les longueurs déﬁnissent l’encombrement d’une entité. Il s’agit en quelque sorte, d’un typede donnée de LATEX destiné à exprimer les dimensions d’un objet.

4.2.1 Unités

4

Un pas vers la sorcellerie54

4.2.1 Unités

Toutes les dimensions doivent avoir une unité ; une dimension de type rigide a laforme suivante :44Toutes les dimensions doivent avoir une unité ; une dimension de type rigide 4 a laforme suivante :hnombreihunitéi

hnombreihunitéioù hnombrei est un nombre positif ou négatif avec éventuellement une partie décimale, et hunitéi une unité de mesure reconnue par LATEX. Voici une liste non
exhaustive des unités légales :où hnombrei est un nombre positif ou négatif avec éventuellement une partie décimale, et hunitéi une unité de mesure reconnue par LATEX. Voici une liste non
exhaustive des unités légales :cm pour centimètre ;cm pour centimètre ;mm pour millimètre ;mm pour millimètre ;in pour les allerginch au système métrique (environ 2.54cm) ;in pour les allerginch au système métrique (environ 2.54cm) ;1
inch ;
pt pour point : couramment utilisé en typographie : 72.27

1inch ;
pt pour point : couramment utilisé en typographie : 72.27

em : la largeur de la lettre ‘M’ de la fonte courante ;em : la largeur de la lettre ‘M’ de la fonte courante ;ex : la hauteur de la lettre ‘x’ de la fonte courante

ex : la hauteur de la lettre ‘x’ de la fonte courante

Notez que les unités em (resp. ex) sont généralement utilisées pour des dimensions
horizontales (resp. verticales) et permettent de manipuler des dimensions dépendantes de la taille de la fonte courante. Voici quelques exemples de dimensions :Notez que les unités em (resp. ex) sont généralement utilisées pour des dimensions
horizontales (resp. verticales) et permettent de manipuler des dimensions dépendantes de la taille de la fonte courante. Voici quelques exemples de dimensions :

1cm
1in
3mm
2em
10pt
4

:
:
:
:
:

On verra plus loin qu’il existe des dimensions élastiques.

1cm
1in
3mm
2em
10pt
4

:
:
:
:
:

On verra plus loin qu’il existe des dimensions élastiques.

4.2 Longueurs

4.2 Longueurs

55

4.2.2 Quelques longueurs de LATEX

55

4.2.2 Quelques longueurs de LATEXIl existe dans LATEX et dans chaque extension des longueurs prédéﬁnies. Ces longueurs déterminent en général, les dimensions de certaines parties du document.
Ainsi :Il existe dans LATEX et dans chaque extension des longueurs prédéﬁnies. Ces longueurs déterminent en général, les dimensions de certaines parties du document.
Ainsi :

• \parindent est la dimension de l’indentation en début de paragraphe. Cette
dimension est prédéﬁnie à 15pt ;• \parindent est la dimension de l’indentation en début de paragraphe. Cette
dimension est prédéﬁnie à 15pt ;• \textwidth et \textheight déﬁnissent la largeur (resp. la hauteur) du texte ;• \textwidth et \textheight déﬁnissent la largeur (resp. la hauteur) du texte ;• \baselineskip représente la distance entre la base de la ligne et la base de laligne suivante (10pt dans ce document) ;• \baselineskip représente la distance entre la base de la ligne et la base de laligne suivante (10pt dans ce document) ;• \parskip la distance séparant deux paragraphes ; cette distance est initialiséeà 0pt plus 1pt5 ;• \parskip la distance séparant deux paragraphes ; cette distance est initialiséeà 0pt plus 1pt5 ;

• ...

• ...

Il est important de comprendre qu’il est possible d’exprimer une dimension en
fonction d’une de ces dimensions « internes ». Ainsi :0.5\textwidth
représente la moitié de largeur de la page, et :3\parindentéquivaut à trois fois l’indentation des paragraphes. Notez aussi que l’on peut écrire-\baselineskip pour : -1\baselineskip

4.2.3 Manipulation des longueurs

Il est important de comprendre qu’il est possible d’exprimer une dimension en
fonction d’une de ces dimensions « internes ». Ainsi :4

0.5\textwidth
représente la moitié de largeur de la page, et :3\parindentéquivaut à trois fois l’indentation des paragraphes. Notez aussi que l’on peut écrire-\baselineskip pour : -1\baselineskip

4.2.3 Manipulation des longueurs

Comme pour les compteurs, il existe quelques commandes permettant de manipuler
les dimensions.

Comme pour les compteurs, il existe quelques commandes permettant de manipuler
les dimensions.

Création

Création

La commande suivante crée une nouvelle longueur :La commande suivante crée une nouvelle longueur :\newlength{hdimi}\newlength{hdimi}où hdimi est le nom de la nouvelle dimension initialisée à 0pt (cf. exemple page 57).

où hdimi est le nom de la nouvelle dimension initialisée à 0pt (cf. exemple page 57).

Attention, quel que soit l’endroit où intervient la commande \newlength, la longueur définie est toujours globale. De plus, déclarer deux fois la même longueur
provoque une erreur. Par contre, la modification d’une longueur est locale au groupe({...}) où elle survient.

Attention, quel que soit l’endroit où intervient la commande \newlength, la longueur définie est toujours globale. De plus, déclarer deux fois la même longueur
provoque une erreur. Par contre, la modification d’une longueur est locale au groupe({...}) où elle survient.

Affectation

Affectation

On peut aﬀecter une valeur à une longueur avec la commande :On peut aﬀecter une valeur à une longueur avec la commande :\setlength{hdimi}{hvali}qui aﬀecte la valeur hvali à la longueur hdimi.
5

Cf. les dimensions élastiques pour avoir la signification du plus.

\setlength{hdimi}{hvali}qui aﬀecte la valeur hvali à la longueur hdimi.
5

Cf. les dimensions élastiques pour avoir la signification du plus.

4

Un pas vers la sorcellerie

56
Incrémentation

Incrémentation

On incrémente une longueur comme suit :On incrémente une longueur comme suit :\addtolength{hdimi}{hvali}\addtolength{hdimi}{hvali}qui a pour eﬀet d’augmenter la longueur hdimi de la valeur hvali.
Alors que vous lisez fébrilement ce paragraphe, nous nous sommes permis
d’augmenter la longueur \parindent de 30 points avec :qui a pour eﬀet d’augmenter la longueur hdimi de la valeur hvali.
Alors que vous lisez fébrilement ce paragraphe, nous nous sommes permis
d’augmenter la longueur \parindent de 30 points avec :\addtolength{\parindent}{30pt} Alors que vous
lisez fébrilement ce paragraphe...

\addtolength{\parindent}{30pt} Alors que vous
lisez fébrilement ce paragraphe...

pour illustrer l’utilisation de l’incrémentation des longueurs. Après ce paragraphe,
on a écrit :pour illustrer l’utilisation de l’incrémentation des longueurs. Après ce paragraphe,
on a écrit :\addtolength{\parindent}{-30pt}

4◮ § 2.10 p. 33

Un pas vers la sorcellerie56\addtolength{\parindent}{-30pt}

pour que tout rentre dans l’ordre.

pour que tout rentre dans l’ordre.

Obtenir les dimensions d’un objet

Obtenir les dimensions d’un objet

Comme il en a été vaguement question Nprécédemment◭, au niveau de TEX, lesdiﬀérents objets qui composent le document sont assemblés dans des boîtes. Cesboîtes sont positionnées les unes par rapport aux autres en alignant leur point deréférence. Ces points alignés forment une ligne imaginaire confondue avec la base dela ligne. Toute boîte est caractérisée par trois dimensions :4◮ § 2.10 p. 33

Comme il en a été vaguement question Nprécédemment◭, au niveau de TEX, lesdiﬀérents objets qui composent le document sont assemblés dans des boîtes. Cesboîtes sont positionnées les unes par rapport aux autres en alignant leur point deréférence. Ces points alignés forment une ligne imaginaire confondue avec la base dela ligne. Toute boîte est caractérisée par trois dimensions :• sa largeur ;• sa largeur ;• sa hauteur : du point de référence au haut de la boîte ;• sa hauteur : du point de référence au haut de la boîte ;• sa profondeur : du point de référence jusqu’au bas de la boîte.

• sa profondeur : du point de référence jusqu’au bas de la boîte.

Voici par exemple comment sont assemblées les boîtes du mot « Ingénierie » :Voici par exemple comment sont assemblées les boîtes du mot « Ingénierie » :Ing é ni e r i e

◦ ◦

◦

◦

◦

◦ ◦

◦ ◦ ◦

Ing é ni e r i e

◦ ◦

◦

◦

◦

◦ ◦

◦ ◦ ◦

les symboles « ◦ » représentent les points de référence. On voit ici que toutes lesboîtes ont une profondeur nulle sauf celle de la lettre ‘g’.
Mais fermons la parenthèse concernant les boîtes !

les symboles « ◦ » représentent les points de référence. On voit ici que toutes lesboîtes ont une profondeur nulle sauf celle de la lettre ‘g’.
Mais fermons la parenthèse concernant les boîtes !

Il est donc possible d’extraire les caractéristiques d’un objet (une lettre, un mot,une boîte, etc.) à l’aide des commandes suivantes :Il est donc possible d’extraire les caractéristiques d’un objet (une lettre, un mot,une boîte, etc.) à l’aide des commandes suivantes :\settowidth{hdimi}{hobji}\settoheight{hdimi}{hobji}\settodepth{hdimi}{hobji}
trois commandes qui aﬀectent à la dimension hdimi respectivement la largeur, lahauteur et la profondeur de l’objet hobji. Par exemple :\settowidth{hdimi}{hobji}\settoheight{hdimi}{hobji}\settodepth{hdimi}{hobji}
trois commandes qui aﬀectent à la dimension hdimi respectivement la largeur, lahauteur et la profondeur de l’objet hobji. Par exemple :4.2 Longueurs

57\newlength{\malongueur}\settowidth{\malongueur}{Machin chose}\begin{itemize}\item Machin chose bidule\item \hspace{\malongueur} truc\end{itemize}• Machin chose bidule
4.1\newlength{\malongueur}\settowidth{\malongueur}{Machin chose}\begin{itemize}\item Machin chose bidule\item \hspace{\malongueur} truc\end{itemize}

•

truc

La longueur \malongueur contient alors la largeur de « Machin chose » et est utilisé
pour insérer un blanc (voir le paragraphe sur les ◮espacesN).

57§ 4.3 p. 58 ◭4.2.4 Longueurs élastiques• Machin chose bidule
4.1

4.2 Longueurs

•

truc

La longueur \malongueur contient alors la largeur de « Machin chose » et est utilisé
pour insérer un blanc (voir le paragraphe sur les ◮espacesN).

4.2.4 Longueurs élastiques

Les dimensions présentées jusqu’ici sont des dimensions rigides , il existe cependant des longueurs élastiques ou ressort. Au niveau de TEX, un grand nombre dedimensions sont déﬁnies comme suit :Les dimensions présentées jusqu’ici sont des dimensions rigides 6 , il existe cependant des longueurs élastiques ou ressort. Au niveau de TEX, un grand nombre dedimensions sont déﬁnies comme suit :6

hvali plus hp_vali minus hm_vali

hvali plus hp_vali minus hm_vali

cette syntaxe permet de déﬁnir une longueur ayant la dimension hvali, mais pouvant
selon les circonstances s’agrandir ou se rétracter. Et ainsi, si on appelle hdimi ladimension créée, on a :4cette syntaxe permet de déﬁnir une longueur ayant la dimension hvali, mais pouvant
selon les circonstances s’agrandir ou se rétracter. Et ainsi, si on appelle hdimi ladimension créée, on a :val − m_val 6 dim 6 val + p_val

val − m_val 6 dim 6 val + p_val

Par exemple, la longueur \parskip qui sépare deux paragraphes consécutifs, est
ﬁxée à :Par exemple, la longueur \parskip qui sépare deux paragraphes consécutifs, est
ﬁxée à :0pt plus 1pt

ce qui signiﬁe qu’au cas où la page est un peu lâche, LATEX insérera entre les paragraphes un blanc vertical de 1 point. Ce type de dimension prend tout son intérêt
pour mettre en place un réglage très ﬁn des espaces verticales ou horizontales. Enﬁn,
les utilisateurs de LATEX auront la chance inouïe de pouvoir manipuler une autre famille de longueurs élastiques tout aussi intéressante. Cette famille possède les deuxparticularités suivantes :1. une longueur nulle ;1. une longueur nulle ;2. la capacité de s’étirer indéfiniment avec une certaine force.

2. la capacité de s’étirer indéfiniment avec une certaine force.

LATEX 2ε dispose d’une commande permettant de spéciﬁer une longueur élastique en
précisant son degré d’élasticité :LATEX 2ε dispose d’une commande permettant de spéciﬁer une longueur élastique en
précisant son degré d’élasticité :\stretch{hnbrei}\stretch{hnbrei}

Sauf \parskip.

zéro

tiers

où hnbrei est la force du ressort. Ce nombre peut être signé et avoir une partie
décimale. Voici un exemple :unzéro\hspace{\stretch{1}}%tiers\hspace{\stretch{2}}un
6

Sauf \parskip.

4.2

4.2

où hnbrei est la force du ressort. Ce nombre peut être signé et avoir une partie
décimale. Voici un exemple :640pt plus 1pt

ce qui signiﬁe qu’au cas où la page est un peu lâche, LATEX insérera entre les paragraphes un blanc vertical de 1 point. Ce type de dimension prend tout son intérêt
pour mettre en place un réglage très ﬁn des espaces verticales ou horizontales. Enﬁn,
les utilisateurs de LATEX auront la chance inouïe de pouvoir manipuler une autre famille de longueurs élastiques tout aussi intéressante. Cette famille possède les deuxparticularités suivantes :zéro\hspace{\stretch{1}}%tiers\hspace{\stretch{2}}un§ 4.3 p. 58 ◭

zéro

tiers

un

Un pas vers la sorcellerie

58

Ce code LATEX introduit des espaces7 de longueurs élastiques entre les mots « zéro
tiers un ». Le deuxième ressort a une raideur deux fois plus importante que le premier. L’espacement est donc double. Vous noterez aussi que ces ressorts ont une élasticité relative mais infinie ; c’est pourquoi les mots « zéro » et « un » sont « poussés »contre les marges. Enﬁn, sachez que \fill est un raccourci agréable de \stretch{1}.

Ce code LATEX introduit des espaces7 de longueurs élastiques entre les mots « zéro
tiers un ». Le deuxième ressort a une raideur deux fois plus importante que le premier. L’espacement est donc double. Vous noterez aussi que ces ressorts ont une élasticité relative mais infinie ; c’est pourquoi les mots « zéro » et « un » sont « poussés »contre les marges. Enﬁn, sachez que \fill est un raccourci agréable de \stretch{1}.

4.2.5 Affichage

4.2.5 Affichage

Il est parfois utile d’aﬃcher la valeur d’une longueur. Pour ce faire on peut avoir
recours à la commande \showthe qui interrompt la compilation pour aﬃcher lavaleur de la longueur passée en paramètre. Ainsi :Il est parfois utile d’aﬃcher la valeur d’une longueur. Pour ce faire on peut avoir
recours à la commande \showthe qui interrompt la compilation pour aﬃcher lavaleur de la longueur passée en paramètre. Ainsi :\showthe\linewidth\showthe\linewidthaﬃcher la valeur de la longueur \linewidth en interrompant la Ncompilation◭. On
aura sur le terminal quelque chose du genre :◮ § 1.6 p. 13[ ... ]← Le laïus initial
Document Class: book 2001/04/21 v1.4 Standard LaTeX document class(/usr/share/texmf/tex/latex/base/bk12.clo)) (./test.aux)> 17.62482pt.
← la valeur de la longueurl.10 \showthe\parindent← la longueur à afficher

4aﬃcher la valeur de la longueur \linewidth en interrompant la Ncompilation◭. On
aura sur le terminal quelque chose du genre :◮ § 1.6 p. 13[ ... ]← Le laïus initial
Document Class: book 2001/04/21 v1.4 Standard LaTeX document class(/usr/share/texmf/tex/latex/base/bk12.clo)) (./test.aux)> 17.62482pt.
← la valeur de la longueurl.10 \showthe\parindent← la longueur à afficher

4

?

4.3

Un pas vers la sorcellerie

58?

Lorsque la compilation est lancée dans un terminal de commande, une pression sur
la touche <Entrée> fait reprendre la compilation.

Lorsque la compilation est lancée dans un terminal de commande, une pression sur
la touche <Entrée> fait reprendre la compilation.

Comme indiqué à la page 13, votre environnement de développement ne vous
permet peut être pas directement d’avoir accès aux messages de LATEX. À vous dechercher où se trouvent ces informations...

Comme indiqué à la page 13, votre environnement de développement ne vous
permet peut être pas directement d’avoir accès aux messages de LATEX. À vous dechercher où se trouvent ces informations...

Espaces

4.3

On appelle espaces les blancs que l’on insère à divers endroits dans un document.
Il existe des commandes permettant d’insérer des blancs de longueur prédéﬁnie ou
choisie par l’utilisateur. Il s’agit bien sûr de longueur au sens de LATEX.

4.3.1 Commandes de base
Pour insérer une espace entre les objets, on dispose de commandes de la forme
suivante :8\hdirispace{hdimi}où hdimi est une longueur rigide ou élastique, et hdiri vaut :Espaces
On appelle espaces les blancs que l’on insère à divers endroits dans un document.
Il existe des commandes permettant d’insérer des blancs de longueur prédéﬁnie ou
choisie par l’utilisateur. Il s’agit bien sûr de longueur au sens de LATEX.

4.3.1 Commandes de base
Pour insérer une espace8 entre les objets, on dispose de commandes de la forme
suivante :\hdirispace{hdimi}où hdimi est une longueur rigide ou élastique, et hdiri vaut :• v pour une espace verticale ;C’est la commande \hspace qui produit une espace horizontale de longueur définie par sonargument.
8
Nous utilisons ici le genre féminin du mot espace qui désigne alors les petites tiges métalliques
utilisées autrefois en imprimerie pour séparer les mots et les lettres. Aujourd’hui, le genre féminin
est encore utilisé dans le monde de la typographie et de l’imprimerie.
7• v pour une espace verticale ;C’est la commande \hspace qui produit une espace horizontale de longueur définie par sonargument.
8
Nous utilisons ici le genre féminin du mot espace qui désigne alors les petites tiges métalliques
utilisées autrefois en imprimerie pour séparer les mots et les lettres. Aujourd’hui, le genre féminin
est encore utilisé dans le monde de la typographie et de l’imprimerie.
74.3 Espaces

4.3 Espaces

59

59• h pour une espace horizontale.

• h pour une espace horizontale.

Ainsi :

Ainsi :
un saut\hspace{1cm}de \texttt{1cm}de 1cm

\vspace{2\baselineskip}

4.3\vspace{2\baselineskip}

un saut

et deux lignes vierges.

et deux lignes vierges.

un saut

et deux lignes vierges.

et deux lignes vierges.

Dans certaines situations, TEX supprime les espaces. Il est alors nécessaire d’utiliser
la forme « étoilée » des commandes d’espacement, à savoir \hspace* et \vspace*.
Les situations en question sont :de 1cm4.3

un saut\hspace{1cm}de \texttt{1cm}Dans certaines situations, TEX supprime les espaces. Il est alors nécessaire d’utiliser
la forme « étoilée » des commandes d’espacement, à savoir \hspace* et \vspace*.
Les situations en question sont :• le début et la fin de page ;• le début et la fin de page ;• le début et la fin d’une ligne s’il ne s’agit pas de la première ou de la dernière ligne
du paragraphe.

• le début et la fin d’une ligne s’il ne s’agit pas de la première ou de la dernière ligne
du paragraphe.

4.3.2 Quelques espaces prédéfinies

4.3.2 Quelques espaces prédéfinies

On dispose de plusieurs commandes d’espacement, regroupées en deux catégories
selon le mode horizontal ou vertical.

4

On dispose de plusieurs commandes d’espacement, regroupées en deux catégories
selon le mode horizontal ou vertical.

Espaces horizontales

Espaces horizontales

Voici quelques espaces rigides :Voici quelques espaces rigides :\enspace :\quad:\qquad:soit 0.5\quadsoit 1em
soit 2\quad

et quelques espaces élastiques :et quelques espaces élastiques :\hfill: soit \hspace{\fill}\hrulefill : comme \hfill mais trace une ligne\dotfill: comme \hfill mais trace des points

4.4

Voici quelques exemples montrant l’utilisation des espaces horizontales. Toutd’abord, notez que les espaces entourant la commande \hspace ne sont pas ignorées :
zéro
zéro
zéro

un
un
un

zéro \hfill{} un\parzéro \hrulefill{} un\parzéro \dotfill{} un\parEt pour ﬁnir, la force relative des ressorts :zéro\hspace{1cm}un\parzéro \hspace{1cm}un\parzéro \hspace{1cm} un\par

zéro
zéro
zéro

un
un
un

Voici ensuite, les espaces élastiques de LATEX :4.5

Voici ensuite, les espaces élastiques de LATEX :Voici quelques exemples montrant l’utilisation des espaces horizontales. Toutd’abord, notez que les espaces entourant la commande \hspace ne sont pas ignorées :4.4\hfill: soit \hspace{\fill}\hrulefill : comme \hfill mais trace une ligne\dotfill: comme \hfill mais trace des pointszéro\hspace{1cm}un\parzéro \hspace{1cm}un\parzéro \hspace{1cm} un\parsoit 0.5\quadsoit 1em
soit 2\quad

zéro
un
un
zéro
zéro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . unzéro \hfill{} un\parzéro \hrulefill{} un\parzéro \dotfill{} un\parEt pour ﬁnir, la force relative des ressorts :4.5\enspace :\quad:\qquad
:

zéro
un
un
zéro
zéro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . un4Un pas vers la sorcellerie
zéro . . . . . . . . . . . . . . . demi
tiers
zéro

4.6

zéro \dotfill{} demi \hfill{} un\parzéro \hrulefill{} tiers\hspace{\stretch{2}} un\parUn pas vers la sorcellerie60
zéro \dotfill{} demi \hfill{} un\parzéro \hrulefill{} tiers\hspace{\stretch{2}} un\par

un
un

un
un

Vous aurez donc compris que les « ressorts » prédéﬁnis de LATEX (à savoir \hfill,\hrulefill, et \dotfill) ont une raideur de 1.

Vous aurez donc compris que les « ressorts » prédéﬁnis de LATEX (à savoir \hfill,\hrulefill, et \dotfill) ont une raideur de 1.

Espaces verticales

Espaces verticales

Voici trois grands classiques de la famille des espaces verticales :Voici trois grands classiques de la famille des espaces verticales :• \smallskip pour un petit saut vertical ;• \smallskip pour un petit saut vertical ;• \medskip pour un saut vertical moyen ;• \medskip pour un saut vertical moyen ;• \bigskip pour un grand saut vertical.

• \bigskip pour un grand saut vertical.

Ces espaces s’utilisent comme la commande \vspace, avec pour eﬀet :défaut :§ suivant...

4

petite :§ suivant...

moyenne :§ suivant...

Ces espaces s’utilisent comme la commande \vspace, avec pour eﬀet :grande :défaut :§ suivant...

4§ suivant...

petite :§ suivant...

moyenne :§ suivant...

grande :§ suivant...

Il existe une espace verticale élastique prédéﬁnie : \vfill équivalent à :Il existe une espace verticale élastique prédéﬁnie : \vfill équivalent à :\par\vspace{\fill}\par\vspace{\fill}c’est-à-dire, un saut de paragraphe, suivi d’une espace verticale de dimension \fill.
\hrulefill{}\vfillc’est-à-dire, un saut de paragraphe, suivi d’une espace verticale de dimension \fill.
\hrulefill{}

haut

haut

haut

haut
\vfillfragilefragile\hfill{}fragile\hfill{}\hfill{}fragile\hfill{}\vspace{\stretch{2}}\vspace{\stretch{2}}\hfill{}basbas\hrulefill{}\hfill{}basBoîtesLa dernière section de ce chapitre sera dédiée aux boîtes, et vous verrez que le titre
du présent chapitre sera amplement justiﬁé ! Comme nous l’avons aperçu précédemment, les boîtes sont des entités qui contiennent d’autres éléments (une boîte

bas\hrulefill{}

Il est important d’utiliser la commande \vspace entre deux paragraphes au risqued’avoir des résultats surprenants. Il vaut donc mieux prendre l’habitude d’insérer
un saut de paragraphe — une ligne vierge ou une commande \par — avant et/ou après\vspace.

4.4

zéro . . . . . . . . . . . . . . . demi
tiers
zéro

4.6

60

Il est important d’utiliser la commande \vspace entre deux paragraphes au risqued’avoir des résultats surprenants. Il vaut donc mieux prendre l’habitude d’insérer
un saut de paragraphe — une ligne vierge ou une commande \par — avant et/ou après\vspace.

4.4BoîtesLa dernière section de ce chapitre sera dédiée aux boîtes, et vous verrez que le titre
du présent chapitre sera amplement justiﬁé ! Comme nous l’avons aperçu précédemment, les boîtes sont des entités qui contiennent d’autres éléments (une boîte

4.4 Boîtes

4.4 Boîtes

61

pouvant en contenir une autre). Ces entités peuvent d’autre part être positionnées
selon la fantaisie9 de l’utilisateur.
Il existe deux principaux types de boîtes (au niveau de TEX c’est un peu plus
subtil) chacun d’eux ayant un comportement spéciﬁque. Nous qualiﬁerons ces deuxcatégories comme suit :61

pouvant en contenir une autre). Ces entités peuvent d’autre part être positionnées
selon la fantaisie9 de l’utilisateur.
Il existe deux principaux types de boîtes (au niveau de TEX c’est un peu plus
subtil) chacun d’eux ayant un comportement spéciﬁque. Nous qualiﬁerons ces deuxcatégories comme suit :• boîte simple• boîte simple• boîte paragraphe• boîte paragraphe

Nous verrons qu’une manipulation habile de ces boîtes permet de produire des mises
en page sophistiquées particulièrement utiles notamment lors de la conception detransparents.
Voici un premier exemple avec des boîtes simples qui, j’en suis sûr, vous a sauté
aux yeux, c’est le logo de TeX : TEX. Il s’agit en fait des trois lettres, T, E et X
« mises en boîte » et assemblées avec des décalages horizontaux et verticaux :Nous verrons qu’une manipulation habile de ces boîtes permet de produire des mises
en page sophistiquées particulièrement utiles notamment lors de la conception detransparents.
Voici un premier exemple avec des boîtes simples qui, j’en suis sûr, vous a sauté
aux yeux, c’est le logo de TeX : TEX. Il s’agit en fait des trois lettres, T, E et X
« mises en boîte » et assemblées avec des décalages horizontaux et verticaux :

TEX

TEX
t

Ceci est une boîte paragraphe de 4cm delarge. Une telle boîte
est capable de conte- le texte continue, et,nir à peu près tout cequ’on trouve dans undocument LATEX.

Voici une image en couleur, avec ses 3 composantes :Voici une image en couleur, avec ses 3 composantes :

RRRR
RRRR
GGGG
BBBB
RRRR
GGGG
BBBB
RRRR
GGGG
BBBB
GGGG
BBBB
9

Humm... ainsi qu’avec patience et bonne humeur...

re
na
ul

t

re
na
ul

re
na
ul

t

ici chaque mot est dans une boîte. Chaque boîte est ensuite placée par rapport aux
autres avec moult décalages et rotations. Pour en ﬁnir avec les exemples préliminaires, nous vous donnons ici deux exemples utilisant les boîtes paragraphes :p
u laf
th ne f !
un ém orme at u« b iq leoî ue max
bo da a+îte nsb=»c

Ceci est une boîte paragraphe de 4cm delarge. Une telle boîte
est capable de conte- le texte continue, et,nir à peu près tout cequ’on trouve dans undocument LATEX.

pu laf
th ne f !
un ém orme at u« b iq leoî ue max
bo da a+îte nsb=»c

ici chaque mot est dans une boîte. Chaque boîte est ensuite placée par rapport aux
autres avec moult décalages et rotations. Pour en ﬁnir avec les exemples préliminaires, nous vous donnons ici deux exemples utilisant les boîtes paragraphes :

t

t

re
na
ul

renaultt

et pour éviter les querelles culturelles :

ul
na
re

t

renaultulna
reet pour éviter les querelles culturelles :

ul
na
re

n ën
oë o
tr tr
ci ci

ci cit
tr ro
oë ë
n n

notez que la boîte du ‘E’ est décalée vers le bas et que les trois boîtes se superposent.
Un autre exemple :

t

4

ul
na
re

n ën
oë o
tr tr
ci ci

ci cit
tr ro
oë ë
n n

notez que la boîte du ‘E’ est décalée vers le bas et que les trois boîtes se superposent.
Un autre exemple :

RRRR
RRRR
GGGG
BBBB
RRRR
GGGG
BBBB
RRRR
GGGG
BBBB
GGGG
BBBB
9

Humm... ainsi qu’avec patience et bonne humeur...

4

Un pas vers la sorcellerie62

4.4.1 Boîtes simples

4.4.1 Boîtes simples

La première catégorie — les boîtes simples — se comporte comme des mots dans unparagraphe. Voici leurs caractéristiques :La première catégorie — les boîtes simples — se comporte comme des mots dans unparagraphe. Voici leurs caractéristiques :• on peut imposer sa largeur,• on peut imposer sa largeur,• sa hauteur est donnée par ce qu’elle contient,• sa hauteur est donnée par ce qu’elle contient,• Elle ne doit pas contenir de saut de paragraphe• Elle ne doit pas contenir de saut de paragraphe

Sans bordure La commande \makebox permet de construire une boîte simple.

Sans bordure La commande \makebox permet de construire une boîte simple.

\makebox[hlargi][hposi]{hcontenui}\makebox[hlargi][hposi]{hcontenui}

hop !

une boîte
rehop ! une autre

Les deux arguments hlargi et hposi sont optionnels et s’ils sont omis, la largeur dela boîte est celle du texte. Le cas échéant on saisit :4.9

Ouaaahhhquellefatigue !

Avec bordure On construit une boîte entourée par une bordure grâce à la commande\framebox qui suit la même syntaxe que \makebox :\framebox[hlargi][hposi]{htextei}

hop !

une boîte
rehop ! une autre

Les deux arguments hlargi et hposi sont optionnels et s’ils sont omis, la largeur dela boîte est celle du texte. Le cas échéant on saisit :au lieu de \makebox[][]{htextei}. On notera également que l’option s de la commande \makebox permet d’étirer le contenu pour qu’il fasse exactement la dimension
imposée :\makebox[5cm][s]{Ouaaahhh quelle fatigue !}Ouaaahhhquellefatigue !

Avec bordure On construit une boîte entourée par une bordure grâce à la commande\framebox qui suit la même syntaxe que \makebox :\framebox[hlargi][hposi]{htextei}

4.10

le raccourci \fbox{htextei} existe comme pour les boîtes sans bordure. Ce qui
donne :
bon \framebox[1.5cm][c]{alors} voilà\paret \framebox[2.8cm][r]{ah oui} d’accord\par\fbox{alors}etet\mbox{htextei}

au lieu de \makebox[][]{htextei}. On notera également que l’option s de la commande \makebox permet d’étirer le contenu pour qu’il fasse exactement la dimension
imposée :\makebox[5cm][s]{Ouaaahhh quelle fatigue !}4

4.9\mbox{htextei}

et \makebox[2cm][c]{hop !} une boîte\paret \makebox[3cm][r]{rehop !} une autre

4.8

et
et

où hlargi est la largeur désirée, hposi la position (c=centré, l=aligné à gauche ou r=à
droite) de hcontenui dans la boîte. Voici quelques exemples :bon alors voilà
et
ah oui d’accord
alors

Deux longueurs sont disponibles pour changer l’allure des \framebox :le raccourci \fbox{htextei} existe comme pour les boîtes sans bordure. Ce qui
donne :
bon \framebox[1.5cm][c]{alors} voilà\paret \framebox[2.8cm][r]{ah oui} d’accord\par\fbox{alors}

4.10

et \makebox[2cm][c]{hop !} une boîte\paret \makebox[3cm][r]{rehop !} une autre

4.8

où hlargi est la largeur désirée, hposi la position (c=centré, l=aligné à gauche ou r=à
droite) de hcontenui dans la boîte. Voici quelques exemples :4

Un pas vers la sorcellerie

62

bon alors voilà
et
ah oui d’accord
alors

Deux longueurs sont disponibles pour changer l’allure des \framebox :• \fboxsep la distance entre la bordure et le texte,• \fboxsep la distance entre la bordure et le texte,• \fboxrule l’épaisseur du trait.

• \fboxrule l’épaisseur du trait.

4.4 Boîtes

\setlength{\fboxrule}{5pt}rouge \framebox[2cm]{vert} bleu\par\setlength{\fboxrule}{0.4pt}\setlength{\fboxsep}{8pt}cyan \framebox[2cm]{magenta} jaune

4.11

63

rouge

vert

bleu

cyan

magentajaune

63\setlength{\fboxrule}{5pt}rouge \framebox[2cm]{vert} bleu\par\setlength{\fboxrule}{0.4pt}\setlength{\fboxsep}{8pt}cyan \framebox[2cm]{magenta} jaune

Un particularité des boîtes simples contrairement aux boîtes paragraphes que l’on
rencontrera un peu plus loin dans ce chapitre, est qu’elles n’effectuent pas de césure,

4.11

4.4 Boîtes

rouge

vert

bleu

cyan

magentajaune

Un particularité des boîtes simples contrairement aux boîtes paragraphes que l’on
rencontrera un peu plus loin dans ce chapitre, est qu’elles n’effectuent pas de césure,ainsi :

ainsi :=== \framebox[3cm]{Ça ne risque pas d’être coupé, ça...} ====== \framebox[3cm]{Ça ne risque pas d’être coupé, ça...} ===donnera :donnera :Ça===ne risque pas d’être coupé,
ça...
===

Ça===
ne risque pas d’être coupé,
ça...
===

On peut d’ailleurs exploiter cette fonctionnalité pour superposer du texte (cf. paragraphe
sur les boîtes de largeur nulle page suivante).

On peut d’ailleurs exploiter cette fonctionnalité pour superposer du texte (cf. paragraphe
sur les boîtes de largeur nulle page suivante).

44.4.2 Manipulation de boîtes simples

4

4.4.2 Manipulation de boîtes simples

On peut avec un peu d’habitude faire subir aux boîtes des déplacements dans toutes
les directions.

On peut avec un peu d’habitude faire subir aux boîtes des déplacements dans toutes
les directions.

Translation verticale

Translation verticale

La translation est permise grâce à la commande :La translation est permise grâce à la commande :\raisebox{htransi}[hprofi][hhauti]{htextei}\raisebox{htransi}[hprofi][hhauti]{htextei}

C’est haut

New York,

New York USA.

Les deux arguments optionnels hprofi et hhauti permettent de « faire croire » à LATEX
que la boîte résultant de la translation a une hauteur de hhauti et une profondeurde hprofi. L’exemple suivant illustre l’utilisation de la commande \raisebox avec
ses arguments optionnels.
\begin{flushleft}
ligne 1 : XXXXX\\
ligne 2 :XX\raisebox{0.8\baselineskip}{O}XX\\
ligne 3 : XXXXX\\
ligne 4 : XXXXX\\
ligne 5 :XX%\raisebox{0.8\baselineskip}[1ex][2ex]{O}XX\\
ligne 6 : XXXXX\\\end{flushleft}

ligne 1 : XXXXXO
ligne 2 : XX XX
ligne 3 : XXXXX
ligne 4 : XXXXXO
ligne 5 : XX XX
ligne 6 : XXXXX

où htransi est le déplacement que vous voulez inﬂiger à htextei. Par exemple :C’est haut \raisebox{8pt}{New York,}
New York \raisebox{-1ex}{USA.}

4.12

C’est haut \raisebox{8pt}{New York,}
New York \raisebox{-1ex}{USA.}4.12

où htransi est le déplacement que vous voulez inﬂiger à htextei. Par exemple :C’est haut

New York,

New York USA.

Les deux arguments optionnels hprofi et hhauti permettent de « faire croire » à LATEX
que la boîte résultant de la translation a une hauteur de hhauti et une profondeurde hprofi. L’exemple suivant illustre l’utilisation de la commande \raisebox avec
ses arguments optionnels.
\begin{flushleft}
ligne 1 : XXXXX\\
ligne 2 :XX\raisebox{0.8\baselineskip}{O}XX\\
ligne 3 : XXXXX\\
ligne 4 : XXXXX\\
ligne 5 :XX%\raisebox{0.8\baselineskip}[1ex][2ex]{O}XX\\
ligne 6 : XXXXX\\\end{flushleft}

ligne 1 : XXXXXO
ligne 2 : XX XX
ligne 3 : XXXXX
ligne 4 : XXXXXO
ligne 5 : XX XX
ligne 6 : XXXXX

Un pas vers la sorcellerie64

On « soulève » un ‘O’ au milieu de la ligne 2. La bordure met en évidence la place
occupée par la boîte soulevée10 . Au milieu de la ligne 5, on soulève le même ‘O’ mais
cette fois en imposant les dimensions (montrées par la bordure). LATEX considère
donc que la boîte résultant de la translation fait 1ex de haut et 2ex de profondeur,il eﬀectue les sauts de lignes en conséquence.

On « soulève » un ‘O’ au milieu de la ligne 2. La bordure met en évidence la place
occupée par la boîte soulevée10 . Au milieu de la ligne 5, on soulève le même ‘O’ mais
cette fois en imposant les dimensions (montrées par la bordure). LATEX considère
donc que la boîte résultant de la translation fait 1ex de haut et 2ex de profondeur,il eﬀectue les sauts de lignes en conséquence.

Translation horizontale

Translation horizontale

Non à la \makebox[1.5cm]{censure}%\hspace{-1.5cm}\makebox[1.5cm]{///////}
sur Internet.

Les translations horizontales ne sont pas à proprement parler des caractéristiquesdes boîtes, puisqu’on les obtient en insérant des Nespaces◭ appropriées. Voici un
exemple :Non à la \makebox[1.5cm]{censure}%\hspace{-1.5cm}\makebox[1.5cm]{///////}
sur Internet.

Non à la ///////
censure sur Internet.

Notez que ce n’est pas forcément la meilleure façon de « hachurer » un mot, maiscela illustre la manière de déplacer un boîte horizontalement, à l’aide d’un \hspace
négatif.

4

Non à la ///////
censure sur Internet.

Notez que ce n’est pas forcément la meilleure façon de « hachurer » un mot, maiscela illustre la manière de déplacer un boîte horizontalement, à l’aide d’un \hspace
négatif.

Boîte simple de largeur nulleBoîte simple de largeur nulle

Il est parfois utile de manipuler les boîtes de largeur nulle, par exemple dans le casoù l’on souhaite superposer des éléments. En imposant une dimension nulle en guisede premier argument optionnel de la commande \makebox :Il est parfois utile de manipuler les boîtes de largeur nulle, par exemple dans le casoù l’on souhaite superposer des éléments. En imposant une dimension nulle en guisede premier argument optionnel de la commande \makebox :avant\makebox[0cm][l]{\grogra G}après
avant\makebox[0cm][r]{\grogra D}aprèsC
avantaGprès
avant
Daprèsavantaprès\newcommand{\grogra}{\huge\bfseries}
avant\makebox[0cm][c]{\grogra C}après
avant\makebox[0cm][l]{\grogra G}après
avant\makebox[0cm][r]{\grogra D}après

C
G
avant
Daprèsavantaprès

4.15\newcommand{\grogra}{\huge\bfseries}
avant\makebox[0cm][c]{\grogra C}après
4.15

4◮ § 4.3 p. 58

4.14

Les translations horizontales ne sont pas à proprement parler des caractéristiquesdes boîtes, puisqu’on les obtient en insérant des Nespaces◭ appropriées. Voici un
exemple :4.14◮ § 4.3 p. 58

Un pas vers la sorcellerie64

avantaprès

on produit bien une superposition mais l’alignement n’est pas exactement celui auquel on s’attendait ; en eﬀet l’argument l met le contenu à droite du point d’insertionde la boîte, et à gauche pour l’argument r.

on produit bien une superposition mais l’alignement n’est pas exactement celui auquel on s’attendait ; en eﬀet l’argument l met le contenu à droite du point d’insertionde la boîte, et à gauche pour l’argument r.

Rotation

Rotation

Il existe plusieurs extensions de LATEX pour faire subir des rotations à des éléments
de texte ; nous avons choisi de présenter ici la commande \rotatebox de l’extension
graphicx présentée au chapitre 5. La syntaxe en est la suivante :Il existe plusieurs extensions de LATEX pour faire subir des rotations à des éléments
de texte ; nous avons choisi de présenter ici la commande \rotatebox de l’extension
graphicx présentée au chapitre 5. La syntaxe en est la suivante :\rotatebox{hanglei}{htextei}
où hanglei est l’angle dans le sens trigonométrique, et htextei l’élément de texte àfaire tourner :10

Cette bordure est insérée ici pour la compréhension du mécanisme.

\rotatebox{hanglei}{htextei}
où hanglei est l’angle dans le sens trigonométrique, et htextei l’élément de texte àfaire tourner :10

Cette bordure est insérée ici pour la compréhension du mécanisme.

4.4 Boîtes

Attention \rotatebox{30}{virage} dangereux.

4.16

65
age
Attention vir
dangereux.

La version actuelle de xdvi n’est pas en mesure d’afficher les objets qui ont subi une
rotation11 . Cette lacune (avec quelques petites autres) sera peut-être corrigée dansles prochaines versions. La parade est de visualiser la sortie PostScript avec ghostview ou
gv, ou la sortie ◮PdfN.

65

Attention \rotatebox{30}{virage} dangereux.

§ A p. 199 ◭4.4.3 Boîtes paragraphe

4.16

4.4 Boîtes

age
Attention vir
dangereux.

La version actuelle de xdvi n’est pas en mesure d’afficher les objets qui ont subi une
rotation11 . Cette lacune (avec quelques petites autres) sera peut-être corrigée dansles prochaines versions. La parade est de visualiser la sortie PostScript avec ghostview ou
gv, ou la sortie ◮PdfN.

4.4.3 Boîtes paragraphe

Les boîtes dites boîtes paragraphe ont la particularité de pouvoir contenir des sautsde ligne et des sauts de paragraphe (contrairement aux boîtes dites simples). Il
existe deux manières de créer des boîtes paragraphe ; la première avec la commande\parbox :Les boîtes dites boîtes paragraphe ont la particularité de pouvoir contenir des sautsde ligne et des sauts de paragraphe (contrairement aux boîtes dites simples). Il
existe deux manières de créer des boîtes paragraphe ; la première avec la commande\parbox :\parbox[hbposi][hhauteuri][htposi]{hlargeuri}{hcontenui}où hcontenui est l’élément de texte à mettre en boîte, hlargeuri la largeur de la boîte
à créer, hbposi un argument optionnel précisant le point de référence. Cet argument
optionnel est à rapprocher de celui de l’environnement ◮tabularN. Par exemple :Voici --- \parbox{2.1cm}{une boîte\\paragraphe}--- une --- \parbox[t]{2.1cm}{autre boîte\\paragraphe}--- et --- \parbox[b]{2.1cm}{une boîte\\paragraphe}\parbox[hbposi][hhauteuri][htposi]{hlargeuri}{hcontenui}§ 2.2.4 p. 23 ◭4

où hcontenui est l’élément de texte à mettre en boîte, hlargeuri la largeur de la boîte
à créer, hbposi un argument optionnel précisant le point de référence. Cet argument
optionnel est à rapprocher de celui de l’environnement ◮tabularN. Par exemple :Voici --- \parbox{2.1cm}{une boîte\\paragraphe}--- une --- \parbox[t]{2.1cm}{autre boîte\\paragraphe}--- et --- \parbox[b]{2.1cm}{une boîte\\paragraphe}qui donne (avec des bordures pour mettre en évidence les dimensions des boîtes) :une boîte
une boîte
Voici —
— une — autre boîte — et — paragrapheparagrapheparagraphequi donne (avec des bordures pour mettre en évidence les dimensions des boîtes) :une boîte
une boîte
Voici —
— une — autre boîte — et — paragrapheparagrapheparagraphe

Pour construire une boîte paragraphe en imposant sa hauteur, on utilise l’argument optionnel hhauteuri. On peut alors éventuellement préciser la position verticale
htposi du texte dans la boîte. Par défaut htposi vaut hbposi, et il peut prendre lesvaleurs habituelles c pour centré, t et b pour haut et bas ; plus une valeur : s pourspéciﬁer que le texte peut s’étirer (stretch) sur toute la hauteur de la boîte — dansce cas c’est à l’utilisateur de positionner le texte. Par exemple :Pour construire une boîte paragraphe en imposant sa hauteur, on utilise l’argument optionnel hhauteuri. On peut alors éventuellement préciser la position verticale
htposi du texte dans la boîte. Par défaut htposi vaut hbposi, et il peut prendre lesvaleurs habituelles c pour centré, t et b pour haut et bas ; plus une valeur : s pourspéciﬁer que le texte peut s’étirer (stretch) sur toute la hauteur de la boîte — dansce cas c’est à l’utilisateur de positionner le texte. Par exemple :---\parbox[b][2cm]{2cm}{haut\par milieu\par bas}}\parbox[b][2cm][t]{2cm}{haut\parmilieu\par bas}}\parbox[b][2cm][c]{2cm}{haut\par milieu\par bas}}\parbox[b][2cm][s]{2cm}{haut\par\vspace{\stretch{2}} milieu\par\vfill bas}}------\parbox[b][2cm]{2cm}{haut\par milieu\par bas}}\parbox[b][2cm][t]{2cm}{haut\parmilieu\par bas}}\parbox[b][2cm][c]{2cm}{haut\par milieu\par bas}}\parbox[b][2cm][s]{2cm}{haut\par\vspace{\stretch{2}} milieu\par\vfill bas}}---

donne avec les \fbox pour y voir un peu plus clair :donne avec les \fbox pour y voir un peu plus clair :hautmilieu— bashautmilieubashautmilieubashaut

L’objet est affiché mais sans la rotation.

haut
milieu— basmilieubas—

Pour créer une boîte paragraphe, il peut être utile d’utiliser l’environnement
minipage, qui simule la création d’une page avec d’éventuelles notes de bas de page,
11§ A p. 199 ◭haut
milieubashautmilieubashautmilieubas—

Pour créer une boîte paragraphe, il peut être utile d’utiliser l’environnement
minipage, qui simule la création d’une page avec d’éventuelles notes de bas de page,
11

L’objet est affiché mais sans la rotation.

§ 2.2.4 p. 23 ◭4

Un pas vers la sorcellerie

66

Un pas vers la sorcellerie

66

tableaux, listes, etc12 . La syntaxe est analogue à \parbox sauf qu’il s’agit d’unenvironnement :tableaux, listes, etc12 . La syntaxe est analogue à \parbox sauf qu’il s’agit d’unenvironnement :\begin{minipage}[hbposi][hhauteuri][htposi]{hlargeuri}... \marg{texte} ...
\end{minipage}\begin{minipage}[hbposi][hhauteuri][htposi]{hlargeuri}... \marg{texte} ...
\end{minipage}

Voici un exemple :Voici un exemple :Ce que j’ai à direa n’est pas à franchement
parler :Pour une raison x, y ou z, onpeut vouloir raconter sa vie avec
une minipage. Comme dans cet
exemple là −→• ni très intéressant ;Pour une raison x, y ou z, onpeut vouloir raconter sa vie avec
une minipage. Comme dans cet
exemple là −→• ni particulièrement indispensable
mais bon, j’en parle quand même.
J’avais autre chose à raconter mais ça m’est
sorti de la tête...
a4

Ce que j’ai à direa n’est pas à franchement
parler :C’est un bien grand mot.

Dans cet exemple on a créé une minipage faisant la moitié (55%) de la largeur
du texte, et contenant un environnement itemize et une \footnote. La boîte ainsi
créée est centrée par rapport au paragraphe « Pour une raison... » car l’argument
optionnel hposi est absent :• ni très intéressant ;• ni particulièrement indispensable
mais bon, j’en parle quand même.
J’avais autre chose à raconter mais ça m’est
sorti de la tête...
a4

C’est un bien grand mot.

Dans cet exemple on a créé une minipage faisant la moitié (55%) de la largeur
du texte, et contenant un environnement itemize et une \footnote. La boîte ainsi
créée est centrée par rapport au paragraphe « Pour une raison... » car l’argument
optionnel hposi est absent :\parbox{0.40\textwidth}{...
Comme dans cet exemple là $\longrightarrow$}\hfill\begin{minipage}{0.55\textwidth}
Ce que j’ai à dire\footnote{C’est un bien grand mot.} n’est pas àfranchement parler :\begin{itemize}\item ni très intéressant ;\item ni particulièrement indispensable\end{itemize}mais bon, j’en parle quand même.

\parbox{0.40\textwidth}{...
Comme dans cet exemple là $\longrightarrow$}\hfill\begin{minipage}{0.55\textwidth}
Ce que j’ai à dire\footnote{C’est un bien grand mot.} n’est pas àfranchement parler :\begin{itemize}\item ni très intéressant ;\item ni particulièrement indispensable\end{itemize}mais bon, j’en parle quand même.

J’avais autre chose à raconter mais ça m’est sorti de la tête...
\end{minipage}J’avais autre chose à raconter mais ça m’est sorti de la tête...
\end{minipage}

Dans les boîtes paragraphe la longueur \parindent est mise à zéro. Ce qui expliqueque « J’avais autre chose ... » dans l’exemple précédent n’est pas indenté. Enfin,
contrairement aux cas des \parboxs, lorsqu’on fait référence dans une minipage à ladimension \textwidth, il s’agit de celle de la boîte et non de celle du texte.

Dans les boîtes paragraphe la longueur \parindent est mise à zéro. Ce qui expliqueque « J’avais autre chose ... » dans l’exemple précédent n’est pas indenté. Enfin,
contrairement aux cas des \parboxs, lorsqu’on fait référence dans une minipage à ladimension \textwidth, il s’agit de celle de la boîte et non de celle du texte.

4.4.4 Petites astuces
Toutes les fonctions concernant les boîtes peuvent prendre en paramètre de longueurles dimensions suivantes :12• \width: la largeur du texte contenu,• \height: la hauteur du texte contenu,

Cet environnement ne peut toutefois pas contenir de flottants.

4.4.4 Petites astuces
Toutes les fonctions concernant les boîtes peuvent prendre en paramètre de longueurles dimensions suivantes :12• \width: la largeur du texte contenu,• \height: la hauteur du texte contenu,

Cet environnement ne peut toutefois pas contenir de flottants.

4.5 Définitions: la profondeur du texte contenu,• \depth• \totalheight: (hauteur + profondeur) du texte.

Il est alors possible de préciser les dimensions de la boîte relativement au texte
qu’elle contient. Ce qui peut être utile dans certaines situations :uneboîteà l’étroit.
une boîte au large.

uneboîteà l’étroit.
une boîte au large.

une \framebox[0.7\width]{boîte} à l’étroit.
une \framebox[1.8\width]{boîte} au large.

4.17

une \framebox[1.8\width]{boîte} au large.
une \fbox{%\parbox[c][3\height]{1cm}{boîte\\vide.}}: la profondeur du texte contenu,• \totalheight: (hauteur + profondeur) du texte.

Il est alors possible de préciser les dimensions de la boîte relativement au texte
qu’elle contient. Ce qui peut être utile dans certaines situations :une \framebox[0.7\width]{boîte} à l’étroit.

67

boîte
une
vide.

une \fbox{%\parbox[c][3\height]{1cm}{boîte\\vide.}}4.4.5 Sauvegarde et réutilisation

4.17• \depth

4.5 Définitions

67

une

boîte
vide.

4.4.5 Sauvegarde et réutilisation

Il est possible de stocker un extrait de code LAT X dans une boîte pour le réutiliserE— ceci par exemple lorsque ce code exige de LATEX des ressources importantes ; dansce cas on procède en 3 étapes :Il est possible de stocker un extrait de code LATEX dans une boîte pour le réutiliser— ceci par exemple lorsque ce code exige de LATEX des ressources importantes ; dansce cas on procède en 3 étapes :4

2. stockage avec \sbox ou \savebox,

2. stockage avec \sbox ou \savebox,

3. réutilisation avec \usebox.

3. réutilisation avec \usebox.

Par exemple voici une texture de Gnu :Par exemple voici une texture de Gnu :\newsavebox{\gnu}\sbox{\gnu}{\fbox{\textsc{Gnu}}}\begin{center}\usebox{\gnu}\usebox{\gnu}\usebox{\gnu}\\\usebox{\gnu}\usebox{\gnu}\usebox{\gnu}\\\usebox{\gnu}\usebox{\gnu}\usebox{\gnu}\end{center}\newsavebox{\gnu}\sbox{\gnu}{\fbox{\textsc{Gnu}}}\begin{center}\usebox{\gnu}\usebox{\gnu}\usebox{\gnu}\\\usebox{\gnu}\usebox{\gnu}\usebox{\gnu}\\\usebox{\gnu}\usebox{\gnu}\usebox{\gnu}\end{center}

Gnu Gnu Gnu
Gnu Gnu Gnu
Gnu Gnu Gnu

On peut faire une analogie entre le couple de commande \sbox et \savebox et lecouple \mbox et \makebox (cf. § 4.4.1).

4.5

Définitions

Gnu Gnu Gnu
Gnu Gnu Gnu
Gnu Gnu Gnu

On peut faire une analogie entre le couple de commande \sbox et \savebox et lecouple \mbox et \makebox (cf. § 4.4.1).

4.5

Une nouvelle fois, laissons parler le maître :4.18

1. déclaration d’une boîte avec la commande \newsavebox,

4.18

1. déclaration d’une boîte avec la commande \newsavebox,

Définitions
Une nouvelle fois, laissons parler le maître :« . . . they have come to be known as macros because they are so powerful; one little macro can represent an enormous amount of material,
so it has a sort of macroscopic effect. »D. E. Knuth in the TEXbook« . . . they have come to be known as macros because they are so powerful; one little macro can represent an enormous amount of material,
so it has a sort of macroscopic effect. »D. E. Knuth in the TEXbook

4

Un pas vers la sorcellerie

68

Lorsque dans un document, on peut déﬁnir une « entité » indépendante et quecette entité apparaît plus d’un « certain nombre de fois » il est nécessaire de se poserla question de savoir s’il n’est pas judicieux d’en faire une macro. Voilà une phrasevague ! Pour résumer, les macros sont là pour vous éviter de refaire x fois les mêmes
choses. Avec un peu d’expérience, on peut déﬁnir des commandes très pratiques etavec le temps de plus en plus complexes.

Lorsque dans un document, on peut déﬁnir une « entité » indépendante et quecette entité apparaît plus d’un « certain nombre de fois » il est nécessaire de se poserla question de savoir s’il n’est pas judicieux d’en faire une macro. Voilà une phrasevague ! Pour résumer, les macros sont là pour vous éviter de refaire x fois les mêmes
choses. Avec un peu d’expérience, on peut déﬁnir des commandes très pratiques etavec le temps de plus en plus complexes.

4.5.1 Commandes

4.5.1 Commandes

La commande \newcommand permet de déﬁnir une macro, son utilisation est trèssimple :La commande \newcommand permet de déﬁnir une macro, son utilisation est trèssimple :\newcommand{hnomcomi}[hnargsi]{hcode LATEXi}\newcommand{hnomcomi}[hnargsi]{hcode LATEXi}

4

Soit L∗ a∗ b∗ l’espace...

Notez que cette commande ne prend pas d’argument, il n’est donc pas nécessaire ici
d’utiliser l’argument optionnel hnargsi. Pour améliorer un peu l’utilisation de cettecommande, on peut la déﬁnir comme suit :\newcommand{\Lab}{%\ensuremath{L^*a^*b^*}}L’espace \Lab{} et $\vec{c}\in\Lab$.

L’espace L∗ a∗ b∗ et ~c ∈ L∗ a∗ b∗ .

4.19

\newcommand{\lab}{$L^*a^*b^*$}Soit \lab{} l’espace...

4.20

4.20

\newcommand{\Lab}{%\ensuremath{L^*a^*b^*}}L’espace \Lab{} et $\vec{c}\in\Lab$.

où hnargsi est le nombre d’arguments — au sens arguments d’une fonction d’unlangage de programmation — et hcode LATEXi le code déﬁnissant votre commande.
Voici un exemple de macro, déﬁnissant le symbole d’un espace de représentation
utilisé en colorimétrie :Soit L∗ a∗ b∗ l’espace...

Notez que cette commande ne prend pas d’argument, il n’est donc pas nécessaire ici
d’utiliser l’argument optionnel hnargsi. Pour améliorer un peu l’utilisation de cettecommande, on peut la déﬁnir comme suit :L’espace L∗ a∗ b∗ et ~c ∈ L∗ a∗ b∗ .

La commande \ensuremath permet de s’assurer que la commande sera utilisée dansun environnement mathématique, quel que soit le contexte, comme dans l’exemple
ci-dessous.

La commande \ensuremath permet de s’assurer que la commande sera utilisée dansun environnement mathématique, quel que soit le contexte, comme dans l’exemple
ci-dessous.

Les macros ou commandes de LATEX ne sont pas tout à fait des fonctions au sensd’un langage de programmation, elles s’apparentent plutôt au #define du C. Et
en ce sens, elles suivent le mécanisme d’expansion. Ainsi, dans le premier exemple dela fonction \Lab, \Lab se « déploie » en $L^* a^* b^*$. On comprend donc pourquoi,$...\Lab$ aurait généré une erreur de compilation.

Les macros ou commandes de LATEX ne sont pas tout à fait des fonctions au sensd’un langage de programmation, elles s’apparentent plutôt au #define du C. Et
en ce sens, elles suivent le mécanisme d’expansion. Ainsi, dans le premier exemple dela fonction \Lab, \Lab se « déploie » en $L^* a^* b^*$. On comprend donc pourquoi,$...\Lab$ aurait généré une erreur de compilation.

Voici une commande utilisant un argument : elle permet de dessiner une touchede clavier13 :Voici une commande utilisant un argument : elle permet de dessiner une touchede clavier13 :









Appuyer sur Tab puis sur Entrée 

On voit donc que cette commande attend un argument (c’est le sens de « [1] »)et qu’on fait référence à cet argument dans la déﬁnition de la commande avec #1.
Si l’on souhaite déﬁnir une fonction avec plusieurs arguments (9 au maximum),no problemo :13

Cette commande fait appel à la commande \Ovalbox définie dans le package fancybox.

\newcommand{\Touche}[1]{\Ovalbox{#1}}Appuyer sur \Touche{Tab}puis sur \Touche{Entrée}



4.21

\newcommand{\Touche}[1]{\Ovalbox{#1}}Appuyer sur \Touche{Tab}puis sur \Touche{Entrée}

4.21

4

4.19

où hnargsi est le nombre d’arguments — au sens arguments d’une fonction d’unlangage de programmation — et hcode LATEXi le code déﬁnissant votre commande.
Voici un exemple de macro, déﬁnissant le symbole d’un espace de représentation
utilisé en colorimétrie :\newcommand{\lab}{$L^*a^*b^*$}Soit \lab{} l’espace...

Un pas vers la sorcellerie

68







Appuyer sur Tab puis sur Entrée 

On voit donc que cette commande attend un argument (c’est le sens de « [1] »)et qu’on fait référence à cet argument dans la déﬁnition de la commande avec #1.
Si l’on souhaite déﬁnir une fonction avec plusieurs arguments (9 au maximum),no problemo :13

Cette commande fait appel à la commande \Ovalbox définie dans le package fancybox.

4.22\newcommand{\fraction}[2]{%\raisebox{0.5ex}{#1}%\slash\raisebox{-0.5ex}{#2}}\fraction{1}{2} et \fraction{3}{4} font
\fraction{5}{4}

4.5 Définitions

69\newcommand{\fraction}[2]{%\raisebox{0.5ex}{#1}%\slash\raisebox{-0.5ex}{#2}}\fraction{1}{2} et \fraction{3}{4} font
\fraction{5}{4}1/2 et 3/4 font 5/4

On remarquera donc que :

69

4.22

4.5 Définitions

1/2 et 3/4 font 5/4

On remarquera donc que :• la macro \fraction prend 2 arguments,• la macro \fraction prend 2 arguments,• on fait référence au ne argument avec #n,• on fait référence au ne argument avec #n,• les caractères % s’il vous paraissent saugrenus, permettent d’insérer des sautsde ligne dans le code sans insérer d’espace dans le document (voir aussi leparagraphe 9.2.1 page 113 à ce sujet).

• les caractères % s’il vous paraissent saugrenus, permettent d’insérer des sautsde ligne dans le code sans insérer d’espace dans le document (voir aussi leparagraphe 9.2.1 page 113 à ce sujet).

Il est également possible de déﬁnir une commande dont le premier argument est
optionnel. La syntaxe est alors la suivante :Il est également possible de déﬁnir une commande dont le premier argument est
optionnel. La syntaxe est alors la suivante :4\newcommand{hnomcomi}[hnargi][harg defauti]{hcode LATEXi}







où hnargi est le nombre d’arguments, sachant que #1 sera l’argument par défaut,harg defauti est la valeur que prend #1 par défaut, et hcode LATEXi le code de la commande. Voici par exemple une autre approche de la commande vue précédemment,qui dessine une touche de clavier :Appuyer sur Tab puis sur Entrée \newcommand{\Touche}[1][Entrée]{\Ovalbox{#1}}Appuyer sur \Touche[Tab]{} puis sur \Touche{}

4.23\newcommand{\Touche}[1][Entrée]{\Ovalbox{#1}}Appuyer sur \Touche[Tab]{} puis sur \Touche{}4.23

où hnargi est le nombre d’arguments, sachant que #1 sera l’argument par défaut,harg defauti est la valeur que prend #1 par défaut, et hcode LATEXi le code de la commande. Voici par exemple une autre approche de la commande vue précédemment,qui dessine une touche de clavier :







On voit donc que l’argument 1 est facultatif et sa valeur par défaut est : « Entrée ».
On notera également que l’utilisation de l’argument optionnel requiert des crochets
et non des accolades.

On peut très bien imaginer que l’on ait à définir une commande ayant un argument optionnel et un ou plusieurs arguments obligatoires. Dans ce cas le premierargument obligatoire sera #2. D’autre part, notez qu’on ne peut rendre optionnel que lepremier argument d’une commande.

On peut très bien imaginer que l’on ait à définir une commande ayant un argument optionnel et un ou plusieurs arguments obligatoires. Dans ce cas le premierargument obligatoire sera #2. D’autre part, notez qu’on ne peut rendre optionnel que lepremier argument d’une commande.

4.5.2 Environnement

Il est possible de déﬁnir ses propres environnements de la manière suivante :Il est possible de déﬁnir ses propres environnements de la manière suivante :\newenvironment{hnom envi}[hnargi]{hclause begini}{hclause endi}\newenvironment{hnom envi}[hnargi]{hclause begini}{hclause endi}

où hnom envi est le nom de l’environnement ainsi déﬁni, hnargi le nombre d’arguments, et hclause begini et hclause endi les « pré » et « post » traitements del’environnement. Il est pratique de déﬁnir des environnements à partir d’autres, parexemple les environnements de LATEX :

Appuyer sur Tab puis sur Entrée 

On voit donc que l’argument 1 est facultatif et sa valeur par défaut est : « Entrée ».
On notera également que l’utilisation de l’argument optionnel requiert des crochets
et non des accolades.

4.5.2 Environnement

4\newcommand{hnomcomi}[hnargi][harg defauti]{hcode LATEXi}où hnom envi est le nom de l’environnement ainsi déﬁni, hnargi le nombre d’arguments, et hclause begini et hclause endi les « pré » et « post » traitements del’environnement. Il est pratique de déﬁnir des environnements à partir d’autres, parexemple les environnements de LATEX :Un pas vers la sorcellerie4\newsavebox{\auteurbm}\newenvironment{Bonmot}[1]%{\small\slshape%\savebox{\auteurbm}{\upshape\sffamily#1}%\begin{flushright}}{\\[4pt]\usebox{\auteurbm}\end{flushright}\normalsize\upshape}\begin{Bonmot}{Victor Hugo}
L’homme a reçu de la nature une clef\\avec laquelle il remonte la femme\\
toutes les vingt-quatre heures.
\end{Bonmot}

L’homme a reçu de la nature une clef
avec laquelle il remonte la femme
toutes les vingt-quatre heures.
4.25◮ § 4.4.5 p. 67

Victor Hugo

La citation n’en reste certes pas moins douteuse...

4.5.3 Redéfinitions
Il est possible de redéfinir commandes et environnements avec :\renewcommand{hnomcomi}[hnargsi]{hcodeTEXi}
pour les commandes et :◮ § 4.4.5 p. 67

4

4.24

\newenvironment{bonmot}%{\small\slshape\begin{flushright}}%{\end{flushright}\normalsize\upshape}\begin{bonmot}
L’homme a reçu de la nature une clef\\avec laquelle il remonte la femme\\
toutes les vingt-quatre heures.
\end{bonmot}

L’homme a reçu de la nature une clef
avec laquelle il remonte la femme
toutes les vingt-quatre heures.

Il est vrai que ce « bon mot » serait un peu douteux si l’on ne citait son auteur. On
peut y remédier en ajoutant à notre environnement un argument. Les arguments
sont accessibles par # mais ne sont visibles que dans la clause begin. On contourne
ceci en sauvant l’argument dans une boîte que l’on Nréutilise◭ dans la clause end :Un pas vers la sorcellerie

70

L’homme a reçu de la nature une clef
avec laquelle il remonte la femme
toutes les vingt-quatre heures.

Il est vrai que ce « bon mot » serait un peu douteux si l’on ne citait son auteur. On
peut y remédier en ajoutant à notre environnement un argument. Les arguments
sont accessibles par # mais ne sont visibles que dans la clause begin. On contourne
ceci en sauvant l’argument dans une boîte que l’on Nréutilise◭ dans la clause end :\newsavebox{\auteurbm}\newenvironment{Bonmot}[1]%{\small\slshape%\savebox{\auteurbm}{\upshape\sffamily#1}%\begin{flushright}}{\\[4pt]\usebox{\auteurbm}\end{flushright}\normalsize\upshape}\begin{Bonmot}{Victor Hugo}
L’homme a reçu de la nature une clef\\avec laquelle il remonte la femme\\
toutes les vingt-quatre heures.
\end{Bonmot}

L’homme a reçu de la nature une clef
avec laquelle il remonte la femme
toutes les vingt-quatre heures.
4.25\newenvironment{bonmot}%{\small\slshape\begin{flushright}}%{\end{flushright}\normalsize\upshape}\begin{bonmot}
L’homme a reçu de la nature une clef\\avec laquelle il remonte la femme\\
toutes les vingt-quatre heures.
\end{bonmot}

4.24

70

Victor Hugo

La citation n’en reste certes pas moins douteuse...

4.5.3 Redéfinitions
Il est possible de redéfinir commandes et environnements avec :\renewcommand{hnomcomi}[hnargsi]{hcodeTEXi}
pour les commandes et :\renewenvironment{hnom_envi}[hnargi]{hclause_begini}{hclause_endi}\renewenvironment{hnom_envi}[hnargi]{hclause_begini}{hclause_endi}

pour les environnements. On redéﬁnit les commandes essentiellement pour personnaliser le comportement facétieux de LATEX. On procède alors de la manière la plus
naturelle qui soit, par exemple :pour les environnements. On redéﬁnit les commandes essentiellement pour personnaliser le comportement facétieux de LATEX. On procède alors de la manière la plus
naturelle qui soit, par exemple :\renewcommand{\thepage}{\Roman{page}}\renewcommand{\thepage}{\Roman{page}}numérote les pages en chiﬀre romain majuscule.

numérote les pages en chiﬀre romain majuscule.

La modification du comportement par défaut de LATEX est un sujet très vaste qui
dépasse le cadre de cette partie. Mais sachez que si vous modifiez une commandeou un environnement dont vous ne maîtrisez pas toutes les fonctionnalités, attendez vous
à des résultats bizarres ! La lecture de la deuxième partie présente le moyen de redéfinir
certaines commandes de LATEX.

La modification du comportement par défaut de LATEX est un sujet très vaste qui
dépasse le cadre de cette partie. Mais sachez que si vous modifiez une commandeou un environnement dont vous ne maîtrisez pas toutes les fonctionnalités, attendez vous
à des résultats bizarres ! La lecture de la deuxième partie présente le moyen de redéfinir
certaines commandes de LATEX.

4.6 Mais encore ?

4.6

4.6 Mais encore ?

71

Mais encore ?

4.6

Si vous avez l’intention de créer des ﬁchiers contenant des commandes de votre crû,vous devez ajouter la ligne :export TEXINPUTS=$HOME/LaTeX/mesmacros//:

dans votre .bash_profile si vous utilisez bash, pour que LAT X cherche aussi lesdans votre .bash_profile si vous utilisez bash, pour que LATEX cherche aussi lesﬁchiers dans le répertoire $HOME/LaTeX/mesmacros (c’est un exemple) et ses sousrépertoires. La ligne \usepackage{moncru} vous permettra alors d’utiliser votre
ensemble de commandes. LATEX cherchera alors le ﬁchier moncru.sty. Une autre
solution est d’utiliser la commande \input{moncru.sty}.
Dans la plupart des distributions de LATEX, un ﬁchier nommé texmf.cnf déﬁnit
un certain nombre de paramètres permettant de conﬁguer le moteur LATEX et notamment les chemins de recherche des ﬁchiers. Sur mon système (TeTEX sous Debian)ce ﬁchier contient notamment :E
ﬁchiers dans le répertoire $HOME/LaTeX/mesmacros (c’est un exemple) et ses sousrépertoires. La ligne \usepackage{moncru} vous permettra alors d’utiliser votre
ensemble de commandes. LATEX cherchera alors le ﬁchier moncru.sty. Une autre
solution est d’utiliser la commande \input{moncru.sty}.
Dans la plupart des distributions de LATEX, un ﬁchier nommé texmf.cnf déﬁnit
un certain nombre de paramètres permettant de conﬁguer le moteur LATEX et notamment les chemins de recherche des ﬁchiers. Sur mon système (TeTEX sous Debian)ce ﬁchier contient notamment :HOMETEXMF = $HOME/texmf• l’extension ◮ifthenN qui propose des structures de contrôle de type « si-alorssinon » et « faire-tant-que »,HOMETEXMF = $HOME/texmf

4§ 9.3 p. 117 ◭• le package calc qui permet d’eﬀectuer des opérations arithmétiques sur lescompteurs et les longueurs.
• enﬁn l’environnement ◮listN qui peut être un bon point de départ pour se
déﬁnir un environnement de type liste.
Ces extensions et leur utilisation sont présentées en détail dans la deuxième partiede ce manuel.

Mais encore ?
Si vous avez l’intention de créer des ﬁchiers contenant des commandes de votre crû,vous devez ajouter la ligne :export TEXINPUTS=$HOME/LaTeX/mesmacros//:

indiquant que le système cherchera les ﬁchiers à inclure dans le répertoire texmf devotre répertoire privé. Vous devrez alors placer vos extensions « maison » dans lerépertoire ~/texmf/tex/latex.
Un dernier conseil : pour pouvoir déﬁnir vos commandes ou environnements demanière plus confortable, nous vous recommandons de jeter un petit coup d’œil sur :71

indiquant que le système cherchera les ﬁchiers à inclure dans le répertoire texmf devotre répertoire privé. Vous devrez alors placer vos extensions « maison » dans lerépertoire ~/texmf/tex/latex.
Un dernier conseil : pour pouvoir déﬁnir vos commandes ou environnements demanière plus confortable, nous vous recommandons de jeter un petit coup d’œil sur :• l’extension ◮ifthenN qui propose des structures de contrôle de type « si-alorssinon » et « faire-tant-que »,4§ 9.3 p. 117 ◭• le package calc qui permet d’eﬀectuer des opérations arithmétiques sur lescompteurs et les longueurs.
§ 9.5 p. 126 ◭• enﬁn l’environnement ◮listN qui peut être un bon point de départ pour se
déﬁnir un environnement de type liste.
Ces extensions et leur utilisation sont présentées en détail dans la deuxième partiede ce manuel.

§ 9.5 p. 126 ◭55Graphisme
Sommaire

Graphisme
Sommaire

5.1

Apéritifs

5.1

Apéritifs

5.2

Du format des fichiers graphiques

5.2

Du format des fichiers graphiques

5.3

Le package graphicx

5.3

Le package graphicx

5.4

Quelques extensions utiles

5.4

Quelques extensions utiles

5.5

Utiliser make

5.5

Utiliser make5.6

À part ça

5.6

À part ça

Tu ne te feras aucune image sculptée de rienqui ressemble à ce qui est dans les cieux là-haut [...]Tu ne te prosterneras pas devant ces images ni ne les serviras.
Le Deutéronome Dt 5 8.

Tu ne te feras aucune image sculptée de rienqui ressemble à ce qui est dans les cieux là-haut [...]Tu ne te prosterneras pas devant ces images ni ne les serviras.
Le Deutéronome Dt 5 8.

5il est tout à fait naturel d’insérer des dessins, ﬁgures et autres
Aujourd’hui
images dans un document. Ceci est dû aux imprimantes de plus en plus per-il est tout à fait naturel d’insérer des dessins, ﬁgures et autres
Aujourd’hui
images dans un document. Ceci est dû aux imprimantes de plus en plus per-formantes et bon marché. Il faut cependant se replacer dans le contexte des années
80 à l’essor de TEX. C’est l’époque de l’apparition des imprimantes et le matériel dequalité professionnelle n’était pas accessible au particulier. Cependant beaucoup desolutions d’impression émergeront s’appuyant la plupart sur le langage PostScript
devenu ipso facto un standard.
Il existe plusieurs solutions autour de LATEX pour insérer des graphiques dans
un document. Parmi elles on notera l’utilisation de metafont (l’utilitaire qui gère
les fontes de LATEX), la programmation d’un environnement picture ou la mise enœuvre d’un code PICTEX. Ces solutions ne seront pas décrites ici car nous considérons qu’elles sont d’une utilisation un peu déroutante au premier abord ; il est toutde même bon de connaître leur existence. L’approche adoptée dans ce manuel pourmanipuler des graphiques est d’insérer dans le source LATEX un ﬁchier au format
PostScript encapsulé contenant le graphique en question, ce dernier ayant été créépar un logiciel de dessin tel que xfig, gnuplot, gimp, etc.

5.1

Apéritifs

formantes et bon marché. Il faut cependant se replacer dans le contexte des années
80 à l’essor de TEX. C’est l’époque de l’apparition des imprimantes et le matériel dequalité professionnelle n’était pas accessible au particulier. Cependant beaucoup desolutions d’impression émergeront s’appuyant la plupart sur le langage PostScript
devenu ipso facto un standard.
Il existe plusieurs solutions autour de LATEX pour insérer des graphiques dans
un document. Parmi elles on notera l’utilisation de metafont (l’utilitaire qui gère
les fontes de LATEX), la programmation d’un environnement picture ou la mise enœuvre d’un code PICTEX. Ces solutions ne seront pas décrites ici car nous considérons qu’elles sont d’une utilisation un peu déroutante au premier abord ; il est toutde même bon de connaître leur existence. L’approche adoptée dans ce manuel pourmanipuler des graphiques est d’insérer dans le source LATEX un ﬁchier au format
PostScript encapsulé contenant le graphique en question, ce dernier ayant été créépar un logiciel de dessin tel que xfig, gnuplot, gimp, etc.

5.1

Il n’est pas inutile de connaître la commande \rule qui permet de faire des traits :\rule[hhposi]{hlargeuri}{hhauteuri}

Apéritifs
Il n’est pas inutile de connaître la commande \rule qui permet de faire des traits :\rule[hhposi]{hlargeuri}{hhauteuri}

où hhposi impose une éventuelle translation verticale du trait, les deux autres arguments ont un nom suﬃsamment explicite :où hhposi impose une éventuelle translation verticale du trait, les deux autres arguments ont un nom suﬃsamment explicite :

73

73

5

Graphisme

5.2

5

5.3

Voici quelques \og traits \fg{} :\begin{center}\rule[1ex]{1mm}{5mm}\quad\rule{1in}{0.4pt}\quad\rule[-0.5em]{1em}{1em}\end{center}

Voici quelques « traits » :5.1

Voici quelques \og traits \fg{} :\begin{center}\rule[1ex]{1mm}{5mm}\quad\rule{1in}{0.4pt}\quad\rule[-0.5em]{1em}{1em}\end{center}

Graphisme74

Du format des fichiers graphiques

5.2

Voici quelques « traits » :5.1

74

Du format des fichiers graphiques

Pour inclure des dessins ou des images dans vos documents, il faut insérer un fichier.
La conﬁguration de LATEX permet d’incorporer des ﬁchiers de type PS pour PostScript et EPS pour Encapsuled PostScript. Ce ﬁchier peut être généré par n’importequel programme. Si le format PostScript vous semble contraignant, sachez que :Pour inclure des dessins ou des images dans vos documents, il faut insérer un fichier.
La conﬁguration de LATEX permet d’incorporer des ﬁchiers de type PS pour PostScript et EPS pour Encapsuled PostScript. Ce ﬁchier peut être généré par n’importequel programme. Si le format PostScript vous semble contraignant, sachez que :• tout bon logiciel de dessin « vectoriel » vous permet d’exporter vos schémas au
format EPS. Ce format est devenu la référence en matière d’impression.

• tout bon logiciel de dessin « vectoriel » vous permet d’exporter vos schémas au
format EPS. Ce format est devenu la référence en matière d’impression.

• toute image peut être convertie au format EPS. Sur un système Unix, le programme convert permet d’eﬀectuer cette opération1 . On pourra aussi recourir
au logiciel gimp (logiciel libre de retouche et de création d’image numérique),présent également sur d’autres systèmes d’exploitation.

• toute image peut être convertie au format EPS. Sur un système Unix, le programme convert permet d’eﬀectuer cette opération1 . On pourra aussi recourir
au logiciel gimp (logiciel libre de retouche et de création d’image numérique),présent également sur d’autres systèmes d’exploitation.

Le package graphicx
LATEX, ou plutôt TEX, n’a pas été initialement conçu pour manipuler des graphiques(images, dessins,...). De ce fait, une multitude d’extensions ont été proposées, aucunen’ayant vraiment réussi à s’imposer ou à être vraiment indépendante des systèmesd’exploitation.

5.3.1 Un standard
Aujourd’hui, les concepteurs de LAT X semblent s’être mis d’accord pour standardiserE
une extension graphique. Deux extensions ont donc vu le jour à ﬁn de l’année 1994 :55.3

Le package graphicx
LATEX, ou plutôt TEX, n’a pas été initialement conçu pour manipuler des graphiques(images, dessins,...). De ce fait, une multitude d’extensions ont été proposées, aucunen’ayant vraiment réussi à s’imposer ou à être vraiment indépendante des systèmesd’exploitation.

5.3.1 Un standard
Aujourd’hui, les concepteurs de LATEX semblent s’être mis d’accord pour standardiser
une extension graphique. Deux extensions ont donc vu le jour à ﬁn de l’année 1994 :• graphics l’extension « standard » ;• graphics l’extension « standard » ;• graphicx l’extension « plus plus ».

• graphicx l’extension « plus plus ».

Nous avons choisi de vous présenter graphicx. Il faut bien comprendre que si l’interface de cette extension est indépendante du système d’exploitation, la partie ducode gérant les diﬀérent types de ﬁchiers graphiques est dépendante du système
sous-jacent. Aussi, est-il nécessaire de préciser un driver de package. Les drivers
existants correspondent aux implantations connues de TEX sur des plate-formes diverses2 . Sous Unix, le driver utilisé est généralement dvips, il est choisi par défaut
dans la distribution teTEX, si bien que la ligne :\usepackage{graphicx}

Nous avons choisi de vous présenter graphicx. Il faut bien comprendre que si l’interface de cette extension est indépendante du système d’exploitation, la partie ducode gérant les diﬀérent types de ﬁchiers graphiques est dépendante du système
sous-jacent. Aussi, est-il nécessaire de préciser un driver de package. Les drivers
existants correspondent aux implantations connues de TEX sur des plate-formes diverses2 . Sous Unix, le driver utilisé est généralement dvips, il est choisi par défaut
dans la distribution teTEX, si bien que la ligne :\usepackage{graphicx}

1
Cherchez du côté de la suite « ImageMagick » pour obtenir ce programme s’il n’est pas présent
sur votre système.
2
On notera entre autres : xdvi et dvips pour le monde Unix, texture et OzTEX pour le Mac,emTEX et dviwin pour windows.

1
Cherchez du côté de la suite « ImageMagick » pour obtenir ce programme s’il n’est pas présent
sur votre système.
2
On notera entre autres : xdvi et dvips pour le monde Unix, texture et OzTEX pour le Mac,emTEX et dviwin pour windows.

5.3 Le package graphicx

5.3 Le package graphicx

75

75

Figure 5.1: Robert (après quelques bières).

Figure 5.1: Robert (après quelques bières).

suﬃt pour mettre en route l’extension graphicx. La commande pour inclure un dessin
ou une ﬁgure est la suivante :suﬃt pour mettre en route l’extension graphicx. La commande pour inclure un dessin
ou une ﬁgure est la suivante :\includegraphics[hoptioni]{hfichieri}

avant\includegraphics{punch}
et après.

5

avant

et après.

Pour assurer la portabilité de vos sources et ainsi pouvoir insérer des fichiers graphiques dans des formats différents, il est impératif de ne pas préciser l’extension
du fichier dans la commande \includegraphics.

En général, on combine \includegraphics avec un environnement ◮figureN.
Par exemple, la ﬁgure 5.1 a été produite grâce au code suivant :\begin{figure}\centering\includegraphics[width=5cm]{punch}\caption{Robert (après quelques bières).}\label{fig-exemple}\end{figure}où hfichieri est un ﬁchier contenant votre ﬁgure, et hoptioni est une liste d’options
séparées par des virgules. La commande \includegraphics ne crée pas de miseen page particulière, elle insère juste une boîte contant le graphique dans le texte.
Ainsi :
avant
\includegraphics{punch}
et après.

5.2

où hfichieri est un ﬁchier contenant votre ﬁgure, et hoptioni est une liste d’options
séparées par des virgules. La commande \includegraphics ne crée pas de miseen page particulière, elle insère juste une boîte contant le graphique dans le texte.
Ainsi :

5

5.2

\includegraphics[hoptioni]{hfichieri}

avant

et après.

Pour assurer la portabilité de vos sources et ainsi pouvoir insérer des fichiers graphiques dans des formats différents, il est impératif de ne pas préciser l’extension
du fichier dans la commande \includegraphics.
§ 2.7 p. 27 ◭En général, on combine \includegraphics avec un environnement ◮figureN.
Par exemple, la ﬁgure 5.1 a été produite grâce au code suivant :\begin{figure}\centering\includegraphics[width=5cm]{punch}\caption{Robert (après quelques bières).}\label{fig-exemple}\end{figure}Notez bien que l’environnement figure assure que le graphisme « flotte » dans lapage et que ça n’est pas la commande \includegraphics qui assure ce rôle. Au
cas où ça aurait échappé à certains :Notez bien que l’environnement figure assure que le graphisme « flotte » dans lapage et que ça n’est pas la commande \includegraphics qui assure ce rôle. Au
cas où ça aurait échappé à certains :L’environnement figure assure que le graphisme « flotte » dans la page ;ça n’est pas la commande \includegraphics qui assure ce rôle.

L’environnement figure assure que le graphisme « flotte » dans la page ;ça n’est pas la commande \includegraphics qui assure ce rôle.

§ 2.7 p. 27 ◭Graphisme

76

5.3.2 Options

5.3.2 Options

Le package graphicx possède plusieurs options permettant de contrôler l’insertiondes graphiques. Parmi les options disponibles voici les plus utilisées :Le package graphicx possède plusieurs options permettant de contrôler l’insertiondes graphiques. Parmi les options disponibles voici les plus utilisées :Changement d’échelle

Changement d’échelle

Il existe trois manières d’agir sur la taille d’un graphique.

Il existe trois manières d’agir sur la taille d’un graphique.
• scale=hratioi, où hratioi est un nombre positif ou négatif, permet de changer
la taille globale de la ﬁgure ;• width=hdimeni permet d’imposer la largeur du graphique ;• width=hdimeni permet d’imposer la largeur du graphique ;• height=hdimeni permet d’imposer la hauteur du graphique.

• height=hdimeni permet d’imposer la hauteur du graphique.

5.3\begin{center}\includegraphics[scale=0.2]{magma}\\\includegraphics[width=8.5mm]{magma}\\\includegraphics[width=2cm,height=3mm]{magma}\end{center}

Rotation

Rotation

Vous pouvez si vous le désirez, faire eﬀectuer une rotation à votre ﬁgure en utilisantl’option angle, dont la syntaxe est la suivante :5Vous pouvez si vous le désirez, faire eﬀectuer une rotation à votre ﬁgure en utilisantl’option angle, dont la syntaxe est la suivante :angle=hndegreioù hndegrei est un angle précisé en degrés dans le sens trigonométrique.

où hndegrei est un angle précisé en degrés dans le sens trigonométrique.

5.4\includegraphics[angle=45,scale=0.2]{magma}

5.4

angle=hndegrei\includegraphics[angle=45,scale=0.2]{magma}

5.3• scale=hratioi, où hratioi est un nombre positif ou négatif, permet de changer
la taille globale de la ﬁgure ;\begin{center}\includegraphics[scale=0.2]{magma}\\\includegraphics[width=8.5mm]{magma}\\\includegraphics[width=2cm,height=3mm]{magma}\end{center}On trouvera dans le ﬁchier grfguide.pdf3 une description détaillée de cette extension. On pourra également consulter le ﬁchier fepslatex.pdf4 .

On trouvera dans le ﬁchier grfguide.pdf3 une description détaillée de cette extension. On pourra également consulter le ﬁchier fepslatex.pdf4 .

Mode brouillon

Mode brouillon

L’option draft permet de produire les ﬁgures en mode « brouillon » : seul un cadre
avec le nom du ﬁchier inclus est produit dans le document ﬁnal.

L’option draft permet de produire les ﬁgures en mode « brouillon » : seul un cadre
avec le nom du ﬁchier inclus est produit dans le document ﬁnal.

epss/punch.eps
avant

et après.

Le mode draft est enclenché par défaut lorsque l’option de document draft est
spéciﬁée. Si vous voulez contrer l’eﬀet de l’option de document5 , il est possible
Utiliser locate ou find pour le trouver sur votre système.
http://tug.ctan.org/tex-archive/info/epslatex/french/fepslatex.pdf
5
Par exemple, si vous voulez voir vos figures mais aussi les « OverfullBoxMark. »
3

4

avant
\includegraphics[draft,scale=.2]{punch}
et après.

epss/punch.eps

5.5

avant
\includegraphics[draft,scale=.2]{punch}
et après.

5.5

5Graphisme

76

avant

et après.

Le mode draft est enclenché par défaut lorsque l’option de document draft est
spéciﬁée. Si vous voulez contrer l’eﬀet de l’option de document5 , il est possible
3
4
5

Utiliser locate ou find pour le trouver sur votre système.
http://tug.ctan.org/tex-archive/info/epslatex/french/fepslatex.pdf
Par exemple, si vous voulez voir vos figures mais aussi les « OverfullBoxMark. »5.4 Quelques extensions utiles

5.4 Quelques extensions utiles

77d’utiliser l’option final de la commande \includegraphics ou au moment d’inclure
l’extension avec \usepackage.

5.4

77

d’utiliser l’option final de la commande \includegraphics ou au moment d’inclure
l’extension avec \usepackage.

Quelques extensions utiles

5.4

Voici dans les paragraphes qui suivent trois extensions utiles pour la production de
documents contenant des graphiques.

Quelques extensions utiles
Voici dans les paragraphes qui suivent trois extensions utiles pour la production de
documents contenant des graphiques.

5.4.1 subfig

5.4.1 subfig

Cette extension permet de gérer des ﬁgures comportant plusieurs sous-ﬁgures, avec
numérotation automatique et possibilité de faire référence aux sous-ﬁgures ellesmêmes. Par exemple :(a) Magma(b) UZMK

Figure 5.2: Uniweria Zëkt\begin{figure}[htbp]\begin{center}\leavevmode\subfloat[Magma]{%\label{fig-uniweria-magma}\includegraphics[width=2cm]{magma}}\hspace{2cm}\subfloat[UZMK]{%\label{fig-uniweria-uzmk}\includegraphics[height=2cm]{uzmk}}\caption{Uniweria Zëkt}\label{fig-uniweria}\end{center}\end{figure}

Cette extension permet de gérer des ﬁgures comportant plusieurs sous-ﬁgures, avec
numérotation automatique et possibilité de faire référence aux sous-ﬁgures ellesmêmes. Par exemple :5(a) Magma(b) UZMK

Figure 5.2: Uniweria Zëkt\begin{figure}[htbp]\begin{center}\leavevmode\subfloat[Magma]{%\label{fig-uniweria-magma}\includegraphics[width=2cm]{magma}}\hspace{2cm}\subfloat[UZMK]{%\label{fig-uniweria-uzmk}\includegraphics[height=2cm]{uzmk}}\caption{Uniweria Zëkt}\label{fig-uniweria}\end{center}\end{figure}

Pour ce qui concerne les références, on peut soit référencer la ﬁgure globale par\ref{fig-uniweria} qui donne : 5.2, soit les sous-ﬁgures par leur label respectif :\ref{fig-uniweria-magma} et \ref{fig-uniweria-uzmk} qui donnent : 5.2a et
5.2b.

Pour ce qui concerne les références, on peut soit référencer la ﬁgure globale par\ref{fig-uniweria} qui donne : 5.2, soit les sous-ﬁgures par leur label respectif :\ref{fig-uniweria-magma} et \ref{fig-uniweria-uzmk} qui donnent : 5.2a et
5.2b.

Une manière élégante de gérer les \subfigures est d’encapsuler chacune d’elles
dans un environnement minipage. Le fichier subfig.pdf accompagnant la distribution, montre comment personnaliser l’environnement subfigure, notamment les espaces inter-légendes.

Une manière élégante de gérer les \subfigures est d’encapsuler chacune d’elles
dans un environnement minipage. Le fichier subfig.pdf accompagnant la distribution, montre comment personnaliser l’environnement subfigure, notamment les espaces inter-légendes.

5Graphisme

78

5.4.2 Le package wrapfig

5.4.2 Le package wrapfig

Le package wrapfig propose l’environnement wrapfigure permettant de faire ﬂotter
une ﬁgure dans un paragraphe. Il ne s’agit pas d’un environnement ﬂottant au sens
de l’environnement figure de LATEX puisqu’on spéciﬁe la position de la ﬁgure dansle paragraphe. La syntaxe est la suivante :Le package wrapfig propose l’environnement wrapfigure permettant de faire ﬂotter
une ﬁgure dans un paragraphe. Il ne s’agit pas d’un environnement ﬂottant au sens
de l’environnement figure de LATEX puisqu’on spéciﬁe la position de la ﬁgure dansle paragraphe. La syntaxe est la suivante :\begin{wrapfigure}{hpositioni}{hlargeuri}...
\end{wrapfigure}\begin{wrapfigure}{hpositioni}{hlargeuri}...
\end{wrapfigure}où hpositioni est la position de la ﬁgure (l ou r) et hlargeuri la largeur de la ﬁgureà insérer. Voici un exemple :où hpositioni est la position de la ﬁgure (l ou r) et hlargeuri la largeur de la ﬁgureà insérer. Voici un exemple :\begin{wrapfigure}{r}{1.5cm}\includegraphics[width=1cm]{polygons}\end{wrapfigure}Le package \ltxcom{wrapfig} n’est ---~à ma connaissance~--- pas
documenté sous la forme d’un fichier \texttt{dvi} ; par contre
il est possible...

5

Le package \wrapfig n’est — à ma connaissance — pas documenté
sous la forme d’un ﬁchier dvi ; par contre il est possible de trouver desinformations très détaillées dans le ﬁchier .sty lui-même qui se trouve
dans l’arborescence TEX dans : [...]/misc/wrapfig.sty. On notera au
passage — car il faut parler pour faire un paragraphe un peu long — quela règle veut que tout package soit « auto-documenté » grâce à une extension connue
sous le nom de docstrip. Ainsi toute extension — package en anglais — contient aussi
bien le code que la documentation. Une procédure d’installation permet d’extrairel’un et l’autre. L’auteur de wrapfig n’a vraisemblablement pas suivi cette règle, tantpis...

5.4.3 Le package psfrag
Une autre extension intéressante est l’extension psfrag. Elle a pour but de pouvoir
réunir la puissance d’un ﬁchier PostScript et la beauté des équations de LATEX. Un
problème se pose en eﬀet lorsque l’on veut intégrer des formules à un dessin, car lagénération d’équations n’est pas prévue dans la plupart de ces logiciels. La solution
adoptée par les auteurs de psfrag est d’utiliser la commande \psfrag pour insérer
les formules à la place de chaînes de caractères présentes dans le dessin. Ainsi, pour
avoir la ﬁgure 5.3b au lieu de la ﬁgure 5.3a, on a procédé comme suit :1. ajout avant le \includegraphics{courbe} la ligne :\psfrag{exp(-x)*sin(10*x)}[r][r]{$e^{-x}\sin(10x)$}

Graphisme78\begin{wrapfigure}{r}{1.5cm}\includegraphics[width=1cm]{polygons}\end{wrapfigure}Le package \ltxcom{wrapfig} n’est ---~à ma connaissance~--- pas
documenté sous la forme d’un fichier \texttt{dvi} ; par contre
il est possible...

5

Le package \wrapfig n’est — à ma connaissance — pas documenté
sous la forme d’un ﬁchier dvi ; par contre il est possible de trouver desinformations très détaillées dans le ﬁchier .sty lui-même qui se trouve
dans l’arborescence TEX dans : [...]/misc/wrapfig.sty. On notera au
passage — car il faut parler pour faire un paragraphe un peu long — quela règle veut que tout package soit « auto-documenté » grâce à une extension connue
sous le nom de docstrip. Ainsi toute extension — package en anglais — contient aussi
bien le code que la documentation. Une procédure d’installation permet d’extrairel’un et l’autre. L’auteur de wrapfig n’a vraisemblablement pas suivi cette règle, tantpis...

5.4.3 Le package psfrag
Une autre extension intéressante est l’extension psfrag. Elle a pour but de pouvoir
réunir la puissance d’un ﬁchier PostScript et la beauté des équations de LATEX. Un
problème se pose en eﬀet lorsque l’on veut intégrer des formules à un dessin, car lagénération d’équations n’est pas prévue dans la plupart de ces logiciels. La solution
adoptée par les auteurs de psfrag est d’utiliser la commande \psfrag pour insérer
les formules à la place de chaînes de caractères présentes dans le dessin. Ainsi, pour
avoir la ﬁgure 5.3b au lieu de la ﬁgure 5.3a, on a procédé comme suit :1. ajout avant le \includegraphics{courbe} la ligne :\psfrag{exp(-x)*sin(10*x)}[r][r]{$e^{-x}\sin(10x)$}

qui permet de remplacer la chaîne de caractères faisant oﬃce de légende parune belle équation ;qui permet de remplacer la chaîne de caractères faisant oﬃce de légende parune belle équation ;2. le résultat n’est pas visible dans le ﬁchier .dvi, par contre dvips se charge d’exploiter les instructions précédentes pour modiﬁer le ﬁchier PostScript généré.

2. le résultat n’est pas visible dans le ﬁchier .dvi, par contre dvips se charge d’exploiter les instructions précédentes pour modiﬁer le ﬁchier PostScript généré.

Le positionnement de la formule se fait en faisant correspondre deux points de référence, l’un appartenant à l’équation, l’autre à la chaîne de caractères à remplacer.

Le positionnement de la formule se fait en faisant correspondre deux points de référence, l’un appartenant à l’équation, l’autre à la chaîne de caractères à remplacer.

5.4 Quelques extensions utiles
1

5.4 Quelques extensions utiles

79
1

exp(-x)*sin(10*x)

0.8

0.8

0.6
0.4

1

e−x sin(10x)791exp(-x)*sin(10*x)

0.8

0.8

0.6

0.6

0.6

0.4

0.4

0.4

0.2

0.2

0.2

0.2

0

0

0

0

-0.2

-0.2

-0.2

-0.2

-0.4

-0.4

-0.4

-0.4

-0.6

-0.6

-0.6

-0.6

-0.8

-0.8

-0.8

0

1

2

3

4

5

0

(a) avant

1

2

3

4

5

e−x sin(10x)

-0.8
0

1

2

3

4

5

0

(a) avant(b) après

1

2

3

4

5

(b) aprèsFigure 5.3: Utilisation de psfrag, à gauche la ﬁgure originale, à droite la ﬁgure avec
un remplacement par une équation LATEX.

Figure 5.3: Utilisation de psfrag, à gauche la ﬁgure originale, à droite la ﬁgure avec
un remplacement par une équation LATEX.

C’est à l’utilisateur d’indiquer où se trouve ces points de référence, par l’intermédiaire de deux arguments optionnels à la commande \psfrag. Supposons qu’on
déﬁnisse ces points de référence comme suit :C’est à l’utilisateur d’indiquer où se trouve ces points de référence, par l’intermédiaire de deux arguments optionnels à la commande \psfrag. Supposons qu’on
déﬁnisse ces points de référence comme suit :\psfrag{chaîne}[l][c]{hequationi}\psfrag{chaîne}[l][c]{hequationi}

On aura alors l’assemblage suivant :chaîne•On aura alors l’assemblage suivant :et ⊙héquationi

donnechaîne⊙• héquationi

5

De même en écrivant :chaîne•et ⊙héquationi

donnechaîne⊙• héquationi

5

De même en écrivant :\psfrag{chaîne}[r][l]{hequationi}\psfrag{chaîne}[r][l]{hequationi}

on aura :on aura :et⊙ donnehéquationi•chaîne⊙•chaînehéquationi

Dans l’exemple de la ﬁgure 5.3b, on a fait correspondre le côté droit de l’équation(1er argument optionnel r) avec le côté droit de la chaîne (2e argument optionnel r).
La documentation du package est très instructive à ce sujet...
Attention, si on génère un document pdf à partir du source LATEX, on ne peututiliser le package psfrag qu’au prix de manipulations un ◮peu torduesN.

5.4.4 Le package xcolor

5.6

Du texte {en \color{red}rouge} et\textcolor{cyan}{en cyan}.

Une \fcolorbox{blue}{yellow}{autre boîte}.

⊙ donnehéquationi⊙•chaînehéquationi

Dans l’exemple de la ﬁgure 5.3b, on a fait correspondre le côté droit de l’équation(1er argument optionnel r) avec le côté droit de la chaîne (2e argument optionnel r).
La documentation du package est très instructive à ce sujet...
ch. A p. 199 ◭Attention, si on génère un document pdf à partir du source LATEX, on ne peututiliser le package psfrag qu’au prix de manipulations un ◮peu torduesN.

5.4.4 Le package xcolor

L’extension xcolor est mise au point par l’équipe qui a développé le package graphicx.
Il peut être intéressant — par exemple pour produire des transparents — de générer
du texte en couleur. Le package xcolor permet les constructions suivantes :Une boîte \colorbox{green}{Verte}.

etDu texte en rouge et en cyan.
Une boîte Verte .
Une autre boîte .

L’extension xcolor est mise au point par l’équipe qui a développé le package graphicx.
Il peut être intéressant — par exemple pour produire des transparents — de générer
du texte en couleur. Le package xcolor permet les constructions suivantes :Du texte {en \color{red}rouge} et\textcolor{cyan}{en cyan}.
Une boîte \colorbox{green}{Verte}.
Une \fcolorbox{blue}{yellow}{autre boîte}.

5.6•chaîneDu texte en rouge et en cyan.
Une boîte Verte .
Une autre boîte .

ch. A p. 199 ◭Graphisme

80
On aura compris qu’on dispose pour le texte :On aura compris qu’on dispose pour le texte :• de la déclaration :• de la déclaration :\color{hcouleuri}\color{hcouleuri}• et de la commande :• et de la commande :\textcolor{hcouleuri}{htextei}\textcolor{hcouleuri}{htextei}

et pour les boîtes :et pour les boîtes :• sans bordure :• sans bordure :\colorbox{hcouleur du fondi}{hcontenui}\colorbox{hcouleur du fondi}{hcontenui}• avec bordure :• avec bordure :Les deux commandes pour les boîtes en couleur sont sensibles à la longueur \fboxsep.
« Quid des couleurs qui n’ont pas de nom ? » vous entends-je marmonner in petto...
Ce à quoi je réponds sur le champ :Les deux commandes pour les boîtes en couleur sont sensibles à la longueur \fboxsep.
« Quid des couleurs qui n’ont pas de nom ? » vous entends-je marmonner in petto...
Ce à quoi je réponds sur le champ :Voici un bleu gris...

Voici un5 {\color[rgb]{.2,.4,.5}\bfseries bleu gris}...

\definecolor{bleugris}{rgb}{.2,.4,.5}
Voici un{\color{bleugris}\bfseries bleu gris}...

5.8

Il est aussi possible de donner un « petit nom » à cette dernière couleur :Voici un bleu gris...

\definecolor{bleugris}{rgb}{.2,.4,.5}
Voici un{\color{bleugris}\bfseries bleu gris}...

Vous noterez qu’en lieu et place du modèle de couleur « rgb » il est possible
d’utiliser le modèle gray de manière à définir des nuances de gris. De même, en
utilisant le modèle html, on pourra utiliser la syntaxe du langage Html pour spécifier lescouleurs.

Utiliser makeVoici un bleu gris...

Il est aussi possible de donner un « petit nom » à cette dernière couleur :5.8

Voici un5.7

\fcolorbox{hcouleur bordurei}{hcouleur fondi}{hcontenui}

5.7\fcolorbox{hcouleur bordurei}{hcouleur fondi}{hcontenui}

5 {\color[rgb]{.2,.4,.5}\bfseries bleu gris}...

5.5Graphisme

80

Voici un bleu gris...

Vous noterez qu’en lieu et place du modèle de couleur « rgb » il est possible
d’utiliser le modèle gray de manière à définir des nuances de gris. De même, en
utilisant le modèle html, on pourra utiliser la syntaxe du langage Html pour spécifier lescouleurs.

5.5

Utiliser makeCe paragraphe est destiné aux utilisateurs d’un système d’exploitation disposant del’utilitaire Gnu make (pour de plus amples informations sur cet utilitaire, n’hésitez
pas lire à l’incontournable [11]). Les autres peuvent passer leur chemin...

Ce paragraphe est destiné aux utilisateurs d’un système d’exploitation disposant del’utilitaire Gnu make (pour de plus amples informations sur cet utilitaire, n’hésitez
pas lire à l’incontournable [11]). Les autres peuvent passer leur chemin...

Voici donc une idée de makeﬁle qui vous permettra d’automatiser la génération :Voici donc une idée de makeﬁle qui vous permettra d’automatiser la génération :• des ﬁchiers au format Eps à partir des images « bitmaps » ;• des ﬁchiers au format Eps à partir des images « bitmaps » ;• des ﬁchiers au format Eps à partir de ﬁchiers stockés dans le format d’unlogiciel de dessin vectoriel.

• des ﬁchiers au format Eps à partir de ﬁchiers stockés dans le format d’unlogiciel de dessin vectoriel.

On souhaite pour ce faire, élaborer une cible que l’on précisera en ligne de commande :On souhaite pour ce faire, élaborer une cible que l’on précisera en ligne de commande :5.5 Utiliser make

Makefile

5.5 Utiliser make81

maitre.tex

Figs

f.fig

i.png

Imgs

j.png

k.jpg

Epss

f.eps

Makefile

i.eps

j.eps

k.eps

Figure 5.4: Proposition d’arborescence pour stocker les ﬁchiers graphiques : unrépertoire pour les images et un répertoire pour les graphiques vectoriels. Les ﬁchiersau format Eps sont enregistrés dans un répertoire à part.

Tout d’abord on fait la liste des ﬁchiers au format Jpeg et Png (c’est un exemple)
en stockant cette liste dans deux variables comme suit :PNGS=$(notdir $(wildcard $(IMGSDIR)/*.png))
JPGS=$(notdir $(wildcard $(IMGSDIR)/*.jpg))
La fonction wildcard permet d’obtenir la liste des ﬁchiers contenu dans le dossier $(IMGSDIR) tandis que la fonction notdir supprime la partie « répertoire » dechacun des ﬁchiers. Finalement la variable PNGS contiendra :i.png j.png

5

k.jpg

f.eps

i.eps

j.eps

k.eps

Tout d’abord on fait la liste des ﬁchiers au format Jpeg et Png (c’est un exemple)
en stockant cette liste dans deux variables comme suit :PNGS=$(notdir $(wildcard $(IMGSDIR)/*.png))
JPGS=$(notdir $(wildcard $(IMGSDIR)/*.jpg))
La fonction wildcard permet d’obtenir la liste des ﬁchiers contenu dans le dossier $(IMGSDIR) tandis que la fonction notdir supprime la partie « répertoire » dechacun des ﬁchiers. Finalement la variable PNGS contiendra :i.png j.png

k.jpg

Epss/i.eps Epss/j.eps Epss/k.eps

j.png

5.5.1 Convertir les imagesk.jpg

L’expression à droite de l’aﬀectation permet de changer l’extension en eps dans lesdeux listes précédentes et de préﬁxer chaque nom par le répertoire de stockage desﬁchiers Eps. IMG2EPSS contiendra donc :

i.png

Epss

FIGSDIR=Figs
EPSSDIR=Epss
IMGSDIR=Imgs

et JPGS :IMGS2EPSS=$(patsubst %,$(EPSSDIR)/%,\$(PNGS:.png=.eps) $(JPGS:.jpg=.eps))

f.fig

Imgs

On suppose que les images et les ﬁchiers de dessins sont respectivement stockés dansles sous-répertoire Imgs et Figs du répertoire contenant le document maître et que
les ﬁchiers Eps fabriqués seront également stockés dans un sous-répertoire Epss (voirla ﬁgure 5.4). On commencera donc par déﬁnir un ensemble de variables précisantles diﬀérents répertoires à utiliser :et JPGS :On peut ensuite à partir de ces deux variables créer la liste des ﬁchiers Eps à fabriquer(rappelez-vous qu’ils doivent résider dans un répertoire à part) :Figs

make figs

On suppose que les images et les ﬁchiers de dessins sont respectivement stockés dansles sous-répertoire Imgs et Figs du répertoire contenant le document maître et que
les ﬁchiers Eps fabriqués seront également stockés dans un sous-répertoire Epss (voirla ﬁgure 5.4). On commencera donc par déﬁnir un ensemble de variables précisantles diﬀérents répertoires à utiliser :5.5.1 Convertir les images

maitre.tex

Figure 5.4: Proposition d’arborescence pour stocker les ﬁchiers graphiques : unrépertoire pour les images et un répertoire pour les graphiques vectoriels. Les ﬁchiersau format Eps sont enregistrés dans un répertoire à part.

make figs

FIGSDIR=Figs
EPSSDIR=Epss
IMGSDIR=Imgs

81

On peut ensuite à partir de ces deux variables créer la liste des ﬁchiers Eps à fabriquer(rappelez-vous qu’ils doivent résider dans un répertoire à part) :IMGS2EPSS=$(patsubst %,$(EPSSDIR)/%,\$(PNGS:.png=.eps) $(JPGS:.jpg=.eps))
L’expression à droite de l’aﬀectation permet de changer l’extension en eps dans lesdeux listes précédentes et de préﬁxer chaque nom par le répertoire de stockage desﬁchiers Eps. IMG2EPSS contiendra donc :Epss/i.eps Epss/j.eps Epss/k.eps

5Graphisme

82

Cette liste constitue les « prérequis » (au sens de make) pour fabriquer les images.
On déﬁnit donc la cible figs comme suit :Cette liste constitue les « prérequis » (au sens de make) pour fabriquer les images.
On déﬁnit donc la cible figs comme suit :figs : $(IMGS2EPSS)

figs : $(IMGS2EPSS)

Il faudra également expliquer à make comment on peut fabriquer un ﬁchier au format
postscript encapsulé à partir d’une image. Ceci pourra s’écrire à l’aide de la règlesuivante :Il faudra également expliquer à make comment on peut fabriquer un ﬁchier au format
postscript encapsulé à partir d’une image. Ceci pourra s’écrire à l’aide de la règlesuivante :$(EPSSDIR)/%.eps : $(IMGSDIR)/%.png
7−→ convert $< EPS:$@$(EPSSDIR)/%.eps : $(IMGSDIR)/%.jpg
7−→ convert $< EPS:$@$(EPSSDIR)/%.eps : $(IMGSDIR)/%.png
7−→ convert $< EPS:$@$(EPSSDIR)/%.eps : $(IMGSDIR)/%.jpg
7−→ convert $< EPS:$@qui précise qu’on utilisera l’utilitaire convert6 pour convertir un ﬁchier Png ou Jpeg
en Eps.

qui précise qu’on utilisera l’utilitaire convert6 pour convertir un ﬁchier Png ou Jpeg
en Eps.

5.5.2 Convertir les fichiers de dessin

5.5.2 Convertir les fichiers de dessin

La conversion des ﬁchiers de dessins suit exactement le même principe. Supposons
qu’on dispose de sources au format Fig provenant de xfig et au format Svg provenantde Inkscape. On aura alors dans le makefile :FIGS=$(notdir $(wildcard $(FIGSDIR)/*.fig))
SVGS=$(notdir $(wildcard $(FIGSDIR)/*.svg))
FIGS2EPSS=$(patsubst %,$(EPSSDIR)/%,\$(FIGS:.fig=.eps) $(SVGS:.svg=.eps))5

La conversion des ﬁchiers de dessins suit exactement le même principe. Supposons
qu’on dispose de sources au format Fig provenant de xfig et au format Svg provenantde Inkscape. On aura alors dans le makefile :FIGS=$(notdir $(wildcard $(FIGSDIR)/*.fig))
SVGS=$(notdir $(wildcard $(FIGSDIR)/*.svg))
FIGS2EPSS=$(patsubst %,$(EPSSDIR)/%,\$(FIGS:.fig=.eps) $(SVGS:.svg=.eps))5

Les règles de conversion sont bien évidemment diﬀérentes puisqu’elles font appel
l’une à fig2dev (utilitaire connexe à xfig) et à Inkscape lui-même pour l’autre :Les règles de conversion sont bien évidemment diﬀérentes puisqu’elles font appel
l’une à fig2dev (utilitaire connexe à xfig) et à Inkscape lui-même pour l’autre :$(EPSSDIR)/%.eps : $(FIGSDIR)/%.fig
7−→ fig2dev -L eps $< > $@$(EPSSDIR)/%.eps : $(FIGSDIR)/%.svg
7−→ inkscape -E $@ $<$(EPSSDIR)/%.eps : $(FIGSDIR)/%.fig
7−→ fig2dev -L eps $< > $@$(EPSSDIR)/%.eps : $(FIGSDIR)/%.svg
7−→ inkscape -E $@ $<La cible permettant de fabriquer les ﬁchiers de dessins et les images devient ﬁnalement :La cible permettant de fabriquer les ﬁchiers de dessins et les images devient ﬁnalement :figs : $(IMGS2EPSS) $(FIGS2EPSS)

5.6

À part çaGraphisme82

figs : $(IMGS2EPSS) $(FIGS2EPSS)

5.6

À part çaOn peut trouver un grand nombre d’extensions permettant de produire des graphiques correspondant à un besoin particulier (arbres, circuits électroniques, histogrammes,...). Vous pouvez en eﬀet avoir besoin, un jour, de générer des graphiquesde manière automatique à partir d’une commande. Jetez alors un coup d’oeil sur lesdiﬀérentes extensions disponibles (pstricks, METAPOST,...) ainsi que sur l’environnement picture et ses extensions epic et eepic. Bon courage !

On peut trouver un grand nombre d’extensions permettant de produire des graphiques correspondant à un besoin particulier (arbres, circuits électroniques, histogrammes,...). Vous pouvez en eﬀet avoir besoin, un jour, de générer des graphiquesde manière automatique à partir d’une commande. Jetez alors un coup d’oeil sur lesdiﬀérentes extensions disponibles (pstricks, METAPOST,...) ainsi que sur l’environnement picture et ses extensions epic et eepic. Bon courage !

6
Du package ImageMagick disponible à http://www.imagemagick.org, qui convertit à peu près
tout format d’images

6
Du package ImageMagick disponible à http://www.imagemagick.org, qui convertit à peu près
tout format d’images

6

6Documents scientifiques
Sommaire

Sommaire

6.1

Article6.1

Article6.2

Bibliographie

6.2

Bibliographie

6.3

Index

6.3

Index

6.4

Diviser votre document

6.4

Diviser votre document

Les sages thésaurisent la sciencemais la bouche du fou
est un danger permanent.

Les sages thésaurisent la sciencemais la bouche du fou
est un danger permanent.

Les proverbes Pr 10 14.

Les proverbes Pr 10 14.

oici venu le moment de vous parler des quelques caractéristiques des documents
V
dits scientifiques. Si le problème des formules et autres équations a été abordé
avec brio au chapitre 3, il reste tout de même un gros morceau à avaler : la bibliographie. Sachez quand même que si l’ingurgitation peut être diﬃcile, la suite vous
permettra de vous simpliﬁer grandement le travail. Nous proﬁterons également dece chapitre pour expliquer le principe de la génération d’index.
Nous vous parlerons donc des quelques particularités de la rédaction d’article,
ensuite viendra un exposé sur la génération d’une bibliographie, la génération d’index, enﬁn la méthode utile à connaître pour diviser un gros document en petites
parties.

6.1

Documents scientifiques

Articleoici venu le moment de vous parler des quelques caractéristiques des documents
V
dits scientifiques. Si le problème des formules et autres équations a été abordé
avec brio au chapitre 3, il reste tout de même un gros morceau à avaler : la biblio-

6

graphie. Sachez quand même que si l’ingurgitation peut être diﬃcile, la suite vous
permettra de vous simpliﬁer grandement le travail. Nous proﬁterons également dece chapitre pour expliquer le principe de la génération d’index.
Nous vous parlerons donc des quelques particularités de la rédaction d’article,
ensuite viendra un exposé sur la génération d’une bibliographie, la génération d’index, enﬁn la méthode utile à connaître pour diviser un gros document en petites
parties.

6.1

Pour rédiger un article, rien de bien nouveau, tout ce qui a été vu jusqu’ici s’applique.
On notera juste l’utilisation dans le préambule, des commandes :ArticlePour rédiger un article, rien de bien nouveau, tout ce qui a été vu jusqu’ici s’applique.
On notera juste l’utilisation dans le préambule, des commandes :• \title pour déﬁnir le titre,• \title pour déﬁnir le titre,• \date pour déﬁnir la date,• \date pour déﬁnir la date,• \author pour déﬁnir les auteurs,• \author pour déﬁnir les auteurs,• \thanks pour spéciﬁer l’aﬃliation des auteurs.

• \thanks pour spéciﬁer l’aﬃliation des auteurs.

Pour insérer le titre à partir de ces déﬁnitions, il est nécessaire d’ajouter la commande\maketitle après le \begin{document} :\documentclass{article}\title{Le seuillage à 128 : une révolution !}\author{M. C. Orlanrien\\

83

Pour insérer le titre à partir de ces déﬁnitions, il est nécessaire d’ajouter la commande\maketitle après le \begin{document} :\documentclass{article}\title{Le seuillage à 128 : une révolution !}\author{M. C. Orlanrien\\83

6Documents scientifiques

84
Institut du Pixel\\
42007 Saint-Etienne---FRANCE}\date{2 Avril 1927}

Institut du Pixel\\
42007 Saint-Etienne---FRANCE}\date{2 Avril 1927}\begin{document}\maketitle% c’est ici qu’ est inséré le titre...
\end{document}\begin{document}\maketitle% c’est ici qu’ est inséré le titre...
\end{document}

Nous répétons1 : c’est la commande \maketitle qui génère et insère le titre et nonles déﬁnitions du préambule.
En règle générale, les conférences ou revues qui fournissent un ﬁchier de style,proposent quelques variantes, par exemple une commande \address pour séparer
les auteurs et leur adresse respective, etc. Mais l’idée de base reste la même.

6.2

6Documents scientifiques

84

Nous répétons1 : c’est la commande \maketitle qui génère et insère le titre et nonles déﬁnitions du préambule.
En règle générale, les conférences ou revues qui fournissent un ﬁchier de style,proposent quelques variantes, par exemple une commande \address pour séparer
les auteurs et leur adresse respective, etc. Mais l’idée de base reste la même.

Bibliographie

6.2

Bibliographie

Il existe deux manières de rédiger une bibliographie avec LATEX : l’une que l’on peut
qualiﬁer de « manuelle » consiste à insérer un environnement thebibliography dansle document, l’autre que nous allons décrire ici, utilise le programme BibTEX. Voici
le principe :Il existe deux manières de rédiger une bibliographie avec LATEX : l’une que l’on peut
qualiﬁer de « manuelle » consiste à insérer un environnement thebibliography dansle document, l’autre que nous allons décrire ici, utilise le programme BibTEX. Voici
le principe :1. on crée un ou plusieurs ﬁchiers de données contenant une description de chaqueentrée de bibliographie (article, conférence,...) au format BibTEX. C’est l’inévitable tâche de saisie,

1. on crée un ou plusieurs ﬁchiers de données contenant une description de chaqueentrée de bibliographie (article, conférence,...) au format BibTEX. C’est l’inévitable tâche de saisie,

2. dans le document, on fait référence aux entrées par la commande \cite,6

2. dans le document, on fait référence aux entrées par la commande \cite,

3. la bibliographie sera formatée automatiquement selon un style particulier quevous choisirez.

3. la bibliographie sera formatée automatiquement selon un style particulier quevous choisirez.

L’avantage de cette méthode est que vous saisissez une fois pour toute les entréesde votre bibliographie. De plus, vous n’avez pas à vous soucier de sa mise en page,dans la mesure où vous utilisez des fichiers de style ; il en existe plusieurs dizaines
correspondant à toutes sortes de standards, revues et autres conférences. On trouve
aussi sur internet beaucoup de bases de données bibliographiques au format BibTEX
que l’on peut utiliser directement dans ses documents.
Nous répétons qu’il existe des standards en matière de bibliographie, mais que
malheureusement certaines revues prennent un malin plaisir à pondre leur propre
style de bibliographie. Le jour où vous publierez dans ce genre de revue, vous aurezà créer ou adapter un ﬁchier de style. Pour ce faire, cherchez du coté de l’utilitaire
makebst.

L’avantage de cette méthode est que vous saisissez une fois pour toute les entréesde votre bibliographie. De plus, vous n’avez pas à vous soucier de sa mise en page,dans la mesure où vous utilisez des fichiers de style ; il en existe plusieurs dizaines
correspondant à toutes sortes de standards, revues et autres conférences. On trouve
aussi sur internet beaucoup de bases de données bibliographiques au format BibTEX
que l’on peut utiliser directement dans ses documents.
Nous répétons qu’il existe des standards en matière de bibliographie, mais que
malheureusement certaines revues prennent un malin plaisir à pondre leur propre
style de bibliographie. Le jour où vous publierez dans ce genre de revue, vous aurezà créer ou adapter un ﬁchier de style. Pour ce faire, cherchez du coté de l’utilitaire
makebst.

6.2.1 Fichier .bib

6.2.1 Fichier .bib

La première opération est de constituer le ﬁchier de bibliographie qui doit de préférence porter l’extension .bib. Ce ﬁchier doit suivre une syntaxe particulière. Toutd’abord, il faut savoir que BibTEX distingue chaque entrée par son type. Ainsi,
2

1
2

Parce qu’il paraît qu’enseigner c’est répéter
Le module AucTEX d’Emacs possède un mode BibTEX très pratique.

La première opération est de constituer2 le ﬁchier de bibliographie qui doit de préférence porter l’extension .bib. Ce ﬁchier doit suivre une syntaxe particulière. Toutd’abord, il faut savoir que BibTEX distingue chaque entrée par son type. Ainsi,
1
2

Parce qu’il paraît qu’enseigner c’est répéter
Le module AucTEX d’Emacs possède un mode BibTEX très pratique.

6.2 Bibliographie

6.2 Bibliographie

85

85

chaque entrée correspond à un type de document : livre, article, conférence, rapport
technique,... En tout plus d’une douzaine de types de document diﬀérents.

chaque entrée correspond à un type de document : livre, article, conférence, rapport
technique,... En tout plus d’une douzaine de types de document diﬀérents.

Accompagnant les distributions LATEX, on trouve normalement un fichier nommé
BibTEXing (généralement sous le nom btxdoc.dvi) écrit par Oran Patashnik
il y a une vingtaine d’années et contenant une source importante d’information sur lamanière de constuire un fichier au format BibTEX.

Accompagnant les distributions LATEX, on trouve normalement un fichier nommé
BibTEXing (généralement sous le nom btxdoc.dvi) écrit par Oran Patashnik
il y a une vingtaine d’années et contenant une source importante d’information sur lamanière de constuire un fichier au format BibTEX.

Chaque type d’entrée contient à son tour un certain nombre de champs décrivant
l’entrée. La structure d’une entrée de bibliographie est la suivante :Chaque type d’entrée contient à son tour un certain nombre de champs décrivant
l’entrée. La structure d’une entrée de bibliographie est la suivante :@hentreei{hclefi,hchamp1 i = {...},
hchamp2 i = {...},...
hchampn i = {...}}
où hentreei est le type de document (article, inproceedings,...) et hchamp1 i,
hchamp2 i, ..., hchampn i sont les diﬀérents champs de l’entrée de bibliographie. Ces
diﬀérents mots réservés de BibTEX peuvent être saisis en majuscules ou en minuscules.
Le symbole hclefi doit identiﬁer le document de manière univoque. Ce symbole està rapprocher du symbole identiﬁant une étiquette avec \label. Pour vous permettrede commencer à utiliser rapidement BibTEX nous vous donnons, ici, un exemple pourles trois principales entrées que vous serez amené à utiliser :Article dans une revue
Un article dans une revue doit être saisi comme suit :@article{qtz:UchArb,
author ={Uchiyama, Toshio and Arbib, Michael A.},
title = {Color Image Segmentation Using Competitive Learning},
journal=pami,
volume =16, number=2, pages={1197--1206},
month=dec, year=1994}

Notez que :@hentreei{hclefi,hchamp1 i = {...},
hchamp2 i = {...},...
hchampn i = {...}}

6

où hentreei est le type de document (article, inproceedings,...) et hchamp1 i,
hchamp2 i, ..., hchampn i sont les diﬀérents champs de l’entrée de bibliographie. Ces
diﬀérents mots réservés de BibTEX peuvent être saisis en majuscules ou en minuscules.
Le symbole hclefi doit identiﬁer le document de manière univoque. Ce symbole està rapprocher du symbole identiﬁant une étiquette avec \label. Pour vous permettrede commencer à utiliser rapidement BibTEX nous vous donnons, ici, un exemple pourles trois principales entrées que vous serez amené à utiliser :Article dans une revue
Un article dans une revue doit être saisi comme suit :@article{qtz:UchArb,
author ={Uchiyama, Toshio and Arbib, Michael A.},
title = {Color Image Segmentation Using Competitive Learning},
journal=pami,
volume =16, number=2, pages={1197--1206},
month=dec, year=1994}

Notez que :1. les champs author, title, journal, year sont obligatoires ;1. les champs author, title, journal, year sont obligatoires ;2. pour les auteurs il est impératif de suivre l’ordre hnomi, hprénomi et deséparer tous les auteurs par and ;2. pour les auteurs3 il est impératif de suivre l’ordre hnomi, hprénomi et deséparer tous les auteurs par and ;3. pour les auteurs ayant un nom composé ou à particule, on saisira :3. pour les auteurs ayant un nom composé ou à particule, on saisira :3

author="de la Motte Beuvron, Alain"author="de la Motte Beuvron, Alain"donc en respectant l’ordre hparticulei, hnomi, hprenomi et en utilisant la virgule en guise de séparateur comme indiqué ci-dessus ;donc en respectant l’ordre hparticulei, hnomi, hprenomi et en utilisant la virgule en guise de séparateur comme indiqué ci-dessus ;3
Ces remarques concernant les auteurs sont valables pour les autres entrées (conférences, livres,etc.)

3
Ces remarques concernant les auteurs sont valables pour les autres entrées (conférences, livres,
etc.)

6

Documents scientifiques86

4. tous les mois de l’année peuvent être produits grâce aux chaînes : jan, feb,
mar, etc.

4. tous les mois de l’année peuvent être produits grâce aux chaînes : jan, feb,
mar, etc.

Nous avons créé par commodité l’abréviation pami qui est déﬁnie au début de notreﬁchier .bib par :Nous avons créé par commodité l’abréviation pami qui est déﬁnie au début de notreﬁchier .bib par :@string{pami="IEEE transactions on Pattern Analysis and MachineIntelligence"}@string{pami="IEEE transactions on Pattern Analysis and MachineIntelligence"}

Article dans une conférence

Article dans une conférence

Eh oui, BibTEX distingue un article dans une revue, et un article dans une conférence. La structure est sensiblement la même, si ce n’est qu’on utilise le champ
booktitle pour le titre de la conférence, à la place du titre de la revue :Eh oui, BibTEX distingue un article dans une revue, et un article dans une conférence. La structure est sensiblement la même, si ce n’est qu’on utilise le champ
booktitle pour le titre de la conférence, à la place du titre de la revue :@Inproceedings{qtz:BouOrch,author={Bouman, Charles A. and Orchard, Michael T.}
title={Color Image Display with a Limited Palette Size},booktitle={SPIE Conference on Visual Communications
and Image Processing},
volume=1199,pages={522--533},
year=1989}@Inproceedings{qtz:BouOrch,author={Bouman, Charles A. and Orchard, Michael T.}
title={Color Image Display with a Limited Palette Size},booktitle={SPIE Conference on Visual Communications
and Image Processing},
volume=1199,pages={522--533},
year=1989}

Ici les champs author, title, booktitle, year sont obligatoires, et l’on doit choisir
entre volume et number.

6

Documents scientifiques86

Un extrait de livre
On cite souvent un extrait—chapitre(s), ou page(s)—d’un livre plutôt que le livre
lui-même :@inBook{col:McA,
author ={MacAdam, David L.},
title =
{Color Measurement},
chapter =4,
pages= {48--49},
publisher = {Springer-Verlag},year =
1985}

Ici les champs author, title, booktitle, year sont obligatoires, et l’on doit choisir
entre volume et number.

6

Un extrait de livre
On cite souvent un extrait—chapitre(s), ou page(s)—d’un livre plutôt que le livre
lui-même :@inBook{col:McA,
author ={MacAdam, David L.},
title =
{Color Measurement},
chapter =4,
pages= {48--49},
publisher = {Springer-Verlag},year =
1985}

Sont obligatoires : author, title, chapter ou pages, publisher (l’éditeur) et year.

Sont obligatoires : author, title, chapter ou pages, publisher (l’éditeur) et year.

Encore une fois nous ne saurons trop vous conseiller d’exploiter le mode BibTEX dumodule AucTEX d’Emacs. Ce mode vous propose notamment un menu contenant
tous les types d’entrée. La sélection d’un item de ce menu insère un « squelette » d’entréedans votre fichier .bib. Ce module est téléchargeable à ftp://ftp.lip6.fr/pub/TeX/
CTAN/support/auctex et également disponible sous la forme d’un paquet Debian.

Encore une fois nous ne saurons trop vous conseiller d’exploiter le mode BibTEX dumodule AucTEX d’Emacs. Ce mode vous propose notamment un menu contenant
tous les types d’entrée. La sélection d’un item de ce menu insère un « squelette » d’entréedans votre fichier .bib. Ce module est téléchargeable à ftp://ftp.lip6.fr/pub/TeX/
CTAN/support/auctex et également disponible sous la forme d’un paquet Debian.

6.2.2 Citation
Une fois le (ou les) ﬁchier(s) de bibliographie constitué(s), on peut faire référence
aux entrées par l’intermédiaire des clefs, avec la commande \cite :\cite{hclefi}
La commande \cite a pour eﬀet :6.2.2 Citation
Une fois le (ou les) ﬁchier(s) de bibliographie constitué(s), on peut faire référence
aux entrées par l’intermédiaire des clefs, avec la commande \cite :\cite{hclefi}
La commande \cite a pour eﬀet :6.2 Bibliographie

6.2 Bibliographie

87

87

1. d’insérer un renvoi dont la forme dépend du style choisi ([2], [Loz95],...),

1. d’insérer un renvoi dont la forme dépend du style choisi ([2], [Loz95],...),

2. d’ajouter l’article cité dans la bibliographie de votre document.

2. d’ajouter l’article cité dans la bibliographie de votre document.

Un article—au sens large du terme—n’apparaît dans la bibliographie que s’il fait
l’objet d’une commande \cite. Pour qu’un article apparaisse sans pour autantêtre cité, il faut utiliser la commande \nocite{hclefi}. L’article référencé par hclefi sera
alors inséré dans la bibliographie. Par ailleurs, la commande \nocite{*} insère toutes lesentrées de votre fichier de biblio.

Un article—au sens large du terme—n’apparaît dans la bibliographie que s’il fait
l’objet d’une commande \cite. Pour qu’un article apparaisse sans pour autantêtre cité, il faut utiliser la commande \nocite{hclefi}. L’article référencé par hclefi sera
alors inséré dans la bibliographie. Par ailleurs, la commande \nocite{*} insère toutes lesentrées de votre fichier de biblio.

Avant de passer à l’étape de génération proprement dite, il est nécessaire d’insérer
à la ﬁn du document LATEX un appel à la commande :Avant de passer à l’étape de génération proprement dite, il est nécessaire d’insérer
à la ﬁn du document LATEX un appel à la commande :\bibliographystyle\bibliographystylepour stipuler un style de bibliographie, puis un appel à la commande :pour stipuler un style de bibliographie, puis un appel à la commande :\bibliography\bibliography

pour insérer eﬀectivement la bibliographie. Pour le style :pour insérer eﬀectivement la bibliographie. Pour le style :\bibliographystyle{hstylei}
Les trois hstyleis prédéﬁnis

4\bibliographystyle{hstylei}

de LAT X sont :Les trois hstyleis prédéﬁnis4 de LATEX sont :E• plain les citations sont sous la forme [2], et la bibliographie est classée parauteur,• unsrt idem mais pas de tri, les documents apparaissent dans l’ordre où ils sontcités ; très utilisé pour les actes de conférences.
• alpha les citations sont sous la forme « auteurs abrégés + année ».
Il faut ensuite spéciﬁer quels sont les ﬁchiers contenant les informations bibliographiques sur lesquelles « pointent » les commandes \cite de votre document :\bibliography{hfichier1,fichier2,...i}6• plain les citations sont sous la forme [2], et la bibliographie est classée parauteur,• unsrt idem mais pas de tri, les documents apparaissent dans l’ordre où ils sontcités ; très utilisé pour les actes de conférences.
• alpha les citations sont sous la forme « auteurs abrégés + année ».
Il faut ensuite spéciﬁer quels sont les ﬁchiers contenant les informations bibliographiques sur lesquelles « pointent » les commandes \cite de votre document :\bibliography{hfichier1,fichier2,...i}indiquera à BibTEX de considérer les ﬁchiers fichier1.bib, fichier2.bib,... lorsde son traitement.

6.2.3 Génération

indiquera à BibTEX de considérer les ﬁchiers fichier1.bib, fichier2.bib,... lorsde son traitement.

6.2.3 Génération

Pour générer la bibliographie :Pour générer la bibliographie :1. eﬀectuer une première compilation avec LATEX pour que le ﬁchier auxiliaire
doc.aux contienne les informations de citations :doc.texdoc.aux

LATEX

4
Cherchez sur les sites CTAN, dans le répertoire biblio/bibtex/contrib il y a plusieurs
dizaines d’autres styles disponibles.

1. eﬀectuer une première compilation avec LATEX pour que le ﬁchier auxiliaire
doc.aux contienne les informations de citations :doc.texdoc.aux

LATEX

4
Cherchez sur les sites CTAN, dans le répertoire biblio/bibtex/contrib il y a plusieurs
dizaines d’autres styles disponibles.

6Documents scientifiques

88

Documents scientifiques88

2. lancer BibTEX pour générer la bibliographie dans le ﬁchier doc.bbl :2. lancer BibTEX pour générer la bibliographie dans le ﬁchier doc.bbl :bibtex doc

bibtex doc

fichier1.bib

doc.bbldoc.aux

fichier1.bib

BibTEX

doc.bbl

3. eﬀectuer une deuxième compilation avec LATEX pour insérer la bibliographie :doc.aux

doc.tex

LATEX

Si vous êtes curieux, vous verrez que le ﬁchier doc.bbl contient un environnement thebibliography prêt à l’emploi5 et que le ﬁchier doc.blg est l’équivalent du.log : un ﬁchier « log » contenant les éventuelles erreurs ou warnings de la dernière
utilisation de BibTEX.

doc.aux

4. résoudre les références croisées par une troisième compilation.
Si vous êtes curieux, vous verrez que le ﬁchier doc.bbl contient un environnement thebibliography prêt à l’emploi5 et que le ﬁchier doc.blg est l’équivalent du.log : un ﬁchier « log » contenant les éventuelles erreurs ou warnings de la dernière
utilisation de BibTEX.

6

Le programme BibTEX est sensible à la variable d’environnment BIBINPUTS. Il peut
donc parfois être nécessaire d’ajouter la ligne :Le programme BibTEX est sensible à la variable d’environnment BIBINPUTS. Il peut
donc parfois être nécessaire d’ajouter la ligne :export BIBINPUTS=$HOME/LaTeX/biblio//:export BIBINPUTS=$HOME/LaTeX/biblio//:dans votre .bash_profile pour que BibTEX cherche vos fichiers de bibliographie dansle répertoire $HOME/LaTeX/biblio (c’est un exemple).

6.3

doc.bblLATEX

4. résoudre les références croisées par une troisième compilation.

6

doc.aux

BibTEX

3. eﬀectuer une deuxième compilation avec LATEX pour insérer la bibliographie :doc.texdoc.bblIndex
La génération d’index s’appuie sur deux concepts :dans votre .bash_profile pour que BibTEX cherche vos fichiers de bibliographie dansle répertoire $HOME/LaTeX/biblio (c’est un exemple).

6.3

Index
La génération d’index s’appuie sur deux concepts :1. l’ajout de commandes \index dans le document LATEX pour ajouter des entrées
dans l’index ;1. l’ajout de commandes \index dans le document LATEX pour ajouter des entrées
dans l’index ;2. l’utilisation du programme makeindex qui va trier et mettre en page l’index
proprement dit.

2. l’utilisation du programme makeindex qui va trier et mettre en page l’index
proprement dit.

C’est la commande \printindex qui insère l’index dans le document. Cette commande est analogue à la commande \tableofcontents.

C’est la commande \printindex qui insère l’index dans le document. Cette commande est analogue à la commande \tableofcontents.

5

C’est-à-dire celui que vous auriez dû vous palucher si vous n’utilisiez pas BibTEX.

5

C’est-à-dire celui que vous auriez dû vous palucher si vous n’utilisiez pas BibTEX.

6.3 Index

6.3 Index

89

6.3.1 Ce qu’il faut faire89

6.3.1 Ce qu’il faut faire

Voici un petit mémo pour faire un index.

Voici un petit mémo pour faire un index.

1. rajouter deux commandes dans le document maître :←\makeindex\begin{document}... le document ...
\printindex

1. rajouter deux commandes dans le document maître :pour dire à LAT X de générer les index← Pour réellement l’insérer dans le document\end{document}← pour dire à LATEX de générer les index\makeindex\begin{document}... le document ...
\printindex

E← Pour réellement l’insérer dans le document\end{document}

2. ajouter une entrée dans l’index :2. ajouter une entrée dans l’index :← insère « bidule » dans l’index\index{bidule}← insère « bidule » dans l’index\index{bidule}

3. pour générer l’index pour le document doc.tex, on lancera successivement lestrois commandes suivantes :3. pour générer l’index pour le document doc.tex, on lancera successivement lestrois commandes suivantes :latex doc
makeindex doc
latex doc

latex doc
makeindex doc
latex doc

6.3.2 Détail du fonctionnement

6.3.2 Détail du fonctionnement

La première compilation du document doc.tex (à la condition que la séquence decontrôle \makeindex soit présente dans son préambule) génère un ﬁchier doc.idx
contenant les entrées de l’index « en vrac » :doc.tex6

La première compilation du document doc.tex (à la condition que la séquence decontrôle \makeindex soit présente dans son préambule) génère un ﬁchier doc.idx
contenant les entrées de l’index « en vrac » :doc.idx

doc.texdoc.idx

LAT X
E

LAT X

On utilise ensuite makeindex pour classer et supprimer les doublons dans ce ﬁchierdoc.idx, le résultat est mis dans doc.ind ; une trace de l’exécution est stockée dans
doc.ilg :On utilise ensuite makeindex pour classer et supprimer les doublons dans ce ﬁchierdoc.idx, le résultat est mis dans doc.ind ; une trace de l’exécution est stockée dans
doc.ilg :doc.idxE

doc.inddoc.ilg

makeindex

doc.idx

doc.inddoc.ilg

makeindex

makeindex est bavard sur le terminal ; voici ce qu’il dit pour générer l’index de ce
document :makeindex est bavard sur le terminal ; voici ce qu’il dit pour générer l’index de ce
document :This is makeindex, version 2.13 [07-Mar-1997] (using kpathsea).
Scanning input file guide.idx....done (982 entries accepted, 0 rejected).
Sorting entries...........done (11254 comparisons).
Generating output file guide.ind....done (745 lines written, 0 warnings).
Output written in guide.ind.
Transcript written in guide.ilg.

This is makeindex, version 2.13 [07-Mar-1997] (using kpathsea).
Scanning input file guide.idx....done (982 entries accepted, 0 rejected).
Sorting entries...........done (11254 comparisons).
Generating output file guide.ind....done (745 lines written, 0 warnings).
Output written in guide.ind.
Transcript written in guide.ilg.

6Documents scientifiques

90

Il faut donc veiller aux éventuels rejets ou avertissements (warnings) et se reporter
au ﬁchier log doc.ilg le cas échéant. La deuxième compilation avec LATEX permet d’insérer l’index formaté (ﬁchier doc.ind) à l’endroit spéciﬁé par la commande\printindex dans doc.tex :doc.tex

Il faut donc veiller aux éventuels rejets ou avertissements (warnings) et se reporter
au ﬁchier log doc.ilg le cas échéant. La deuxième compilation avec LATEX permet d’insérer l’index formaté (ﬁchier doc.ind) à l’endroit spéciﬁé par la commande\printindex dans doc.tex :doc.inddoc.texdoc.ind

LATEX

LATEX

L’utilitaire makeindex reconnaît l’option -s qui permet de spécifier un style pourl’index. Ces styles—définis dans des fichiers portant l’extension .ist—changent lamise en page de l’index. On utilise un fichier style de la manière suivante :L’utilitaire makeindex reconnaît l’option -s qui permet de spécifier un style pourl’index. Ces styles—définis dans des fichiers portant l’extension .ist—changent lamise en page de l’index. On utilise un fichier style de la manière suivante :makeindex -s hfichier-stylei hdocument-maitrei

makeindex -s hfichier-stylei hdocument-maitrei

Cherchez sur votre distribution quels sont les fichiers de styles et testez-les.

Cherchez sur votre distribution quels sont les fichiers de styles et testez-les.

6.3.3 Différents types d’entrée d’index

6.3.3 Différents types d’entrée d’index

On peut utiliser des entrées un peu plus sophistiquées que la forme vue jusqu’à
maintenant (<mot> et <page>). Il existe au moins trois autres entrées :On peut utiliser des entrées un peu plus sophistiquées que la forme vue jusqu’à
maintenant (<mot> et <page>). Il existe au moins trois autres entrées :1. les entrées hiérarchiques :6

Documents scientifiques90

1. les entrées hiérarchiques :\index{bidule!chouette}insère une sous-entrée ‘chouette’ à ‘bidule’
2. les entrées à cheval sur plusieurs pages :\index{bidule|(}\index{bidule|)}6\index{bidule!chouette}insère une sous-entrée ‘chouette’ à ‘bidule’
2. les entrées à cheval sur plusieurs pages :← à la page i← à la page jgénère une entrée de type : bidule i–j
3. les entrées symboliques :\index{alpha@\alpha}ajoute la lettre grecque α et la classe à l’entrée ‘alpha’. De même :\index{eplucher@éplucher}\index{bidule|(}\index{bidule|)}← à la page i← à la page jgénère une entrée de type : bidule i–j
3. les entrées symboliques :\index{alpha@\alpha}ajoute la lettre grecque α et la classe à l’entrée ‘alpha’. De même :\index{eplucher@éplucher}ajoute le mot « éplucher » et le classe parmi les mots commençant par « e »ajoute le mot « éplucher » et le classe parmi les mots commençant par « e »Cette dernière forme peut également être utilisée pour mettre dans l’index une entrée
avec une mise en forme particulière, par exemple :Cette dernière forme peut également être utilisée pour mettre dans l’index une entrée
avec une mise en forme particulière, par exemple :\index{bonjour@\textbf{bonjour}}ajoute bonjour (bonjour en gras) dans l’index, et classe cette entrée à ‘bonjour’.
Enﬁn on peut vouloir aﬃcher les numéros de pages avec une mise en évidence particulière. On utilisera alors la forme :\index{hentréei|hcommande de mise en formei}\index{bonjour@\textbf{bonjour}}ajoute bonjour (bonjour en gras) dans l’index, et classe cette entrée à ‘bonjour’.
Enﬁn on peut vouloir aﬃcher les numéros de pages avec une mise en évidence particulière. On utilisera alors la forme :\index{hentréei|hcommande de mise en formei}

6.4 Diviser votre document

6.4 Diviser votre document

91

Par exemple :Par exemple :\index{bidule|textbf}\index{bidule|textbf}

aﬃchera le numéro de la page où apparaît “bidule” en gras (notez qu’il n’y a pas decaractère \ pour la commande de mise en forme).

aﬃchera le numéro de la page où apparaît “bidule” en gras (notez qu’il n’y a pas decaractère \ pour la commande de mise en forme).

6.3.4 Glossaire
On a parfois besoin de préciser la signiﬁcation de certains termes d’un document ; lapartie d’un manuel qui regroupe l’explication de ces termes s’appelle un glossaire.
Pour en générer, il faut procéder de manière analogue à un ◮indexN avec quelques
petites variations présentées au paragraphe 11.6 page 181.

6.4

6.3.4 Glossaire
On a parfois besoin de préciser la signiﬁcation de certains termes d’un document ; lapartie d’un manuel qui regroupe l’explication de ces termes s’appelle un glossaire.
Pour en générer, il faut procéder de manière analogue à un ◮indexN avec quelques
petites variations présentées au paragraphe 11.6 page 181.

§ 6.3.1 p. 89 ◭Diviser votre document

6.4

Lorsqu’on manipule un gros document, on peut le diviser naturellement en chapitresou parties. Il est alors conseillé de créer un document maître chargé d’inclure ceschapitres ou parties. Le document maître a l’allure suivante :Lorsqu’on manipule un gros document, on peut le diviser naturellement en chapitresou parties. Il est alors conseillé de créer un document maître chargé d’inclure ceschapitres ou parties. Le document maître a l’allure suivante :\documentclass{book}\begin{document}\frontmatter % tout ce qui est introductif\include{preface}\tableofcontents\mainmatter % le « corps » du document\include{chapitre1}\include{chapitre2}\backmatter % tout ce qui vient en fin de document\bibliographstyle{plain}\bibliography{machin,bidule,truc}\end{document}\begin{document}\frontmatter % tout ce qui est introductif\include{preface}\tableofcontents\mainmatter % le « corps » du document\include{chapitre1}\include{chapitre2}\backmatter % tout ce qui vient en fin de document\bibliographstyle{plain}\bibliography{machin,bidule,truc}\end{document}\includeonly{preface,savoir}§ 6.3.1 p. 89 ◭Diviser votre document\documentclass{book}L’intérêt des commandes \include réside dans le fait qu’elles vous permettent detravailler sur un nombre réduit de chapitres à la fois, tout en gardant l’intégrité dudocument. On utilise pour cela la commande \includeonly :91

6L’intérêt des commandes \include réside dans le fait qu’elles vous permettent detravailler sur un nombre réduit de chapitres à la fois, tout en gardant l’intégrité dudocument. On utilise pour cela la commande \includeonly :\includeonly{preface,savoir}dans le préambule. Ceci permet de compiler uniquement la préface (contenue dansle ﬁchier preface.tex) et le chapitre saisi dans le document savoir.tex.

dans le préambule. Ceci permet de compiler uniquement la préface (contenue dansle ﬁchier preface.tex) et le chapitre saisi dans le document savoir.tex.

Chaque commande \include commence une nouvelle page. Et il n’y a apparemment pas moyen de passer outre. Vous aurez donc compris que \include est àutiliser avec les commandes de section qui sautent une page (\chapter et cie). Pourinsérer un fichier sans saut de page, utilisez la commande \input. Par contre, vous nebénéficierez pas du mécanisme de document maître.

Chaque commande \include commence une nouvelle page. Et il n’y a apparemment pas moyen de passer outre. Vous aurez donc compris que \include est àutiliser avec les commandes de section qui sautent une page (\chapter et cie). Pourinsérer un fichier sans saut de page, utilisez la commande \input. Par contre, vous nebénéficierez pas du mécanisme de document maître.

Enﬁn, il est utile de noter que les commandes \frontmatter, \mainmatter et\backmatter ne sont pas indispensables, mais permettent automatiquement d’adopter une numérotation en roman pour les pages introductives et d’autres petites choses(elles ne sont cependant accessibles que dans la classe book).

Enﬁn, il est utile de noter que les commandes \frontmatter, \mainmatter et\backmatter ne sont pas indispensables, mais permettent automatiquement d’adopter une numérotation en roman pour les pages introductives et d’autres petites choses(elles ne sont cependant accessibles que dans la classe book).

6

7

7

Des documents en français
Sommaire

7.1

Des documents en français
Sommaire

7.1

Le problème des lettres accentuées

7.1

Le problème des lettres accentuées

7.2

Rédiger un document en français avec LATEX

7.2

Rédiger un document en français avec LATEX

7.3

Le package babel et la typographie

7.3

Le package babel et la typographie

7.4

Courrier et fax

7.4

Courrier et fax

L’homme répondit : c’est la femmeque tu as mise auprès de moi
qui m’a donné de l’arbre, et j’ai mangé !

L’homme répondit : c’est la femmeque tu as mise auprès de moi
qui m’a donné de l’arbre, et j’ai mangé !

La Genèse Gn 3 12.

La Genèse Gn 3 12.

Lconnaître. Ces règles ne sont pas à proprement parler des directives dont on nepeut se soustraire, il s’agit la plupart du temps de règles d’usage, qu’il est conseillé

a composition d’un document en français suit des règles qu’il est bon deLconnaître. Ces règles ne sont pas à proprement parler des directives dont on nepeut se soustraire, il s’agit la plupart du temps de règles d’usage, qu’il est conseilléde suivre pour rendre un document lisible ne perturbant pas le lecteur. Ces conseils
d’usage donnent généralement un aspect sérieux voire professionnel à un document.
Il existe plusieurs ouvrages traitant de la typographie française, je citerais ici lelexique de l’imprimerie nationale [7] et le manuel d’Yves Peyrousseaux [13].
Ce chapitre contient des informations sommaires sur la manière dont sont codées
les fontes dans LATEX pour obtenir les accents de la langue française. Suivent quelquesrègles de typographie et une présentation du package babel permettant de simpliﬁer
la saisie de documents en français. Ce chapitre se termine sur une présentation d’une
classe de document lettre ayant pour but de composer des lettres et des fax.

de suivre pour rendre un document lisible ne perturbant pas le lecteur. Ces conseils
d’usage donnent généralement un aspect sérieux voire professionnel à un document.
Il existe plusieurs ouvrages traitant de la typographie française, je citerais ici lelexique de l’imprimerie nationale [7] et le manuel d’Yves Peyrousseaux [13].
Ce chapitre contient des informations sommaires sur la manière dont sont codées
les fontes dans LATEX pour obtenir les accents de la langue française. Suivent quelquesrègles de typographie et une présentation du package babel permettant de simpliﬁer
la saisie de documents en français. Ce chapitre se termine sur une présentation d’une
classe de document lettre ayant pour but de composer des lettres et des fax.

Le problème des lettres accentuées

a composition d’un document en français suit des règles qu’il est bon de7

7.1

Le problème des lettres accentuées

Il y a quelques années, lorsque TEX a été conçu, les fontes utilisées ne comportaientpas de lettres accentuées. Chacune de ces fontes était codée à l’aide de 7 bits par
caractère, et donc contenait quelques 128 caractères codables. Provenant des ÉtatsUnis, ces 128 caractères ne comportaient évidemment pas les caractères accentuésde la langue française. C’est la raison pour laquelle, pendant un long moment devaleureux utilisateurs francophones de TEX et de LATEX étaient contraints de saisir
leur document en fran\c{c}ais avec des caract{\‘e}res assez p{\’e}nibles{\‘a} taper.
Aujourd’hui, ces petits désagréments ne sont plus qu’un mauvais souvenir. Depuis
1990 un codage des fontes tenant compte de caractères accentués de plusieurs languesa été adopté et porte le nom de Cork encoding ou de codage T1. Le tableau 7.1apage 95 donne à titre indicatif les caractères correspondants à chaque valeur. DansIl y a quelques années, lorsque TEX a été conçu, les fontes utilisées ne comportaientpas de lettres accentuées. Chacune de ces fontes était codée à l’aide de 7 bits par
caractère, et donc contenait quelques 128 caractères codables. Provenant des ÉtatsUnis, ces 128 caractères ne comportaient évidemment pas les caractères accentuésde la langue française. C’est la raison pour laquelle, pendant un long moment devaleureux utilisateurs francophones de TEX et de LATEX étaient contraints de saisir
leur document en fran\c{c}ais avec des caract{\‘e}res assez p{\’e}nibles{\‘a} taper.
Aujourd’hui, ces petits désagréments ne sont plus qu’un mauvais souvenir. Depuis
1990 un codage des fontes tenant compte de caractères accentués de plusieurs languesa été adopté et porte le nom de Cork encoding ou de codage T1. Le tableau 7.1apage 95 donne à titre indicatif les caractères correspondants à chaque valeur. Dans

93

93

7

Des documents en français

94

ces tableaux, les cases sont numérotées à partir de 0, les valeurs augmentent dedroite à gauche et de haut en bas.
On peut remarquer que le codage des fontes est diﬀérent de celui des caractères ;le tableau 7.1b montre le codage dit iso-latin1 qui fait maintenant oﬃce de standard
pour le codage des caractères de la plupart des langues européennes. Les packages
LATEX contiennent donc une opération de « traduction » du codage des caractères(par ex. iso-latin1) en codage des fontes (par ex: codage T1).

7.2

ces tableaux, les cases sont numérotées à partir de 0, les valeurs augmentent dedroite à gauche et de haut en bas.
On peut remarquer que le codage des fontes est diﬀérent de celui des caractères ;le tableau 7.1b montre le codage dit iso-latin1 qui fait maintenant oﬃce de standard
pour le codage des caractères de la plupart des langues européennes. Les packages
LATEX contiennent donc une opération de « traduction » du codage des caractères(par ex. iso-latin1) en codage des fontes (par ex: codage T1).

Rédiger un document en français avec LATEX

7.2

Il existe deux packages LATEX permettant de « franciser » un document : le package
french et le package babel. Pour des raisons tout à fait partisanes, nous nous intéresserons au deuxième. On active le package babel comme suit :\usepackage[francais]{babel}

Cet ordre dans le préambule met en route cinq fonctionnalités qui sont :Cet ordre dans le préambule met en route cinq fonctionnalités qui sont :Césure : babel gère la césure des paragraphes en tenant compte de la langue française1 et plus particulièrement des mots accentués du français ;Césure : babel gère la césure des paragraphes en tenant compte de la langue française1 et plus particulièrement des mots accentués du français ;Typographie : les règles de typographie française sont appliquées notamment ence qui concerne les guillemets et les signes de ponctuation ;Typographie : les règles de typographie française sont appliquées notamment ence qui concerne les guillemets et les signes de ponctuation ;Mise en page : il s’agit essentiellement de réintroduire l’indentation du début deparagraphe qui suit un titre de section2 , changement du symbole et d’espacement pour les environnements de types listes, ...

Mise en page : il s’agit essentiellement de réintroduire l’indentation du début deparagraphe qui suit un titre de section2 , changement du symbole et d’espacement pour les environnements de types listes, ...

Traduction : tous les mots susceptibles d’être traduits (« Chapitre », « Table desmatières », etc.) sont traduits en français ;7

Traduction : tous les mots susceptibles d’être traduits (« Chapitre », « Table desmatières », etc.) sont traduits en français ;Macros : un ensemble de macros sont disponibles avec le package babel, ces macros permettent de saisir correctement certaines constructions courantes enfrançais, telles que no , 1er, 2o , 37° C, ...

7.3

Rédiger un document en français avec LATEXIl existe deux packages LATEX permettant de « franciser » un document : le package
french et le package babel. Pour des raisons tout à fait partisanes, nous nous intéresserons au deuxième. On active le package babel comme suit :\usepackage[francais]{babel}

7

Des documents en français

94

Le package babel et la typographie

Macros : un ensemble de macros sont disponibles avec le package babel, ces macros permettent de saisir correctement certaines constructions courantes enfrançais, telles que no , 1er, 2o , 37° C, ...

7.3

Le package babel et la typographie

L’ensemble des « règles » liées à la typographie française dépasse largement le cadrede ce chapitre. Heureusement le package babel permet pratiquement de les utilisersans les connaître. Il suﬃt simplement de respecter quelques règles de saisie dudocument LATEX pour que la composition respecte les règles de typographie les plus
courantes. Ainsi, à titre d’exemple, babel insérera un quart de cadratin insécableavant le point virgule ; ce qui est une pratique courante en typographie française.

L’ensemble des « règles » liées à la typographie française dépasse largement le cadrede ce chapitre. Heureusement le package babel permet pratiquement de les utilisersans les connaître. Il suﬃt simplement de respecter quelques règles de saisie dudocument LATEX pour que la composition respecte les règles de typographie les plus
courantes. Ainsi, à titre d’exemple, babel insérera un quart de cadratin insécableavant le point virgule ; ce qui est une pratique courante en typographie française.

Si cette insertion automatique ne vous convenait pas, il est possible d’appeler lacommande \NoAutoSpaceBeforeFDP. Vous serez alors responsable de l’insertion
ou non de l’espace avant les signes de ponctuations.

Si cette insertion automatique ne vous convenait pas, il est possible d’appeler lacommande \NoAutoSpaceBeforeFDP. Vous serez alors responsable de l’insertion
ou non de l’espace avant les signes de ponctuations.

1
2

On ne coupe pas de la même manière les mots anglais et les mots français.
Ce qui n’est pas le cas en typographie anglaise.

1
2

On ne coupe pas de la même manière les mots anglais et les mots français.
Ce qui n’est pas le cas en typographie anglaise.

7.3 Le package babel et la typographie

`
“
␣
0
@
P
‘
p
Ă
Ř
ă
ř
À
Ð
à
ð

´
”
!
1
A
Q
a
q
Ą
Ś
ą
ś
Á
Ñ
á
ñ

ˆ
„
"
2
B
R
b
r
Ć
Š
ć
š
Â
Ò
â
ò

˜
«
#
3
C
S
c
s
Č
Ş
č
ş
Ã
Ó
ã
ó

¨
»
$
4
D
T
d
t
Ď
Ť
ď
ť
Ä
Ô
ä
ô

˝
–
%
5
E
U
e
u
Ě
Ţ
ě
ţ
Å
Õ
å
õ

95

˚
—
&
6
F
V
f
v
Ę
Ű
ę
ű
Æ
Ö
æ
ö

ˇ
’
7
G
W
g
w
Ğ
Ů
ğ
ů
Ç
Œ
ç
œ

˘

(
8
H
X
h
x
Ĺ
Ÿ
ĺ
ÿ
È
Ø
è
ø

¯
ı
)
9
I
Y
i
y
Ľ
Ź
ľ
ź
É
Ù
é
ù

˙

*
:
J
Z
j
z
Ł
Ž
ł
ž
Ê
Ú
ê
ú

¸
ﬀ
+
;
K
[
k
{
Ń
Ż
ń
ż
Ë
Û
ë
û

˛
ﬁ
,
<
L
\
l
|
Ň
Ĳ
ň
ĳ
Ì
Ü
ì
ü

‚
ﬂ
=
M
]
m
}
Ŋ
İ
ŋ
¡
Í
Ý
í
ý

‹
ﬃ
.
>
N
^
n
~
Ő
đ
ő
¿
Î
Þ
î
þ

7.3 Le package babel et la typographie

›
ﬄ
/
?
O
_
o
Ŕ
§
ŕ
£
Ï
ß
ï
ß

`
“
␣
0
@
P
‘
p
Ă
Ř
ă
ř
À
Ð
à
ð

´
”
!
1
A
Q
a
q
Ą
Ś
ą
ś
Á
Ñ
á
ñ

ˆ
„
"
2
B
R
b
r
Ć
Š
ć
š
Â
Ò
â
ò

˜
«
#
3
C
S
c
s
Č
Ş
č
ş
Ã
Ó
ã
ó

¨
»
$
4
D
T
d
t
Ď
Ť
ď
ť
Ä
Ô
ä
ô

˝
–
%
5
E
U
e
u
Ě
Ţ
ě
ţ
Å
Õ
å
õ

(a) Codage Cork (T1)
NUL
DLE
SP

0
@
P
‘
p
—
—
°
À
Ð
à
ð

95

˚
—
&
6
F
V
f
v
Ę
Ű
ę
ű
Æ
Ö
æ
ö

ˇ
’
7
G
W
g
w
Ğ
Ů
ğ
ů
Ç
Œ
ç
œ

˘

(
8
H
X
h
x
Ĺ
Ÿ
ĺ
ÿ
È
Ø
è
ø

¯
ı
)
9
I
Y
i
y
Ľ
Ź
ľ
ź
É
Ù
é
ù

˙

*
:
J
Z
j
z
Ł
Ž
ł
ž
Ê
Ú
ê
ú

¸
ﬀ
+
;
K
[
k
{
Ń
Ż
ń
ż
Ë
Û
ë
û

˛
ﬁ
,
<
L
\
l
|
Ň
Ĳ
ň
ĳ
Ì
Ü
ì
ü

‚
ﬂ
=
M
]
m
}
Ŋ
İ
ŋ
¡
Í
Ý
í
ý

‹
ﬃ
.
>
N
^
n
~
Ő
đ
ő
¿
Î
Þ
î
þ

›
ﬄ
/
?
O
_
o
Ŕ
§
ŕ
£
Ï
ß
ï
ß

(a) Codage Cork (T1)

SOH
DC1

STX
DC2

ETX
DC3

EOT
DC4

ENQ
NAK

ACK
SYN

BEL
ETB

BS
CAN

HT
EM

NL
SUB

VT
ESC

NP
FS

CR
GS

SO
RS

SI
US

!
1
A
Q
a
q
—
—
¡
±
Á
Ñ
á
ñ

"
2
B
R
b
r
—
—

²
Â
Ò
â
ò

#
3
C
S
c
s
—
—
₤
³
Ã
Ó
ã
ó

$
4
D
T
d
t
—
—
¤
´
Ä
Ô
ä
ô

%
5
E
U
e
u
—
—
¥
µ
Å
Õ
å
õ

&
6
F
V
f
v
—
—
¦
¶
Æ
Ö
æ
ö

’
7
G
W
g
w
—
—
§
·
Ç
×
ç
÷

(
8
H
X
h
x
—
—
¨
,
È
Ø
è
ø

)
9
I
Y
i
y
—
—
©
¹
É
Ù
é
ù

*
:
J
Z
j
z
—
—
a

+
;
K
[
k
{
—
—
«
»
Ë
Û
ë
û

,
<
L
\
l
|
—
—
¬
¼
Ì
Ü
ì
ü

=
M
]
m
}
—
—
½
Í
Ý
í
ý

.
>
N
ˆ
n
˜
—
—
®
¾
Î
Þ
î
þ

/
?
O
_
o

o
Ê
Ú
ê
ú

DEL

—
—
¯
¿
Ï
ß
ï
ÿ

NUL
DLE
SP

0
@
P
‘
p
—
—
°
À
Ð
à
ð

SOH
DC1

STX
DC2

ETX
DC3

EOT
DC4

ENQ
NAK

ACK
SYN

BEL
ETB

BS
CAN

HT
EM

NL
SUB

VT
ESC

NP
FS

CR
GS

SO
RS

SI
US

!
1
A
Q
a
q
—
—
¡
±
Á
Ñ
á
ñ

"
2
B
R
b
r
—
—

²
Â
Ò
â
ò

#
3
C
S
c
s
—
—
₤
³
Ã
Ó
ã
ó

$
4
D
T
d
t
—
—
¤
´
Ä
Ô
ä
ô

%
5
E
U
e
u
—
—
¥
µ
Å
Õ
å
õ

&
6
F
V
f
v
—
—
¦
¶
Æ
Ö
æ
ö

’
7
G
W
g
w
—
—
§
·
Ç
×
ç
÷

(
8
H
X
h
x
—
—
¨
,
È
Ø
è
ø

)
9
I
Y
i
y
—
—
©
¹
É
Ù
é
ù

*
:
J
Z
j
z
—
—
a

+
;
K
[
k
{
—
—
«
»
Ë
Û
ë
û

,
<
L
\
l
|
—
—
¬
¼
Ì
Ü
ì
ü

=
M
]
m
}
—
—
½
Í
Ý
í
ý

.
>
N
ˆ
n
˜
—
—
®
¾
Î
Þ
î
þ

/
?
O
_
o

o
Ê
Ú
ê
ú

DEL

—
—
¯
¿
Ï
ß
ï
ÿ

(b) Caractères iso-latin1(b) Caractères iso-latin1

Table 7.1: Codage des fontes T1 et codage de caractères Iso-latin1. Le tableau du bas montre
un codage de caractères (incluant les lettres accentuées de plusieurs langues européennes) aujourd’hui très répandu : le codage iso-latin1.

Table 7.1: Codage des fontes T1 et codage de caractères Iso-latin1. Le tableau du bas montre
un codage de caractères (incluant les lettres accentuées de plusieurs langues européennes) aujourd’hui très répandu : le codage iso-latin1.

Des documents en français

96

7.3.1 Ponctuation

7.3.1 Ponctuation

1. un espace doit apparaître avant et après tous les signes de ponctuation doubles,
c’est-à-dire les signes ; : ! ? « et »1. un espace doit apparaître avant et après tous les signes de ponctuation doubles,
c’est-à-dire les signes ; : ! ? « et »2. on saisit un espace après (et pas avant) les signes de ponctuation simples,
c’est-à-dire les signes . , ( et )2. on saisit un espace après (et pas avant) les signes de ponctuation simples,
c’est-à-dire les signes . , ( et )Le respect de cette saisie permet à babel d’insérer les espaces nécessaires avant etaprès les signes de ponctuation. À ce sujet, il est intéressant de remarquer que les
espaces avant les points d’interrogation et d’exclamation sont des espaces ﬁnes :Le respect de cette saisie permet à babel d’insérer les espaces nécessaires avant etaprès les signes de ponctuation. À ce sujet, il est intéressant de remarquer que les
espaces avant les points d’interrogation et d’exclamation sont des espaces ﬁnes :fouilla ! et \selectlanguage{english}
fouilla !\selectlanguage{french}

fouilla ! et fouilla !

7.3.2 L-a, e dans l’a, t-i, t-i, a !

fouilla ! et fouilla !

7.3.2 L-a, e dans l’a, t-i, t-i, a !
Je cite Serge Gainsbourg en guise de titre de ce paragraphe sur les deux « jolies »ligatures de la langue française : ‘æ’ et ‘œ’. Au sujet de la saisie de ces ligatures, onpeut au choix : saisir \oe et \ae (\AE et \OE en majuscules) :Lætitia va au Sacré-Cœur.

Ou saisir directement ‘æ’ sur le clavier s’il le permet. À titre indicatif, AltGr+a donne
l’e dans l’a sur un système Linux digne de ce nom. Et pour une histoire compliquée
l’e dans l’o ne se trouvant pas dans la norme iso-latin1, mon clavier n’est pas en
mesure de fournir la ligature ‘œ’.

7.3.3 Outils du package babel

7Lætitia va au Sacré-Cœur.

Ou saisir directement ‘æ’ sur le clavier s’il le permet. À titre indicatif, AltGr+a donne
l’e dans l’a sur un système Linux digne de ce nom. Et pour une histoire compliquée
l’e dans l’o ne se trouvant pas dans la norme iso-latin1, mon clavier n’est pas en
mesure de fournir la ligature ‘œ’.

7.3.3 Outils du package babel

Un grand nombre de « petites choses » restent toujours très ﬂoues quant à la manière
correcte de les « typographier ». Je pense à toutes ces abréviations courantes tellesque : Monsieur, Madame, premier, deuxième, primo, etc. Heureusement le package
babel répond à certaines de nos interrogations.
1\ier
3\ieme37\degres{} C\primo, \secundo, \tertio, \quarto
\no 4
\No 4

L\ae titia va au Sacré-C\oe ur.

7.2

7.2

Je cite Serge Gainsbourg en guise de titre de ce paragraphe sur les deux « jolies »ligatures de la langue française : ‘æ’ et ‘œ’. Au sujet de la saisie de ces ligatures, onpeut au choix : saisir \oe et \ae (\AE et \OE en majuscules) :L\ae titia va au Sacré-C\oe ur.

7.1

Les règles à connaître pour la ponctuation peuvent se résumer aux deux propositions
suivantes :7.1

Les règles à connaître pour la ponctuation peuvent se résumer aux deux propositions
suivantes :fouilla ! et \selectlanguage{english}
fouilla !\selectlanguage{french}

7

Des documents en français

96

Un grand nombre de « petites choses » restent toujours très ﬂoues quant à la manière
correcte de les « typographier ». Je pense à toutes ces abréviations courantes tellesque : Monsieur, Madame, premier, deuxième, primo, etc. Heureusement le package
babel répond à certaines de nos interrogations.

1er
3e
37° C
1o , 2o , 3o , 4o
no 4
No 4

1\ier
3\ieme37\degres{} C\primo, \secundo, \tertio, \quarto
\no 4
\No 4

1er
3e
37° C
1o , 2o , 3o , 4o
no 4
No 4

Lettrine

Lettrinen trouve dans certains documents des lettrines comme celle en début de ceparagraphe. Le package french de Bernard Gaulle et le package lettrine déﬁnissent une telle commande. Nous vous proposons dans la deuxième partie de ce
document un exemple de code LATEX permettant de générer une telle commande.

O paragraphe. Le package french de Bernard Gaulle et le package lettrine déﬁnissent une telle commande. Nous vous proposons dans la deuxième partie de ceOn trouve dans certains documents des lettrines comme celle en début de ce

document un exemple de code LATEX permettant de générer une telle commande.

7.3 Le package babel et la typographie

7.3 Le package babel et la typographie

97

97

Sommaire

Sommaire

Dans un document français, on insère généralement la table des matières en ﬁnde document et le sommaire, qui est une table des matières résumée, en début dedocument. Le package french propose la commande \sommaire qui permet — commeson nom l’indique — un sommaire dans le document. Encore une fois, nous vous
proposons dans la deuxième partie de ce document d’étudier une manière de générer
un tel sommaire.

Dans un document français, on insère généralement la table des matières en ﬁnde document et le sommaire, qui est une table des matières résumée, en début dedocument. Le package french propose la commande \sommaire qui permet — commeson nom l’indique — un sommaire dans le document. Encore une fois, nous vous
proposons dans la deuxième partie de ce document d’étudier une manière de générer
un tel sommaire.

7.3.4 Recommandations d’usage

7.3.4 Recommandations d’usage• les guillemets à la française se saisissent soit avec ‘« ’ et ‘ »’ si votre clavier
permet de les générer, soit avec les signes inférieurs et supérieurs : << et >>,soit avec les commandes \og et \fg :• les guillemets à la française se saisissent soit avec ‘« ’ et ‘ »’ si votre clavier
permet de les générer, soit avec les signes inférieurs et supérieurs : << et >>,soit avec les commandes \og et \fg :Qu’on devra \og dans ce cas\fg{} saisir
ainsi.

Qu’on devra \og dans ce cas\fg{} saisir
ainsi.

Qu’on devra « dans ce cas » saisir ainsi.

Les guillemets “à l’anglaise” se saisissent avec les quote et backquote : ‘‘ et ’’ ;dans tous les cas, utiliser " pour les guillemets n’est pas recommandé ;et cætera
Monsieur
Messieurs
MadameMademoiselle
kilomètre(s)kilogramme(s)

avec
avec
avec
avec
avec
avec
avec

etc.
M.3
MM.
M\up{me}M\up{lle}kmkg

etc. et non pas « etc... »M. Machin
MM. Machin et Bidule
Mme Machin
Mlle Machin
25 km (pas de ‘s’)
25 kg

• les locutions latines se saisissent a priori en italique ;• on abrège :7

et cætera
Monsieur
Messieurs
MadameMademoiselle
kilomètre(s)kilogramme(s)

avec
avec
avec
avec
avec
avec
avec

etc.
M.3
MM.
M\up{me}M\up{lle}kmkg

etc. et non pas « etc... »M. Machin
MM. Machin et Bidule
Mme Machin
Mlle Machin
25 km (pas de ‘s’)
25 kg

• on insère un quart de cadratin tous les milliers, et millièmes :• on insère un quart de cadratin tous les milliers, et millièmes :12345678,23434\nombre{12345678,23434}• il est d’usage d’écrire les noms propres en petites capitales, comme ceci :John Coltrane. Ici on a utilisé la commande \textsc{Coltrane} ; le package babel contient la macro \bsc : \bsc{COLTRANE}, \bsc{Coltrane} et\bsc{coltrane} donnent le résultat escompté ;Et non pas « Mr » qui est l’abréviation anglaise de mister.

7.4• le séparateur de partie décimale et partie entière est la virgule en français, etle point en anglais. On « doit » donc écrire : 123, 54.

7.4• le séparateur de partie décimale et partie entière est la virgule en français, etle point en anglais. On « doit » donc écrire : 123, 54.

\nombre{12345678,23434}

3

Qu’on devra « dans ce cas » saisir ainsi.

Les guillemets “à l’anglaise” se saisissent avec les quote et backquote : ‘‘ et ’’ ;dans tous les cas, utiliser " pour les guillemets n’est pas recommandé ;• les locutions latines se saisissent a priori en italique ;• on abrège :7.3

Les recommandations qui suivent ne sont pas à proprement parler des fonctionnalités
du package babel ; ces recommandations sont des conseils que vous pourrez retrouverdans des ouvrages ayant trait à la typographie :7.3

Les recommandations qui suivent ne sont pas à proprement parler des fonctionnalités
du package babel ; ces recommandations sont des conseils que vous pourrez retrouverdans des ouvrages ayant trait à la typographie :12345678,23434• il est d’usage d’écrire les noms propres en petites capitales, comme ceci :John Coltrane. Ici on a utilisé la commande \textsc{Coltrane} ; le package babel contient la macro \bsc : \bsc{COLTRANE}, \bsc{Coltrane} et\bsc{coltrane} donnent le résultat escompté ;3

Et non pas « Mr » qui est l’abréviation anglaise de mister.

7

Des documents en français

98• on écrit les sigles sans point et en lettre capitales (RATP, SNCF, ENISE).
Certains sigles qui « se prononcent bien » peuvent même s’écrire en minuscules :Assedic, Inserm, etc.

• on écrit les sigles sans point et en lettre capitales (RATP, SNCF, ENISE).
Certains sigles qui « se prononcent bien » peuvent même s’écrire en minuscules :Assedic, Inserm, etc.

7.3.5 Le cas de l’euro

7.3.5 Le cas de l’euro

Le symbole de l’euro peut être produit à l’aide de la commande \texteuro du package textcomp. On obtient alors le caractère : € ou € en utilisant la fonte sanssérif. Une autre approche consiste à utiliser le package eurosym fournissant les commandes :Le symbole de l’euro peut être produit à l’aide de la commande \texteuro du package textcomp. On obtient alors le caractère : € ou € en utilisant la fonte sanssérif. Une autre approche consiste à utiliser le package eurosym fournissant les commandes :• \euro{} : e• \euro{} : e• \EUR{35} : 35 e

• \EUR{35} : 35 e

7.3.6 Au sujet des majuscules

7

Des documents en français

98

En dehors des cas bien connus où l’on doit mettre ou ne pas mettre de majuscule (ilfaut en mettre en début de phrase, ne pas en mettre pour commencer une parenthèse,
selon le contexte après les deux points, etc.), voici trois points importants au sujet
des majuscules (capitales comme disent les typographes).
Tout d’abord les majuscules doivent être accentuées (je ne m’énerve pas,j’explique) lire à ce sujet ce que dit Yves Perrousseaux dans son manuel. Il y est
expliqué que les accents présents sur les majuscules depuis le xvie siècle ont disparu
avec l’arrivée des machines à écrire et de composition typographique d’origine anglosaxonne. On peut également trouver dans tous les bons ouvrages de typographie desexemples de phrases ambiguës lorsque les accents ne sont pas mis.
Ensuite, dans un titre, on ne mettra une majuscule qu’à la première lettre(contrairement à l’anglais où on met une majuscule à chaque mot). Enﬁn, il fautinsister sur le fait que l’usage des majuscules est un domaine dont les nuances sontassez subtiles à saisir. Notons ici quelques points pour appréhender ces « règles » :7.3.6 Au sujet des majuscules

7

En dehors des cas bien connus où l’on doit mettre ou ne pas mettre de majuscule (ilfaut en mettre en début de phrase, ne pas en mettre pour commencer une parenthèse,
selon le contexte après les deux points, etc.), voici trois points importants au sujet
des majuscules (capitales comme disent les typographes).
Tout d’abord les majuscules doivent être accentuées (je ne m’énerve pas,j’explique) lire à ce sujet ce que dit Yves Perrousseaux dans son manuel. Il y est
expliqué que les accents présents sur les majuscules depuis le xvie siècle ont disparu
avec l’arrivée des machines à écrire et de composition typographique d’origine anglosaxonne. On peut également trouver dans tous les bons ouvrages de typographie desexemples de phrases ambiguës lorsque les accents ne sont pas mis.
Ensuite, dans un titre, on ne mettra une majuscule qu’à la première lettre(contrairement à l’anglais où on met une majuscule à chaque mot). Enﬁn, il fautinsister sur le fait que l’usage des majuscules est un domaine dont les nuances sontassez subtiles à saisir. Notons ici quelques points pour appréhender ces « règles » :• on écrit maître de conférences (donc sans majuscule) ;• on écrit maître de conférences (donc sans majuscule) ;• l’université Jean Monnet (pas de majuscule à université) ;• l’université Jean Monnet (pas de majuscule à université) ;• mais l’Université lorsqu’on parle de la structure en tant qu’entité propre ;• mais l’Université lorsqu’on parle de la structure en tant qu’entité propre ;• le ministre de l’Intérieur ;• le ministre de l’Intérieur ;• l’académie de Lyon ;• l’académie de Lyon ;• l’Assemblée nationale et le Sénat parce qu’il s’agit d’organismes uniques ;• l’Assemblée nationale et le Sénat parce qu’il s’agit d’organismes uniques ;• les Espagnols (pour le peuple) et le français (pour la langue)• les Espagnols (pour le peuple) et le français (pour la langue)

Je ne résiste pas à l’envie de citer Jacques André :Je ne résiste pas à l’envie de citer Jacques André :7.4 Courrier et fax

7.4 Courrier et fax

99« [...] Voici typiquement le genre de phrase que l’on trouve dans notre
rapport d’activité :« [...] Voici typiquement le genre de phrase que l’on trouve dans notre
rapport d’activité :Jean Transent, Maître de Conférence en Analyse de Données à l’Université de Nancy(Bien connue de la Communauté
Scientifique Internationale) a donné, lors du séminaire de
Biologie Informatique de Mardi 23 Juin, une conférence surles Applications de l’Intelligence Artificielle à l’emploi de la
Télévision Haute Définition en Robotique Avancée.

Jean Transent, Maître de Conférence en Analyse de Données à l’Université de Nancy(Bien connue de la Communauté
Scientifique Internationale) a donné, lors du séminaire de
Biologie Informatique de Mardi 23 Juin, une conférence surles Applications de l’Intelligence Artificielle à l’emploi de la
Télévision Haute Définition en Robotique Avancée.

Dans cette phrase, il y a 23 majuscules. Il ne devrait y en avoir que trois(Jean, Transent et Nancy). si si... »Dans cette phrase, il y a 23 majuscules. Il ne devrait y en avoir que trois(Jean, Transent et Nancy). si si... »Jacques André [2]Jacques André [2]et Yves Perrouseaux :et Yves Perrouseaux :« Les dénominations d’une dignité, d’une charge, d’un grade ou d’une
fonction sont des noms communs :« Les dénominations d’une dignité, d’une charge, d’un grade ou d’une
fonction sont des noms communs :

...

...

• le président du conseil général, etc.

»

7.4

99

• le président du conseil général, etc.

C’est un nom commun, aumême titre que le concierge
ou les femmes de ménage
du conseil général.

»Yves Perrouseaux [13]Courrier et fax
Le noyau de LATEX comprend une classe de document pour rédiger des lettres. Cependant cette classe n’est pas très souple et mal adaptée au français4 , Pour les lettresfrançaises, nous conseillons l’utilisation de la classe lettre de Denis Megévand
de l’observatoire de Genève. La classe et sa documentation peuvent se trouver à :ftp://obsftp.unige.ch/pub/tex/macros/lettre et dans le paquet tetex-frogg
de la distribution Debian Sarge.

7.4.1 Commandes disponibles

7

7.4

C’est un nom commun, aumême titre que le concierge
ou les femmes de ménage
du conseil général.

Yves Perrouseaux [13]Courrier et fax
Le noyau de LATEX comprend une classe de document pour rédiger des lettres. Cependant cette classe n’est pas très souple et mal adaptée au français4 , Pour les lettresfrançaises, nous conseillons l’utilisation de la classe lettre de Denis Megévand
de l’observatoire de Genève. La classe et sa documentation peuvent se trouver à :ftp://obsftp.unige.ch/pub/tex/macros/lettre et dans le paquet tetex-frogg
de la distribution Debian Sarge.

7.4.1 Commandes disponibles

Voici quelques unes des entités que l’on peut déﬁnir dans la classe lettre :Voici quelques unes des entités que l’on peut déﬁnir dans la classe lettre :Adresse de l’expéditeur en utilisant la commande \address ;Adresse de l’expéditeur en utilisant la commande \address ;Ville originaire \lieu permet d’écrire en haut à droite, l’endroit d’où l’on écrit
la lettre ;Ville originaire \lieu permet d’écrire en haut à droite, l’endroit d’où l’on écrit
la lettre ;Téléphone et fax sont précisés avec les commandes \telephone et \fax respectivement ;Téléphone et fax sont précisés avec les commandes \telephone et \fax respectivement ;Signature à l’aide de la commande \signature ;Signature à l’aide de la commande \signature ;4

Appréciation personnelle sur la version 1.2z de la classe letter du 9 février 1999.

4

Appréciation personnelle sur la version 1.2z de la classe letter du 9 février 1999.

7

Des documents en français

100\documentclass[12pt]{lettre}\usepackage[francais]{babel}\usepackage[T1]{fontenc}\usepackage[latin1]{inputenc}\begin{document}

M. Expéditeur
27, rue du cube parfait
19683 Huit\documentclass[12pt]{lettre}\usepackage[francais]{babel}\usepackage[T1]{fontenc}\usepackage[latin1]{inputenc}
Huit sur Loire, le 1er mars 2011

\begin{document}

Tél. 1234567890
Fax : 0987654321
Mme Destinataire
4, rue de Square
65536 Carré\begin{letter}{%
M\up{me} \textsc{Destinataire}\\4, rue de Square\\65536 Carré}\address{%
M. Expéditeur\\27, rue du cube parfait\\
19683 Huit}

Des documents en français

100

M. Expéditeur
27, rue du cube parfait
19683 Huit

Mme Destinataire
4, rue de Square
65536 Carré\begin{letter}{%
M\up{me} \textsc{Destinataire}\\4, rue de Square\\65536 Carré}\address{%
M. Expéditeur\\27, rue du cube parfait\\
19683 Huit}

Objet : au sujet du bidule

Objet : au sujet du bidule

Madame,\lieu{Huit sur Loire}\telephone{1234567890}\fax{0987654321}\signature{Tar \textsc{Tempion}}

Veuillez agréer, madame, l’expression de mes salutations distinguées... Le corps de la lettre ...

Veuillez agréer, madame, l’expression de mes salutations distinguées\conc{au sujet du bidule}

Tar Tempion
P.j.

7

Madame,\lieu{Huit sur Loire}\telephone{1234567890}\fax{0987654321}\signature{Tar \textsc{Tempion}}... Le corps de la lettre ...

\conc{au sujet du bidule}
Deux ou trois choses.

Tar Tempion
P.j.

\opening{Madame,}\opening{Madame,}... Le corps de la lettre ...

... Le corps de la lettre ...

\closing{Veuillez agréer, madame,
l’expression de mes salutations
distinguées}\encl{Deux ou trois choses.}\end{letter}\end{document}\closing{Veuillez agréer, madame,
l’expression de mes salutations
distinguées}\encl{Deux ou trois choses.}\end{letter}\end{document}

7

Figure 7.1: Ossature d’un document basé sur la classe lettre.

Deux ou trois choses.

Figure 7.1: Ossature d’un document basé sur la classe lettre.

Objet de la lettre avec la commande \conc (pour concernant) ;Objet de la lettre avec la commande \conc (pour concernant) ;Pièces jointes grâce à la commande \encl (de l’anglais enclosed )Pièces jointes grâce à la commande \encl (de l’anglais enclosed )7.4.2 Structure d’un document basé sur la classe lettre
Nous donnons à la ﬁgure 7.1 l’« ossature » d’un document LAT X basé sur la classeE
lettre. Les commandes \opening et \closing sont obligatoires et ont respectivement pour objet d’introduire les formules de politesse de début et de ﬁn de lettre.

7.4.3 Fichiers « instituts »La classe lettre est livrée avec un ﬁchier default.ins qui déﬁnit par défaut
l’adresse de l’observatoire de Genève. L’administrateur du système LATEX que vous
utilisez devra donc adapter ce ﬁchier à votre organisation.
On peut cependant déﬁnir son propre ﬁchier « institut » et l’inclure dans ses
lettres. Lorsqu’on veut envoyer des lettres à titre personnel5 , il est en eﬀet plus
5

Huit sur Loire, le 1er mars 2011

Tél. 1234567890
Fax : 0987654321

Ce qui n’a pas véritablement lieu d’être puisque vous êtes tout de même au boulot pour bosser

7.4.2 Structure d’un document basé sur la classe lettre
Nous donnons à la ﬁgure 7.1 l’« ossature » d’un document LATEX basé sur la classe
lettre. Les commandes \opening et \closing sont obligatoires et ont respectivement pour objet d’introduire les formules de politesse de début et de ﬁn de lettre.

7.4.3 Fichiers « instituts »La classe lettre est livrée avec un ﬁchier default.ins qui déﬁnit par défaut
l’adresse de l’observatoire de Genève. L’administrateur du système LATEX que vous
utilisez devra donc adapter ce ﬁchier à votre organisation.
On peut cependant déﬁnir son propre ﬁchier « institut » et l’inclure dans ses
lettres. Lorsqu’on veut envoyer des lettres à titre personnel5 , il est en eﬀet plus
5

Ce qui n’a pas véritablement lieu d’être puisque vous êtes tout de même au boulot pour bosser

7.4 Courrier et fax

7.4 Courrier et fax

101

101

logique d’utiliser ses propres coordonnées ; on pourra alors déﬁnir un ﬁchier nommé
moi.ins contenant par exemple :logique d’utiliser ses propres coordonnées ; on pourra alors déﬁnir un ﬁchier nommé
moi.ins contenant par exemple :\address{%
M. Expéditeur\\27, rue du cube parfait\\
19683 Huit}\lieu{Huit sur Loire}\telephone{1234567890}\fax{0987654321}\signature{Tar \textsc{Tempion}}\address{%
M. Expéditeur\\27, rue du cube parfait\\
19683 Huit}\lieu{Huit sur Loire}\telephone{1234567890}\fax{0987654321}\signature{Tar \textsc{Tempion}}

Il suﬃt alors de faire apppel dans le préambule du document, à la commande\institut qui cherche un ﬁchier portant l’extension .ins :Il suﬃt alors de faire apppel dans le préambule du document, à la commande\institut qui cherche un ﬁchier portant l’extension .ins :\institut{moi}\institut{moi}7.4.4 Fax
La classe lettre contient également un environnement pour préparer un fax avec
un en-tête correspondant à votre organisation. Le principe général et les mots cléssont les mêmes à condition d’utiliser l’environnement telefax en lieu et place del’environnement letter.
Notez qu’on peut ici aussi utiliser les ﬁchiers « instituts ». Enﬁn la commande\addpages permet de gérer le cas où vous joignez un document déjà imprimé à votre
fax. Par exemple si vous avez à envoyer n pages à votre fax initial, il faudra ajouterla commande \addpages{hni}. La ﬁgure 7.2 page suivante montre le document
minimal pour créer un fax.

et non pas pour envoyer du courrier personnel.

7.4.4 Fax

7

La classe lettre contient également un environnement pour préparer un fax avec
un en-tête correspondant à votre organisation. Le principe général et les mots cléssont les mêmes à condition d’utiliser l’environnement telefax en lieu et place del’environnement letter.
Notez qu’on peut ici aussi utiliser les ﬁchiers « instituts ». Enﬁn la commande\addpages permet de gérer le cas où vous joignez un document déjà imprimé à votre
fax. Par exemple si vous avez à envoyer n pages à votre fax initial, il faudra ajouterla commande \addpages{hni}. La ﬁgure 7.2 page suivante montre le document
minimal pour créer un fax.

et non pas pour envoyer du courrier personnel.

7

Des documents en français

102\documentclass[12pt]{lettre}\usepackage[latin1]{inputenc}\usepackage[french]{babel}\usepackage[T1]{fontenc}

Institut du pixel
128 rue du niveau de gris65535 Érode sur Loire\documentclass[12pt]{lettre}\usepackage[latin1]{inputenc}\usepackage[french]{babel}\usepackage[T1]{fontenc}

TÉLÉFAX\begin{document}\begin{telefax}{01234567}{% numéro de fax
M. le destinataire\\
33 rue du fax\\
98000 CCIT groupe 3}À:

M. le destinataire
33 rue du fax
98000 CCIT groupe 3

De :René Kspéditeur

TÉLÉFAX : 987.75.31

TÉLÉFAX

Télécopie : 01234567

Nombre de pages :En cas de mauvaise transmission, appelez s.v.p. l’opérateur téléfax
Sassonne-le-Creux, le 1er mars 2011

Objet : la bazar

TÉLÉPHONE : 987.64.20\begin{telefax}{01234567}{% numéro de fax
M. le destinataire\\
33 rue du fax\\
98000 CCIT groupe 3}\address{\centering
Institut du pixel\\
128 rue du niveau de gris\\65535 Érode sur Loire}

Cher Monsieur,\name{René Kspéditeur}

Institut du pixel
128 rue du niveau de gris65535 Érode sur Loire\begin{document}
TÉLÉPHONE : 987.64.20\address{\centering
Institut du pixel\\
128 rue du niveau de gris\\65535 Érode sur Loire}

Des documents en français

102

À:

M. le destinataire
33 rue du fax
98000 CCIT groupe 3

De :René Kspéditeur

TÉLÉFAX : 987.75.31

Télécopie : 01234567

Nombre de pages :En cas de mauvaise transmission, appelez s.v.p. l’opérateur téléfax
Sassonne-le-Creux, le 1er mars 2011

Objet : la bazar

Cher Monsieur,... patila patala\name{René Kspéditeur}À bientôt.

... patila patalaÀ bientôt.

\conc{la bazar}\conc{la bazar}\opening{Cher Monsieur,}\opening{Cher Monsieur,}René Kspéditeur

René Kspéditeur... patila patala... patila patala\closing{À bientôt.}\closing{À bientôt.}\end{telefax}\end{document}\end{telefax}\end{document}

Figure 7.2: Ossature d’un document « fax »Figure 7.2: Ossature d’un document « fax »88

À vous de jouer !
Sommaire

Sommaire

8.1

Livres et autres manuels

8.1

Livres et autres manuels

8.2

Local

8.2

Local

8.3

EffTépé, Ouèbe et niouses

8.3

EffTépé, Ouèbe et niouses

Tu ne coucheras pas avec un hommecomme on couche avec une femme.
C’est une abomination.

Tu ne coucheras pas avec un hommecomme on couche avec une femme.
C’est une abomination.

Le Lévitique Lv 18 22.

Le Lévitique Lv 18 22.

’il est vrai que LAT X permet de faire à peu près tout ce que l’on veut, il est’il est vrai que LAT X permet de faire à peu près tout ce que l’on veut, il est

ES
souvent diﬃcile de savoir comment le lui demander. Nous tenterons ici de vous
donner quelques points d’entrée pour chercher plus de documentation sur le monstre.

8.1

À vous de jouer !

ESsouvent diﬃcile de savoir comment le lui demander. Nous tenterons ici de vous
donner quelques points d’entrée pour chercher plus de documentation sur le monstre.

Livres et autres manuels

8.1

La documentation « standard » concernant TEX et LATEX est constituée des ouvrages
suivants :• LATEX: A Document Preparation System de L. Lamport [10] ;8

Livres et autres manuels
La documentation « standard » concernant TEX et LATEX est constituée des ouvrages
suivants :• LATEX: A Document Preparation System de L. Lamport [10] ;• The LATEX Companion [6] de M. Goossens, F. Mittelbach et A. Samarin• The LATEX Companion [6] de M. Goossens, F. Mittelbach et A. Samarin• The LATEX Graphics Companion [5] des mêmes auteurs ;• The LATEX Graphics Companion [5] des mêmes auteurs ;• The TEXbook [9] de Knuth ;• The TEXbook [9] de Knuth ;• La FAQ française de LATEX disponible à l’url suivante :• La FAQ française de LATEX disponible à l’url suivante :http://www.grappa.univ-lille3.fr/FAQ-LaTeX.

http://www.grappa.univ-lille3.fr/FAQ-LaTeX.

On y trouve aujourd’hui environ 70 questions répondant essentiellement à desproblèmes classiques de mise en page. Ce document est actuellement maintenu
par B. Bayard

On y trouve aujourd’hui environ 70 questions répondant essentiellement à desproblèmes classiques de mise en page. Ce document est actuellement maintenu
par B. Bayard

Deux ouvrages d’initiation en français sont parus récemment:

Deux ouvrages d’initiation en français sont parus récemment:• LATEX de D. Bitouzé et J.C. Charpentier [4] ;• LATEX de D. Bitouzé et J.C. Charpentier [4] ;• LATEX pour l’impatient de C. Chevalier et al. [3].

• LATEX pour l’impatient de C. Chevalier et al. [3].

103

103

8

À vous de jouer !

104

104

Les documents en ligne référencés par le LATEX navigator (cf. plus bas) traitantde LATEX 2ε en français, sont les suivants :Les documents en ligne référencés par le LATEX navigator (cf. plus bas) traitantde LATEX 2ε en français, sont les suivants :• Apprends LaTeX ! de M. Baudoin ;•Joli manuel pour LAT X 2
E• Apprends LaTeX ! de M. Baudoin ;ε de B. Bayart• Joli manuel pour LATEX 2ε de B. Bayart• Aide mémoire pour LATEX de C. Willems et F. Geraerds ;• Aide mémoire pour LATEX de C. Willems et F. Geraerds ;• Guide d’introduction français au traitement de texte LATEX écrit par F. Geraerds ;• Guide d’introduction français au traitement de texte LATEX écrit par F. Geraerds ;• Une courte (?) introduction a LATEX 2ε de T. Oetiker, H. Partl, I. Hyna,
E. Schlegl, traduit de l’allemand.

• Une courte (?) introduction a LATEX 2ε de T. Oetiker, H. Partl, I. Hyna,
E. Schlegl, traduit de l’allemand.

Ces documents sont disponibles au format dvi et/ou PostScript et parfois pdf.

8.2

Ces documents sont disponibles au format dvi et/ou PostScript et parfois pdf.

Local

8.2

Avant de vous jeter sur ce pauvre réseau international, sachez que si vous avez
la chance d’utiliser la distribution teTEX, vous trouverez sous l’arborescence TEX(/usr/share/texmf/doc1 ), un répertoire doc contenant un certain nombre de documentations intéressantes :

8.3

Local
Avant de vous jeter sur ce pauvre réseau international, sachez que si vous avez
la chance d’utiliser la distribution teTEX, vous trouverez sous l’arborescence TEX(/usr/share/texmf/doc1 ), un répertoire doc contenant un certain nombre de documentations intéressantes :• latex : la doc de toutes les extensions installées au format dvi ;• latex : la doc de toutes les extensions installées au format dvi ;• fonts : des docs sur les fontes disponibles ;• fonts : des docs sur les fontes disponibles ;

• ...

• ...

D’autre part, vous trouverez dans le menu aide d’Emacs un guide de référence
au format info très pratique ; avec notamment la syntaxe de toutes les commandes
et environnements standard de LATEX.
Enﬁn, n’hésitez pas à utiliser les commandes de recherche de ﬁchiers disponibles
sur votre système pour essayer de trouver des informations sur un package ou une
fonte à partir de son nom.

8

À vous de jouer !

EffTépé, Ouèbe et niouses
Comme pour la plupart des logiciels gratuits, on trouve une foultitude d’informations
sur internet.

8.3.1 Sites FTP

D’autre part, vous trouverez dans le menu aide d’Emacs un guide de référence
au format info très pratique ; avec notamment la syntaxe de toutes les commandes
et environnements standard de LATEX.
Enﬁn, n’hésitez pas à utiliser les commandes de recherche de ﬁchiers disponibles
sur votre système pour essayer de trouver des informations sur un package ou une
fonte à partir de son nom.

8
8.3

EffTépé, Ouèbe et niouses
Comme pour la plupart des logiciels gratuits, on trouve une foultitude d’informations
sur internet.

8.3.1 Sites FTP

Il a été créé une archive standard pour TEX et Cie portant le doux nom de CTAN
pour Comprehensive TeX Archive Network. Cette archive est copiée sur plusieurs
sites français, donc inutile d’aller encombrer les quelques lignes qui traversent l’océan,vous trouverez votre bonheur dans :Il a été créé une archive standard pour TEX et Cie portant le doux nom de CTAN
pour Comprehensive TeX Archive Network. Cette archive est copiée sur plusieurs
sites français, donc inutile d’aller encombrer les quelques lignes qui traversent l’océan,vous trouverez votre bonheur dans :• ftp://ftp.lip6.fr/pub/TeX/CTAN à ma connaissance un serveur français
très complet, avec des « miroirs » de beaucoup de sites.

• ftp://ftp.lip6.fr/pub/TeX/CTAN à ma connaissance un serveur français
très complet, avec des « miroirs » de beaucoup de sites.

1

Ou quelque chose d’approchant suivant l’installation effectuée.

1

Ou quelque chose d’approchant suivant l’installation effectuée.

8.3 EffTépé, Ouèbe et niouses

8.3 EffTépé, Ouèbe et niouses

105• ftp://ftp.inria.fr/pub/TeX/CTAN une autre réplique CTAN.

105• ftp://ftp.inria.fr/pub/TeX/CTAN une autre réplique CTAN.

L’arborescence du CTAN est la même quel que soit le site, et on notera entre autres :L’arborescence du CTAN est la même quel que soit le site, et on notera entre autres :• macros/latex la racine de LATEX et ses extensions,• macros/latex la racine de LATEX et ses extensions,• graphics la racine de ce qui touche de près ou de loin au graphisme,• graphics la racine de ce qui touche de près ou de loin au graphisme,• support les logiciels qui tournent autour de LATEX : correcteurs orthographiques, convertisseurs, éditeurs,...

• support les logiciels qui tournent autour de LATEX : correcteurs orthographiques, convertisseurs, éditeurs,...

• ...

• ...

8.3.2 Sites Web

8.3.2 Sites Web

Encore une fois, ne cherchez pas plus loin :Encore une fois, ne cherchez pas plus loin :http://tex.loria.fr

http://tex.loria.frMême si ce site ne semble plus être maintenu, il contient de très nombreux liens vers
des documents de référence. On pourra également se référer au site :Même si ce site ne semble plus être maintenu, il contient de très nombreux liens vers
des documents de référence. On pourra également se référer au site :http://www.latex-project.org

http://www.latex-project.org

pour avoir des infos sur les modiﬁcations du format LATEX 2ε et de l’avancement duprojet LATEX3. Notez toutefois que ces sites sont en langue anglaise.

pour avoir des infos sur les modiﬁcations du format LATEX 2ε et de l’avancement duprojet LATEX3. Notez toutefois que ces sites sont en langue anglaise.

8.3.3 Les newsgroups

8.3.3 Les newsgroups

Il existent deux groupes de discussion sur TEX et LATEX :• comp.text.tex environ 150 messages par jour ! Mais on peut y apprendre deschoses, et• fr.comp.text.tex beaucoup moins de transit et en français.

Il existent deux groupes de discussion sur TEX et LATEX :8• comp.text.tex environ 150 messages par jour ! Mais on peut y apprendre deschoses, et• fr.comp.text.tex beaucoup moins de transit et en français.

Ces groupes de discussion constituent une source d’information extraordinaire si on
veut bien faire l’eﬀort de trier un peu les messages parfois un peu trop nombreux.
Vous pouvez en dernier recours — c.-à-d., après vous être documenté — poser unequestion sur le groupe. Si vous êtes clair et concis, la réponse ne se fait en général
guère attendre.

Ces groupes de discussion constituent une source d’information extraordinaire si on
veut bien faire l’eﬀort de trier un peu les messages parfois un peu trop nombreux.
Vous pouvez en dernier recours — c.-à-d., après vous être documenté — poser unequestion sur le groupe. Si vous êtes clair et concis, la réponse ne se fait en général
guère attendre.

∗
∗ ∗

∗
∗ ∗

À vous de jouer !

À vous de jouer !

8

II

II

Tout ce que vous avez toujours
voulu savoir sur (Tout ce quevous avez toujours voulu savoir
sur LATEX sans jamais oser ledemander) sans jamais oser ledemanderTout ce que vous avez toujours
voulu savoir sur (Tout ce quevous avez toujours voulu savoir
sur LATEX sans jamais oser ledemander) sans jamais oser ledemanderIntroduction

Introduction

Que tes pieds sont beaux dans ta chaussure, fille de prince!
Les contours de ta hanche sont comme des colliers, Œuvre des mains d’un artiste.
Ton sein est une coupe arrondie, Où le vin parfumé ne manque pas
Ton corps est un tas de froment, Entouré de lis2 .

Que tes pieds sont beaux dans ta chaussure, fille de prince!
Les contours de ta hanche sont comme des colliers, Œuvre des mains d’un artiste.
Ton sein est une coupe arrondie, Où le vin parfumé ne manque pas
Ton corps est un tas de froment, Entouré de lis2 .

Le Cantique des cantiques Ct 7 2.

Le Cantique des cantiques Ct 7 2.

ette partie s’intitule « Tout ce que vous avez toujours voulu savoir sur (ToutC
ce que vous avez toujours voulu savoir sur L TEX sans jamais oser le demander)sans jamais oser le demander ». Elle a pour but d’expliquer comment les chapitres

ette partie s’intitule « Tout ce que vous avez toujours voulu savoir sur (ToutC
ce que vous avez toujours voulu savoir sur L TEX sans jamais oser le demander)sans jamais oser le demander ». Elle a pour but d’expliquer comment les chapitresprécédents ont été produits, et donc présente les diﬀérentes commandes et environnements qui ont été déﬁnis pour générer le manuel que vous avez sous les yeux. Mais
son objectif est plus large puisque nous espérons fournir ici au courageux lecteur,
une base solide pour la création de ses propres styles...

précédents ont été produits, et donc présente les diﬀérentes commandes et environnements qui ont été déﬁnis pour générer le manuel que vous avez sous les yeux. Mais
son objectif est plus large puisque nous espérons fournir ici au courageux lecteur,
une base solide pour la création de ses propres styles...

L’idée a germé dans mon esprit d’écrire les chapitres suivants après avoir eu
plusieurs questions de lecteurs me demandant s’ils pouvaient réutiliser tel ou tel
aspect du style de ce document. Le chantier que représente la rédaction des pages
qui suivent a été pour moi titanesque dans la mesure où j’ai dû présenter des aspects
de LATEX qui ne font plus partie des connaissances de base et qui sont donc à ce titre
plus diﬃciles à expliquer3 . Enﬁn — et non des moindres — ce qui reste généralement
de l’ordre du bazar privé a dû ici être « rationnalisé » pour être présentable. Ce qui
n’a pas été une mince aﬀaire.

L’idée a germé dans mon esprit d’écrire les chapitres suivants après avoir eu
plusieurs questions de lecteurs me demandant s’ils pouvaient réutiliser tel ou tel
aspect du style de ce document. Le chantier que représente la rédaction des pages
qui suivent a été pour moi titanesque dans la mesure où j’ai dû présenter des aspects
de LATEX qui ne font plus partie des connaissances de base et qui sont donc à ce titre
plus diﬃciles à expliquer3 . Enﬁn — et non des moindres — ce qui reste généralement
de l’ordre du bazar privé a dû ici être « rationnalisé » pour être présentable. Ce qui
n’a pas été une mince aﬀaire.

J’ai voulu dans cette partie présenter la démarche que j’ai adoptée pour générer
ce document. Je ne prétends pas qu’il s’agit du seul moyen possible pour obtenirla mise en page que vous avez sous les yeux. Par exemple, certaines parties de ce
document auraient pu être produites à l’aide de paquets existants fournissant desfonctionnalités analogues ou même meilleures que celles des outils développés ici.

J’ai voulu dans cette partie présenter la démarche que j’ai adoptée pour générer
ce document. Je ne prétends pas qu’il s’agit du seul moyen possible pour obtenirla mise en page que vous avez sous les yeux. Par exemple, certaines parties de ce
document auraient pu être produites à l’aide de paquets existants fournissant desfonctionnalités analogues ou même meilleures que celles des outils développés ici.

A

L’idée sous-jacente à cette partie est donc bien de guider l’utilisateur curieux vers
des pistes d’exploration de LATEX, de montrer comment on peut à l’aide de quelques
outils, mettre au point des commandes originales correspondant exactement à ses
propres besoins. Ces pistes sont suﬃsament générales pour être suivies telles quelles
ou adaptées pour des cas similaires ou non. Il s’agit donc de découvrir les grands
classiques des fonctionnalités internes de « LATEX » et d’avoir la satisfaction — sanspour autant prôner la « ré-invention » de la roue — de créer ses propres outilsA

8

L’idée sous-jacente à cette partie est donc bien de guider l’utilisateur curieux vers
des pistes d’exploration de LATEX, de montrer comment on peut à l’aide de quelques
outils, mettre au point des commandes originales correspondant exactement à ses
propres besoins. Ces pistes sont suﬃsament générales pour être suivies telles quelles
ou adaptées pour des cas similaires ou non. Il s’agit donc de découvrir les grands
classiques des fonctionnalités internes de « LATEX » et d’avoir la satisfaction — sanspour autant prôner la « ré-invention » de la roue — de créer ses propres outils

J’ai tenté, autant que possible, de présenter des commandes n’utilisant que LATEX.
Il a cependant parfois été nécessaire d’utiliser certaines des fonctionnalités de TEX
ce qui a donné l’occasion de les présenter ici. Cette partie se compose donc de trois
chapitres :J’ai tenté, autant que possible, de présenter des commandes n’utilisant que LATEX.
Il a cependant parfois été nécessaire d’utiliser certaines des fonctionnalités de TEX
ce qui a donné l’occasion de les présenter ici. Cette partie se compose donc de trois
chapitres :Outillage nécessaire qui présente les commandes à connaître permettant de s’équiper pour la suite. On y trouve par exemple quelques pistes sur la structure desOutillage nécessaire qui présente les commandes à connaître permettant de s’équiper pour la suite. On y trouve par exemple quelques pistes sur la structure des2Les épigraphes de cette partie sont toutes tirées du Cantique des cantiques et n’ont jamais delien avec le titre du chapitre.
3
D’autant plus, je l’écris en petit, que je ne les maîtrise pas du tout.

2
Les épigraphes de cette partie sont toutes tirées du Cantique des cantiques et n’ont jamais delien avec le titre du chapitre.
3
D’autant plus, je l’écris en petit, que je ne les maîtrise pas du tout.

109

109

8

110

8

110
ﬁchiers d’une distribution LATEX, des idées pour changer les fontes d’un document, et une présentation détaillée de la création de nouveaux environnementsbasés sur les listes ;ﬁchiers d’une distribution LATEX, des idées pour changer les fontes d’un document, et une présentation détaillée de la création de nouveaux environnementsbasés sur les listes ;Cosmétique qui présente les outils qui ont été mis en œuvre pour changer l’allure
des titres, des en-têtes et pieds de page, des marges, et quelques autres petites
choses ;Cosmétique qui présente les outils qui ont été mis en œuvre pour changer l’allure
des titres, des en-têtes et pieds de page, des marges, et quelques autres petites
choses ;De nouveaux jouets qui est l’occasion d’expliquer la création des onglets de ce
manuel, du glossaire, des exemples, du sommaire, des lettrines, des notas, etde quelques autres bricoles.

De nouveaux jouets qui est l’occasion d’expliquer la création des onglets de ce
manuel, du glossaire, des exemples, du sommaire, des lettrines, des notas, etde quelques autres bricoles.

Certaines explications données dans les chapitres qui suivent sont tellement fumeuses que même l’auteur ne les comprend pas. Certaines solutions apportées aux
problèmes ne sont que partielles. Enfin, certaines choses restent mystérieuses pour votre
serviteur ; dans ces situations, un panneau « dos d’âne » est inséré dans le paragraphe.

Certaines explications données dans les chapitres qui suivent sont tellement fumeuses que même l’auteur ne les comprend pas. Certaines solutions apportées aux
problèmes ne sont que partielles. Enfin, certaines choses restent mystérieuses pour votre
serviteur ; dans ces situations, un panneau « dos d’âne » est inséré dans le paragraphe.

8

9

9

Outillage nécessaire
Sommaire

Sommaire

9.1

Hercule Poirot

9.1

Hercule Poirot

9.2

Outils de bas niveaux

9.2

Outils de bas niveaux

9.3

Structures de contrôle et tests

9.3

Structures de contrôle et tests

9.4

Fontes9.4

Fontes9.5

Listes et nouveaux environnements

9.5

Listes et nouveaux environnements

9.6

Des environnements qui mettent en boîte

9.6

Des environnements qui mettent en boîte

Que tu es belle, que tu es agréable,Ô mon amour, au milieu des délices !
Ta taille ressemble au palmier,
Et tes seins à des grappes.

Que tu es belle, que tu es agréable,Ô mon amour, au milieu des délices !
Ta taille ressemble au palmier,
Et tes seins à des grappes.

Le Cantique des cantiques Ct 7 7.

Le Cantique des cantiques Ct 7 7.

ce chapitre nous présentons les outils pré requis permettant de créer desDanscommandes et des environnements plus complexes que ceux exposés au cha-ce chapitre nous présentons les outils pré requis permettant de créer desDanscommandes et des environnements plus complexes que ceux exposés au cha-pitre 4. Nous proﬁtons d’ailleurs de cette introduction pour dire que le chapitre 4
auquel nous faisons référence ici doit être correctement digéré pour commencer lalecture de cette partie. Quelques mécanismes autour des fontes sont également présentés ainsi que quelques pistes pour fouiller dans les sources de LATEX.

9.1

Outillage nécessaire

Hercule Poirot

pitre 4. Nous proﬁtons d’ailleurs de cette introduction pour dire que le chapitre 4
auquel nous faisons référence ici doit être correctement digéré pour commencer lalecture de cette partie. Quelques mécanismes autour des fontes sont également présentés ainsi que quelques pistes pour fouiller dans les sources de LATEX.

99.1.1 Fouiller dans les fichiers

9.1

Hercule Poirot

99.1.1 Fouiller dans les fichiers

Tout d’abord, pour personnaliser un document écrit avec LAT X, il est nécessaire deEconnaître la manière dont sont organisés les ﬁchiers qui composent la distribution dusystème TEX/LATEX que vous utilisez. Votre serviteur utilise la distribution TEXLive
pour Unix (http://www.tug.org/texlive). Dans cette distribution on pourra dans
un premier temps compulser les documentations des packages se trouvant dans lerépertoire :/usr/share/texmf-texlive/doc/latex/

Tout d’abord, pour personnaliser un document écrit avec LATEX, il est nécessaire deconnaître la manière dont sont organisés les ﬁchiers qui composent la distribution dusystème TEX/LATEX que vous utilisez. Votre serviteur utilise la distribution TEXLive
pour Unix (http://www.tug.org/texlive). Dans cette distribution on pourra dans
un premier temps compulser les documentations des packages se trouvant dans lerépertoire :/usr/share/texmf-texlive/doc/latex/

Ce répertoire contient d’autres sous-répertoires, généralement un par package, dont
la documentation est sous la forme d’un ﬁchier dvi ou PostScript. Dans certaines
situations, il est nécessaire d’aller scruter le source des packages. Dans la distribution
teTEX ces sources se trouvent dans :Ce répertoire contient d’autres sous-répertoires, généralement un par package, dont
la documentation est sous la forme d’un ﬁchier dvi ou PostScript. Dans certaines
situations, il est nécessaire d’aller scruter le source des packages. Dans la distribution
teTEX ces sources se trouvent dans :

111

111

Outillage nécessaire

112/usr/share/texmf-texlive/tex/latex/usr/share/texmf-texlive/tex/latex

et là aussi, on trouvera généralement un répertoire par package, contenant les sources
dans un ﬁchier au format texte, portant l’extension .sty et éventuellement desﬁchiers connexes. Enﬁn, pour comprendre le comportement par défaut de LATEX,
indépendamment des packages que l’on peut inclure, on pourra avoir recours ausource de LATEX dans :et là aussi, on trouvera généralement un répertoire par package, contenant les sources
dans un ﬁchier au format texte, portant l’extension .sty et éventuellement desﬁchiers connexes. Enﬁn, pour comprendre le comportement par défaut de LATEX,
indépendamment des packages que l’on peut inclure, on pourra avoir recours ausource de LATEX dans :/usr/share/texmf-texlive/tex/latex/base/latex.ltx/usr/share/texmf-texlive/tex/latex/base/latex.ltx

et aux sources des classes de documents dans :et aux sources des classes de documents dans :/usr/share/texmf-texlive/tex/latex/base/book.cls/usr/share/texmf-texlive/tex/latex/base/book.cls

pour la classe book.

pour la classe book.

9.1.2 Examiner les macros

9.1.2 Examiner les macros

Un moyen pratique de trouver la déﬁnition d’une commande consiste à le demanderà LATEX lors d’une session interactive. On lance directement dans un terminal decommande du système d’exploitation :Un moyen pratique de trouver la déﬁnition d’une commande consiste à le demanderà LATEX lors d’une session interactive. On lance directement dans un terminal decommande du système d’exploitation :

latex

latex

Mon système me répond froidement :Mon système me répond froidement :This is e-TeXk, Version 3.14159-2.1 (Web2C 7.4.5)%&-line parsing enabled.
**

9

Outillage nécessaire

112

This is e-TeXk, Version 3.14159-2.1 (Web2C 7.4.5)%&-line parsing enabled.
**À l’invite de ce prompt spartiate (**) qui est le cri du « TEX tout nu », je réponds
bravement &latex pour demander à charger le format LATEX. La réponse ne tardepas :À l’invite de ce prompt spartiate (**) qui est le cri du « TEX tout nu », je réponds
bravement &latex pour demander à charger le format LATEX. La réponse ne tardepas :**&latex
entering extended mode
LaTeX2e <2001/06/01>
Babel <v3.7h> and hyphenation patterns for american, french loaded.
***&latex
entering extended mode
LaTeX2e <2001/06/01>
Babel <v3.7h> and hyphenation patterns for american, french loaded.
*

Notez que le prompt a perdu une étoile. À partir de maintenant on peut écrire un
document LATEX interactivement. Ce qui a certes peu d’intérêt dans l’absolu, mais
peut s’avérer très utile pour obtenir la déﬁnition d’une commande avec la syntaxe.
On pourra par exemple taper :*\showhcommandei

Notez que le prompt a perdu une étoile. À partir de maintenant on peut écrire un
document LATEX interactivement. Ce qui a certes peu d’intérêt dans l’absolu, mais
peut s’avérer très utile pour obtenir la déﬁnition d’une commande avec la syntaxe.
On pourra par exemple taper :*\showhcommandei

pour avoir la déﬁnition de hcommandei. Par exemple :*\show\mbox> \mbox=\long macro:#1->\leavevmode \hbox {#1}.
<*> \show\mbox

9← c’est la définition

pour avoir la déﬁnition de hcommandei. Par exemple :*\show\mbox> \mbox=\long macro:#1->\leavevmode \hbox {#1}.
<*> \show\mbox← c’est la définition

9.2 Outils de bas niveaux

9.2 Outils de bas niveaux

113

nous montre la déﬁnition de la commande \mbox. On remarque que cette commande
lorsqu’elle est appelée, se transforme en un appel à \leavevmode et \hbox. Notre
esprit de curiosité nous pousse donc à écrire :nous montre la déﬁnition de la commande \mbox. On remarque que cette commande
lorsqu’elle est appelée, se transforme en un appel à \leavevmode et \hbox. Notre
esprit de curiosité nous pousse donc à écrire :*\show\hbox> \hbox=\hbox.
<*> \show\hbox← c’est une primitive

On constate ici que \hbox n’est pas déﬁnie à partir d’une autre commande. Il s’agit
donc de ce que TEX appelle une primitive. L’exploration peut être poursuivie :On constate ici que \hbox n’est pas déﬁnie à partir d’une autre commande. Il s’agit
donc de ce que TEX appelle une primitive. L’exploration peut être poursuivie :*\show\leavevmode> \leavevmode=macro:->\unhbox \voidb@x .
<*> \show\leavevmode← définition de \leavevmode

et ainsi de suite...

9.2

et ainsi de suite...

Outils de bas niveaux

9.2

9.2.1 Pour qui sont ces pourcents ?

Vous avez peut-être déjà remarqué que le code LATEX contient parfois le caractère %en ﬁn de ligne. La présence de ce % s’explique par le fait qu’un saut de ligne dansle code insère un espace dans le texte. Ainsi la commande :\newcommand{\beurk}{bidule}\newcommand{\beurk}{bidule}
peut s’écrire pour des raisons de lisibilité :9.1

peut s’écrire pour des raisons de lisibilité :==( bidule )==99.2

On constate donc qu’il y a deux espaces non désirés autour du mot « bidule ». On
peut éviter cela en écrivant :\newcommand{\ahhh}{%bidule%}==(\ahhh)====(bidule)==Il existe une autre situation où les espaces peuvent s’immiscer pernicieusement
dans le texte. Déﬁnissons un environnement :\newenvironment{hyperimportant}{%\bfseries\itshape}{%\upshape\mdseries}

Outils de bas niveaux

9.2.1 Pour qui sont ces pourcents ?

Vous avez peut-être déjà remarqué que le code LATEX contient parfois le caractère %en ﬁn de ligne. La présence de ce % s’explique par le fait qu’un saut de ligne dansle code insère un espace dans le texte. Ainsi la commande :\newcommand{\beurk}{
bidule}==(\beurk)==← définition de \leavevmode\newcommand{\beurk}{
bidule}==(\beurk)==

9.1*\show\leavevmode> \leavevmode=macro:->\unhbox \voidb@x .
<*> \show\leavevmode← c’est une primitive==( bidule )==9

On constate donc qu’il y a deux espaces non désirés autour du mot « bidule ». On
peut éviter cela en écrivant :\newcommand{\ahhh}{%bidule%}==(\ahhh)==

9.2*\show\hbox> \hbox=\hbox.
<*> \show\hbox113==(bidule)==Il existe une autre situation où les espaces peuvent s’immiscer pernicieusement
dans le texte. Déﬁnissons un environnement :\newenvironment{hyperimportant}{%\bfseries\itshape}{%\upshape\mdseries}

9.3

Il est impératif\begin{hyperimportant}de multiplier les sauvegardes\end{hyperimportant}de vos documents personnels

Il est impératif de multiplier les sauvegardes de vos documents personnels

Outillage nécessaire

114
Il est impératif\begin{hyperimportant}de multiplier les sauvegardes\end{hyperimportant}de vos documents personnels

9.3

Outillage nécessaire

114

Il est impératif de multiplier les sauvegardes de vos documents personnels

Si vous regardez attentivement le texte produit, vous noterez qu’il y a deux espacesde chaque côté de la séquence mise en italique gras « de ... sauvegardes » :Si vous regardez attentivement le texte produit, vous noterez qu’il y a deux espacesde chaque côté de la séquence mise en italique gras « de ... sauvegardes » :• deux espaces avant « de » introduits par le saut de ligne à la ﬁn de « est
impératif » et celui à la ﬁn de \begin{hyperimportant} ;• deux espaces avant « de » introduits par le saut de ligne à la ﬁn de « est
impératif » et celui à la ﬁn de \begin{hyperimportant} ;• deux espaces après « sauvegardes » induits par le saut de ligne à la ﬁn de« sauvegardes » et par celui à la ﬁn de \end{hyperimportant}.

• deux espaces après « sauvegardes » induits par le saut de ligne à la ﬁn de« sauvegardes » et par celui à la ﬁn de \end{hyperimportant}.
La preuve, si on supprime ces sauts de ligne :Il est impératif de multiplier les sauvegardes de vos documents personnels

Il est impératif\begin{hyperimportant} demultiplier lessauvegardes\end{hyperimportant} de vos
documents personnels

9.4

Il est impératif\begin{hyperimportant} demultiplier lessauvegardes\end{hyperimportant} de vos
documents personnels

9.4

La preuve, si on supprime ces sauts de ligne :Il est impératif de multiplier les sauvegardes de vos documents personnels

Pour éviter d’avoir à se soucier de ce genre de problème on a généralement recours àdeux commandes permettant de supprimer ces espaces doubles. On fait appel, pouréliminer ceux situés avant la séquence à \ignorespaces et pour ceux situés après,à la commande \unskip.

Pour éviter d’avoir à se soucier de ce genre de problème on a généralement recours àdeux commandes permettant de supprimer ces espaces doubles. On fait appel, pouréliminer ceux situés avant la séquence à \ignorespaces et pour ceux situés après,à la commande \unskip.

La commande \ignorespaces

La commande \ignorespaces

Cette commande procède à l’expansion des commandes qui suivent en ignorant tous
les espaces qui la suivent :Cette commande procède à l’expansion des commandes qui suivent en ignorant tous
les espaces qui la suivent :a b
aba\ignorespaces\truc\bidule bDans l’exemple ci-dessus, les commandes \truc et \bidule ont pour seul but deproduire un espace lorsqu’elles seront appelées. Par conséquent, la ligne :a\truc\bidule b
produira ’a␣{␣}b’ c’est-à-dire les deux lettres a et b séparées par deux espaces.
L’appel avec la commande \ignorespaces ignore — comme son nom l’indique —les deux espaces produits par les commandes \truc et \bidule. On peut donc
utiliser cette commande dans notre exemple précédent :\newenvironment{hyperimportant}{%\bfseries\itshape\ignorespaces}{\upshape\mdseries}
qui devrait supprimer un espace :9 a\truc\bidule b\par

9.5

9 a\truc\bidule b\par\newcommand{\truc}{ }\newcommand{\bidule}{ }9.5\newcommand{\truc}{ }\newcommand{\bidule}{ }a baba\ignorespaces\truc\bidule bDans l’exemple ci-dessus, les commandes \truc et \bidule ont pour seul but deproduire un espace lorsqu’elles seront appelées. Par conséquent, la ligne :a\truc\bidule b
produira ’a␣{␣}b’ c’est-à-dire les deux lettres a et b séparées par deux espaces.
L’appel avec la commande \ignorespaces ignore — comme son nom l’indique —les deux espaces produits par les commandes \truc et \bidule. On peut donc
utiliser cette commande dans notre exemple précédent :\newenvironment{hyperimportant}{%\bfseries\itshape\ignorespaces}{\upshape\mdseries}
qui devrait supprimer un espace :9.6

Il est impératif\begin{hyperimportant}de multiplier les sauvegardes\end{hyperimportant}de vos documents personnels.

9.2 Outils de bas niveaux

115

Il est impératif\begin{hyperimportant}de multiplier les sauvegardes\end{hyperimportant}de vos documents personnels.

Il est impératif de multiplier les sauvegardes de vos documents personnels.

115

9.6

9.2 Outils de bas niveaux

Il est impératif de multiplier les sauvegardes de vos documents personnels.

99

La commande \unskip

La commande \unskip

Si vous êtes attentif, vous noterez que deux espaces entre « sauvegardes » et « de »résistent à nos assauts. C’est là qu’intervient la primitive TEX \unskip qui enlève
le dernier espace inséré :Si vous êtes attentif, vous noterez que deux espaces entre « sauvegardes » et « de »résistent à nos assauts. C’est là qu’intervient la primitive TEX \unskip qui enlève
le dernier espace inséré :Outillage nécessaire

116

a b
ab

a\truc\bidule b\para\truc\bidule\unskip ba b
abFinalement la déﬁnition « correcte » de notre environnement est la suivante :Finalement la déﬁnition « correcte » de notre environnement est la suivante :\newenvironment{hyperimportant}{%\bfseries\itshape\ignorespaces}{\unskip\upshape\mdseries}\newenvironment{hyperimportant}{%\bfseries\itshape\ignorespaces}{\unskip\upshape\mdseries}
qui devrait supprimer tous les espaces indésirables :Il est impératif\begin{hyperimportant}de multiplier les sauvegardes\end{hyperimportant}de vos documents personnels.

Il est impératif de multiplier les sauvegardes de vos documents personnels.

9.2.2 Le caractère @Il est impératif de multiplier les sauvegardes de vos documents personnels.

9.2.2 Le caractère @Lorsque vous vous lancerez dans l’exploration des sources des packages vous remarquerez que le nom d’une grande partie des commandes qui y sont déﬁnies contientle caractère @. Or dans un document .tex, il n’est pas autorisé d’exécuter une
commande dont le nom contient ce dernier. Ceci permet de protéger ou de limiterla portée des commandes des packages. Par exemple la commande \cb@defpoint,
déﬁnie dans le package changebar, ne peut pas être appelée par un utilisateur du package. Pour redéﬁnir ces commandes internes, il est nécessaire d’eﬀectuer la petite
manipulation suivante :Lorsque vous vous lancerez dans l’exploration des sources des packages vous remarquerez que le nom d’une grande partie des commandes qui y sont déﬁnies contientle caractère @. Or dans un document .tex, il n’est pas autorisé d’exécuter une
commande dont le nom contient ce dernier. Ceci permet de protéger ou de limiterla portée des commandes des packages. Par exemple la commande \cb@defpoint,
déﬁnie dans le package changebar, ne peut pas être appelée par un utilisateur du package. Pour redéﬁnir ces commandes internes, il est nécessaire d’eﬀectuer la petite
manipulation suivante :\makeatletter% ici on peut bidouiller\renewcommand{\@ttention}{oulala...}\makeatother% ici on ne peut plus
La commande hypothétique \@ttention peut uniquement être manipulée si le caractère @ est une lettre. C’est le rôle de \makeatletter qui transforme le caractère @en une lettre comme les autres, tandis que la commande \makeatother lui réaﬀecte
sa fonction spéciale.

9.8

Il est impératif\begin{hyperimportant}de multiplier les sauvegardes\end{hyperimportant}de vos documents personnels.

9.8

qui devrait supprimer tous les espaces indésirables :99.7\newcommand{\truc}{ }\newcommand{\bidule}{ }9.7\newcommand{\truc}{ }\newcommand{\bidule}{ }a\truc\bidule b\para\truc\bidule\unskip b

Outillage nécessaire

116\makeatletter% ici on peut bidouiller\renewcommand{\@ttention}{oulala...}\makeatother% ici on ne peut plus

9

La commande hypothétique \@ttention peut uniquement être manipulée si le caractère @ est une lettre. C’est le rôle de \makeatletter qui transforme le caractère @en une lettre comme les autres, tandis que la commande \makeatother lui réaﬀecte
sa fonction spéciale.

Cette manipulation n’est pas nécessaire dans les fichiers de styles inclus avec lacommande \usepackage pour lesquels la lettre @ peut être utilisée comme un
caractère.

Cette manipulation n’est pas nécessaire dans les fichiers de styles inclus avec lacommande \usepackage pour lesquels la lettre @ peut être utilisée comme un
caractère.

La manière dont TEX peut changer la catégorie des caractères est expliquée au
chapitre suivant au paragraphe 10.5.1 page 152.

La manière dont TEX peut changer la catégorie des caractères est expliquée au
chapitre suivant au paragraphe 10.5.1 page 152.

9.2.3 Le \let de TEX

9.2.3 Le \let de TEX

Il est parfois utile de modiﬁer une commande interne de LATEX pour ajouter une fonctionnalité à son comportement par défaut. Par exemple pour modiﬁer la commandeinterne \bidule1 , on peut procéder comme suit :Il est parfois utile de modiﬁer une commande interne de LATEX pour ajouter une fonctionnalité à son comportement par défaut. Par exemple pour modiﬁer la commandeinterne \bidule1 , on peut procéder comme suit :1
Oui oui ça n’est pas une commande interne, mais un exemple idiot de nom de commande qui
n’existe pas...

1
Oui oui ça n’est pas une commande interne, mais un exemple idiot de nom de commande qui
n’existe pas...

9.3 Structures de contrôle et tests

9.3 Structures de contrôle et tests

117

1. sauvegarder la commande grâce à l’instruction \let de TEX :1. sauvegarder la commande grâce à l’instruction \let de TEX :\let\biduleORIG\bidule\let\biduleORIG\bidule

2. redéﬁnir la commande \bidule en se basant sur la déﬁnition intiale :2. redéﬁnir la commande \bidule en se basant sur la déﬁnition intiale :\renewcommand{\bidule}{quelque chose en plus\biduleORIG}\renewcommand{\bidule}{quelque chose en plus\biduleORIG}

3. si nécessaire, revenir à la déﬁnition initiale grâce à :3. si nécessaire, revenir à la déﬁnition initiale grâce à :\let\bidule\biduleORIG

9.3

117

\let\bidule\biduleORIG

Structures de contrôle et tests

9.3

Les structures introduites par le package ifthen suivent la syntaxe :Structures de contrôle et tests
Les structures introduites par le package ifthen suivent la syntaxe :\ifthenelse{ hexpression booléennei }{ ... code LaTeX si vrai ... }{ ... code LaTeX si faux ... }\ifthenelse{ hexpression booléennei }{ ... code LaTeX si vrai ... }{ ... code LaTeX si faux ... }

et :

et :

\whiledo{ hexpression booléennei }{ ... code LaTeX tant que c’est vrai ... }\whiledo{ hexpression booléennei }{ ... code LaTeX tant que c’est vrai ... }L’hexpression booléennei peut être constituée selon le contexte de diﬀérentes commandes du package ifthen, et parmi elles :L’hexpression booléennei peut être constituée selon le contexte de diﬀérentes commandes du package ifthen, et parmi elles :• les expressions hnombre1 i>hnombre2 i, hnombre1 i<hnombre2 i ainsi que l’expression hnombre1 i=hnombre2 i permettant chacune d’elles de comparer lesdeux valeurs hnombre1 i et hnombre2 i ;• les expressions hnombre1 i>hnombre2 i, hnombre1 i<hnombre2 i ainsi que l’expression hnombre1 i=hnombre2 i permettant chacune d’elles de comparer lesdeux valeurs hnombre1 i et hnombre2 i ;• \equal{hC1 i}{hC2 i} qui renvoie vrai ou faux selon que la chaîne de caractère hC1 i est égale à la chaîne hC2 i ;• \equal{hC1 i}{hC2 i} qui renvoie vrai ou faux selon que la chaîne de caractère hC1 i est égale à la chaîne hC2 i ;• \isodd{hnombrei} qui renvoie vrai si le hnombrei est impair, faux sinon ;• \isodd{hnombrei} qui renvoie vrai si le hnombrei est impair, faux sinon ;• \value{hcompteuri} qui renvoie la valeur d’un hcompteuri sous la forme d’unnombre exploitable dans les conditions booléennes ;9• \value{hcompteuri} qui renvoie la valeur d’un hcompteuri sous la forme d’unnombre exploitable dans les conditions booléennes ;• \lengthtest{htest longueuri} qui renvoie l’évaluation de htest longueuri, test
contenant les opérateurs <, > ou = et des longueurs LATEX comme opérandes.

• \lengthtest{htest longueuri} qui renvoie l’évaluation de htest longueuri, test
contenant les opérateurs <, > ou = et des longueurs LATEX comme opérandes.

On notera également qu’on pourra utiliser les connecteurs logiques \OR, \AND et\NOT qui jouent le rôle qu’on attend d’eux dans une expression booléenne. On peutgrouper des expressions avec les opérateurs \( et \).

On notera également qu’on pourra utiliser les connecteurs logiques \OR, \AND et\NOT qui jouent le rôle qu’on attend d’eux dans une expression booléenne. On peutgrouper des expressions avec les opérateurs \( et \).

9.3.1 Booléens et opérateurs associés
Le package ifthen propose à ses vaillants utilisateurs la possibilité de manipuler desbooléens. On peut en déclarer un avec la commande \newboolean :\newboolean{hid booléeni}qui déﬁnit une « variable » booléenne identiﬁée par hid booléeni. On pourra ensuite
lui aﬀecter la valeur true ou false avec la commande \setboolean :9.3.1 Booléens et opérateurs associés
Le package ifthen propose à ses vaillants utilisateurs la possibilité de manipuler desbooléens. On peut en déclarer un avec la commande \newboolean :\newboolean{hid booléeni}qui déﬁnit une « variable » booléenne identiﬁée par hid booléeni. On pourra ensuite
lui aﬀecter la valeur true ou false avec la commande \setboolean :9Outillage nécessaire

118\setboolean{hid booléeni}{hvaleuri}\setboolean{hid booléeni}{hvaleuri}

Et bien sûr on pourra utiliser le booléen ainsi créé avec les Nstructures de contrôle◭, ◮ § 9.3 p. 117
par exemple comme ceci :\ifthenelse{\boolean{hid booléeni}}{ code LaTeX si hid booléeni vaut vrai }{ code LaTeX s’il vaut faux}

Il est bon de connaître la version TEX de ce qui précède. On trouve en eﬀet dans les
packages LATEX du code écrit en TEX, et en particulier l’utilisation de la structurede contrôle « Si Alors Sinon ». Voici un exemple pour déﬁnir un nouveau booléen
avec monsieur TEX :\newif\ifimprimantecouleur\imprimantecouleurfalse}

Il est bon de connaître la version TEX de ce qui précède. On trouve en eﬀet dans les
packages LATEX du code écrit en TEX, et en particulier l’utilisation de la structurede contrôle « Si Alors Sinon ». Voici un exemple pour déﬁnir un nouveau booléen
avec monsieur TEX :\imprimantecouleurfalse
et à vrai avec :\imprimantecouleurtrue\imprimantecouleurtrue

On peut ensuite exploiter ce booléen dans une structure « Si Alors Sinon » à lamode TEX comme suit :\ifimprimantecouleur... % code si on a une imprimante couleur\else... % code si c ’ est une imprimante noir et blanc\fi

On peut ensuite exploiter ce booléen dans une structure « Si Alors Sinon » à lamode TEX comme suit :\ifimprimantecouleur... % code si on a une imprimante couleur\else... % code si c ’ est une imprimante noir et blanc\fi

9.3.2 Exemples

On souhaite écrire une commande pour produire le développement de la fonction
factorielle2 de manière à pouvoir écrire :On peut exprimer la factorielle de 10
9.9

On peut exprimer la factorielle de 10 commesuit :
10! = 10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1

Une façon de résoudre le problème est d’écrire une commande contenant une boucle\whiledo :\newcommand{\itfactorielle}[1]{%\setcounter{cptfact}{#1}% on stocke l’argument dans un compteur\whiledo{\value{cptfact}>1}{% tant qu’il est > 1\thecptfact\times% on l’affiche avec un ×
\addtocounter{cptfact}{-1}}% on décrémente le compteur1}% on affiche 1 à la fin
Il faudra bien sûr déclarer le compteur :Y en a qui n’ont pas grand chose à faire de leur journée...

On souhaite écrire une commande pour produire le développement de la fonction
factorielle2 de manière à pouvoir écrire :On peut exprimer la factorielle de 10

suit :
9 comme\begin{displaymath}

10!=\itfactorielle{10}\end{displaymath}On peut exprimer la factorielle de 10 commesuit :
9.9

9.3.2 Exemples

2\ifthenelse{\boolean{hid booléeni}}{ code LaTeX si hid booléeni vaut vrai }{ code LaTeX s’il vaut faux

On le positionne à faux avec :et à vrai avec :10!=\itfactorielle{10}\end{displaymath}Et bien sûr on pourra utiliser le booléen ainsi créé avec les Nstructures de contrôle◭, ◮ § 9.3 p. 117
par exemple comme ceci :\newif\ifimprimantecouleur

On le positionne à faux avec :suit :
9 comme\begin{displaymath}Outillage nécessaire

118

10! = 10 × 9 × 8 × 7 × 6 × 5 × 4 × 3 × 2 × 1

Une façon de résoudre le problème est d’écrire une commande contenant une boucle\whiledo :\newcommand{\itfactorielle}[1]{%\setcounter{cptfact}{#1}% on stocke l’argument dans un compteur\whiledo{\value{cptfact}>1}{% tant qu’il est > 1\thecptfact\times% on l’affiche avec un ×
\addtocounter{cptfact}{-1}}% on décrémente le compteur1}% on affiche 1 à la fin
Il faudra bien sûr déclarer le compteur :2

Y en a qui n’ont pas grand chose à faire de leur journée...

9.3 Structures de contrôle et tests

9.3 Structures de contrôle et tests

119\newcounter{cptfact}\newcounter{cptfact}

On notera que dans la condition booléenne de la boucle « TantQue », on fait appelà la commande \value pour comparer la valeur du compteur avec la valeur 1. Un
peu plus tordu : on peut implémenter cette commande de manière récursive :On notera que dans la condition booléenne de la boucle « TantQue », on fait appelà la commande \value pour comparer la valeur du compteur avec la valeur 1. Un
peu plus tordu : on peut implémenter cette commande de manière récursive :\newcommand{\recfactorielle}[1]{% version récursive :\setcounter{cptfact}{#1}% on affecte l’argument au compteur\ifthenelse{#1>1}{% si cette valeur est supérieure à 1\thecptfact\times% on l’affiche suivie de ×
\addtocounter{cptfact}{-1}% on décrémente le compteur\recfactorielle{\thecptfact}}% on fait un appel récursif{1}}% sinon (valeur=1) on affiche 1

9.10

Cette commande produit évidemment le même résultat que la précédente. On notera
que dans la condition du \ifthenelse on compare un nombre (#1) avec un autre (1).
Enﬁn on pourra remarquer que la présence de la commande \times impose le mode
mathématique pour exécuter ces commandes. On peut contourner le problème, si
nécessaire, avec la commande ◮\ensuremath.N
Le \whiledo et le \ifthenelse ont été utilisés dans le document que vous avez
sous les yeux pour générer les tableaux de symboles à la page 221 et 222, ainsi que
les tableaux sur le codage à la page 95 du chapitre sur les documents en français.
Nous avons tout d’abord créé une commande permettant d’aﬃcher un symbole :
➹

✫

➝

✸

249

75

221

88

§ 4.5.1 p. 68 ◭\affsymb{pzd}{249} \affsymb{pzd}{75}\affsymb{pzd}{221} \affsymb{pzd}{88}\newcommand{\affsymb}[2]{%\framebox{% un cadre\parbox[][16pt][b]{1em}{% autour d’une boîte paragraphe\centering% de 16 pt de hauteur, 1em de large ,\Pisymbol{#1}{#2}\\% dont le contenu centré\tiny#2}}}% est composé du symbole et de son numéro
L’argument #1 est le nom de la police (pzd ou psy), et l’argument #2 est le numérode ◮symboleN. Sinon, rien de particulier dans cette commande, si vous avez suivi jusqu’ici (notamment en lisant le chapitre 4 et plus particulièrement le paragraphe 4.4
page 60)... Nous avons ensuite déﬁni une commande permettant d’aﬃcher un série
de symboles :Voici le code de la commande \symboles :

➹

✫

➝

✸

249

75

221

88

§ 4.5.1 p. 68 ◭Cette commande est la suivante :9§ C p. 213 ◭9.11

Voici les symboles Zapf Dingbats, à partir duNo 40, sur 3 lignes et 6 colonnes :
✈

✉

☛

☞

✌

✍

40

41

42

43

44

45

✎

✏

✐

✑

✒

✓

46

47

48

49

50

51

✔

✕

✖

✗

✘

✙

52

53

54

55

56

57

\newcommand{\affsymb}[2]{%\framebox{% un cadre\parbox[][16pt][b]{1em}{% autour d’une boîte paragraphe\centering% de 16 pt de hauteur, 1em de large ,\Pisymbol{#1}{#2}\\% dont le contenu centré\tiny#2}}}% est composé du symbole et de son numéro
L’argument #1 est le nom de la police (pzd ou psy), et l’argument #2 est le numérode ◮symboleN. Sinon, rien de particulier dans cette commande, si vous avez suivi jusqu’ici (notamment en lisant le chapitre 4 et plus particulièrement le paragraphe 4.4
page 60)... Nous avons ensuite déﬁni une commande permettant d’aﬃcher un série
de symboles :Voici les symboles Zapf Dingbats, à partir
du \No 40, sur 3 lignes et 6 colonnes :\begin{center}\symboles[40]{pzd}{3}{6}\end{center}

Voici le code de la commande \symboles :9§ C p. 213 ◭Voici les symboles Zapf Dingbats, à partir duNo 40, sur 3 lignes et 6 colonnes :9.11

Cette commande est la suivante :Voici les symboles Zapf Dingbats, à partir
du \No 40, sur 3 lignes et 6 colonnes :\begin{center}\symboles[40]{pzd}{3}{6}\end{center}

Cette commande produit évidemment le même résultat que la précédente. On notera
que dans la condition du \ifthenelse on compare un nombre (#1) avec un autre (1).
Enﬁn on pourra remarquer que la présence de la commande \times impose le mode
mathématique pour exécuter ces commandes. On peut contourner le problème, si
nécessaire, avec la commande ◮\ensuremath.N
Le \whiledo et le \ifthenelse ont été utilisés dans le document que vous avez
sous les yeux pour générer les tableaux de symboles à la page 221 et 222, ainsi que
les tableaux sur le codage à la page 95 du chapitre sur les documents en français.
Nous avons tout d’abord créé une commande permettant d’aﬃcher un symbole :9.10\newcommand{\recfactorielle}[1]{% version récursive :\setcounter{cptfact}{#1}% on affecte l’argument au compteur\ifthenelse{#1>1}{% si cette valeur est supérieure à 1\thecptfact\times% on l’affiche suivie de ×
\addtocounter{cptfact}{-1}% on décrémente le compteur\recfactorielle{\thecptfact}}% on fait un appel récursif{1}}% sinon (valeur=1) on affiche 1\affsymb{pzd}{249} \affsymb{pzd}{75}\affsymb{pzd}{221} \affsymb{pzd}{88}

119

✈

✉

☛

☞

✌

40

41

42

43

44

✍
45

✎

✏

✐

✑

✒

✓

46

47

48

49

50

51

✔

✕

✖

✗

✘

✙

52

53

54

55

56

57

Outillage nécessaire120\newcommand{\symboles}[4][0]{%\setcounter{clig}{0}% Mise à zéro des compteurs de ligne\setcounter{ccol}{0}% et de colonne\setcounter{cligmax}{#3}% arguments 3 et 4 pour fixer\setcounter{ccolmax}{#4}% le nombre max de colonnes et de lignes% Pour chaque ligne :\whiledo{\value{clig}<\value{cligmax}}{%\setcounter{ccol}{0}% remise à zéro du compteur de colonne% et pour chaque colonne :\whiledo{\value{ccol}<\value{ccolmax}}{%% on calcule le numéro du symbole\setcounter{csym}{%\value{clig}*\value{ccolmax}+\value{ccol}+#1}% si sa valeur est inférieure à 256\ifthenelse{\value{csym}<256}{%\affsymb{#2}{\thecsym}}{% on l’affiche\mbox{}}% sinon on créé un boîte vide\stepcounter{ccol}}% on passe à la colonne suivante\stepcounter{clig}% on passe à la ligne suivante% on saute une ligne , sauf à la fin\ifthenelse{\value{clig}<\value{cligmax}}{\\}{}}}\newcommand{\symboles}[4][0]{%\setcounter{clig}{0}% Mise à zéro des compteurs de ligne\setcounter{ccol}{0}% et de colonne\setcounter{cligmax}{#3}% arguments 3 et 4 pour fixer\setcounter{ccolmax}{#4}% le nombre max de colonnes et de lignes% Pour chaque ligne :\whiledo{\value{clig}<\value{cligmax}}{%\setcounter{ccol}{0}% remise à zéro du compteur de colonne% et pour chaque colonne :\whiledo{\value{ccol}<\value{ccolmax}}{%% on calcule le numéro du symbole\setcounter{csym}{%\value{clig}*\value{ccolmax}+\value{ccol}+#1}% si sa valeur est inférieure à 256\ifthenelse{\value{csym}<256}{%\affsymb{#2}{\thecsym}}{% on l’affiche\mbox{}}% sinon on créé un boîte vide\stepcounter{ccol}}% on passe à la colonne suivante\stepcounter{clig}% on passe à la ligne suivante% on saute une ligne , sauf à la fin\ifthenelse{\value{clig}<\value{cligmax}}{\\}{}}}

Il faudra bien sûr déclarer les cinq compteurs avec la commande \newcounter.

Il faudra bien sûr déclarer les cinq compteurs avec la commande \newcounter.

240


246

〉

241



247



252

∫

242


248



253

⌠

243



249



254



244



250

Et je sais que vous êtes tout particulièrement
curieux de voir ce que fait cette commande
lorsque le compteur dépasse les bornes :\begin{center}\symboles[240]{psy}{3}{6}\end{center}

⌡

245



251

C’est une pratique courante — on le verra par la suite — de créer des commandes
ayant un comportement diﬀérent selon la parité de la page. À l’entrée « Finding if
you’re on an odd or an even page » de la Faq anglaise [1] est expliqué que le naïf :\ifthenelse{\isodd{\value{page}}}{ ... la page est impaire ... }{ ... la page est paire ... }peut ne pas donner le résultat escompté. Le compteur de page lorsqu’il est examiné
à la frontière entre deux pages peut ne pas être à jour : le compteur de page s’il est
interrogé au début d’une page renverra le numéro de la page précédente... Ceci est dû
à la manière dont TEX procède pour eﬀectuer les sauts de page. Pour contourner ce
problème plusieurs solutions sont possibles. Celle adoptée dans ce document consisteà utiliser le package chngpage qui insère artiﬁciellement un \label à l’endroit oùl’on veut tester la parité de la page.

240


246

〉

241



247



252

255

9.3.3 Tester la parité des pages

Et je sais que vous êtes tout particulièrement
curieux de voir ce que fait cette commande
lorsque le compteur dépasse les bornes :9.12

Et je sais que vous êtes tout particulièrement
curieux de voir ce que fait cette commande
lorsque le compteur dépasse les bornes :9.12

Et je sais que vous êtes tout particulièrement
curieux de voir ce que fait cette commande
lorsque le compteur dépasse les bornes :\begin{center}\symboles[240]{psy}{3}{6}\end{center}

9

Outillage nécessaire

120

9

∫

242


248



253

⌠

243



249



254



244



250

⌡

245



251

255

9.3.3 Tester la parité des pages
C’est une pratique courante — on le verra par la suite — de créer des commandes
ayant un comportement diﬀérent selon la parité de la page. À l’entrée « Finding if
you’re on an odd or an even page » de la Faq anglaise [1] est expliqué que le naïf :\ifthenelse{\isodd{\value{page}}}{ ... la page est impaire ... }{ ... la page est paire ... }peut ne pas donner le résultat escompté. Le compteur de page lorsqu’il est examiné
à la frontière entre deux pages peut ne pas être à jour : le compteur de page s’il est
interrogé au début d’une page renverra le numéro de la page précédente... Ceci est dû
à la manière dont TEX procède pour eﬀectuer les sauts de page. Pour contourner ce
problème plusieurs solutions sont possibles. Celle adoptée dans ce document consisteà utiliser le package chngpage qui insère artiﬁciellement un \label à l’endroit oùl’on veut tester la parité de la page.

9.4 Fontes

9.4 Fontes

121

Par conséquent dans le cas où le test de parité à réaliser peut être évalué à lafrontière entre deux pages, il faudra écrire :Par conséquent dans le cas où le test de parité à réaliser peut être évalué à lafrontière entre deux pages, il faudra écrire :\checkoddpage%\ifcpoddpage... la page est impaire ...
\else... la page est paire...
\fi

9.4

121

\checkoddpage%\ifcpoddpage... la page est impaire ...
\else... la page est paire...
\fi

Fontes

9.4

9.4.1 Le jeu des « trois » familles

Fontes

9.4.1 Le jeu des « trois » familles

Pour conserver une homogénéité dans l’allure des caractères dans un document
LATEX, sont déﬁnies trois familles :Pour conserver une homogénéité dans l’allure des caractères dans un document
LATEX, sont déﬁnies trois familles :1. la famille roman celle que vous êtes en train de lire ;1. la famille roman celle que vous êtes en train de lire ;2. la famille sans sérif que vous êtes également en train de lire à l’instant même ;2. la famille sans sérif que vous êtes également en train de lire à l’instant même ;3. et la famille machine à écrire, également appellée « typewriter » lorsqu’on est
anglophone, que — cela ne vous aura sans doute pas échappé — vous êtesen train de lire.

3. et la famille machine à écrire, également appellée « typewriter » lorsqu’on est
anglophone, que — cela ne vous aura sans doute pas échappé — vous êtesen train de lire.

Il est important de noter que ces trois familles de fontes sont par défaut trois familles
de la police baptisée par son auteur (Knuth lui-même) « Computer Modern ». Elles
sont conçues pour s’harmoniser au sein d’un même document. Dans cet ordre d’idée,
il faudra toujours veiller à ce que ces trois familles (roman, sans sérif, et machineà écrire) soient visuellement « compatibles » entre elles. Les distributions de LATEX
proposent généralement des packages permettant d’utiliser les fontes PostScript dans
un document, avec notamment le célèbre3 package times utilisant :Il est important de noter que ces trois familles de fontes sont par défaut trois familles
de la police baptisée par son auteur (Knuth lui-même) « Computer Modern ». Elles
sont conçues pour s’harmoniser au sein d’un même document. Dans cet ordre d’idée,
il faudra toujours veiller à ce que ces trois familles (roman, sans sérif, et machineà écrire) soient visuellement « compatibles » entre elles. Les distributions de LATEX
proposent généralement des packages permettant d’utiliser les fontes PostScript dans
un document, avec notamment le célèbre3 package times utilisant :1. Times pour la famille roman celle que vous êtes en train de lire ;9

1. Times pour la famille roman celle que vous êtes en train de lire ;2. Helvetica pour la famille sans sérif que vous êtes également en train de lire
à l’instant même ;2. Helvetica pour la famille sans sérif que vous êtes également en train de lire
à l’instant même ;3. Courrier pour la famille machine à écrire.

3. Courrier pour la famille machine à écrire.

De même le package newcent utilise :De même le package newcent utilise :1. NewCentury pour la famille roman celle que vous êtes en train de lire ;1. NewCentury pour la famille roman celle que vous êtes en train de lire ;2. AvantGarde pour la famille sans sérif que vous êtes également en
train de lire à l’instant même ;2. AvantGarde pour la famille sans sérif que vous êtes également en
train de lire à l’instant même ;3. Courrier pour la famille machine à écrire.

3. Courrier pour la famille machine à écrire.

Mais obsolète. Aujourd’hui il est conseillé d’utiliser le package mathptmx

3

3

Mais obsolète. Aujourd’hui il est conseillé d’utiliser le package mathptmx

9Outillage nécessaire

122

Outillage nécessaire

122

9.4.2 Désignation des fontes et de leurs attributs

9.4.2 Désignation des fontes et de leurs attributs

Une fonte ou police de caractères est déﬁnie dans LATEX par plusieurs caractéristiques dont il a été question au paragraphe 2.1 page 17. De manière à désigner
la fonte à l’aide des commandes que nous allons découvrir dans ce paragraphe, on
utilisera :Une fonte4 ou police de caractères est déﬁnie dans LATEX par plusieurs caractéristiques dont il a été question au paragraphe 2.1 page 17. De manière à désigner
la fonte à l’aide des commandes que nous allons découvrir dans ce paragraphe, on
utilisera :4• un codage qui sera à quelques exceptions près le codage T1 ;• un codage qui sera à quelques exceptions près le codage T1 ;• une série de caractères identiﬁant la famille : cmr pour « computer modern
roman », ptm pour « PostScript times », etc.

• une série de caractères identiﬁant la famille : cmr pour « computer modern
roman », ptm pour « PostScript times », etc.

• une série de caractères pour la « graisse » de la fonte : m pour « médium », bpour « bold » (gras), bx pour « bold extended » (gras étendu, c’est-à-dire gras
avec des caractères plus larges), etc.

• une série de caractères pour la « graisse » de la fonte : m pour « médium », bpour « bold » (gras), bx pour « bold extended » (gras étendu, c’est-à-dire gras
avec des caractères plus larges), etc.

• une série de caractères déﬁnissant l’allure (shape en anglais) de la fonte : npour « normal », it pour « italique », sl pour « slanted » (penché), etc.

• une série de caractères déﬁnissant l’allure (shape en anglais) de la fonte : npour « normal », it pour « italique », sl pour « slanted » (penché), etc.

Fontes « computer modern »Fontes « computer modern »Il s’agit d’un ensemble de fontes dessinées par Donald Knuth et utilisées par défaut
dans LATEX. Les commandes \emph, \textbf, etc. sélectionnent donc automatiquement ces polices.

Il s’agit d’un ensemble de fontes dessinées par Donald Knuth et utilisées par défaut
dans LATEX. Les commandes \emph, \textbf, etc. sélectionnent donc automatiquement ces polices.

Computer Modern roman (cmr)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

9

n
it
sl
sc
n
it
sl
n

m
m
bx
sbc

n
sl
n
n

Codage T1
normalpenché
gras étendu normal
semi gras condensé normal

Computer Modern typewriter (cmtt)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

m
m
m
m

n
it
sl
sc

Computer Modern sans sérif (cmss)
machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

4

Codage T1
normalitaliquepenché
petites capitales
gras étendu normal
gras étendu italiquegras étendu penché
gras normal

m
m
m
m
bx
bx
bx
b

Terme faisant référence au plomb de l’imprimerie...

Computer Modern roman (cmr)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

9

n
it
sl
sc
n
it
sl
n

m
m
bx
sbc

n
sl
n
n

Codage T1
normalpenché
gras étendu normal
semi gras condensé normal

Computer Modern typewriter (cmtt)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

m
m
m
m

n
it
sl
sc

Computer Modern sans sérif (cmss)
machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

Codage T1
normalitaliquepenché
petites capitales
4

Codage T1
normalitaliquepenché
petites capitales
gras étendu normal
gras étendu italiquegras étendu penché
gras normal

m
m
m
m
bx
bx
bx
b

Terme faisant référence au plomb de l’imprimerie...

Codage T1
normalitaliquepenché
petites capitales

9.4 Fontes

9.4 Fontes

123
Computer Modern ﬁbonacci (cmﬁb)machin Bidule Chouette chosemComputer Modern funny roman (cmfr)
machin Bidule Chouette chosemachin Bidule Chouette chosemmComputer Modern dunhil (cmdh)machin Bidule Chouette chosem

123

Codage T1
n normalComputer Modern ﬁbonacci (cmﬁb)machin Bidule Chouette chosem

Codage T1
n normalit italiqueComputer Modern funny roman (cmfr)
machin Bidule Chouette chosemachin Bidule Chouette chosemm

Codage T1
n normalComputer Modern dunhil (cmdh)machin Bidule Chouette chosem

Codage T1
n normalCodage T1
n normalit italique

Codage T1
n normalFontes en béton

Fontes en béton

Elles ont été dessinées par Knuth pour son ouvrage intitulé « Mathématiques
concrètes ». Le package beton5 permet de les charger dans un document.

Elles ont été dessinées par Knuth pour son ouvrage intitulé « Mathématiques
concrètes ». Le package beton5 permet de les charger dans un document.

Concrete fonts (ccr)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

m
m
m
m

n
sc
sl
it

Codage T1
normalpetites capitales
penché
italiqueConcrete fonts (ccr)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose

m
m
m
m

n
sc
sl
it

Codage T1
normalpetites capitales
penché
italique

Fontes « gothiques »Fontes « gothiques »Les fontes ci-deĄous sont dites de la famille gothique et ne sont à utiliser que dans un contextebien précis faute de rendre le texte parfaitement illisible, comme celui que vous êtes en train delire actuellement, d’ailleurs vous avez probablement déjà arrêté, donc je peux dire des gros mots :caca...

Les fontes ci-deĄous sont dites de la famille gothique et ne sont à utiliser que dans un contextebien précis faute de rendre le texte parfaitement illisible, comme celui que vous êtes en train delire actuellement, d’ailleurs vous avez probablement déjà arrêté, donc je peux dire des gros mots :caca...

Gothique (ygoth)ma˜in Bidule C„uette ˜ose

Codage Um nGothique (ygoth)ma˜in Bidule C„uette ˜ose

Codage U
m n

Fraktur (yfrak)maĚin Bidule Chouette ĚoseCodage U
m n

Fraktur (yfrak)maĚin Bidule Chouette ĚoseCodage Um nSchwabacher (yswab)maĚin Bidule Chouette ĚoseCodage Um n

9Schwabacher (yswab)maĚin Bidule Chouette ĚoseCodage U
m n

Fontes PostScript

Fontes PostScript

Les fontes ci-dessous sont généralement disponibles gratuitement et résident la plupart du temps dans les imprimantes.

Les fontes ci-dessous sont généralement disponibles gratuitement et résident la plupart du temps dans les imprimantes.

Times (ptm)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose
5

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
gras

Notez ici le jeu de mots désopilant, concrete veut aussi dire « béton » en langue anglaise.

Times (ptm)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose
5

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
gras

Notez ici le jeu de mots désopilant, concrete veut aussi dire « béton » en langue anglaise.

9

Outillage nécessaire

124

9Palatino (ppl)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

charter (bch)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Outillage nécessaire

124

Codage T1
normalitaliquepenché
petites capitales
gras

Palatino (ppl)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
grascharter (bch)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
gras

Codage T1
normalitaliquepenché
petites capitalesgras

New century (pnc)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitalesgras

New century (pnc)machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
gras

Bookman (pbk)
machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
gras

Bookman (pbk)
machin Bidule Chouette chosemachin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
m
b

n
it
sl
sc
n

Codage T1
normalitaliquepenché
petites capitales
gras

Helvetica (phv)machin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chosemachin Bidule Chouette chose

m
m
m
b
bc

Codage T1nnormalsl
penché
sc petites capitalesngras
ngras condensé

Helvetica (phv)machin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chosemachin Bidule Chouette chose

m
m
m
b
bc

n
sl
sc
n
n

Avantgarde (pag)machin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
b

n
sl
sc
n

Avantgarde (pag)machin Bidule Chouette chosemachin Bidule Chouette chose
MACHIN B IDULE C HOUETTE CHOSE
machin Bidule Chouette chose

m
m
m
b

n
sl
sc
n

Codage T1
normalpenché
petites capitales
gras

9

Codage T1
normalpenché
petites capitales
gras
gras condensé

Codage T1
normalpenché
petites capitales
gras9.4 Fontes

9.4 Fontes

125

Courier (pcr)machin Bidule Chouette chosemachin Bidule Chouette chose
M A C H I N BI D U L E CH O U E T T E C H O S E
machin Bidule Chouette chose
Zapf Chancery (pzc)machin Bidule Chouette chose

m
m
m
b

m

n
sl
sc
n

Codage T1
normalpenché
petites capitales
gras

125

Courier (pcr)machin Bidule Chouette chosemachin Bidule Chouette chose
M A C H I N BI D U L E CH O U E T T E C H O S E
machin Bidule Chouette chose

Codage T1
n normal

Zapf Chancery (pzc)machin Bidule Chouette chose

m
m
m
b

m

n
sl
sc
n

Codage T1
normalpenché
petites capitales
gras

Codage T1
n normal

9.4.3 Changer de fontes

9.4.3 Changer de fontes

Globalement

Globalement

On peut changer de police de caractères en utilisant des packages plus ou moins
standard de la distribution LATEX :On peut changer de police de caractères en utilisant des packages plus ou moins
standard de la distribution LATEX :N mathptmx : pour utiliser le « vilain » Times New Roman ;N mathptmx : pour utiliser le « vilain » Times New Roman ;N newcentN newcent: pour le New Century ;: pour le New Century ;N mathpazo : pour le Palatino ;N mathpazo : pour le Palatino ;

N ...

N ...

: et d’autres, n’avez qu’à fouiller votre distribution...

Si l’on examine le contenu du ﬁchier newcent.sty on trouve simplement :Si l’on examine le contenu du ﬁchier newcent.sty on trouve simplement :\renewcommand{\rmdefault}{pnc}\renewcommand{\sfdefault}{pag}\renewcommand{\ttdefault}{pcr}\renewcommand{\rmdefault}{pnc}\renewcommand{\sfdefault}{pag}\renewcommand{\ttdefault}{pcr}ce qui signiﬁe que — comme expliqué au § 9.4.1 page 121 — on a redéﬁni les trois
familles « roman », « sans sérif » et « machine à écrire » en les nommant par leurnom LATEX standardisé : pcn pour PostScript NewCentruy, pag pour PostScript
AvantGarde etc. Les noms standardisés sont donnés dans les tableaux de la section
précédente.

9Localement

9.13

Il est toujours possible de changer localement de fonte dans un texte en spéciﬁant
les paramètres nécessaires :On passe en “Funny Roman” et même qu’on peut fairede l’italique... c’est dingue ! Et hop nous voila denouveau en \rmdefault

Les appels qu’il est possible de faire avant la commande \selectfont sont :9

Localement
Il est toujours possible de changer localement de fonte dans un texte en spéciﬁant
les paramètres nécessaires :{\fontfamily{cmfr}\selectfont
On passe en ‘‘Funny Roman’’ et même qu’on
peut faire de l’\emph{italique}...
c’est dingue !} Et hop nous voila de nouveau
en \verb+\rmdefault+

9.13

ce qui signiﬁe que — comme expliqué au § 9.4.1 page 121 — on a redéﬁni les trois
familles « roman », « sans sérif » et « machine à écrire » en les nommant par leurnom LATEX standardisé : pcn pour PostScript NewCentruy, pag pour PostScript
AvantGarde etc. Les noms standardisés sont donnés dans les tableaux de la section
précédente.

{\fontfamily{cmfr}\selectfont
On passe en ‘‘Funny Roman’’ et même qu’on
peut faire de l’\emph{italique}...
c’est dingue !} Et hop nous voila de nouveau
en \verb+\rmdefault+: et d’autres, n’avez qu’à fouiller votre distribution...

On passe en “Funny Roman” et même qu’on peut fairede l’italique... c’est dingue ! Et hop nous voila denouveau en \rmdefault

Les appels qu’il est possible de faire avant la commande \selectfont sont :• \fontencoding pour le codage ;• \fontencoding pour le codage ;• \fontfamily avec comme argument la famille (cmr pour Computer Modern,ptm pour PostScript Times, etc.) ;• \fontfamily avec comme argument la famille (cmr pour Computer Modern,ptm pour PostScript Times, etc.) ;Outillage nécessaire126• \fontseries pour préciser la graisse (argument b pour gras, m pour la graisse
moyenne, etc. ) ;• \fontseries pour préciser la graisse (argument b pour gras, m pour la graisse
moyenne, etc. ) ;• \fontshape pour l’allure de la fonte (argument n pour normal, sl pour penché,etc.) ;

• \fontshape pour l’allure de la fonte (argument n pour normal, sl pour penché,etc.) ;

• \fontsize avec deux arguments : la taille des caractères et l’espace entre deux
lignes consécutives.

• \fontsize avec deux arguments : la taille des caractères et l’espace entre deux
lignes consécutives.

Et nous voila de nouveau en \rmdefault

Et nous voila de nouveau en \verb+\rmdefault+

9.15

Avant

bon bé là à moins d’avoir une bonne loupe vous ne serez pas capable de lire ce texte

Finalement, s’il on veut faire appel de manière répétée à une fonte dont tous les
attributs sont ﬁxes, on pourra avoir recours à la commande \DeclareFixedFont
prenant six arguments (nom, codage, famille, graisse, allure, taille) et permettantd’être ensuite utilisée comme une déclaration :\DeclareFixedFont{\toupiti}{T1}{pag}{m}{n}{3pt}
Avant {\toupiti bon bé là à moins d’avoir unebonne loupe vous ne serez pas capable de lirece texte} après.

après.

Listes et nouveaux environnements

9.5

À plusieurs reprises dans ce document, nous avons eu recours à l’environnement list
permettant de créer des environnements basés sur le principe des listes (numérotées,de descriptions, etc.). Nous donnons ici les bases nécessaires pour pouvoir utiliser
cet environnement en s’appuyant sur des exemples.

99.5.1 Principe
Pour déﬁnir un environnement basé sur les listes, on utilisera la syntaxe suivante :\newenvironment{maliste}%{\begin{list}%{ ... code pour l’item par défaut ... }{ ... caractéristiques de la liste ... }}%{\end{list}}

gros !

Et nous voila de nouveau en \rmdefault

Et nous voila de nouveau en \verb+\rmdefault+

Finalement, s’il on veut faire appel de manière répétée à une fonte dont tous les
attributs sont ﬁxes, on pourra avoir recours à la commande \DeclareFixedFont
prenant six arguments (nom, codage, famille, graisse, allure, taille) et permettantd’être ensuite utilisée comme une déclaration :\DeclareFixedFont{\toupiti}{T1}{pag}{m}{n}{3pt}
Avant {\toupiti bon bé là à moins d’avoir unebonne loupe vous ne serez pas capable de lirece texte} après.

9.14

gros !

{\fontfamily{ppl}\fontseries{b}%\fontsize{2cm}{2.5cm}\selectfont
gros !}

9.15{\fontfamily{ppl}\fontseries{b}%\fontsize{2cm}{2.5cm}\selectfont
gros !}

Voici un autre exemple :9.14

Voici un autre exemple :9.5

Outillage nécessaire

126

Avant

bon bé là à moins d’avoir une bonne loupe vous ne serez pas capable de lire ce texte

après.

Listes et nouveaux environnements
À plusieurs reprises dans ce document, nous avons eu recours à l’environnement list
permettant de créer des environnements basés sur le principe des listes (numérotées,de descriptions, etc.). Nous donnons ici les bases nécessaires pour pouvoir utiliser
cet environnement en s’appuyant sur des exemples.

99.5.1 Principe
Pour déﬁnir un environnement basé sur les listes, on utilisera la syntaxe suivante :\newenvironment{maliste}%{\begin{list}%{ ... code pour l’item par défaut ... }{ ... caractéristiques de la liste ... }}%{\end{list}}

L’environnement list prend donc deux arguments. Le premier permet de déﬁnirl’allure de l’étiquette (ou item) par défaut. Le second permet de déﬁnir la liste
elle-même et en particulier :L’environnement list prend donc deux arguments. Le premier permet de déﬁnirl’allure de l’étiquette (ou item) par défaut. Le second permet de déﬁnir la liste
elle-même et en particulier :Sa géométrie : les marges, les espaces entre les paragraphes composant la liste, lesespaces entre la liste et l’environnement dans lequel elle est insérée, etc.

Sa géométrie : les marges, les espaces entre les paragraphes composant la liste, lesespaces entre la liste et l’environnement dans lequel elle est insérée, etc.

9.5 Listes et nouveaux environnements

9.5 Listes et nouveaux environnements

127

127

la production de l’étiquette : c’est-à-dire la manière dont on va eﬀectivement
produire le titre de chaque entrée de la liste.

la production de l’étiquette : c’est-à-dire la manière dont on va eﬀectivement
produire le titre de chaque entrée de la liste.

La liste suivante tente d’illustrer les diﬀérentes dimensions que l’on peut modiﬁer
pour déﬁnir sa propre liste :La liste suivante tente d’illustrer les diﬀérentes dimensions que l’on peut modiﬁer
pour déﬁnir sa propre liste :Horizontales:(1)
la dimension \itemindent (1) permet d’introduire une indentation pour le premier paragraphe d’une entrée de liste.

Horizontales:(1)
la dimension \itemindent (1) permet d’introduire une indentation pour le premier paragraphe d’une entrée de liste.

(4)\leftmargin (4) déﬁnie la marge de gauche et la dimension \rightmargin celle de droite ;(4)\leftmargin (4) déﬁnie la marge de gauche et la dimension \rightmargin celle de droite ;(3)

Étiquette:
(3)

(3)

la dimension \labelsep (2) détermine la dimension séparant l’étiquette du début du paragraphe. La dimension (3)\labelwidth déﬁnit quant à elle la largeur de la boîte contenant l’étiquette.

Étiquette:

(2)

(3)

la dimension \labelsep (2) détermine la dimension séparant l’étiquette du début du paragraphe. La dimension (3)\labelwidth déﬁnit quant à elle la largeur de la boîte contenant l’étiquette.

(2)

(5)
Si on commence un nouveau paragraphe dans une entrée deliste, ce paragraphe sera alors indenté de \listparindent (5)qui vaut 0 point par défaut.

(5)
Si on commence un nouveau paragraphe dans une entrée deliste, ce paragraphe sera alors indenté de \listparindent (5)qui vaut 0 point par défaut.

Remarque « assez » importante: (2) si la largeur du texte de l’étiquette est inférieure à \labelwidth alors ce texte est inséré dans une boîte
de largeur \labelwidth. Dans le cas contraire, comme ici, letexte de l’étiquette sera inséré dans une boîte de la largeur
nécessaire et le paragraphe sera indenté en conséquence.

Remarque « assez » importante: (2) si la largeur du texte de l’étiquette est inférieure à \labelwidth alors ce texte est inséré dans une boîte
de largeur \labelwidth. Dans le cas contraire, comme ici, letexte de l’étiquette sera inséré dans une boîte de la largeur
nécessaire et le paragraphe sera indenté en conséquence.

La commande \makelabel prenant un argument, permet de produire l’étiquette.
Ainsi lorsqu’on entre la commande \item[htexte étiquettei], il est fait appel à lacommande \makelabel{htexte étiquettei}.

La commande \makelabel prenant un argument, permet de produire l’étiquette.
Ainsi lorsqu’on entre la commande \item[htexte étiquettei], il est fait appel à lacommande \makelabel{htexte étiquettei}.

9.5.2 Réglage de l’étiquette

9.5.2 Réglage de l’étiquette

Pour comprendre le fonctionnement de l’environnement list et plus particulièrement le principe du positionnement relatif de l’étiquette et du paragraphe adjacent,on peut imaginer que les éléments sont positionnés dans l’ordre suivant :1. le paragraphe est d’abord positionné par rapport à la marge de gauche à l’aide
de la longueur \leftmargin ;Pour comprendre le fonctionnement de l’environnement list et plus particulièrement le principe du positionnement relatif de l’étiquette et du paragraphe adjacent,on peut imaginer que les éléments sont positionnés dans l’ordre suivant :9

1. le paragraphe est d’abord positionné par rapport à la marge de gauche à l’aide
de la longueur \leftmargin ;2. la première ligne du paragraphe est ensuite indenté à l’aide de la longueur\itemindent ;2. la première ligne du paragraphe est ensuite indenté à l’aide de la longueur\itemindent ;3. puis l’étiquette est positionnée relativement au début du paragraphe ainsi
indenté à l’aide de la longueur \labelsep.

3. puis l’étiquette est positionnée relativement au début du paragraphe ainsi
indenté à l’aide de la longueur \labelsep.

Il découle de ceci que l’entrée de liste (ou étiquette) peut être produite dans la margede gauche... La ﬁgure 9.1 page suivante illustre le positionnement de l’entrée de liste
par rapport au paragraphe dans les deux situations suivantes :Il découle de ceci que l’entrée de liste (ou étiquette) peut être produite dans la margede gauche... La ﬁgure 9.1 page suivante illustre le positionnement de l’entrée de liste
par rapport au paragraphe dans les deux situations suivantes :• cas de la ﬁgure 9.1a où la largeur de l’entrée de liste est inférieure à la dimension \labelwidth. Dans ce cas l’entrée de liste est positionnée à une distancede \labelsep du paragraphe, lui même étant indenté de \itemindent et positionné par rapport à la marge gauche à l’aide de \leftmargin ;• cas de la ﬁgure 9.1a où la largeur de l’entrée de liste est inférieure à la dimension \labelwidth. Dans ce cas l’entrée de liste est positionnée à une distancede \labelsep du paragraphe, lui même étant indenté de \itemindent et positionné par rapport à la marge gauche à l’aide de \leftmargin ;9Outillage nécessaire128labelwidth3labelseplabelwidth2

1

leftmargin2labelseplabelwidth3labelseplabelwidth

itemindent

Paragraphe2
1

leftmargin

rightmargin(a) Cas standard

itemindent
Paragrapherightmargin1

leftmargin

2(b) Largeur supérieure à \labelwidthlabelsepitemindent

Paragraphe1leftmargin

rightmargin(a) Cas standard

Figure 9.1: Positionnement de l’entrée de liste

itemindent
Paragrapherightmargin(b) Largeur supérieure à \labelwidth

Figure 9.1: Positionnement de l’entrée de liste• cas de la ﬁgure 9.1b : la largeur de l’entrée de liste est supérieure à la dimension\labelwidth. Dans ce cas l’entrée de liste est toujours positionnée à la distance\labelsep du paragraphe, mais celui-ci est indenté d’une valeur supérieure à\itemindent.

• cas de la ﬁgure 9.1b : la largeur de l’entrée de liste est supérieure à la dimension\labelwidth. Dans ce cas l’entrée de liste est toujours positionnée à la distance\labelsep du paragraphe, mais celui-ci est indenté d’une valeur supérieure à\itemindent.

9.5.3 Réglages verticaux

9.5.3 Réglages verticaux

On peut également régler les blancs verticaux dans l’environnement list. Ces paramètres permettent notamment de déﬁnir les espaces entre les paragraphes constituant les entrées de liste, mais également les blancs que l’on veut insérer avant ou
après la liste. Il s’agit de :9

Outillage nécessaire

128

On peut également régler les blancs verticaux dans l’environnement list. Ces paramètres permettent notamment de déﬁnir les espaces entre les paragraphes constituant les entrées de liste, mais également les blancs que l’on veut insérer avant ou
après la liste. Il s’agit de :• \itemsep : l’espace entre chaque entrée de liste ;• \itemsep : l’espace entre chaque entrée de liste ;• \parsep : l’espace entre deux paragraphes à l’intérieur d’une entrée de liste ;• \parsep : l’espace entre deux paragraphes à l’intérieur d’une entrée de liste ;• \topsep : le blanc inséré avant et après l’environnement créé, auquel est ajouté\partopsep si celui-ci commence un nouveau paragraphe.

• \topsep : le blanc inséré avant et après l’environnement créé, auquel est ajouté\partopsep si celui-ci commence un nouveau paragraphe.

99.5.4 Valeurs par défaut
Tous les paramètres de l’environnement list ont des valeurs par défaut. Les longueurs pour les réglages horizontaux sont par défaut les suivantes sur le système devotre serviteur :dimension\itemindent\listparindent\rightmargin\leftmargin\labelwidth\labelsep
Et pour les réglages verticaux :valeur par défaut
0pt
0pt
0pt
25pt
20pt
5pt

9.5.4 Valeurs par défaut
Tous les paramètres de l’environnement list ont des valeurs par défaut. Les longueurs pour les réglages horizontaux sont par défaut les suivantes sur le système devotre serviteur :dimension\itemindent\listparindent\rightmargin\leftmargin\labelwidth\labelsep
Et pour les réglages verticaux :valeur par défaut
0pt
0pt
0pt
25pt
20pt
5pt

9.5 Listes et nouveaux environnements
valeur par défaut
4.0pt plus 2.0pt minus 1.0pt
4.0pt plus 2.0pt minus 1.0pt
8.0pt plus 2.0pt minus 4.0pt
2.0pt plus 1.0pt minus 1.0pt

dimension\itemsep\parsep\topsep\partopsep

La commande \makelabel est quant à elle déﬁnie par :valeur par défaut
4.0pt plus 2.0pt minus 1.0pt
4.0pt plus 2.0pt minus 1.0pt
8.0pt plus 2.0pt minus 4.0pt
2.0pt plus 1.0pt minus 1.0pt

La commande \makelabel est quant à elle déﬁnie par :\hfil #1

\hfil #1

par conséquent, dans la boîte de largeur \labelwidth, le contenu de l’étiquette est
poussé à droite. Ainsi si on déﬁnit une liste simple avec :par conséquent, dans la boîte de largeur \labelwidth, le contenu de l’étiquette est
poussé à droite. Ainsi si on déﬁnit une liste simple avec :\newenvironment{listebasique}{\begin{list}{}{}}{\end{list}}\newenvironment{listebasique}{\begin{list}{}{}}{\end{list}}

On aura :On aura :Avant avant avant avant avant avant avant
avant avant\begin{listebasique}\item[X] o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o oAvant avant avant avant avant avant avant
avant avant\begin{listebasique}\item[X] o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o oAvant avant avant avant avant avant avant
avant avant
X oooooooooooooooooooooo
oooooooooooooo
uuuuuuuuuuuuuuuuuuuu
9.16

u u u u u u u u u u u u u u u u u u u u\item[Machin] v v v v v v v v v v v v v v\end{listebasique}
Après après après après après après après
après après après

129

u u u u u u u u u u u u u u u u u u u u\item[Machin] v v v v v v v v v v v v v v\end{listebasique}
Après après après après après après après
après après après

Machin v v v v v v v v v v v v v v
Après après après après après après après après
après après

avec des étiquettes, et sans étiquette :Avant avant avant avant avant avant avant
avant avant
X oooooooooooooooooooooo
oooooooooooooo
uuuuuuuuuuuuuuuuuuuu
9.16

dimension\itemsep\parsep\topsep\partopsep

9.5 Listes et nouveaux environnements

129

Machin v v v v v v v v v v v v v v
Après après après après après après après après
après après

avec des étiquettes, et sans étiquette :9eeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeee
Après après après après après après après après
après après après après après après

9.5.5 Exemples
La liste décrivant les ﬁchiers auxiliaires de LATEX située à la page 208 a été produite
avec le code suivant :9
Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant\begin{listebasique}\item[] e e e e e e e e e e e e e e e e e
e e e e e e e e e e e e e e e e e e e e\end{listebasique}
Après après après après après après après
après après après après après après après

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant

9.17

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant

9.17

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant\begin{listebasique}\item[] e e e e e e e e e e e e e e e e e
e e e e e e e e e e e e e e e e e e e e\end{listebasique}
Après après après après après après après
après après après après après après après

eeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeee
Après après après après après après après après
après après après après après après

9.5.5 Exemples
La liste décrivant les ﬁchiers auxiliaires de LATEX située à la page 208 a été produite
avec le code suivant :Outillage nécessairelabelwidthlabelwidthlabelwidth2labelsep
Paragraphe1leftmargin1

leftmargin

rightmargin(a) Liste « fichiers auxiliaires »3labelsep2

itemindent

9.18

aux

ﬁchier auxiliaire ...

log

le ﬁchier de trace ...

dvi

ﬁchier device independant,...

91

leftmargin(a) Liste « fichiers auxiliaires »3labelsep2

itemindent

Paragrapherightmargin(b) Liste « questions »Figure 9.2: Positionnement des étiquettes dans les listes exemples.

\begin{ficaux}\item[tex] fichier source \LaTeX{} ; blabla
blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla\item[aux] fichier auxiliaire ...
\item[log] le fichier de trace ...
\item[dvi] fichier \emph{device
independant},...
\end{ficaux}

L’environnement ficaux a lui été conçu comme suit :\newenvironment{ficaux}{%\begin{list}{}{%\setlength{\labelwidth}{1cm}% largeur de la boîte englobant le label\setlength{\labelsep}{8pt}% espace entre paragraphe et l’étiquette\setlength{\leftmargin}{\labelwidth+\labelsep}% marge de gauche\renewcommand{\makelabel}[1]{% production de l’étiquette :\framebox[\labelwidth]{\texttt{##1}}}}}{\end{list}}

leftmargin
rightmargin(b) Liste « questions »ﬁchier source LATEX ; blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blabla

labelsep
Paragraphe

1Paragrapherightmargintexlabelwidth2

Figure 9.2: Positionnement des étiquettes dans les listes exemples.

\begin{ficaux}\item[tex] fichier source \LaTeX{} ; blabla
blabla blabla blabla blabla blabla blabla
blabla blabla blabla blabla\item[aux] fichier auxiliaire ...
\item[log] le fichier de trace ...
\item[dvi] fichier \emph{device
independant},...
\end{ficaux}

Outillage nécessaire

130

9.18

130

tex

ﬁchier source LATEX ; blabla blabla blabla blabla blabla blabla blabla blabla
blabla blabla blablaauxﬁchier auxiliaire ...

log

le ﬁchier de trace ...

dvi

ﬁchier device independant,...

L’environnement ficaux a lui été conçu comme suit :9\newenvironment{ficaux}{%\begin{list}{}{%\setlength{\labelwidth}{1cm}% largeur de la boîte englobant le label\setlength{\labelsep}{8pt}% espace entre paragraphe et l’étiquette\setlength{\leftmargin}{\labelwidth+\labelsep}% marge de gauche\renewcommand{\makelabel}[1]{% production de l’étiquette :\framebox[\labelwidth]{\texttt{##1}}}}}{\end{list}}

Dans cet exemple la relation :Dans cet exemple la relation :\leftmargin=\labelwidth+\labelsep\leftmargin=\labelwidth+\labelsep

permet de positionner l’entrée de liste comme indiqué à la ﬁgure 9.2a.

permet de positionner l’entrée de liste comme indiqué à la ﬁgure 9.2a.

Un autre exemple : la création d’un environnement de liste numérotée pour produire des questions dans un énoncé de travaux pratiques ou autre devoir surveillé...

Un autre exemple : la création d’un environnement de liste numérotée pour produire des questions dans un énoncé de travaux pratiques ou autre devoir surveillé...

✏1oooooooooooooooooooo
oooooooooooooo✏2oooooooooooooooooooo
ooooooooooooooooooooo
ooooooooooo✏3oooooooooooooooooooo
oooooooooooooo

9.19\begin{question}\item o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o\item o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o\item o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o\end{question}

9.5 Listes et nouveaux environnements

131\begin{question}\item o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o\item o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o\item o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o\end{question}

Cet environnement a été produit par le code suivant :131✏1oooooooooooooooooooo
oooooooooooooo✏2oooooooooooooooooooo
ooooooooooooooooooooo
ooooooooooo✏3oooooooooooooooooooo
oooooooooooooo

9.19

9.5 Listes et nouveaux environnements

Cet environnement a été produit par le code suivant :\newenvironment{question}{\begin{list}{}{%\usecounter{cptquestion}%\setlength{\labelwidth}{2em}%\setlength{\labelsep}{1em}\setlength{\itemindent}{15pt}%\setlength{\leftmargin}{.8cm}\setlength{\rightmargin}{10pt}\renewcommand{\makelabel}[1]{\etiquettequestion{##1}}}}{\end{list}}\newenvironment{question}{\begin{list}{}{%\usecounter{cptquestion}%\setlength{\labelwidth}{2em}%\setlength{\labelsep}{1em}\setlength{\itemindent}{15pt}%\setlength{\leftmargin}{.8cm}\setlength{\rightmargin}{10pt}\renewcommand{\makelabel}[1]{\etiquettequestion{##1}}}}{\end{list}}

Le positionnement correspondant est montré à la ﬁgure 9.2b page précédente. On
notera que dans la déﬁnition de la liste est fait usage de la commande \usecounter
permettant de créer une liste numérotée et de préciser quel compteur est utilisé. On
devra donc déclarer le compteur en question :Le positionnement correspondant est montré à la ﬁgure 9.2b page précédente. On
notera que dans la déﬁnition de la liste est fait usage de la commande \usecounter
permettant de créer une liste numérotée et de préciser quel compteur est utilisé. On
devra donc déclarer le compteur en question :\newcounter{cptquestion}\newcounter{cptquestion}

Enﬁn, chaque entrée de liste composée du numéro de la question et d’un « joli »crayon est produite par la commande :Enﬁn, chaque entrée de liste composée du numéro de la question et d’un « joli »crayon est produite par la commande :\newcommand{\etiquettequestion}[1]{%\makebox[\labelwidth]{\Pisymbol{pzd}{47}$_\thecptquestion$}}\newcommand{\etiquettequestion}[1]{%\makebox[\labelwidth]{\Pisymbol{pzd}{47}$_\thecptquestion$}}Finalement la commande :\renewcommand{\makelabel}[1]{\etiquettequestion{##1}}}}
redéﬁnit la commande \makelabel comme faisant appel à notre « joli » crayon. Le
premier et unique argument est passé à \etiquettequestion à l’aide de l’expression ##1, car #1 désignerait, dans le contexte de la déﬁnition de environnement
question, le premier argument de celui-ci.
Dans ce manuel, on trouve dans le mémento une liste de packages (page 207)
produite par le code suivant :\newenvironment{packages}{\begin{list}{}{%\setlength{\labelwidth}{2.5cm}%\setlength{\itemindent}{0pt}%\setlength{\leftmargin}{\labelwidth+\labelsep}%\renewcommand{\makelabel}[1]{%$\blacktriangle$ \ltxpack{##1} \hfil:}}}{\end{list}}
La commande \ltxpack est déﬁnie au paragraphe 11.1.2 page 164. Pour information,
l’environnement ci-dessus donne :Finalement la commande :9\renewcommand{\makelabel}[1]{\etiquettequestion{##1}}}}
redéﬁnit la commande \makelabel comme faisant appel à notre « joli » crayon. Le
premier et unique argument est passé à \etiquettequestion à l’aide de l’expression ##1, car #1 désignerait, dans le contexte de la déﬁnition de environnement
question, le premier argument de celui-ci.
Dans ce manuel, on trouve dans le mémento une liste de packages (page 207)
produite par le code suivant :\newenvironment{packages}{\begin{list}{}{%\setlength{\labelwidth}{2.5cm}%\setlength{\itemindent}{0pt}%\setlength{\leftmargin}{\labelwidth+\labelsep}%\renewcommand{\makelabel}[1]{%$\blacktriangle$ \ltxpack{##1} \hfil:}}}{\end{list}}
La commande \ltxpack est déﬁnie au paragraphe 11.1.2 page 164. Pour information,
l’environnement ci-dessus donne :9Outillage nécessaire

132

Outillage nécessaire132labelwidth2

itemindent

1

leftmarginlabelwidth

3 labelsep < 0
Paragrapherightmargin(a) Utiliser un \labelsep négatif.

2

itemindent

1

leftmarginlabelwidth

3 labelsep < 0
Paragrapherightmarginitemindent

1

leftmargin(b) Créer une boîte paragraphe pour superposer l’étiquette et le paragraphe.

3 labelsep < 0
Paragrapherightmargin2

itemindent

1

leftmargin

3 labelsep < 0
Paragrapherightmargin(b) Créer une boîte paragraphe pour superposer l’étiquette et le paragraphe.

Figure 9.3: Postionnement de l’étiquette dans la liste « glossaire ».
\begin{packages}
N bidule\item[bidule] cette extension permet d’insérer
des bidules dans son document sans avoir
à savoir s’il s’agit de machin ou de truc.
\end{packages}: cette extension permet d’insérer des bidules dans son document sans avoir à savoir s’il
s’agit de machin ou de truc.

9.20

9.20

\begin{packages}
N bidule\item[bidule] cette extension permet d’insérer
des bidules dans son document sans avoir
à savoir s’il s’agit de machin ou de truc.
\end{packages}

labelwidth(a) Utiliser un \labelsep négatif.

Figure 9.3: Postionnement de l’étiquette dans la liste « glossaire ».

9.5.6 Un exemple un peu plus tordu...

: cette extension permet d’insérer des bidules dans son document sans avoir à savoir s’il
s’agit de machin ou de truc.

9.5.6 Un exemple un peu plus tordu...

Nous allons détailler dans cette section la manière dont la liste composant le glossairede la page 229 a été générée. Cette liste dont l’allure est donnée ci-dessous exploite
deux idées :Nous allons détailler dans cette section la manière dont la liste composant le glossairede la page 229 a été générée. Cette liste dont l’allure est donnée ci-dessous exploite
deux idées :1re idée1re idéeLa longueur \labelsep peut être négative ce qui permet de superposer
l’entrée de liste avec le paragraphe. Ceci est illustré à la ﬁgure 9.3a ;La longueur \labelsep peut être négative ce qui permet de superposer
l’entrée de liste avec le paragraphe. Ceci est illustré à la ﬁgure 9.3a ;Deuxième idée

92

On peut créer une boîte paragraphe pour la boîte produisant l’étiquette.
La boîte ainsi créée pourra donc être composée de deux lignes : celle du hautcontenant le texte de l’étiquette, celle du dessous étant vide, se superpose avec
le paragraphe (ﬁgure 9.3b).

Deuxième idée

9

On peut créer une boîte paragraphe pour la boîte produisant l’étiquette.
La boîte ainsi créée pourra donc être composée de deux lignes : celle du hautcontenant le texte de l’étiquette, celle du dessous étant vide, se superpose avec
le paragraphe (ﬁgure 9.3b).

Le code permettant de générer la liste ci-dessus et celle du glossaire de ce manuelest donc :Le code permettant de générer la liste ci-dessus et celle du glossaire de ce manuelest donc :\newenvironment{glossaire}{\begin{list}{}{%\setlength{\labelwidth}{.5\textwidth}%\setlength{\labelsep}{-.8\labelwidth}%\setlength{\itemindent}{\parindent}%\setlength{\leftmargin}{25pt}%\setlength{\rightmargin}{0pt}%\setlength{\itemsep}{.8\baselineskip}%\renewcommand{\makelabel}[1]{\boiteentreeglossaire{##1}}}}{\end{list}}\newenvironment{glossaire}{\begin{list}{}{%\setlength{\labelwidth}{.5\textwidth}%\setlength{\labelsep}{-.8\labelwidth}%\setlength{\itemindent}{\parindent}%\setlength{\leftmargin}{25pt}%\setlength{\rightmargin}{0pt}%\setlength{\itemsep}{.8\baselineskip}%\renewcommand{\makelabel}[1]{\boiteentreeglossaire{##1}}}}{\end{list}}

9.6 Des environnements qui mettent en boîte

133

La valeur .8\baselineskip pour \itemsep permet d’aérer le glossaire en insérant
des blancs entre chaque entrée. La commande permettant de générer la boîte contenant l’entrée de liste à superposer est :La valeur .8\baselineskip pour \itemsep permet d’aérer le glossaire en insérant
des blancs entre chaque entrée. La commande permettant de générer la boîte contenant l’entrée de liste à superposer est :\newcommand{\boiteentreeglossaire}[1]{%\parbox[b]{\labelwidth}{%\setlength{\fboxsep}{3pt}%\setlength{\fboxrule}{.4pt}%\shadowbox{\sffamily#1}\\\hfill\mbox{}}}\newcommand{\boiteentreeglossaire}[1]{%\parbox[b]{\labelwidth}{%\setlength{\fboxsep}{3pt}%\setlength{\fboxrule}{.4pt}%\shadowbox{\sffamily#1}\\\hfill\mbox{}}}Pour comprendre comment est positionnée cette boîte, nous avons quelque peu modiﬁé la commande précédente pour dessiner un cadre autour :9.6

Pour comprendre comment est positionnée cette boîte, nous avons quelque peu modiﬁé la commande précédente pour dessiner un cadre autour :\begin{leglossaire}\renewcommand{\boiteentreeglossaire}{%\fboiteentreeglossaire}%\item[Bidule] o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o o\item[Truc muche] o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o o\end{leglossaire}

Biduleooooooooooooooooooooo
oooooooooooooooooooooo
ooooooooooo
9.21\begin{leglossaire}\renewcommand{\boiteentreeglossaire}{%\fboiteentreeglossaire}%\item[Bidule] o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o o\item[Truc muche] o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o oo o o o o o o o o o o o o o o o o o o o\end{leglossaire}

Truc mucheooooooooooooooooooooo
oooooooooooooooooooooo
ooooooooo

Des environnements qui mettent en boîte

9.6

L’environnement lrbox qui fait l’objet de ce paragraphe permet de stocker le « contenu »d’un environnement dans une boîte. C’est un outil très pratique qui est souvent une
solution adaptée à des problèmes courants comme l’encadrement d’objets. Nous allons voir sur un exemple comment on peut utiliser cette construction.

\newsavebox{hmaboitei}
On peut ensuite écrire :\begin{lrbox}{hmaboitei}...contenu...\end{lrbox}
qui est parfaitement équivalent à :\savebox{hmaboitei}{...contenu...}Bon mais alors si c’est la même chose, à quoi ça sert ?? Ça sert pour la définitiond’un environnement.

9.6.2 Exemple
Supposons, par exemple l’existence d’un environnement :\newenvironment{remarque}{%% clause begin

Biduleooooooooooooooooooooo
oooooooooooooooooooooo
ooooooooooo
Truc mucheooooooooooooooooooooo
oooooooooooooooooooooo
ooooooooo

Des environnements qui mettent en boîte
L’environnement lrbox qui fait l’objet de ce paragraphe permet de stocker le « contenu »d’un environnement dans une boîte. C’est un outil très pratique qui est souvent une
solution adaptée à des problèmes courants comme l’encadrement d’objets. Nous allons voir sur un exemple comment on peut utiliser cette construction.

9.6.1 Principe
On déclare une boîte comme expliqué au paragraphe 4.4.5 page 67 :

133

9.21

9.6 Des environnements qui mettent en boîte

9.6.1 Principe

9

On déclare une boîte comme expliqué au paragraphe 4.4.5 page 67 :\newsavebox{hmaboitei}
On peut ensuite écrire :\begin{lrbox}{hmaboitei}...contenu...\end{lrbox}
qui est parfaitement équivalent à :\savebox{hmaboitei}{...contenu...}Bon mais alors si c’est la même chose, à quoi ça sert ?? Ça sert pour la définitiond’un environnement.

9.6.2 Exemple
Supposons, par exemple l’existence d’un environnement :\newenvironment{remarque}{%% clause begin

9

Outillage nécessaire

134\begin{center}\begin{minipage}{.8\textwidth}}{%% clause end\end{minipage}\end{center}}\begin{center}\begin{minipage}{.8\textwidth}}{%% clause end\end{minipage}\end{center}}

Et :

Et :

9.22

On peut faire la remarque (édifiante) suivante :On peut faire la remarque (édiﬁante) sui\begin{remarque}vante :
Jazz is not dead. It just smells funny.
Jazz is not dead. It just smells funny.
\hfill Frank \textsc{Zappa}
Frank Zappa\end{remarque}
Et on reprend notre propos.
Et on reprend notre propos.

9.22

On peut faire la remarque (édifiante) suivante :On peut faire la remarque (édiﬁante) sui\begin{remarque}vante :
Jazz is not dead. It just smells funny.
Jazz is not dead. It just smells funny.
\hfill Frank \textsc{Zappa}
Frank Zappa\end{remarque}
Et on reprend notre propos.
Et on reprend notre propos.

À la question : comment pourrait-on faire pour encadrer cette remarque ? nous répondons sans hésiter : « avec l’environnement lrbox ». Dans la mesure où il n’y apas de moyen avec LATEX de commencer une \fbox dans la clause begin et de laﬁnir dans la claude end, on utilisera le principe suivant :À la question : comment pourrait-on faire pour encadrer cette remarque ? nous répondons sans hésiter : « avec l’environnement lrbox ». Dans la mesure où il n’y apas de moyen avec LATEX de commencer une \fbox dans la clause begin et de laﬁnir dans la claude end, on utilisera le principe suivant :1. stocker le contenu à encadrer à l’aide de l’environnement lrbox

1. stocker le contenu à encadrer à l’aide de l’environnement lrbox

2. l’encadrer en réutilisant la boîte ainsi construite.

2. l’encadrer en réutilisant la boîte ainsi construite.

On aura donc :On aura donc :\newsavebox{\boiteremarque}\newenvironment{remarque}{%% clause begin\begin{lrbox}{\boiteremarque}% début mise en boîte
\begin{minipage}{.8\textwidth}}{%% clause end\end{minipage}\end{lrbox}% fin mise en boîte
% production de la boîte encadrée\begin{center}\fbox{\usebox{\boiteremarque}}\end{center}}

9

Outillage nécessaire

134\newsavebox{\boiteremarque}\newenvironment{remarque}{%% clause begin\begin{lrbox}{\boiteremarque}% début mise en boîte
\begin{minipage}{.8\textwidth}}{%% clause end\end{minipage}\end{lrbox}% fin mise en boîte
% production de la boîte encadrée\begin{center}\fbox{\usebox{\boiteremarque}}\end{center}}

9

Cette idée est utilisée à plusieurs reprises dans les deux chapitres qui suivent.

Cette idée est utilisée à plusieurs reprises dans les deux chapitres qui suivent.

◮ 4.4.1 p. 62

Il faut noter que la boîte que définit l’environnement lrbox est une Nboîte simple◭
à l’instar des boîtes créées par les commandes de la famille \mbox et par conséquentne peut contenir de saut de paragraphe.

9.23

On peut faire la remarque (édifiante) suivante :On peut faire la remarque (édiﬁante) sui\begin{remarque}vante :
Jazz is not dead. It just smells funny.
Jazz is not dead. It just smells funny.
\hfill Frank \textsc{Zappa}
Frank Zappa\end{remarque}
Et on reprend notre propos.
Et on reprend notre propos.

9.23

On peut faire la remarque (édifiante) suivante :On peut faire la remarque (édiﬁante) sui\begin{remarque}vante :
Jazz is not dead. It just smells funny.
Jazz is not dead. It just smells funny.
\hfill Frank \textsc{Zappa}
Frank Zappa\end{remarque}
Et on reprend notre propos.
Et on reprend notre propos.

◮ 4.4.1 p. 62

Il faut noter que la boîte que définit l’environnement lrbox est une Nboîte simple◭
à l’instar des boîtes créées par les commandes de la famille \mbox et par conséquentne peut contenir de saut de paragraphe.

10

10

Cosmétique

Sommaire

Sommaire10.1 Allure de l’index

10.1 Allure de l’index

10.2 Allures des titres10.2 Allures des titres

10.3 Géométrie

10.3 Géométrie

10.4 En-tête et pied de page

10.4 En-tête et pied de page

10.5 Environnements avec caractères spéciaux

10.5 Environnements avec caractères spéciaux

10.6 About those so called “french guillemets”

10.6 About those so called “french guillemets”

10.7 Une boîte pour la minitable des matières

10.7 Une boîte pour la minitable des matières

Je me dis: Je monterai sur le palmier, J’en saisirai les rameaux !
Que tes seins soient comme les grappes de la vigne,
Le parfum de ton souffle comme celui des pommes,
Et ta bouche comme un vin excellent qui coule aisément pour mon bien-aimé,
Et glisse sur les lèvres de ceux qui s’endorment !

Je me dis: Je monterai sur le palmier, J’en saisirai les rameaux !
Que tes seins soient comme les grappes de la vigne,
Le parfum de ton souffle comme celui des pommes,
Et ta bouche comme un vin excellent qui coule aisément pour mon bien-aimé,
Et glisse sur les lèvres de ceux qui s’endorment !

Le Cantique des cantiques Ct 7 10.

Le Cantique des cantiques Ct 7 10.

générale de ce chapitre, laissant présager des macros parfumées, est deL’idéeprésenter les outils standard de LTEX qui ont été personnalisés pour produire

générale de ce chapitre, laissant présager des macros parfumées, est deL’idéeprésenter les outils standard de LTEX qui ont été personnalisés pour produireAcertaines parties du document. Ces personnalisations s’entendent à plusieurs niveaux : en utilisant des options de packages (par exemple pour les en-têtes de page),ou parfois en « mettant le nez » dans la déﬁnition des macros, comme pour l’allure
des chapitres et des sections, ou en modiﬁant plus en profondeur ces macros commedans le cas de la minitable des matières. Une partie du chapitre est consacrée aux
outils que l’on peut mettre au point à partir du package fancyvrb. Enﬁn un combat
en règle contre les guillemets français est mené en guise de clôture de ce chapitre.

10.1

CosmétiqueAllure de l’index

A

certaines parties du document. Ces personnalisations s’entendent à plusieurs niveaux : en utilisant des options de packages (par exemple pour les en-têtes de page),ou parfois en « mettant le nez » dans la déﬁnition des macros, comme pour l’allure
des chapitres et des sections, ou en modiﬁant plus en profondeur ces macros commedans le cas de la minitable des matières. Une partie du chapitre est consacrée aux
outils que l’on peut mettre au point à partir du package fancyvrb. Enﬁn un combat
en règle contre les guillemets français est mené en guise de clôture de ce chapitre.

10
10.1

Pour changer l’allure de l’index, il faut comprendre que lorsqu’on tape fébrilement
avec ses petits doigts la commande :makeindex hdocumenti

Allure de l’index
Pour changer l’allure de l’index, il faut comprendre que lorsqu’on tape fébrilement
avec ses petits doigts la commande :makeindex hdocumenti

on génère alors un ﬁchier hdocumenti.ind contenant quelque chose ressemblant à :← préambule\begin{theindex}\item Cosmic debris, 12,34

on génère alors un ﬁchier hdocumenti.ind contenant quelque chose ressemblant à :← préambule\begin{theindex}\item Cosmic debris, 12,34

135

135

10

Cosmétique

136

Cosmétique136\indexspace← espace inter-groupe\indexspace← espace inter-groupe\item Debra kadabra, 23← entrée, séparateur, page

\item Debra kadabra, 23← entrée, séparateur, page\end{theindex}← postambule\end{theindex}← postambule

En réalité, ce code est généré à partir d’entités génériques ayant des valeurs prédéﬁnies et pouvant être modiﬁées. Pour s’en convaincre, il suﬃt de savoir que leprogramme makeindex peut générer un ﬁchier .ind contenant autre chose que ducode LATEX. Pour comprendre cette aﬀaire d’entités génériques, on pourrait décrirele travail de makeindex comme suit :En réalité, ce code est généré à partir d’entités génériques ayant des valeurs prédéﬁnies et pouvant être modiﬁées. Pour s’en convaincre, il suﬃt de savoir que leprogramme makeindex peut générer un ﬁchier .ind contenant autre chose que ducode LATEX. Pour comprendre cette aﬀaire d’entités génériques, on pourrait décrirele travail de makeindex comme suit :1. Écrire le préambule en examinant la valeur de l’entité preamble ;1. Écrire le préambule en examinant la valeur de l’entité preamble ;2. Pour chaque entrée du ﬁchier .idx:

2. Pour chaque entrée du ﬁchier .idx:(a) écrire le contenu de l’entité item_0 ;(a) écrire le contenu de l’entité item_0 ;(b) écrire l’entrée (« Cosmic debries » dans l’exemple précédent) ;(b) écrire l’entrée (« Cosmic debries » dans l’exemple précédent) ;(c) écrire le séparateur (valeur de l’entité delim_0) ;(c) écrire le séparateur (valeur de l’entité delim_0) ;(d) écrire le numéro de page(d) écrire le numéro de page

3. À chaque ﬁn de groupe (changement de lettre) écrire le contenu de l’entité
group_skip ;3. À chaque ﬁn de groupe (changement de lettre) écrire le contenu de l’entité
group_skip ;4. Écrire le postambule en examinant la valeur de l’entité postamble.

4. Écrire le postambule en examinant la valeur de l’entité postamble.

Les valeurs des entités auxquelles il est fait allusion sont par défaut les suivantes :preamble
item_0delim_0
group_skip
postamble

Les valeurs des entités auxquelles il est fait allusion sont par défaut les suivantes :"\\begin{theindex}\n""\n \\item"", ""\n\n \\indexspace\n""\n\n\\end{theindex}\n"preamble
item_0delim_0
group_skip
postamble

Ces valeurs peuvent être modiﬁées par l’intermédiaire d’un ﬁchier de style auquel on
met généralement l’extension .ist et que l’on utilisera lors de l’appel à makeindex
de la manière suivante :01

makeindex -s hstylei.ist hdocumenti
Ainsi pour produire l’index de ce document, nous avons dans un premier temps
redéﬁni les séparateurs de niveau 1 et 2 :delim_0 " \\dotfill \ "delim_1 " \\dotfill \ "on remplace donc la virgule qui sépare par défaut l’entrée d’index et son numéro depage par des points de suspension. Ensuite, en lisant scrupuleusement la documentation makeindex1 , on apprend qu’écrire :headings_flag 1
1

Voir également le nota qui suit pour les références bibliographiques utiles.

"\\begin{theindex}\n""\n \\item"", ""\n\n \\indexspace\n""\n\n\\end{theindex}\n"Ces valeurs peuvent être modiﬁées par l’intermédiaire d’un ﬁchier de style auquel on
met généralement l’extension .ist et que l’on utilisera lors de l’appel à makeindex
de la manière suivante :01

makeindex -s hstylei.ist hdocumenti
Ainsi pour produire l’index de ce document, nous avons dans un premier temps
redéﬁni les séparateurs de niveau 1 et 2 :delim_0 " \\dotfill \ "delim_1 " \\dotfill \ "on remplace donc la virgule qui sépare par défaut l’entrée d’index et son numéro depage par des points de suspension. Ensuite, en lisant scrupuleusement la documentation makeindex1 , on apprend qu’écrire :headings_flag 1
1

Voir également le nota qui suit pour les références bibliographiques utiles.

10.1 Allure de l’index

10.1 Allure de l’index

137

est la manière polie de demander à makeindex de produire entre les groupes d’entréesla lettre correspondant au groupe. Cette lettre sera (en majuscule) et encadrée parles contenus respectifs des entités heading_prefix et heading_suffix. Qu’à cela
ne tienne, pour produire nos jolies boîtes ombrées, nous écrivons dans le ﬁchier destyle :

137

est la manière polie de demander à makeindex de produire entre les groupes d’entréesla lettre correspondant au groupe. Cette lettre sera (en majuscule) et encadrée parles contenus respectifs des entités heading_prefix et heading_suffix. Qu’à cela
ne tienne, pour produire nos jolies boîtes ombrées, nous écrivons dans le ﬁchier destyle :

heading_prefix "{\\large\\sffamily\\bfseries\\shadowbox{"
heading_suffix "}\\hfill}\\nopagebreak\n"heading_prefix "{\\large\\sffamily\\bfseries\\shadowbox{"
heading_suffix "}\\hfill}\\nopagebreak\n"

10

10

Cosmétique138
Ce qui vous l’avez compris, produira par exemple pour la lettre « c » :10.2

Ce qui vous l’avez compris, produira par exemple pour la lettre « c » :{\large\sffamily\bfseries%\shadowbox{C}\hfil}\nopagebreakCC

Cette commande sera précédée par le contenu de group_skip qui, nous l’avons dit
un peu plus haut, vaut par défaut \indexspace. Nous avons après quelques mois
de recherche2 , déniché la déﬁnition de cette commande dans book.cls et l’avons
modiﬁée pour augmenter légèrement l’espace entre les groupes :Cette commande sera précédée par le contenu de group_skip qui, nous l’avons dit
un peu plus haut, vaut par défaut \indexspace. Nous avons après quelques mois
de recherche2 , déniché la déﬁnition de cette commande dans book.cls et l’avons
modiﬁée pour augmenter légèrement l’espace entre les groupes :\renewcommand\indexspace{\par \vskip 20pt plus5pt minus3pt\relax}\renewcommand\indexspace{\par \vskip 20pt plus5pt minus3pt\relax}

Ce paragraphe ne donne bien évidemment qu’un aperçu très succinct des fonctionnalités proposées par makeindex. Outre les informations que l’on peut trouver dansle LATEX companion, la page de manuel de cet utilitaire dans un environnement Debiandonne une liste exhaustive des entités génériques que l’on peut définir. Un fichier nommé
ind.dvi écrit par P. Chen et M. A. Harrinson constitue également un bon point dedépart pour la personnalisation de l’index.

Ce paragraphe ne donne bien évidemment qu’un aperçu très succinct des fonctionnalités proposées par makeindex. Outre les informations que l’on peut trouver dansle LATEX companion, la page de manuel de cet utilitaire dans un environnement Debiandonne une liste exhaustive des entités génériques que l’on peut définir. Un fichier nommé
ind.dvi écrit par P. Chen et M. A. Harrinson constitue également un bon point dedépart pour la personnalisation de l’index.

Allures des titres

10.2

Nous proposons ici d’exposer la manière dont on a modiﬁé l’allure des titres standard(partie, chapitre, section, etc.) de LATEX.

Allures des titres
Nous proposons ici d’exposer la manière dont on a modiﬁé l’allure des titres standard(partie, chapitre, section, etc.) de LATEX.

10.2.1 Numérotation des titres et table des matières

01

10.1

10.1

{\large\sffamily\bfseries%\shadowbox{C}\hfil}\nopagebreakCosmétique138

10.2.1 Numérotation des titres et table des matières

Avant toute chose il faut savoir qu’on peut agir sur la table des matières à l’aide dedeux compteurs :Avant toute chose il faut savoir qu’on peut agir sur la table des matières à l’aide dedeux compteurs :1. secnumdepth (section numbering depth) stipulant la profondeur de la numérotation des titres dans le document ;1. secnumdepth (section numbering depth) stipulant la profondeur de la numérotation des titres dans le document ;2. tocdepth (tab le of contents depth) déﬁnissant quel est le niveau (ou profondeur) de titre maxi dans la table des matières.

2. tocdepth (tab le of contents depth) déﬁnissant quel est le niveau (ou profondeur) de titre maxi dans la table des matières.

Pour utiliser ces deux compteurs, il faut en outre avoir connaissance de la manière
dont LATEX associe une profondeur à chaque titre. Et bien réjouissez-vous, le tableausuivant vous fournit cette information :
Titre
part
chapter
sectionsubsection

profondeur
-1
0
1
2

Titre
subsubsection
paragraph
subparagraphJe plaisante, juste quelques semai... minutes veux-je dire.

Pour utiliser ces deux compteurs, il faut en outre avoir connaissance de la manière
dont LATEX associe une profondeur à chaque titre. Et bien réjouissez-vous, le tableausuivant vous fournit cette information :profondeur

Titre
part
chapter
sectionsubsection

3
4
5

Ainsi, aﬀecter la valeur 1 à secnumdepth et la valeur 2 à tocdepth numérotera lestitres jusqu’aux \sections et insérera dans la table des matières, tous les titres
jusqu’aux \subsections...
2

01

profondeur
-1
0
1
2

Titre
subsubsection
paragraph
subparagraphprofondeur
3
4
5

Ainsi, aﬀecter la valeur 1 à secnumdepth et la valeur 2 à tocdepth numérotera lestitres jusqu’aux \sections et insérera dans la table des matières, tous les titres
jusqu’aux \subsections...
2

Je plaisante, juste quelques semai... minutes veux-je dire.

10.2 Allures des titres10.2 Allures des titres

139

10.2.2 Sections et niveaux inférieurs

10.2.2 Sections et niveaux inférieurs

Dans le ﬁchier book.cls du système TEX, on trouve le code suivant :Dans le ﬁchier book.cls du système TEX, on trouve le code suivant3 :3\newcommand{\section}{%\@startsection%{section}% nom du titre{1}% niveau de titre{0pt}% indentation{-3.5ex plus -1ex minus -.2ex}% espace vertical avant{2.3ex plus.2ex}% espace vertical après{\normalfont\Large\bfseries}} % allure du titre\newcommand{\section}{%\@startsection%{section}% nom du titre{1}% niveau de titre{0pt}% indentation{-3.5ex plus -1ex minus -.2ex}% espace vertical avant{2.3ex plus.2ex}% espace vertical après{\normalfont\Large\bfseries}} % allure du titre

Ce code permet de déﬁnir comment sera produit le titre d’une section. On constate
que la \section fait appel à la commande \@startsection, cette dernière attendant
six arguments :Ce code permet de déﬁnir comment sera produit le titre d’une section. On constate
que la \section fait appel à la commande \@startsection, cette dernière attendant
six arguments :• le nom du titre : section, subsection, etc.

• le nom du titre : section, subsection, etc.

• son niveau : 1 pour section, 2 pour subsection, 3 pour subsubsection, etc.

• son niveau : 1 pour section, 2 pour subsection, 3 pour subsubsection, etc.

• son indentation ;• son indentation ;• le blanc vertical avant le titre ;• le blanc vertical avant le titre ;• le blanc vertical après le titre ;• le blanc vertical après le titre ;• un ensemble de déclarations pour formater le titre lui-même.

• un ensemble de déclarations pour formater le titre lui-même.

On pourra donc noter que la mise en page par défaut de LATEX pour les sections
dans la classe book est la suivante :On pourra donc noter que la mise en page par défaut de LATEX pour les sections
dans la classe book est la suivante :• pas d’indentation (0pt)• pas d’indentation (0pt)• espace avant le titre de 3.5ex avec un tolérance de plus -1ex et moins -.2ex ;• espace avant le titre de 3.5ex avec un tolérance de plus -1ex et moins -.2ex ;• espace après le titre de 2.3ex avec une tolérance de plus .2ex ; on pourra noter
que si l’espace est négatif, le paragraphe commence juste après le titre, et non
sur un nouveau paragraphe ;• espace après le titre de 2.3ex avec une tolérance de plus .2ex ; on pourra noter
que si l’espace est négatif, le paragraphe commence juste après le titre, et non
sur un nouveau paragraphe ;• les titres sont en gros et en gras dans la fonte « normale ».
Pour déﬁnir l’allure des sections de ce document, nous avons introduit trois
longueurs pour l’indentation de sections, subsections et subsubsections :\newlength{\sectiontitleindent}\newlength{\subsectiontitleindent}\newlength{\subsubsectiontitleindent}
Ces longueurs ont pour valeur :\setlength{\sectiontitleindent}{-1cm}\setlength{\subsectiontitleindent}{-.5cm}\setlength{\subsubsectiontitleindent}{-.25cm}
3

139

Légèrement simplifié...

10• les titres sont en gros et en gras dans la fonte « normale ».
Pour déﬁnir l’allure des sections de ce document, nous avons introduit trois
longueurs pour l’indentation de sections, subsections et subsubsections :\newlength{\sectiontitleindent}\newlength{\subsectiontitleindent}\newlength{\subsubsectiontitleindent}
Ces longueurs ont pour valeur :\setlength{\sectiontitleindent}{-1cm}\setlength{\subsectiontitleindent}{-.5cm}\setlength{\subsubsectiontitleindent}{-.25cm}
3

Légèrement simplifié...

10

140

Cosmétique

140

D’autre part, nous avons déﬁni une fonte particulière pour les titres, déﬁnie commesuit :

D’autre part, nous avons déﬁni une fonte particulière pour les titres, déﬁnie commesuit :\newcommand{\sectionfont}{%\fontencoding{\encodingdefault}%\fontfamily{pag}%\fontseries{bc}%\fontshape{n}%\selectfont}\newcommand{\sectionfont}{%\fontencoding{\encodingdefault}%\fontfamily{pag}%\fontseries{bc}%\fontshape{n}%\selectfont}

Cette commande permet de sélectionner la fonte PostScript Avant-Garde en grascondensé (cf. 9.4 page 121). Finalement, pour déﬁnir l’allure de nos sections on
utilisera :Cette commande permet de sélectionner la fonte PostScript Avant-Garde en grascondensé (cf. 9.4 page 121). Finalement, pour déﬁnir l’allure de nos sections on
utilisera :\renewcommand{\section}{%\@startsection%{section}%{1}%{\sectiontitleindent}%{-3.5ex plus -1ex minus -.2ex}%{2.3ex plus.2ex}%{\sectionfont\Large}}\renewcommand{\section}{%\@startsection%{section}%{1}%{\sectiontitleindent}%{-3.5ex plus -1ex minus -.2ex}%{2.3ex plus.2ex}%{\sectionfont\Large}}

Des commandes équivalentes ont été écrites pour les titres de niveaux inférieurs.

Des commandes équivalentes ont été écrites pour les titres de niveaux inférieurs.

10.2.3 Chapitres

01

Cosmétique10.2.3 Chapitres

C’est en fouillant dans le ﬁchier book.cls qu’on peut trouver des informations surla manière dont LATEX produit les en-têtes de chapitres.

C’est en fouillant dans le ﬁchier book.cls qu’on peut trouver des informations surla manière dont LATEX produit les en-têtes de chapitres.

Principe

Principe

Dans le ﬁchier book.cls, on trouve la commande :Dans le ﬁchier book.cls, on trouve la commande :\newcommand{\chapter}{%...
\thispagestyle{plain}%...
\secdef\@chapter\@schapter} % la ligne qui nous intéresse
La commande \chapter fait donc elle-même appel à deux commandes distinctes :01\newcommand{\chapter}{%...
\thispagestyle{plain}%...
\secdef\@chapter\@schapter} % la ligne qui nous intéresse
La commande \chapter fait donc elle-même appel à deux commandes distinctes :1. \@chapter pour les titres de chapitre qui sont numérotés ;1. \@chapter pour les titres de chapitre qui sont numérotés ;2. \@schapter pour les titres de chapitre non numérotés (s pour star ou étoile
faisant référence à la commande \chapter*).

2. \@schapter pour les titres de chapitre non numérotés (s pour star ou étoile
faisant référence à la commande \chapter*).

En cherchant vaillamment la déﬁnition de ces deux commandes (toujours dans leﬁchier book.cls), on trouve quelque chose du genre :En cherchant vaillamment la déﬁnition de ces deux commandes (toujours dans leﬁchier book.cls), on trouve quelque chose du genre :\def\@chapter[#1]#2{%...
\refstepcounter{chapter}%\typeout{\@chapapp\space\thechapter.}% message sur le terminal\addcontentsline{toc}{chapter}% ajout du titre dans la toc\def\@chapter[#1]#2{%...
\refstepcounter{chapter}%\typeout{\@chapapp\space\thechapter.}% message sur le terminal\addcontentsline{toc}{chapter}% ajout du titre dans la toc

10.2 Allures des titres10.2 Allures des titres

141

...
\if@twocolumn...
\else% le cas d’un document à une colonne\@makechapterhead{#2}% la ligne qui nous intéresse
\fi}

141

...
\if@twocolumn...
\else% le cas d’un document à une colonne\@makechapterhead{#2}% la ligne qui nous intéresse\fi}

ce qui nous met sur la voie... en eﬀet la commande \@makechapterhead (qu’on peut
traduire littéralement par « faire l’en-tête de chapitre ») est celle qu’il va nous falloir
redéﬁnir pour changer l’allure des en-têtes. Une recherche supplémentaire nous metégalement sur la piste de la commande \@makeschapterhead produisant l’en-tête
d’un chapitre non numéroté. Ces deux commandes attendent un argument qui est
le titre du chapitre.

ce qui nous met sur la voie... en eﬀet la commande \@makechapterhead (qu’on peut
traduire littéralement par « faire l’en-tête de chapitre ») est celle qu’il va nous falloir
redéﬁnir pour changer l’allure des en-têtes. Une recherche supplémentaire nous metégalement sur la piste de la commande \@makeschapterhead produisant l’en-tête
d’un chapitre non numéroté. Ces deux commandes attendent un argument qui est
le titre du chapitre.

Petits outils nécessaires

Petits outils nécessaires

Nous avons déﬁni un environnement cadrechap dont le propos est simplement d’élargir la marge de droite de deux centimètres :Nous avons déﬁni un environnement cadrechap dont le propos est simplement d’élargir la marge de droite de deux centimètres :\newenvironment{cadrechap}%{\begin{list}{}{%\setlength{\leftmargin}{0pt}%\setlength{\rightmargin}{-2cm}% on se met au large\setlength{\itemindent}{0pt}%\setlength{\labelsep}{0pt}%}\item}%{\end{list}}\newenvironment{cadrechap}%{\begin{list}{}{%\setlength{\leftmargin}{0pt}%\setlength{\rightmargin}{-2cm}% on se met au large\setlength{\itemindent}{0pt}%\setlength{\labelsep}{0pt}%}\item}%{\end{list}}

Il sera également fait usage du booléen @mainmatter permettant de savoir si on setrouve dans la partie « centrale » du document. C’est le cas lorsque la commande\mainmatter a été appelée (cf. 6.4 page 91).

Il sera également fait usage du booléen @mainmatter permettant de savoir si on setrouve dans la partie « centrale » du document. C’est le cas lorsque la commande\mainmatter a été appelée (cf. 6.4 page 91).

En-tête des chapitres à proprement parler

En-tête des chapitres à proprement parler

Pour ce manuel, nous avons redéﬁni la commande \@makechapterhead comme suit :Pour ce manuel, nous avons redéﬁni la commande \@makechapterhead comme suit :\renewcommand{\@makechapterhead}[1]{%\begin{cadrechap}\if@mainmatter{\chapnumfont\thechapter}\hfill{\chapfont#1}\else\mbox{}\hfill{\chapfont#1}\fi\end{cadrechap}\vspace{1cm}}
Par conséquent, si on est dans le « \mainmatter » :10\renewcommand{\@makechapterhead}[1]{%\begin{cadrechap}\if@mainmatter{\chapnumfont\thechapter}\hfill{\chapfont#1}\else\mbox{}\hfill{\chapfont#1}\fi\end{cadrechap}\vspace{1cm}}
Par conséquent, si on est dans le « \mainmatter » :• on aﬃche le numéro du chapitre (\thechapter) dans une fonte particulière(\chapnumfont) ;• on aﬃche le numéro du chapitre (\thechapter) dans une fonte particulière(\chapnumfont) ;• on insère un ressort horizontal (\hfill) ;• on insère un ressort horizontal (\hfill) ;• on aﬃche le titre du chapitre (#1) dans une police particulière (\chapfont).

• on aﬃche le titre du chapitre (#1) dans une police particulière (\chapfont).

10

Cosmétique142

Si on n’est pas dans la partie centrale, on n’aﬃche pas de numéro de chapitre, maisjuste le titre poussé à droite. Les commandes permettant de mettre en évidence lenuméro du chapitre et son titre sont respectivement :Si on n’est pas dans la partie centrale, on n’aﬃche pas de numéro de chapitre, maisjuste le titre poussé à droite. Les commandes permettant de mettre en évidence lenuméro du chapitre et son titre sont respectivement :\DeclareFixedFont{\chapnumfont}{T1}{phv}{bc}{n}{80pt}\DeclareFixedFont{\chapfont}{T1}{phv}{b}{n}{24.88pt}\DeclareFixedFont{\chapnumfont}{T1}{phv}{bc}{n}{80pt}\DeclareFixedFont{\chapfont}{T1}{phv}{b}{n}{24.88pt}

Finalement, si on écrit :Finalement, si on écrit :\begin{cadrechap}{\chapnumfont7}\hfill{\chapfont Le titre de la mort qui tue}\end{cadrechap}\begin{cadrechap}{\chapnumfont7}\hfill{\chapfont Le titre de la mort qui tue}\end{cadrechap}

On obtient :7

On obtient :7

Le titre de la mort qui tue

10.2.4 Parties

01

Cosmétique

142

Le titre de la mort qui tue

10.2.4 Parties

Dans le ﬁchier book.cls on trouve la déﬁnition de la commande \part :Dans le ﬁchier book.cls on trouve la déﬁnition de la commande \part :\newcommand\part{%\cleardoublepage\thispagestyle{plain}[...]\null\vfil\secdef\@part\@spart}\newcommand\part{%\cleardoublepage\thispagestyle{plain}[...]\null\vfil\secdef\@part\@spart}qui nous informe qu’à l’instar des chapitres, la commande \part fait appel à deuxcommandes distinctes pour produire les parties numérotées et non numérotées (grâceà un appel aux commandes \@part et \@spart respectivement). Dans un premier
temps nous avons imposé que le style de page pour les débuts de partie soit vide(c’est-à-dire sans numéro de page ni en-tête etc.), nous avons donc écrit :qui nous informe qu’à l’instar des chapitres, la commande \part fait appel à deuxcommandes distinctes pour produire les parties numérotées et non numérotées (grâceà un appel aux commandes \@part et \@spart respectivement). Dans un premier
temps nous avons imposé que le style de page pour les débuts de partie soit vide(c’est-à-dire sans numéro de page ni en-tête etc.), nous avons donc écrit :\newcommand\part{%\cleardoublepage\thispagestyle{empty}% à la place de plain par défaut
[...]\null\vfil% un boîte vide et un ressort vertical\secdef\@part\@spart}On peut ensuite examiner la déﬁnition de la commande \@part qui produit la pagede partie :\def\@part[#1]#2{%[...]{\centering % centrage[...]\huge\bfseries \partname\nobreakspace\thepart\par\vskip 20\pt
[...]

01

\newcommand\part{%\cleardoublepage\thispagestyle{empty}% à la place de plain par défaut
[...]\null\vfil% un boîte vide et un ressort vertical\secdef\@part\@spart}On peut ensuite examiner la déﬁnition de la commande \@part qui produit la pagede partie :\def\@part[#1]#2{%[...]{\centering % centrage[...]\huge\bfseries \partname\nobreakspace\thepart\par\vskip 20\pt[...]

10.3 Géométrie

10.3 Géométrie

143\Huge \bfseries #2\par}%\@endpart}\Huge \bfseries #2\par}%\@endpart}En examinant ce code on constate que la page de partie est constituée d’une ligne
en gros caractères gras, du nom « Partie » suivie du numéro de la partie4 :En examinant ce code on constate que la page de partie est constituée d’une ligne
en gros caractères gras, du nom « Partie » suivie du numéro de la partie4 :\huge\bfseries \partname\nobreakspace\thepart\huge\bfseries \partname\nobreakspace\thepartsuivie 20 points plus bas du titre de la partie (contenu dans l’argument #2). Pource manuel, nous avons redéﬁni la commande \@part comme suit :suivie 20 points plus bas du titre de la partie (contenu dans l’argument #2). Pource manuel, nous avons redéﬁni la commande \@part comme suit :\def\@part[#1]#2{%[...]{\centering\interlinepenalty \@M\normalfont[...]\partnumfont \thepart % juste le numéro de la partie\par\vskip 50\p@% 50 point au lieu de 20...
\partfont #2\par}% le titre avec une fonte personnalisée\@endpart}\def\@part[#1]#2{%[...]{\centering\interlinepenalty \@M\normalfont[...]\partnumfont \thepart % juste le numéro de la partie\par\vskip 50\p@% 50 point au lieu de 20...
\partfont #2\par}% le titre avec une fonte personnalisée\@endpart}Pour garder une homogénéité avec les en-têtes de chapitres on a déﬁni les commandes
de fontes comme suit :

10.3

143

Pour garder une homogénéité avec les en-têtes de chapitres on a déﬁni les commandes
de fontes comme suit :\newcommand{\partfont}{%\fontencoding{\encodingdefault}\fontfamily{phv}%\fontseries{bc}\fontshape{n}%\fontsize{32}{34}%\selectfont}\DeclareFixedFont{\partnumfont}{T1}{phv}{bc}{n}{80}%\newcommand{\partfont}{%\fontencoding{\encodingdefault}\fontfamily{phv}%\fontseries{bc}\fontshape{n}%\fontsize{32}{34}%\selectfont}\DeclareFixedFont{\partnumfont}{T1}{phv}{bc}{n}{80}%

On notera également que la commande \@part se termine par l’appel à une autrecommande : \@endpart. En examinant le fichier book.cls on pourra se rendre
compte que cette dernière permet de s’opposer au ressort vertical de la commande \partet de sauter une page blanche...

On notera également que la commande \@part se termine par l’appel à une autrecommande : \@endpart. En examinant le fichier book.cls on pourra se rendre
compte que cette dernière permet de s’opposer au ressort vertical de la commande \partet de sauter une page blanche...

Géométrie

10

10.3

Géométrie

Les diﬀérentes dimensions de chaque page de ce document ont été déﬁnies à l’aide
du package geometry et de la commande :Les diﬀérentes dimensions de chaque page de ce document ont été déﬁnies à l’aide
du package geometry et de la commande :\geometry{%
a4paper,body={150mm,250mm},
left=25mm,top=25mm,
headheight=7mm,headsep=4mm,
marginparsep=4mm,
marginparwidth=27mm}\geometry{%
a4paper,body={150mm,250mm},
left=25mm,top=25mm,
headheight=7mm,headsep=4mm,
marginparsep=4mm,
marginparwidth=27mm}

4
En réalité, après avoir enclenché le package babel et l’option french ces deux commandes sontredéfinies pour produire quelque chose du style : « Première partie »4
En réalité, après avoir enclenché le package babel et l’option french ces deux commandes sontredéfinies pour produire quelque chose du style : « Première partie »10

Cosmétique

144

Cosmétique144

qui déﬁnit respectivement (voir aussi ﬁgure 10.1) :qui déﬁnit respectivement (voir aussi ﬁgure 10.1) :• le positionnement du corps du texte dans la page, à 25 mm du bord gauchedu papier, et 25 mm du bord supérieur du papier ;• le positionnement du corps du texte dans la page, à 25 mm du bord gauchedu papier, et 25 mm du bord supérieur du papier ;• la hauteur de l’en-tête (7mm) et l’espace entre l’en-tête et le texte lui-même
(4 mm) ;• la hauteur de l’en-tête (7mm) et l’espace entre l’en-tête et le texte lui-même
(4 mm) ;• la taille du papier : standard A4 ;• la taille du papier : standard A4 ;• la largeur de la marge pour les notes de marges (2.7 cm).

• la largeur de la marge pour les notes de marges (2.7 cm).

width

patati patata
pied de pageheightpatati patata
pied de pagemarginparsep

marginparsep
marginparwidth

01

Corps
du
texte

footskipleftnotes de marge

paperheightfootskipheightpaperheightleftheadheight
Corps
du
texte

en−têteheadheighten−tête

top

width

headsep

paperwidthnotes de marge

paperwidth

top• un corps de texte faisant 150 mm de largeur par 250 mm ;headsep• un corps de texte faisant 150 mm de largeur par 250 mm ;Figure 10.1: Quelques unes des dimensions pour déﬁnir la géométrie d’un document.

marginparwidth01

Figure 10.1: Quelques unes des dimensions pour déﬁnir la géométrie d’un document.

De manière générale, comme le montre la ﬁgure 10.1, le package geometry permetde déﬁnir un certain nombre de dimensions que l’on peut passer soit en option à lacommande \usepackage soit à l’aide de la commande \geometry.

De manière générale, comme le montre la ﬁgure 10.1, le package geometry permetde déﬁnir un certain nombre de dimensions que l’on peut passer soit en option à lacommande \usepackage soit à l’aide de la commande \geometry.

Dimension du papier :Dimension du papier :Texte :

• a4paper, a5paper, etc. pour utiliser un format de papier prédéﬁni,• a4paper, a5paper, etc. pour utiliser un format de papier prédéﬁni,• paperwidth==hdimi et paperheight=hdimi pour spéciﬁer une dimension
de papier libre, par exemple pour un document qui sera massicoté.

• paperwidth==hdimi et paperheight=hdimi pour spéciﬁer une dimension
de papier libre, par exemple pour un document qui sera massicoté.
Texte :

10.4 En-tête et pied de page

10.4 En-tête et pied de page145

• soit avec : body={hlargeuri,hhauteuri}• soit avec : body={hlargeuri,hhauteuri}• soit avec : width=hlargeuri et height=hhauteuri.

• soit avec : width=hlargeuri et height=hhauteuri.

• le texte est positionné à l’intérieur de la page par rapport à un point deréférence spéciﬁé avec top=hpos_verti et left=hpos_horizi• le texte est positionné à l’intérieur de la page par rapport à un point deréférence spéciﬁé avec top=hpos_verti et left=hpos_horizi

Haut et bas de page :

10.4

145

Haut et bas de page :• la hauteur de la surface réservée à l’en-tête peut être déﬁnie à l’aide dela formule magique headheight=hhauteuri et sa position par rapport au
corps du texte à l’aide de headsep=hespacei.

• la hauteur de la surface réservée à l’en-tête peut être déﬁnie à l’aide dela formule magique headheight=hhauteuri et sa position par rapport au
corps du texte à l’aide de headsep=hespacei.

• la position du pied de page peut être imposée avec footskip=hespaceiqui déﬁnit l’espace entre le bas du corps du texte et la première ligne ducontenu du pied de page.

• la position du pied de page peut être imposée avec footskip=hespaceiqui déﬁnit l’espace entre le bas du corps du texte et la première ligne ducontenu du pied de page.

Note de marge : dans le même esprit la largeur et la position de la surface réservée
aux notes de marge peuvent être déﬁnies grâce à marginparwidth=hlargeuri
et à marginparsep=hespacei.

Note de marge : dans le même esprit la largeur et la position de la surface réservée
aux notes de marge peuvent être déﬁnies grâce à marginparwidth=hlargeuri
et à marginparsep=hespacei.

Dans le package geometry les dimensions concernant l’en-tête, le pied de page etla zone pour les notes de marge, sont par défaut comptabilisées en plus du corps
du texte. Des options permettent d’inclure l’une ou l’intégralité de ces dimensions dansle corps du texte pour le calcul, en disant par exemple : « je veux que la largeur soit de10 centimètres, notes de marge comprises. » (voir la documentation du package pour lesdétails).

Dans le package geometry les dimensions concernant l’en-tête, le pied de page etla zone pour les notes de marge, sont par défaut comptabilisées en plus du corps
du texte. Des options permettent d’inclure l’une ou l’intégralité de ces dimensions dansle corps du texte pour le calcul, en disant par exemple : « je veux que la largeur soit de10 centimètres, notes de marge comprises. » (voir la documentation du package pour lesdétails).

En-tête et pied de page

10.4

Les zones au-dessus et en dessous du corps du texte appelées en-tête et pied de page
peuvent être personnalisées à l’aide du package fancyhdr. Le principe de base est
simple5 , il suﬃt d’utiliser la commande :Les zones au-dessus et en dessous du corps du texte appelées en-tête et pied de page
peuvent être personnalisées à l’aide du package fancyhdr. Le principe de base est
simple5 , il suﬃt d’utiliser la commande :\pagestyle{fancy}
pour spéciﬁer qu’on veut utiliser des en-têtes et des pieds de page déﬁnis grâce
au package fancyhdr. Par défaut le package produit des traits horizontaux en dessous de l’en-tête et au-dessus du pied de page dont les épaisseurs sont déﬁnies parles commandes \footrulewidth et \headrulewidth. On peut ensuite utiliser lescommandes :En-tête et pied de page

\pagestyle{fancy}

10

pour spéciﬁer qu’on veut utiliser des en-têtes et des pieds de page déﬁnis grâce
au package fancyhdr. Par défaut le package produit des traits horizontaux en dessous de l’en-tête et au-dessus du pied de page dont les épaisseurs sont déﬁnies parles commandes \footrulewidth et \headrulewidth. On peut ensuite utiliser lescommandes :• \fancyhead pour déﬁnir l’en-tête ;• \fancyhead pour déﬁnir l’en-tête ;• \fancyfoot pour déﬁnir le pied de page ;• \fancyfoot pour déﬁnir le pied de page ;Ces deux commandes peuvent prendre un argument optionnel constitué d’une ou
deux séquences des caractères suivants :Ces deux commandes peuvent prendre un argument optionnel constitué d’une ou
deux séquences des caractères suivants :• E ou O pour spéciﬁer la parité de la page (paire=even, impaire=odd) ;• E ou O pour spéciﬁer la parité de la page (paire=even, impaire=odd) ;• R, L, C pour spéciﬁer où l’on veut produire l’information : respectivement àdroite, à gauche ou au centre ;• R, L, C pour spéciﬁer où l’on veut produire l’information : respectivement àdroite, à gauche ou au centre ;5Vous ne serez sans doute pas tout à fait d’accord avec le terme « simple » après avoir lu lasuite...

5
Vous ne serez sans doute pas tout à fait d’accord avec le terme « simple » après avoir lu lasuite...

10

10.4

146

VL

Voici un exemple :

10.4

146

VL

Voici un exemple :\fancyhf{} % on efface tout et on recommence% EN TÊTE :% initiales à droite sur page paire , à gauche sur page impaire :\fancyhead[RE,LO]{VL}% numéro de page au centre :\fancyhead[C]{\thepage}% numéro de section à droite sur page impaire , à gauche sur page paire :\fancyhead[LE,RO]{\thesection}% PIED DE PAGE :% une image à droite sur page impaire , à gauche sur page paire :\fancyfoot[RO,LE]{\includegraphics[height=4ex]{punch}}% titre à gauche sur page impaire , à droite sur page paire :\fancyfoot[LO,RE]{%
Tout ce que vous avez toujours voulu savoir sur \LaTeX{}}% épaisseur des traits\renewcommand{\footrulewidth}{3pt}10.4.1 Cas de la première page des chapitres
Dans la classe book, LATEX fait automatiquement appel au style plain pour lespremières pages de chapitre. Pour demander au package fancyhdr de déﬁnir un styleparticulier pour ces pages, on écrit :\fancyhf{} % on efface tout et on recommence% EN TÊTE :% initiales à droite sur page paire , à gauche sur page impaire :\fancyhead[RE,LO]{VL}% numéro de page au centre :\fancyhead[C]{\thepage}% numéro de section à droite sur page impaire , à gauche sur page paire :\fancyhead[LE,RO]{\thesection}% PIED DE PAGE :% une image à droite sur page impaire , à gauche sur page paire :\fancyfoot[RO,LE]{\includegraphics[height=4ex]{punch}}% titre à gauche sur page impaire , à droite sur page paire :\fancyfoot[LO,RE]{%
Tout ce que vous avez toujours voulu savoir sur \LaTeX{}}% épaisseur des traits\renewcommand{\footrulewidth}{3pt}10.4.1 Cas de la première page des chapitres
Dans la classe book, LATEX fait automatiquement appel au style plain pour lespremières pages de chapitre. Pour demander au package fancyhdr de déﬁnir un styleparticulier pour ces pages, on écrit :% le cas de la première page d’un chapitre\fancypagestyle{plain}{%\fancyhf{}% on efface tout
\fancyfoot[C]{\thepage}% numéro en bas de la page
% on efface tous les traits\renewcommand{\headrulewidth}{0pt}%\renewcommand{\footrulewidth}{0pt}}% le cas de la première page d’un chapitre\fancypagestyle{plain}{%\fancyhf{}% on efface tout
\fancyfoot[C]{\thepage}% numéro en bas de la page
% on efface tous les traits\renewcommand{\headrulewidth}{0pt}%\renewcommand{\footrulewidth}{0pt}}

Vériﬁez maintenant que les pages 3, 17, 37, 73, etc. ont ce style...

Vériﬁez maintenant que les pages 3, 17, 37, 73, etc. ont ce style...

10.4.2 Pages vierges avant le début d’un chapitre
Dans la classe book en mode recto-verso (c’est le cas de ce document), LAT X com-E
mence par défaut un chapitre sur une page impaire — appelée dans le jargon typographique la « belle page ». Pour ce faire LATEX fait appel dans diﬀérentes commandes
internes, à la commande \cleardoublepage qui permet d’insérer si nécessaire une
page blanche avant le début du chapitre. Cette page reçoit par défaut le style desen-têtes et pieds en cours. Dans le manuel que vous avez sous les yeux, nous avons
imposé un style « vide » à ces pages en modiﬁant la déﬁnition de la commande\cleardoublepage du ﬁchier latex.ltx :\renewcommand{\cleardoublepage}{% redéfinition de la commande\clearpage\ifodd\c@page\else\hbox{}\vspace*{\fill}\thispagestyle{empty}% ligne ajoutée
Tout ce que vous avez toujours voulu savoir sur LATEX

10.4.2 Pages vierges avant le début d’un chapitre
Dans la classe book en mode recto-verso (c’est le cas de ce document), LATEX commence par défaut un chapitre sur une page impaire — appelée dans le jargon typographique la « belle page ». Pour ce faire LATEX fait appel dans diﬀérentes commandes
internes, à la commande \cleardoublepage qui permet d’insérer si nécessaire une
page blanche avant le début du chapitre. Cette page reçoit par défaut le style desen-têtes et pieds en cours. Dans le manuel que vous avez sous les yeux, nous avons
imposé un style « vide » à ces pages en modiﬁant la déﬁnition de la commande\cleardoublepage du ﬁchier latex.ltx :\renewcommand{\cleardoublepage}{% redéfinition de la commande\clearpage\ifodd\c@page\else\hbox{}\vspace*{\fill}\thispagestyle{empty}% ligne ajoutée
Tout ce que vous avez toujours voulu savoir sur LATEX

VL

147

10.4

VL

147

\newpage\fi}Feuilletez le manuel et cherchez si les pages vierges avant le début des chapitres sontbien vides...

10.4.3 Mécanisme de marqueurs

10.4\newpage\fi}Feuilletez le manuel et cherchez si les pages vierges avant le début des chapitres sontbien vides...

10.4.3 Mécanisme de marqueurs

Vous aurez sans doute remarqué que dans ce manuel, les en-têtes des pages contiennent
des informations qui dépendent du contexte. Sont en eﬀet insérés sur les pages paires(page de gauche) le titre du chapitre, et sur les pages impaires (page de droite) letitre de la dernière section de la page. Il est possible de produire ce genre d’en-têtes
car LATEX dispose d’un mécanisme de marqueurs que nous allons tenter d’expliquer
ici.

Vous aurez sans doute remarqué que dans ce manuel, les en-têtes des pages contiennent
des informations qui dépendent du contexte. Sont en eﬀet insérés sur les pages paires(page de gauche) le titre du chapitre, et sur les pages impaires (page de droite) letitre de la dernière section de la page. Il est possible de produire ce genre d’en-têtes
car LATEX dispose d’un mécanisme de marqueurs que nous allons tenter d’expliquer
ici.

Il n’est pas inutile de préciser maintenant que lorsque TEX et LATEX produisent une
page, ils vont garnir l’en-tête et le pied en fonction d’information collectées le longde la page en question. La production de l’en-tête et du pied est donc postérieure à lacomposition de la page.

Il n’est pas inutile de préciser maintenant que lorsque TEX et LATEX produisent une
page, ils vont garnir l’en-tête et le pied en fonction d’information collectées le longde la page en question. La production de l’en-tête et du pied est donc postérieure à lacomposition de la page.

Les commandes \markboth et \markrightLes commandes \markboth et \markright

Soient les commandes :Soient les commandes :\markboth{htexteg i}{htexted i}ou :\markright{htextei}
Nous allons imaginer que les arguments htextex i sont stockés dans une pile et uneﬁle. Dans cet ordre d’idée :\markboth{htexteg i}{htexted i}ou :\markright{htextei}
Nous allons imaginer que les arguments htextex i sont stockés dans une pile et uneﬁle. Dans cet ordre d’idée :• \markboth empile htexteg i, et stocke htexted i dans la ﬁle ;• \markboth empile htexteg i, et stocke htexted i dans la ﬁle ;• \markright stocke htextei dans la ﬁle.

• \markright stocke htextei dans la ﬁle.

Ces deux commandes de « marquage » peuvent être appelées plusieurs fois ou jamais,
sur une même page. Les données de la pile et de la ﬁle seront exploitées au momentde générer les en-têtes et pieds de page, lorsque TEX achève la mise en forme de lapage, et ceci grâce aux commandes :Ces deux commandes de « marquage » peuvent être appelées plusieurs fois ou jamais,
sur une même page. Les données de la pile et de la ﬁle seront exploitées au momentde générer les en-têtes et pieds de page, lorsque TEX achève la mise en forme de lapage, et ceci grâce aux commandes :• \leftmark renvoie le sommet de la pile, c’est-à-dire htexteg i du dernier appelà \markboth ;• \leftmark renvoie le sommet de la pile, c’est-à-dire htexteg i du dernier appelà \markboth ;• \rightmark renvoie le début de la ﬁle, c’est-à-dire htexted i du premier appelà \markboth ou htextei du premier appel à \markright.

• \rightmark renvoie le début de la ﬁle, c’est-à-dire htexted i du premier appelà \markboth ou htextei du premier appel à \markright.

Une petite subtilité au sujet de la « file » que nous présentons ici : tant qu’aucune commande de « marquage » n’ajoute de données au cours d’une page, la filecontiendra la dernière information insérée dans les pages précédentes. La « file » est vidée
dès qu’une commande \markboth ou \markright survient.

Une petite subtilité au sujet de la « file » que nous présentons ici : tant qu’aucune commande de « marquage » n’ajoute de données au cours d’une page, la filecontiendra la dernière information insérée dans les pages précédentes. La « file » est vidée
dès qu’une commande \markboth ou \markright survient.

Un autre moyen de comprendre ce mécanisme de marqueurs pourrait être de dire :Un autre moyen de comprendre ce mécanisme de marqueurs pourrait être de dire :Tout ce que vous avez toujours voulu savoir sur LATEX

Tout ce que vous avez toujours voulu savoir sur LATEX

\rightmark vaut 10.4 En-tête et pied de page et leftmark vaut Cosmétique148• \leftmark contient la dernière information que j’ai insérée sur la pile (à l’aide
du premier argument de \markboth) ;• \leftmark contient la dernière information que j’ai insérée sur la pile (à l’aide
du premier argument de \markboth) ;• \rightmark contient la première information de la « ﬁle », si on en a mis une
sur cette page, ou la dernière qui a été enﬁlé (à l’aide du deuxième argumentde \markboth ou de l’argument de \markright.

• \rightmark contient la première information de la « ﬁle », si on en a mis une
sur cette page, ou la dernière qui a été enﬁlé (à l’aide du deuxième argumentde \markboth ou de l’argument de \markright.

Il peut être utile de savoir que l’auteur a utilisé ces commandes pour la productiond’un trombinoscope composé de plusieurs dizaines de noms et photos par page.
L’idée était d’exploiter le mécanisme de marquage pour faire apparaître dans l’en-tête
le premier et le dernier nom de la page, comme dans un dictionnaire. Il suffit pour cela
d’appeler pour chaque personne (nom et photo) la commande :Il peut être utile de savoir que l’auteur a utilisé ces commandes pour la productiond’un trombinoscope composé de plusieurs dizaines de noms et photos par page.
L’idée était d’exploiter le mécanisme de marquage pour faire apparaître dans l’en-tête
le premier et le dernier nom de la page, comme dans un dictionnaire. Il suffit pour cela
d’appeler pour chaque personne (nom et photo) la commande :\markboth{hnom du gugussei}{hnom du gugussei}\markboth{hnom du gugussei}{hnom du gugussei}

puis d’insérer dans les en-têtes la commande \rightmark sur les pages de gauche (impaires) et \leftmark sur les pages de droite (paires)...

puis d’insérer dans les en-têtes la commande \rightmark sur les pages de gauche (impaires) et \leftmark sur les pages de droite (paires)...

Interactions avec les commandes de paragrapheInteractions avec les commandes de paragrapheÀ chaque début de chapitre, de section, de sous-section, etc. une commande interne
de LATEX fait appel aux commandes de marquages présentées au paragraphe précédent, pour stocker des informations susceptibles d’enrichir l’en-tête ou le pied depage. Ces commandes se nomment :À chaque début de chapitre, de section, de sous-section, etc. une commande interne
de LATEX fait appel aux commandes de marquages présentées au paragraphe précédent, pour stocker des informations susceptibles d’enrichir l’en-tête ou le pied depage. Ces commandes se nomment :• \chaptermark pour les chapitres ;• \chaptermark pour les chapitres ;• \sectionmark pour les sections ;• \sectionmark pour les sections ;

• ...

• ...

elles attendent un argument qui contient le titre du chapitre ou du paragraphe. Dansce manuel, les deux commandes précédentes ont été déﬁnies comme suit :elles attendent un argument qui contient le titre du chapitre ou du paragraphe. Dansce manuel, les deux commandes précédentes ont été déﬁnies comme suit :\renewcommand{\sectionmark}[1]{% #1 contient le titre de la section\markright{\sectionfont\thesection\ #1}}
\renewcommand{\chaptermark}[1]{% #2 contient le titre du chapitre\markboth{\sectionfont#1}{}}01\rightmark vaut 10.4 En-tête et pied de page et leftmark vaut Cosmétique

148

Puis :\fancyhead[LE,RO]{\thepage}\fancyhead[LO]{\rightmark}\fancyhead[RE]{\leftmark}Par conséquent :\renewcommand{\sectionmark}[1]{% #1 contient le titre de la section\markright{\sectionfont\thesection\ #1}}
\renewcommand{\chaptermark}[1]{% #2 contient le titre du chapitre\markboth{\sectionfont#1}{}}

01

Puis :\fancyhead[LE,RO]{\thepage}\fancyhead[LO]{\rightmark}\fancyhead[RE]{\leftmark}Par conséquent :• à droite des pages paires, on trouve (\leftmark) le dernier titre de chapitre
rencontré ;• à droite des pages paires, on trouve (\leftmark) le dernier titre de chapitre
rencontré ;• à gauche des pages impaires, on trouve (\rightmark) le numéro et le titre dela première \section de cette page, ou le numéro et le titre de la dernière\section rencontrée...

• à gauche des pages impaires, on trouve (\rightmark) le numéro et le titre dela première \section de cette page, ou le numéro et le titre de la dernière\section rencontrée...

Si vous ne me croyez pas voyez par vous-même le haut de cette page.

Si vous ne me croyez pas voyez par vous-même le haut de cette page.

10.4 En-tête et pied de page

10.4 En-tête et pied de page149

10.4.4 Organisation du document

10.4.4 Organisation du document

Il est nécessaire de savoir que dans un document tel que celui que vous lisez, il existe
trois parties qui sont reconnues par LATEX : le front matter, le main matter et le backmatter désignant respectivement le début du document (comportant généralement
la préface et le sommaire), la partie principale, et la partie clôturant le document(comportant généralement la table des matières, le ou les index, la ou les bibliographies, le glossaire, etc). On doit alors explicitement écrire un document LATEX
comme suit :Il est nécessaire de savoir que dans un document tel que celui que vous lisez, il existe
trois parties qui sont reconnues par LATEX : le front matter, le main matter et le backmatter désignant respectivement le début du document (comportant généralement
la préface et le sommaire), la partie principale, et la partie clôturant le document(comportant généralement la table des matières, le ou les index, la ou les bibliographies, le glossaire, etc). On doit alors explicitement écrire un document LATEX
comme suit :\documentclass{hclasse du documenti}\begin{document}\frontmatter % introduction[...]\mainmatter % partie principale[...]\backmatter % pour clore le document[...]\end{document}\documentclass{hclasse du documenti}\begin{document}\frontmatter % introduction[...]\mainmatter % partie principale[...]\backmatter % pour clore le document[...]\end{document}

Nous verrons dans la suite de ce chapitre que nous serons amenés à modiﬁer lestrois commandes permettant de passer d’une partie à une autre. Pour l’instant, ilfaut savoir que la classe book déﬁnit un booléen :Nous verrons dans la suite de ce chapitre que nous serons amenés à modiﬁer lestrois commandes permettant de passer d’une partie à une autre. Pour l’instant, ilfaut savoir que la classe book déﬁnit un booléen :\newif\if@mainmatter\newif\if@mainmatter

utilisé par défaut dans LATEX pour savoir si on se trouve dans le « main matter » ou
pas. Nous avons en outre déﬁni pour notre document un autre booléen :utilisé par défaut dans LATEX pour savoir si on se trouve dans le « main matter » ou
pas. Nous avons en outre déﬁni pour notre document un autre booléen :\newif\if@frontmatter\newif\if@frontmatter

qui nous permettra d’eﬀectuer des traitements particuliers lorsqu’on sera dans lapartie introductive du document. Les trois commandes délimitant les trois parties
sont déﬁnies par :\renewcommand\frontmatter{%\cleardoublepage\@frontmattertrue\@mainmatterfalse\pagenumbering{roman}% numérotation en romain}\renewcommand\mainmatter{%\cleardoublepage\@mainmattertrue\@frontmatterfalse\pagenumbering{arabic}% numérotation en chiffres arabes}\renewcommand\backmatter{%\cleardoublepage\@frontmatterfalse\@mainmatterfalse}

149

qui nous permettra d’eﬀectuer des traitements particuliers lorsqu’on sera dans lapartie introductive du document. Les trois commandes délimitant les trois parties
sont déﬁnies par :10\renewcommand\frontmatter{%\cleardoublepage\@frontmattertrue\@mainmatterfalse\pagenumbering{roman}% numérotation en romain}\renewcommand\mainmatter{%\cleardoublepage\@mainmattertrue\@frontmatterfalse\pagenumbering{arabic}% numérotation en chiffres arabes}\renewcommand\backmatter{%\cleardoublepage\@frontmatterfalse\@mainmatterfalse
}

10

150

Cosmétique

150

En farfouillant dans le code de LATEX on peut comprendre que \pagenumbering, lacommande permettant de changer la numérotation, réinitialise le compteur de page
à 1.

En farfouillant dans le code de LATEX on peut comprendre que \pagenumbering, lacommande permettant de changer la numérotation, réinitialise le compteur de pageà 1.

10.4.5 Numéroter l’introduction en roman « petites capitales »10.4.5 Numéroter l’introduction en roman « petites capitales »Votre serviteur a tenu à ce que les pages de l’introduction soient numérotées en
chiﬀres romains et petites capitales. On ne peut malheureusement pas écrire :Votre serviteur a tenu à ce que les pages de l’introduction soient numérotées en
chiﬀres romains et petites capitales. On ne peut malheureusement pas écrire :\renewcommand{\thepage}{\textsc{\roman{page}}}\renewcommand{\thepage}{\textsc{\roman{page}}}Puisque cela provoque une incompatibilité avec la gestion de l’index. L’idée retenue
est de procéder comme suit :Puisque cela provoque une incompatibilité avec la gestion de l’index. L’idée retenue
est de procéder comme suit :1. utiliser la numérotation en chiﬀre romain minuscule ;1. utiliser la numérotation en chiﬀre romain minuscule ;2. dans le pied de page aﬃcher \textsc{\thepage} ;2. dans le pied de page aﬃcher \textsc{\thepage} ;3. modiﬁer la commande \index pour que les numéros de pages s’aﬃche en petites capitales.

3. modiﬁer la commande \index pour que les numéros de pages s’aﬃche en petites capitales.

D’où dans la déﬁnition de \frontmatter on ajoutera :D’où dans la déﬁnition de \frontmatter on ajoutera :\let\indexORI\index% sauvegarde de la définition initiale\renewcommand{\index}[1]{\indexORI{##1|textsc}}\fancyfoot{}\fancyhead[LE,RO]{\textsc{\thepage}}\let\indexORI\index% sauvegarde de la définition initiale\renewcommand{\index}[1]{\indexORI{##1|textsc}}\fancyfoot{}\fancyhead[LE,RO]{\textsc{\thepage}}

Et dans la déﬁnition de \mainmatter :Et dans la déﬁnition de \mainmatter :\let\index\indexORI% pour revenir à la définition initiale

01

Cosmétique\let\index\indexORI% pour revenir à la définition initiale

Pour être parfaitement rigoureux on va modiﬁer l’allure des premières pages dechapitre :Pour être parfaitement rigoureux on va modiﬁer l’allure des premières pages dechapitre :\fancypagestyle{plain}{%\fancyhf{}\if@frontmatter% introduction\fancyfoot[C]{\textsc{\thepage}}\else\fancyfoot[C]{\thepage}\fi\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}}\makeatother\fancypagestyle{plain}{%\fancyhf{}\if@frontmatter% introduction\fancyfoot[C]{\textsc{\thepage}}\else\fancyfoot[C]{\thepage}\fi\renewcommand{\headrulewidth}{0pt}\renewcommand{\footrulewidth}{0pt}}\makeatother

10.4.6 Index, bibliographie et table des matières
Dans la classe book, deux environnements sont déﬁnis :01

10.4.6 Index, bibliographie et table des matières
Dans la classe book, deux environnements sont déﬁnis :• thebibliography permettant de produire la bibliographie ;• thebibliography permettant de produire la bibliographie ;• theindex pour produire l’index ;• theindex pour produire l’index ;et la commande :et la commande :10.5 Environnements avec caractères spéciaux

10.5 Environnements avec caractères spéciaux151• \tableofcontents pour produire la table des matières.

• \tableofcontents pour produire la table des matières.

Ces environnements et cette commande sont conçus pour produire des en-têtes
avec le numéro de la page et le nom du chapitre en majuscules à savoir \bibname,\indexname et \contentsname. Voici par exemple un extrait de \tableofcontents :Ces environnements et cette commande sont conçus pour produire des en-têtes
avec le numéro de la page et le nom du chapitre en majuscules à savoir \bibname,\indexname et \contentsname. Voici par exemple un extrait de \tableofcontents :\newcommand\tableofcontents{%[...]\chapter*{\contentsname\@mkboth{%\MakeUppercase\contentsname}%{\MakeUppercase\contentsname}}%\@starttoc{toc}%[...]}\newcommand\tableofcontents{%[...]\chapter*{\contentsname\@mkboth{%\MakeUppercase\contentsname}%{\MakeUppercase\contentsname}}%\@starttoc{toc}%[...]}

J’ai souhaité que dans ce manuel les en-têtes ne soient pas en majuscules. Deux
solutions sont possibles :J’ai souhaité que dans ce manuel les en-têtes ne soient pas en majuscules. Deux
solutions sont possibles :1. utiliser la commande \nouppercase du package fancyhdr et écrire dans ladéﬁnition de \backmatter :1. utiliser la commande \nouppercase du package fancyhdr et écrire dans ladéﬁnition de \backmatter :\fancyhead[LO]{\nouppercase\rightmark}% en−tête en minuscule\fancyhead[RE]{\nouppercase\leftmark}%\fancyhead[LO]{\nouppercase\rightmark}% en−tête en minuscule\fancyhead[RE]{\nouppercase\leftmark}%

2. recopier la déﬁnition de \tableofcontents provenant de book.cls, et la modiﬁer pour supprimer les commandes \MakeUppercase. Faire la même chosepour l’index et la bibliographie.

2. recopier la déﬁnition de \tableofcontents provenant de book.cls, et la modiﬁer pour supprimer les commandes \MakeUppercase. Faire la même chosepour l’index et la bibliographie.

Dans ce document, c’est la deuxième solution qui a été adoptée. On en a également
proﬁté pour insérer l’index et la bibliographie dans la table des matières, ce qui n’est
pas le comportement par défaut de LATEX et de la classe book. Nous avons donc pourl’environnement theindex :Dans ce document, c’est la deuxième solution qui a été adoptée. On en a également
proﬁté pour insérer l’index et la bibliographie dans la table des matières, ce qui n’est
pas le comportement par défaut de LATEX et de la classe book. Nous avons donc pourl’environnement theindex :\renewenvironment{theindex}{%[...]% insertion dans la table des matières\addcontentsline{toc}{chapter}{\indexname}\@mkboth{\indexname}{\indexname}% suppression de \MakeUppercase\thispagestyle{plain}[...]{\if@restonecol\onecolumn\else\clearpage\fi}

10.5

151

Environnements avec caractères spéciaux
Les packages fancyvrb et listings ont tous deux la particularité de produire du texte
avec des caractères spéciaux. Le premier permet de produire des environnements detype verbatim avec beaucoup plus de souplesse. Il permet notamment de personnaliser d’éventuelles bordures, les marges, et surtout on peut « s’échapper vers LATEX »au beau milieu de l’environnement, ou comme disent les anglophones : to escape to\renewenvironment{theindex}{%[...]% insertion dans la table des matières\addcontentsline{toc}{chapter}{\indexname}\@mkboth{\indexname}{\indexname}% suppression de \MakeUppercase\thispagestyle{plain}[...]{\if@restonecol\onecolumn\else\clearpage\fi}

10

10.5

Environnements avec caractères spéciaux
Les packages fancyvrb et listings ont tous deux la particularité de produire du texte
avec des caractères spéciaux. Le premier permet de produire des environnements detype verbatim avec beaucoup plus de souplesse. Il permet notamment de personnaliser d’éventuelles bordures, les marges, et surtout on peut « s’échapper vers LATEX »au beau milieu de l’environnement, ou comme disent les anglophones : to escape to

10Cosmétique152

LATEX. En d’autres termes, bien qu’étant dans un environnement où les caractères \,{ et } sont sans eﬀet, il est malgré tout possible de faire appel à des commandes
LATEX.
Le second (listings) a pour objectif de produire des extraits de langage de programmation. Il propose également parmi un grand nombre de fonctionalités, la possibilité de s’échapper vers LATEX. Nous vous proposons donc ici de découvrir ces deux
environements à l’aide d’exemples « en grandeur nature » utilisés dans ce manuel.

LATEX. En d’autres termes, bien qu’étant dans un environnement où les caractères \,{ et } sont sans eﬀet, il est malgré tout possible de faire appel à des commandes
LATEX.
Le second (listings) a pour objectif de produire des extraits de langage de programmation. Il propose également parmi un grand nombre de fonctionalités, la possibilité de s’échapper vers LATEX. Nous vous proposons donc ici de découvrir ces deux
environements à l’aide d’exemples « en grandeur nature » utilisés dans ce manuel.

10.5.1 Digression vers les caractères...

10.5.1 Digression vers les caractères...
Il peut ne pas être inutile6 de faire ici une petite digression sur la manière dont
TEX mange et digère les caractères qu’on lui fournit. Il faut savoir que les caractères
peuvent entrer dans seize catégories diﬀérentes. Chaque caractère peut n’appartenirqu’à une catégorie à la fois. Chacune de ces catégories permet de basculer TEX vers
un traitement particulier. Par exemple lorsque le caractère \ est rencontré, TEX valire les caractères qui suivent pour connaître le nom de la commande (ou séquencede contrôle), lorsqu’il rencontre le caractère {, TEX va ouvrir un nouveau groupe,
lorsque que le caractère % est lu, TEX va ignorer les caractères jusqu’à la ﬁn de laligne, c’est-à-dire jusqu’à ce qu’il rencontre un caractère catégorisé « ﬁn de ligne »,etc. Parmi les catégories reconnues par TEX :Catégorie 0 caractère de contrôle (\ dans LATEX) ;Catégorie 0 caractère de contrôle (\ dans LATEX) ;Catégorie 1 début de groupe ({ dans LATEX) ;Catégorie 1 début de groupe ({ dans LATEX) ;Catégorie 2 ﬁn de groupe (} dans LATEX) ;Catégorie 2 ﬁn de groupe (} dans LATEX) ;Catégorie 11 lettre ;Catégorie 11 lettre ;Catégorie 14 commentaire (% dans LATEX) ;Catégorie 14 commentaire (% dans LATEX) ;On peut alors s’amuser — même si cela est assez « dangereux » — à changer lecontenu de chaque catégorie. Dans l’exemple ci-dessous, on a transformé les caractères \, {et } en lettres, et on a décidé que les caractères /, ( et ) appartiendraient
respectivement aux catégories : caractère de contrôle, début de groupe et ﬁn degroupe. Le caractère # a également été changé de catégorie, c’est désormais un caractère de commentaire.

On peut alors s’amuser — même si cela est assez « dangereux » — à changer lecontenu de chaque catégorie. Dans l’exemple ci-dessous, on a transformé les caractères \, {et } en lettres, et on a décidé que les caractères /, ( et ) appartiendraient
respectivement aux catégories : caractère de contrôle, début de groupe et ﬁn degroupe. Le caractère # a également été changé de catégorie, c’est désormais un caractère de commentaire.

10.2{ \catcode‘\/=0 \catcode‘\(=1 \catcode‘\)=2\catcode‘\#=14\catcode‘\{=11 \catcode‘\}=11 \catcode‘\\=11# ça on devrait pas le voir...
\bidule{truc muche} /textbf(en gras))\paron retourne dans le monde \LaTeX{}...

\bidule{truc muche} en gras
on retourne dans le monde LATEX...

En outre, il est intéressant de savoir que TEX peut rendre actifs certains caractères(qui entrent alors dans la catégorie 13). Ces caractères peuvent alors être déﬁnis
comme des commandes voici un exemple idiot :6

Les français sont parait-il des spécialistes de la litote. Mais ne nous égarons pas...

01{ \catcode‘\/=0 \catcode‘\(=1 \catcode‘\)=2\catcode‘\#=14\catcode‘\{=11 \catcode‘\}=11 \catcode‘\\=11# ça on devrait pas le voir...
\bidule{truc muche} /textbf(en gras))\paron retourne dans le monde \LaTeX{}...

10.2

Il peut ne pas être inutile de faire ici une petite digression sur la manière dont
TEX mange et digère les caractères qu’on lui fournit. Il faut savoir que les caractères
peuvent entrer dans seize catégories diﬀérentes. Chaque caractère peut n’appartenirqu’à une catégorie à la fois. Chacune de ces catégories permet de basculer TEX vers
un traitement particulier. Par exemple lorsque le caractère \ est rencontré, TEX valire les caractères qui suivent pour connaître le nom de la commande (ou séquencede contrôle), lorsqu’il rencontre le caractère {, TEX va ouvrir un nouveau groupe,
lorsque que le caractère % est lu, TEX va ignorer les caractères jusqu’à la ﬁn de laligne, c’est-à-dire jusqu’à ce qu’il rencontre un caractère catégorisé « ﬁn de ligne »,etc. Parmi les catégories reconnues par TEX :601

Cosmétique152\bidule{truc muche} en gras
on retourne dans le monde LATEX...

En outre, il est intéressant de savoir que TEX peut rendre actifs certains caractères(qui entrent alors dans la catégorie 13). Ces caractères peuvent alors être déﬁnis
comme des commandes voici un exemple idiot :6

Les français sont parait-il des spécialistes de la litote. Mais ne nous égarons pas...

10.3\catcode‘\+=13\newcommand{+}{plus}
3 + 4 = 7

10.5 Environnements avec caractères spéciaux

153\catcode‘\+=13\newcommand{+}{plus}
3 + 4 = 7

3 plus 4 = 7

153

10.3

10.5 Environnements avec caractères spéciaux

3 plus 4 = 7

Dans cet exemple on a rendu « actif » le caractère +, puis on l’a déﬁni comme unecommande. Vous noterez qu’ici on a pu créer une commande que l’on utilise sansfaire appel au caractère \.

Dans cet exemple on a rendu « actif » le caractère +, puis on l’a déﬁni comme unecommande. Vous noterez qu’ici on a pu créer une commande que l’on utilise sansfaire appel au caractère \.

Il peut être utile de savoir que lorsqu’on charge le package babel et l’extension
française, les caractères de ponctuations double sont également rendus actifs notamment pour empêcher la césure avant ceux-ci. En outre le caractère ~ est dans lacatégorie des caractères actifs dans LATEX. On peut d’ailleurs voir sa définition dans une
session LATEX interactive :Il peut être utile de savoir que lorsqu’on charge le package babel et l’extension
française, les caractères de ponctuations double sont également rendus actifs notamment pour empêcher la césure avant ceux-ci. En outre le caractère ~ est dans lacatégorie des caractères actifs dans LATEX. On peut d’ailleurs voir sa définition dans une
session LATEX interactive :*\show~> ~=macro:->\nobreakspace {}.
<*> \show~*\show~> ~=macro:->\nobreakspace {}.
<*> \show~

10.5.2 Environnements maison basés sur fancyvrb

10.5.2 Environnements maison basés sur fancyvrb

Les environnements du type de verbatim ont pour but de changer l’appartenance descaractères à leur catégorie respective. En outre, le package fancyvrb permet de déﬁnir
quels caractères permettent de repasser le contrôle à LATEX. Dans ce document,
l’environnement unixcom a été déﬁni comme suit :Les environnements du type de verbatim ont pour but de changer l’appartenance descaractères à leur catégorie respective. En outre, le package fancyvrb permet de déﬁnir
quels caractères permettent de repasser le contrôle à LATEX. Dans ce document,
l’environnement unixcom a été déﬁni comme suit :\DefineVerbatimEnvironment{unixcom}{Verbatim}{%commandchars=¢« »,frame=single, framerule=.4pt, framesep=1.5mm,
gobble=2,xleftmargin=15pt}
Cet environnement est donc de type verbatim mais dans lequel on peut « exécuter »des commandes LATEX à l’aide des caractères ¢ de catégorie 0, « de catégorie 1 et
» de catégorie 2 — on peut bien évidemment choisir n’importe quel caractère pource faire. Il faut cependant garder à l’esprit que ceux-ci doivent être à la fois lisibles
pour l’utilisateur et peu utilisés à d’autres ﬁns que de repasser le contrôle à LATEX.
Pour afficher le contenu d’une variable :\begin{unixcom}
echo ${¢marg« nom variable »}\end{unixcom}

Pour aﬃcher le contenu d’une variable :\DefineVerbatimEnvironment{unixcom}{Verbatim}{%commandchars=¢« »,frame=single, framerule=.4pt, framesep=1.5mm,
gobble=2,xleftmargin=15pt}

10echo ${hnom variablei}

La commande ◮\margN permet de produire son argument entre chevrons simples et § 11.1.1 p. 163 ◭en penché. Les autres paramètres de la commande \DefineVerbatimEnvironment
ont pour but de préciser l’allure de la bordure (paramètres frame...), la margede gauche (paramètre xleftmargin) et le fait que les premiers caractères de chaqueligne seront systématiquement ignorés (gobble). Comme le montre la documentation
du package fancyvrb beaucoup d’autres options sont disponibles.
Un autre environnement de ce genre a été créé pour saisir les commandes d’Emacs
dans l’annexe consacrée à AucTEX. L’environnement en question (baptisé emacscom)a été créé comme suit :Cet environnement est donc de type verbatim mais dans lequel on peut « exécuter »des commandes LATEX à l’aide des caractères ¢ de catégorie 0, « de catégorie 1 et
» de catégorie 2 — on peut bien évidemment choisir n’importe quel caractère pource faire. Il faut cependant garder à l’esprit que ceux-ci doivent être à la fois lisibles
pour l’utilisateur et peu utilisés à d’autres ﬁns que de repasser le contrôle à LATEX.
Pour afficher le contenu d’une variable :\begin{unixcom}
echo ${¢marg« nom variable »}\end{unixcom}

Pour aﬃcher le contenu d’une variable :10echo ${hnom variablei}

La commande ◮\margN permet de produire son argument entre chevrons simples et § 11.1.1 p. 163 ◭en penché. Les autres paramètres de la commande \DefineVerbatimEnvironment
ont pour but de préciser l’allure de la bordure (paramètres frame...), la margede gauche (paramètre xleftmargin) et le fait que les premiers caractères de chaqueligne seront systématiquement ignorés (gobble). Comme le montre la documentation
du package fancyvrb beaucoup d’autres options sont disponibles.
Un autre environnement de ce genre a été créé pour saisir les commandes d’Emacs
dans l’annexe consacrée à AucTEX. L’environnement en question (baptisé emacscom)a été créé comme suit :Cosmétique

154\DefineVerbatimEnvironment{emacscom}{Verbatim}{%commandchars=¢« »,frame=leftline, framerule=1mm, framesep=2mm,
gobble=2, xleftmargin=15pt}\DefineVerbatimEnvironment{emacscom}{Verbatim}{%commandchars=¢« »,frame=leftline, framerule=1mm, framesep=2mm,
gobble=2, xleftmargin=15pt}
qui donne par exemple :Pour jouer à Tetris dans \soft{Emacs} :\begin{emacscom}M-x tetris\end{emacscom}

10.5

Pour jouer à Tetris dans Emacs :M-x tetris

10.5.3 Environnements pour les langages de programmation

Le package listings reconnaît la syntaxe d’un grand nombre de langage de programmation. Une manière simple d’utiliser ce package consiste à créer son propre environnement à l’aide d’une commande analogue à \newenvironment :\lstnewenvironment{C}{\lstset{language=C}}{}\lstnewenvironment{C}{\lstset{language=C}}{}\begin{C}/* hello world en C */int main(){
printf("bonjour monde\n");return 0;}\end{C}/∗ h e l l o w o r l d en C ∗/i n t main ( ){p r i n t f ( " bonj our ␣monde\n" ) ;return 0 ;}Bien évidemment une foultitude d’options de conﬁguration permet d’adapter cet
environement à vos besoins. Le plus simple et le plus eﬃcace est sans doute de lire
la documenation accompagnant le package. À titre d’exemple, il faut savoir que l’onpeut changer la mise en évidence des mots réservés et des commentaires du langage
considéré. Ainsi, en écrivant :\lstnewenvironment{Cbis}{%\lstset{language=C,
basicstyle=\rmfamily\slshape,commentstyle=\rmfamily\upshape,}}{}

Bien évidemment une foultitude d’options de conﬁguration permet d’adapter cet
environement à vos besoins. Le plus simple et le plus eﬃcace est sans doute de lire
la documenation accompagnant le package. À titre d’exemple, il faut savoir que l’onpeut changer la mise en évidence des mots réservés et des commentaires du langage
considéré. Ainsi, en écrivant :01\lstnewenvironment{Cbis}{%\lstset{language=C,
basicstyle=\rmfamily\slshape,commentstyle=\rmfamily\upshape,}}{}/∗ h e l l o world en C ∗/i n t main ( ){p r i n t f ( " S a l u t . . . \ n" ) ;return 0 ;}\begin{Cbis}/* hello world en C */int main(){
printf("Salut...\n");return 0;}\end{Cbis}

10.7\begin{Cbis}/* hello world en C */int main(){
printf("Salut...\n");return 0;}\end{Cbis}/∗ h e l l o w o r l d en C ∗/i n t main ( ){p r i n t f ( " bonj our ␣monde\n" ) ;return 0 ;}On aura :10.7

On aura :10.6

On pourra alors simplement écrire :10.6

On pourra alors simplement écrire :01

M-x tetris

10.5.3 Environnements pour les langages de programmation

Le package listings reconnaît la syntaxe d’un grand nombre de langage de programmation. Une manière simple d’utiliser ce package consiste à créer son propre environnement à l’aide d’une commande analogue à \newenvironment :\begin{C}/* hello world en C */int main(){
printf("bonjour monde\n");return 0;}\end{C}

Pour jouer à Tetris dans Emacs :10.5

qui donne par exemple :Pour jouer à Tetris dans \soft{Emacs} :\begin{emacscom}M-x tetris\end{emacscom}

Cosmétique154/∗ h e l l o world en C ∗/i n t main ( ){p r i n t f ( " S a l u t . . . \ n" ) ;return 0 ;}10.6 About those so called “french guillemets”

155

Et puisqu’il est question des caractères spéciaux et de l’« échappement vers LATEX »,il faut savoir qu’à l’instar de fancyvrb, le package listings permet de spéciﬁer un
caractère permettant cet échappement. Ainsi :Et puisqu’il est question des caractères spéciaux et de l’« échappement vers LATEX »,il faut savoir qu’à l’instar de fancyvrb, le package listings permet de spéciﬁer un
caractère permettant cet échappement. Ainsi :\lstnewenvironment{Cter}{\lstset{language=C, escapechar=@}}{}\lstnewenvironment{Cter}{\lstset{language=C, escapechar=@}}{}

10.6

10.8

Permet d’insérer des commandes LATEX dans le listing :\begin{Cter}int main(){
printf("bonjour monde\n");return @\fbox{code de retour}@;}\end{Cter}

Permet d’insérer des commandes LATEX dans le listing :\begin{Cter}int main(){
printf("bonjour monde\n");return @\fbox{code de retour}@;}\end{Cter}i n t main ( ){p r i n t f ( " bonj our ␣monde\n" ) ;return code de retour ;}About those so called “french guillemets”

10.6

Un des plaisirs de la typographie française est sans aucun doute l’utilisation de ces
merveilleux guillemets « à la française »...7 Cependant le package babel ne gère pasla césure correctement s’il on saisit dans un document :About those so called “french guillemets”\begin{minipage}{5cm}
Cette courte phrase dans une boîte a pour unique
but de montrer que ces symboles ne se comportentpas comme de « gentils » guillemets.
\end{minipage}

Cette courte phrase a pourunique but de montrer queon aura la minipage suivante :ces petits symboles ne secomportent pas comme de «gentils » guillemets.
Ce qui est pour le moins gênant... Il est bien sûr possible de saisir ces guillemets
avec les commandes \og et \fg fournies par le package babel, mais cela est au goûtde votre serviteur trop contraignant dans la mesure où ce caractère est directement
accessible depuis le clavier8 . Il existe une solution — qui avait été adoptée par lepackage french — palliant le problème de la césure qui consiste à rendre ◮actifsN les § 10.5.1 p. 152 ◭caractères ‘« ’ et ‘ »’. Nous avons donc écrit :10puis déﬁni les deux commandes suivantes :i n t main ( ){p r i n t f ( " bonj our ␣monde\n" ) ;return code de retour ;}Un des plaisirs de la typographie française est sans aucun doute l’utilisation de ces
merveilleux guillemets « à la française »...7 Cependant le package babel ne gère pasla césure correctement s’il on saisit dans un document :\begin{minipage}{5cm}
Cette courte phrase dans une boîte a pour unique
but de montrer que ces symboles ne se comportentpas comme de « gentils » guillemets.
\end{minipage}\catcode‘\« =13\catcode‘\ »=13

155

10.8

10.6 About those so called “french guillemets”

Cette courte phrase a pourunique but de montrer queon aura la minipage suivante :ces petits symboles ne secomportent pas comme de «gentils » guillemets.
Ce qui est pour le moins gênant... Il est bien sûr possible de saisir ces guillemets
avec les commandes \og et \fg fournies par le package babel, mais cela est au goûtde votre serviteur trop contraignant dans la mesure où ce caractère est directement
accessible depuis le clavier8 . Il existe une solution — qui avait été adoptée par lepackage french — palliant le problème de la césure qui consiste à rendre ◮actifsN les § 10.5.1 p. 152 ◭caractères ‘« ’ et ‘ »’. Nous avons donc écrit :10\catcode‘\« =13\catcode‘\ »=13
puis déﬁni les deux commandes suivantes :\newcommand{\fermerguillemets}{\unskip\kern.15em\symbol{20}}\newcommand{\ouvrerguillemets}{\symbol{19}\ignorespaces\kern.15em}\newcommand{\fermerguillemets}{\unskip\kern.15em\symbol{20}}\newcommand{\ouvrerguillemets}{\symbol{19}\ignorespaces\kern.15em}

7
On notera d’ailleurs que la mode qui consiste aujourd’hui à faire subir à ses majeurs et index
des mouvements d’oreilles de lapin, pendant qu’on parle pour dire « entre guillemets » sans le dire,est clairement empruntée aux américains. Je propose donc ici publiquement que l’on se force à
utiliser plutôt l’index et le pouce pour faire ce geste, il faudra par contre se munir de deux autres
bras pour être en mesure d’imiter les deux chevrons ‘« ’ et ‘ »’, ou peut-être qu’un habile tortillage
de quatre doigts d’une main peut donner un résultat...
8
Alt-Gr-z et Alt-Gr-x.

7
On notera d’ailleurs que la mode qui consiste aujourd’hui à faire subir à ses majeurs et index
des mouvements d’oreilles de lapin, pendant qu’on parle pour dire « entre guillemets » sans le dire,est clairement empruntée aux américains. Je propose donc ici publiquement que l’on se force à
utiliser plutôt l’index et le pouce pour faire ce geste, il faudra par contre se munir de deux autres
bras pour être en mesure d’imiter les deux chevrons ‘« ’ et ‘ »’, ou peut-être qu’un habile tortillage
de quatre doigts d’une main peut donner un résultat...
8
Alt-Gr-z et Alt-Gr-x.

Cosmétique

On notera l’utilisation de la commande TEX \kern permettant d’insérer un blanc insécable d’une longueur donnée, de la commande N\unskip◭ et enﬁn de la commande\symbol qui insère ici les 19e et 20e caractères de la fonte courante :\setcounter{car}{1}\whiledo{\value{car}<64}{%\symbol{\value{car}}$_{\thecar}$\stepcounter{car}}10.9◮ § 9.2.1 p. 115◮ § 9.2.1 p. 115´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 !33 "34 #35 $36 %37 &38 ’39(40 )41 *42 +43 ,44 -45 .46 /47 048 149 250 351 452
553 654 755 856 957 :58 ;59 <60 =61 >62 ?63´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 !33 "34 #35 $36 %37 &38 ’39(40 )41 *42 +43 ,44 -45 .46 /47 048 149 250 351 452
553 654 755 856 957 :58 ;59 <60 =61 >62 ?63

Enﬁn, on a aﬀecté aux caractères les deux commandes précédentes :\let »=\fermerguillemets\let« =\ouvrerguillemets\let »=\fermerguillemets\let« =\ouvrerguillemets

Cette façon de faire a trois inconvénients mineurs que je suis bien incapable derésoudre aujourd’hui. Tout d’abord, les moteurs sachant gérer le codage Utf 8 etpermettant à TEX de rendre actif le caractère « (alors codé sur 2 octets), sont aujourd’hui
peu répandus et j’avoue humblement que je ne les ai pas encore testés. Par conséquent la
manipulation proposée ici est limitée aux codages utilisant 1 octet par caractère . Ensuiteon ne peut utiliser ces guillemets dans un titre au risque d’avoir des artéfacts dans les« signets/bookmarks » d’un fichier pdf. Enfin, ces guillemets ne fonctionnent pas avec
l’environnement ltxexemple défini à la fin du chapitre suivant. Un drame quoi !

Cette façon de faire a trois inconvénients mineurs que je suis bien incapable derésoudre aujourd’hui. Tout d’abord, les moteurs sachant gérer le codage Utf 8 etpermettant à TEX de rendre actif le caractère « (alors codé sur 2 octets), sont aujourd’hui
peu répandus et j’avoue humblement que je ne les ai pas encore testés. Par conséquent la
manipulation proposée ici est limitée aux codages utilisant 1 octet par caractère . Ensuiteon ne peut utiliser ces guillemets dans un titre au risque d’avoir des artéfacts dans les« signets/bookmarks » d’un fichier pdf. Enfin, ces guillemets ne fonctionnent pas avec
l’environnement ltxexemple défini à la fin du chapitre suivant. Un drame quoi !

Une boîte pour la minitable des matières

10.7

Le package mini-toc permet — comme son nom l’indique — de produire des « minitables
des matières » que l’on peut insérer dans un document à un endroit donné, généralement en début de chapitre. Après avoir utilisé l’ordre \dominitoc dans le préambule,on fait ensuite appel à la commande \minitoc pour insérer cette minitable des matières à l’endroit voulu. La documentation du package explique tout cela en détail
et présente notamment les diﬀérents styles que l’on peut utiliser. Pour ce manuel,j’ai trouvé l’idée d’une table des matières en début de chapitre séduisante, mais lesstyles proposés par le package ne me convenaient pas. En fait je souhaitais pouvoir
mettre les titres de sections dans un boîte comme ceci :01

On notera l’utilisation de la commande TEX \kern permettant d’insérer un blanc insécable d’une longueur donnée, de la commande N\unskip◭ et enﬁn de la commande\symbol qui insère ici les 19e et 20e caractères de la fonte courante :\setcounter{car}{1}\whiledo{\value{car}<64}{%\symbol{\value{car}}$_{\thecar}$\stepcounter{car}}Enﬁn, on a aﬀecté aux caractères les deux commandes précédentes :10.7

Cosmétique

156

10.9

156

Sommaire
x.1 Le premier titre
x.2 Le deuxième titre
x.3 etc.

Une boîte pour la minitable des matières
Le package mini-toc permet — comme son nom l’indique — de produire des « minitables
des matières » que l’on peut insérer dans un document à un endroit donné, généralement en début de chapitre. Après avoir utilisé l’ordre \dominitoc dans le préambule,on fait ensuite appel à la commande \minitoc pour insérer cette minitable des matières à l’endroit voulu. La documentation du package explique tout cela en détail
et présente notamment les diﬀérents styles que l’on peut utiliser. Pour ce manuel,j’ai trouvé l’idée d’une table des matières en début de chapitre séduisante, mais lesstyles proposés par le package ne me convenaient pas. En fait je souhaitais pouvoir
mettre les titres de sections dans un boîte comme ceci :01

Sommaire
x.1 Le premier titre
x.2 Le deuxième titre
x.3 etc.

C’est-à-dire une boîte avec un titre — ici le titre est « Sommaire ». À ma connaissance, LATEX ne propose pas de telles boîtes et suite à une question posée sur lesforums de discussions, une bonne âme — en l’occurrence Benjamin Bayart — me
propose un code TEX répondant au cahier des charges. Je vous propose dans ce
paragraphe, une version9 LATEX d’une boîte avec titre...

C’est-à-dire une boîte avec un titre — ici le titre est « Sommaire ». À ma connaissance, LATEX ne propose pas de telles boîtes et suite à une question posée sur lesforums de discussions, une bonne âme — en l’occurrence Benjamin Bayart — me
propose un code TEX répondant au cahier des charges. Je vous propose dans ce
paragraphe, une version9 LATEX d’une boîte avec titre...

9
Tout à fait discutable et limitée dans ses fonctionnalités comme tout « logiciel » pondu par un
bricoleur...

9
Tout à fait discutable et limitée dans ses fonctionnalités comme tout « logiciel » pondu par un
bricoleur...

10.7 Une boîte pour la minitable des matières

10.7 Une boîte pour la minitable des matières

157

10.7.1 L’interface de la commande

10.7.1 L’interface de la commande
Plusieurs solutions sont possibles pour créer une telle commande. En s’inspirant del’interface des boîtes de LATEX, on peut créer une macro dont la syntaxe d’utilisation
serait :Un titre\titlebox{\footnotesize Un titre}{%Le contenu de la boîte}Le contenu de la boîte

10.7.2 Quand même un peu de TEX

La primitive de TEX \leaders permet de remplir un espace élastique avec ce quivous passe par la tête. Sa syntaxe :\leadershce qui vous chanteihespacei\leadershce qui vous chanteihespacei\framebox[3cm]{%\leaders\hbox{o}\hfill}oooooooooooooo\framebox[3cm]{%\leaders\hbox to 3pt{o}\hfill}oooooooooooooooooooooooooo

10.14

Les \leaders peuvent également être utilisés avec la primitive \hrule de TEX permettant de dessiner des traits :\framebox[3cm]{%\leaders\hrule height 4pt\hfill}

10\framebox[3cm]{%\leaders\hrule height 4pt\hfill}

10

Ici, le ressort \hfill s’étire les trois centimètres de la \framebox et est rempli par
un trait de hauteur quatre points.
\framebox[3cm]{%\leaders\hbox to5pt{%\leaders\hrule width1pt\hfill%\kern2pt}\hfill}

10.15

Dans l’exemple ci-dessus, l’espace de trois centimètres est rempli par des boites decinq points de large, contenant chacunes d’elles des \leaders comme dans l’exemple
précédent, et un blanc de deux points de large. Avec TEX, on peut régler la ◮raideurNdu ressort de la manière suivante :oooooooooooooooooooooooooo

Les \leaders peuvent également être utilisés avec la primitive \hrule de TEX permettant de dessiner des traits :Ici, le ressort \hfill s’étire les trois centimètres de la \framebox et est rempli par
un trait de hauteur quatre points.
\framebox[3cm]{%\leaders\hbox to5pt{%\leaders\hrule width1pt\hfill%\kern2pt}\hfill}oooooooooooooo

La primitive \hbox de TEX (utilisée par \mbox et \makebox) permet de créer desboîtes horizontales :
10.13

10.13

La primitive \hbox de TEX (utilisée par \mbox et \makebox) permet de créer desboîtes horizontales :10.12

permet donc de remplir l’hespacei avec hce qui vous chantei. Par exemple :

10.14

10.12

permet donc de remplir l’hespacei avec hce qui vous chantei. Par exemple :\framebox[3cm]{%\leaders\hbox to 3pt{o}\hfill}

Un autre titre
truc
muche

10.7.2 Quand même un peu de TEX

La primitive de TEX \leaders permet de remplir un espace élastique avec ce quivous passe par la tête. Sa syntaxe :\framebox[3cm]{%\leaders\hbox{o}\hfill}

10.11\setlength{\fboxsep}{5pt}\setlength{\fboxrule}{2pt}\titlebox{Un autre titre}{%\begin{minipage}{3cm}\begin{center}truc\\ muche\end{center}\end{minipage}}

Un autre titre
truc
muche

§ 4.2.4 p. 57 ◭10.15

\setlength{\fboxsep}{5pt}\setlength{\fboxrule}{2pt}\titlebox{Un autre titre}{%\begin{minipage}{3cm}\begin{center}truc\\ muche\end{center}\end{minipage}}

Un titre

Le contenu de la boîte

ou encore :10.11

ou encore :

10.10

10.10

Plusieurs solutions sont possibles pour créer une telle commande. En s’inspirant del’interface des boîtes de LATEX, on peut créer une macro dont la syntaxe d’utilisation
serait :\titlebox{\footnotesize Un titre}{%Le contenu de la boîte}157

Dans l’exemple ci-dessus, l’espace de trois centimètres est rempli par des boites decinq points de large, contenant chacunes d’elles des \leaders comme dans l’exemple
précédent, et un blanc de deux points de large. Avec TEX, on peut régler la ◮raideurNdu ressort de la manière suivante :§ 4.2.4 p. 57 ◭

Cosmétique\framebox[5cm]{%\hskip0pt plus 2fill X\hskip0pt plus 3fill}X

La dimension :X

La dimension :\hskip 0pt plus hnifill\hskip 0pt plus hnifill

permet de déﬁnir une longueur élastique de raideur relative n. Dans l’exemple précédent la lettre ‘X’ se trouve donc au 2/5 de la boîte... En utilisant ce type de blancélastique et des \leaders, on peut déﬁnir la commande suivante :permet de déﬁnir une longueur élastique de raideur relative n. Dans l’exemple précédent la lettre ‘X’ se trouve donc au 2/5 de la boîte... En utilisant ce type de blancélastique et des \leaders, on peut déﬁnir la commande suivante :\newcommand{\traitressort}[2][1]{%\leaders\hrule height#2\hskip0pt plus #1fill\relax}\newcommand{\traitressort}[2][1]{%\leaders\hrule height#2\hskip0pt plus #1fill\relax}
pouvant être par exemple utilisée comme suit :\framebox[5cm]{%\traitressort[2]{2ex}X\traitressort{2pt}}

X

on a donc dans la boîte de cinq centimètres :10.17\framebox[5cm]{%\traitressort[2]{2ex}X\traitressort{2pt}}

10.17

pouvant être par exemple utilisée comme suit :X

on a donc dans la boîte de cinq centimètres :• un blanc élastique de raideur 2, rempli d’un trait de quatre points de hauteur ;• un blanc élastique de raideur 2, rempli d’un trait de quatre points de hauteur ;• la lettre X ;• la lettre X ;• un blanc élastique de raideur 1, rempli d’un trait de deux points de hauteur.

• un blanc élastique de raideur 1, rempli d’un trait de deux points de hauteur.

Nous allons bien entendu nous servir de cette commande pour la suite...

Nous allons bien entendu nous servir de cette commande pour la suite...

10.7.3 Conception de la boîte

10.7.3 Conception de la boîte

Pour concevoir la boîte à proprement parler, nous allons créer trois \parbox commesuit :

Pour concevoir la boîte à proprement parler, nous allons créer trois \parbox commesuit :

titre
contenu

titre
contenu

Il y a :01

Cosmétique

158
10.16

\framebox[5cm]{%\hskip0pt plus 2fill X\hskip0pt plus 3fill}

10.16

158

• deux \parboxs pour contenir les deux traits verticaux à droite et à gauche ;Il y a :01• deux \parboxs pour contenir les deux traits verticaux à droite et à gauche ;• une \parbox pour le centre, contenant le trait du haut interrompu par le titre,le contenu, et en bas un trait horizontal.

• une \parbox pour le centre, contenant le trait du haut interrompu par le titre,le contenu, et en bas un trait horizontal.

Nous allons voir maintenant comment on peut construire ces trois boîtes et lespositionner correctement les unes par rapport aux autres.

Nous allons voir maintenant comment on peut construire ces trois boîtes et lespositionner correctement les unes par rapport aux autres.

10.7.4 Le code
Nous allons avoir besoin d’une boîte pour stocker la \parbox centrale :\newsavebox{\boitetitre}et de deux dimensions :10.7.4 Le code
Nous allons avoir besoin d’une boîte pour stocker la \parbox centrale :\newsavebox{\boitetitre}et de deux dimensions :10.7 Une boîte pour la minitable des matières

10.7 Une boîte pour la minitable des matières

159\newlength{\largeurboitetitre}\newlength{\hauteurboitetitre}

159\newlength{\largeurboitetitre}\newlength{\hauteurboitetitre}qui portent un nom suﬃsamment explicite m’évitant ainsi des phrases alambiquées
expliquant la signiﬁcation de telle ou telle variable. La première tâche que l’on va
demander à la commande \titlebox est de stocker son contenu et de le mesurer :qui portent un nom suﬃsamment explicite m’évitant ainsi des phrases alambiquées
expliquant la signiﬁcation de telle ou telle variable. La première tâche que l’on va
demander à la commande \titlebox est de stocker son contenu et de le mesurer :\newcommand{\titlebox}[2]{%\begin{lrbox}{\boitetitre}% stockage du contenu\kern\fboxsep#2\kern\fboxsep\end{lrbox}% mesure de la largeur de la parbox centrale\settowidth{\largeurboitetitre}{\usebox{\boitetitre}}%% mesure de la hauteur de la parbox centrale\settoheight{\hauteurboitetitre}{\usebox{\boitetitre}}%\settodepth{\tempdim}{\usebox{\boitetitre}}%\addtolength{\hauteurboitetitre}{\tempdim+2\fboxrule+2\fboxsep}%... }\newcommand{\titlebox}[2]{%\begin{lrbox}{\boitetitre}% stockage du contenu\kern\fboxsep#2\kern\fboxsep\end{lrbox}% mesure de la largeur de la parbox centrale\settowidth{\largeurboitetitre}{\usebox{\boitetitre}}%% mesure de la hauteur de la parbox centrale\settoheight{\hauteurboitetitre}{\usebox{\boitetitre}}%\settodepth{\tempdim}{\usebox{\boitetitre}}%\addtolength{\hauteurboitetitre}{\tempdim+2\fboxrule+2\fboxsep}%... }\kern est une commande TEX permettant d’insérer un blanc insécable, ici de largeur\fboxsep. Notez que pour mesurer la hauteur totale on a recours à une longueur
temporaire qui nous permet de faire la somme de la hauteur (height) et la profondeur(depth). On ajoute ensuite à cette hauteur totale deux fois l’épaisseur du trait etdeux fois l’espace \fboxsep. Vous vous souvenez sans doute que les dimensions\fboxrule et \fboxsep déﬁnissent respectivement l’épaisseur du trait et l’espace
entre la bordure et le contenu d’une ◮boîte simple.N Par conséquent, on a :\kern est une commande TEX permettant d’insérer un blanc insécable, ici de largeur\fboxsep. Notez que pour mesurer la hauteur totale on a recours à une longueur
temporaire qui nous permet de faire la somme de la hauteur (height) et la profondeur(depth). On ajoute ensuite à cette hauteur totale deux fois l’épaisseur du trait etdeux fois l’espace \fboxsep. Vous vous souvenez sans doute que les dimensions\fboxrule et \fboxsep déﬁnissent respectivement l’épaisseur du trait et l’espace
entre la bordure et le contenu d’une ◮boîte simple.N Par conséquent, on a :§ 4.4.1 p. 62 ◭• \largeurboitetitre correspond à la largeur de la \parbox centrale augmentée de deux fois \fboxsep ;• \largeurboitetitre correspond à la largeur de la \parbox centrale augmentée de deux fois \fboxsep ;• \hauteurboitetitre correspond à la hauteur totale augmentée de l’espace
occupée par les deux traits horizontaux : 2(\fboxsep+\fboxrule).

• \hauteurboitetitre correspond à la hauteur totale augmentée de l’espace
occupée par les deux traits horizontaux : 2(\fboxsep+\fboxrule).

On peut donc construire une première version de la commande :\newcommand{\titleboxI}[2]{%...
\parbox{\fboxrule}{% le trait de gauche\rule{\fboxrule}{\hauteurboitetitre}}%\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\usebox{\boitetitre}\end{flushleft}}%\parbox{\fboxrule}{% le trait de droite\rule{\fboxrule}{\hauteurboitetitre}}}}Ce qui donnera pour l’instant :On peut donc construire une première version de la commande :10\newcommand{\titleboxI}[2]{%...
\parbox{\fboxrule}{% le trait de gauche\rule{\fboxrule}{\hauteurboitetitre}}%\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\usebox{\boitetitre}\end{flushleft}}%\parbox{\fboxrule}{% le trait de droite\rule{\fboxrule}{\hauteurboitetitre}}}}Ce qui donnera pour l’instant :Bidule truc muche\titleboxI{titre}{Bidule truc muche}

Bidule truc muche\titleboxI{encore}{%\parbox{4cm}{truc\\bidule\\machin}}trucbidulemachin\titleboxI{encore}{%\parbox{4cm}{truc\\bidule\\machin}}trucbidulemachin10.18\titleboxI{titre}{Bidule truc muche}
10.18§ 4.4.1 p. 62 ◭10

Cosmétique160

Il reste donc à modiﬁer le contenu de la \parbox centrale pour ajouter les deux traits
horizontaux, celui du bas, et celui du haut coupé par le titre. L’idée est d’entasser
trois boîtes :Il reste donc à modiﬁer le contenu de la \parbox centrale pour ajouter les deux traits
horizontaux, celui du bas, et celui du haut coupé par le titre. L’idée est d’entasser
trois boîtes :1. une boîte contenant le titre et des « traits ressorts » :1. une boîte contenant le titre et des « traits ressorts » :2. la boîte stockant le contenu (\boitetitre) ;2. la boîte stockant le contenu (\boitetitre) ;3. un trait de largeur \largeurboitetitre.

3. un trait de largeur \largeurboitetitre.

Voici une première approche :Voici une première approche :\newcommand{\titleboxII}[2]{%...
\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\makebox[\largeurboitetitre]{%\traitressort{\fboxrule}#1\traitressort[5]{\fboxrule}}\\\usebox{\boitetitre}\\\rule{\largeurboitetitre}{\fboxrule}\end{flushleft}}...}\newcommand{\titleboxII}[2]{%...
\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\makebox[\largeurboitetitre]{%\traitressort{\fboxrule}#1\traitressort[5]{\fboxrule}}\\\usebox{\boitetitre}\\\rule{\largeurboitetitre}{\fboxrule}\end{flushleft}}...}qui donnera :qui donnera :titre
Bidule truc muche\titleboxII{encore}{%\parbox{4cm}{truc\\bidule\\machin}}encoretrucbidulemachinOn dirait que c’est pas « tout à fait ça ». Il faudrait penser à faire en sorte que lacommande \\ eﬀectue un saut vertical équivalent à la dimension \fboxsep. On en
proﬁte au passage pour faire subir au titre une translation verticale vers le bas :\newcommand{\titleboxIII}[2]{%...
\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\makebox[\largeurboitetitre]{%\traitressort{\fboxrule}%\raisebox{-.5ex}[0pt][0pt]{#1}%\traitressort[5]{\fboxrule}}\\[\fboxsep]\usebox{\boitetitre}\\[\fboxsep]\rule{\largeurboitetitre}{\fboxrule}\end{flushleft}}...}ce qui donnera :titre
Bidule truc muche\titleboxII{titre}{Bidule truc muche}
10.19\titleboxII{encore}{%\parbox{4cm}{truc\\bidule\\machin}}

10.19\titleboxII{titre}{Bidule truc muche}

01

Cosmétique160

encoretrucbidulemachinOn dirait que c’est pas « tout à fait ça ». Il faudrait penser à faire en sorte que lacommande \\ eﬀectue un saut vertical équivalent à la dimension \fboxsep. On en
proﬁte au passage pour faire subir au titre une translation verticale vers le bas :01\newcommand{\titleboxIII}[2]{%...
\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\makebox[\largeurboitetitre]{%\traitressort{\fboxrule}%\raisebox{-.5ex}[0pt][0pt]{#1}%\traitressort[5]{\fboxrule}}\\[\fboxsep]\usebox{\boitetitre}\\[\fboxsep]\rule{\largeurboitetitre}{\fboxrule}\end{flushleft}}...}ce qui donnera :10.7 Une boîte pour la minitable des matières

10.7 Une boîte pour la minitable des matières

161

161

titre
Bidule truc muche

titre
Bidule truc muche

encoretrucbidulemachin\titleboxIII{encore}{%\parbox{4cm}{truc\\bidule\\machin}}

10.20\titleboxIII{encore}{%\parbox{4cm}{truc\\bidule\\machin}}\titleboxIII{titre}{Bidule truc muche}
10.20\titleboxIII{titre}{Bidule truc muche}

encoretrucbidulemachinOn dirait que ça n’a pas arrangé grand chose... Il faut savoir que lorsque TEX entassedes boîtes en mode vertical, il insère de lui même des espaces entres ces boîtes demanière à ce que les lignes soit espacées de la longueur \baselineskip. On trouve
dans le TEXbook, à la page 79 du chapitre traitant des glues :On dirait que ça n’a pas arrangé grand chose... Il faut savoir que lorsque TEX entassedes boîtes en mode vertical, il insère de lui même des espaces entres ces boîtes demanière à ce que les lignes soit espacées de la longueur \baselineskip. On trouve
dans le TEXbook, à la page 79 du chapitre traitant des glues :« Exception : no interline glue is inserted before or after a rule box. You canalso inhibit interline glue by saying \nointerlineskip between two boxes. »« Exception : no interline glue is inserted before or after a rule box. You canalso inhibit interline glue by saying \nointerlineskip between two boxes. »L’ordre \nointerlineskip résout donc le problème :L’ordre \nointerlineskip résout donc le problème :\newcommand{\titleboxIV}[2]{%...
\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\makebox[\largeurboitetitre]{%\traitressort{\fboxrule}%\raisebox{-.5ex}[0pt][0pt]{#1}%\traitressort[5]{\fboxrule}}\\[\fboxsep]\nointerlineskip\usebox{\boitetitre}\\[\fboxsep]\nointerlineskip\rule{\largeurboitetitre}{\fboxrule}\end{flushleft}}...}\newcommand{\titleboxIV}[2]{%...
\parbox{\largeurboitetitre}{% la boîte centrale\begin{flushleft}\makebox[\largeurboitetitre]{%\traitressort{\fboxrule}%\raisebox{-.5ex}[0pt][0pt]{#1}%\traitressort[5]{\fboxrule}}\\[\fboxsep]\nointerlineskip\usebox{\boitetitre}\\[\fboxsep]\nointerlineskip\rule{\largeurboitetitre}{\fboxrule}\end{flushleft}}...}ce qui donnera :titre
Bidule truc muche\titleboxIV{encore}{%\parbox{4cm}{truc\\bidule\\machin}}

10.21\titleboxIV{titre}{Bidule truc muche}

encoretrucbidulemachinCe qui répond au cahier des charges.
D’autres améliorations — laissées en guise d’exercice — peuvent être apportées à
cette commande. On pourra par exemple définir un argument optionnel permettant
de régler l’abaissement du titre (on a mis ici -.5ex en dur). Il est également possible derégler le rapport des traits entourant le titre. Enfin, il est tout à fait envisageable de régler
l’espace autour du titre (ici il n’y en a pas).

10

titre
Bidule truc muche\titleboxIV{titre}{Bidule truc muche}\titleboxIV{encore}{%\parbox{4cm}{truc\\bidule\\machin}}

10.21

ce qui donnera :encoretrucbidulemachinCe qui répond au cahier des charges.
D’autres améliorations — laissées en guise d’exercice — peuvent être apportées à
cette commande. On pourra par exemple définir un argument optionnel permettant
de régler l’abaissement du titre (on a mis ici -.5ex en dur). Il est également possible derégler le rapport des traits entourant le titre. Enfin, il est tout à fait envisageable de régler
l’espace autour du titre (ici il n’y en a pas).

10

162

Cosmétique162

10.7.5 Utilisation avec package minitoc

10.7.5 Utilisation avec package minitoc

L’utilisation de la commande \titlebox précédemment déﬁnie, dans le package
minitoc se fait simplement en revêtant le chapeau de monsieur Poirot. En inspectant à la loupe le ﬁchier de style, on trouve la déﬁnition d’une commande nommée\minitoc@. J’ai simplement recopié le code de cette macro et inséré un appel à lamerveilleuse commande \titlebox.

01

Cosmétique

L’utilisation de la commande \titlebox précédemment déﬁnie, dans le package
minitoc se fait simplement en revêtant le chapeau de monsieur Poirot. En inspectant à la loupe le ﬁchier de style, on trouve la déﬁnition d’une commande nommée\minitoc@. J’ai simplement recopié le code de cette macro et inséré un appel à lamerveilleuse commande \titlebox.

01

11

11

De nouveaux jouets

Sommaire

Sommaire11.1 Quelques bricoles

11.1 Quelques bricoles

11.2 Des nota

11.2 Des nota

11.3 Des citations

11.3 Des citations

11.4 Des lettrines

11.4 Des lettrines

11.5 Un sommaire

11.5 Un sommaire

11.6 Un glossaire

11.6 Un glossaire

11.7 Des onglets

11.7 Des onglets

11.8 Exemples LATEX

11.8 Exemples LATEX

Je suis à mon bien-aimé, Et ses désirs se portent vers moi.
Viens, mon bien-aimé, sortons dans les champs, Demeurons dans les villages!
Dès le matin nous irons aux vignes, Nous verrons si la vigne pousse,
Si la fleur s’ouvre, Si les grenadiers fleurissent.
Là je te donnerai mon amour.

Je suis à mon bien-aimé, Et ses désirs se portent vers moi.
Viens, mon bien-aimé, sortons dans les champs, Demeurons dans les villages!
Dès le matin nous irons aux vignes, Nous verrons si la vigne pousse,
Si la fleur s’ouvre, Si les grenadiers fleurissent.
Là je te donnerai mon amour.

Le Cantique des cantiques Ct 7 11.

Le Cantique des cantiques Ct 7 11.

ous présentons dans ce chapitre les outils qui ont été créés spécialement
Npour ce manuel. Pour comprendre la plupart des commandes et environnements
déﬁnis ici, il est impératif d’avoir lu les deux précédents chapitres... Il est questionous présentons dans ce chapitre les outils qui ont été créés spécialement
Npour ce manuel. Pour comprendre la plupart des commandes et environnements
déﬁnis ici, il est impératif d’avoir lu les deux précédents chapitres... Il est question

dans ce chapitre de la manière dont le nota avec panneau danger a été créé, deslettrines apparaissant en début de chapitres, du sommaire, du glossaire, des onglets
contenant le numéro du chapitre courant, et enﬁn de l’environnement permettant
de produire du code LATEX et son interprétation côte à côte.

dans ce chapitre de la manière dont le nota avec panneau danger a été créé, deslettrines apparaissant en début de chapitres, du sommaire, du glossaire, des onglets
contenant le numéro du chapitre courant, et enﬁn de l’environnement permettant
de produire du code LATEX et son interprétation côte à côte.

11

Quelques bricoles

11.1.1 Arguments et convention typographique

Pour compiler le fichier \bwarg{fichier} :\begin{flushleft}\ttfamily latex \bwarg{fichier}\end{flushleft}

163

11.1

Dans un document parlant de langage informatique, il est important de faire ressortirclairement les arguments de commande ou de fonction. Par exemple on écrira :Pour compiler le ﬁchier hfichieri :latex hfichieri

11.1

11

Quelques bricoles

11.1.1 Arguments et convention typographique
Dans un document parlant de langage informatique, il est important de faire ressortirclairement les arguments de commande ou de fonction. Par exemple on écrira :Pour compiler le fichier \bwarg{fichier} :\begin{flushleft}\ttfamily latex \bwarg{fichier}\end{flushleft}

163

11.1

11.1

De nouveaux jouets

Pour compiler le ﬁchier hfichieri :latex hfichieriDe nouveaux jouets

La commande \bwmarg écrit son argument en fonte penchée, entre les symboles h et i
produits respectivement par les commandes \langle et \rangle en mode mathématique. De plus vous aurez sans doute remarqué qu’on peut utiliser une notation
indicée comme dans l’exemple ci-dessous :La commande \bwmarg écrit son argument en fonte penchée, entre les symboles h et i
produits respectivement par les commandes \langle et \rangle en mode mathématique. De plus vous aurez sans doute remarqué qu’on peut utiliser une notation
indicée comme dans l’exemple ci-dessous :Pour copier des fichiers :\begin{flushleft}\ttfamily
cp \bwarg[1]{fichier} ... \bwarg[n]{fichier}\bwarg[dst]{fichier}\end{flushleft}

Pour copier des ﬁchiers :11.2

Pour copier des fichiers :\begin{flushleft}\ttfamily
cp \bwarg[1]{fichier} ... \bwarg[n]{fichier}\bwarg[dst]{fichier}\end{flushleft}

cp hfichier1 i ... hfichiern i hfichierdst i

La commande \bwarg1 est déﬁnie comme suit :\newcommand{\marg}[2][]{%{\normalfont%\textsl{$\langle$#2%\ifthenelse{\equal{#1}{}}{}% si l’argument optionnel est présent
{$_\mathit{#1}$}% on l’affiche en indice$\rangle$}}}%\newcommand{\marg}[2][]{%{\normalfont%\textsl{$\langle$#2%\ifthenelse{\equal{#1}{}}{}% si l’argument optionnel est présent
{$_\mathit{#1}$}% on l’affiche en indice$\rangle$}}}%

La commande \normalfont permet de revenir à la fonte par défaut dans le document. Ce qui explique que « hfichieri » n’apparaît pas en fonte machine à écrire dansl’exemple 11.1.
Dans la version électronique du document — version lue sur un écran — il a été
décidé, pour la mise en évidence, d’utiliser la couleur plutôt que les caractères h et i.
Ainsi on peut déﬁnir la commande \colarg :La commande \normalfont permet de revenir à la fonte par défaut dans le document. Ce qui explique que « hfichieri » n’apparaît pas en fonte machine à écrire dansl’exemple 11.1.
Dans la version électronique du document — version lue sur un écran — il a été
décidé, pour la mise en évidence, d’utiliser la couleur plutôt que les caractères h et i.
Ainsi on peut déﬁnir la commande \colarg :On pourra ensuite grâce à un Nbooléen◭ habilement positionné, déﬁnir une commande générique \marg faisant appel à l’une ou l’autre des versions (noir & blancou couleur) :\newcommand{\colarg}[2][]{{%\normalfont\color{blue!90}#2% un bleu
\ifthenelse{\equal{#1}{}}{}{$_\mathit{#1}$}}}◮ § 9.3.1 p. 117\ifversionenligne\let\marg\colarg\else\let\marg\bwarg\fi

11

Pour copier des ﬁchiers :cp hfichier1 i ... hfichiern i hfichierdst i

La commande \bwarg1 est déﬁnie comme suit :\newcommand{\colarg}[2][]{{%\normalfont\color{blue!90}#2% un bleu
\ifthenelse{\equal{#1}{}}{}{$_\mathit{#1}$}}}◮ § 9.3.1 p. 117

De nouveaux jouets

164

11.2

164

Cette construction fait appel à la commande \let de TEX présentée de manière
lumineuse à la section 9.2.3 page 116.

11.1.2 Autour de la génération de l’index
Lorsque dans le texte du présent manuel, il est question d’une commande, d’unenvironnement, d’un package, d’une classe de document, etc. il est fait appel à unecommande particulière insérant automatiquement une entrée dans l’index. Ainsi par
exemple :1

Pour « black & white » argument...

On pourra ensuite grâce à un Nbooléen◭ habilement positionné, déﬁnir une commande générique \marg faisant appel à l’une ou l’autre des versions (noir & blancou couleur) :\ifversionenligne\let\marg\colarg\else\let\marg\bwarg\fi

11

Cette construction fait appel à la commande \let de TEX présentée de manière
lumineuse à la section 9.2.3 page 116.

11.1.2 Autour de la génération de l’index
Lorsque dans le texte du présent manuel, il est question d’une commande, d’unenvironnement, d’un package, d’une classe de document, etc. il est fait appel à unecommande particulière insérant automatiquement une entrée dans l’index. Ainsi par
exemple :1

Pour « black & white » argument...

11.3

Le package \ltxpack{varioref} permetd’utiliser la commande \ltxcom{vref}...

11.1 Quelques bricoles165
Le package varioref permet d’utiliser la commande \vref...

Le package \ltxpack{varioref} permetd’utiliser la commande \ltxcom{vref}...

La commande \ltxpack est déﬁnie comme suit. Tout d’abord :\newcommand{\ltx@pack}[1]{%\upshape\textsf{#1}}déﬁnissant la commande \ltx@pack permettant simplement de produire le nom dupackage en sans sérif. On déﬁnit ensuite :déﬁnissant la commande \ltx@pack permettant simplement de produire le nom dupackage en sans sérif. On déﬁnit ensuite :\newcommand{\ltxpack}[1]{%\ltx@pack{#1}%\protect\index{extensions!\protect\texttt{#1}}%\protect\index{#1@\protect\textsf{#1 extension}}}\newcommand{\ltxpack}[1]{%\ltx@pack{#1}%\protect\index{extensions!\protect\texttt{#1}}%\protect\index{#1@\protect\textsf{#1 extension}}}§ 6.3 p. 88 ◭\newcommand{\ltx@com}[1]{%\texttt{\symbol{92}#1}}

qui appelle la commande précédente, et qui insère deux entrées dans l’index. Unede la forme « hnom du packagei extension » et l’autre comme ◮sous-entréeN de« extensions ». La commande \protect permet ici d’éviter les ennuis si la commande\ltxpack est elle-même en argument d’une autre commande. Dans un même ordred’idée, la commande \ltxcom est déﬁnie tout d’abord par :§ 6.3 p. 88 ◭\newcommand{\ltx@com}[1]{%\texttt{\symbol{92}#1}}

permettant de produire en fonte machine à écrire, le nom de la commande précédé ducaractère \. La commande \symbol est une commande LATEX permettant d’insérer
ici le 92e caractère de la fonte sélectionnée (en l’occurrence le backslash). On peutalors déﬁnir la commande ﬁnale :permettant de produire en fonte machine à écrire, le nom de la commande précédé ducaractère \. La commande \symbol est une commande LATEX permettant d’insérer
ici le 92e caractère de la fonte sélectionnée (en l’occurrence le backslash). On peutalors déﬁnir la commande ﬁnale :\newcommand{\ltxcom}[1]{%\ltx@com{#1}%\index{#1@\protect\texttt{\symbol{92}#1}}}\newcommand{\ltxcom}[1]{%\ltx@com{#1}%\index{#1@\protect\texttt{\symbol{92}#1}}}

qui appelle la commande précédente et introduit une entrée dans l’index. L’idée àretenir, c’est qu’il est peut être utile de déﬁnir des commandes pour insérer automatiquement des entrées dans l’index. On pourrait par exemple déﬁnir une commande :qui appelle la commande précédente et introduit une entrée dans l’index. L’idée àretenir, c’est qu’il est peut être utile de déﬁnir des commandes pour insérer automatiquement des entrées dans l’index. On pourrait par exemple déﬁnir une commande :\newcommand{\jargonanglais}[1]{%\emph{#1}%\index{#1}}permettant à la fois de formater les mots du jargon en anglais, et de les insérer dansl’index, voire dans un index spécial. De même si un mot revient souvent dans undocument on peut déﬁnir une commande pour le produire et l’insérer dans l’index.
Par exemple dans ce manuel, on a déﬁni :Le package varioref permet d’utiliser la commande \vref...

La commande \ltxpack est déﬁnie comme suit. Tout d’abord :\newcommand{\ltx@pack}[1]{%\upshape\textsf{#1}}qui appelle la commande précédente, et qui insère deux entrées dans l’index. Unede la forme « hnom du packagei extension » et l’autre comme ◮sous-entréeN de« extensions ». La commande \protect permet ici d’éviter les ennuis si la commande\ltxpack est elle-même en argument d’une autre commande. Dans un même ordred’idée, la commande \ltxcom est déﬁnie tout d’abord par :

165
11.3

11.1 Quelques bricoles\newcommand{\jargonanglais}[1]{%\emph{#1}%\index{#1}}11\newcommand{\postscript}{%
PostScript%\protect\index{PostScript}}11.1.3 Des renvois
La version « papier » de ce document est parsemée de renvois comme celui-ci parlant
de ◮glossaireN qui n’a strictement rien à voir avec le propos du moment2 si ce n’est § D.3.6 p. 229 ◭permettant à la fois de formater les mots du jargon en anglais, et de les insérer dansl’index, voire dans un index spécial. De même si un mot revient souvent dans undocument on peut déﬁnir une commande pour le produire et l’insérer dans l’index.
Par exemple dans ce manuel, on a déﬁni :11\newcommand{\postscript}{%
PostScript%\protect\index{PostScript}}11.1.3 Des renvois
La version « papier » de ce document est parsemée de renvois comme celui-ci parlant
de ◮glossaireN qui n’a strictement rien à voir avec le propos du moment2 si ce n’est § D.3.6 p. 229 ◭De nouveaux jouets

166

qu’il s’agit d’un renvoi. La commande mise en œuvre pour les renvois a été baptisée\voir et attend deux arguments :qu’il s’agit d’un renvoi. La commande mise en œuvre pour les renvois a été baptisée\voir et attend deux arguments :\voir{hlabel ciblei}{htexte objet du renvoii}\voir{hlabel ciblei}{htexte objet du renvoii}

Par exemple, le renvoi précédent a été produit par :Par exemple, le renvoi précédent a été produit par :\voir{chap-glossaire}{glossaire}\voir{chap-glossaire}{glossaire}

Toute la « diﬃculté » de la conception de cette commande réside dans l’orientation
des triangles qui dépend de la parité de la page. Cette diﬃculté peut être levée grâceà l’utilisation du package chngpage comme expliqué au paragraphe 9.3.3 page 120.
Le reste concerne la mise en page des triangles. Pour cela deux commandes ont
été déﬁnies, produisant chacunes les renvois dans la marge et les marques dans letexte. D’où la forme de la commande \voir :Toute la « diﬃculté » de la conception de cette commande réside dans l’orientation
des triangles qui dépend de la parité de la page. Cette diﬃculté peut être levée grâceà l’utilisation du package chngpage comme expliqué au paragraphe 9.3.3 page 120.
Le reste concerne la mise en page des triangles. Pour cela deux commandes ont
été déﬁnies, produisant chacunes les renvois dans la marge et les marques dans letexte. D’où la forme de la commande \voir :\newcommand{\voir}[3][\S]{%\checkoddpage%\ifcpoddpage\v@irpageimpaire{#1}{#2}{#3}}{% renvoi sur page impaire\else\v@irpagepaire{#1}{#2}{#3}}} % renvoi sur page paire\fi\newcommand{\voir}[3][\S]{%\checkoddpage%\ifcpoddpage\v@irpageimpaire{#1}{#2}{#3}}{% renvoi sur page impaire\else\v@irpagepaire{#1}{#2}{#3}}} % renvoi sur page paire\fi

On notera qu’outre les deux arguments obligatoires, la commande accepte un argument optionnel déﬁni par défaut comme étant le caractère de paragraphe (§). Lesdeux commandes \v@irpageimpaire et \v@irpagepaire sont symétriques l’une del’autre et ont pour objet :On notera qu’outre les deux arguments obligatoires, la commande accepte un argument optionnel déﬁni par défaut comme étant le caractère de paragraphe (§). Lesdeux commandes \v@irpageimpaire et \v@irpagepaire sont symétriques l’une del’autre et ont pour objet :1. d’encadrer le texte objet du renvoi par des triangles correctement orientés ;1. d’encadrer le texte objet du renvoi par des triangles correctement orientés ;2. de produire une note marginale avec la cible du renvoi.

2. de produire une note marginale avec la cible du renvoi.
Les triangles sont obtenus à l’aide de symboles contenus dans le package amssymb :Oh les \og joulis\fg{} triangles :$\blacktriangleleft$ et$\blacktriangleright$ !

Oh les « joulis » triangles : ◭ et ◮ !

11.4

Oh les \og joulis\fg{} triangles :$\blacktriangleleft$ et$\blacktriangleright$ !

11.4

Les triangles sont obtenus à l’aide de symboles contenus dans le package amssymb :Oh les « joulis » triangles : ◭ et ◮ !

Le petit triangle à plat est obtenu grâce à la commande suivante :Le petit triangle à plat est obtenu grâce à la commande suivante :\newcommand{\petit@triangle}{%\makebox[2.5pt]{\tiny$\blacktriangle$}}\newcommand{\petit@triangle}{%\makebox[2.5pt]{\tiny$\blacktriangle$}}Mais, il sont tous \petit@triangle{}petitsces \petit@triangle{}triangles...

Mais, il sont tous Npetits ces Ntriangles...

On peut alors écrire :Mais, il sont tous \petit@triangle{}petitsces \petit@triangle{}triangles...

11.5

11

On peut alors écrire :
11.5

11

De nouveaux jouets

166

Mais, il sont tous Npetits ces Ntriangles...

Il n’est pas inutile de noter l’usage de la boîte de deux points et demi de large pourfaire croire à ce naïf de LATEX que c’est la largeur eﬀective de \blacktriangle. Ce
qui n’est bien entendu pas le cas, mais contribue à coller ce « petit triangle » au mot
qui le suit. Je sens que vous n’êtes pas convaincu, donc :Il n’est pas inutile de noter l’usage de la boîte de deux points et demi de large pourfaire croire à ce naïf de LATEX que c’est la largeur eﬀective de \blacktriangle. Ce
qui n’est bien entendu pas le cas, mais contribue à coller ce « petit triangle » au mot
qui le suit. Je sens que vous n’êtes pas convaincu, donc :2
Je veux dire que nous ne sommes pas en train de parler de glossaire, ou alors vous ne suivez
pas du tout...

2
Je veux dire que nous ne sommes pas en train de parler de glossaire, ou alors vous ne suivez
pas du tout...

11.6

Mais, il sont tous {\tiny$\blacktriangle$}%petits ces {\tiny$\blacktriangle$}triangles...

11.1 Quelques bricoles

167

Mais, il sont tous {\tiny$\blacktriangle$}%petits ces {\tiny$\blacktriangle$}triangles...

Mais, il sont tous Npetits ces Ntriangles...

167
11.6

11.1 Quelques bricoles

Mais, il sont tous Npetits ces Ntriangles...

Voici ﬁnalement la commande permettant de faire un renvoi dans le cas d’une
page paire :Voici ﬁnalement la commande permettant de faire un renvoi dans le cas d’une
page paire :\newcommand{\v@irpagepaire}[3]{%\petit@triangle#3{\small$\blacktriangleleft$}% le renvoi est à gauche\marginpar{{\small% on écrit en petit dans la marge% le numéro et la page de la cible du renvoi ...
$\blacktriangleright$ #1~\ref{#2} p.~\pageref{#2}}}}\newcommand{\v@irpagepaire}[3]{%\petit@triangle#3{\small$\blacktriangleleft$}% le renvoi est à gauche\marginpar{{\small% on écrit en petit dans la marge% le numéro et la page de la cible du renvoi ...
$\blacktriangleright$ #1~\ref{#2} p.~\pageref{#2}}}}

Pour la page impaire il faut faire la même chose que pour la page paire, mais en
tenant compte que c’est une page impaire :-)Dans la version « en ligne » les renvois apparaissent comme un lien hypertexte.
Ceci est facilement réalisable grâce à la commande \hyperref du package éponyme.
On aura donc quelque chose du genre :Pour la page impaire il faut faire la même chose que pour la page paire, mais en
tenant compte que c’est une page impaire :-)Dans la version « en ligne » les renvois apparaissent comme un lien hypertexte.
Ceci est facilement réalisable grâce à la commande \hyperref du package éponyme.
On aura donc quelque chose du genre :\newcommand{\voir}[3][\S]{%\hyperref[#2]{#3}}\newcommand{\voir}[3][\S]{%\hyperref[#2]{#3}}

L’argument optionnel ne sert ici à rien d’autre qu’à assurer la compatibilité avec laversion « papier » de la commande \voir.

L’argument optionnel ne sert ici à rien d’autre qu’à assurer la compatibilité avec laversion « papier » de la commande \voir.

11.1.4 Changement de marges

11.1.4 Changement de marges

À plusieurs reprises dans ce document, j’ai eu recours à des changements de marges
provisoires. C’est le cas notamment des exemples de code LATEX avec le résultat enface, ou pour les épigraphes. Pour ce faire, Marie-Paul Kluth3 qui maintient la Faqfrançaise de LATEX avait suggéré un environnement ressemblant à celui-ci :\newenvironment{changemargin}[2]%{\begin{list}{}{%\setlength{\listparindent}{\parindent}%\setlength{\itemindent}{\parindent}%\setlength{\leftmargin}{#1}%\setlength{\rightmargin}{#2}%}\item }%{\end{list}}À plusieurs reprises dans ce document, j’ai eu recours à des changements de marges
provisoires. C’est le cas notamment des exemples de code LATEX avec le résultat enface, ou pour les épigraphes. Pour ce faire, Marie-Paul Kluth3 qui maintient la Faqfrançaise de LATEX avait suggéré un environnement ressemblant à celui-ci :\newenvironment{changemargin}[2]%{\begin{list}{}{%\setlength{\listparindent}{\parindent}%\setlength{\itemindent}{\parindent}%\setlength{\leftmargin}{#1}%\setlength{\rightmargin}{#2}%}\item }%{\end{list}}

L’idée est donc de déﬁnir une liste dont on change les marges. Les deux arguments qu’attend cet environnement correspondent respectivement aux dimensions
des marges gauche et droite. Une idée intéressante serait celle d’un environnement
dans lequel les marges ont des dimensions diﬀérentes selon la parité de la page. Un
tel environnement peut être déﬁni comme suit :L’idée est donc de déﬁnir une liste dont on change les marges. Les deux arguments qu’attend cet environnement correspondent respectivement aux dimensions
des marges gauche et droite. Une idée intéressante serait celle d’un environnement
dans lequel les marges ont des dimensions diﬀérentes selon la parité de la page. Un
tel environnement peut être déﬁni comme suit :\newenvironment{agrandirmarges}[2]{%\begin{list}{}{%\setlength{\topsep}{0pt}%\setlength{\listparindent}{\parindent}%\setlength{\itemindent}{\parindent}%\setlength{\parsep}{0pt plus 1pt}%
3

Qui possède un lom prédestilé...

11\newenvironment{agrandirmarges}[2]{%\begin{list}{}{%\setlength{\topsep}{0pt}%\setlength{\listparindent}{\parindent}%\setlength{\itemindent}{\parindent}%\setlength{\parsep}{0pt plus 1pt}%
3

Qui possède un lom prédestilé...

11

De nouveaux jouets

168

De nouveaux jouets

168

Figure 11.1: Une ﬁgure qui ne sert à rien si ce n’est à montrer qu’on peut momentanément
changer les marges gauche et droite quand on a besoin de place...

Figure 11.1: Une ﬁgure qui ne sert à rien si ce n’est à montrer qu’on peut momentanément
changer les marges gauche et droite quand on a besoin de place...

\checkoddpage%\ifcpoddpage\setlength{\leftmargin}{-#1}\setlength{\rightmargin}{-#2}\else\setlength{\leftmargin}{-#2}\setlength{\rightmargin}{-#1}\fi}\item }%{\end{list}}\checkoddpage%\ifcpoddpage\setlength{\leftmargin}{-#1}\setlength{\rightmargin}{-#2}\else\setlength{\leftmargin}{-#2}\setlength{\rightmargin}{-#1}\fi}\item }%{\end{list}}

Notez qu’on utilise ici la commande \isodd pour tester la parité de la page. La
ﬁgure 11.1 montre un exemple d’utilisation de cet environnement avec le code suivant :Notez qu’on utilise ici la commande \isodd pour tester la parité de la page. La
ﬁgure 11.1 montre un exemple d’utilisation de cet environnement avec le code suivant :\begin{figure}[tb]\begin{agrandirmarges}{1cm}{2cm}% ici on a 1cm de plus côté « reliure »%et 2cm de plus côté « bord »...
\caption{Une figure qui ne sert à rien...}\end{agrandirmarges}\end{figure}

11.2\begin{figure}[tb]\begin{agrandirmarges}{1cm}{2cm}% ici on a 1cm de plus côté « reliure »%et 2cm de plus côté « bord »...
\caption{Une figure qui ne sert à rien...}\end{agrandirmarges}\end{figure}Des nota

11.2

Les pictogrammes4 ont été « conçus » avec le logiciel xfig et sont représentés à la ﬁgure 11.2 en trois centimètres de large. Les « nota » insérés ça et là dans le document,

11

Des nota
Les pictogrammes4 ont été « conçus » avec le logiciel xfig et sont représentés à la ﬁgure 11.2 en trois centimètres de large. Les « nota » insérés ça et là dans le document,

11
Figure 11.2: Les pictogrammes du manuelFigure 11.2: Les pictogrammes du manuelont été produits par un environnement déﬁni par votre serviteur, basé sur une fonctionnalité de niveau TEX découverte lors de mes laborieuses lecture du TEXBook :la commande \parshape. Cette commande permet de donner une forme arbitraireà un paragraphe :ont été produits par un environnement déﬁni par votre serviteur, basé sur une fonctionnalité de niveau TEX découverte lors de mes laborieuses lecture du TEXBook :la commande \parshape. Cette commande permet de donner une forme arbitraireà un paragraphe :4
L’idée de ces pictogrammes a été inspirée par la lecture de TEXbook, comme je l’explique en
introduction.

4
L’idée de ces pictogrammes a été inspirée par la lecture de TEXbook, comme je l’explique en
introduction.

11.7\parshape=5
2cm 3cm
2cm 3cm1cm 2cm1cm 2cm0pt \textwidtha a a a a a a a a a a a a a a a a a a a a a
a a a a a a a a a a a a a a a a a a a a a a
a a a a a a a a a a a a a a a a a a a a a a11.2 Des nota

169

\parshape=5
2cm 3cm
2cm 3cm1cm 2cm1cm 2cm0pt \textwidtha a a a a a a a a a a a a a a a a a a a a a
a a a a a a a a a a a a a a a a a a a a a a
a a a a a a a a a a a a a a a a a a a a a a

aaaaaaaaa
aaaaaaaaaa
aaaaaaa
aaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaa

169

11.7

11.2 Des nota

aaaaaaaaa
aaaaaaaaaa
aaaaaaa
aaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaa• les deux premières lignes auront un retrait de deux centimètres et mesureront
chacune trois centimètres ;• les deux premières lignes auront un retrait de deux centimètres et mesureront
chacune trois centimètres ;• les deux lignes suivantes seront indentées d’un centimètre et mesureront deux
centimètres ;• les deux lignes suivantes seront indentées d’un centimètre et mesureront deux
centimètres ;• la cinquième et dernière spéciﬁcation détermine l’allure de toutes les lignes
restantes : retrait de zéro centimètre et longueur de la ligne égale à la longueur
prédéﬁnie \textwidth.

• la cinquième et dernière spéciﬁcation détermine l’allure de toutes les lignes
restantes : retrait de zéro centimètre et longueur de la ligne égale à la longueur
prédéﬁnie \textwidth.

Pour insérer un nota dans un paragraphe, on va donc déplacer les deux premières
lignes à l’aide de cette commande.

Pour insérer un nota dans un paragraphe, on va donc déplacer les deux premières
lignes à l’aide de cette commande.
\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent Attention ce paragraphe a uniquement
pour but de montrer que l’on peut décaler deux
lignes dans un paragraphe et ensuite continuer
comme si de rien n’était...

Attention ce paragraphe a uniquement
pour but de montrer que l’on peut décaler deux lignes dans un paragraphe et ensuite
continuer comme si de rien n’était...

Bon, il reste à essayer de mettre l’image dans le « trou » laissé par la commande\parshape. Essayons simplement :

11
11.9

\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent%\includegraphics[width=\larnota]{\ficnota}
Attention ce paragraphe a uniquement
pour but de montrer que l’on peut décaler deux
lignes dans un paragraphe [...]

Attention ce paragraphe a uniquement pour but de montrer que l’on peut
décaler deux lignes dans un paragraphe [...]

Évidemment, l’image se pose sur la ligne comme n’importe quel autre caractère. On
la met dans une boîte de largeur nulle dont le contenu est aligné à droite :Attention ce paragraphe a uniquement
pour but de montrer que l’on peut décaler deux lignes dans un paragraphe et ensuite
continuer comme si de rien n’était...

Bon, il reste à essayer de mettre l’image dans le « trou » laissé par la commande\parshape. Essayons simplement :\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent%\includegraphics[width=\larnota]{\ficnota}
Attention ce paragraphe a uniquement
pour but de montrer que l’on peut décaler deux
lignes dans un paragraphe [...]

11
11.9

\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent Attention ce paragraphe a uniquement
pour but de montrer que l’on peut décaler deux
lignes dans un paragraphe et ensuite continuer
comme si de rien n’était...

11.8

Le nombre suivant le signe ‘=’ permet de spéciﬁer le nombre de lignes auxquelles
on imposera une déformation. Suivent ensuite des couples de dimensions indiquantle retrait et la longueur de chaque ligne déformée. Dans l’exemple ci-dessus :11.8

Le nombre suivant le signe ‘=’ permet de spéciﬁer le nombre de lignes auxquelles
on imposera une déformation. Suivent ensuite des couples de dimensions indiquantle retrait et la longueur de chaque ligne déformée. Dans l’exemple ci-dessus :Attention ce paragraphe a uniquement pour but de montrer que l’on peut
décaler deux lignes dans un paragraphe [...]

Évidemment, l’image se pose sur la ligne comme n’importe quel autre caractère. On
la met dans une boîte de largeur nulle dont le contenu est aligné à droite :De nouveaux jouets

Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]

11

11.11

pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]

11.12

Attention ce joli paragraphe a uniquement

11.11\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent%\raisebox{-\larnota}{%\makebox[0pt][r]{%\includegraphics[width=\larnota]{%\ficnota}}}%Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]

Attention ce joli paragraphe a uniquement

pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]

Bon, encore raté, il faut faire croire à LATEX que la boîte qu’on translate verticalement
est de taille nulle :Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]On y est presque. Deux ajustements sont nécessaires :Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]Il reste à faire subir au pictogramme, une translation verticale (le pictogramme est
pratiquement carré, on se sert donc de la dimension \indnota) :Bon, encore raté, il faut faire croire à LATEX que la boîte qu’on translate verticalement
est de taille nulle :\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent%\raisebox{-\larnota}[0pt][0pt]{%\makebox[0pt][r]{%\includegraphics[width=\larnota]{\ficnota}}}%Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler deux
lignes dans un paragraphe [...]

11.10\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}%\parshape=3\larnota\largligne\larnota\largligne%
0pt\textwidth\noindent%\makebox[0pt][r]{%\includegraphics[width=\larnota]{%\ficnota}}%
Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]Il reste à faire subir au pictogramme, une translation verticale (le pictogramme est
pratiquement carré, on se sert donc de la dimension \indnota) :\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent%\raisebox{-\larnota}{%\makebox[0pt][r]{%\includegraphics[width=\larnota]{%\ficnota}}}%Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]De nouveaux jouets

170

11

\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}\parshape=3\larnota\largligne\larnota\largligne
0pt\textwidth\noindent%\raisebox{-\larnota}[0pt][0pt]{%\makebox[0pt][r]{%\includegraphics[width=\larnota]{\ficnota}}}%Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler deux
lignes dans un paragraphe [...]

11.12\setlength{\larnota}{.9cm}\setlength{\largligne}{\textwidth-\larnota}%\parshape=3\larnota\largligne\larnota\largligne%
0pt\textwidth\noindent%\makebox[0pt][r]{%\includegraphics[width=\larnota]{%\ficnota}}%
Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]

11.10

170

Attention ce joli paragraphe a uniquement
pour but de montrer que l’on peut décaler
deux lignes dans un paragraphe [...]On y est presque. Deux ajustements sont nécessaires :• la boîte est un peu trop basse, puisque la ligne de référence est le bas de laligne du texte. Par conséquent on peut enlever 1ex (la hauteur d’un caractère)à la translation ;• la boîte est un peu trop basse, puisque la ligne de référence est le bas de laligne du texte. Par conséquent on peut enlever 1ex (la hauteur d’un caractère)à la translation ;• il serait bon d’ajouter un espace entre le pictogramme est le texte. On déﬁnit
pour cela une longueur \padnota.

• il serait bon d’ajouter un espace entre le pictogramme est le texte. On déﬁnit
pour cela une longueur \padnota.

\setlength{\padnota}{5pt}\setlength{\larnota}{.9cm}\setlength{\indnota}{\larnota+\padnota}\setlength{\largligne}{\textwidth-\indnota}\parshape=3\indnota\largligne\indnota\largligne
0pt\textwidth\noindent%\raisebox{-\larnota+2.2ex}[0pt][0pt]{%\makebox[0pt][r]{%\includegraphics[width=\larnota]{\ficnota}%\hspace*{\padnota}}}%Attention ce joli paragraphe a uniquement
pour but de montrer
qu’on peut décaler deux
lignes dans un paragraphe [...]

Attention ce joli paragraphe a uniquement pour but de montrer qu’on peut
décaler deux lignes dans un paragraphe [...]
11.13\setlength{\padnota}{5pt}\setlength{\larnota}{.9cm}\setlength{\indnota}{\larnota+\padnota}\setlength{\largligne}{\textwidth-\indnota}\parshape=3\indnota\largligne\indnota\largligne
0pt\textwidth\noindent%\raisebox{-\larnota+2.2ex}[0pt][0pt]{%\makebox[0pt][r]{%\includegraphics[width=\larnota]{\ficnota}%\hspace*{\padnota}}}%Attention ce joli paragraphe a uniquement
pour but de montrer
qu’on peut décaler deux
lignes dans un paragraphe [...]

11.2 Des nota

171

171

Attention ce joli paragraphe a uniquement pour but de montrer qu’on peut
décaler deux lignes dans un paragraphe [...]
11.13

11.2 Des nota

Et ouala ! Il ne reste « qu’à » modiﬁer ce code pour créer un nouvel environnement.
La technique choisie ici est de se baser sur l’environnement list présenté au paragraphe 9.5 page 126. Le code complet de l’environnement est le suivant :Et ouala ! Il ne reste « qu’à » modiﬁer ce code pour créer un nouvel environnement.
La technique choisie ici est de se baser sur l’environnement list présenté au paragraphe 9.5 page 126. Le code complet de l’environnement est le suivant :\newenvironment{pictonote}[1]{% on passe le nom du fichier en argument\begin{list}{}{%\setlength{\labelsep}{0pt}%\setlength{\rightmargin}{15pt}}\item%\setlength{\indentationnota}{%\@totalleftmargin+\largeurnota+\paddingnota}%\setlength{\largeurlignenota}{%\linewidth-\largeurnota-\paddingnota}%\parshape=3%\indentationnota\largeurlignenota%\indentationnota\largeurlignenota%\@totalleftmargin\linewidth%\raisebox{-\largeurnota+2.2ex}[0pt][0pt]{%\makebox[0pt][r]{%\includegraphics[width=\largeurnota]{#1}%\hspace{\paddingnota}}}%\ignorespaces}{%\end{list}}\newenvironment{pictonote}[1]{% on passe le nom du fichier en argument\begin{list}{}{%\setlength{\labelsep}{0pt}%\setlength{\rightmargin}{15pt}}\item%\setlength{\indentationnota}{%\@totalleftmargin+\largeurnota+\paddingnota}%\setlength{\largeurlignenota}{%\linewidth-\largeurnota-\paddingnota}%\parshape=3%\indentationnota\largeurlignenota%\indentationnota\largeurlignenota%\@totalleftmargin\linewidth%\raisebox{-\largeurnota+2.2ex}[0pt][0pt]{%\makebox[0pt][r]{%\includegraphics[width=\largeurnota]{#1}%\hspace{\paddingnota}}}%\ignorespaces}{%\end{list}}

On notera l’utilisation de la dimension \@totalleftmargin permettant d’obtenirla largeur de la marge de gauche dans une liste, en tenant compte d’éventuelles
imbrications. En effet la dimension \leftmargin dans une liste correspond à la marge degauche relativement à l’environnement contenant la dite liste.

On pourra ensuite utiliser cet environnement en lui passant en paramètre un ﬁchierparticulier, ou mieux déﬁnir un nouvel environnement par exemple :\newenvironment{nota}{%\begin{pictonote}{hvotre fichieri}}{\end{pictnote}}11

On notera l’utilisation de la dimension \@totalleftmargin permettant d’obtenirla largeur de la marge de gauche dans une liste, en tenant compte d’éventuelles
imbrications. En effet la dimension \leftmargin dans une liste correspond à la marge degauche relativement à l’environnement contenant la dite liste.

On pourra ensuite utiliser cet environnement en lui passant en paramètre un ﬁchierparticulier, ou mieux déﬁnir un nouvel environnement par exemple :\newenvironment{nota}{%\begin{pictonote}{hvotre fichieri}}{\end{pictnote}}11

De nouveaux jouets

172

Pour terminer cette section sur les nota il faut savoir que cet environnement a undéfaut : Si un nota contient un saut de paragraphe, un espace est de nouveau laissé
libre pour un pictogramme

Pour terminer cette section sur les nota il faut savoir que cet environnement a undéfaut : Si un nota contient un saut de paragraphe, un espace est de nouveau laissé
libre pour un pictogramme

Oui oui comme dans celui-ci, vous voyez bien qu’il y a un emplacement prévu pourle pictogramme, alors qu’ici on n’a pas vraiment l’intention d’en mettre un, non ?
Pour éviter ce genre de désagrément il faut réinitialiser les retraits au niveau TEX grâce
aux incantations vaudoues suivantes :Oui oui comme dans celui-ci, vous voyez bien qu’il y a un emplacement prévu pourle pictogramme, alors qu’ici on n’a pas vraiment l’intention d’en mettre un, non ?
Pour éviter ce genre de désagrément il faut réinitialiser les retraits au niveau TEX grâce
aux incantations vaudoues suivantes :\par\parshape=1\@totalleftmargin\linewidth\par\parshape=1\@totalleftmargin\linewidthqui pourra faire l’objet d’une commande à insérer manuellement au début de chaquenouveau paragraphe, comme je viens de le faire ici :-)11.3

qui pourra faire l’objet d’une commande à insérer manuellement au début de chaquenouveau paragraphe, comme je viens de le faire ici :-)Des citations

11.3

11.3.1 Épigraphes

Les épigraphes provocatrices de ce manuel ont été produites par un environnement
que j’ai nommé epigraphe. Par exemple au début du code LATEX du chapitre 2, on
trouve :\chapter{Ce qu’il faut savoir}\label{chap-savoir}\begin{epigraphe}{Les proverbes Pr \textbf{21} 11}
Quand on châtie le railleur, le simple s’assagit ;\\quand on instruit le sage, celui-ci gagne en savoir.
\end{epigraphe}\chapter{Ce qu’il faut savoir}\label{chap-savoir}\begin{epigraphe}{Les proverbes Pr \textbf{21} 11}
Quand on châtie le railleur, le simple s’assagit ;\\quand on instruit le sage, celui-ci gagne en savoir.
\end{epigraphe}

L’environnement epigraphe est déﬁni comme suit :◮ § 4.4.5 p. 67\newenvironment{epigraphe}[1]{% clause begin\vspace*{-1.5cm}%\small\sffamily% mise en évidence\savebox{\nomepigraphe}{#1}% une boîte pour sauvegarder% l’ origine de la citation\slshape% tout est penché\begin{changemargin}{0pt}{-2cm}% on se met au large\begin{flushright}}% tout est poussé à droite{% clause end\\[4pt]\usebox{\nomepigraphe}.% insertion de l’origine\end{flushright}%\end{changemargin}\par\vspace*{0.6cm}}
Il faut bien entendu Ndéclarer la boîte◭ qu’on utilise pour sauvegarder l’origine denotre citation :\newsavebox{\nomepigraphe}
Les blanc verticaux (\vspace) insérés avant et après cet environnement permettent
de caler correctement l’épigraphe entre le début du chapitre et la minitable desmatières.

Des citations

11.3.1 Épigraphes

Les épigraphes provocatrices de ce manuel ont été produites par un environnement
que j’ai nommé epigraphe. Par exemple au début du code LATEX du chapitre 2, on
trouve :11

De nouveaux jouets

172

L’environnement epigraphe est déﬁni comme suit :11◮ § 4.4.5 p. 67\newenvironment{epigraphe}[1]{% clause begin\vspace*{-1.5cm}%\small\sffamily% mise en évidence\savebox{\nomepigraphe}{#1}% une boîte pour sauvegarder% l’ origine de la citation\slshape% tout est penché\begin{changemargin}{0pt}{-2cm}% on se met au large\begin{flushright}}% tout est poussé à droite{% clause end\\[4pt]\usebox{\nomepigraphe}.% insertion de l’origine\end{flushright}%\end{changemargin}\par\vspace*{0.6cm}}
Il faut bien entendu Ndéclarer la boîte◭ qu’on utilise pour sauvegarder l’origine denotre citation :\newsavebox{\nomepigraphe}
Les blanc verticaux (\vspace) insérés avant et après cet environnement permettent
de caler correctement l’épigraphe entre le début du chapitre et la minitable desmatières.

11.3 Des citations

11.3 Des citations

173

11.3.2 Citations

11.3.2 Citations
Quelques citations parsèment le manuel que vous avez sous les yeux. Elles ont été
produites avec un environnement fait maison :11.14

xxxxxxxxxxxxx

xxxxxxxxxxxxx\begin{unecitation}[Georges \textsc{Bataille}]
La vieillesse renouvelle la terreur àl’infini. Elle ramène l’être sans finir aucommencement. Le commencement qu’au bordde la tombe j’entrevois est le \emph{porc}qu’en moi la mort ni l’insulte ne peuvent
tuer. La terreur au bord de la tombe est
divine et je m’enfonce dans la terreur dont
je suis l’enfant.
\end{unecitation}
xxxxxxxxxxxxxxx« La vieillesse renouvelle la terreur
à l’infini. Elle ramène l’être sans finir au commencement. Le commencement qu’au bord de la tombe j’entrevois est le porc qu’en moi la mort ni
l’insulte ne peuvent tuer. La terreur
au bord de la tombe est divine et je
m’enfonce dans la terreur dont je suis
l’enfant. »Georges Bataillexxxxxxxxxxxxxxx

Nous allons créer pas à pas cet environnement de manière à mettre le doigt sur
quelques problèmes classiques auxquels on peut être confronté avec monsieur LATEX.
On va déﬁnir l’environnement citation en s’appuyant sur celui du paragraphe 9.6
page 133 (permettant de faire une remarque encadrée) et sur celui du § 4.5.2 page 69
qui produit une citation avec son auteur :% un boite pour l ’auteur de la citation\newsavebox{\auteurcitation}\newsavebox{\boitecitation}\newenvironment{citationi}[1]{% clause begin% on sauve l ’argument 1 pour l ’auteur\savebox{\auteurcitation}{#1}%\begin{lrbox}{\boitecitation}\begin{minipage}{.8\linewidth}\small\slshape}% on passe en petit et penché{% clause end : on pousse l ’auteur de la citation à droite\par\mbox{}\hfill\usebox{\auteurcitation}\end{minipage}\end{lrbox}\begin{center}\usebox{\boitecitation}\end{center}

Ce qui donne :xxxxxxxxxxxxx

11.14

Quelques citations parsèment le manuel que vous avez sous les yeux. Elles ont été
produites avec un environnement fait maison :xxxxxxxxxxxxx\begin{unecitation}[Georges \textsc{Bataille}]
La vieillesse renouvelle la terreur àl’infini. Elle ramène l’être sans finir aucommencement. Le commencement qu’au bordde la tombe j’entrevois est le \emph{porc}qu’en moi la mort ni l’insulte ne peuvent
tuer. La terreur au bord de la tombe est
divine et je m’enfonce dans la terreur dont
je suis l’enfant.
\end{unecitation}
xxxxxxxxxxxxxxx

173« La vieillesse renouvelle la terreur
à l’infini. Elle ramène l’être sans finir au commencement. Le commencement qu’au bord de la tombe j’entrevois est le porc qu’en moi la mort ni
l’insulte ne peuvent tuer. La terreur
au bord de la tombe est divine et je
m’enfonce dans la terreur dont je suis
l’enfant. »Georges Bataillexxxxxxxxxxxxxxx

Nous allons créer pas à pas cet environnement de manière à mettre le doigt sur
quelques problèmes classiques auxquels on peut être confronté avec monsieur LATEX.
On va déﬁnir l’environnement citation en s’appuyant sur celui du paragraphe 9.6
page 133 (permettant de faire une remarque encadrée) et sur celui du § 4.5.2 page 69
qui produit une citation avec son auteur :11% un boite pour l ’auteur de la citation\newsavebox{\auteurcitation}\newsavebox{\boitecitation}\newenvironment{citationi}[1]{% clause begin% on sauve l ’argument 1 pour l ’auteur\savebox{\auteurcitation}{#1}%\begin{lrbox}{\boitecitation}\begin{minipage}{.8\linewidth}\small\slshape}% on passe en petit et penché{% clause end : on pousse l ’auteur de la citation à droite\par\mbox{}\hfill\usebox{\auteurcitation}\end{minipage}\end{lrbox}\begin{center}\usebox{\boitecitation}\end{center}

Ce qui donne :11

De nouveaux jouets

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant\begin{citationi}{%Michel \textsc{Bakounine}, 1845}
Dans presque tous les pays les femmessont esclaves ; tant qu’elles ne seront
pas complètement émancipées, notre propre
liberté sera impossible.
\end{citationi}
Après après après après après après après
après après après après après après après

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant
Dans presque tous les pays les femmessont esclaves ; tant qu’elles ne seront
pas complètement émancipées, notre
propre liberté sera impossible.
Michel Bakounine, 1845
Après après après après après après après après
après après après après après après

On peut également changer l’indentation du paragraphe dans la minipage (qui vautpar défaut 0pt dans cet environnement) en modiﬁant dans l’environnement la valeurde la longueur \parindent :...
\begin{lrbox}{\boitecitation}\begin{minipage}{.8\linewidth}%\setlength{\parindent}{10pt}%...

...
\begin{lrbox}{\boitecitation}\begin{minipage}{.8\linewidth}%\setlength{\parindent}{10pt}%...

← pour indenter la 1re ligne...
\begin{minipage}{.8\linewidth}%\setlength{\parindent}{10pt}%\small\slshape« \ignorspaces}% on passe en petit et penché{\unskip »\par\mbox{}\hfill\usebox{\auteurcitation}
...

11.16

On se réfèrera aux paragraphes 9.2.1 et 9.2.1 page 115 pour la signiﬁcation descommandes \ignorespaces et \unskip. Ce qui donne :11

Ensuite — on y est presque — on se propose de rendre l’argument « auteur de lacitation » optionnel de manière à pouvoir produire une citation sans auteur si besoin
est. L’idée est de déclarer un booléen de manière à mémoriser le fait qu’un auteur
est présent ou pas :\newboolean{auteurcitationpresent}← pour indenter la 1re ligne

On insère ensuite des guillemets en début et ﬁn de citation, avec le code suivant :...
\begin{minipage}{.8\linewidth}%\setlength{\parindent}{10pt}%\small\slshape« \ignorspaces}% on passe en petit et penché{\unskip »\par\mbox{}\hfill\usebox{\auteurcitation}...

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant« Dans presque tous les pays lesfemmes sont esclaves ; tant qu’elles neseront pas complètement émancipées,notre propre liberté sera impossible. »Michel Bakounine, 1845
Après après après après après après après après
après après après après après après

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant
Dans presque tous les pays les femmessont esclaves ; tant qu’elles ne seront
pas complètement émancipées, notre
propre liberté sera impossible.
Michel Bakounine, 1845
Après après après après après après après après
après après après après après après

On peut également changer l’indentation du paragraphe dans la minipage (qui vautpar défaut 0pt dans cet environnement) en modiﬁant dans l’environnement la valeurde la longueur \parindent :On insère ensuite des guillemets en début et ﬁn de citation, avec le code suivant :Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant\begin{citationiii}{%
Michel \textsc{Bakounine}, 1845}
Dans presque tous les pays les femmessont esclaves ; tant qu’elles ne seront
pas complètement émancipées, notre propre
liberté sera impossible.
\end{citationiii}
Après après après après après après après
après après après après après après après

11.15

11.15

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant\begin{citationi}{%Michel \textsc{Bakounine}, 1845}
Dans presque tous les pays les femmessont esclaves ; tant qu’elles ne seront
pas complètement émancipées, notre propre
liberté sera impossible.
\end{citationi}
Après après après après après après après
après après après après après après après

De nouveaux jouets

174

On se réfèrera aux paragraphes 9.2.1 et 9.2.1 page 115 pour la signiﬁcation descommandes \ignorespaces et \unskip. Ce qui donne :11

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant\begin{citationiii}{%
Michel \textsc{Bakounine}, 1845}
Dans presque tous les pays les femmessont esclaves ; tant qu’elles ne seront
pas complètement émancipées, notre propre
liberté sera impossible.
\end{citationiii}
Après après après après après après après
après après après après après après après

11.16

174

Avant avant avant avant avant avant avant
avant avant avant avant avant avant avant« Dans presque tous les pays lesfemmes sont esclaves ; tant qu’elles neseront pas complètement émancipées,notre propre liberté sera impossible. »Michel Bakounine, 1845
Après après après après après après après après
après après après après après après

Ensuite — on y est presque — on se propose de rendre l’argument « auteur de lacitation » optionnel de manière à pouvoir produire une citation sans auteur si besoin
est. L’idée est de déclarer un booléen de manière à mémoriser le fait qu’un auteur
est présent ou pas :\newboolean{auteurcitationpresent}

11.4 Des lettrines

11.4 Des lettrines

175

On modiﬁe ensuite la déﬁnition de l’environnement comme suit :On modiﬁe ensuite la déﬁnition de l’environnement comme suit :\newenvironment{unecitation}[1][] {% argument optionnel vide par défaut
% Clause begin :% on note si on a un auteur pour la citation ou pas\ifthenelse{\equal{#1}{}}{%\setboolean{auteurcitationpresent}{false}}{%\setboolean{auteurcitationpresent}{true}%\savebox{\auteurcitation}{#1}}% on le sauve si nécessaire...

\newenvironment{unecitation}[1][] {% argument optionnel vide par défaut
% Clause begin :% on note si on a un auteur pour la citation ou pas\ifthenelse{\equal{#1}{}}{%\setboolean{auteurcitationpresent}{false}}{%\setboolean{auteurcitationpresent}{true}%\savebox{\auteurcitation}{#1}}% on le sauve si nécessaire...

Puis on modiﬁe la clause \end de l’environnement en insérant l’auteur uniquement
s’il est présent en argument :Puis on modiﬁe la clause \end de l’environnement en insérant l’auteur uniquement
s’il est présent en argument :{ »% clause end de l ’environnement% s’ il y a un auteur on le met poussé tout à droite\ifthenelse{\boolean{auteurcitation}}%{\par\nopagebreak\hfill\usebox{\auteurcitation}}{}% sinon on ne fait rien ...

{ »% clause end de l ’environnement% s’ il y a un auteur on le met poussé tout à droite\ifthenelse{\boolean{auteurcitation}}%{\par\nopagebreak\hfill\usebox{\auteurcitation}}{}% sinon on ne fait rien ...

Enﬁn, on met la citation sur un fond. On peut par exemple déclarer cette couleurgrâce au package xcolor :Enﬁn, on met la citation sur un fond. On peut par exemple déclarer cette couleurgrâce au package xcolor :\definecolor{coulcitation}{rgb}{0.60,0.70,0.90}%\definecolor{coulcitation}{rgb}{0.60,0.70,0.90}%

Il suﬃt alors de remplacer la commande \usebox de la clause end par quelque chosedu genre :Il suﬃt alors de remplacer la commande \usebox de la clause end par quelque chosedu genre :\setlength{\fboxsep}{10pt}%\colorbox{coulcitation}{\usebox{\boitecitation}}\setlength{\fboxsep}{10pt}%\colorbox{coulcitation}{\usebox{\boitecitation}}

Ce qui donnera ﬁnalement :Ce qui donnera ﬁnalement :« Il était tellement obsédé qu’à la fin
il sautait même des repas. »Pierre Desproges
Après après après après après après après

Des lettrines

11.4\lettrine{Les documents} soignés font souvent
appel aux lettrines, qui selon les règles
d’usage en typographie...

11.18

Les documents soignés font souvent appel aux lettrines qui permettent, selon lesrègles d’usage en typographie, de produire la première lettre du chapitre en gros,
ainsi que le mot ou groupe de mots qui suit. Par exemple :es documents soignés font souvent appel
aux lettrines, qui selon les règles d’usage en
typographie...

L

Il y a deux diﬃcultés dont une a déjà été surmontée :• comment appliquer un traitement à une seule lettre d’un argument d’une commande ;11

avant avant avant avant avant avant avant« Il était tellement obsédé qu’à la fin
il sautait même des repas. »Pierre Desproges

11.17

avant avant avant avant avant avant avant\begin{citationiv}[Pierre \textsc{Desproges}]Il était tellement obsédé qu’à la fin
il sautait même des repas.
\end{citationiv}
Après après après après après après après

Après après après après après après après

Des lettrines
Les documents soignés font souvent appel aux lettrines qui permettent, selon lesrègles d’usage en typographie, de produire la première lettre du chapitre en gros,
ainsi que le mot ou groupe de mots qui suit. Par exemple :\lettrine{Les documents} soignés font souvent
appel aux lettrines, qui selon les règles
d’usage en typographie...

11.18

avant avant avant avant avant avant avant

11.17

avant avant avant avant avant avant avant\begin{citationiv}[Pierre \textsc{Desproges}]Il était tellement obsédé qu’à la fin
il sautait même des repas.
\end{citationiv}
Après après après après après après après

11.4

175

es documents soignés font souvent appel
aux lettrines, qui selon les règles d’usage en
typographie...

L

Il y a deux diﬃcultés dont une a déjà été surmontée :• comment appliquer un traitement à une seule lettre d’un argument d’une commande ;11

De nouveaux jouets• comment décaler les lignes pour laisser la place à la lettrine. On utilisera pourcela la commande \parshape comme pour le nota (§ 11.2 page 168).

• comment décaler les lignes pour laisser la place à la lettrine. On utilisera pourcela la commande \parshape comme pour le nota (§ 11.2 page 168).

11.4.1 La commande \glurps ou un pas vers TEX

11.4.1 La commande \glurps ou un pas vers TEX

11.19

Au niveau de LATEX c’est la commande \newcommand qui permet de créer de nouvelles commandes. Une des limitations de LATEX pour ce qui concerne la créationde commandes réside dans le fait que les délimiteurs d’arguments sont toujours les
caractères { et }. Comme nous le verrons un peu plus bas, au niveau de TEX, cettecontrainte n’existe pas. En eﬀet, pour créer une commande avec TEX, on peut écrire :Au niveau de LATEX c’est la commande \newcommand qui permet de créer de nouvelles commandes. Une des limitations de LATEX pour ce qui concerne la créationde commandes réside dans le fait que les délimiteurs d’arguments sont toujours les
caractères { et }. Comme nous le verrons un peu plus bas, au niveau de TEX, cettecontrainte n’existe pas. En eﬀet, pour créer une commande avec TEX, on peut écrire :\def\bidule{machin truc}\bidule{} et \bidule

machin truc et machin truc

Avec un ou plusieurs arguments, on écrira(1=ab) et (2=cd)\bidule{ab}{cd}

On note qu’en TEX, on écrit dans la déﬁnition les arguments dans l’ordre. Ce qui
est intéressant et que l’on va exploiter pour notre lettrine, peut être illustré par les
exemples suivants d’utilisation de la commande \bidule :\bidule abcd

(1=a) et (2=b)cd(1=a) et (2=b) cd\bidule ab cd

On remarque donc que si on ne délimite pas explicitement les arguments avec les
caractères { et }, le premier argument (#1) est remplacé par le premier caractère
rencontré, le deuxième argument (#2) par le deuxième caractère, etc. Encore plus
intéressant, on peut déﬁnir très souplement le format d’appel de la commande, parexemple :\def\bidule#1#2/{(1=#1) et (2=#2)}
Ici, on indique que pour appeler la commande \bidule il faut lui faire suivre deux
arguments suivis du caractère /.

11.22\bidule abc/d\bidule ab/cd

11.21

11.21

\def\bidule#1#2{(1=#1) et (2=#2)}(1=a) et (2=b)cd(1=a) et (2=b) cd\bidule ab cd

11(1=ab) et (2=cd)

On note qu’en TEX, on écrit dans la déﬁnition les arguments dans l’ordre. Ce qui
est intéressant et que l’on va exploiter pour notre lettrine, peut être illustré par les
exemples suivants d’utilisation de la commande \bidule :\def\bidule#1#2{(1=#1) et (2=#2)}\bidule abcd

11.20

\def\bidule#1#2{(1=#1) et (2=#2)}
11.20\def\bidule#1#2{(1=#1) et (2=#2)}\bidule{ab}{cd}machin truc et machin truc

Avec un ou plusieurs arguments, on écrira(1=a) et (2=bc)d(1=a) et (2=b)cd

Par conséquent cette dernière commande prendra comme premier argument, le premier caractère rencontré, et comme deuxième : tout ce qu’elle trouve jusqu’au caractère /. On peut donc créer une ébauche de commande pour une lettrine :On remarque donc que si on ne délimite pas explicitement les arguments avec les
caractères { et }, le premier argument (#1) est remplacé par le premier caractère
rencontré, le deuxième argument (#2) par le deuxième caractère, etc. Encore plus
intéressant, on peut déﬁnir très souplement le format d’appel de la commande, parexemple :11\def\bidule#1#2/{(1=#1) et (2=#2)}
Ici, on indique que pour appeler la commande \bidule il faut lui faire suivre deux
arguments suivis du caractère /.
\bidule abc/d\bidule ab/cd

11.22\def\bidule{machin truc}\bidule{} et \bidule

De nouveaux jouets

176

11.19

176

(1=a) et (2=bc)d(1=a) et (2=b)cd

Par conséquent cette dernière commande prendra comme premier argument, le premier caractère rencontré, et comme deuxième : tout ce qu’elle trouve jusqu’au caractère /. On peut donc créer une ébauche de commande pour une lettrine :11.4 Des lettrines

177

On va même pousser le vice jusqu’à mettre la grosse lettre un peu plus bas :

B

11.24

\def\glurps#1#2/{%{\Huge#1}%\raisebox{\baselineskip}{\textsc{#2}}}\newcommand{\lettrinedev}[1]{\glurps#1/}\lettrinedev{Bon bé} ouala le travail

Bon bé ouala le travail

11.23\def\glurps#1#2/{{\Huge#1}\textsc{#2}}\newcommand{\lettrinedev}[1]{\glurps#1/}\lettrinedev{Bon bé} ouala le travail

Bon bé ouala le travail

11.23\def\glurps#1#2/{{\Huge#1}\textsc{#2}}\newcommand{\lettrinedev}[1]{\glurps#1/}\lettrinedev{Bon bé} ouala le travail

177

On va même pousser le vice jusqu’à mettre la grosse lettre un peu plus bas :\def\glurps#1#2/{%{\Huge#1}%\raisebox{\baselineskip}{\textsc{#2}}}\newcommand{\lettrinedev}[1]{\glurps#1/}\lettrinedev{Bon bé} ouala le travail

on bé
ouala le travail

11.4.2 Insertion de la lettrine dans un paragraphe

B

11.24

11.4 Des lettrineson bé
ouala le travail

11.4.2 Insertion de la lettrine dans un paragraphe

Pour insérer la lettrine dans un paragraphe on aura recours à la commande \parshape.
La ﬁgure 11.3 montre que l’on doit déﬁnir deux dimensions pour insérer la lettrine :Pour insérer la lettrine dans un paragraphe on aura recours à la commande \parshape.
La ﬁgure 11.3 montre que l’on doit déﬁnir deux dimensions pour insérer la lettrine :1. l’indentation de la première ligne, correspondant à la largeur de la « grosse
lettre » plus celle de la suite de la lettrine ;1. l’indentation de la première ligne, correspondant à la largeur de la « grosse
lettre » plus celle de la suite de la lettrine ;2. l’indentation de la deuxième ligne, correspondant à la largeur de la « grosse
lettre » éventuellement augmentée d’une espace pour aérer un peu.

2. l’indentation de la deuxième ligne, correspondant à la largeur de la « grosse
lettre » éventuellement augmentée d’une espace pour aérer un peu.

H op

H op
Paragraphe

Paragraphe

Figure 11.3: Insertion de la lettrine dans un paragraphe

Figure 11.3: Insertion de la lettrine dans un paragraphe

On déﬁnit les dimensions suivantes :On déﬁnit les dimensions suivantes :• \indletB et \larligB la même chose pour la deuxième ligne (la ligne « duBas »)• \indletB et \larligB la même chose pour la deuxième ligne (la ligne « duBas »)

Ceci permet d’écrire quelque chose du genre :Ceci permet d’écrire quelque chose du genre :\setlength{\indletB}{.8cm}% au pif\setlength{\larligB}{\textwidth-\indletB}\setlength{\indletH}{1.5cm}% au pif\setlength{\larligH}{\textwidth-\indletH}\parshape=3\indletH\larligH\indletB\larligB
0pt\textwidth\noindent Ce paragraphe est prêt à recevoir
une jolie lettrine qui occupera deux lignes
environ voire même exactement...

Ce paragraphe est prêt à recevoir unejolie lettrine qui occupera deux lignes environ voire même exactement...

11\setlength{\indletB}{.8cm}% au pif\setlength{\larligB}{\textwidth-\indletB}\setlength{\indletH}{1.5cm}% au pif\setlength{\larligH}{\textwidth-\indletH}\parshape=3\indletH\larligH\indletB\larligB
0pt\textwidth\noindent Ce paragraphe est prêt à recevoir
une jolie lettrine qui occupera deux lignes
environ voire même exactement...

11.25• \indletH et \larligH respectivement l’indentation et la largeur de la première
ligne (la ligne « du Haut ») du paragraphe contenant une lettrine ;11.25• \indletH et \larligH respectivement l’indentation et la largeur de la première
ligne (la ligne « du Haut ») du paragraphe contenant une lettrine ;Ce paragraphe est prêt à recevoir unejolie lettrine qui occupera deux lignes environ voire même exactement...

11

De nouveaux jouets

11.26

L’emplacement est prêt, il reste à insérer la « grosse lettre » et ce qui suit à la bonne
place. On commence par créer une commande pour la fonte à utiliser :\DeclareFixedFont{%\lettrinefont}{T1}{ppl}{m}{n}{2\baselineskip}{\lettrinefont Pour écrire les grosses lettres}

L’emplacement est prêt, il reste à insérer la « grosse lettre » et ce qui suit à la bonne
place. On commence par créer une commande pour la fonte à utiliser :Pour écrire lesgrosses lettres\DeclareFixedFont{%\lettrinefont}{T1}{ppl}{m}{n}{2\baselineskip}{\lettrinefont Pour écrire les grosses lettres}

Ensuite on va modiﬁer la commande \glurps5 et la commande \lettrine pourqu’elles calculent elles-mêmes les dimensions déﬁnies ci-avant (\indletH, \larligH,...).

Pour écrire lesgrosses lettres

Ensuite on va modiﬁer la commande \glurps5 et la commande \lettrine pourqu’elles calculent elles-mêmes les dimensions déﬁnies ci-avant (\indletH, \larligH,...).

\newsavebox{\lalettrine}% une boîte pour la lettrine\def\creerlettrine#1#2/{%\savebox{\lalettrine}{%{\lettrinefont#1}\raisebox{\baselineskip}{\textsc{#2}}}%\settowidth{\indletB}{{\lettrinefont#1}}%\settowidth{\indletH}{\usebox{\lalettrine}}}\newsavebox{\lalettrine}% une boîte pour la lettrine\def\creerlettrine#1#2/{%\savebox{\lalettrine}{%{\lettrinefont#1}\raisebox{\baselineskip}{\textsc{#2}}}%\settowidth{\indletB}{{\lettrinefont#1}}%\settowidth{\indletH}{\usebox{\lalettrine}}}La commande \creerlettrine (digne héritière de \glurps) sauve la lettrine dansune boîte et en proﬁte pour sauvegarder la largeur de la « grosse lettre » dans ladimension \indletB, et la dimension de l’ensemble dans \indletH. Tentons maintenant, une première version de la lettrine :La commande \creerlettrine (digne héritière de \glurps) sauve la lettrine dansune boîte et en proﬁte pour sauvegarder la largeur de la « grosse lettre » dans ladimension \indletB, et la dimension de l’ensemble dans \indletH. Tentons maintenant, une première version de la lettrine :\newcommand{\lettrineI}[1]{%\creerlettrine#1/%\setlength{\larligH}{\textwidth-\indletH}%\setlength{\larligB}{\textwidth-\indletB}%\parshape=3\indletH\larligH\indletB\larligB%
0cm\textwidth%\noindent\usebox{\lalettrine}}\newcommand{\lettrineI}[1]{%\creerlettrine#1/%\setlength{\larligH}{\textwidth-\indletH}%\setlength{\larligB}{\textwidth-\indletB}%\parshape=3\indletH\larligH\indletB\larligB%
0cm\textwidth%\noindent\usebox{\lalettrine}}

Qui donne6 :Qui donne6 :C
a pour but deproduire des caractères les uns derrière les\lettrineI{Ce chapitre} a pour but de produiredes caractères les uns derrière les autres etainsi de former des mots donnant lieu à desphrases.

autres et ainsi de former des mots donnant lieu
à des phrases.

Les lecteurs très attentifs auront noté que ce nota n’est pas à la bonne place. Il
semblerait que des translations horizontales et verticales soient nécessaires. On commencera ici par se décaler vers la gauche. À la dernière ligne de la déﬁnition de lacommande \lettrine, on écrira donc :\noindent\hspace{-\indletH}% décalage équivalent à la largeur totale

11

e chapitre

11.27

e chapitre

11.27\lettrineI{Ce chapitre} a pour but de produiredes caractères les uns derrière les autres etainsi de former des mots donnant lieu à desphrases.

11

De nouveaux jouets

178

11.26

178

C
a pour but deproduire des caractères les uns derrière lesautres et ainsi de former des mots donnant lieu
à des phrases.

Les lecteurs très attentifs auront noté que ce nota n’est pas à la bonne place. Il
semblerait que des translations horizontales et verticales soient nécessaires. On commencera ici par se décaler vers la gauche. À la dernière ligne de la déﬁnition de lacommande \lettrine, on écrira donc :\noindent\hspace{-\indletH}% décalage équivalent à la largeur totale

qui produira :qui produira :5Vous pourrez notez qu’il est tout à fait inadmissible d’utiliser des noms aussi ridicules pour lescommandes que vous serez amené à définir...
6
Des traits ont été ajoutés pour bien situer la boîte englobant la lettrine.

5
Vous pourrez notez qu’il est tout à fait inadmissible d’utiliser des noms aussi ridicules pour lescommandes que vous serez amené à définir...
6
Des traits ont été ajoutés pour bien situer la boîte englobant la lettrine.

\lettrineII{Ce chapitre} a pour but de produiredes caractères les uns derrière les autres etainsi de former des mots donnant lieu à desphrases.

e chapitre

11.28

C

a pour but de produire des caractères les uns derrière les autres et ainside former des mots donnant lieu à des phrases.

Puis on intègre la translation verticale :qui produira :\lettrineIII{Ce chapitre} a pour but deproduire des caractères les uns derrière lesautres et ainsi de former des mots donnant
lieu à des phrases.

11.29

e chapitre a pour but de produire des ca-

Cractères les uns derrière les autres et ainside former des mots donnant lieu à des phrases.

Les lecteurs encore éveillés auront remarqué que la « grosse lettre » est un peu trop
rapprochée du texte. On peut donc augmenter légèrement la dimension \indletB.
Voici ﬁnalement le code de la lettrine :11.5

C’est une pratique courante que le sommaire d’un document rédigé en français soit
placé en tête de document et contienne un condensé de la table des matières. Cette
dernière est quant à elle généralement insérée à la ﬁn. En fouillant dans le ﬁchierbook.cls déﬁnissant la classe éponyme, on trouve une instruction commune aux
commandes \tableofcontents et \listoffigures : la commande \@starttoc.
pour la commande \tableofcontents et :\@starttoc{lof}pour la commande \listoffigures. La commande interne \@starttoc permet decommencer un table (matières, ﬁgures, etc.) à partir d’un ﬁchier auxiliaire portantl’extension donnée en argument, ici toc pour la table des matières et lof pour la liste
des ﬁgures. Nous avons donc créé dans un premier temps la commande \sommairecomme suit :de former des mots donnant lieu à des phrases.

\newcommand{\lettrine}[1]{%\creerlettrine#1/%\addtolength{\indletB}{3pt}% pour avoir un peu d’espace\setlength{\larligH}{\textwidth-\indletH}%\setlength{\larligB}{\textwidth-\indletB}%\parshape=3%\indletH\larligH\indletB\larligB0cm\textwidth%\noindent\hspace{-\indletH}%\raisebox{-\baselineskip}[0pt][0pt]{\usebox{\lalettrine}}}Un sommaire\@starttoc{toc}e chapitre a pour but de produire des ca-

Cractères les uns derrière les autres et ainsi

Les lecteurs encore éveillés auront remarqué que la « grosse lettre » est un peu trop
rapprochée du texte. On peut donc augmenter légèrement la dimension \indletB.
Voici ﬁnalement le code de la lettrine :\newcommand{\lettrine}[1]{%\creerlettrine#1/%\addtolength{\indletB}{3pt}% pour avoir un peu d’espace\setlength{\larligH}{\textwidth-\indletH}%\setlength{\larligB}{\textwidth-\indletB}%\parshape=3%\indletH\larligH\indletB\larligB0cm\textwidth%\noindent\hspace{-\indletH}%\raisebox{-\baselineskip}[0pt][0pt]{\usebox{\lalettrine}}}\newcommand{\sommaire}{%\chapter*{Sommaire}\@starttoc{som}}a pour but de produire des caractères les uns derrière les autres et ainside former des mots donnant lieu à des phrases.

\noindent\hspace{-\indletH}%\raisebox{-\baselineskip}[0pt][0pt]{\usebox{\lalettrine}}qui produira :11.5

e chapitre

C

Puis on intègre la translation verticale :\noindent\hspace{-\indletH}%\raisebox{-\baselineskip}[0pt][0pt]{\usebox{\lalettrine}}\lettrineIII{Ce chapitre} a pour but deproduire des caractères les uns derrière lesautres et ainsi de former des mots donnant
lieu à des phrases.

179

11.29

\lettrineII{Ce chapitre} a pour but de produiredes caractères les uns derrière les autres etainsi de former des mots donnant lieu à desphrases.

11.5 Un sommaire

179

11.28

11.5 Un sommaire

Un sommaire
C’est une pratique courante que le sommaire d’un document rédigé en français soit
placé en tête de document et contienne un condensé de la table des matières. Cette
dernière est quant à elle généralement insérée à la ﬁn. En fouillant dans le ﬁchierbook.cls déﬁnissant la classe éponyme, on trouve une instruction commune aux
commandes \tableofcontents et \listoffigures : la commande \@starttoc.

11\@starttoc{toc}pour la commande \tableofcontents et :\@starttoc{lof}pour la commande \listoffigures. La commande interne \@starttoc permet decommencer un table (matières, ﬁgures, etc.) à partir d’un ﬁchier auxiliaire portantl’extension donnée en argument, ici toc pour la table des matières et lof pour la liste
des ﬁgures. Nous avons donc créé dans un premier temps la commande \sommairecomme suit :\newcommand{\sommaire}{%\chapter*{Sommaire}\@starttoc{som}}11

De nouveaux jouets

180

Le ﬁchier portant l’extension som contiendra les entrées du sommaire. L’étape suivante consiste à remplir le ﬁchier som. Pour cela, il faut savoir que les commandes\chapter, \section, etc. font toutes appel à une commande pour insérer une entréedans la table des matières. Ainsi quand on écrit :Le ﬁchier portant l’extension som contiendra les entrées du sommaire. L’étape suivante consiste à remplir le ﬁchier som. Pour cela, il faut savoir que les commandes\chapter, \section, etc. font toutes appel à une commande pour insérer une entréedans la table des matières. Ainsi quand on écrit :\section{Bidule truc muche}\section{Bidule truc muche}

il sera fait appel à la commande :il sera fait appel à la commande :\addcontentsline{toc}{section}{Bidule truc muche}\addcontentsline{toc}{section}{Bidule truc muche}

pour insérer le titre dans la table des matières. De même lorsqu’on écrit :pour insérer le titre dans la table des matières. De même lorsqu’on écrit :\chapter{Machin chose}\chapter{Machin chose}

il sera fait automatiquement appel à :il sera fait automatiquement appel à :\addcontentsline{toc}{chapter}{Machin chose}\addcontentsline{toc}{chapter}{Machin chose}

Cette dernière commande écrit dans le ﬁchier de table des matières (portant donc
l’extension toc) la ligne :Cette dernière commande écrit dans le ﬁchier de table des matières (portant donc
l’extension toc) la ligne :\contentsline{chapter}{\numberline {1}Machine chose}{3}{chapter.1}\contentsline{chapter}{\numberline {1}Machine chose}{3}{chapter.1}

Et (Hercule Poirot a eu du pain sur la planche), il se trouve que cette dernière
commande, fait ﬁnalement appel à une commande de la forme :Et (Hercule Poirot a eu du pain sur la planche), il se trouve que cette dernière
commande, fait ﬁnalement appel à une commande de la forme :\l@htype d’entréei\l@htype d’entréei

pour produire l’entrée dans la table. Par exemple la commande précédente fait appelà l@chapter. Ceci parce qu’on trouve la déﬁnition suivante :pour produire l’entrée dans la table. Par exemple la commande précédente fait appelà l@chapter. Ceci parce qu’on trouve la déﬁnition suivante :\def\contentsline#1{\csname l@#1\endcsname}\def\contentsline#1{\csname l@#1\endcsname}dans latex.ltx. Nous passons volontairement sous silence le détail de ces commandes, et on se contentera ici de savoir que la commande \l@section produit une
entrée de table de matières pour les sections, \l@subsection produit une entrée
pour les subsections, etc. Pour ﬁnir notre sommaire, il reste à écrire dans le ﬁchierde sommaire. Nous avons choisi d’insérer dans le sommaire les titres de parties,
chapitres et sections. Pour arriver à nos ﬁns, nous avons ajouté cette insertion à lacommande \addcontentsline originale :11

De nouveaux jouets

180% sauvegarde de l ’ originale\let\aclORIG\addcontentsline% redéfinition\renewcommand{\addcontentsline}[3]{%\aclORIG{#1}{#2}{#3}% appel de l’originale\ifthenelse{% on insère sections , chapitres et parties\equal{#2}{section} \or \equal{#2}{chapter}\or \equal{#2}{part}}{%\aclORIG{som}{#2}{#3}}{}}
Il faut noter que notre sommaire sera mis en page exactement de la même manière
que la table des matières, puisque tous deux font appel à la même commandeinterne :\aclORIG{som}{section}{...}
c’est donc la commande \l@section qui sera appelée pour mettre en page l’entrée. Pour
mettre en page le sommaire différemment, il aurait fallu écrire :dans latex.ltx. Nous passons volontairement sous silence le détail de ces commandes, et on se contentera ici de savoir que la commande \l@section produit une
entrée de table de matières pour les sections, \l@subsection produit une entrée
pour les subsections, etc. Pour ﬁnir notre sommaire, il reste à écrire dans le ﬁchierde sommaire. Nous avons choisi d’insérer dans le sommaire les titres de parties,
chapitres et sections. Pour arriver à nos ﬁns, nous avons ajouté cette insertion à lacommande \addcontentsline originale :11% sauvegarde de l ’ originale\let\aclORIG\addcontentsline% redéfinition\renewcommand{\addcontentsline}[3]{%\aclORIG{#1}{#2}{#3}% appel de l’originale\ifthenelse{% on insère sections , chapitres et parties\equal{#2}{section} \or \equal{#2}{chapter}\or \equal{#2}{part}}{%\aclORIG{som}{#2}{#3}}{}}
Il faut noter que notre sommaire sera mis en page exactement de la même manière
que la table des matières, puisque tous deux font appel à la même commandeinterne :\aclORIG{som}{section}{...}
c’est donc la commande \l@section qui sera appelée pour mettre en page l’entrée. Pour
mettre en page le sommaire différemment, il aurait fallu écrire :11.6 Un glossaire

11.6 Un glossaire

181\aclORIG{som}{somsection}{...}\aclORIG{som}{somsection}{...}

puis définir la commande \l@somsection pour mettre en page les entrées de sections
dans le sommaire...

11.6

puis définir la commande \l@somsection pour mettre en page les entrées de sections
dans le sommaire...

Un glossaire

11.6

Il est souvent utile d’agrémenter un document d’un glossaire ayant pour but derendre moins mystérieux les termes du jargon qu’on appelle aussi vocabulaire technique. Nous proposons ici une méthode s’appuyant sur le programme makeindexprésenté au paragraphe 6.3 page 88 et sur le paragraphe 10.1 page 135 présentant
les outils permettant de changer l’allure de l’index.

11.6.1 Tordre le cou à makeindex

De même que pour la création d’un index, on doit mettre dans le préambule du document la commande \makeglossary. Cette commande demande à monsieur LATEX
de bien vouloir créer un ﬁchier portant l’extension glo, réceptacle des entrées deglossaire. On pourra écrire :De même que pour la création d’un index, on doit mettre dans le préambule du document la commande \makeglossary. Cette commande demande à monsieur LATEX
de bien vouloir créer un ﬁchier portant l’extension glo, réceptacle des entrées deglossaire. On pourra écrire :\glossary{machin chouette chose}\glossary{machin chouette chose}pour ajouter « machin chouette chose » dans le glossaire. En réalité cette commandea pour eﬀet d’ajouter dans le ﬁchier d’extension glo, la ligne :pour ajouter « machin chouette chose » dans le glossaire. En réalité cette commandea pour eﬀet d’ajouter dans le ﬁchier d’extension glo, la ligne :\glossaryentry{machin chouette chose}{hno pagei}\glossaryentry{machin chouette chose}{hno pagei}

La phase suivante consiste à produire le glossaire proprement dit grâce au programme
makeindex et au ﬁchier d’entrées de glossaire :La phase suivante consiste à produire le glossaire proprement dit grâce au programme
makeindex et au ﬁchier d’entrées de glossaire :makeindex -s hstyle glossairei hdocumenti.glo -o hdocumenti.glx

makeindex -s hstyle glossairei hdocumenti.glo -o hdocumenti.glx

qui produit, en utilisant comme ﬁchier de style gglo.ist le glossaire suivant :qui produit, en utilisant comme ﬁchier de style gglo.ist le glossaire suivant :\begin{theglossary}\item machin chouette chose\pfill 27\end{theglossary}

1. déﬁnir l’environnement theglossary car rien n’est fait par défaut dans LATEX ;2. produire les entrées avec un terme suivi de sa déﬁnition, sous la forme :\begin{theglossary}\item[htermei] blabla de définition\end{theglossary}
3. supprimer les numéros de pages puisqu’ils n’apparaissent pas dans un glossaire.
Ces trois tâches font l’objet des paragraphes suivants.

Un glossaire
Il est souvent utile d’agrémenter un document d’un glossaire ayant pour but derendre moins mystérieux les termes du jargon qu’on appelle aussi vocabulaire technique. Nous proposons ici une méthode s’appuyant sur le programme makeindexprésenté au paragraphe 6.3 page 88 et sur le paragraphe 10.1 page 135 présentant
les outils permettant de changer l’allure de l’index.

11.6.1 Tordre le cou à makeindex

On note donc que le glossaire — qu’il va falloir insérer explicitement dans notre
document — est constitué par l’environnement theglossary et que chaque entrée
donne lieu à un \item et son numéro de page (ici 27 pour l’exemple). Pour arriverà nos ﬁns, il nous faudra :181\begin{theglossary}\item machin chouette chose\pfill 27\end{theglossary}11

On note donc que le glossaire — qu’il va falloir insérer explicitement dans notre
document — est constitué par l’environnement theglossary et que chaque entrée
donne lieu à un \item et son numéro de page (ici 27 pour l’exemple). Pour arriverà nos ﬁns, il nous faudra :1. déﬁnir l’environnement theglossary car rien n’est fait par défaut dans LATEX ;2. produire les entrées avec un terme suivi de sa déﬁnition, sous la forme :\begin{theglossary}\item[htermei] blabla de définition\end{theglossary}
3. supprimer les numéros de pages puisqu’ils n’apparaissent pas dans un glossaire.
Ces trois tâches font l’objet des paragraphes suivants.

11

De nouveaux jouets

182

11.6.2 Un environnement pour le glossaire

11.6.2 Un environnement pour le glossaire

Au paragraphe 9.5.6 page 132 du chapitre 9, nous avons proposé une liste particulière
permettant de présenter les entrées dans une boîte avec une ombre. La déﬁnitionétait la suivante :Au paragraphe 9.5.6 page 132 du chapitre 9, nous avons proposé une liste particulière
permettant de présenter les entrées dans une boîte avec une ombre. La déﬁnitionétait la suivante :\newenvironment{leglossaire}{\begin{list}{}{%\setlength{\labelwidth}{.5\textwidth}%\setlength{\labelsep}{-.8\labelwidth}%\setlength{\itemindent}{\parindent}%\setlength{\leftmargin}{25pt}%\setlength{\rightmargin}{0pt}%\setlength{\itemsep}{.8\baselineskip}%\renewcommand{\makelabel}[1]{\boiteentreeglossaire{##1}}}}{\end{list}}\newenvironment{leglossaire}{\begin{list}{}{%\setlength{\labelwidth}{.5\textwidth}%\setlength{\labelsep}{-.8\labelwidth}%\setlength{\itemindent}{\parindent}%\setlength{\leftmargin}{25pt}%\setlength{\rightmargin}{0pt}%\setlength{\itemsep}{.8\baselineskip}%\renewcommand{\makelabel}[1]{\boiteentreeglossaire{##1}}}}{\end{list}}

où \boiteentreeglossaire est :où \boiteentreeglossaire est :\newcommand{\boiteentreeglossaire}[1]{%\parbox[b]{\labelwidth}{%\setlength{\fboxsep}{3pt}%\setlength{\fboxrule}{.4pt}%\shadowbox{\sffamily#1}\\\hfill\mbox{}}}\newcommand{\boiteentreeglossaire}[1]{%\parbox[b]{\labelwidth}{%\setlength{\fboxsep}{3pt}%\setlength{\fboxrule}{.4pt}%\shadowbox{\sffamily#1}\\\hfill\mbox{}}}On se reportera au paragraphe mentionné ci-dessus pour les explications de cescommandes. En tous les cas on aura :\begin{leglossaire}\item[Sphère] Patate bien régulière.
\end{leglossaire}

SphèrePatate bien régulière.

11.6.3 Produire le fichier .glx

preamble "\n\\begin{leglossaire}"
postamble "\n\\end{leglossaire}"

Doit également apparaître dans ce ﬁchier de style — que l’on nommera par exemple
glossaire.ist — le mot clef désignant les entrées de glossaire dans le ﬁchier .glo :\newcommand{\entreeglossaire}[2]{\glossary{[#1] #2}}
De telle sorte que :\entreeglossaire{Sphere}{Patate bien régulière.}aura pour eﬀet d’écrire :\glossary{[Sphère] Patate bien régulière.}Patate bien régulière.

De manière à ce que makeindex produise le ﬁchier d’extension glx avec cet environnement on doit écrire le ﬁchier de style suivant :preamble "\n\\begin{leglossaire}"
postamble "\n\\end{leglossaire}"

Pour que chaque entrée soit constituée d’un terme et de sa déﬁnition, nous avons
déﬁni la commande suivante :Sphère11.6.3 Produire le fichier .glx

De manière à ce que makeindex produise le ﬁchier d’extension glx avec cet environnement on doit écrire le ﬁchier de style suivant :keyword "\\glossaryentry"

11.30\begin{leglossaire}\item[Sphère] Patate bien régulière.
\end{leglossaire}

11.30

On se reportera au paragraphe mentionné ci-dessus pour les explications de cescommandes. En tous les cas on aura :11

De nouveaux jouets

182

Doit également apparaître dans ce ﬁchier de style — que l’on nommera par exemple
glossaire.ist — le mot clef désignant les entrées de glossaire dans le ﬁchier .glo :11

keyword "\\glossaryentry"
Pour que chaque entrée soit constituée d’un terme et de sa déﬁnition, nous avons
déﬁni la commande suivante :\newcommand{\entreeglossaire}[2]{\glossary{[#1] #2}}
De telle sorte que :\entreeglossaire{Sphere}{Patate bien régulière.}aura pour eﬀet d’écrire :\glossary{[Sphère] Patate bien régulière.}11.6 Un glossaire

11.6 Un glossaire

183dans le ﬁchier .glo. Après appel de makeindex :dans le ﬁchier .glo. Après appel de makeindex :makeindex -s glossaire.ist hdocumenti.glo -o hdocumenti.glx

makeindex -s glossaire.ist hdocumenti.glo -o hdocumenti.glx

on aura dans le ﬁchier .glx :on aura dans le ﬁchier .glx :\begin{leglossaire}\item [Sphère] Patate bien régulière., hno de pagei\end{leglossaire}\begin{leglossaire}\item [Sphère] Patate bien régulière., hno de pagei\end{leglossaire}

Si vous m’avez bien suivi jusqu’ici, vous devriez râler et me dire : « faudrait p’têt’
voir à enlever cette vilaine virgule et ce numéro de page... » Certes. La virgule est
automatiquement mise par makeindex comme délimiteur « de premier niveau » entre
une entrée d’index et le numéro de page où apparaît cette entrée. Pour utiliser autre
chose qu’une virgule (ici rien en l’occurrence) on écrit dans le ﬁchier de style :Si vous m’avez bien suivi jusqu’ici, vous devriez râler et me dire : « faudrait p’têt’
voir à enlever cette vilaine virgule et ce numéro de page... » Certes. La virgule est
automatiquement mise par makeindex comme délimiteur « de premier niveau » entre
une entrée d’index et le numéro de page où apparaît cette entrée. Pour utiliser autre
chose qu’une virgule (ici rien en l’occurrence) on écrit dans le ﬁchier de style :delim_0 ""delim_0 ""Il reste à régler le cas du numéro de page. La solution que j’ai adoptée consiste àutiliser une commande « absorbante » en guise de mise en forme du numéro de page(cf. § 6.3.3 page 90). Voici la commande\entreeglossaire modiﬁée :Il reste à régler le cas du numéro de page. La solution que j’ai adoptée consiste àutiliser une commande « absorbante » en guise de mise en forme du numéro de page(cf. § 6.3.3 page 90). Voici la commande\entreeglossaire modiﬁée :\newcommand{\pasdenumerodepage}[1]{}% « mange » l’argument\newcommand{\entreeglossaire}[2]{%\glossary{[#1] #2|pasdenumerodepage}}\newcommand{\pasdenumerodepage}[1]{}% « mange » l’argument\newcommand{\entreeglossaire}[2]{%\glossary{[#1] #2|pasdenumerodepage}}

ceci permet de créer le ﬁchier .glx de la forme :ceci permet de créer le ﬁchier .glx de la forme :\begin{leglossaire}\item [Sphère] Patate bien régulière.\pagedenumerodepage{27}\end{leglossaire}\begin{leglossaire}\item [Sphère] Patate bien régulière.\pagedenumerodepage{27}\end{leglossaire}qui enverra le numéro de page (ici 27 pour l’exemple) dans le vide intersidéral.

qui enverra le numéro de page (ici 27 pour l’exemple) dans le vide intersidéral.

11.6.4 Recollons les morceaux

11.6.4 Recollons les morceauxPour en ﬁnir avec le glossaire, il nous faut créer une commande suﬃsamment souple
qui aura essentiellement pour but de produire un chapitre contenant le glossaire,
c’est-à-dire d’insérer dans le document le ﬁchier .glx. On peut décomposer les tâches
à eﬀectuer par la commande en question, comme suit :Pour en ﬁnir avec le glossaire, il nous faut créer une commande suﬃsamment souple
qui aura essentiellement pour but de produire un chapitre contenant le glossaire,
c’est-à-dire d’insérer dans le document le ﬁchier .glx. On peut décomposer les tâches
à eﬀectuer par la commande en question, comme suit :• créer un nouveau chapitre (avec comme titre « glossaire ») ;• lire les entrées de glossaire (commande \entreeglossaire) depuis un ﬁchier ;• insérer le ﬁchier .glx
Voici la commande eﬀectuant ces traitements :\newcommand{\printglossary}[1][glossaire.tex]{%\chapter*{Glossaire}\label{chap-glossaire}\markboth{Glossaire}{Glossaire}% en−tête de page
% insertion dans la table des matières :\addcontentsline{toc}{chapter}{Glossaire}% insertion des entrées de glossaire :183• créer un nouveau chapitre (avec comme titre « glossaire ») ;11

• lire les entrées de glossaire (commande \entreeglossaire) depuis un ﬁchier ;• insérer le ﬁchier .glx
Voici la commande eﬀectuant ces traitements :\newcommand{\printglossary}[1][glossaire.tex]{%\chapter*{Glossaire}\label{chap-glossaire}\markboth{Glossaire}{Glossaire}% en−tête de page
% insertion dans la table des matières :\addcontentsline{toc}{chapter}{Glossaire}% insertion des entrées de glossaire :11

De nouveaux jouets

184\InputIfFileExists{#1}{%\typeout{Données du glossaire}}{%\typeout{Pas de fichier glossaire.tex}}% insertion du fichier . glx\InputIfFileExists{\jobname.glx}{%\typeout{Glossaire trié}}{%\typeout{Pas de fichier \jobname.glx}}\InputIfFileExists{#1}{%\typeout{Données du glossaire}}{%\typeout{Pas de fichier glossaire.tex}}% insertion du fichier . glx\InputIfFileExists{\jobname.glx}{%\typeout{Glossaire trié}}{%\typeout{Pas de fichier \jobname.glx}}}}

On notera les points suivants concernant cette commande :On notera les points suivants concernant cette commande :• le ﬁchier d’entrée de glossaire est par défaut le ﬁchier glossaire.tex ;• le ﬁchier d’entrée de glossaire est par défaut le ﬁchier glossaire.tex ;• on a décidé d’insérer le glossaire dans la table des matières ;• on a décidé d’insérer le glossaire dans la table des matières ;• pour insérer un ﬁchier, on fait appel à la commande \InputIfFileExists
déﬁnie dans le format LATEX ayant la forme suivante :• pour insérer un ﬁchier, on fait appel à la commande \InputIfFileExists
déﬁnie dans le format LATEX ayant la forme suivante :\InputIfFileExists{hfichier à inclurei}{hcode LATEX si le fichier existei}{hcode LATEX si le fichier n’existe pasi}\InputIfFileExists{hfichier à inclurei}{hcode LATEX si le fichier existei}{hcode LATEX si le fichier n’existe pasi}• Enﬁn \jobname contient le nom du ﬁchier (ou document maître) en cours decompilation et la commande \typeout aﬃche un message sur la console decompilation.

• Enﬁn \jobname contient le nom du ﬁchier (ou document maître) en cours decompilation et la commande \typeout aﬃche un message sur la console decompilation.

Enﬁn, le ﬁchier glossaire.ist contient ﬁnalement :Enﬁn, le ﬁchier glossaire.ist contient ﬁnalement :delim_0 ""preamble "\n\\begin{leglossaire}"
postamble "\n\\end{leglossaire}"keyword "\\glossaryentry"

11.7

11

De nouveaux jouets

184

delim_0 ""preamble "\n\\begin{leglossaire}"
postamble "\n\\end{leglossaire}"keyword "\\glossaryentry"

Des onglets
J’avais initialement prévu de mettre en page ce document sur du papier plus petit
que le standard A4 pour ensuite le massicoter. D’où l’idée de créer des onglets,
petits carrés colorés se retrouvant au ras de la feuille après massicotage. Le fait quel’établissement dans lequel je travaille s’est séparé de son massicot hydraulique d’unepart, et que d’autre part tout le monde n’a pas facilement accès à ce type de matériel
m’a fait changer d’avis quant au bien fondé que ce document devait impérativementêtre massicoté. Les onglets sont malgré tout restés dans le document, bien que leurplace n’est plus tout à fait au ras de la feuille. Voici comment ils ont été générés...

11.7.1 Idée retenue
Le cahier des charges est le suivant :

11.7

11

Des onglets
J’avais initialement prévu de mettre en page ce document sur du papier plus petit
que le standard A4 pour ensuite le massicoter. D’où l’idée de créer des onglets,
petits carrés colorés se retrouvant au ras de la feuille après massicotage. Le fait quel’établissement dans lequel je travaille s’est séparé de son massicot hydraulique d’unepart, et que d’autre part tout le monde n’a pas facilement accès à ce type de matériel
m’a fait changer d’avis quant au bien fondé que ce document devait impérativementêtre massicoté. Les onglets sont malgré tout restés dans le document, bien que leurplace n’est plus tout à fait au ras de la feuille. Voici comment ils ont été générés...

11.7.1 Idée retenue
Le cahier des charges est le suivant :• les onglets apparaissent sur chaque page du coté opposé à la reliure ;• les onglets apparaissent sur chaque page du coté opposé à la reliure ;• ils sont produits « à l’envers » sur les pages paires ;• ils sont produits « à l’envers » sur les pages paires ;11.7 Des onglets

11.7 Des onglets

185• ils doivent être à une hauteur proportionnelle au numéro du chapitre.

185• ils doivent être à une hauteur proportionnelle au numéro du chapitre.

D’où l’idée :D’où l’idée :• d’utiliser les fonctionnalités du package fancyhdr pour produire les onglets ;• d’utiliser les fonctionnalités du package fancyhdr pour produire les onglets ;• utiliser des translations verticales pour les positionner ;• utiliser des translations verticales pour les positionner ;11.7.2 Les boîtes dans la marge

11.7.2 Les boîtes dans la marge

De manière à produire les numéros de chapitres dans la marge, j’ai simplement créédes boîtes paragraphe de largeur et hauteur imposées 7 :De manière à produire les numéros de chapitres dans la marge, j’ai simplement créédes boîtes paragraphe de largeur et hauteur imposées 7 :\newlength{\ongletwidth}\newlength{\ongletheight}\setlength{\ongletheight}{32pt}\setlength{\ongletwidth}{.96cm}\newlength{\ongletwidth}\newlength{\ongletheight}\setlength{\ongletheight}{32pt}\setlength{\ongletwidth}{.96cm}

Voici la commande produisant la boîte :Voici la commande produisant la boîte :\newcommand{\b@iteonglet}{%\colorbox[gray]{.7}{% une boîte avec un fond gris contenant% la boîte paragraphe de largeur et hauteur fixée :\parbox[t][\ongletheight][s]{\ongletwidth}{%\vfill%\centering%% on applique un effet miroir selon la parité de la page\ifthenelse{\isodd{\value{page}}}{%\ongletfont\thechapter}{%\reflectbox{\ongletfont\thechapter}}%\vfill}}}\newcommand{\b@iteonglet}{%\colorbox[gray]{.7}{% une boîte avec un fond gris contenant% la boîte paragraphe de largeur et hauteur fixée :\parbox[t][\ongletheight][s]{\ongletwidth}{%\vfill%\centering%% on applique un effet miroir selon la parité de la page\ifthenelse{\isodd{\value{page}}}{%\ongletfont\thechapter}{%\reflectbox{\ongletfont\thechapter}}%\vfill}}}On notera l’utilisation de la commande \reflectbox du package graphicx. On pourraégalement remarquer que le contenu de la boîte paragraphe est centré en hauteur
grâce à deux ressorts verticaux et qu’on insère ﬁnalement dans cette boîte le numéro
du chapitre dans une ◮mystérieuse fonteN enclenchée par la commande \ongletfont.
...

Il est important de noter que les boîtes produites par \colorbox sont assujetties à
la dimension \fboxsep :

11.32

11

7
On remarquera cette maladie des informaticiens de nommer les variables avec des noms àmoitié en français et en anglais...

11

Il est important de noter que les boîtes produites par \colorbox sont assujetties à
la dimension \fboxsep :...

En voici une autre :\setlength{\fboxsep}{15pt}
En voici une autre : \b@iteonglet...

11

11.31

11

...

En voici une autre :\setlength{\fboxsep}{15pt}
En voici une autre : \b@iteonglet...

§ 9.4 p. 121 ◭...

Et voici la boîte :Et voici la boîte : \b@iteonglet...

11.32

11.31

Et voici la boîte :Et voici la boîte : \b@iteonglet...

§ 9.4 p. 121 ◭On notera l’utilisation de la commande \reflectbox du package graphicx. On pourraégalement remarquer que le contenu de la boîte paragraphe est centré en hauteur
grâce à deux ressorts verticaux et qu’on insère ﬁnalement dans cette boîte le numéro
du chapitre dans une ◮mystérieuse fonteN enclenchée par la commande \ongletfont.

11

7
On remarquera cette maladie des informaticiens de nommer les variables avec des noms àmoitié en français et en anglais...

11

186

De nouveaux jouets

186

11.7.3 Position des onglets

11.7.3 Position des onglets

Pour positionner les onglets, il faut eﬀectuer deux translations :Pour positionner les onglets, il faut eﬀectuer deux translations :• une horizontale pour pousser l’onglet jusqu’au bout de la zone de note marginale ;• une horizontale pour pousser l’onglet jusqu’au bout de la zone de note marginale ;• une verticale en fonction du numéro de chapitre.

• une verticale en fonction du numéro de chapitre.

On utilisera le mécanisme de déﬁnition des en-têtes de page du package fancyhdr
pour positionner les onglets. L’idée est simple, on écrit :On utilisera le mécanisme de déﬁnition des en-têtes de page du package fancyhdr
pour positionner les onglets. L’idée est simple, on écrit :\fancyhead[RO]{\bfseries\thepage\onglet}\fancyhead[LE]{\onglet\bfseries\thepage}\fancyhead[RO]{\bfseries\thepage\onglet}\fancyhead[LE]{\onglet\bfseries\thepage}pour dire qu’en plus du numéro de page en gras, on mettra dans l’en-tête le résultat
de la commande \onglet (à droite sur les pages impaires et à gauche sur les pages
paires). Nous allons voir comment construire pas à pas cette commande.

pour dire qu’en plus du numéro de page en gras, on mettra dans l’en-tête le résultat
de la commande \onglet (à droite sur les pages impaires et à gauche sur les pages
paires). Nous allons voir comment construire pas à pas cette commande.

Postionnement horizontal

Postionnement horizontal

Dans le cas des pages impaires, il faut dans un premier temps pousser la boîte del’onglet vers la droite, et vers la gauche pour les pages paires. Qu’à cela ne tienne8 :Dans le cas des pages impaires, il faut dans un premier temps pousser la boîte del’onglet vers la droite, et vers la gauche pour les pages paires. Qu’à cela ne tienne8 :\newcommand{\ongletI}{%\ifthenelse{\isodd{\value{page}}}{%% page impaire\hspace*{\marginparwidth}\hspace*{\marginparsep}}{%% page paire\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\b@iteonglet}\newcommand{\ongletI}{%\ifthenelse{\isodd{\value{page}}}{%% page impaire\hspace*{\marginparwidth}\hspace*{\marginparsep}}{%% page paire\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\b@iteonglet}

Voici ce que donnerait cette commande sur cette page :Voici ce que donnerait cette commande sur cette page :

186

186

11
11

De nouveaux jouets

11
Pour placer correctement le numéro de la page dans l’en-tête, il faut donc « leurrer »LATEX en utilisant une boîte de largeur nulle contenant la boîte de l’onglet et les
espaces de translation horizontale :\newcommand{\ongletII}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{%\hspace*{\marginparwidth}\hspace*{\marginparsep}}{%\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\b@iteonglet}}11

Pour placer correctement le numéro de la page dans l’en-tête, il faut donc « leurrer »LATEX en utilisant une boîte de largeur nulle contenant la boîte de l’onglet et les
espaces de translation horizontale :\newcommand{\ongletII}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{%\hspace*{\marginparwidth}\hspace*{\marginparsep}}{%\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\b@iteonglet}}qui donnerait sur cette page :qui donnerait sur cette page :Je suis toujours très ému de commencer une phrase par le beau ‘Q’ de la police Computer
Modern...

8
Je suis toujours très ému de commencer une phrase par le beau ‘Q’ de la police Computer
Modern...

8

11.7 Des onglets

11.7 Des onglets

187

186

187

186

11
Pour les pages impaires, s’il on veut pousser la boîte de l’onglet contre le bord dela zone réservée aux notes marginales, on doit également tenir compte de la largeur
totale de cette boîte, comme le montre les points de références dans le schéma cidessous :26

Pour les pages impaires, s’il on veut pousser la boîte de l’onglet contre le bord dela zone réservée aux notes marginales, on doit également tenir compte de la largeur
totale de cette boîte, comme le montre les points de références dans le schéma cidessous :

27

26

27

corps du document

corps du document

zones des notes marginales

zones des notes marginales

Par conséquent, le positionnement horizontal est obtenu grâce à la commande :Par conséquent, le positionnement horizontal est obtenu grâce à la commande :\newcommand{\ongletIII}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{% page impaire\hspace*{\marginparwidth}\hspace*{\marginparsep}%\hspace*{-\ongletwidth}\hspace{-2\fboxsep}}{% page paire\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\b@iteonglet}}\newcommand{\ongletIII}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{% page impaire\hspace*{\marginparwidth}\hspace*{\marginparsep}%\hspace*{-\ongletwidth}\hspace{-2\fboxsep}}{% page paire\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\b@iteonglet}}

puisqu’à la largeur de la boîte de l’onglet, il faut rajouter deux fois la dimension\fboxsep induite par la commande \colorbox.

puisqu’à la largeur de la boîte de l’onglet, il faut rajouter deux fois la dimension\fboxsep induite par la commande \colorbox.

Positionnement vertical

Positionnement vertical

Reste maintenant à traiter le problème du positionnement vertical... La commande\raisebox va nous permettre de positionner verticalement l’onglet. De plus avec laforme suivante :Reste maintenant à traiter le problème du positionnement vertical... La commande\raisebox va nous permettre de positionner verticalement l’onglet. De plus avec laforme suivante :\raisebox{hdéplacementi}[0pt][0pt]{hobjet à déplaceri}\raisebox{hdéplacementi}[0pt][0pt]{hobjet à déplaceri}

LAT X

on fait croire à
E que l’hobjet à déplaceri a une hauteur nulle. Il n’y aura
par conséquent pas de déplacement des objets aux alentours et en particulier ceux
constituant l’en-tête de la page. Par exemple, en écrivant :\newcommand{\ongletIV}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{%\hspace*{\marginparwidth}\hspace*{\marginparsep}%\hspace*{-\ongletwidth}\hspace{-2\fboxsep}}{%\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\raisebox{-5cm}[0pt][0pt]{\b@iteonglet}}}On place à partir d’ici un onglet à cinq centimètres vers le bas :11

on fait croire à LATEX que l’hobjet à déplaceri a une hauteur nulle. Il n’y aura
par conséquent pas de déplacement des objets aux alentours et en particulier ceux
constituant l’en-tête de la page. Par exemple, en écrivant :\newcommand{\ongletIV}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{%\hspace*{\marginparwidth}\hspace*{\marginparsep}%\hspace*{-\ongletwidth}\hspace{-2\fboxsep}}{%\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%\raisebox{-5cm}[0pt][0pt]{\b@iteonglet}}}On place à partir d’ici un onglet à cinq centimètres vers le bas :

187

187

11

De nouveaux jouets

188

La méthode choisie pour déﬁnir le placement de la boîte est la suivante : pour lechapitre de numéro c :La méthode choisie pour déﬁnir le placement de la boîte est la suivante : pour lechapitre de numéro c :• se déplacer vers le bas d’une dimension ﬁxe donnée df ;• se déplacer vers le bas d’une dimension ﬁxe donnée df ;• ajouter à ce déplacement un déplacement proportionnel à c. Le déplacement
de l’onglet pour le chapitre c peut s’écrire :• ajouter à ce déplacement un déplacement proportionnel à c. Le déplacement
de l’onglet pour le chapitre c peut s’écrire :c × hhauteur ongleti × α

c × hhauteur ongleti × α

où α est un facteur permettant d’espacer les onglets. Si α = 1, les onglets
seront espacés d’exactement la longueur de la boîte, avec α = 2 ils seront
séparés par un espacement égal à deux fois la hauteur de l’onglet, etc.

où α est un facteur permettant d’espacer les onglets. Si α = 1, les onglets
seront espacés d’exactement la longueur de la boîte, avec α = 2 ils seront
séparés par un espacement égal à deux fois la hauteur de l’onglet, etc.

Voici pour le premier déplacement :Voici pour le premier déplacement :% position de la première étiquette\newlength{\ongletvshift}\setlength{\ongletvshift}{2cm}% position de la première étiquette\newlength{\ongletvshift}\setlength{\ongletvshift}{2cm}Puis pour le facteur alpha :Puis pour le facteur alpha :\newcommand{\ongletsep}{1.37}\newcommand{\ongletsep}{1.37}

On déclare une dimension permettant de positionner l’onglet :On déclare une dimension permettant de positionner l’onglet :\newlength{\ongletpos}\newlength{\ongletpos}

On peut maintenant écrire, la commande \onglet :11

De nouveaux jouets

188\newcommand{\onglet}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{%\hspace*{\marginparwidth}\hspace*{\marginparsep}%\hspace*{-\ongletwidth}\hspace*{-2\fboxsep}%}{%\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%% calcul de la position verticale\setlength{\ongletvpos}{%-\ongletvshift-\ongletheight*\real{\thechapter}*\real{\ongletsep}}%% positionnement de l ’ onglet\raisebox{\ongletvpos}[0pt][0pt]{\b@iteonglet}}}Ouf ! ça marche... Oui pour le chapitre ne faisant pas partie des annexes. Mais pourceux en faisant partie, numérotés A, B, etc. ça ne collera pas. Puisqu’on ne pourra
pas calculer la position verticale en fonction de ces numéros. En petit coup d’œil
dans book.cls nous conﬁrme cela :\newcommand\appendix{\par\setcounter{chapter}{0}%\setcounter{section}{0}%[...]\gdef\thechapter{\@Alph\c@chapter}}On peut maintenant écrire, la commande \onglet :11\newcommand{\onglet}{%\makebox[0pt][l]{%\ifthenelse{\isodd{\value{page}}}{%\hspace*{\marginparwidth}\hspace*{\marginparsep}%\hspace*{-\ongletwidth}\hspace*{-2\fboxsep}%}{%\hspace*{-\marginparwidth}\hspace*{-\marginparsep}}%% calcul de la position verticale\setlength{\ongletvpos}{%-\ongletvshift-\ongletheight*\real{\thechapter}*\real{\ongletsep}}%% positionnement de l ’ onglet\raisebox{\ongletvpos}[0pt][0pt]{\b@iteonglet}}}Ouf ! ça marche... Oui pour le chapitre ne faisant pas partie des annexes. Mais pourceux en faisant partie, numérotés A, B, etc. ça ne collera pas. Puisqu’on ne pourra
pas calculer la position verticale en fonction de ces numéros. En petit coup d’œil
dans book.cls nous conﬁrme cela :\newcommand\appendix{\par\setcounter{chapter}{0}%\setcounter{section}{0}%[...]\gdef\thechapter{\@Alph\c@chapter}}

11.8 Exemples LATEX

11.8 Exemples LATEX

189

on peut comprendre ici que lorsqu’on commence les annexes avec la commande\appendix, le compteur de chapitre est remis à zéro, et produit en lettre majuscule.
Il faut donc trouver une parade pour que l’onglet continue à se décaler même après
les annexes. La solution que j’ai adoptée consiste simplement à utiliser un nouveau
compteur permettant de numéroter les chapitres et les annexes. Pour cela, on ledéclare :on peut comprendre ici que lorsqu’on commence les annexes avec la commande\appendix, le compteur de chapitre est remis à zéro, et produit en lettre majuscule.
Il faut donc trouver une parade pour que l’onglet continue à se décaler même après
les annexes. La solution que j’ai adoptée consiste simplement à utiliser un nouveau
compteur permettant de numéroter les chapitres et les annexes. Pour cela, on ledéclare :\newcounter{chapitre}\newcounter{chapitre}

On précise tout de suite qu’on veut le produire en chiﬀre arabe :On précise tout de suite qu’on veut le produire en chiﬀre arabe :\renewcommand{\thechapitre}{\arabic{chapitre}}\renewcommand{\thechapitre}{\arabic{chapitre}}

On ajoute la mise à zéro de ce compteur dans la commande \frontmatter :On ajoute la mise à zéro de ce compteur dans la commande \frontmatter :\renewcommand\frontmatter{%\cleardoublepage\setcounter{chapitre}{1}[...]}\renewcommand\frontmatter{%\cleardoublepage\setcounter{chapitre}{1}[...]}Puis à chaque appel de la commande \chapter, on incrémente le compteur :Puis à chaque appel de la commande \chapter, on incrémente le compteur :\renewcommand{\chapter}{%\cleardoublepage\stepcounter{chapitre}\thispagestyle{plain}[...]}

Pour clore ce chapitre, nous présenterons
l’environnement \ltxenv{ltxexemple} permettant
d’introduire des exemples de code \LaTeX{}et le résultat dans le document...

11.8

11.33

Exemples LATEXPour clore ce chapitre, nous présenterons
l’environnement \ltxenv{ltxexemple} permettant
d’introduire des exemples de code \LaTeX{}et le résultat dans le document...

Pour clore ce chapitre, nous présenterons l’environnement ltxexemple permettant d’introduire des exemples de code LATEX et le résultat
dans le document...

11.8.1 Outils nécessaires
Le package fancyvrb propose deux fonctionnalités axées autour des ﬁchiers. Toutd’abord, la commande \VerbatimInput permet d’insérer le contenu d’un ﬁchier.
Par exemple :Exemples LATEX
11.33\renewcommand{\chapter}{%\cleardoublepage\stepcounter{chapitre}\thispagestyle{plain}
[...]
}

11.8

189

Pour clore ce chapitre, nous présenterons l’environnement ltxexemple permettant d’introduire des exemples de code LATEX et le résultat
dans le document...

11.8.1 Outils nécessaires

11

Le package fancyvrb propose deux fonctionnalités axées autour des ﬁchiers. Toutd’abord, la commande \VerbatimInput permet d’insérer le contenu d’un ﬁchier.
Par exemple :\VerbatimInput[lastline=4]{corps/jouets.tex}\VerbatimInput[lastline=4]{corps/jouets.tex}

donne (jouets.tex est le ﬁchier source de ce chapitre) :donne (jouets.tex est le ﬁchier source de ce chapitre) :\chapter{De nouveaux jouets}\label{chap-jouets}\chapter{De nouveaux jouets}\label{chap-jouets}\begin{epigraphe}{Le Cantique des cantiques Ct \textbf{7} 11}\begin{epigraphe}{Le Cantique des cantiques Ct \textbf{7} 11}

Ensuite, l’environnement VerbatimOut réalisant la tâche inverse :Ensuite, l’environnement VerbatimOut réalisant la tâche inverse :

11

190

De nouveaux jouets

190\begin{VerbatimOut}{hfichieri}
hcode LATEXi\end{VerbatimOut}\begin{VerbatimOut}{hfichieri}
hcode LATEXi\end{VerbatimOut}

stockera le hcode LATEXi dans le ﬁchier nommé hfichieri.
Le deuxième outil nécessaire est déﬁni en s’inspirant de la déﬁnition des commandes \settowidth, \settoheight, etc. dans le ﬁchier latex.ltx. Il s’agit d’unecommande permettant de récupérer la hauteur totale d’un objet, c’est-à-dire sa
hauteur additionnée de sa profondeur :stockera le hcode LATEXi dans le ﬁchier nommé hfichieri.
Le deuxième outil nécessaire est déﬁni en s’inspirant de la déﬁnition des commandes \settowidth, \settoheight, etc. dans le ﬁchier latex.ltx. Il s’agit d’unecommande permettant de récupérer la hauteur totale d’un objet, c’est-à-dire sa
hauteur additionnée de sa profondeur :\newcommand{\hauteurtotale}[2]{%\setbox\@tempboxa\hbox{{#2}}% sauvegarde de l’objet à mesurer\setlength{#1}{\ht\@tempboxa}% récupération de la hauteur\addtolength{#1}{\dp\@tempboxa}% à laquelle on ajoute la profondeur\setbox\@tempboxa\box\voidb@x}% vidange de la boîte temporaire\newcommand{\hauteurtotale}[2]{%\setbox\@tempboxa\hbox{{#2}}% sauvegarde de l’objet à mesurer\setlength{#1}{\ht\@tempboxa}% récupération de la hauteur\addtolength{#1}{\dp\@tempboxa}% à laquelle on ajoute la profondeur\setbox\@tempboxa\box\voidb@x}% vidange de la boîte temporaire

On notera l’utilisation des commandes TEX, \ht et \dp renvoyant respectivement
la hauteur et la largeur d’une boîte. La commande \setbox et l’équivalent TEX de\savebox. La boîte \@tempboxa est une boîte temporaire utilisée par LATEX et enﬁn,la boîte \voidb@x est une boîte vide.

On notera l’utilisation des commandes TEX, \ht et \dp renvoyant respectivement
la hauteur et la largeur d’une boîte. La commande \setbox et l’équivalent TEX de\savebox. La boîte \@tempboxa est une boîte temporaire utilisée par LATEX et enﬁn,la boîte \voidb@x est une boîte vide.

11.8.2 Le principe de l’environnement ltxexemple

11.8.2 Le principe de l’environnement ltxexemple

L’environnement ltxexemple que nous présentons en début de section, est un peu
plus complexe que ce que nous avons rencontré jusqu’à maintenant. En eﬀet lorsqu’on écrit :L’environnement ltxexemple que nous présentons en début de section, est un peu
plus complexe que ce que nous avons rencontré jusqu’à maintenant. En eﬀet lorsqu’on écrit :\begin{ltxexemple} hcontenui \end{ltxexemple}\begin{ltxexemple} hcontenui \end{ltxexemple}

il faut d’une part pouvoir produire hcontenui tel quel (en verbatim), et d’autre part
pouvoir l’interpréter c’est-à-dire le traiter comme LATEX le ferait. Finalement, on serend compte qu’il faudrait demander à LATEX de traiter deux fois hcontenui ce qui
n’est pas envisageable. Une solution pour contourner ce problème est précisément
de sauvegarder hcontenui dans un ﬁchier pour pouvoir le réutiliser, soit en tant que
verbatim, soit pour être interprété par LATEX. La première diﬃculté à surmonter est
donc de créer un environnement sauvegardant son contenu :il faut d’une part pouvoir produire hcontenui tel quel (en verbatim), et d’autre part
pouvoir l’interpréter c’est-à-dire le traiter comme LATEX le ferait. Finalement, on serend compte qu’il faudrait demander à LATEX de traiter deux fois hcontenui ce qui
n’est pas envisageable. Une solution pour contourner ce problème est précisément
de sauvegarder hcontenui dans un ﬁchier pour pouvoir le réutiliser, soit en tant que
verbatim, soit pour être interprété par LATEX. La première diﬃculté à surmonter est
donc de créer un environnement sauvegardant son contenu :\newenvironment{ltxexemple}{%\VerbatimEnvironment\begin{VerbatimOut}{\jobname.exa}}{% clause begin\end{VerbatimOut}}% clause end

11

De nouveaux jouets

Ne me demandez pas à quoi sert la commande \VerbatimEnvironment non documentée dans le package, mais nécessaire au bon fonctionnement de l’environnement
défini ci-dessus.

Tout cela est bien joli, mais cet environnement ne fait que sauvegarder son contenu
dans un ﬁchier. Il faut donc écrire dans la clause « end » de l’environnement :\end{VerbatimOut}%\VerbatimInput{\jobname.exa}% le contenu tel quel
\input{\jobname.exa}% le contenu interprété par LaTeX
Ainsi :

\newenvironment{ltxexemple}{%\VerbatimEnvironment\begin{VerbatimOut}{\jobname.exa}}{% clause begin\end{VerbatimOut}}% clause end

11

Ne me demandez pas à quoi sert la commande \VerbatimEnvironment non documentée dans le package, mais nécessaire au bon fonctionnement de l’environnement
défini ci-dessus.

Tout cela est bien joli, mais cet environnement ne fait que sauvegarder son contenu
dans un ﬁchier. Il faut donc écrire dans la clause « end » de l’environnement :\end{VerbatimOut}%\VerbatimInput{\jobname.exa}% le contenu tel quel
\input{\jobname.exa}% le contenu interprété par LaTeX
Ainsi :

11.8 Exemples LATEX\begin{ltxexemplei}
du code \LaTeX{}...
\end{ltxexemplei}

11.8 Exemples LATEX

191

donne :

\begin{ltxexemplei}
du code \LaTeX{}...
\end{ltxexemplei}

du code \LaTeX{}...
du code LATEX...

Il reste donc à modiﬁer la mise en page des deux parties. Ce qui fait l’objet duparagraphe suivant.

191

donne :

du code \LaTeX{}...
du code LATEX...

Il reste donc à modiﬁer la mise en page des deux parties. Ce qui fait l’objet duparagraphe suivant.

11.8.3 Mises en boîte

11.8.3 Mises en boîte

L’idée de base consiste à mettre dans deux boîtes :L’idée de base consiste à mettre dans deux boîtes :\newsavebox{\b@iteentree}\newsavebox{\b@itesortie}\newsavebox{\b@iteentree}\newsavebox{\b@itesortie}

pour stocker l’« entrée » (le code) et la « sortie » (le code interprété par LATEX). On
écrira donc dans la clause « end » de l’environnement :pour stocker l’« entrée » (le code) et la « sortie » (le code interprété par LATEX). On
écrira donc dans la clause « end » de l’environnement :[...]\end{VerbatimOut}%\begin{ltxexempleenv}% pour agrandir les marges\savebox{\b@iteentree}{% sauvegarde du code en verbatim\begin{minipage}{.53\linewidth}\VerbatimInput{\jobname.exa}\end{minipage}}%\savebox{\b@itesortie}{% code interprété\begin{minipage}{.44\linewidth}\setlength{\parindent}{10pt}% par défaut 0pt\input{\jobname.exa}\end{minipage}}%\usebox{\b@iteentree}\usebox{\b@itesortie}\end{ltxexempleenv}[...]\end{VerbatimOut}%\begin{ltxexempleenv}% pour agrandir les marges\savebox{\b@iteentree}{% sauvegarde du code en verbatim\begin{minipage}{.53\linewidth}\VerbatimInput{\jobname.exa}\end{minipage}}%\savebox{\b@itesortie}{% code interprété\begin{minipage}{.44\linewidth}\setlength{\parindent}{10pt}% par défaut 0pt\input{\jobname.exa}\end{minipage}}%\usebox{\b@iteentree}\usebox{\b@itesortie}\end{ltxexempleenv}

L’environnement ltxexempleenv est analogue à celui que nous avons présenté auparagraphe concernant l’◮agrandissement des margesN. La seule diﬀérence est qu’il § 11.1.4 p. 167 ◭
bascule en \small et eﬀectue quelques réglages sur les blancs verticaux. On notera
que la boîte « entrée » occupera 53% de la largeur de la page et, la boîte « sortie »44%. Ainsi, le code :\begin{ltxexempleii}
du code \LaTeX{}...
\par\noindent
et c’est tout.
\end{ltxexempleii}

11

L’environnement ltxexempleenv est analogue à celui que nous avons présenté auparagraphe concernant l’◮agrandissement des margesN. La seule diﬀérence est qu’il § 11.1.4 p. 167 ◭
bascule en \small et eﬀectue quelques réglages sur les blancs verticaux. On notera
que la boîte « entrée » occupera 53% de la largeur de la page et, la boîte « sortie »44%. Ainsi, le code :\begin{ltxexempleii}
du code \LaTeX{}...
\par\noindent
et c’est tout.
\end{ltxexempleii}

Donnera :Donnera :du code \LaTeX{}...
\par\noindent
et c’est tout.

du code \LaTeX{}...
\par\noindent
et c’est tout.

du code LATEX...
et c’est tout.

Nous avons mis des bordures aux ras des deux boîtes « entrée » et « sortie » pourmettre en évidence leurs dimensions. On peut également noter ici que la clause« begin » de l’environnement est en réalité déﬁnie comme suit :11

du code LATEX...
et c’est tout.

Nous avons mis des bordures aux ras des deux boîtes « entrée » et « sortie » pourmettre en évidence leurs dimensions. On peut également noter ici que la clause« begin » de l’environnement est en réalité déﬁnie comme suit :De nouveaux jouets

192\pagebreak[3]% on suggère de changer de page ici\VerbatimEnvironment%\begin{VerbatimOut}[gobble=2]{\jobname.exa}\pagebreak[3]% on suggère de changer de page ici\VerbatimEnvironment%\begin{VerbatimOut}[gobble=2]{\jobname.exa}

L’option [gobble=2] permet de « manger » systématiquement deux caractères audébut de chaque ligne car tout bon éditeur9 ajoute des espaces pour l’indentation
du source. Ainsi le code :L’option [gobble=2] permet de « manger » systématiquement deux caractères audébut de chaque ligne car tout bon éditeur9 ajoute des espaces pour l’indentation
du source. Ainsi le code :\begin{ltxexempleii}
du code \LaTeX{}...
\par\noindent
et c’est tout.
\end{ltxexempleii}\begin{ltxexempleii}
du code \LaTeX{}...
\par\noindent
et c’est tout.
\end{ltxexempleii}

donnerait :code \LaTeX{}...
ar\noindent
c’est tout.

donnerait :code \LaTeX{}...
ar\noindent
c’est tout.

code LATEX... arc’est tout.

La suite de la mise en page consiste en la création du trait central. Ceci fait l’objet duparagraphe 11.8.5 page 194. Avant cela nous nous attarderons sur la numérotation
des exemples.

Pour numéroter les exemples, il est nécessaire de déclarer un Ncompteur◭ :11.8.4 Numérotation des exemples◮ § 4.1 p. 51\newcounter{c@exemple}[chapter]qui sera donc remis à zéro à chaque chapitre. On précise la manière dont il s’aﬃchera
lorsqu’on y fera référence :\renewcommand{\thec@exemple}{\thechapter.\arabic{c@exemple}}\renewcommand{\thec@exemple}{\thechapter.\arabic{c@exemple}}À chaque appel à l’environnement ltxexemple, on fera appel à :À chaque appel à l’environnement ltxexemple, on fera appel à :\refstepcounter{c@exemple}

11\newcommand{\affichenumex}{%\raisebox{-1.7pt}[0pt][0pt]{%\setlength{\fboxsep}{.7pt}%\colorbox{black}{%← la boîte noire\makebox[\l@rgeurnumex]{%← une boîte de largeur fixée (16 pt)\color{white}%← le contenu en blanc\tiny\textsf{\thec@exemple}}}}}
Ainsi :
9

Je veux bien sûr parler de //vi, pardon, Emacs...

Pour numéroter les exemples, il est nécessaire de déclarer un Ncompteur◭ :\newcounter{c@exemple}[chapter]qui sera donc remis à zéro à chaque chapitre. On précise la manière dont il s’aﬃchera
lorsqu’on y fera référence :pour incrémenter le compteur et mettre à jour le système de référence. La petiteboîte noire que vous avez pu apercevoir au milieu des exemples a pour largeur\l@rgeurnumex (déﬁnie à 16 points) et est produite par :code LATEX... arc’est tout.

La suite de la mise en page consiste en la création du trait central. Ceci fait l’objet duparagraphe 11.8.5 page 194. Avant cela nous nous attarderons sur la numérotation
des exemples.

11.8.4 Numérotation des exemples◮ § 4.1 p. 51

De nouveaux jouets

192\refstepcounter{c@exemple}

11

pour incrémenter le compteur et mettre à jour le système de référence. La petiteboîte noire que vous avez pu apercevoir au milieu des exemples a pour largeur\l@rgeurnumex (déﬁnie à 16 points) et est produite par :\newcommand{\affichenumex}{%\raisebox{-1.7pt}[0pt][0pt]{%\setlength{\fboxsep}{.7pt}%\colorbox{black}{%← la boîte noire\makebox[\l@rgeurnumex]{%← une boîte de largeur fixée (16 pt)\color{white}%← le contenu en blanc\tiny\textsf{\thec@exemple}}}}}
Ainsi :
9

Je veux bien sûr parler de //vi, pardon, Emacs...

11.36

La petite boîte (\affichenumex)

La petite boîte ( 11.36 )Un nouvelle version de l’environnement ltxexemple pourrait donc être :\newenvironment{ltxexempleiii}{%\VerbatimEnvironment%\begin{VerbatimOut}[gobble=2]{\jobname.exa}}{%\end{VerbatimOut}%\begin{ltxexempleenv}%\refstepcounter{c@exemple}%← incrémentation du compteur\savebox{\b@iteentree}{ [...] }%\savebox{\b@itesortie}{ [...] }%\usebox{\b@iteentree}%\kern2pt%\parbox{3pt}{\rotatebox{90}{\affichenumex}}%\kern2pt%\usebox{\b@itesortie}\end{ltxexempleenv}}%\setlength{\fboxsep}{-2pt}\setlength{\fboxrule}{.5mm}
Ceci est un \fbox{EXEMPLE} idiot...

Ceci est un EXEMPLE idiot...

La dernière diﬃculté est de gérer le système de référencement. En eﬀet, on ne peutpas écrire :11.37

qui donnera :11.37

qui donnera :Ceci est un EXEMPLE idiot...

La dernière diﬃculté est de gérer le système de référencement. En eﬀet, on ne peutpas écrire :Voici un exemple.\label{monexemple}.

Voici un exemple.\label{monexemple}.

11.38

Puisque la séquence « \label{monexemple} » apparaîtra dans l’exemple :Voici un exemple.\label{monexemple}

La petite boîte ( 11.36 )Un nouvelle version de l’environnement ltxexemple pourrait donc être :\newenvironment{ltxexempleiii}{%\VerbatimEnvironment%\begin{VerbatimOut}[gobble=2]{\jobname.exa}}{%\end{VerbatimOut}%\begin{ltxexempleenv}%\refstepcounter{c@exemple}%← incrémentation du compteur\savebox{\b@iteentree}{ [...] }%\savebox{\b@itesortie}{ [...] }%\usebox{\b@iteentree}%\kern2pt%\parbox{3pt}{\rotatebox{90}{\affichenumex}}%\kern2pt%\usebox{\b@itesortie}\end{ltxexempleenv}}%\setlength{\fboxsep}{-2pt}\setlength{\fboxrule}{.5mm}
Ceci est un \fbox{EXEMPLE} idiot...

193

Puisque la séquence « \label{monexemple} » apparaîtra dans l’exemple :Voici un exemple.\label{monexemple}

Voici un exemple.

Ce qui n’est pas souhaitable... La solution adoptée ici a été de passer l’éventuelleétiquette de \label à l’environnement par le truchement d’une commande. On a
déﬁni :
\newcommand{\l@belex}{} % la valeur courante du label\newcommand{\labelexemple}[1]{% commande pour la mettre à jour\renewcommand{\l@belex}{#1}}
Ainsi avant l’utilisation d’un environnement ltxexemple il suﬃra d’appeler :\labelexemple{hétiquettei}

11.38

La petite boîte (\affichenumex)

11.8 Exemples LATEX

193

11.36

11.8 Exemples LATEX

Voici un exemple.

Ce qui n’est pas souhaitable... La solution adoptée ici a été de passer l’éventuelleétiquette de \label à l’environnement par le truchement d’une commande. On a
déﬁni :

11

\newcommand{\l@belex}{} % la valeur courante du label\newcommand{\labelexemple}[1]{% commande pour la mettre à jour\renewcommand{\l@belex}{#1}}
Ainsi avant l’utilisation d’un environnement ltxexemple il suﬃra d’appeler :\labelexemple{hétiquettei}

pour pouvoir ensuite y faire référence avec \ref{hétiquettei} ou une commandeéquivalente. Dans la déﬁnition de l’environnement ltxexemple, on a ajouté :pour pouvoir ensuite y faire référence avec \ref{hétiquettei} ou une commandeéquivalente. Dans la déﬁnition de l’environnement ltxexemple, on a ajouté :\ifthenelse{\equal{\l@belex}{}}{}{% si le label courant n’est pas vide\label{\l@belex}}% on pose un label\ifthenelse{\equal{\l@belex}{}}{}{% si le label courant n’est pas vide\label{\l@belex}}% on pose un label

qui signiﬁe en français : « si la commande \l@belex est déﬁnie à une valeur nonvide, on pose une étiquette (commande \label) avec cette valeur ». Il faut ensuite
repositionner la commande \l@belex à une valeur vide car dans le cas contrairequi signiﬁe en français : « si la commande \l@belex est déﬁnie à une valeur nonvide, on pose une étiquette (commande \label) avec cette valeur ». Il faut ensuite
repositionner la commande \l@belex à une valeur vide car dans le cas contraire

11

194

De nouveaux jouets

194l’étiquette serait déﬁnie plusieurs fois (message « Label ‘xxx’ multiply deﬁned » de
LATEX). On pourrait donc écrire :l’étiquette serait déﬁnie plusieurs fois (message « Label ‘xxx’ multiply deﬁned » de
LATEX). On pourrait donc écrire :\ifthenelse{\equal{\l@belex}{}}{}{% si le label courant n’est pas vide\label{\l@belex}% on pose un label\renewcommand{\l@belex}{}}\ifthenelse{\equal{\l@belex}{}}{}{% si le label courant n’est pas vide\label{\l@belex}% on pose un label\renewcommand{\l@belex}{}}ce qui est correct du point de vue de la syntaxe. Cependant la portée de la commande\renewcommand est ici locale au groupe dans lequel le test \ifthenelse intervient.
Pour contourner ce problème on utilisera la construction TEX :ce qui est correct du point de vue de la syntaxe. Cependant la portée de la commande\renewcommand est ici locale au groupe dans lequel le test \ifthenelse intervient.
Pour contourner ce problème on utilisera la construction TEX :\global\def\l@belex{}\global\def\l@belex{}

en lieu et place du \renewcommand pour eﬀectuer une redéﬁnition à portée globale...

en lieu et place du \renewcommand pour eﬀectuer une redéﬁnition à portée globale...

11.8.5 Le trait central

11.8.5 Le trait central

Il reste donc à traiter la partie ayant pour but de tracer le vilain trait entre les deuxboîtes. La première chose à faire est de mesurer la hauteur totale des deux boîtes,et de conserver la plus importante. Ceci est réalisé grâce au code suivant :Il reste donc à traiter la partie ayant pour but de tracer le vilain trait entre les deuxboîtes. La première chose à faire est de mesurer la hauteur totale des deux boîtes,et de conserver la plus importante. Ceci est réalisé grâce au code suivant :% mesure de la boîte d’ entrée\hauteurtotale{\tempodim}{\usebox{\b@iteentree}}%% mesure de la boîte de sortie\hauteurtotale{\hauteurdutrait}{\usebox{\b@itesortie}}%% on garde la plus grande\ifthenelse{\hauteurdutrait>\tempodim}{%\setlength{\tempodim}{\hauteurdutrait}}{}% mesure de la boîte d’ entrée\hauteurtotale{\tempodim}{\usebox{\b@iteentree}}%% mesure de la boîte de sortie\hauteurtotale{\hauteurdutrait}{\usebox{\b@itesortie}}%% on garde la plus grande\ifthenelse{\hauteurdutrait>\tempodim}{%\setlength{\tempodim}{\hauteurdutrait}}{}Les dimensions \hauteurdutrait et \tempodim auront bien entendu fait l’objet
d’une déclaration préalable. La commande \settotoalheight est quant à elle présentée au paragraphe 11.8.1.
La dimension du trait noir à tracer entre l’entrée et la sortie correspond exactement \hauteurtrait moins \l@rgeurnumex (la largeur de la boîte contenant lenuméro de l’exemple). On stocke cette dimension :Les dimensions \hauteurdutrait et \tempodim auront bien entendu fait l’objet
d’une déclaration préalable. La commande \settotoalheight est quant à elle présentée au paragraphe 11.8.1.
La dimension du trait noir à tracer entre l’entrée et la sortie correspond exactement \hauteurtrait moins \l@rgeurnumex (la largeur de la boîte contenant lenuméro de l’exemple). On stocke cette dimension :% hauteur du trait sans la boîte du numéro\setlength{\hauteurdutrait}{\tempodim-\l@rgeurnumex}% hauteur du trait sans la boîte du numéro\setlength{\hauteurdutrait}{\tempodim-\l@rgeurnumex}

Nous avons décidé après un vote à bulletin secret en assemblée générale, de dessiner
70% du trait au dessus du numéro et 30% en dessous. Par conséquent le trait central
est produit dans un \parbox comme suit :11

De nouveaux jouets% le trait central\parbox{3pt}{%\begin{center}\rule{3pt}{.7\hauteurdutrait}\\\nointerlineskip% 70% au dessus\rotatebox{90}{\affichenumex}\\\nointerlineskip%\rule{3pt}{.3\hauteurdutrait}% 30% en dessous\end{center}}

La commande \nointerlineskip permet de supprimer tout blanc vertical supplémentaire qui pourrait être inséré par la commande \\. Plus de détails sont donnés◮ § 10.7.4 p. 158 à la section présentant l’implémentation de la Nboîte avec titre◭ pour la minitable
des matières.

Nous avons décidé après un vote à bulletin secret en assemblée générale, de dessiner
70% du trait au dessus du numéro et 30% en dessous. Par conséquent le trait central
est produit dans un \parbox comme suit :11% le trait central\parbox{3pt}{%\begin{center}\rule{3pt}{.7\hauteurdutrait}\\\nointerlineskip% 70% au dessus\rotatebox{90}{\affichenumex}\\\nointerlineskip%\rule{3pt}{.3\hauteurdutrait}% 30% en dessous\end{center}}

La commande \nointerlineskip permet de supprimer tout blanc vertical supplémentaire qui pourrait être inséré par la commande \\. Plus de détails sont donnés◮ § 10.7.4 p. 158 à la section présentant l’implémentation de la Nboîte avec titre◭ pour la minitable
des matières.

11.8 Exemples LATEX

11.8 Exemples LATEX

195

11.39

Voilà, c’est tout pour ce merveilleux
Voilà, c’est tout pour ce merveilleux environenvironnement \ltxenv{ltexexemple}. Notez que la nement ltexexemple. Notez que la dimension
dimension \texttt{3pt} pourrait faire l’objet
3pt pourrait faire l’objet de la déﬁnition d’unede la définition d’une longueur...
longueur...

11.39

Voilà, c’est tout pour ce merveilleux
Voilà, c’est tout pour ce merveilleux environenvironnement \ltxenv{ltexexemple}. Notez que la nement ltexexemple. Notez que la dimension
dimension \texttt{3pt} pourrait faire l’objet
3pt pourrait faire l’objet de la déﬁnition d’unede la définition d’une longueur...
longueur...

195

11

11

III

III

Annexes

AnnexesA

A

Générer des « pdf »Sommaire

Sommaire

A.1

Principe général

A.1

Principe général

A.2

Ce qui change

A.2

Ce qui change

A.3

Trucs et astuces

A.3

Trucs et astuces

A.4

Hyperliens

A.4

Hyperliens

A.5

Interaction avec psfrag et pstricks

A.5

Interaction avec psfrag et pstricks

ette annexe présente un moyen de générer des documents au format Pdf (por-ette annexe présente un moyen de générer des documents au format Pdf (por-C table document format). Ce format créé par la société Adobe présente l’avantage

C table document format). Ce format créé par la société Adobe présente l’avantaged’être eﬀectivement portable d’un ordinateur à un autre, et de manière plus générale, d’un système d’exploitation à un autre. Il est donc intéressant aujourd’hui depouvoir générer de tels ﬁchiers à partir d’un source LATEX.

A.1

Générer des « pdf »d’être eﬀectivement portable d’un ordinateur à un autre, et de manière plus générale, d’un système d’exploitation à un autre. Il est donc intéressant aujourd’hui depouvoir générer de tels ﬁchiers à partir d’un source LATEX.

Principe général

A.1

Principe général

Il y a au moins trois façons de générer des ﬁchiers au format Pdf à partir d’un
document LATEX :Il y a au moins trois façons de générer des ﬁchiers au format Pdf à partir d’un
document LATEX :1. à l’aide de pdflatex qui s’utilise en lieu et place du programme latex pourtraduire le source LATEX en Pdf ;1. à l’aide de pdflatex qui s’utilise en lieu et place du programme latex pourtraduire le source LATEX en Pdf ;2. à l’aide de dvipdf permettant de traduire le ﬁchier Dvi en Pdf ;2. à l’aide de dvipdf permettant de traduire le ﬁchier Dvi en Pdf ;3. à l’aide de ps2pdf pour traduire une sortie PostScript en Pdf.

3. à l’aide de ps2pdf pour traduire une sortie PostScript en Pdf.

Votre serviteur qui a une certaine expérience de la première solution s’attardera sur
pdflatex. Un des pré-requis pour une utilisation correcte de ce logiciel est

A

Votre serviteur qui a une certaine expérience de la première solution s’attardera sur
pdflatex. Un des pré-requis pour une utilisation correcte de ce logiciel est• soit l’utilisation du package lmodern ;• soit l’utilisation du package lmodern ;• soit l’installation de l’extension « CM-Super font » de Vladimir Volovich. La distribution Etch de la Debian contient un paquet prêt à l’emploi. On peut également trouver des documentations sur le ouèbe permettant d’installer cette extension
sur une distribution Debian Sarge avec teTEX (http://sravier.free.fr/linux/
debian_latex_cm-super.html).

• soit l’installation de l’extension « CM-Super font » de Vladimir Volovich. La distribution Etch de la Debian contient un paquet prêt à l’emploi. On peut également trouver des documentations sur le ouèbe permettant d’installer cette extension
sur une distribution Debian Sarge avec teTEX (http://sravier.free.fr/linux/
debian_latex_cm-super.html).

199

199

A

Générer des « pdf »200

A.2 Ce qui change

A.2 Ce qui change

Pour compiler le ﬁchier source LATEX et produire un ﬁchier au format Pdf, on utilisera
le programme pdflatex :Pour compiler le ﬁchier source LATEX et produire un ﬁchier au format Pdf, on utilisera
le programme pdflatex :pdflatex monfichier.tex

pdflatex monfichier.tex

commande qui, si le document source ne contient pas d’erreur, créera le ﬁchiernommé monfichier.pdf. Voici ensuite quelques remarques importantes :commande qui, si le document source ne contient pas d’erreur, créera le ﬁchiernommé monfichier.pdf. Voici ensuite quelques remarques importantes :Graphiques : ils devront être inclus au format Png ou Jpeg pour les images et Pdf
pour les dessins1 ;Graphiques : ils devront être inclus au format Png ou Jpeg pour les images et Pdf
pour les dessins1 ;Liens : à condition d’inclure le package hyperref, le document Pdf contiendra automatiquement des liens à chaque occurrence de la commande \ref, dans latable des matières, dans l’index, etc. De plus une table des matières déroulantesera générée pour le programme Acrobat Reader.

Liens : à condition d’inclure le package hyperref, le document Pdf contiendra automatiquement des liens à chaque occurrence de la commande \ref, dans latable des matières, dans l’index, etc. De plus une table des matières déroulantesera générée pour le programme Acrobat Reader.

A.3 Trucs et astuces

A.3 Trucs et astuces

Puisqu’on génère souvent du Dvi ou du Pdf à partir du même source et que l’on doit
inclure des ﬁchiers graphiques à des formats diﬀérents selon la situation, on utilisera
le package ifpdf et l’astuce suivante :Puisqu’on génère souvent du Dvi ou du Pdf à partir du même source et que l’on doit
inclure des ﬁchiers graphiques à des formats diﬀérents selon la situation, on utilisera
le package ifpdf et l’astuce suivante :\ifpdf% un truc spécifique à la sortie en pdf\else% un machin spécifique à la sortie en dvi\fi\ifpdf% un truc spécifique à la sortie en pdf\else% un machin spécifique à la sortie en dvi\fi

A.3.1 Gestion des graphiquesA

Générer des « pdf »200

A.3.1 Gestion des graphiques

On pourra écrire ensuite quelque chose du genre :On pourra écrire ensuite quelque chose du genre :\ifpdf\graphicspath{{pngs/}{{pdfs/}}\else\graphicspath{{epss}}\fi\ifpdf\graphicspath{{pngs/}{{pdfs/}}\else\graphicspath{{epss}}\fi

Si on a pris soin de ranger les ﬁchiers graphiques dans les répertoires pngs, pdfs et
epss... Ce nouveau « if » permet également des constructions du style :Si on a pris soin de ranger les ﬁchiers graphiques dans les répertoires pngs, pdfs et
epss... Ce nouveau « if » permet également des constructions du style :\ifpdf\includegraphics[pdftex]{graphicx}\else\includegraphics{graphicx}\fi
Ce qui ne doit pas être nécessaire avec les dernières moutures de LATEX.
1

Les fichiers du logiciel Xfig peuvent être convertis en Pdf

A\ifpdf\includegraphics[pdftex]{graphicx}\else\includegraphics{graphicx}\fi
Ce qui ne doit pas être nécessaire avec les dernières moutures de LATEX.
1

Les fichiers du logiciel Xfig peuvent être convertis en Pdf

A.3 Trucs et astuces

A.3 Trucs et astuces

201

A.3.2 Vignettes

201

A.3.2 Vignettes

Les versions récentes de pdflatex permettent de créer des vignettes (thumbnail ) pourles visualiseurs evince et Acrobat Reader pour ne citer qu’eux. Auparavant, il était
nécessaire d’utiliser le package thumbpdf :Les versions récentes de pdflatex permettent de créer des vignettes (thumbnail ) pourles visualiseurs evince et Acrobat Reader pour ne citer qu’eux. Auparavant, il était
nécessaire d’utiliser le package thumbpdf :\usepackage{thumbpdf}\usepackage{thumbpdf}

puis exécuter :puis exécuter :thumbpdf monfichier.pdf

thumbpdf monfichier.pdf

Cette commande crée un ﬁchier nommé monfichier.tpt qui sera inclus à la compilation suivante avec pdflatex.

Cette commande crée un ﬁchier nommé monfichier.tpt qui sera inclus à la compilation suivante avec pdflatex.

A.3.3 Pagination

A.3.3 Pagination

Pour faire apparaître les numéros de pages du document dans le navigateur Acrobat
Reader, il est nécessaire d’ajouter l’option pdfpagelabels à l’inclusion du package
hyperref (cf. § suivant).

Pour faire apparaître les numéros de pages du document dans le navigateur Acrobat
Reader, il est nécessaire d’ajouter l’option pdfpagelabels à l’inclusion du package
hyperref (cf. § suivant).

A.3.4 Signets

A.3.4 Signets

Les signets (bookmarks en anglais) des visualiseurs de ﬁchier pdf sont des sortesd’« explorateurs de table des matières » qui donnent accès directement à une sectiond’un niveau déterminé. Il y a eu deux diﬃcultés à contourner pour produire ce
manuel :Les signets (bookmarks en anglais) des visualiseurs de ﬁchier pdf sont des sortesd’« explorateurs de table des matières » qui donnent accès directement à une sectiond’un niveau déterminé. Il y a eu deux diﬃcultés à contourner pour produire ce
manuel :1. faire en sorte que le contenu du « backmatter » (biblio, glossaire, index) soit aumême niveau hiérarchique que les « parties » dans cet explorateur. Par défaut,ces informations se trouvent en eﬀet « cachées » dans la partie des annexes, carà la même profondeur que les \chapters ;1. faire en sorte que le contenu du « backmatter » (biblio, glossaire, index) soit aumême niveau hiérarchique que les « parties » dans cet explorateur. Par défaut,ces informations se trouvent en eﬀet « cachées » dans la partie des annexes, carà la même profondeur que les \chapters ;2. faire en sorte que le lien vers l’index dans les signets pointe eﬀectivement sur
l’index...

2. faire en sorte que le lien vers l’index dans les signets pointe eﬀectivement sur
l’index...

Pour régler le premier problème, il suﬃt de faire croire à LATEX qu’à partir du« backmatter » les chapitres sont d’un même niveau de profondeur dans la table desmatières, que les parties. L’incantation vaudou correspondante est :Pour régler le premier problème, il suﬃt de faire croire à LATEX qu’à partir du« backmatter » les chapitres sont d’un même niveau de profondeur dans la table desmatières, que les parties. L’incantation vaudou correspondante est :\renewcommand{\toclevel@chapter}{-1}à placer à un endroit judicieux dans un ﬁchier de style. L’endroit où l’on redéﬁnit
le ◮\backmatterN est sans nul doute un bon choix.

\renewcommand{\toclevel@chapter}{-1}10.4.4 p. 149 ◭Pour en finir avec les bookmarks, afin que celui de l’index pointe effectivement sur
l’index (!), on devra cette fois avoir recours à une incantation chamanique :\let\printindexORIG\printindex\renewcommand{\printindex}{%\cleardoublepage\phantomsection% création d’une fausse section\addcontentsline{toc}{chapter}{Index}\printindexORIG}
permettant de surcharger la commande \printindex en y ajoutant une fausse section
à l’aide de la commande \phantomsection fournie avec le package hyperref. Ne m’en
demandez pas plus :-)à placer à un endroit judicieux dans un ﬁchier de style. L’endroit où l’on redéﬁnit
le ◮\backmatterN est sans nul doute un bon choix.

10.4.4 p. 149 ◭Pour en finir avec les bookmarks, afin que celui de l’index pointe effectivement sur
l’index (!), on devra cette fois avoir recours à une incantation chamanique :A\let\printindexORIG\printindex\renewcommand{\printindex}{%\cleardoublepage\phantomsection% création d’une fausse section\addcontentsline{toc}{chapter}{Index}\printindexORIG}
permettant de surcharger la commande \printindex en y ajoutant une fausse section
à l’aide de la commande \phantomsection fournie avec le package hyperref. Ne m’en
demandez pas plus :-)

A

202

Générer des « pdf »202

A.4 Hyperliens

A.4 Hyperliens

Le package hyperref permet d’insérer dans les ﬁchiers .dvi et .pdf des commandes
spéciales qui pourront être exploitées par les navigateurs (xdvi et Acrobat Reader
entre autres). On pourra alors cliquer sur le texte produit par les commandes tellesque \ref pour se rendre automatiquement à la zone référencée. Dans le document
que vous avez sous les yeux, la version électronique possède des liens sur lesquels on
peut cliquer pour :Le package hyperref permet d’insérer dans les ﬁchiers .dvi et .pdf des commandes
spéciales qui pourront être exploitées par les navigateurs (xdvi et Acrobat Reader
entre autres). On pourra alors cliquer sur le texte produit par les commandes tellesque \ref pour se rendre automatiquement à la zone référencée. Dans le document
que vous avez sous les yeux, la version électronique possède des liens sur lesquels on
peut cliquer pour :• toutes les références générées par \ref, \pageref et \vref ;• toutes les références générées par \ref, \pageref et \vref ;• les notes de bas de page ;• les notes de bas de page ;• les url produites par la commande \url ;• les url produites par la commande \url ;• les renvois bibliographiques ;• les renvois bibliographiques ;• les pages pour chaque entrée d’index.

• les pages pour chaque entrée d’index.

Pour activer ce système d’hyperliens, on écrira :Pour activer ce système d’hyperliens, on écrira :\ifpdf\usepackage[pdftex=true,
hyperindex=true,
colorlinks=true]{hyperref}\else\usepackage[hypertex=true,
hyperindex=true,
colorlinks=false]{hyperref}\fi\ifpdf\usepackage[pdftex=true,
hyperindex=true,
colorlinks=true]{hyperref}\else\usepackage[hypertex=true,
hyperindex=true,
colorlinks=false]{hyperref}\fi

Ce qui fera apparaître les liens en couleur uniquement dans la version Pdf. Ceux
de la version PostScript seront quant à eux produits en noir ce qui assurera leurlisibilité si le document est imprimé en noir et blanc.

Ce qui fera apparaître les liens en couleur uniquement dans la version Pdf. Ceux
de la version PostScript seront quant à eux produits en noir ce qui assurera leurlisibilité si le document est imprimé en noir et blanc.

L’ordre dans lequel on inclura les différents packages pour un document influera
sur le bon fonctionnement de l’extension hyperref. Il arrive même que l’endroit
choisi pour l’inclusion provoque une erreur de compilation. À vous de trouver la bonneséquence :-)L’ordre dans lequel on inclura les différents packages pour un document influera
sur le bon fonctionnement de l’extension hyperref. Il arrive même que l’endroit
choisi pour l’inclusion provoque une erreur de compilation. À vous de trouver la bonneséquence :-)A.5 Interaction avec psfrag et pstricks

A.5 Interaction avec psfrag et pstricks

A.5.1 pstricksA

Générer des « pdf »To trick en anglais, ou « tricher » en français... En gros en écrivant ça :Soit :\begin{pspicture}[](-1,-1)(1,1)\parametricplot[linewidth=.5pt,plotstyle=ccurve]%{0}{360}{4 t mul sin 3 t mul sin}
\psgrid[gridlabels=0pt](-1,-1)(1,1)\end{pspicture}\quad le tracé de $x=\sin(4t), y=\sin(3t)$...

A.5.1 pstricks

A

To trick en anglais, ou « tricher » en français... En gros en écrivant ça :Soit :\begin{pspicture}[](-1,-1)(1,1)\parametricplot[linewidth=.5pt,plotstyle=ccurve]%{0}{360}{4 t mul sin 3 t mul sin}
\psgrid[gridlabels=0pt](-1,-1)(1,1)\end{pspicture}\quad le tracé de $x=\sin(4t), y=\sin(3t)$...

A.5 Interaction avec psfrag et pstricks

A.5 Interaction avec psfrag et pstricks203

On obtient ça :Soit :

203

On obtient ça :Soit :

le tracé de x = sin(4t), y = sin(3t)...

le tracé de x = sin(4t), y = sin(3t)...

Dingue, non ? Certes. Le principe de l’extension pstricks est d’insérer du code
PostScript dans le ﬁchier .dvi, code qui pourra être également traité par le programme dvips. Là où ça se corse c’est lorsque l’on veut utiliser ces bestioles avec
pdflatex. En eﬀet ce dernier créant directement un ﬁchier .pdf à partir du .tex,
insérer du PostScript dans le ﬁchier au format Pdf n’aura aucun eﬀet... Il est malgré
tout possible de contourner le problème :Dingue, non ? Certes. Le principe de l’extension pstricks est d’insérer du code
PostScript dans le ﬁchier .dvi, code qui pourra être également traité par le programme dvips. Là où ça se corse c’est lorsque l’on veut utiliser ces bestioles avec
pdflatex. En eﬀet ce dernier créant directement un ﬁchier .pdf à partir du .tex,
insérer du PostScript dans le ﬁchier au format Pdf n’aura aucun eﬀet... Il est malgré
tout possible de contourner le problème :1. générer d’abord un document LATEX minimal contenant les commandes pstricks ;1. générer d’abord un document LATEX minimal contenant les commandes pstricks ;2. compiler ce document avec LATEX pour générer un .dvi ;2. compiler ce document avec LATEX pour générer un .dvi ;3. demander à dvips de créer un ﬁchier au format PostScript encapsulé avec l’option -E ;3. demander à dvips de créer un ﬁchier au format PostScript encapsulé avec l’option -E ;4. convertir ce ﬁchier au format Pdf ;4. convertir ce ﬁchier au format Pdf ;5. inclure ce ﬁchier au moment d’utiliser pdflatex.

5. inclure ce ﬁchier au moment d’utiliser pdflatex.

Tout cela est évidemment un peu tordu mais peut être automatisé à l’aide d’un
Makeﬁle, d’un petit script Unix, et d’une commande... Tout d’abord :Tout cela est évidemment un peu tordu mais peut être automatisé à l’aide d’un
Makeﬁle, d’un petit script Unix, et d’une commande... Tout d’abord :\newcommand{\includepstricksgraphics}[1]{%\ifpdf\includegraphics{#1}\else\input{#1}\fi}\newcommand{\includepstricksgraphics}[1]{%\ifpdf\includegraphics{#1}\else\input{#1}\fi}

L’idée est donc d’extraire la portion de code contenant des commandes pstricks pourles stocker dans un ﬁchier bidule.tex, puis lorsqu’on écrit :L’idée est donc d’extraire la portion de code contenant des commandes pstricks pourles stocker dans un ﬁchier bidule.tex, puis lorsqu’on écrit :\includepstricksgraphics{bidule}\includepstricksgraphics{bidule}

on inclura bidule.pdf si on utilise pdflatex et bidule.tex si on utilise LAT X. Ensuite, le « petit » script Unix qu’on peut adapter à ses besoins :on inclura bidule.pdf si on utilise pdflatex et bidule.tex si on utilise LATEX. Ensuite, le « petit » script Unix qu’on peut adapter à ses besoins :E#!/bin/sh# on enlève l’extension du 1er argument
FILE=${1%.*}# création d’un fichier temporaire psttemp.tex
cat > psttemp.tex <<EOF\documentclass{manuel}← mettre la classe et les packages adéquats\thispagestyle{empty}\begin{document}\input{$FILE}\end{document}
EOF# Création du fichier dvi
latex psttemp

A#!/bin/sh# on enlève l’extension du 1er argument
FILE=${1%.*}# création d’un fichier temporaire psttemp.tex
cat > psttemp.tex <<EOF\documentclass{manuel}← mettre la classe et les packages adéquats\thispagestyle{empty}\begin{document}\input{$FILE}\end{document}
EOF# Création du fichier dvi
latex psttemp

AGénérer des « pdf »204# Création du fichier eps
dvips -E $TMPFILE.dvi -o psttemp.eps# Création du fichier pdf
epstopdf psttemp.eps --debug --outfile=$FILE.pdf# effacement des fichiers temporaires
rm -f psttemp.*# Création du fichier eps
dvips -E $TMPFILE.dvi -o psttemp.eps# Création du fichier pdf
epstopdf psttemp.eps --debug --outfile=$FILE.pdf# effacement des fichiers temporaires
rm -f psttemp.*

Ce script sauvé sous le nom pstricks.sh pourra être invoqué comme suit :Ce script sauvé sous le nom pstricks.sh pourra être invoqué comme suit :./pstricks.sh bidule.tex./pstricks.sh bidule.tex

et crée le ﬁchier bidule.pdf que pdflatex aura la sagesse d’inclure grâce à la commande \includepstricksgraphics dont le code est donné plus haut. Pour ce qui
est du Makeﬁle, il n’est pas très diﬃcile à partir du script précédent de déﬁnir une
règle ayant pour but de transformer un ﬁchier .tex en un ﬁchier .pdf. Avec leversion Gnu de make, on aura quelque chose du genre :et crée le ﬁchier bidule.pdf que pdflatex aura la sagesse d’inclure grâce à la commande \includepstricksgraphics dont le code est donné plus haut. Pour ce qui
est du Makeﬁle, il n’est pas très diﬃcile à partir du script précédent de déﬁnir une
règle ayant pour but de transformer un ﬁchier .tex en un ﬁchier .pdf. Avec leversion Gnu de make, on aura quelque chose du genre :%.pdf : %.tex./pstricks.sh $<%.pdf : %.tex./pstricks.sh $<Le programme dvips n’est pas toujours en mesure de calculer correctement la boîte
englobante pour le PostScript encapsulé. En particulier la section 41 de la documentation de pstricks2 indique que dvips n’est pas capable de tenir compte du code postscript
généré pour estimer cette boîte englobante. Dans ce cas, il est conseillé soit d’ajouter
du texte autour du graphique et dvips arrive à s’en sortir, soit d’utiliser l’environnement
TeXtoEPS. Le document temporaire du script précédent devient alors :Le programme dvips n’est pas toujours en mesure de calculer correctement la boîte
englobante pour le PostScript encapsulé. En particulier la section 41 de la documentation de pstricks2 indique que dvips n’est pas capable de tenir compte du code postscript
généré pour estimer cette boîte englobante. Dans ce cas, il est conseillé soit d’ajouter
du texte autour du graphique et dvips arrive à s’en sortir, soit d’utiliser l’environnement
TeXtoEPS. Le document temporaire du script précédent devient alors :cat > psttemp.tex <<EOF\documentclass{manuel}\usepackage{pst-eps}\thispagestyle{empty}\begin{document}\begin{TeXtoEPS}\input{$FILE}\end{TeXtoEPS}\end{document}
EOF

cat > psttemp.tex <<EOF\documentclass{manuel}\usepackage{pst-eps}\thispagestyle{empty}\begin{document}\begin{TeXtoEPS}\input{$FILE}\end{TeXtoEPS}\end{document}
EOF← Pour aider PSTricks à calculer la boîte

A.5.2 psfragA

Générer des « pdf »204← Pour aider PSTricks à calculer la boîte

A.5.2 psfrag

La limitation et le principe sont les mêmes que pour pstricks. Pour utiliser psfrag
avec pdflatex, il est nécessaire de procéder comme suit :La limitation et le principe sont les mêmes que pour pstricks. Pour utiliser psfrag
avec pdflatex, il est nécessaire de procéder comme suit :1. générer d’abord un document LATEX minimal contenant des commandes psfrag ;1. générer d’abord un document LATEX minimal contenant des commandes psfrag ;2. compiler ce document avec LATEX pour générer un .dvi ;A

2. compiler ce document avec LATEX pour générer un .dvi ;3. demander à dvips de créer un ﬁchier au format PostScript encapsulé avec l’option -E ;3. demander à dvips de créer un ﬁchier au format PostScript encapsulé avec l’option -E ;4. convertir ce ﬁchier au format Pdf ;4. convertir ce ﬁchier au format Pdf ;5. inclure ce ﬁchier au moment d’utiliser pdflatex.

5. inclure ce ﬁchier au moment d’utiliser pdflatex.

22

http://tug.org/PSTricks

http://tug.org/PSTricks

A.5 Interaction avec psfrag et pstricks

A.5 Interaction avec psfrag et pstricks

205

Il y a cependant un petit « hic » car la ﬁgure dont on calcule la boîte englobante
avec dvips contient du texte généré par psfrag indiquant les remplacements qui seront
eﬀectués. On doit en tenir compte. Dans le script shell, on crée une fonction :function genere_eps{
cat > $TMPFILE.tex <<EOF\documentclass{manuel}205

Il y a cependant un petit « hic » car la ﬁgure dont on calcule la boîte englobante
avec dvips contient du texte généré par psfrag indiquant les remplacements qui seront
eﬀectués. On doit en tenir compte. Dans le script shell, on crée une fonction :function genere_eps{
cat > $TMPFILE.tex <<EOF\documentclass{manuel}← mettre la classe et les packages qui vontbien

← mettre la classe et les packages qui vontbien

\thispagestyle{empty}\begin{document}\input{$1}\end{document}
EOF
echo "Création du fichier dvi"
latex $TMPFILE > $LOGFILE
echo "Création du fichier $TMPFILE.eps"
dvips -E $TMPFILE.dvi -o $TMPFILE.eps >> $LOGFILE 2>&1}

\thispagestyle{empty}\begin{document}\input{$1}\end{document}
EOF
echo "Création du fichier dvi"
latex $TMPFILE > $LOGFILE
echo "Création du fichier $TMPFILE.eps"
dvips -E $TMPFILE.dvi -o $TMPFILE.eps >> $LOGFILE 2>&1}

On utilise ensuite cette fonction par deux fois comme suit, dans le script :On utilise ensuite cette fonction par deux fois comme suit, dans le script :FILE=${1%.*}TMPFILE=truc
LOGFILE=truc.log
sanspsfrag=$TMPFILE-sanspsf.tex

FILE=${1%.*}TMPFILE=truc
LOGFILE=truc.log
sanspsfrag=$TMPFILE-sanspsf.tex# on enlève les lignes contenant la commande \psfrag# et on récupère la boîte englobante du fichier eps sans les psfrag
grep -v \\\\psfrag $FILE.tex > $sanspsfrag
genere_eps $sanspsfragbonnebb=$(grep "^%%BoundingBox" $TMPFILE.eps | head -1)# on enlève les lignes contenant la commande \psfrag# et on récupère la boîte englobante du fichier eps sans les psfrag
grep -v \\\\psfrag $FILE.tex > $sanspsfrag
genere_eps $sanspsfragbonnebb=$(grep "^%%BoundingBox" $TMPFILE.eps | head -1)# on récupère la boîte englobante du fichier eps avec psfrag
genere_eps $FILE
mauvaisebb=$(grep "^%%BoundingBox" $TMPFILE.eps | head -1)# on récupère la boîte englobante du fichier eps avec psfrag
genere_eps $FILE
mauvaisebb=$(grep "^%%BoundingBox" $TMPFILE.eps | head -1)# on remplace la boîte englobante par la bonnesed -i "s/$mauvaisebb/$bonnebb/" $TMPFILE.eps# on remplace la boîte englobante par la bonnesed -i "s/$mauvaisebb/$bonnebb/" $TMPFILE.eps

echo "Création du fichier pdf"
epstopdf $TMPFILE.eps --debug --outfile=pdfs/${FILE##*/}.pdf >>$LOGFILE 2>&1

echo "Création du fichier pdf"
epstopdf $TMPFILE.eps --debug --outfile=pdfs/${FILE##*/}.pdf >>$LOGFILE 2>&1A

# un petit coup de toiletterm -f $TMPFILE.* $LOGFILE $sanspsfrag# un petit coup de toiletterm -f $TMPFILE.* $LOGFILE $sanspsfragCe script a plusieurs limitations. Parmi elles : il échouera si une commande \psfrags’étend sur plusieurs lignes. On demande en effet à grep d’enlever les lignes contenant \psfrag sans vérifier que la commande ne se termine pas une ou plusieurs lignes
plus bas...

Ce script a plusieurs limitations. Parmi elles : il échouera si une commande \psfrags’étend sur plusieurs lignes. On demande en effet à grep d’enlever les lignes contenant \psfrag sans vérifier que la commande ne se termine pas une ou plusieurs lignes
plus bas...

A

B

B

MémentoSommaire

Sommaire

B.1

Extensions

B.1

Extensions

B.2

Les fichiers auxiliaires

B.2

Les fichiers auxiliaires

B.3

AucTEX
AspellB.3

AucTEX
Aspell

B.4

B.4

ous trouverez ici quelques informations « en vrac » sur les extensions deous trouverez ici quelques informations « en vrac » sur les extensions de

V LTEX, une liste assez complète des ﬁchiers auxiliaires qui gravitent autour de

V LTEX, une liste assez complète des ﬁchiers auxiliaires qui gravitent autour deAAvotre ﬁchier source. Suivent quelques explications succinctes sur la merveilleuse extension AucTEX d’Emacs. Enﬁn pour ceux qui ont la chance de travailler dans unenvironnement Unix, cette annexe s’achève sur la conﬁguration d’Emacs pour travailler avec le correcteur orthographique Aspell.

B.1

Mémentovotre ﬁchier source. Suivent quelques explications succinctes sur la merveilleuse extension AucTEX d’Emacs. Enﬁn pour ceux qui ont la chance de travailler dans unenvironnement Unix, cette annexe s’achève sur la conﬁguration d’Emacs pour travailler avec le correcteur orthographique Aspell.

Extensions

B.1

Comme indiqué dans la préface de ce document, TEX et LATEX sont des systèmesouverts. Autour du noyau LATEX gravitent un certain nombre de packages standard
qui constituent la base du système. Mais tout utilisateur peut faire évoluer LATEX en
lui ajoutant des fonctionnalités diverses. On trouve donc une multitude d’outils sous
forme d’extensions (ou packages en anglais) ou sous forme de classe de documents.
Certaines sont devenues des standards, « toutes » sont disponibles sur les serveursdédiés à la distribution de LATEX (cf. chapitre 8) ou sur des pages personnelles,
d’autres sont fournies avec les Call for papers et autres author’s guides.
Nous vous donnons ici une liste de packages « classiques » et vous invitons à vous
référer à la documentation qui est généralement jointe au package. Notez que lesite du Loria propose une liste des packages « généraux » à http://www.loria.fr/
services/tex/packages.html#latex ; il existe d’autre part un moteur de recherche
contenant plus de mille extensions référencées, à ftp://ftp.loria.fr/pub/unix/
tex/ctan/help/Catalogue/catalogue.html.
N french: utilisé pour « franciser » les documents. Ne coupe pas une phrase
entre un mot et une double ponctuation. Propose aussi quelques commandes axées sur la typographie française (voir chapitre 7) ;Extensions
Comme indiqué dans la préface de ce document, TEX et LATEX sont des systèmesouverts. Autour du noyau LATEX gravitent un certain nombre de packages standard
qui constituent la base du système. Mais tout utilisateur peut faire évoluer LATEX en
lui ajoutant des fonctionnalités diverses. On trouve donc une multitude d’outils sous
forme d’extensions (ou packages en anglais) ou sous forme de classe de documents.
Certaines sont devenues des standards, « toutes » sont disponibles sur les serveursdédiés à la distribution de LATEX (cf. chapitre 8) ou sur des pages personnelles,
d’autres sont fournies avec les Call for papers et autres author’s guides.
Nous vous donnons ici une liste de packages « classiques » et vous invitons à vous
référer à la documentation qui est généralement jointe au package. Notez que lesite du Loria propose une liste des packages « généraux » à http://www.loria.fr/
services/tex/packages.html#latex ; il existe d’autre part un moteur de recherche
contenant plus de mille extensions référencées, à ftp://ftp.loria.fr/pub/unix/
tex/ctan/help/Catalogue/catalogue.html.

B

N french: utilisé pour « franciser » les documents. Ne coupe pas une phrase
entre un mot et une double ponctuation. Propose aussi quelques commandes axées sur la typographie française (voir chapitre 7) ;N amsmath : le package pour faire des formules et équations perfectionnées ;N amsmath : le package pour faire des formules et équations perfectionnées ;N array

N array: améliore l’utilisation de tabular ;207: améliore l’utilisation de tabular ;207

BMémento

208

Mémento208

N hhline: étend les bordures de tableaux de base de LATEX ;N hhline: étend les bordures de tableaux de base de LATEX ;N fancyhdr: permet de personnaliser en-tête et pied de page. Jetez un coup d’œil
sur ceux de ce manuel ;N fancyhdr: permet de personnaliser en-tête et pied de page. Jetez un coup d’œil
sur ceux de ce manuel ;N varioref: propose la commande \vref à la place de \ref. Celle-ci ajoute « pagesuivante », « page 12 », ou rien du tout selon où se trouve l’objet
référencé par rapport à la position du renvoi ;N varioref: propose la commande \vref à la place de \ref. Celle-ci ajoute « pagesuivante », « page 12 », ou rien du tout selon où se trouve l’objet
référencé par rapport à la position du renvoi ;N ifthen: fournit deux structures de contrôle un « if then else » et un « dowhile ». Ce qui permet de faire des commandes un peu plus évoluées ;N ifthen: fournit deux structures de contrôle un « if then else » et un « dowhile ». Ce qui permet de faire des commandes un peu plus évoluées ;N chapterbib : permet d’insérer une bibliographie à chaque ﬁn de chapitre ;N chapterbib : permet d’insérer une bibliographie à chaque ﬁn de chapitre ;N overcite: écrit les citations bibliographiques sous forme d’exposant ;N overcite: écrit les citations bibliographiques sous forme d’exposant ;N bibunits: permet de produire des bibliographies composées de plusieurs unités ;N bibunits: permet de produire des bibliographies composées de plusieurs unités ;N fancybox: propose quatre variantes de \fbox :N fancybox: propose quatre variantes de \fbox :







\shadowbox, \doublebox ,.
\ovalbox et \Ovalbox \shadowbox, \doublebox ,.
\ovalbox et \Ovalbox N algorithms : pour écrire des algorithmes (facilement « francisable ».) sous la formed’un environnement qui peut être ﬂottant ou non ;N algorithms : pour écrire des algorithmes (facilement « francisable ».) sous la formed’un environnement qui peut être ﬂottant ou non ;N geometry : une extension permettant de changer les marges et la plupart desdimensions intervenant au niveau de la page, de manière assez souple ;N geometry : une extension permettant de changer les marges et la plupart desdimensions intervenant au niveau de la page, de manière assez souple ;N url: permet d’écrire des adresses sous forme d’une url, la césure est gérée« pour le mieux » ;N url: permet d’écrire des adresses sous forme d’une url, la césure est gérée« pour le mieux » ;N fancyvrb: propose une version améliorée de l’environnement verbatim ;N fancyvrb: propose une version améliorée de l’environnement verbatim ;B.2 Les fichiers auxiliaires

B.2 Les fichiers auxiliaires

Voici la liste des ﬁchiers que vous pourrez trouver sur votre disque à côté de votre
document source. Ces ﬁchiers portent tous une extension de trois lettres, les voici1 :BVoici la liste des ﬁchiers que vous pourrez trouver sur votre disque à côté de votre
document source. Ces ﬁchiers portent tous une extension de trois lettres, les voici1 :tex

ﬁchier source LATEX ;texﬁchier source LATEX ;auxﬁchier auxiliaire que LATEX utilise pour résoudre les références, entre autres ;auxﬁchier auxiliaire que LATEX utilise pour résoudre les références, entre autres ;log

le ﬁchier de trace (dit log file en anglais) contenant les infos de la compilation ;log

le ﬁchier de trace (dit log file en anglais) contenant les infos de la compilation ;dviﬁchier device independant, qui va pouvoir être aﬃché ou imprimé selon lasituation ;dviﬁchier device independant, qui va pouvoir être aﬃché ou imprimé selon lasituation ;toc

ﬁchier contenant la table des matières (initiales de table of contents) ;toc

ﬁchier contenant la table des matières (initiales de table of contents) ;lof

ﬁchier contenant la liste des ﬁgures (list of figure);lof

ﬁchier contenant la liste des ﬁgures (list of figure);

Certains packages créent leur propres fichiers auxiliaires comme le package minitoc et la classe
lettre ; ils ne sont pas mentionnés dans cette liste.
1

B

Certains packages créent leur propres fichiers auxiliaires comme le package minitoc et la classe
lettre ; ils ne sont pas mentionnés dans cette liste.
1

B.3 AucTEX

B.3

B.3 AucTEX

209

209

lot

ﬁchier contenant la liste des tables ;lotﬁchier contenant la liste des tables ;bibﬁchier source BibTEX contenant des entrées de bibliographie ;bibﬁchier source BibTEX contenant des entrées de bibliographie ;bbl

ﬁchier contenant la bibliographie, peut être généré à partir de BibTEX ;bbl

ﬁchier contenant la bibliographie, peut être généré à partir de BibTEX ;blgﬁchier trace de BibTEX ;blgﬁchier trace de BibTEX ;idxﬁchier des entrées d’index non triées ;idx

ﬁchier des entrées d’index non triées ;ind

ﬁchier contenant l’index, généralement généré par makeindex ;indﬁchier contenant l’index, généralement généré par makeindex ;ilgﬁchier trace de makeindex ;ilgﬁchier trace de makeindex ;styﬁchier contenant des déﬁnitions de commandes modiﬁant la mise en page, ou
fournissant des outils particuliers ;styﬁchier contenant des déﬁnitions de commandes modiﬁant la mise en page, ou
fournissant des outils particuliers ;cls

ﬁchier deﬁnissant une classe.

cls

ﬁchier deﬁnissant une classe.

Pour archiver un document LATEX,

Pour archiver un document LATEX,

Vous pouvez effacer : tous les ﬁchiers auxiliaires, les ﬁchiers log, ainsi que lesﬁchiers de tables des matières et listes de ﬁgures et tables.

Vous pouvez effacer : tous les ﬁchiers auxiliaires, les ﬁchiers log, ainsi que lesﬁchiers de tables des matières et listes de ﬁgures et tables.

Vous pouvez aussi effacer : le ﬁchier bbl si vous êtes capable de le générer àpartir d’un ﬁchier bib et BibTEX. Les ﬁchiers d’index peuvent généralementêtre eﬀacés puisqu’ils sont en principe produits par makeindex. Le ﬁchier dvi
n’est pas indispensable puisque vous êtes censé avoir le source LATEXVous pouvez aussi effacer : le ﬁchier bbl si vous êtes capable de le générer àpartir d’un ﬁchier bib et BibTEX. Les ﬁchiers d’index peuvent généralementêtre eﬀacés puisqu’ils sont en principe produits par makeindex. Le ﬁchier dvi
n’est pas indispensable puisque vous êtes censé avoir le source LATEXVous devez garder : le source LATEX et les éventuels ﬁchiers de styles que vous
avez déﬁnis (sty et cls) ; mais si vous en êtes au stade de la déﬁnition declasse, le conseil est probablement un peu saugrenu...

Vous devez garder : le source LATEX et les éventuels ﬁchiers de styles que vous
avez déﬁnis (sty et cls) ; mais si vous en êtes au stade de la déﬁnition declasse, le conseil est probablement un peu saugrenu...

AucTEX

B.3

AucTEX est un module d’Emacs qui facilite la saisie de documents LATEX. Il est
automatiquement chargé lorsqu’on ouvre un document portant l’extension .tex,.sty ou .cls. On peut distinguer trois types d’aide dans AucTEX :AucTEX
AucTEX est un module d’Emacs qui facilite la saisie de documents LATEX. Il est
automatiquement chargé lorsqu’on ouvre un document portant l’extension .tex,.sty ou .cls. On peut distinguer trois types d’aide dans AucTEX :1. l’aide au formatage du source (couleur, indentation,...)

1. l’aide au formatage du source (couleur, indentation,...)

2. les raccourcis clavier pour insérer des commandes ou des environnements,

2. les raccourcis clavier pour insérer des commandes ou des environnements,

3. l’aide à la compilation.

B.3.1 Formatage du source
Les couleurs et la touche tab jouent le même rôle que dans un buﬀer C ou C++.
On notera que M-q « formate » un paragraphe, c.-à-d., découpe automatiquement
le paragraphe en lignes de longueurs à peu près égales.

B

3. l’aide à la compilation.

B.3.1 Formatage du source
Les couleurs et la touche tab jouent le même rôle que dans un buﬀer C ou C++.
On notera que M-q « formate » un paragraphe, c.-à-d., découpe automatiquement
le paragraphe en lignes de longueurs à peu près égales.

BMémento

210

B.3.2 Raccourcis

B.3.2 Raccourcis

fontesfontesC-c C-f (Changer Fonte) suivi de :C-c C-f (Changer Fonte) suivi de :• C-e insère \emph{}• C-e insère \emph{}• C-b insère \textbf{}• C-b insère \textbf{}• C-t insère \texttt{}• C-t insère \texttt{}• C-s insère \textsl{}• C-s insère \textsl{}• C-c insère \textsc{}• C-c insère \textsc{}

• ...

• ...

SectionSectionC-c C-s insère une Section en vous demandant son niveau, son titre et son labeldans le minibuﬀer.

C-c C-s insère une Section en vous demandant son niveau, son titre et son labeldans le minibuﬀer.

Commandes et Environnement

Commandes et Environnement

M-Tab tente de compléter le nom en cours (automatic completion).
C-c RET insère une commande.
C-c C-e insère un Environnement2 .
C-u C-c C-e change un environnement.
C-c ] ferme un environnement en ajoutant la commande \end qui manque.

M-Tab tente de compléter le nom en cours (automatic completion).
C-c RET insère une commande.
C-c C-e insère un Environnement2 .
C-u C-c C-e change un environnement.
C-c ] ferme un environnement en ajoutant la commande \end qui manque.

B.3.3 Compilation

B.3.3 Compilation

C-c C-c tente de suivre le cycle de compilation d’un document, en lançant suivant
la situation, LATEX, BibTEX, xdvi,... Notez aussi que AucTEX permet de gérer lemécanisme du document maître (cf. 6.4). Pour cela il vous demandera de saisir lenom du document maître lorsque vous ouvrirez un nouveau document dans Emacs.
Dans le cas contraire il faudra expliquer gentiment à AucTEX qui est le documentmaître avec :B

Mémento210

M-x TeX-master-file-ask ou C-c _vous devrez alors saisir le nom du ﬁchier maître. En agissant ainsi, lorsque vous
lancerez une compilation avec C-c C-c sur un des documents « esclaves », c’est sur
le master qu’elle agira.
2
Pour certains environnements et certaines commandes dont la syntaxe est connue par AucTEX
il vous sera demandé quelques précisions (valeurs des arguments, légendes, format du tableau,...).

C-c C-c tente de suivre le cycle de compilation d’un document, en lançant suivant
la situation, LATEX, BibTEX, xdvi,... Notez aussi que AucTEX permet de gérer lemécanisme du document maître (cf. 6.4). Pour cela il vous demandera de saisir lenom du document maître lorsque vous ouvrirez un nouveau document dans Emacs.
Dans le cas contraire il faudra expliquer gentiment à AucTEX qui est le documentmaître avec :B

M-x TeX-master-file-ask ou C-c _vous devrez alors saisir le nom du ﬁchier maître. En agissant ainsi, lorsque vous
lancerez une compilation avec C-c C-c sur un des documents « esclaves », c’est sur
le master qu’elle agira.
2
Pour certains environnements et certaines commandes dont la syntaxe est connue par AucTEX
il vous sera demandé quelques précisions (valeurs des arguments, légendes, format du tableau,...).

B.4 Aspell

B.4

B.4 Aspell

211

B.4

AspellAspell est un correcteur orthographique multilingue qu’on peut interfacer avec l’éditeur de texte à tout faire Emacs. Pour l’utiliser dans Emacs, deux commandes àconnaître :211

AspellAspell est un correcteur orthographique multilingue qu’on peut interfacer avec l’éditeur de texte à tout faire Emacs. Pour l’utiliser dans Emacs, deux commandes àconnaître :M-x ispell-change-dictionary

M-x ispell-change-dictionary

selectionne la langue du dictionnaire (francais ou english), et :selectionne la langue du dictionnaire (francais ou english), et :M-x ispell-buffer

M-x ispell-buffer

commence une session de correction sur le buﬀer. Il est également possible de vériﬁerl’orthographe d’un seul mot avec la commande :commence une session de correction sur le buﬀer. Il est également possible de vériﬁerl’orthographe d’un seul mot avec la commande :M-x ispell-word ou M-$

M-x ispell-word ou M-$À l’heure où j’écris ces lignes, la distribution Debian ne configure pas Emacs pourutiliser le programme Aspell par défaut. Il faut donc ajouter dans votre fichier.emacs, la ligne :À l’heure où j’écris ces lignes, la distribution Debian ne configure pas Emacs pourutiliser le programme Aspell par défaut. Il faut donc ajouter dans votre fichier.emacs, la ligne :(setq-default ispell-program-name "aspell")(setq-default ispell-program-name "aspell")

Il est particulièrement utile de noter que l’on peut conﬁgurer le programme Aspell
pour lui demander explicitement d’ignorer ou non les arguments des commandes
LATEX. On pourra par exemple ne pas vériﬁer l’argument d’une commande ne contenant pas de français. Ainsi, si l’on déﬁnit la commande :Il est particulièrement utile de noter que l’on peut conﬁgurer le programme Aspell
pour lui demander explicitement d’ignorer ou non les arguments des commandes
LATEX. On pourra par exemple ne pas vériﬁer l’argument d’une commande ne contenant pas de français. Ainsi, si l’on déﬁnit la commande :\newcommand{\bidule}[2]{% commande prenant 2 arguments... }\newcommand{\bidule}[2]{% commande prenant 2 arguments... }Il suﬃra d’écrire dans son ﬁchier ~/.aspell.conf :Il suﬃra d’écrire dans son ﬁchier ~/.aspell.conf :add-tex-command bidule pP

add-tex-command bidule pP

pour demander à Aspell de vériﬁer le second paramètre (P), mais d’ignorer le contenu
du premier (p). Pour ignorer les deux, on aurait écrit :pour demander à Aspell de vériﬁer le second paramètre (P), mais d’ignorer le contenu
du premier (p). Pour ignorer les deux, on aurait écrit :add-tex-command bidule pp

add-tex-command bidule pp

Enﬁn, Emacs dispose également d’un mode de correction de mot « à la volée3 »qu’on peut activer ou désactiver avec la commande :Enﬁn, Emacs dispose également d’un mode de correction de mot « à la volée3 »qu’on peut activer ou désactiver avec la commande :M-x flyspell-mode

M-x flyspell-modeB

3

D’aucuns diront « à la ouôrde »...

B

3

D’aucuns diront « à la ouôrde »...

C

C

SymbolesSommaire

SymbolesSommaire

C.1

Symboles standard

C.1

Symboles standard

C.2

Symboles de l’AMS

C.2

Symboles de l’AMS

C.3

Symboles du package textcomp

C.3

Symboles du package textcomp

ous trouverez dans cette annexe, une liste de « tous » les symboles mathé-

ous trouverez dans cette annexe, une liste de « tous » les symboles mathé-

V matiques disponibles dans LTEX. Nous avons séparé ces symboles en quatre

V matiques disponibles dans LTEX. Nous avons séparé ces symboles en quatreAA

catégories :catégories :• les symboles standard du tableau C.1 au tableau C.10 ;•• les symboles standard du tableau C.1 au tableau C.10 ;les symboles de LAT X disponibles avec le package latexsym donnés par le tableau C.11 ;• les symboles de LATEX disponibles avec le package latexsym donnés par le tableau C.11 ;E• les symboles de l’American Mathematical Society disponibles avec le package
amssymb, du tableau C.12 au tableau C.19 ;• les symboles de l’American Mathematical Society disponibles avec le package
amssymb, du tableau C.12 au tableau C.19 ;• les symboles disponibles avec le package textcomp (tableaux C.20 et C.21);• les symboles disponibles avec le package textcomp (tableaux C.20 et C.21);• les symboles des fontes PostScript bien connues ZapfDingbats et Symbol. Lessymboles de ces fontes sont accessibles en incluant le package pifont et en
utilisant la commande :• les symboles des fontes PostScript bien connues ZapfDingbats et Symbol. Lessymboles de ces fontes sont accessibles en incluant le package pifont et en
utilisant la commande :\Pisymbol{pzd}{hnuméroi}\Pisymbol{pzd}{hnuméroi}pour les symboles de la fonte Zapf, et :pour les symboles de la fonte Zapf, et :\Pisymbol{psy}{hnuméroi}\Pisymbol{psy}{hnuméroi}pour ceux de la fonte Symbol. Le nombre hnuméroi est le numéro de la casecorrespondant au symbole choisi dans la table C.22 page 221 ou C.23.

pour ceux de la fonte Symbol. Le nombre hnuméroi est le numéro de la casecorrespondant au symbole choisi dans la table C.22 page 221 ou C.23.

C
213

C
213

Symboles

214

Symboles214

C.1 Symboles standard

C.1 Symboles standard

Table C.1: Les lettres grecques.
\beta
β \gammaγ\varepsilon ε \zetaζ\varthetaϑ \iota
ι
\mu
µ \nu
ν
\pi
π \varpi
̟\sigmaσ \varsigma ς\phi
φ \varphi
ϕ\omegaω\alpha\epsilon\theta\lambdao\varrho\upsilon
\psi

α
ǫ
θ
λ
o
̺
υ
ψ

\Gamma\Xi\Phi

Γ \Delta
Ξ \Pi
Φ \Psi

∆
Π
Ψ

Θ
Σ
Ω

\Theta\Sigma\Omega

δ
η
κ
ξ
ρ
τ
χ

\alpha\epsilon\theta\lambdao\varrho\upsilon
\psi

α
ǫ
θ
λ
o
̺
υ
ψ

\Lambda\UpsilonΛΥ\Gamma\Xi\Phi

Γ \Delta
Ξ \Pi
Φ \PsiTable C.2: Les opérateurs binaires.
\pm\mp\times
\div
\ast
\star
\circ
\bullet\sum\bigcap\bigodot

C

P
T
J

±
∓
×
÷
∗
⋆
◦
•

\cdot
\cap
\cup
\uplus\sqcap\sqcup\vee\wedge

·
∩
∪
⊎
⊓
⊔
∨
∧

\setminus\wr\diamond\bigtriangleup\bigtriangledown\triangleleft\triangleright\oplus

\
≀
⋄
△
▽
⊳
⊲
⊕

\ominus\otimes\oslash\odot\bigcirc\dagger\ddagger\amalg\cdots···\vdots..
.

\ddots

..

⊖
⊗
⊘
⊙

.

\pm
\mp
\times
\div
\ast
\star
\circ
\bullet

†
‡
∐

\oint
\bigwedge

Table C.4: Les points.
...

∆
Π
Ψ

Θ
Σ
Ω

\Theta\Sigma\Omega\delta\eta\kappa
\xi
\rho
\tau
\chi

δ
η
κ
ξ
ρ
τ
χ

\Lambda\UpsilonΛΥ\ominus\otimes\oslash\odot\bigcirc\dagger\ddagger\amalg⊖⊗⊘⊙Table C.2: Les opérateurs binaires.

Table C.3: Les symboles de taille variable.
R
Q
`
\prod
S \coprod
F \intW\bigcupN \bigsqcup L \bigvee
U\bigotimes\bigoplus\biguplus\ldotsTable C.1: Les lettres grecques.
\beta
β \gammaγ\varepsilon ε \zetaζ\varthetaϑ \iota
ι
\mu
µ \nu
ν
\pi
π \varpi
̟\sigmaσ \varsigma ς\phi
φ \varphi
ϕ\omegaω\delta\eta\kappa
\xi
\rho
\tau
\chi

H
V

\sum
\bigcap\bigodot

C

P
T
J

±
∓
×
÷
∗
⋆
◦
•

\cdot
\cap
\cup
\uplus\sqcap\sqcup\vee\wedge

·
∩
∪
⊎
⊓
⊔
∨
∧

\setminus\wr\diamond\bigtriangleup\bigtriangledown\triangleleft\triangleright\oplus

\
≀
⋄
△
▽
⊳
⊲
⊕

Table C.3: Les symboles de taille variable.
R
Q
`
\prod
S \coprod
F \intW\bigcupN \bigsqcup L \bigvee
U\bigotimes\bigoplus\biguplus\oint\bigwedge

Table C.4: Les points.
\ldots...

\cdots···\vdots..
.

\ddots

..

†
‡
∐

.

H
V

215

215

Table C.5: Les relations.
\leq
\prec
\preceq\ll\subset\subseteq\sqsubseteq\in\vdash

≤
≺

≪
⊂
⊆
⊑
∈
⊢

\leftarrow\Leftarrow\rightarrow\Rightarrow\leftrightarrow\Leftrightarrow\mapsto\hookleftarrow\leftharpoonup\leftharpoondown

\geq
\succ
\succeq\gg\supset\supseteq\sqsupseteq\ni\dashv

←
⇐
→
⇒
↔
⇔
7
→
←֓
↼
↽

≥
≻

≫
⊃
⊇
⊒
∋
⊣

\equiv\sim\simeq\asymp\approx\cong\neq\doteq\proptoTable C.5: Les relations.
≡
∼
≃
≍
≈
∼
=
6=
.
=
∝

Table C.6: Les ﬂèches.
\longleftarrow←−\Longleftarrow⇐=\longrightarrow−→\Longrightarrow=⇒\longleftrightarrow ←→\Longleftrightarrow ⇐⇒\longmapsto
7−→\hookrightarrow֒→\rightharpoonup⇀\rightharpoondown⇁\models\perp\mid\parallel\bowtie\smile\frown

|=
⊥
|
k
⊲⊳
⌣
⌢

\uparrow\Uparrow\downarrow\Downarrow\updownarrow\Updownarrow\nearrow\searrow\swarrow\nwarrow

\leq
\prec
\preceq\ll\subset\subseteq\sqsubseteq\in\vdash

↑
⇑
↓
⇓
l
m
ր
ց
ւ
տ

≤
≺

≪
⊂
⊆
⊑
∈
⊢

\leftarrow\Leftarrow\rightarrow\Rightarrow\leftrightarrow\Leftrightarrow\mapsto\hookleftarrow\leftharpoonup\leftharpoondown

\geq
\succ
\succeq\gg\supset\supseteq\sqsupseteq\ni\dashv

←
⇐
→
⇒
↔
⇔
7
→
←֓
↼
↽

ℵ
~
ı

ℓ
℘
ℜ
ℑ

\prime\emptyset\nabla
\surd
\top
\bot
\|
\angle

′
∅
∇
√
⊤
⊥
k
∠

\forall\exists\neg\flat\natural\sharp\backslash\partial\equiv\sim\simeq\asymp\approx\cong\neq\doteq\propto

≡
∼
≃
≍
≈
∼
=
6=
.
=
∝

Table C.6: Les ﬂèches.
\longleftarrow←−\Longleftarrow⇐=\longrightarrow−→\Longrightarrow=⇒\longleftrightarrow ←→\Longleftrightarrow ⇐⇒\longmapsto
7−→\hookrightarrow֒→\rightharpoonup⇀\rightharpoondown⇁

Table C.7: Divers.
\aleph\hbar\imath\jmath
\ell
\wp
\Re
\Im

≥
≻

≫
⊃
⊇
⊒
∋
⊣

\models\perp\mid\parallel\bowtie\smile\frown

|=
⊥
|
k
⊲⊳
⌣
⌢

\uparrow\Uparrow\downarrow\Downarrow\updownarrow\Updownarrow\nearrow\searrow\swarrow\nwarrow

↑
⇑
↓
⇓
l
m
ր
ց
ւ
տ

Table C.7: Divers.
∀
∃
¬
♭
♮
♯
\
∂

\infty\triangle\clubsuit\diamondsuit\heartsuit\spadesuit

∞
△
♣
♦
♥
♠

C

\aleph\hbar\imath\jmath
\ell
\wp
\Re
\Im

ℵ
~
ı

ℓ
℘
ℜ
ℑ

\prime\emptyset\nabla
\surd
\top
\bot
\|
\angle

′
∅
∇
√
⊤
⊥
k
∠

\forall\exists\neg\flat\natural\sharp\backslash\partial

∀
∃
¬
♭
♮
♯
\
∂

\infty\triangle\clubsuit\diamondsuit\heartsuit\spadesuit

∞
△
♣
♦
♥
♠

C

Symboles

216

Symboles216

Table C.8: Les fonctions.
\arccos\arcsin\arctan
\arg

\cos
\cosh
\cot
\coth

\csc
\deg
\det
\dim

\exp \ker\gcd \lg\hom \lim\inf \liminf

Table C.8: Les fonctions.

\limsup
\ln
\log
\max

\min
\Pr
\sec
\sin

\sinh
\sup
\tan
\tanh

\arccos\arcsin\arctan
\arg

\cos
\cosh
\cot
\coth

Table C.9: Les délimiteurs.
\uparrow\{\lfloor\langle|\rmoustache\arrowvert

↑
{
⌊
h
|

\Uparrow\}\rfloor\rangle
\|

⇑
}
⌋
i
k

\downarrow\updownarrow\lceil/↓l⌈/\Downarrow\Updownarrow\rceil\backslash

Table C.10: Les grands délimiteurs.
\lmoustache  \rgroup|\Arrowvertk \bracevert \lgroup⇓m⌉\\uparrow\{\lfloor\langle|\rmoustache\arrowvert

↑
{
⌊
h
|

\Uparrow\}\rfloor\rangle\|C⊲ \unlhd⊏ \Join♦ \leadsto\limsup
\ln
\log
\max

E
⋊
⋉

⇑
}
⌋
i
k

\downarrow\updownarrow\lceil
/

↓
l
⌈
/

\min
\Pr
\sec
\sin

\sinh
\sup
\tan
\tanh

\Downarrow\Updownarrow\rceil\backslash

Table C.10: Les grands délimiteurs.
\lmoustache  \rgroup|\Arrowvertk \bracevert Table C.11: Les symboles de latexsym⊳ \rhd⊏ \sqsubset
 \Diamond\exp \ker\gcd \lg\hom \lim\inf \liminf

Table C.9: Les délimiteurs.




\lhd
\sqsubset
\Box

\csc
\deg
\det
\dim

\lgroup

Table C.11: Les symboles de latexsym\unrhd
\mho

D
℧

C

\lhd
\sqsubset\Box⊳ \rhd⊏ \sqsubset
 \Diamond⊲ \unlhd⊏ \Join♦ \leadstoE⋊⋉\unrhd
\mho

D
℧

⇓
m
⌉
\




217

C.2

217

Symboles de l’AMS\dashrightarrow\leftrightarrows\leftarrowtail\curvearrowleft\upuparrows\multimap\rightleftarrows\twoheadrightarrow\rightleftharpoons\Rsh\downharpoonright\circlearrowright\leq\lesssim\lessdot\lesseqgtr\risingdotseq\backsimeq\sqsubset\precsim\trianglelefteq\smallsmile\Bumpeq\eqslantgtr\gtrdot\gtreqless\circeq\thickapprox\sqsupset\succsim\trianglerighteq\shortparallel\varpropto\backepsilon

C.2

Table C.12: Les ﬂèches de l’AMS
99K \dashleftarrow
L99 \leftleftarrows⇆ \Lleftarrow⇚ \twoheadleftarrow֋ \looparrowleft" \leftrightharpoonsx \circlearrowleft\Lsh⇈\upharpoonleft↿\downharpoonleft⊸ \leftrightsquigarrow ! \rightrightarrows⇄ \rightrightarrows⇉ \rightleftarrows
։ \rightarrowtail
֌ \looparrowright⇋ \curvearrowrighty\downdownarrows⇂\rightsquigarrow\upharpoonright↾

Table C.13: Les relations de l’AMS≤ \leqslant
6\eqslantless. \lessapprox/\approxeq⋖ \lll≪ \lessgtr⋚ \lesseqqgtr
S\doteqdot: \fallingdotseq;\backsim⋍ \subseteqqj\Subset⊏ \preccurlyeq
4\curlyeqprec- \precapprox
w\vartriangleleft
E \vDash\Vvdash` \smallfrowna\bumpeq≎ \geqq≧\geqslant
1 \gtrsim&\gtrapprox⋗ \ggg≫ \gtrless
R \gtreqqlessT\eqcirc⊜ \triangleq,\thicksim≈ \supseteqqk\Supset⊐ \succcurlyeq<\curlyeqsucc% \succapproxv\vartriangleright
D \Vdash\shortmid
q \between≬\pitchfork∝ \blacktriangleleft◭\therefore
 \blacktriangleright ◮\because

0
≅
≶
+
∽
⋐
2
⊳

≏
>
'
≷
≖
∼
⋑
3
⊲
p
⋔
∴
∵

⇇
և
⇌

⇃
⇉
⇄
#

Symboles de l’AMS\dashrightarrow\leftrightarrows\leftarrowtail\curvearrowleft\upuparrows\multimap\rightleftarrows\twoheadrightarrow\rightleftharpoons\Rsh\downharpoonright\circlearrowrightC\leq\lesssim\lessdot\lesseqgtr\risingdotseq\backsimeq\sqsubset\precsim\trianglelefteq\smallsmile\Bumpeq\eqslantgtr\gtrdot\gtreqless\circeq\thickapprox\sqsupset\succsim\trianglerighteq\shortparallel\varpropto\backepsilon

Table C.12: Les ﬂèches de l’AMS
99K \dashleftarrow
L99 \leftleftarrows⇆ \Lleftarrow⇚ \twoheadleftarrow֋ \looparrowleft" \leftrightharpoonsx \circlearrowleft\Lsh⇈\upharpoonleft↿\downharpoonleft⊸ \leftrightsquigarrow ! \rightrightarrows⇄ \rightrightarrows⇉ \rightleftarrows
։ \rightarrowtail
֌ \looparrowright⇋ \curvearrowrighty\downdownarrows⇂\rightsquigarrow\upharpoonright↾

Table C.13: Les relations de l’AMS≤ \leqslant
6\eqslantless. \lessapprox/\approxeq⋖ \lll≪ \lessgtr⋚ \lesseqqgtr
S\doteqdot: \fallingdotseq;\backsim⋍ \subseteqqj\Subset⊏ \preccurlyeq
4\curlyeqprec- \precapprox
w\vartriangleleft
E \vDash\Vvdash` \smallfrowna\bumpeq≎ \geqq≧\geqslant
1 \gtrsim&\gtrapprox⋗ \ggg≫ \gtrless
R \gtreqqlessT\eqcirc⊜ \triangleq,\thicksim≈ \supseteqqk\Supset⊐ \succcurlyeq<\curlyeqsucc% \succapproxv\vartriangleright
D \Vdash\shortmid
q \between≬\pitchfork∝ \blacktriangleleft◭\therefore
 \blacktriangleright ◮\because

0
≅
≶
+
∽
⋐
2
⊳

≏
>
'
≷
≖
∼
⋑
3
⊲
p
⋔
∴
∵

⇇
և
⇌

⇃
⇉
⇄
#

C

Symboles

218

Symboles218

Table C.14: Négations de ﬂèches de l’AMS\nleftarrow\nRightarrow

8 \nrightarrow; \nleftrightarrow

Table C.14: Négations de ﬂèches de l’AMS

9 \nLeftarrow= \nLeftrightarrow:<\nleftarrow\nRightarrow

Table C.15: Lettres grecques et hébraïques de l’AMS\digamma

̥ \varkappa

κ

\beth

i

\dalethkpα\urcornerqα\llcornerxα‫ג‬\gimel\digamma

C

≮

⊀

∤
⋪
(
&
≩

/
3
+
!

\nleq
\lneq
\lnsim\npreceq\nsim\nvdash\ntrianglelefteq\varsubsetneq\ngtr\ngeqq\gvertneqq\nsucc\succnapprox\nparallel\ntriangleright\nsupseteqq\supsetneqq:<

̥ \varkappa

κ

\beth

i

\dalethk‫ג‬\gimelTable C.16: Délimiteurs de l’AMS\lrcorner

yα\ulcorner

Table C.17: Négations de relations de l’AMS\nless\nleqq\lvertneqq\nprec\precnapprox\nmid\ntriangleleft\subsetneq\varsubsetneqq\ngeqslant\gneqq\gnapprox\succnsim\nshortparallel\nVDash\nsupseteq\varsupsetneq

9 \nLeftarrow= \nLeftrightarrow

Table C.15: Lettres grecques et hébraïques de l’AMS

Table C.16: Délimiteurs de l’AMS\ulcorner

8 \nrightarrow; \nleftrightarrow \nleqslant\lneqq \lnapprox
 \precnsim≁ \nshortmid
0 \nvDash
5 \nsubseteq\subsetneqq≯ \ngeq
 \gneq
 \gnsim⊁ \nsucceq
 \ncong∦ \nvDash⋫ \ntrianglerighteq# \supsetneq% \varsupsetneqq

pα\urcornerqα\llcorner

xα\lrcorneryα

Table C.17: Négations de relations de l’AMS

≨

.
2
*
$



≇
2
4
)
'

C

\nless\nleqq\lvertneqq\nprec\precnapprox\nmid\ntriangleleft\subsetneq\varsubsetneqq\ngeqslant\gneqq\gnapprox\succnsim\nshortparallel\nVDash\nsupseteq\varsupsetneq

≮

⊀

∤
⋪
(
&
≩

/
3
+
!

\nleq
\lneq
\lnsim\npreceq\nsim\nvdash\ntrianglelefteq\varsubsetneq\ngtr\ngeqq\gvertneqq\nsucc\succnapprox\nparallel\ntriangleright\nsupseteqq\supsetneqq

 \nleqslant\lneqq \lnapprox
 \precnsim≁ \nshortmid
0 \nvDash
5 \nsubseteq\subsetneqq≯ \ngeq
 \gneq
 \gnsim⊁ \nsucceq
 \ncong∦ \nvDash⋫ \ntrianglerighteq# \supsetneq% \varsupsetneqq


≨

.
2
*
$



≇
2
4
)
'

219

219

Table C.18: Opérateurs binaires de l’AMS\dotplus\Cup\doublebarwedge\boxdot\ltimes\rightthreetimes\circleddash\symcenterdot

∔
⋒
[
⊡
⋉
⋌
⊖

\smallsetminus\barwedge\boxminus\boxplus\rtimes\curlywedge\circledast\intercal

r
⊼
⊟
⊞
⋊
f
⊛
⊺

\Cap
\veebar\boxtimes\divideontimes\leftthreetimes\curlyvee\circledcirc

Table C.18: Opérateurs binaires de l’AMS
⋓
⊻
⊠
>
⋋
g
⊚

\dotplus\Cup\doublebarwedge\boxdot\ltimes\rightthreetimes\circleddash\symcenterdot

Table C.19: Symboles divers de l’AMS\hbar\triangledown\circledS\nexists\Game\varnothing\blacksquare\sphericalangle\diagup

C.3

~
▽
s
∄
a
∅

∢


\hslash\square\angle\mho\Bbbk\blacktriangle\blacklozenge\complement\diagdown

ℏ

∠
℧
k
N

∁


\vartriangle\lozenge\measuredangle\Finv\backprime\blacktriangledown\bigstar\eth\smallsetminus\barwedge\boxminus\boxplus\rtimes\curlywedge\circledast\intercal

r
⊼
⊟
⊞
⋊
f
⊛
⊺

\Cap
\veebar\boxtimes\divideontimes\leftthreetimes\curlyvee\circledcirc

⋓
⊻
⊠
>
⋋
g
⊚

Table C.19: Symboles divers de l’AMS
△
♦
∡
`
8
H
⋆
ð

\hbar
\triangledown\circledS\nexists\Game\varnothing\blacksquare\sphericalangle\diagup

Symboles du package textcomp
Table C.20: Symboles du package textcomp.
\textacutedbl
˝\textascendercompwordmark\textasciiacute´\textasciibreve\textasciicaron
ˇ \textasciidieresis\textasciigrave`\textasciimacron\textasterisksymcentered\textbaht\textbardbl‖\textbigcircle\textblank␢\textborn\textbrokenbar¦\textbullet\textcapitalcompwordmark ‌\textcelsius\textcent¢\textcentoldstyle\textcircledP℗ \textcolonmonetary\textcopyleft« \textcopyright

∔
⋒
[
⊡
⋉
⋌
⊖

C.3
‌
˘
¨
¯
฿
○
b
•
℃

₡
©

C

~
▽
s
∄
a
∅

∢


\hslash\square\angle\mho\Bbbk\blacktriangle\blacklozenge\complement\diagdown

ℏ

∠
℧
k
N

∁


\vartriangle\lozenge\measuredangle\Finv\backprime\blacktriangledown\bigstar
\eth

△
♦
∡
`
8
H
⋆
ð

Symboles du package textcomp
Table C.20: Symboles du package textcomp.
\textacutedbl
˝\textascendercompwordmark\textasciiacute´\textasciibreve\textasciicaron
ˇ \textasciidieresis\textasciigrave`\textasciimacron\textasterisksymcentered\textbaht\textbardbl‖\textbigcircle\textblank␢\textborn\textbrokenbar¦\textbullet\textcapitalcompwordmark ‌\textcelsius\textcent¢\textcentoldstyle\textcircledP℗ \textcolonmonetary\textcopyleft« \textcopyright

‌
˘
¨
¯
฿
○
b
•
℃

₡
©

C

Symboles

220

Table C.21: Symboles du package textcomp (suite).

C\textcurrency\textdaggerdbl\textdblhyphenchar\textdied\textdiv\textdollar\textdong\texteightoldstyle\texteuro\textflorin\textfractionsolidus\textguarani\textinterrobang\textlangle\textleaf\textlira\textlquill\textmho\textmu\textnaira\textnumero\textonehalf\textonequarter\textopenbullet\textordmasculine\textperiodsymcentered\textperthousand\textpilcrow\textquotesingle\textquotestraightdblbase\textrbrackdbl\textreferencemark\textrightarrow\textsection\textsevenoldstyle\textsterling\textthreeoldstyle\textthreequartersemdash\texttildelow\texttrademark\texttwooldstyle\textuparrow\textyen

¤
‡

d
÷
$
₫

€
ƒ
⁄

‽
〈
l
₤
⁅
℧
µ
₦
№
½
¼
◦
º

Symboles220

Table C.21: Symboles du package textcomp (suite).

\textdagger\textdblhyphen\textdegree\textdiscount\textdivorced\textdollaroldstyle\textdownarrow\textestimated\textfiveoldstyle\textfouroldstyle\textgravedbl

†
°

c

↓
℮




\textinterrobangdown\textlbrackdbl\textleftarrow\textlnot\textmarried\textminus\textmusicalnote\textnineoldstyle\textohm\textoneoldstyle\textonesuperior\textordfeminine\textparagraph\textpertenthousand‰ \textpeso¶\textpm'\textquotestraightbase„\textrangle〛\textrecipe※\textregistered→ \textrquill§\textservicemark
\textsixoldstyle£\textsurd\textthreequarters
 \textthreesuperior~\texttimes™ \texttwelveudash\texttwosuperior↑\textwon¥ \textzerooldstyle


〚
←
¬
m
−
♪

Ω

¹
ª
¶
%

±
‚
〉

®
⁆
℠

√
¾
³
×

²
₩


C

\textcurrency\textdaggerdbl\textdblhyphenchar\textdied\textdiv\textdollar\textdong\texteightoldstyle\texteuro\textflorin\textfractionsolidus\textguarani\textinterrobang\textlangle\textleaf\textlira\textlquill\textmho\textmu\textnaira\textnumero\textonehalf\textonequarter\textopenbullet\textordmasculine\textperiodsymcentered\textperthousand\textpilcrow\textquotesingle\textquotestraightdblbase\textrbrackdbl\textreferencemark\textrightarrow\textsection\textsevenoldstyle\textsterling\textthreeoldstyle\textthreequartersemdash\texttildelow\texttrademark\texttwooldstyle\textuparrow\textyen

¤
‡

d
÷
$
₫

€
ƒ
⁄

‽
〈
l
₤
⁅
℧
µ
₦
№
½
¼
◦
º

\textdagger\textdblhyphen\textdegree\textdiscount\textdivorced\textdollaroldstyle\textdownarrow\textestimated\textfiveoldstyle\textfouroldstyle\textgravedbl

†
°

c

↓
℮




\textinterrobangdown\textlbrackdbl\textleftarrow\textlnot\textmarried\textminus\textmusicalnote\textnineoldstyle\textohm\textoneoldstyle\textonesuperior\textordfeminine\textparagraph\textpertenthousand‰ \textpeso¶\textpm'\textquotestraightbase„\textrangle〛\textrecipe※\textregistered→ \textrquill§\textservicemark
\textsixoldstyle£\textsurd\textthreequarters
 \textthreesuperior~\texttimes™ \texttwelveudash\texttwosuperior↑\textwon¥ \textzerooldstyle


〚
←
¬
m
−
♪

Ω

¹
ª
¶
%

±
‚
〉

®
⁆
℠

√
¾
³
×

²
₩


221

221

Table C.22: La fonte Zapf Dingbats
0

16

1

2

3

4

5

6

7

8

9

10

Table C.22: La fonte Zapf Dingbats

11

12

13

14

15

0

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

✁

✂

✃ ✄

☎

✆

✇

✈

✉

☛

☞

✌

✍

✎

✏

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

✁

✂

✃ ✄

☎

✆

✇

✈

✉

☛

☞

✌

✍

✎

✏
47

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

✐

✑

✒

✓

✔

✕

✖

✗

✘

✙

✚

✛

✜

✝

✞

✟

✐

✑

✒

✓

✔

✕

✖

✗

✘

✙

✚

✛

✜

✝

✞

✟

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

✯

✠

✡

✢

✣

✤

✥

✦

✧

★

✩

✪

✫

✬

✭

✮

✯

✠

✡

✢

✣

✤

✥

✦

✧

★

✩

✪

✫

✬

✭

✮

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

✰

✱

✲

✳

✴

✵

✶

✷

✸

✹

✺

✻

✼

✽

✾

✿

✰

✱

✲

✳

✴

✵

✶

✷

✸

✹

✺

✻

✼

✽

✾

✿

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

❀

❁

❂

❃

❄

❅

❆

❇

❈

❉

❊

❋

●

❍

■

❏

❀

❁

❂

❃

❄

❅

❆

❇

❈

❉

❊

❋

●

❍

■

❏

111

111

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

❐

❑

❒

▲

▼

◆

❖

◗

❘

❙

❚

❛

❜

❝

❞

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

128

129

130

131

132

133

134

135

136

137

138

139

140

141

144

145

146

147

148

149

150

151

152

153

154

155

156

❡

❢

❣

❤

❥

❦

❧

♣

♦

♥

♠

①

161

162

163

164

165

166

167

168

169

170

171

172

160

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

❐

❑

❒

▲

▼

◆

❖

◗

❘

❙

❚

❛

❜

❝

❞

127

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

142

143

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

157

158

159

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

②

③

④

❡

❢

❣

❤

❥

❦

❧

♣

♦

♥

♠

①

②

③

④

173

174

175

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

160

⑤

⑥

⑦

⑧

⑨

⑩

❶

❷

❸

❹

❺

❻

❼

❽

❾

❿

⑤

⑥

⑦

⑧

⑨

⑩

❶

❷

❸

❹

❺

❻

❼

❽

❾

❿

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

➀

➁

➂

➃

➄

➅

➆

➇

➈

➉

➊

➋

➌

➍

➎

➏

➀

➁

➂

➃

➄

➅

➆

➇

➈

➉

➊

➋

➌

➍

➎

➏

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

➐

➑

➒

➓

➔

→

↔

↕

➘

➙

➚

➛

➜

➝

➞

➟

➐

➑

➒

➓

➔

→

↔

↕

➘

➙

➚

➛

➜

➝

➞

➟

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

➠

➡

➢

➣

➤

➥

➦

➧

➨

➩

➪

➫

➬

➭

➮

➯

➠

➡

➢

➣

➤

➥

➦

➧

➨

➩

➪

➫

➬

➭

➮

➯

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

➱

➲

➳

➴

➵

➶

➷

➸

➹

➺

➻

➼

➽

➾

➱

➲

➳

➴

➵

➶

➷

➸

➹

➺

➻

➼

➽

➾

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

C

255

C

Symboles

222

Symboles222

Table C.23: La fonte Symbol
0

1

16

32

0

3

4

17

18

19

20

!

∀

#

∃

33

1

34

2

35

3

36

4

5

6

7

8

9

10

11

12

13

14

15

0

1

21

22

23

24

25

26

27

28

29

30

31

16

%

&

∋

(

)

∗

+

,

−

.

/

37

5

38

6

39

7

40

8

41

9

48

49

50

51

52

53

54

55

56

≅

Α

Β

Χ

∆

Ε

Φ

Γ

Η
72

73

Π

Θ

Ρ

Σ

Τ

Υ

ς

Ω

Ξ



α

64

80

96

π

65

81

97

θ

66

82

β

98

ρ

67

83

χ

99

σ

68

84

δ

100

τ

69

85

ε

101

υ

70

86

φ

102

ϖ

71

87

γ

103

ω

88

η

104

ξ

42

:

43

;

44

<

45

=

46

>

47

32

?

0

57

58

59

60

61

62

63

Ι

ϑ

Κ

Λ

Μ

Ν

Ο
79

64

Ψ

Ζ

[

∴

]

⊥

_

89

ι

105

ψ

74

90

ϕ

106

ζ

75

91

κ

107

{

76

92

λ

108

|

77

93

µ

109

}

78

94

ν

110

∼

95

3

4

17

18

19

20

!

∀

#

∃

33

1

34

2

35

3

36

4

5

6

7

8

9

10

11

12

13

14

15

21

22

23

24

25

26

27

28

29

30

31

%

&

∋

(

)

∗

+

,

−

.

37

5

38

6

39

7

40

8

41

9

48

49

50

51

52

53

54

55

56

≅

Α

Β

Χ

∆

Ε

Φ

Γ

Η
72

73

Π

Θ

Ρ

Σ

Τ

Υ

ς

Ω

Ξ



α

80

ο

2

111

96

π

65

81

97

θ

66

82

β

98

ρ

67

83

χ

99

σ

68

84

δ

100

τ

69

85

ε

101

υ

70

86

φ

102

ϖ

71

87

γ

103

ω

88

η

104

ξ

42

:

43

;

44

<

45

=

46

>

/

47

?

57

58

59

60

61

62

63

Ι

ϑ

Κ

Λ

Μ

Ν

Ο

Ψ

Ζ

[

∴

]

⊥

89

ι

105

ψ

74

90

ϕ

106

ζ

75

91

κ

107

{

76

92

λ

108

|

77

93

µ

109

}

78

94

ν

110

∼

79

_

95

ο

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

ϒ

′

≤

⁄

∞

ƒ

♣

♦

♥

♠

↔ ←

↑

→

↓

ϒ

′

≤

⁄

∞

ƒ

♣

♦

♥

♠

↔ ←

↑

→









160

°

176

ℵ

192

∠

208

◊

C

2

Table C.23: La fonte Symbol

161

±

177

ℑ

193

∇

209

〈

224

225

240

241

〉

162

″

163

≥

178

179

ℜ

℘

194



210



226

∫

242

195



211



227

⌠

243

164

×

180

⊗

196



212



228



244

165

∝

181

⊕

197

∏

213

∑

229

⌡

245

166

∂

182

∅

198

√

214


230


246

167

•

183

∩

199

⋅

215



231



247

168

÷

184

∪

200

¬

216


232


248

169

≠

185

⊃

201

∧

217



233



249

170

≡

186

⊇

171

172

≈

…

187

⊄

188

⊂

202

203

∨

⇔ ⇐

218



234



250

219



235



251

204

220



236



252

173

189

⊆

174

190

∈

205

206

⇑

⇒

221



237



253

222



238



254

175

160

↵

°

191

176

∉

ℵ

207

192

⇓

∠

223

208



◊

161

±

177

ℑ

193

∇

209

〈

239

224

225

255

240

241

C

〉

162

″

163

≥

178

179

ℜ

℘

194



210



226

∫

242

195



211



227

⌠

243

164

×

180

⊗

196



212



228



244

165

∝

181

⊕

197

∏

213

∑

229

⌡

245

166

∂

182

∅

198

√

214


230


246

167

•

183

∩

199

⋅

215



231



247

168

÷

184

∪

200

¬

216


232


248

169

≠

185

⊃

201

∧

217



233



249

170

≡

186

⊇

171

172

≈

…

187

⊄

188

⊂

202

203

∨

⇔ ⇐

218



234



250

219



235



251

204

220



236



252

173

189

⊆

174

190

∈

205

206

⇑

⇒

221



237



253

222



238



254

↓

175

↵

191

∉

207

⇓

223



239

255

D

D

Notes de production

Sommaire

Notes de production

Sommaire

D.1

Distribution du moment

D.1

Distribution du moment

D.2

Les sources du manuelD.2

Les sources du manuel

D.3

Compilation

D.3

Compilation’ai rassemblé ici des éléments permettant d’exploiter les sources de ce document,’ai rassemblé ici des éléments permettant d’exploiter les sources de ce document,

J comment les compiler, avec quelle distribution de LTEX, comment les ﬁchiers sont

J comment les compiler, avec quelle distribution de LTEX, comment les ﬁchiers sontAA

organisés, etc.

organisés, etc.

D.1 Distribution du moment

D.1 Distribution du moment

Le présent ouvrage a été compilé sur deux systèmes Linux contenant la distribution
TEXlive :Le présent ouvrage a été compilé sur deux systèmes Linux contenant la distribution
TEXlive :1. la distribution TEXlive de la Ubuntu 08.04

1. la distribution TEXlive de la Ubuntu 08.04

2. une distribution TEXlive pour Debian Etch provenant de

2. une distribution TEXlive pour Debian Etch provenant de

http://people.debian.org/~preining/TeX/

http://people.debian.org/~preining/TeX/

Toute autre expérience fructueuse sur des systèmes diﬀérents est bien entendu labienvenue... De plus pour la génération du document au format pdf, seule la famille
Computer Modern dans sa version « CM-Super » a été testée.

Toute autre expérience fructueuse sur des systèmes diﬀérents est bien entendu labienvenue... De plus pour la génération du document au format pdf, seule la famille
Computer Modern dans sa version « CM-Super » a été testée.

D.2 Les sources du manuel

D.2 Les sources du manuel

D.2.1 Structure

D.2.1 Structure

Les sources du manuel sont organisées selon le principe suivant :Les sources du manuel sont organisées selon le principe suivant :• sources LATEX dans le répertoire corps avec un ﬁchier par chapitre ;• sources LATEX dans le répertoire corps avec un ﬁchier par chapitre ;• les styles (sty et cls) dans le répertoire styles ;• les styles (sty et cls) dans le répertoire styles ;• les images dans un répertoire pngs ;• les images dans un répertoire pngs ;• le répertoire texs contient des sources LATEX à inclure dans le document (modèles de lettre, de fax, code contenant des appels à Psfrag ou Pstricks) ;223

D• le répertoire texs contient des sources LATEX à inclure dans le document (modèles de lettre, de fax, code contenant des appels à Psfrag ou Pstricks) ;223

DNotes de production

224• les sources xfig dans le répertoire figs ;• les sources xfig dans le répertoire figs ;• tout ce qui a trait à l’index, à la bibliographie et au glossaire est stocké dansle répertoire bibidx ;• tout ce qui a trait à l’index, à la bibliographie et au glossaire est stocké dansle répertoire bibidx ;Les sources xfig et certains « bouts » de ﬁchiers LATEX sont traduits au format pdf,
postscript encapsulé ou non, par un makeﬁle les stockant :Les sources xfig et certains « bouts » de ﬁchiers LATEX sont traduits au format pdf,
postscript encapsulé ou non, par un makeﬁle les stockant :• dans le répertoire epss

• dans le répertoire epss

• dans le répertoire pdfs

• dans le répertoire pdfs

• dans le répertoire pss• dans le répertoire pss

selon le moteur utilisé (latex ou pdflatex).

selon le moteur utilisé (latex ou pdflatex).

D.2.2 Styles

D.2.2 Styles

Le ﬁchier manuel.cls contient la déﬁnition de la classe du manuel. Ce ﬁchier fait
appel à une série de packages « du commerce » et une série de packages « maison ».
On trouve, pour ces derniers, un ﬁchier source pour :Le ﬁchier manuel.cls contient la déﬁnition de la classe du manuel. Ce ﬁchier fait
appel à une série de packages « du commerce » et une série de packages « maison ».
On trouve, pour ces derniers, un ﬁchier source pour :• chaque « nouveau jouet » : onglets, nota, sommaire, glossaire, boîte avec untitre (titlebox.sty), exemples, lettrine, renvois (voir.sty), citations et épigraphes• chaque « nouveau jouet » : onglets, nota, sommaire, glossaire, boîte avec untitre (titlebox.sty), exemples, lettrine, renvois (voir.sty), citations et épigraphes• le sommaire• le sommaire• la géométrie globale du document• la géométrie globale du document• l’allure des en-têtes et pieds de pages• l’allure des en-têtes et pieds de pages• l’allure des sections/chapitres/etc.

• l’allure des sections/chapitres/etc.

• des commandes en vrac utilisées dans le document (manumac.sty)• des commandes en vrac utilisées dans le document (manumac.sty)

Sauf indication contraire, ces ﬁchiers portent un nom ressemblant étrangement à ce
qu’ils contiennent.

D

Notes de production

224

Sauf indication contraire, ces ﬁchiers portent un nom ressemblant étrangement à ce
qu’ils contiennent.

D.3 Compilation

D.3 Compilation

D.3.1 Makefile

D.3.1 Makefile

L’arborescence racine des sources contient un ﬁchier Makeﬁle pour le manuel, qu’il
faut copier :cp Makefile.manuel MakefileD

L’arborescence racine des sources contient un ﬁchier Makeﬁle pour le manuel, qu’il
faut copier :cp Makefile.manuel MakefileD.3 Compilation

D.3 Compilation

225

D.3.2 Figures

225

D.3.2 Figures

Les ﬁgures peuvent êtres compilées grâce aux commandes :Les ﬁgures peuvent êtres compilées grâce aux commandes :#1. produire les figures
make figs#2. générer les figures « récursives » de l’introductioncommand latex --interaction nonstopmode guide-local
command latex --interaction nonstopmode guide-local# 2 fois pour avoir la table des matières
make recursefigs#1. produire les figures
make figs#2. générer les figures « récursives » de l’introductioncommand latex --interaction nonstopmode guide-local
command latex --interaction nonstopmode guide-local# 2 fois pour avoir la table des matières
make recursefigs

Il faut disposer du logiciel transfig connexe à xfig pour traduire les sources en
pdf et eps. Sur le site http://cours.enise.fr/info/latex est disponible unearchive contenant les figures déjà traduites...

Il faut disposer du logiciel transfig connexe à xfig pour traduire les sources en
pdf et eps. Sur le site http://cours.enise.fr/info/latex est disponible unearchive contenant les figures déjà traduites...

D.3.3 Dvi et postscript

D.3.3 Dvi et postscript

latex guide-local
make bibindex
latex guide-local
latex guide-local
dvips guide-local -o guide-local

latex guide-local
make bibindex
latex guide-local
latex guide-local
dvips guide-local -o guide-local

D.3.4 Pdf

D.3.4 Pdf

Rien de particulier

Rien de particulier

pdflatex guide-local
make bibindex
pdflatex guide-local
pdflatex guide-local

pdflatex guide-local
make bibindex
pdflatex guide-local
pdflatex guide-local

D.3.5 Versions imprimables sur papier A4

D.3.5 Versions imprimables sur papier A4

Les diﬀérentes versions imprimables dont il est question au paragraphe page xi sontgénérées à partir d’un ﬁchier postscript à jour :Les diﬀérentes versions imprimables dont il est question au paragraphe page xi sontgénérées à partir d’un ﬁchier postscript à jour :dvips guide-local -o guide-local

dvips guide-local -o guide-local

et des utilitaires psutils. Les versions « reliure longue », « reliure courte 1 exemplaire »et « reliure courte 2 exemplaires » sont respectivement génrérées par les commandes
suivantes :make print-0
make print-1
make print-2

et des utilitaires psutils. Les versions « reliure longue », « reliure courte 1 exemplaire »et « reliure courte 2 exemplaires » sont respectivement génrérées par les commandes
suivantes :Dmake print-0
make print-1
make print-2

DNotes de production

226

D.3.6 Nettoyage de printemps

D.3.6 Nettoyage de printemps

En bref :make cleanfigs
make cleantex
make cleandocs

D

Notes de production

226

En bref :← efface tous les eps/pdfs/...
← efface tous les fichiers auxiliares← efface tous les documents générés(dvi/ps/pdf/...)

make cleanfigs
make cleantex
make cleandocs

D← efface tous les eps/pdfs/...
← efface tous les fichiers auxiliares← efface tous les documents générés(dvi/ps/pdf/...)

Bibliographie[1] « the UK List of TEX Frequently Asked Questions on the Web ».
une mine d’informations en anglais, disponible à http://www.tex.ac.uk/cgi-bin/texfaq2html, listant les fameuses questions « fréquemment posées » sur TEX & LATEX(contrairement à ce que le titre indique).

[2] Jacques André. « Petites leçons de typographie ». 1990.

Bibliographie[1] « the UK List of TEX Frequently Asked Questions on the Web ».
une mine d’informations en anglais, disponible à http://www.tex.ac.uk/cgi-bin/texfaq2html, listant les fameuses questions « fréquemment posées » sur TEX & LATEX(contrairement à ce que le titre indique).

[2] Jacques André. « Petites leçons de typographie ». 1990.

On doit pouvoir trouver ce document à l’url http://jacques-andre.fr Il s’agit d’un
article intéressant sur la typographie avec beaucoup d’exemples sur l’emploi des majuscules, la ponctuation, l’usage du souligné et les caractères français.

On doit pouvoir trouver ce document à l’url http://jacques-andre.fr Il s’agit d’un
article intéressant sur la typographie avec beaucoup d’exemples sur l’emploi des majuscules, la ponctuation, l’usage du souligné et les caractères français.

[3] W. Appel, E. Chevalier, E. Cornet, Desreux S., Fleck J-.J., and Pichaureau P.. LATEX pour l’impatient. In Technique et pratique. H & K, 2007.

[3] W. Appel, E. Chevalier, E. Cornet, Desreux S., Fleck J-.J., and Pichaureau P.. LATEX pour l’impatient. In Technique et pratique. H & K, 2007.

[4] Denis Bitouzé and Jean-Côme Charpentier. LATEX. In Collection Synthex.
Pearson Education France, September 2006.

[4] Denis Bitouzé and Jean-Côme Charpentier. LATEX. In Collection Synthex.
Pearson Education France, September 2006.

[5] M. Goossens, S. Rahtz, and F. Mittelbach. The LATEX Graphics Companion. Addison-Wesley, 1997.

[5] M. Goossens, S. Rahtz, and F. Mittelbach. The LATEX Graphics Companion. Addison-Wesley, 1997.

Par les auteurs du LATEX Companion, un livre sur l’utilisation des graphiques au sens
large du terme, avec notamment une exploration des packages permettant de dessiner
avec LATEX et une présentation de l’utilisation des fontes Postscript.

Par les auteurs du LATEX Companion, un livre sur l’utilisation des graphiques au sens
large du terme, avec notamment une exploration des packages permettant de dessiner
avec LATEX et une présentation de l’utilisation des fontes Postscript.

[6] Michel Goossens, Franck Mittelbach, and Alexander Samarin. The LATEX
companion. Addison-Wesley, 1994.

[6] Michel Goossens, Franck Mittelbach, and Alexander Samarin. The LATEX
companion. Addison-Wesley, 1994.

LA bible de LATEX2ǫ et de ses packages. Ce livre qui est un must pour tout utilisateur
qui veut comprendre les fonctions internes de LATEX contient des informations très
précises sur : la manière de personnaliser les mises en page par défaut, l’utilisation
des fontes, moult packages, etc.

LA bible de LATEX2ǫ et de ses packages. Ce livre qui est un must pour tout utilisateur
qui veut comprendre les fonctions internes de LATEX contient des informations très
précises sur : la manière de personnaliser les mises en page par défaut, l’utilisation
des fontes, moult packages, etc.

[7] « Lexique des règles typographiques en usage à l’Imprimerie nationale », 1990.

[7] « Lexique des règles typographiques en usage à l’Imprimerie nationale », 1990.

Il s’agit de l’ensemble des règles qui sont appliquées dans les livres produits par l’Imprimerie nationale. Ce lexique est présenté sous la forme de thèmes classés par ordre
alphabétique. C’est une source d’informations intéressante puisqu’elle fait référence
dans l’imprimerie française.

Il s’agit de l’ensemble des règles qui sont appliquées dans les livres produits par l’Imprimerie nationale. Ce lexique est présenté sous la forme de thèmes classés par ordre
alphabétique. C’est une source d’informations intéressante puisqu’elle fait référence
dans l’imprimerie française.

[8] D. E. Knuth. The Art of Computer Programming, volume 1–3. AddisonWesley, 1997–98.

[8] D. E. Knuth. The Art of Computer Programming, volume 1–3. AddisonWesley, 1997–98.

Trois volumes sur « l’art de programmer ». Un quatrième tome est en préparation.
Cet ensemble de livres a été accueilli par la communauté scientiﬁque comme un
des ouvrages les plus importants de ce siècle (cf. http://www.amsci.org/amsci/
bookshelf/centurylist.html à ce sujet et http://www-cs-staff.stanford.edu/~knuth/taocp.html sur la page web de Knuth pour plus d’info sur « TAOCP »).

Trois volumes sur « l’art de programmer ». Un quatrième tome est en préparation.
Cet ensemble de livres a été accueilli par la communauté scientiﬁque comme un
des ouvrages les plus importants de ce siècle (cf. http://www.amsci.org/amsci/
bookshelf/centurylist.html à ce sujet et http://www-cs-staff.stanford.edu/~knuth/taocp.html sur la page web de Knuth pour plus d’info sur « TAOCP »).

227

227

228

Bibliographie[9] Donald E. Knuth. The TEXBook. Addison-Wesley, 1988.

228

Bibliographie[9] Donald E. Knuth. The TEXBook. Addison-Wesley, 1988.

LA bible de TEX. Un livre plein de « virages dangereux » expliquant très précisément
le fonctionnement interne de TEX. C’est un ouvrage de référence assez diﬃcile à lire
et qui ne constitue pas une introduction à TEX destinée aux débutants — à mon avis.

LA bible de TEX. Un livre plein de « virages dangereux » expliquant très précisément
le fonctionnement interne de TEX. C’est un ouvrage de référence assez diﬃcile à lire
et qui ne constitue pas une introduction à TEX destinée aux débutants — à mon avis.

[10] Leslie Lamport. LATEX : A Document Preparation System. Addison-Wesley,2eedition, 1994.

[10] Leslie Lamport. LATEX : A Document Preparation System. Addison-Wesley,2eedition, 1994.

Le livre de l’auteur de LATEX dans sa seconde édition couvrant LATEX 2ε . Bien évidemment une très bonne introduction, avec en ﬁn d’ouvrage un guide de référence
des commandes.

Le livre de l’auteur de LATEX dans sa seconde édition couvrant LATEX 2ε . Bien évidemment une très bonne introduction, avec en ﬁn d’ouvrage un guide de référence
des commandes.

[11] Vincent Lozano. « Tout ce que vous avez toujours voulu savoir sur Unix sansjamais oser le demander », 2006. http://www.enise.fr/cours/info/unix.

[11] Vincent Lozano. « Tout ce que vous avez toujours voulu savoir sur Unix sansjamais oser le demander », 2006. http://www.enise.fr/cours/info/unix.

[12] Lars Madsen. « Avoid eqnarray ! ». The PracTEX Journal, (4), 2006.

[12] Lars Madsen. « Avoid eqnarray ! ». The PracTEX Journal, (4), 2006.

Un article recensant les « pourquoi » ne pas utiliser cet environnement. L’article doitêtre disponible à http://home.imf.au.dk/daleif.

Un article recensant les « pourquoi » ne pas utiliser cet environnement. L’article doitêtre disponible à http://home.imf.au.dk/daleif.

[13] Yves Perrousseaux. Manuel de typographie française élémentaire. Atelier
Perrousseaux, 1995.

[13] Yves Perrousseaux. Manuel de typographie française élémentaire. Atelier
Perrousseaux, 1995.

Un « petit » livre très pédagogique sur la typographie, contenant un historique très
intéressant, et une liste de règles en usage dans le monde de la typographie.

Un « petit » livre très pédagogique sur la typographie, contenant un historique très
intéressant, et une liste de règles en usage dans le monde de la typographie.

[14] Mark Trettin. « Une liste des péchés des utilisateurs de LATEX ». 2004.
Ce document connu sous le nom l2tabu, traite « des commandes et extensions obsolètes, et quelques autres erreurs ».

[14] Mark Trettin. « Une liste des péchés des utilisateurs de LATEX ». 2004.
Ce document connu sous le nom l2tabu, traite « des commandes et extensions obsolètes, et quelques autres erreurs ».

Glossaire

Compilation

Glossaire

CompilationMême si ce terme n’est pas très rigoureux d’un point de vue scientiﬁque,
on appelle compilation la phase permettant de traduire le source LATEX en unﬁchier au format DVI ou PDF.
Document maître

Même si ce terme n’est pas très rigoureux d’un point de vue scientiﬁque,
on appelle compilation la phase permettant de traduire le source LATEX en unﬁchier au format DVI ou PDF.
Document maître

C’est le document source qui contient le begin{document} dans le contexted’un document divisé en plusieurs ﬁchiers.
Document source

C’est le document source qui contient le begin{document} dans le contexted’un document divisé en plusieurs ﬁchiers.
Document source

Un document texte contenant le texte et les commandes LAT X. T X C’est

Un document texte contenant le texte et les commandes LATEX. TEX C’est
le document à ne pas perdre car il est à la source de la production papier,écran, etc. au même titre qu’un code source en langage C est la source d’unprogramme exécutable.

EE
le document à ne pas perdre car il est à la source de la production papier,écran, etc. au même titre qu’un code source en langage C est la source d’unprogramme exécutable.
Dvi

Dvi
Format de ﬁchier Device Independent mis au point par Knuth de manière à
créer, à partir du document source, un document dont le format est indépendantde la plateforme et du matériel.

Fichiers auxiliaires

Format de ﬁchier Device Independent mis au point par Knuth de manière à
créer, à partir du document source, un document dont le format est indépendantde la plateforme et du matériel.
Fichiers auxiliaires

Les ﬁchiers produits par LATEX lors d’une compilation. Ils portent le nom
du document source, et ont une extension de trois lettres rappelant leur rôle.
FormatLes ﬁchiers produits par LATEX lors d’une compilation. Ils portent le nom
du document source, et ont une extension de trois lettres rappelant leur rôle.
FormatC’est un ensemble de commandes ou macro précompilées et stockées dans unﬁchier portant généralement l’extension .fmt. Les plus connus de ces ensembles
sont le format plain de TEX et le format LATEX.
Macro

C’est un ensemble de commandes ou macro précompilées et stockées dans unﬁchier portant généralement l’extension .fmt. Les plus connus de ces ensembles
sont le format plain de TEX et le format LATEX.
Macro

C’est l’outil permettant de faire faire des choses compliquées à LATEX en
passant en ordre simple. Les macros, appelées aussi commandes, ressemblent
un peu aux routines des langages de programmation.
PDF

C’est l’outil permettant de faire faire des choses compliquées à LATEX en
passant en ordre simple. Les macros, appelées aussi commandes, ressemblent
un peu aux routines des langages de programmation.
PDF

Pour portable document format, format de ﬁchier créé par la société Adobe,
dont le but est de pouvoir échanger facilement des documents d’un système à
229

Pour portable document format, format de ﬁchier créé par la société Adobe,
dont le but est de pouvoir échanger facilement des documents d’un système à
229

230

Glossaire

230

un autre. Le format PDF peut être créé de plusieurs façons à partir d’un source
LATEX(cf. A page 199).
PostScript

un autre. Le format PDF peut être créé de plusieurs façons à partir d’un source
LATEX(cf. A page 199).
PostScript

Langage déﬁni par la société Adobe pour décrire un document destiné à l’impression. Ce langage composé de primitives de bas niveau peut être interprétépar des logiciels pour réaliser des aperçus avant impression ou directement pardes circuits électroniques embarqués sur les imprimantes pour générer l’image
à imprimer.
Références

Langage déﬁni par la société Adobe pour décrire un document destiné à l’impression. Ce langage composé de primitives de bas niveau peut être interprétépar des logiciels pour réaliser des aperçus avant impression ou directement pardes circuits électroniques embarqués sur les imprimantes pour générer l’image
à imprimer.
Références

Système permettant de manipuler les numéros des paragraphes, équations,chapitres, etc. de manière symbolique, pour s’aﬀranchir de la diﬃculté de lesmettre à jour lorsque l’on change la mise en page.
LATEX

Système permettant de manipuler les numéros des paragraphes, équations,chapitres, etc. de manière symbolique, pour s’aﬀranchir de la diﬃculté de lesmettre à jour lorsque l’on change la mise en page.
LATEX

C’est l’ensemble de macros déﬁni par Leslie Lamport au dessus de TEX.
La version utilisée aujourd’hui est LATEX 2ε .
TEXGlossaire

C’est l’ensemble de macros déﬁni par Leslie Lamport au dessus de TEX.
La version utilisée aujourd’hui est LATEX 2ε .
TEXLe moteur de base, LATEX étant un ensemble de macros formant une surcouche. La version de TEX est stabilisée à la version 3.14159, à chaque nouvelleversion Knuth ajoute une décimale.

Le moteur de base, LATEX étant un ensemble de macros formant une surcouche. La version de TEX est stabilisée à la version 3.14159, à chaque nouvelleversion Knuth ajoute une décimale.

Indexalignement
à droite . . . . . . . . . . . . . . . . . . . . . . . 21
à gauche . . . . . . . . . . . . . . . . . . . . . . 21
\Alph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\alph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
amsmath extension . 37, 44, 46, 47, 49,
207
amssymb extension . v, 37, 39, 40, 166,
213
\AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\appendix . . . . . . . . . . . . . . . . . . . . . . 189\arabic . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\arccos . . . . . . . . . . . . . . . . . . . . . . . . . 216\arcsin . . . . . . . . . . . . . . . . . . . . . . . . . 216\arctan . . . . . . . . . . . . . . . . . . . . . . . . . 216\arg . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
argumentde commandes . . . . . . . . . . . . . . . . 68
optionnel . . . . . . . . . . . . . . . . . . . 9, 69
array extension . . . . . . . . . . . . . . . 23, 207
array environnement . . . . . . . . . 44, 45
articlerédaction . . . . . . . . . . . . . . . . . . . . . 83
style . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Aspell . . . . . . . . . . . . . . . . . . . . . . . 207, 211
aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . 207
AucTEX . . . . . . . . . . . . . . 84, 86, 209, 210\author . . . . . . . . . . . . . . . . . . . . . . . . . . 83

SymbolesR
Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41\( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42\- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34... extension . . . . . . . . . . . . . . . . . . . . . . 125\/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19\= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116\[ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11, 38§ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
TEXnicCenter . . . . . . . . . . . . . . . . . . . . . . . 4
TEXshop . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

A
a4wide extension . . . . . . . . . . . . . . . . . xiv
accents . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
et fontes . . . . . . . . . . . . . . . . . . . . . . 93
mathématique . . . . . . . . . . . . . . . . 42
saisie . . . . . . . . . . . . . . . . . . . . . . . . . 12
sur les majuscules . . . . . . . . . . . . .98
accolades . . . . . . . . . . . . . . . . . . . . . . . . . 45
Acrobat Reader . . . . . . . . . . . . . . 200–202
acrobat reader . . . . . . . . . . . . . . . . . . . . . . 4\acute . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\addcontentsline . . . . . . . . . . . . . . 180\addpages . . . . . . . . . . . . . . . . . . . . . . 101\address . . . . . . . . . . . . . . . . . . . . . 84, 99\addtocounter . . . . . . . . . . . . . . . . . . . 52
\addtolength . . . . . . . . . . . . . . . . . . . . 56
\AE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\ae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
algorithms extension . . . . . . . . . . . . . . 208
align environnement . . . . . . . . . . . . . 47align* environnement . . . . . . . . . . . . 47

Bbabel extension 13, 93, 94, 96, 97, 143,
153, 155\backmatter . . . . . . . . . . . . 91, 151, 201\bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42\baselineskip longueur . . . . . 55, 161
bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
bbm extension . . . . . . . . . . . . . . . . . . . . . 40
bbold extension . . . . . . . . . . . . . . . . . . . .40
beton extension . . . . . . . . . . . . . . . . . . 123
231

Index

alignement
à droite . . . . . . . . . . . . . . . . . . . . . . . 21
à gauche . . . . . . . . . . . . . . . . . . . . . . 21
\Alph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\alph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\alpha . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
amsmath extension . 37, 44, 46, 47, 49,
207
amssymb extension . v, 37, 39, 40, 166,
213
\AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\appendix . . . . . . . . . . . . . . . . . . . . . . 189\arabic . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\arccos . . . . . . . . . . . . . . . . . . . . . . . . . 216\arcsin . . . . . . . . . . . . . . . . . . . . . . . . . 216\arctan . . . . . . . . . . . . . . . . . . . . . . . . . 216\arg . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
argumentde commandes . . . . . . . . . . . . . . . . 68
optionnel . . . . . . . . . . . . . . . . . . . 9, 69
array extension . . . . . . . . . . . . . . . 23, 207
array environnement . . . . . . . . . 44, 45
articlerédaction . . . . . . . . . . . . . . . . . . . . . 83
style . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Aspell . . . . . . . . . . . . . . . . . . . . . . . 207, 211
aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . 207
AucTEX . . . . . . . . . . . . . . 84, 86, 209, 210\author . . . . . . . . . . . . . . . . . . . . . . . . . . 83

SymbolesR
Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41\( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42\- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34... extension . . . . . . . . . . . . . . . . . . . . . . 125\/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19\= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116\[ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11, 38§ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
TEXnicCenter . . . . . . . . . . . . . . . . . . . . . . . 4
TEXshop . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

A
a4wide extension . . . . . . . . . . . . . . . . . xiv
accents . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
et fontes . . . . . . . . . . . . . . . . . . . . . . 93
mathématique . . . . . . . . . . . . . . . . 42
saisie . . . . . . . . . . . . . . . . . . . . . . . . . 12
sur les majuscules . . . . . . . . . . . . .98
accolades . . . . . . . . . . . . . . . . . . . . . . . . . 45
Acrobat Reader . . . . . . . . . . . . . . 200–202
acrobat reader . . . . . . . . . . . . . . . . . . . . . . 4\acute . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\addcontentsline . . . . . . . . . . . . . . 180\addpages . . . . . . . . . . . . . . . . . . . . . . 101\address . . . . . . . . . . . . . . . . . . . . . 84, 99\addtocounter . . . . . . . . . . . . . . . . . . . 52
\addtolength . . . . . . . . . . . . . . . . . . . . 56
\AE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\ae . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
algorithms extension . . . . . . . . . . . . . . 208
align environnement . . . . . . . . . . . . . 47align* environnement . . . . . . . . . . . . 47

Bbabel extension 13, 93, 94, 96, 97, 143,
153, 155\backmatter . . . . . . . . . . . . 91, 151, 201\bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42\baselineskip longueur . . . . . 55, 161
bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
bbm extension . . . . . . . . . . . . . . . . . . . . . 40
bbold extension . . . . . . . . . . . . . . . . . . . .40
beton extension . . . . . . . . . . . . . . . . . . 123
231

232
\bfseries . . . . . . . . . . . . . . . . . . . . . . . . 18
BibTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
BIBINPUTS
variable d’environnement . . . . . .88
bibliographie
article . . . . . . . . . . . . . . . . . . . . . . . . 85
citations . . . . . . . . . . . . . . . . . . . . . . 86
conférence . . . . . . . . . . . . . . . . . . . . 86
livre . . . . . . . . . . . . . . . . . . . . . . . . . . 86
saisie . . . . . . . . . . . . . . . . . . . . . . . . . 84
style . . . . . . . . . . . . . . . . . . . . . . . . . . 84
alpha, 87
plain, 87
unsrt, 87\bibliography . . . . . . . . . . . . . . . . . . . 87\bibliographystyle . . . . . . . . . . . . . 87\bibname . . . . . . . . . . . . . . . . . . . . . . . . 151
BibTEX . . . . . . . . . . . . . . 84–88, 209, 210
bibunits extension . . . . . . . . . . . . . . . . 208
bidouillage . . . . . . . . . . . . . . . . . . . . . . .116
bidule extension . . . . . . . . . . . . . . . . . . 132\bidule . . . . . . . . . . 114, 116, 117, 176\blacktriangle . . . . . . . . . . . . . . . . .166
bmatrix environnement . . . . . . . . . . . 46
\boiteentreeglossaire . . . . . . . . 182
book.cls 138–140, 142, 143, 151, 179,
188
bookmarks . . . . . . . . . . . . . . . . . .156, 201boîtebordure . . . . . . . . . . . . . . . . . . . . . . . 62
dimensions . . . . . . . . . . . . . . . . . . . . 56
et césure . . . . . . . . . . . . . . . . . . . . . . 35
exemples . . . . . . . . . . . . . . . . . . . . . .60
paragraphe . . . . . . . . . . . . . . . . . . . 65
positionnement . . . . . . . . . . . . . . . 63
sauvegarde . . . . . . . . . . . . . . . . . . . . 67
simple . . . . . . . . . . . . . . . . . . . . . . . . 62
Bravo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
\breve . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
brouillon mode . . . . . . . . . . . . . . . . . . . 33
\bsc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97\bwarg . . . . . . . . . . . . . . . . . . . . . . . . . . 164\bwmarg . . . . . . . . . . . . . . . . . . . . . . . . . 164

Ccadre de boîte . . . . . . . . . . . . . . . . . . . . 62
cadrechap environnement . . . . . . . 141
calc extension . . . . . . . . . . . . . . . . . . . . . 71

Index\caption . . . . . . . . . . . . . . . . . . 28–30, 54
caractèred’échappement . . . . . . . . . . . . . . . . 10
spéciaux . . . . . . . . . . . . . . . . . . . . . . 10
caractère @ . . . . . . . . . . . . . . . . . . . . . . 116\cdots . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
center environnement . . . . . . . . 21, 24\centering . . . . . . . . . . . . . . . . . . . . . . 21
centrage . . . . . . . . . . . . . . . . . . . . . . . . . . 21changebar extension . . . . . . . . . . . . . . 116\chapfont . . . . . . . . . . . . . . . . . . . . . . 141\chapnumfont . . . . . . . . . . . . . . . . . . . 141\chapter . . 25, 26, 91, 140, 180, 189,
201
\chapter* . . . . . . . . . . . . . . . . . . . . . . 140
chapterbib extension . . . . . . . . . . . . . . 208\chaptermark . . . . . . . . . . . . . . . . . . . 148\check . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
chngpage extension . . . . . . . . . . 120, 166
citations . . . . . . . . . . . . . . . . . . . . . . 24, 86\cite . . . . . . . . . . . . . . . . . . . . . 84, 86, 87\cleardoublepage . . . . . . . . . . 34, 146\clearpage . . . . . . . . . . . . . . . . . . . . . . 34
\closing . . . . . . . . . . . . . . . . . . . . . . . . 100
codageiso-latin1 . . . . . . . . . . . . . . . . . . . . . 93
OT1 . . . . . . . . . . . . . . . . . . . . . . . . . . 93
T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
\colarg . . . . . . . . . . . . . . . . . . . . . . . . . 164\colorbox . . . . . . . . . . . . . . . . . . 185, 187
commandeappel . . . . . . . . . . . . . . . . . . . . . . . . . 11
déﬁnitions . . . . . . . . . . . . . . . . . . . . 68
redéﬁnition . . . . . . . . . . . . . . . . . . . 70
commentaires . . . . . . . . . . . . . . . . . . . . . 11
compilation . . . . . . . . . . . . . . . . . . . . . . . . 6
et références . . . . . . . . . . . . . . . . . . 31
compteuraﬃchage . . . . . . . . . . . . . . . . . . . . . . 53
manipulation . . . . . . . . . . . . . . . . . 52
\conc . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
concrete . . . . . . . . . . . . . . . . . . . . . . . . . 123\contentsname . . . . . . . . . . . . . . . . . . 151
convert . . . . . . . . . . . . . . . . . . . . . . . . 74, 82\cos . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\cosh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\cot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\coth . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
courrier . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

232
\bfseries . . . . . . . . . . . . . . . . . . . . . . . . 18
BibTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
BIBINPUTS
variable d’environnement . . . . . .88
bibliographie
article . . . . . . . . . . . . . . . . . . . . . . . . 85
citations . . . . . . . . . . . . . . . . . . . . . . 86
conférence . . . . . . . . . . . . . . . . . . . . 86
livre . . . . . . . . . . . . . . . . . . . . . . . . . . 86
saisie . . . . . . . . . . . . . . . . . . . . . . . . . 84
style . . . . . . . . . . . . . . . . . . . . . . . . . . 84
alpha, 87
plain, 87
unsrt, 87\bibliography . . . . . . . . . . . . . . . . . . . 87\bibliographystyle . . . . . . . . . . . . . 87\bibname . . . . . . . . . . . . . . . . . . . . . . . . 151
BibTEX . . . . . . . . . . . . . . 84–88, 209, 210
bibunits extension . . . . . . . . . . . . . . . . 208
bidouillage . . . . . . . . . . . . . . . . . . . . . . .116
bidule extension . . . . . . . . . . . . . . . . . . 132\bidule . . . . . . . . . . 114, 116, 117, 176\blacktriangle . . . . . . . . . . . . . . . . .166
bmatrix environnement . . . . . . . . . . . 46
\boiteentreeglossaire . . . . . . . . 182
book.cls 138–140, 142, 143, 151, 179,
188
bookmarks . . . . . . . . . . . . . . . . . .156, 201boîtebordure . . . . . . . . . . . . . . . . . . . . . . . 62
dimensions . . . . . . . . . . . . . . . . . . . . 56
et césure . . . . . . . . . . . . . . . . . . . . . . 35
exemples . . . . . . . . . . . . . . . . . . . . . .60
paragraphe . . . . . . . . . . . . . . . . . . . 65
positionnement . . . . . . . . . . . . . . . 63
sauvegarde . . . . . . . . . . . . . . . . . . . . 67
simple . . . . . . . . . . . . . . . . . . . . . . . . 62
Bravo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
\breve . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
brouillon mode . . . . . . . . . . . . . . . . . . . 33
\bsc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97\bwarg . . . . . . . . . . . . . . . . . . . . . . . . . . 164\bwmarg . . . . . . . . . . . . . . . . . . . . . . . . . 164

Ccadre de boîte . . . . . . . . . . . . . . . . . . . . 62
cadrechap environnement . . . . . . . 141
calc extension . . . . . . . . . . . . . . . . . . . . . 71

Index\caption . . . . . . . . . . . . . . . . . . 28–30, 54
caractèred’échappement . . . . . . . . . . . . . . . . 10
spéciaux . . . . . . . . . . . . . . . . . . . . . . 10
caractère @ . . . . . . . . . . . . . . . . . . . . . . 116\cdots . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
center environnement . . . . . . . . 21, 24\centering . . . . . . . . . . . . . . . . . . . . . . 21
centrage . . . . . . . . . . . . . . . . . . . . . . . . . . 21changebar extension . . . . . . . . . . . . . . 116\chapfont . . . . . . . . . . . . . . . . . . . . . . 141\chapnumfont . . . . . . . . . . . . . . . . . . . 141\chapter . . 25, 26, 91, 140, 180, 189,
201
\chapter* . . . . . . . . . . . . . . . . . . . . . . 140
chapterbib extension . . . . . . . . . . . . . . 208\chaptermark . . . . . . . . . . . . . . . . . . . 148\check . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
chngpage extension . . . . . . . . . . 120, 166
citations . . . . . . . . . . . . . . . . . . . . . . 24, 86\cite . . . . . . . . . . . . . . . . . . . . . 84, 86, 87\cleardoublepage . . . . . . . . . . 34, 146\clearpage . . . . . . . . . . . . . . . . . . . . . . 34
\closing . . . . . . . . . . . . . . . . . . . . . . . . 100
codageiso-latin1 . . . . . . . . . . . . . . . . . . . . . 93
OT1 . . . . . . . . . . . . . . . . . . . . . . . . . . 93
T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
\colarg . . . . . . . . . . . . . . . . . . . . . . . . . 164\colorbox . . . . . . . . . . . . . . . . . . 185, 187
commandeappel . . . . . . . . . . . . . . . . . . . . . . . . . 11
déﬁnitions . . . . . . . . . . . . . . . . . . . . 68
redéﬁnition . . . . . . . . . . . . . . . . . . . 70
commentaires . . . . . . . . . . . . . . . . . . . . . 11
compilation . . . . . . . . . . . . . . . . . . . . . . . . 6
et références . . . . . . . . . . . . . . . . . . 31
compteuraﬃchage . . . . . . . . . . . . . . . . . . . . . . 53
manipulation . . . . . . . . . . . . . . . . . 52
\conc . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
concrete . . . . . . . . . . . . . . . . . . . . . . . . . 123\contentsname . . . . . . . . . . . . . . . . . . 151
convert . . . . . . . . . . . . . . . . . . . . . . . . 74, 82\cos . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\cosh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\cot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\coth . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
courrier . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Index\creerlettrine . . . . . . . . . . . . . . . . .178
\csc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
césure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

D\date . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
date du jour . . . . . . . . . . . . . . . . . . . . . . 13
\ddot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\ddots . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\DeclareFixedFont . . . . . . . . . . . . . 126\DefineVerbatimEnvironment . . 153\deg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\degres . . . . . . . . . . . . . . . . . . . . . . . . . . 96
depth . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
\depth longueur . . . . . . . . . . . . . . . . . . 67
description environnement . . . . . . 22
dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
\det . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\dim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
dimension d’un objet . . . . . . . . . . . . . 56
displaymath environnement . . 38, 46\displaystyle . . . . . . . . . . . . . . . . . . . 48
diviser document . . . . . . . . . . . . . . . . . 91
docstrip extension . . . . . . . . . . . . . . . . . 78
document
diviser . . . . . . . . . . . . . . . . . . . . . . . . 91
document environnement . . . . . . . . . 20
documentation . . . . . . . . . . . . . . . . . . 103\documentclass . . . . . . . . . . . . . . . . 8, 9
\dominitoc . . . . . . . . . . . . . . . . . . . . . 156\dot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42\dotfill . . . . . . . . . . . . . . . . . . . . . 59, 60\dots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
\doublebox . . . . . . . . . . . . . . . . . . . . . 208\dp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
draft option de classe . . . . . . . . . . . . 33
dvipdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
dvips . . . . . . . . . . . .6, 7, 74, 78, 203–205
dviwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
déﬁnition . . . . . . . . . . . . . . . . . . . . . . . . . 67
commandes . . . . . . . . . . . . . . . . . . . 68
environnement . . . . . . . . . . . . . . . . 69
délimiteurs . . . . . . . . . . . . . . . . . . . . . . . 45Ee dans l’a . . . . . . . . . . . . . . . . . . . . . . . . . 96
édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

233
eepic extension . . . . . . . . . . . . . . . . . . . . 82
\em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Emacs . . 6, 84, 86, 104, 153, 154, 192,
207, 209–211
emacs . . . . . . . . . . . . . . . . . . . . . . v, xiv, 4emacscom environnement . . . . . . . . 153\emph . . . . . . . . . . . . . . . . .10, 18–20, 122emphase fontes . . . . . . . . . . . . . . . . . . . 20
emTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
\encl . . . . . . . . . . . . . . . . . . . . . . . . . . . 100\enlargethispage . . . . . . . . . . . . . . . 34
\enspace . . . . . . . . . . . . . . . . . . . . . . . . . 59
\ensuremath . . . . . . . . . . . . . . . . 68, 119\entreeglossaire . . . . . . . . . . . . . . 183
entête . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
enumerate environnement . . . . .22, 30
environnement
déﬁnition . . . . . . . . . . . . . . . . . . . . . 69
redéﬁnition . . . . . . . . . . . . . . . . . . . 70
environnements
TeXtoEPS . . . . . . . . . . . . . . . . . . . . 204
VerbatimOut . . . . . . . . . . . . . . . . 189
align* . . . . . . . . . . . . . . . . . . . . . . . 47align . . . . . . . . . . . . . . . . . . . . . . . . .47
array . . . . . . . . . . . . . . . . . . . . . 44, 45
bmatrix . . . . . . . . . . . . . . . . . . . . . . 46
cadrechap . . . . . . . . . . . . . . . . . . . 141
center . . . . . . . . . . . . . . . . . . . . 21, 24
description . . . . . . . . . . . . . . . . . 22
displaymath . . . . . . . . . . . . . . 38, 46
document . . . . . . . . . . . . . . . . . . . . . 20
emacscom . . . . . . . . . . . . . . . . . . . . 153
enumerate . . . . . . . . . . . . . . . . 22, 30
epigraphe . . . . . . . . . . . . . . . . . . . 172
eqnarray . . . . . . . . . . . . . . . . xiv, 47
equation . . . . . . . . . . . . . . . . . . . . . 46
ficaux . . . . . . . . . . . . . . . . . . . . . . 130
figure . . . . . . . . . . . . .28–30, 75, 78
flushleft . . . . . . . . . . . . . . . . . . . . 21
flushright . . . . . . . . . . . . . . . . . . .21
hyperref . . . . . . . . . . . . . . . . . . . . 202
itemize . . . . . . . . . . . . . . . . . . 22, 66
letter . . . . . . . . . . . . . . . . . . . . . . 101
list . . . . . . . . . . . .71, 126–128, 171
lrbox . . . . . . . . . . . . . . . . . . .133, 134
ltexexemple . . . . . . . . . . . . . . . . 195
ltxexempleenv . . . . . . . . . . . . . . 191
ltxexemple . . 156, 189, 190, 192,
193

Index
\creerlettrine . . . . . . . . . . . . . . . . .178
\csc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
césure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

D\date . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
date du jour . . . . . . . . . . . . . . . . . . . . . . 13
\ddot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\ddots . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\DeclareFixedFont . . . . . . . . . . . . . 126\DefineVerbatimEnvironment . . 153\deg . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\degres . . . . . . . . . . . . . . . . . . . . . . . . . . 96
depth . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
\depth longueur . . . . . . . . . . . . . . . . . . 67
description environnement . . . . . . 22
dessin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
\det . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\dim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
dimension d’un objet . . . . . . . . . . . . . 56
displaymath environnement . . 38, 46\displaystyle . . . . . . . . . . . . . . . . . . . 48
diviser document . . . . . . . . . . . . . . . . . 91
docstrip extension . . . . . . . . . . . . . . . . . 78
document
diviser . . . . . . . . . . . . . . . . . . . . . . . . 91
document environnement . . . . . . . . . 20
documentation . . . . . . . . . . . . . . . . . . 103\documentclass . . . . . . . . . . . . . . . . 8, 9
\dominitoc . . . . . . . . . . . . . . . . . . . . . 156\dot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42\dotfill . . . . . . . . . . . . . . . . . . . . . 59, 60\dots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
\doublebox . . . . . . . . . . . . . . . . . . . . . 208\dp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
draft option de classe . . . . . . . . . . . . 33
dvipdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
dvips . . . . . . . . . . . .6, 7, 74, 78, 203–205
dviwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
déﬁnition . . . . . . . . . . . . . . . . . . . . . . . . . 67
commandes . . . . . . . . . . . . . . . . . . . 68
environnement . . . . . . . . . . . . . . . . 69
délimiteurs . . . . . . . . . . . . . . . . . . . . . . . 45Ee dans l’a . . . . . . . . . . . . . . . . . . . . . . . . . 96
édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

233
eepic extension . . . . . . . . . . . . . . . . . . . . 82
\em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Emacs . . 6, 84, 86, 104, 153, 154, 192,
207, 209–211
emacs . . . . . . . . . . . . . . . . . . . . . . v, xiv, 4emacscom environnement . . . . . . . . 153\emph . . . . . . . . . . . . . . . . .10, 18–20, 122emphase fontes . . . . . . . . . . . . . . . . . . . 20
emTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
\encl . . . . . . . . . . . . . . . . . . . . . . . . . . . 100\enlargethispage . . . . . . . . . . . . . . . 34
\enspace . . . . . . . . . . . . . . . . . . . . . . . . . 59
\ensuremath . . . . . . . . . . . . . . . . 68, 119\entreeglossaire . . . . . . . . . . . . . . 183
entête . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
enumerate environnement . . . . .22, 30
environnement
déﬁnition . . . . . . . . . . . . . . . . . . . . . 69
redéﬁnition . . . . . . . . . . . . . . . . . . . 70
environnements
TeXtoEPS . . . . . . . . . . . . . . . . . . . . 204
VerbatimOut . . . . . . . . . . . . . . . . 189
align* . . . . . . . . . . . . . . . . . . . . . . . 47align . . . . . . . . . . . . . . . . . . . . . . . . .47
array . . . . . . . . . . . . . . . . . . . . . 44, 45
bmatrix . . . . . . . . . . . . . . . . . . . . . . 46
cadrechap . . . . . . . . . . . . . . . . . . . 141
center . . . . . . . . . . . . . . . . . . . . 21, 24
description . . . . . . . . . . . . . . . . . 22
displaymath . . . . . . . . . . . . . . 38, 46
document . . . . . . . . . . . . . . . . . . . . . 20
emacscom . . . . . . . . . . . . . . . . . . . . 153
enumerate . . . . . . . . . . . . . . . . 22, 30
epigraphe . . . . . . . . . . . . . . . . . . . 172
eqnarray . . . . . . . . . . . . . . . . xiv, 47
equation . . . . . . . . . . . . . . . . . . . . . 46
ficaux . . . . . . . . . . . . . . . . . . . . . . 130
figure . . . . . . . . . . . . .28–30, 75, 78
flushleft . . . . . . . . . . . . . . . . . . . . 21
flushright . . . . . . . . . . . . . . . . . . .21
hyperref . . . . . . . . . . . . . . . . . . . . 202
itemize . . . . . . . . . . . . . . . . . . 22, 66
letter . . . . . . . . . . . . . . . . . . . . . . 101
list . . . . . . . . . . . .71, 126–128, 171
lrbox . . . . . . . . . . . . . . . . . . .133, 134
ltexexemple . . . . . . . . . . . . . . . . 195
ltxexempleenv . . . . . . . . . . . . . . 191
ltxexemple . . 156, 189, 190, 192,
193

234
minipage . . . . . . . . . . . . . .65, 66, 77
picture . . . . . . . . . . . . . . . . . . 73, 82
pmatrix . . . . . . . . . . . . . . . . . . . . . . 46
question . . . . . . . . . . . . . . . . . . . . 131
quotation . . . . . . . . . . . . . . . . 24, 25
quote . . . . . . . . . . . . . . . . . . . . . 24, 25
split . . . . . . . . . . . . . . . . . . . . . . . . .47
subfigure . . . . . . . . . . . . . . . . . . . . 77
tabbing . . . . . . . . . . . . . . . . . . . . . . 22
table . . . . . . . . . . . . . . . . . . . . . 28, 30
tabular . . . . . . 23, 24, 44, 65, 207
telefax . . . . . . . . . . . . . . . . . . . . . 101
thebibliography . . . . 84, 88, 150
theglossary . . . . . . . . . . . . . . . . 181
theindex . . . . . . . . . . . . . . . 150, 151
unixcom . . . . . . . . . . . . . . . . . . . . . 153
verbatim . . . . . . . . . . . 24, 153, 208
wrapfigure . . . . . . . . . . . . . . . . . . .78
epic extension . . . . . . . . . . . . . . . . . . . . . 82
epigraphe environnement . . . . . . . 172
eqnarray environnement . . . . .xiv, 47\equal . . . . . . . . . . . . . . . . . . . . . . . . . . 117
equationéquation
multiligne, 47\equation . . . . . . . . . . . . . . . . . . . . . . . . 30
equation environnement . . . . . . . . . 46
équation . . . . . . . . . . . . . . . . . . . . . . . . . . 37
erreurs
corrections . . . . . . . . . . . . . . . . . . . . 14
de compilation . . . . . . . . . . . . . . . . 13
messages . . . . . . . . . . . . . . . . . . . . . . 14
escape char . . . . . . . . . . . . . . . . . . . . . . . 11
espace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
dans le source . . . . . . . . . . . . . . . . .10
horizontale . . . . . . . . . . . . . . . . . . . .59
insécable . . . . . . . . . . . . . . . . . . 11, 35
mathématiques . . . . . . . . . . . . . . . 43
prédéﬁnie . . . . . . . . . . . . . . . . . . . . . 59
verticale . . . . . . . . . . . . . . . . . . . . . . 60
esvect extension . . . . . . . . . . . . . . . . . . . 43
étiquette . . . . . . . . . . . . . . . . . . . . . . . . . .30\etiquettequestion . . . . . . . . . . . . 131
eurosym extension . . . . . . . . . . . . . . . . . 98
even . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
evince . . . . . . . . . . . . . . . . . . . . . . . . . 4, 201\exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
exposant . . . . . . . . . . . . . . . . . . . . . . 11, 38
extensions

Index... . . . . . . . . . . . . . . . . . . . . . . . . . . 125
a4wide . . . . . . . . . . . . . . . . . . . . . . xiv
algorithms . . . . . . . . . . . . . . . . . 208
amsmath . . . 37, 44, 46, 47, 49, 207
amssymb . . v, 37, 39, 40, 166, 213
array . . . . . . . . . . . . . . . . . . . . 23, 207babel 13, 93, 94, 96, 97, 143, 153,
155
bbm . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
bbold . . . . . . . . . . . . . . . . . . . . . . . . .40
beton . . . . . . . . . . . . . . . . . . . . . . . 123
bibunits . . . . . . . . . . . . . . . . . . . . 208
bidule . . . . . . . . . . . . . . . . . . . . . . 132
calc . . . . . . . . . . . . . . . . . . . . . . . . . . 71
changebar . . . . . . . . . . . . . . . . . . . 116
chapterbib . . . . . . . . . . . . . . . . . 208
chngpage . . . . . . . . . . . . . . . 120, 166
docstrip . . . . . . . . . . . . . . . . . . . . . 78
eepic . . . . . . . . . . . . . . . . . . . . . . . . .82
epic . . . . . . . . . . . . . . . . . . . . . . . . . . 82
esvect . . . . . . . . . . . . . . . . . . . . . . . 43
eurosym . . . . . . . . . . . . . . . . . . . . . . 98
fancybox . . . . . . . . . . . . . . . . 68, 208
fancyhdr . 27, 145, 146, 151, 185,
186, 208
fancyvrb 135, 151, 153, 155, 189,
208
french . . . .v, 94, 96, 97, 155, 207geometry . . . . . . . . . . 143–145, 208graphics . . . . . . . . . . . . . . . . . . . . . 74
graphicx . . . . . 64, 74–76, 79, 185
hhline . . . . . . . . . . . . . . . . . . . . . . 208
hyperref . . . . . . . . . . . . . . . 200–202
ifpdf . . . . . . . . . . . . . . . . . . . . . . . 200
ifthen . . . . . . . . . . . . . . 71, 117, 208
latexsym . . . . . . . . . . . 39, 213, 216
lettrine . . . . . . . . . . . . . . . . . . . . . 96
listings . . 24, 151, 152, 154, 155
lmodern . . . . . . . . . . . . . . . . . . . . . 199
mathpazo . . . . . . . . . . . . . . . . . . . . 125
mathptmx . . . . . . . . . . . . . . . 121, 125
mini-toc . . . . . . . . . . . . . . . . . . . . 156
minitoc . . . . . . . . . . . . . . . . 162, 208
newcent . . . . . . . . . . . . . . . . 121, 125
overcite . . . . . . . . . . . . . . . . . . . . 208
packages . . . . . . . . . . . . . . . . . . . .xiv
pifont . . . . . . . . . . . . . . . . . . . . . . 213
psfrag . . . . . . . . . . . . . . . 78, 79, 204
pstricks . . . . . . . . . . . 82, 203, 204

234
minipage . . . . . . . . . . . . . .65, 66, 77
picture . . . . . . . . . . . . . . . . . . 73, 82
pmatrix . . . . . . . . . . . . . . . . . . . . . . 46
question . . . . . . . . . . . . . . . . . . . . 131
quotation . . . . . . . . . . . . . . . . 24, 25
quote . . . . . . . . . . . . . . . . . . . . . 24, 25
split . . . . . . . . . . . . . . . . . . . . . . . . .47
subfigure . . . . . . . . . . . . . . . . . . . . 77
tabbing . . . . . . . . . . . . . . . . . . . . . . 22
table . . . . . . . . . . . . . . . . . . . . . 28, 30
tabular . . . . . . 23, 24, 44, 65, 207
telefax . . . . . . . . . . . . . . . . . . . . . 101
thebibliography . . . . 84, 88, 150
theglossary . . . . . . . . . . . . . . . . 181
theindex . . . . . . . . . . . . . . . 150, 151
unixcom . . . . . . . . . . . . . . . . . . . . . 153
verbatim . . . . . . . . . . . 24, 153, 208
wrapfigure . . . . . . . . . . . . . . . . . . .78
epic extension . . . . . . . . . . . . . . . . . . . . . 82
epigraphe environnement . . . . . . . 172
eqnarray environnement . . . . .xiv, 47\equal . . . . . . . . . . . . . . . . . . . . . . . . . . 117
equationéquation
multiligne, 47\equation . . . . . . . . . . . . . . . . . . . . . . . . 30
equation environnement . . . . . . . . . 46
équation . . . . . . . . . . . . . . . . . . . . . . . . . . 37
erreurs
corrections . . . . . . . . . . . . . . . . . . . . 14
de compilation . . . . . . . . . . . . . . . . 13
messages . . . . . . . . . . . . . . . . . . . . . . 14
escape char . . . . . . . . . . . . . . . . . . . . . . . 11
espace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
dans le source . . . . . . . . . . . . . . . . .10
horizontale . . . . . . . . . . . . . . . . . . . .59
insécable . . . . . . . . . . . . . . . . . . 11, 35
mathématiques . . . . . . . . . . . . . . . 43
prédéﬁnie . . . . . . . . . . . . . . . . . . . . . 59
verticale . . . . . . . . . . . . . . . . . . . . . . 60
esvect extension . . . . . . . . . . . . . . . . . . . 43
étiquette . . . . . . . . . . . . . . . . . . . . . . . . . .30\etiquettequestion . . . . . . . . . . . . 131
eurosym extension . . . . . . . . . . . . . . . . . 98
even . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
evince . . . . . . . . . . . . . . . . . . . . . . . . . 4, 201\exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
exposant . . . . . . . . . . . . . . . . . . . . . . 11, 38
extensions

Index... . . . . . . . . . . . . . . . . . . . . . . . . . . 125
a4wide . . . . . . . . . . . . . . . . . . . . . . xiv
algorithms . . . . . . . . . . . . . . . . . 208
amsmath . . . 37, 44, 46, 47, 49, 207
amssymb . . v, 37, 39, 40, 166, 213
array . . . . . . . . . . . . . . . . . . . . 23, 207babel 13, 93, 94, 96, 97, 143, 153,
155
bbm . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
bbold . . . . . . . . . . . . . . . . . . . . . . . . .40
beton . . . . . . . . . . . . . . . . . . . . . . . 123
bibunits . . . . . . . . . . . . . . . . . . . . 208
bidule . . . . . . . . . . . . . . . . . . . . . . 132
calc . . . . . . . . . . . . . . . . . . . . . . . . . . 71
changebar . . . . . . . . . . . . . . . . . . . 116
chapterbib . . . . . . . . . . . . . . . . . 208
chngpage . . . . . . . . . . . . . . . 120, 166
docstrip . . . . . . . . . . . . . . . . . . . . . 78
eepic . . . . . . . . . . . . . . . . . . . . . . . . .82
epic . . . . . . . . . . . . . . . . . . . . . . . . . . 82
esvect . . . . . . . . . . . . . . . . . . . . . . . 43
eurosym . . . . . . . . . . . . . . . . . . . . . . 98
fancybox . . . . . . . . . . . . . . . . 68, 208
fancyhdr . 27, 145, 146, 151, 185,
186, 208
fancyvrb 135, 151, 153, 155, 189,
208
french . . . .v, 94, 96, 97, 155, 207geometry . . . . . . . . . . 143–145, 208graphics . . . . . . . . . . . . . . . . . . . . . 74
graphicx . . . . . 64, 74–76, 79, 185
hhline . . . . . . . . . . . . . . . . . . . . . . 208
hyperref . . . . . . . . . . . . . . . 200–202
ifpdf . . . . . . . . . . . . . . . . . . . . . . . 200
ifthen . . . . . . . . . . . . . . 71, 117, 208
latexsym . . . . . . . . . . . 39, 213, 216
lettrine . . . . . . . . . . . . . . . . . . . . . 96
listings . . 24, 151, 152, 154, 155
lmodern . . . . . . . . . . . . . . . . . . . . . 199
mathpazo . . . . . . . . . . . . . . . . . . . . 125
mathptmx . . . . . . . . . . . . . . . 121, 125
mini-toc . . . . . . . . . . . . . . . . . . . . 156
minitoc . . . . . . . . . . . . . . . . 162, 208
newcent . . . . . . . . . . . . . . . . 121, 125
overcite . . . . . . . . . . . . . . . . . . . . 208
packages . . . . . . . . . . . . . . . . . . . .xiv
pifont . . . . . . . . . . . . . . . . . . . . . . 213
psfrag . . . . . . . . . . . . . . . 78, 79, 204
pstricks . . . . . . . . . . . 82, 203, 204

Indexsubfig . . . . . . . . . . . . . . . . . . . . . . . 77
textcomp . . . . . . .98, 213, 219, 220
thumbpdf . . . . . . . . . . . . . . . . . . . . 201
times . . . . . . . . . . . . . . . . . . . . . . . 121
url . . . . . . . . . . . . . . . . . . . . . . . . . . 208
varioref . . . . . . . . . . . . . . . 165, 208
wrapfig . . . . . . . . . . . . . . . . . . . . . . 78
xcolor . . . . . . . . . . . . . . . . . . .79, 175
textcomp . . . . . . . . . . . . . . . . . . . . 213
inclusion . . . . . . . . . . . . . . . . . . . . . . . 9
options . . . . . . . . . . . . . . . . . . . . . . . . 9

Ffaire-tant-que . . . . . . . . . . . . . . . . . . . . . 71
fancybox extension . . . . . . . . . . . . 68, 208\fancyfoot . . . . . . . . . . . . . . . . . . . . . 145
fancyhdr extension . . 27, 145, 146, 151,
185, 186, 208\fancyhead . . . . . . . . . . . . . . . . . . . . . 145
fancyvrb extension . 135, 151, 153, 155,
189, 208
fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
\fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99\fbox . . . . . . . . . . . . . . . 62, 65, 134, 208\fboxrule longueur . . . . . . . . . 62, 159\fboxsep longueur . .62, 80, 159, 160,
185, 187\fg . . . . . . . . . . . . . . . . . . . . . . 13, 97, 155
ficaux environnement . . . . . . . . . . . 130
ﬁchier.aux . . . . . . . . . . . . . . . . . . . . . . . . . . 31
.bbl . . . . . . . . . . . . . . . . . . . . . . . . . . 88.bib . . . . . . . . . . . . . . . . . . 84, 86, 87.blg . . . . . . . . . . . . . . . . . . . . . . . . . . 88
.dvi . . . . . . . . . . . . . . . . . . . . . . . 6, 31.lof . . . . . . . . . . . . . . . . . . . . . . 29, 31.log . . . . . . . . . . . . . . . . . . . . . . . . . . 31
.lot . . . . . . . . . . . . . . . . . . . . . . . . . . 29
.toc . . . . . . . . . . . . . . . . . . . . . . 31, 32
auxiliaire . . . . . . . . . . . . . . . . . . . . . 30
graphique . . . . . . . . . . . . . . . . . . . . . 74
postscript . . . . . . . . . . . . . . . . . . . . . . 6
source . . . . . . . . . . . . . . . . . . . . . . . . . 7
ﬁchiersbook.cls 138–140, 142, 143, 151,
179, 188
gglo.ist . . . . . . . . . . . . . . . . . . . . 181
glossaire.ist . . . . . . . . . . . . . . 184

235
ind.dvi . . . . . . . . . . . . . . . . . . . . . 138
latex.ltx . . . . . . . . . 146, 180, 190
newcent.sty . . . . . . . . . . . . . . . . 125
fig2dev . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
ﬁgure . . . . . . . . . . . . . . . . . . . . . . . . . 28, 73
et mathématiques . . . . . . . . . . . . . 78
incrustée . . . . . . . . . . . . . . . . . . . . . . 78
liste de . . . . . . . . . . . . . . . . . . . . . . . 29
placement . . . . . . . . . . . . . . . . . . . . 28
figure environnement . 28–30, 75, 78\fill . . . . . . . . . . . . . . . . . . . . . . . . . 58, 60
flushleft environnement . . . . . . . . 21
flushright environnement . . . . . . . 21ﬂèches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
fonction mathématiques . . . . . . . . . . 41
\fontencoding . . . . . . . . . . . . . . . . . . 125
fontescorrection italique . . . . . . . . . . . . .19
emphase . . . . . . . . . . . . . . . . . . . . . . 20
gras . . . . . . . . . . . . . . . . . . . . . . . . . . 20
machine à écrire . . . . . . . . . . .18, 20
mathématiques . . . . . . . . . . . . . . . 47
mise en évidence . . . . . . . . . . . . . . 17
penchée . . . . . . . . . . . . . . . . . . . . . . . 19
petites majuscules . . . . . . . . .18, 20
sans sérif . . . . . . . . . . . . . . . . . . . . . 19
souligné . . . . . . . . . . . . . . . . . . . . . . .20
taille . . . . . . . . . . . . . . . . . . . . . . 19, 20
usage . . . . . . . . . . . . . . . . . . . . . . . . . 20
\fontfamily . . . . . . . . . . . . . . . . . . . . 125\fontseries . . . . . . . . . . . . . . . . . . . . 126\fontshape . . . . . . . . . . . . . . . . . . . . . 126\fontsize . . . . . . . . . . . . . . . . . . . . . . 126\footnote . . . . . . . . . . . . . . . . 26, 53, 66\footnotemark . . . . . . . . . . . . . . . . . . . 26
\footnotesize . . . . . . . . . . . . . . . . . . . 19
\footnotetext . . . . . . . . . . . . . . . . . . . 27
\footrulewidth . . . . . . . . . . . . . . . . .145
formatﬁchiers graphiques . . . . . . . . . . . . 74
\frac . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
fraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\fraction . . . . . . . . . . . . . . . . . . . . . . . .69\framebox . . . . . . . . . . . . . . . . . . . 62, 157
french extension v, 94, 96, 97, 155, 207\frontmatter . . . . . . . . . . 91, 150, 189

Index
subfig . . . . . . . . . . . . . . . . . . . . . . . 77
textcomp . . . . . . .98, 213, 219, 220
thumbpdf . . . . . . . . . . . . . . . . . . . . 201
times . . . . . . . . . . . . . . . . . . . . . . . 121
url . . . . . . . . . . . . . . . . . . . . . . . . . . 208
varioref . . . . . . . . . . . . . . . 165, 208
wrapfig . . . . . . . . . . . . . . . . . . . . . . 78
xcolor . . . . . . . . . . . . . . . . . . .79, 175
textcomp . . . . . . . . . . . . . . . . . . . . 213
inclusion . . . . . . . . . . . . . . . . . . . . . . . 9
options . . . . . . . . . . . . . . . . . . . . . . . . 9

Ffaire-tant-que . . . . . . . . . . . . . . . . . . . . . 71
fancybox extension . . . . . . . . . . . . 68, 208\fancyfoot . . . . . . . . . . . . . . . . . . . . . 145
fancyhdr extension . . 27, 145, 146, 151,
185, 186, 208\fancyhead . . . . . . . . . . . . . . . . . . . . . 145
fancyvrb extension . 135, 151, 153, 155,
189, 208
fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
\fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99\fbox . . . . . . . . . . . . . . . 62, 65, 134, 208\fboxrule longueur . . . . . . . . . 62, 159\fboxsep longueur . .62, 80, 159, 160,
185, 187\fg . . . . . . . . . . . . . . . . . . . . . . 13, 97, 155
ficaux environnement . . . . . . . . . . . 130
ﬁchier.aux . . . . . . . . . . . . . . . . . . . . . . . . . . 31
.bbl . . . . . . . . . . . . . . . . . . . . . . . . . . 88.bib . . . . . . . . . . . . . . . . . . 84, 86, 87.blg . . . . . . . . . . . . . . . . . . . . . . . . . . 88
.dvi . . . . . . . . . . . . . . . . . . . . . . . 6, 31.lof . . . . . . . . . . . . . . . . . . . . . . 29, 31.log . . . . . . . . . . . . . . . . . . . . . . . . . . 31
.lot . . . . . . . . . . . . . . . . . . . . . . . . . . 29
.toc . . . . . . . . . . . . . . . . . . . . . . 31, 32
auxiliaire . . . . . . . . . . . . . . . . . . . . . 30
graphique . . . . . . . . . . . . . . . . . . . . . 74
postscript . . . . . . . . . . . . . . . . . . . . . . 6
source . . . . . . . . . . . . . . . . . . . . . . . . . 7
ﬁchiersbook.cls 138–140, 142, 143, 151,
179, 188
gglo.ist . . . . . . . . . . . . . . . . . . . . 181
glossaire.ist . . . . . . . . . . . . . . 184

235
ind.dvi . . . . . . . . . . . . . . . . . . . . . 138
latex.ltx . . . . . . . . . 146, 180, 190
newcent.sty . . . . . . . . . . . . . . . . 125
fig2dev . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
ﬁgure . . . . . . . . . . . . . . . . . . . . . . . . . 28, 73
et mathématiques . . . . . . . . . . . . . 78
incrustée . . . . . . . . . . . . . . . . . . . . . . 78
liste de . . . . . . . . . . . . . . . . . . . . . . . 29
placement . . . . . . . . . . . . . . . . . . . . 28
figure environnement . 28–30, 75, 78\fill . . . . . . . . . . . . . . . . . . . . . . . . . 58, 60
flushleft environnement . . . . . . . . 21
flushright environnement . . . . . . . 21ﬂèches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
fonction mathématiques . . . . . . . . . . 41
\fontencoding . . . . . . . . . . . . . . . . . . 125
fontescorrection italique . . . . . . . . . . . . .19
emphase . . . . . . . . . . . . . . . . . . . . . . 20
gras . . . . . . . . . . . . . . . . . . . . . . . . . . 20
machine à écrire . . . . . . . . . . .18, 20
mathématiques . . . . . . . . . . . . . . . 47
mise en évidence . . . . . . . . . . . . . . 17
penchée . . . . . . . . . . . . . . . . . . . . . . . 19
petites majuscules . . . . . . . . .18, 20
sans sérif . . . . . . . . . . . . . . . . . . . . . 19
souligné . . . . . . . . . . . . . . . . . . . . . . .20
taille . . . . . . . . . . . . . . . . . . . . . . 19, 20
usage . . . . . . . . . . . . . . . . . . . . . . . . . 20
\fontfamily . . . . . . . . . . . . . . . . . . . . 125\fontseries . . . . . . . . . . . . . . . . . . . . 126\fontshape . . . . . . . . . . . . . . . . . . . . . 126\fontsize . . . . . . . . . . . . . . . . . . . . . . 126\footnote . . . . . . . . . . . . . . . . 26, 53, 66\footnotemark . . . . . . . . . . . . . . . . . . . 26
\footnotesize . . . . . . . . . . . . . . . . . . . 19
\footnotetext . . . . . . . . . . . . . . . . . . . 27
\footrulewidth . . . . . . . . . . . . . . . . .145
formatﬁchiers graphiques . . . . . . . . . . . . 74
\frac . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
fraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\fraction . . . . . . . . . . . . . . . . . . . . . . . .69\framebox . . . . . . . . . . . . . . . . . . . 62, 157
french extension v, 94, 96, 97, 155, 207\frontmatter . . . . . . . . . . 91, 150, 189

236

Index

236

Index

G

\hyperref . . . . . . . . . . . . . . . . . . . . . . 167
hyperref environnement . . . . . . . . 202
hyphenation . . . . . . . . . . . . . . . . . . . . . . . 4\hyphenation . . . . . . . . . . . . . . . . . . . . 34

G\hyperref . . . . . . . . . . . . . . . . . . . . . . 167
hyperref environnement . . . . . . . . 202
hyphenation . . . . . . . . . . . . . . . . . . . . . . . 4\hyphenation . . . . . . . . . . . . . . . . . . . . 34

\Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\gcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
geometry extension . . . . . . 143–145, 208\geometry . . . . . . . . . . . . . . . . . . . . . . 144
gglo.ist . . . . . . . . . . . . . . . . . . . . . . . . 181
ghostscript . . . . . . . . . . . . . . . . . . . . . . . . . 4
ghostview . . . . . . . . . . . . . . . . . . . . . . . . . 65
gimp . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 74
glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . 91
glossaire.ist . . . . . . . . . . . . . . . . . . 184\glurps . . . . . . . . . . . . . . . . . . . . 176, 178
gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
graphics extension . . . . . . . . . . . . . . . . . 74
graphicx extension . 64, 74–76, 79, 185graphique . . . . . . . . . . . . . . . . . . . . . . . . .73
et mathématiques . . . . . . . . . . . . . 78
gras fontes . . . . . . . . . . . . . . . . . . . . . . . . 20
\grave . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
groupes de discussion . . . . . . . . . . . . 105
gsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
guillemets . . . . . . . . . . . . . . . . . . . . . 13, 97
gv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

H\hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42\hauteurboitetitre longueur . . 159\hauteurdutrait longueur . . . . . . 194\hauteurtrait longueur . . . . . . . . 194\hbox . . . . . . . . . . . . . . . . . . . 33, 113, 157\headrulewidth . . . . . . . . . . . . . . . . .145
height . . . . . . . . . . . . . . . . . . . . . . . . . . . 159\height longueur . . . . . . . . . . . . . . . . . 66
\hfill . . . . . . . . . . 25, 59, 60, 141, 157
hhline extension . . . . . . . . . . . . . . . . . . 208\hline . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
\hom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\hrule . . . . . . . . . . . . . . . . . . . . . . . . . . 157\hrulefill . . . . . . . . . . . . . . . . . . . 59, 60\hspace . . . . . . . . . . . . . . . . . . . . . . . . . . 64
\hspace* . . . . . . . . . . . . . . . . . . . . . . . . . 59
\ht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190\Huge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\huge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
hyperref extension . . . . . . . . . . . 200–202

I
iTEXmax . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\ieme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\ier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
ifpdf extension . . . . . . . . . . . . . . . . . . . 200
ifthen extension . . . . . . . . . . 71, 117, 208\ifthenelse . . . . . . . . . . . . . . . 119, 194\ignorespaces . . . . . . . . . . . . . 114, 174
image . . . . . . . . . . . . . . . . . . . . . . . . . 73, 74\imath . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
impression . . . . . . . . . . . . . . . . . . . . . . . . . 7
imprimantes . . . . . . . . . . . . . . . . . . . . . . . 7\include . . . . . . . . . . . . . . . . . . . . . . . . . 91
\includegraphics . . . . . . . . . . . .75, 77\includeonly . . . . . . . . . . . . . . . . . . . . 91
\includepstricksgraphics . . . . .204
inclusiond’extensions . . . . . . . . . . . . . . . . . . . .9
d’images . . . . . . . . . . . . . . . . . . . . . . 75
de graphiques . . . . . . . . . . . . . . . . . 75
ind.dvi . . . . . . . . . . . . . . . . . . . . . . . . . 138
index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
\index . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
\indexname . . . . . . . . . . . . . . . . . . . . . 151\indexspace . . . . . . . . . . . . . . . . . . . . 138
indice . . . . . . . . . . . . . . . . . . . . . . . . . 11, 38\indletB longueur . . . . . . . . . . 177–179\indletH longueur . . . . . . . . . .177, 178\indnota longueur . . . . . . . . . . . . . . 170\inf . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Inkscape . . . . . . . . . . . . . . . . . . . . . . . . . . 82
\input . . . . . . . . . . . . . . . . . . . . . . . .71, 91\InputIfFileExists . . . . . . . . . . . . 184\institut . . . . . . . . . . . . . . . . . . . . . . 101\int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
intégrale . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\isodd . . . . . . . . . . . . . . . . . . . . . 117, 168
italique fontes . . . . . . . . . . . . . . . . . . . . 20
\item . . . . . . . . . . . . . . . . . . . . . . . . . . . 181\itemindent longueur . . . . . . 127, 128
itemize environnement . . . . . . . 22, 66\itemsep longueur . . . . . 128, 129, 133\Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\gcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
geometry extension . . . . . . 143–145, 208\geometry . . . . . . . . . . . . . . . . . . . . . . 144
gglo.ist . . . . . . . . . . . . . . . . . . . . . . . . 181
ghostscript . . . . . . . . . . . . . . . . . . . . . . . . . 4
ghostview . . . . . . . . . . . . . . . . . . . . . . . . . 65
gimp . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 74
glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . 91
glossaire.ist . . . . . . . . . . . . . . . . . . 184\glurps . . . . . . . . . . . . . . . . . . . . 176, 178
gnuplot . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
graphics extension . . . . . . . . . . . . . . . . . 74
graphicx extension . 64, 74–76, 79, 185graphique . . . . . . . . . . . . . . . . . . . . . . . . .73
et mathématiques . . . . . . . . . . . . . 78
gras fontes . . . . . . . . . . . . . . . . . . . . . . . . 20
\grave . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
groupes de discussion . . . . . . . . . . . . 105
gsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
guillemets . . . . . . . . . . . . . . . . . . . . . 13, 97
gv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

H\hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42\hauteurboitetitre longueur . . 159\hauteurdutrait longueur . . . . . . 194\hauteurtrait longueur . . . . . . . . 194\hbox . . . . . . . . . . . . . . . . . . . 33, 113, 157\headrulewidth . . . . . . . . . . . . . . . . .145
height . . . . . . . . . . . . . . . . . . . . . . . . . . . 159\height longueur . . . . . . . . . . . . . . . . . 66
\hfill . . . . . . . . . . 25, 59, 60, 141, 157
hhline extension . . . . . . . . . . . . . . . . . . 208\hline . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
\hom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\hrule . . . . . . . . . . . . . . . . . . . . . . . . . . 157\hrulefill . . . . . . . . . . . . . . . . . . . 59, 60\hspace . . . . . . . . . . . . . . . . . . . . . . . . . . 64
\hspace* . . . . . . . . . . . . . . . . . . . . . . . . . 59
\ht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190\Huge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\huge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
hyperref extension . . . . . . . . . . . 200–202

I
iTEXmax . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\ieme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\ier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
ifpdf extension . . . . . . . . . . . . . . . . . . . 200
ifthen extension . . . . . . . . . . 71, 117, 208\ifthenelse . . . . . . . . . . . . . . . 119, 194\ignorespaces . . . . . . . . . . . . . 114, 174
image . . . . . . . . . . . . . . . . . . . . . . . . . 73, 74\imath . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
impression . . . . . . . . . . . . . . . . . . . . . . . . . 7
imprimantes . . . . . . . . . . . . . . . . . . . . . . . 7\include . . . . . . . . . . . . . . . . . . . . . . . . . 91
\includegraphics . . . . . . . . . . . .75, 77\includeonly . . . . . . . . . . . . . . . . . . . . 91
\includepstricksgraphics . . . . .204
inclusiond’extensions . . . . . . . . . . . . . . . . . . . .9
d’images . . . . . . . . . . . . . . . . . . . . . . 75
de graphiques . . . . . . . . . . . . . . . . . 75
ind.dvi . . . . . . . . . . . . . . . . . . . . . . . . . 138
index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
\index . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
\indexname . . . . . . . . . . . . . . . . . . . . . 151\indexspace . . . . . . . . . . . . . . . . . . . . 138
indice . . . . . . . . . . . . . . . . . . . . . . . . . 11, 38\indletB longueur . . . . . . . . . . 177–179\indletH longueur . . . . . . . . . .177, 178\indnota longueur . . . . . . . . . . . . . . 170\inf . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Inkscape . . . . . . . . . . . . . . . . . . . . . . . . . . 82
\input . . . . . . . . . . . . . . . . . . . . . . . .71, 91\InputIfFileExists . . . . . . . . . . . . 184\institut . . . . . . . . . . . . . . . . . . . . . . 101\int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
intégrale . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\isodd . . . . . . . . . . . . . . . . . . . . . 117, 168
italique fontes . . . . . . . . . . . . . . . . . . . . 20
\item . . . . . . . . . . . . . . . . . . . . . . . . . . . 181\itemindent longueur . . . . . . 127, 128
itemize environnement . . . . . . . 22, 66\itemsep longueur . . . . . 128, 129, 133

Index\itshape . . . . . . . . . . . . . . . . . . . . . . . . . 18

J
\jmath . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
\jobname . . . . . . . . . . . . . . . . . . . . . . . . 184

K
kdvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\ker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\kern . . . . . . . . . . . . . . . . . . . . . . 156, 159
kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

L\Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68\label . . . . . . . . . . 30, 47, 85, 120, 193\labelsep longueur . . . .127, 128, 132\labelwidth longueur . . . . . . 127–129\langle . . . . . . . . . . . . . . . . . . . . . 45, 164\LARGE . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\Large . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\large . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\largeurboitetitre longueur . . 159,
160
\larligB longueur . . . . . . . . . . . . . . 177\larligH longueur . . . . . . . . . .177, 178
latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
latex.ltx . . . . . . . . . . . . . 146, 180, 190
latexsym extension . . . . . . . 39, 213, 216\lceil . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\ldots . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\leaders . . . . . . . . . . . . . . . . . . . 157, 158\leavevmode . . . . . . . . . . . . . . . . . . . . 113\left . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
\leftmargin longueur . 127, 128, 171\leftmark . . . . . . . . . . . . . . . . . . 147, 148\lengthtest . . . . . . . . . . . . . . . . . . . . 117\let . . . . . . . . . . . . . . . . . . . 116, 117, 164
letter environnement . . . . . . . . . . . 101
lettres grecques . . . . . . . . . . . . . . . . . . . 40
lettrine . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
lettrine extension . . . . . . . . . . . . . . . . . . 96
\lettrine . . . . . . . . . . . . . . . . . . . . . . 178\lfloor . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\lg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\lieu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

237
like this . . . . . . . . . . . . . . . . . . . . . . . . . xiv\lim . . . . . . . . . . . . . . . . . . . . . . . . . 49, 216\liminf . . . . . . . . . . . . . . . . . . . . . . . . . 216
limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\limsup . . . . . . . . . . . . . . . . . . . . . . . . . 216\linebreak . . . . . . . . . . . . . . . . . . . 34, 35\linewidth longueur . . . . . . . . . . . . . 58
list environnement 71, 126–128, 171
liste . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 71
d’items . . . . . . . . . . . . . . . . . . . . . . . 22
des ﬁgures . . . . . . . . . . . . . . . . . . . . 29
des tables . . . . . . . . . . . . . . . . . . . . . 29
description . . . . . . . . . . . . . . . . . . . .22
enumération . . . . . . . . . . . . . . . . . . 22
listings extension 24, 151, 152, 154, 155\listoffigures . . . . . . . . . . . . . 29, 179\listoftables . . . . . . . . . . . . . . . . . . . 29
\listparindent longueur . . 127, 128
livres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
lmodern extension . . . . . . . . . . . . . . . . 199\ln . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\log . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
logiciels connexes
TEXnicCenter . . . . . . . . . . . . . . . . . . . 4
TEXshop . . . . . . . . . . . . . . . . . . . . . . . .4
Acrobat Reader . . . . . . . . . . 200–202
acrobat reader . . . . . . . . . . . . . . . . . . 4
Aspell . . . . . . . . . . . . . . . . . . . 207, 211
aspell . . . . . . . . . . . . . . . . . . . . . . . . . . v
AucTEX . . . . . . . . . . . . . . . . . . . . . . 207
bash . . . . . . . . . . . . . . . . . . . . . . . . . . 71
BibTEX . . . . . . . . . . . . . . . . . . . . . . . .88
BibTEX . . . . . . . . . . 84–88, 209, 210
Bravo . . . . . . . . . . . . . . . . . . . . . . . . . ix
convert . . . . . . . . . . . . . . . . . . . . 74, 82
dvipdf . . . . . . . . . . . . . . . . . . . . . . . 199
dvips . . . . . . . . 6, 7, 74, 78, 203–205
dviwin . . . . . . . . . . . . . . . . . . . . . . . . .74
Emacs . . . 6, 84, 86, 104, 153, 154,
192, 207, 209–211
emacs . . . . . . . . . . . . . . . . . . v, xiv, 4
evince . . . . . . . . . . . . . . . . . . . . . 4, 201
fig2dev . . . . . . . . . . . . . . . . . . . . . . . . 82
ghostscript . . . . . . . . . . . . . . . . . . . . . 4
ghostview . . . . . . . . . . . . . . . . . . . . . 65
gimp . . . . . . . . . . . . . . . . . . . . . . 73, 74
gnuplot . . . . . . . . . . . . . . . . . . . . . . . 73
grep . . . . . . . . . . . . . . . . . . . . . . . . . 205
gsview . . . . . . . . . . . . . . . . . . . . . . . . . 3

Index\itshape . . . . . . . . . . . . . . . . . . . . . . . . . 18

J
\jmath . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
\jobname . . . . . . . . . . . . . . . . . . . . . . . . 184

K
kdvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\ker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\kern . . . . . . . . . . . . . . . . . . . . . . 156, 159
kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

L\Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68\label . . . . . . . . . . 30, 47, 85, 120, 193\labelsep longueur . . . .127, 128, 132\labelwidth longueur . . . . . . 127–129\langle . . . . . . . . . . . . . . . . . . . . . 45, 164\LARGE . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\Large . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\large . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
\largeurboitetitre longueur . . 159,
160
\larligB longueur . . . . . . . . . . . . . . 177\larligH longueur . . . . . . . . . .177, 178
latex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
latex.ltx . . . . . . . . . . . . . 146, 180, 190
latexsym extension . . . . . . . 39, 213, 216\lceil . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\ldots . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\leaders . . . . . . . . . . . . . . . . . . . 157, 158\leavevmode . . . . . . . . . . . . . . . . . . . . 113\left . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
\leftmargin longueur . 127, 128, 171\leftmark . . . . . . . . . . . . . . . . . . 147, 148\lengthtest . . . . . . . . . . . . . . . . . . . . 117\let . . . . . . . . . . . . . . . . . . . 116, 117, 164
letter environnement . . . . . . . . . . . 101
lettres grecques . . . . . . . . . . . . . . . . . . . 40
lettrine . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
lettrine extension . . . . . . . . . . . . . . . . . . 96
\lettrine . . . . . . . . . . . . . . . . . . . . . . 178\lfloor . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\lg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\lieu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

237
like this . . . . . . . . . . . . . . . . . . . . . . . . . xiv\lim . . . . . . . . . . . . . . . . . . . . . . . . . 49, 216\liminf . . . . . . . . . . . . . . . . . . . . . . . . . 216
limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\limsup . . . . . . . . . . . . . . . . . . . . . . . . . 216\linebreak . . . . . . . . . . . . . . . . . . . 34, 35\linewidth longueur . . . . . . . . . . . . . 58
list environnement 71, 126–128, 171
liste . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 71
d’items . . . . . . . . . . . . . . . . . . . . . . . 22
des ﬁgures . . . . . . . . . . . . . . . . . . . . 29
des tables . . . . . . . . . . . . . . . . . . . . . 29
description . . . . . . . . . . . . . . . . . . . .22
enumération . . . . . . . . . . . . . . . . . . 22
listings extension 24, 151, 152, 154, 155\listoffigures . . . . . . . . . . . . . 29, 179\listoftables . . . . . . . . . . . . . . . . . . . 29
\listparindent longueur . . 127, 128
livres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
lmodern extension . . . . . . . . . . . . . . . . 199\ln . . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\log . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
logiciels connexes
TEXnicCenter . . . . . . . . . . . . . . . . . . . 4
TEXshop . . . . . . . . . . . . . . . . . . . . . . . .4
Acrobat Reader . . . . . . . . . . 200–202
acrobat reader . . . . . . . . . . . . . . . . . . 4
Aspell . . . . . . . . . . . . . . . . . . . 207, 211
aspell . . . . . . . . . . . . . . . . . . . . . . . . . . v
AucTEX . . . . . . . . . . . . . . . . . . . . . . 207
bash . . . . . . . . . . . . . . . . . . . . . . . . . . 71
BibTEX . . . . . . . . . . . . . . . . . . . . . . . .88
BibTEX . . . . . . . . . . 84–88, 209, 210
Bravo . . . . . . . . . . . . . . . . . . . . . . . . . ix
convert . . . . . . . . . . . . . . . . . . . . 74, 82
dvipdf . . . . . . . . . . . . . . . . . . . . . . . 199
dvips . . . . . . . . 6, 7, 74, 78, 203–205
dviwin . . . . . . . . . . . . . . . . . . . . . . . . .74
Emacs . . . 6, 84, 86, 104, 153, 154,
192, 207, 209–211
emacs . . . . . . . . . . . . . . . . . . v, xiv, 4
evince . . . . . . . . . . . . . . . . . . . . . 4, 201
fig2dev . . . . . . . . . . . . . . . . . . . . . . . . 82
ghostscript . . . . . . . . . . . . . . . . . . . . . 4
ghostview . . . . . . . . . . . . . . . . . . . . . 65
gimp . . . . . . . . . . . . . . . . . . . . . . 73, 74
gnuplot . . . . . . . . . . . . . . . . . . . . . . . 73
grep . . . . . . . . . . . . . . . . . . . . . . . . . 205
gsview . . . . . . . . . . . . . . . . . . . . . . . . . 3

238
gv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
iTEXmax . . . . . . . . . . . . . . . . . . . . . . . 4
info . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Inkscape . . . . . . . . . . . . . . . . . . . . . . 82
kdvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
latex . . . . . . . . . . . . . . . . . . . . . . . . . 199
make . . . . . . . . . . . . . 73, 80, 82, 204
makebst . . . . . . . . . . . . . . . . . . . . . . . 84
makeindex . . . . . . . 88–90, 136–138,
181–183, 209
metafont . . . . . . . . . . . . . . . . . . . . . . 73
pdflatex . . . . . . . . 199–201, 203, 204
ps2pdf . . . . . . . . . . . . . . . . . . . . . . . 199
psfrag . . . . . . . . . 199, 202, 204, 205
pstricks . . . . . . . . . . . . .199, 202, 204
psutils . . . . . . . . . . . . . . . . . . . . . . . 225
texmaker . . . . . . . . . . . . . . . . . . . . . . . 4
texture . . . . . . . . . . . . . . . . . . . . . . . . 74
transfig . . . . . . . . . . . . . . . . . . . . . . 225
vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
X Window . . . . . . . . . . . . . . . . . . . . . . 7
xdvi . . . . . . 4, 6, 7, 65, 74, 202, 210
Xfig . . . . . . . . . . . . . . . . . . . . . . . . . 200
xfig . . . . . . . . . 73, 82, 168, 224, 225
xpdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
yap . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 7
longueurs . . . . . . . . . . . . . . . . . . . . . . . . . 54
manipulation . . . . . . . . . . . . . . . . . 55
prédéﬁnies . . . . . . . . . . . . . . . . . . . . 55
élastiques . . . . . . . . . . . . . . . . . . . . . 57
lrbox environnement . . . . . . . 133, 134
ltexexemple environnement . . . . . 195\ltxcom . . . . . . . . . . . . . . . . . . . . . . . . . 165
ltxexemple environnement .156, 189,
190, 192, 193
ltxexempleenv environnement . . 191\ltxpack . . . . . . . . . . . . . . . . . . . 131, 165

Mmachine à écrire fontes . . . . . . . . . . . .20
macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
déﬁnitions . . . . . . . . . . . . . . . . . . . . 68
redéﬁnition . . . . . . . . . . . . . . . . . . . 70
Magma . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
\mainmatter . . . . . . . . . . . . 91, 141, 150
majuscules . . . . . . . . . . . . . . . . . . . . . . . .98
make . . . . . . . . . . . . . . . . . 73, 80, 82, 204

Index\makeatletter . . . . . . . . . . . . . . . . . . 116\makeatother . . . . . . . . . . . . . . . . . . . 116\makebox . . . . . . . . . . . . . 62, 64, 67, 157
makebst . . . . . . . . . . . . . . . . . . . . . . . . . . .84
makefile . . . . . . . . . . . . . . . . . . . . . . . . . 80
\makeglossary . . . . . . . . . . . . . . . . . . 181\makeindex . . . . . . . . . . . . . . . . . . . . . . 89
makeindex . . 88–90, 136–138, 181–183,
209\makelabel . . . . . . . . . . . . 127, 129, 131\maketitle . . . . . . . . . . . . . . . . . . . 83, 84\MakeUppercase . . . . . . . . . . . . . . . . .151
\marg . . . . . . . . . . . . . . . . . . . . . . 153, 164
margechangements de . . . . . . . . . . . . . . 208
note de . . . . . . . . . . . . . . . . . . . . . . . 25
\marginpar . . . . . . . . . . . . . . . . . . . . . . 25
\markboth . . . . . . . . . . . . . . . . . . 147, 148\markright . . . . . . . . . . . . . . . . 147, 148\mathbb . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\mathbbm . . . . . . . . . . . . . . . . . . . . . . . . . 40
\mathbbmss . . . . . . . . . . . . . . . . . . . . . . 40
\mathbf . . . . . . . . . . . . . . . . . . . . . . 40, 48\mathcal . . . . . . . . . . . . . . . . . . . . . . . . . 48
\mathit . . . . . . . . . . . . . . . . . . . . . . . . . . 48
mathpazo extension . . . . . . . . . . . . . . 125
mathptmx extension . . . . . . . . . 121, 125\mathrm . . . . . . . . . . . . . . . . . . . . . . . . . . 48
\mathsf . . . . . . . . . . . . . . . . . . . . . . . . . . 48
\mathtt . . . . . . . . . . . . . . . . . . . . . . . . . . 48
mathématiqueset déﬁnitions de commande . . . 68
fonctions . . . . . . . . . . . . . . . . . . . . . .41
fontes . . . . . . . . . . . . . . . . . . . . . . . . . 47
formules . . . . . . . . . . . . . . . . . . . . . . 46
modes . . . . . . . . . . . . . . . . . . . . . . . . 37
style . . . . . . . . . . . . . . . . . . . . . . . . . . 48
symboles . . . . . . . . . . . . . . . . . . . . . .39
matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\max . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\mbox . . . 35, 44, 62, 67, 113, 134, 157\mdseries . . . . . . . . . . . . . . . . . . . . . . . . 18
metafont . . . . . . . . . . . . . . . . . . . . . . . . . . 73
\min . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
mini-toc extension . . . . . . . . . . . . . . . . 156
minipage environnement . . 65, 66, 77
minitoc extension . . . . . . . . . . . . 162, 208\minitoc . . . . . . . . . . . . . . . . . . . . . . . . 156
mode

238
gv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
iTEXmax . . . . . . . . . . . . . . . . . . . . . . . 4
info . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Inkscape . . . . . . . . . . . . . . . . . . . . . . 82
kdvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
latex . . . . . . . . . . . . . . . . . . . . . . . . . 199
make . . . . . . . . . . . . . 73, 80, 82, 204
makebst . . . . . . . . . . . . . . . . . . . . . . . 84
makeindex . . . . . . . 88–90, 136–138,
181–183, 209
metafont . . . . . . . . . . . . . . . . . . . . . . 73
pdflatex . . . . . . . . 199–201, 203, 204
ps2pdf . . . . . . . . . . . . . . . . . . . . . . . 199
psfrag . . . . . . . . . 199, 202, 204, 205
pstricks . . . . . . . . . . . . .199, 202, 204
psutils . . . . . . . . . . . . . . . . . . . . . . . 225
texmaker . . . . . . . . . . . . . . . . . . . . . . . 4
texture . . . . . . . . . . . . . . . . . . . . . . . . 74
transfig . . . . . . . . . . . . . . . . . . . . . . 225
vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
X Window . . . . . . . . . . . . . . . . . . . . . . 7
xdvi . . . . . . 4, 6, 7, 65, 74, 202, 210
Xfig . . . . . . . . . . . . . . . . . . . . . . . . . 200
xfig . . . . . . . . . 73, 82, 168, 224, 225
xpdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
yap . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 7
longueurs . . . . . . . . . . . . . . . . . . . . . . . . . 54
manipulation . . . . . . . . . . . . . . . . . 55
prédéﬁnies . . . . . . . . . . . . . . . . . . . . 55
élastiques . . . . . . . . . . . . . . . . . . . . . 57
lrbox environnement . . . . . . . 133, 134
ltexexemple environnement . . . . . 195\ltxcom . . . . . . . . . . . . . . . . . . . . . . . . . 165
ltxexemple environnement .156, 189,
190, 192, 193
ltxexempleenv environnement . . 191\ltxpack . . . . . . . . . . . . . . . . . . . 131, 165

Mmachine à écrire fontes . . . . . . . . . . . .20
macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
déﬁnitions . . . . . . . . . . . . . . . . . . . . 68
redéﬁnition . . . . . . . . . . . . . . . . . . . 70
Magma . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
\mainmatter . . . . . . . . . . . . 91, 141, 150
majuscules . . . . . . . . . . . . . . . . . . . . . . . .98
make . . . . . . . . . . . . . . . . . 73, 80, 82, 204

Index\makeatletter . . . . . . . . . . . . . . . . . . 116\makeatother . . . . . . . . . . . . . . . . . . . 116\makebox . . . . . . . . . . . . . 62, 64, 67, 157
makebst . . . . . . . . . . . . . . . . . . . . . . . . . . .84
makefile . . . . . . . . . . . . . . . . . . . . . . . . . 80
\makeglossary . . . . . . . . . . . . . . . . . . 181\makeindex . . . . . . . . . . . . . . . . . . . . . . 89
makeindex . . 88–90, 136–138, 181–183,
209\makelabel . . . . . . . . . . . . 127, 129, 131\maketitle . . . . . . . . . . . . . . . . . . . 83, 84\MakeUppercase . . . . . . . . . . . . . . . . .151
\marg . . . . . . . . . . . . . . . . . . . . . . 153, 164
margechangements de . . . . . . . . . . . . . . 208
note de . . . . . . . . . . . . . . . . . . . . . . . 25
\marginpar . . . . . . . . . . . . . . . . . . . . . . 25
\markboth . . . . . . . . . . . . . . . . . . 147, 148\markright . . . . . . . . . . . . . . . . 147, 148\mathbb . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\mathbbm . . . . . . . . . . . . . . . . . . . . . . . . . 40
\mathbbmss . . . . . . . . . . . . . . . . . . . . . . 40
\mathbf . . . . . . . . . . . . . . . . . . . . . . 40, 48\mathcal . . . . . . . . . . . . . . . . . . . . . . . . . 48
\mathit . . . . . . . . . . . . . . . . . . . . . . . . . . 48
mathpazo extension . . . . . . . . . . . . . . 125
mathptmx extension . . . . . . . . . 121, 125\mathrm . . . . . . . . . . . . . . . . . . . . . . . . . . 48
\mathsf . . . . . . . . . . . . . . . . . . . . . . . . . . 48
\mathtt . . . . . . . . . . . . . . . . . . . . . . . . . . 48
mathématiqueset déﬁnitions de commande . . . 68
fonctions . . . . . . . . . . . . . . . . . . . . . .41
fontes . . . . . . . . . . . . . . . . . . . . . . . . . 47
formules . . . . . . . . . . . . . . . . . . . . . . 46
modes . . . . . . . . . . . . . . . . . . . . . . . . 37
style . . . . . . . . . . . . . . . . . . . . . . . . . . 48
symboles . . . . . . . . . . . . . . . . . . . . . .39
matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\max . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\mbox . . . 35, 44, 62, 67, 113, 134, 157\mdseries . . . . . . . . . . . . . . . . . . . . . . . . 18
metafont . . . . . . . . . . . . . . . . . . . . . . . . . . 73
\min . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216
mini-toc extension . . . . . . . . . . . . . . . . 156
minipage environnement . . 65, 66, 77
minitoc extension . . . . . . . . . . . . 162, 208\minitoc . . . . . . . . . . . . . . . . . . . . . . . . 156
mode

Indexbrouillon . . . . . . . . . . . . . . . 9, 33, 76
recto verso . . . . . . . . . . . . . . . . . . . . . 8

N\newboolean . . . . . . . . . . . . . . . . . . . . 117
newcent extension . . . . . . . . . . . 121, 125
newcent.sty . . . . . . . . . . . . . . . . . . . . 125\newcommand . . . . . . . . . 49, 68, 69, 176\newcounter . . . . . . . . . . . . . . . . 52, 120\newenvironment . . . . . . . . . . . . 69, 154\newlength . . . . . . . . . . . . . . . . . . . . . . 55
\newsavebox . . . . . . . . . . . . . . . . . . . . . 67
newsgroup . . . . . . . . . . . . . . . . . . . . . . . 105\No . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\NoAutoSpaceBeforeFDP . . . . . . . . . 94
\nocite . . . . . . . . . . . . . . . . . . . . . . . . . . 87
\nointerlineskip . . . . . . . . . 161, 194\nolimits . . . . . . . . . . . . . . . . . . . . . . . .49\nolinebreak . . . . . . . . . . . . . . . . . . . . 35
\nonumber . . . . . . . . . . . . . . . . . . . . . . . .47\nopagebreak . . . . . . . . . . . . . . . . . . . . 35
\normalfont . . . . . . . . . . . . . . . . . . . . 164\normalsize . . . . . . . . . . . . . . . . . . . . . 19
\NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
note de bas de page . . . . . . . . . . . . . . . 26
\nouppercase . . . . . . . . . . . . . . . . . . . 151
numérotation . . . . . . . . . . . . . . . . . . . . . 51

O
odd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
\OE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\oe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\og . . . . . . . . . . . . . . . . . . . . . . 13, 97, 155\oint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\onglet . . . . . . . . . . . . . . . . . . . . 186, 188\ongletfont . . . . . . . . . . . . . . . . . . . . 185\opening . . . . . . . . . . . . . . . . . . . . . . . . 100
options
de graphicx . . . . . . . . . . . . . . . . . . 76
de classe . . . . . . . . . . . . . . . . . . . . . . . 8
opérateur \not . . . . . . . . . . . . . . . . . . . . 42
\OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\Ovalbox . . . . . . . . . . . . . . . . . . . . 68, 208\ovalbox . . . . . . . . . . . . . . . . . . . . . . . . 208

239
overcite extension . . . . . . . . . . . . . . . . 208
overfull . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
\overrightarrow . . . . . . . . . . . . . . . . 43
OzTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Ppackages extension . . . . . . . . . . . . . . . xiv\padnota longueur . . . . . . . . . . . . . . 170\pagebreak . . . . . . . . . . . . . . . . . . . 34, 35\pagenumbering . . . . . . . . . . . . . . . . .150
\pageref . . . . . . . . . . . . . . . . . . . . 30, 202\pagestyle . . . . . . . . . . . . . . . . . . . . . . 27
\par . . . . . . . . . . . . . . . . . . . . . . 10, 21, 60\paragraph . . . . . . . . . . . . . . . . . . . . . . 26
paragrapheséparation . . . . . . . . . . . . . . . . . . . . 57
\parbox . . . . . . . . 65, 66, 158–160, 194
parenthèses . . . . . . . . . . . . . . . . . . . . . . . 45
\parindent longueur . . . . . . . . 66, 174\parindent . . . . . . . . . . . . . . . . . . . 55, 56\parsep longueur . . . . . . . . . . . 128, 129\parshape . . . . . . . . 168, 169, 176, 177\parskip . . . . . . . . . . . . . . . . . . . . . 55, 57\part . . . . . . . . . . . . . . . . . . . 26, 142, 143\partopsep longueur . . . . . . . 128, 129
pdflatex . . . . . . . . . . . .199–201, 203, 204
petites majuscules fontes . . . . . . . . . .20\phantomsection . . . . . . . . . . . . . . . 201\pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
picture environnement . . . . . . . 73, 82
pied de page . . . . . . . . . . . . . . . . . . . . . . 27
pifont extension . . . . . . . . . . . . . . . . . . 213
pmatrix environnement . . . . . . . . . . . 46
points . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
points de suspension . . . . . . . . . . 13, 39
positionnement de boîte . . . . . . . . . . 63
PostScript . . 3, 4, 6, 7, 65, 73, 74, 78,
104, 121, 125, 202–204, 213\Pr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
préambule . . . . . . . . . . . . . . . . . . . . . . . 8, 9
\primo . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\printindex . . . . . . . . . . . . . 88, 90, 201\prod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
produit . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\protect . . . . . . . . . . . . . . . . . . . . . . . . 165
ps2pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
psfrag extension . . . . . . . . . . . 78, 79, 204\psfrag . . . . . . . . . . . . . . . . . . . . . . 78, 79

Indexbrouillon . . . . . . . . . . . . . . . 9, 33, 76
recto verso . . . . . . . . . . . . . . . . . . . . . 8

N\newboolean . . . . . . . . . . . . . . . . . . . . 117
newcent extension . . . . . . . . . . . 121, 125
newcent.sty . . . . . . . . . . . . . . . . . . . . 125\newcommand . . . . . . . . . 49, 68, 69, 176\newcounter . . . . . . . . . . . . . . . . 52, 120\newenvironment . . . . . . . . . . . . 69, 154\newlength . . . . . . . . . . . . . . . . . . . . . . 55
\newsavebox . . . . . . . . . . . . . . . . . . . . . 67
newsgroup . . . . . . . . . . . . . . . . . . . . . . . 105\No . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\NoAutoSpaceBeforeFDP . . . . . . . . . 94
\nocite . . . . . . . . . . . . . . . . . . . . . . . . . . 87
\nointerlineskip . . . . . . . . . 161, 194\nolimits . . . . . . . . . . . . . . . . . . . . . . . .49\nolinebreak . . . . . . . . . . . . . . . . . . . . 35
\nonumber . . . . . . . . . . . . . . . . . . . . . . . .47\nopagebreak . . . . . . . . . . . . . . . . . . . . 35
\normalfont . . . . . . . . . . . . . . . . . . . . 164\normalsize . . . . . . . . . . . . . . . . . . . . . 19
\NOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
note de bas de page . . . . . . . . . . . . . . . 26
\nouppercase . . . . . . . . . . . . . . . . . . . 151
numérotation . . . . . . . . . . . . . . . . . . . . . 51

O
odd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
\OE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
œ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\oe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\og . . . . . . . . . . . . . . . . . . . . . . 13, 97, 155\oint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\onglet . . . . . . . . . . . . . . . . . . . . 186, 188\ongletfont . . . . . . . . . . . . . . . . . . . . 185\opening . . . . . . . . . . . . . . . . . . . . . . . . 100
options
de graphicx . . . . . . . . . . . . . . . . . . 76
de classe . . . . . . . . . . . . . . . . . . . . . . . 8
opérateur \not . . . . . . . . . . . . . . . . . . . . 42
\OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117\Ovalbox . . . . . . . . . . . . . . . . . . . . 68, 208\ovalbox . . . . . . . . . . . . . . . . . . . . . . . . 208

239
overcite extension . . . . . . . . . . . . . . . . 208
overfull . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
\overrightarrow . . . . . . . . . . . . . . . . 43
OzTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Ppackages extension . . . . . . . . . . . . . . . xiv\padnota longueur . . . . . . . . . . . . . . 170\pagebreak . . . . . . . . . . . . . . . . . . . 34, 35\pagenumbering . . . . . . . . . . . . . . . . .150
\pageref . . . . . . . . . . . . . . . . . . . . 30, 202\pagestyle . . . . . . . . . . . . . . . . . . . . . . 27
\par . . . . . . . . . . . . . . . . . . . . . . 10, 21, 60\paragraph . . . . . . . . . . . . . . . . . . . . . . 26
paragrapheséparation . . . . . . . . . . . . . . . . . . . . 57
\parbox . . . . . . . . 65, 66, 158–160, 194
parenthèses . . . . . . . . . . . . . . . . . . . . . . . 45
\parindent longueur . . . . . . . . 66, 174\parindent . . . . . . . . . . . . . . . . . . . 55, 56\parsep longueur . . . . . . . . . . . 128, 129\parshape . . . . . . . . 168, 169, 176, 177\parskip . . . . . . . . . . . . . . . . . . . . . 55, 57\part . . . . . . . . . . . . . . . . . . . 26, 142, 143\partopsep longueur . . . . . . . 128, 129
pdflatex . . . . . . . . . . . .199–201, 203, 204
petites majuscules fontes . . . . . . . . . .20\phantomsection . . . . . . . . . . . . . . . 201\pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
picture environnement . . . . . . . 73, 82
pied de page . . . . . . . . . . . . . . . . . . . . . . 27
pifont extension . . . . . . . . . . . . . . . . . . 213
pmatrix environnement . . . . . . . . . . . 46
points . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
points de suspension . . . . . . . . . . 13, 39
positionnement de boîte . . . . . . . . . . 63
PostScript . . 3, 4, 6, 7, 65, 73, 74, 78,
104, 121, 125, 202–204, 213\Pr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
préambule . . . . . . . . . . . . . . . . . . . . . . . 8, 9
\primo . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\printindex . . . . . . . . . . . . . 88, 90, 201\prod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
produit . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\protect . . . . . . . . . . . . . . . . . . . . . . . . 165
ps2pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
psfrag extension . . . . . . . . . . . 78, 79, 204\psfrag . . . . . . . . . . . . . . . . . . . . . . 78, 79

240
psfrag . . . . . . . . . . . . . 199, 202, 204, 205
pstricks extension . . . . . . . . 82, 203, 204
pstricks . . . . . . . . . . . . . . . . 199, 202, 204
psutils . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Q\qquad . . . . . . . . . . . . . . . . . . . . . . . .44, 59\quad . . . . . . . . . . . . . . . . . . . . . . . . . 44, 59\quarto . . . . . . . . . . . . . . . . . . . . . . . . . . 96
question environnement . . . . . . . . 131
quotation environnement . . . . .24, 25
quote environnement . . . . . . . . . 24, 25

R
racine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\raggedleft . . . . . . . . . . . . . . . . . . . . . 21
\raggedright . . . . . . . . . . . . . . . . . . . . 21
\raisebox . . . . . . . . . . . . . . . . . . . 63, 187\rangle . . . . . . . . . . . . . . . . . . . . . 45, 164\rceil . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
recto verso . . . . . . . . . . . . . . . . . . . . . . . . . 8
redéﬁnitions . . . . . . . . . . . . . . . . . . . . . . 70
\ref . . . . . . . . . . . . . . . 30, 200, 202, 208\reflectbox . . . . . . . . . . . . . . . . . . . . 185\renewcommand . . . . . . . . . . 49, 70, 194\renewenvironment . . . . . . . . . . . . . . 70
ressort . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
\rfloor . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\right . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
\right. . . . . . . . . . . . . . . . . . . . . . . . . . . 46
\rightmargin longueur . . . . . 127, 128\rightmark . . . . . . . . . . . . . . . . 147, 148\rmfamily . . . . . . . . . . . . . . . . . . . . . . . . 18
\Roman . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\roman . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\rotatebox . . . . . . . . . . . . . . . . . . . . . . 64
rotationde boîtes . . . . . . . . . . . . . . . . . . . . . .64
de graphiques . . . . . . . . . . . . . . . . . 76
\rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
référence . . . . . . . . . . . . . . . . . . . . . . . . . .29
aux subfigures . . . . . . . . . . . . . . 77
et ﬁchier auxiliaires . . . . . . . . . . . 31
non déﬁnie . . . . . . . . . . . . . . . . . . . . 31
à un objet . . . . . . . . . . . . . . . . . . . . 30
à une page . . . . . . . . . . . . . . . . . . . . 30

Index

S
\S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
sautde ligne . . . . . . . . . . . . . . . . . . . . . . . 10
de paragraphe . . . . . . . . . . . . . . . . 10
sauvegarde de boîte . . . . . . . . . . . . . . . 67
\savebox . . . . . . . . . . . . . . . . . . . . 67, 190\sbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
\scriptscriptstyle . . . . . . . . . . . . . 48
\scriptsize . . . . . . . . . . . . . . . . . . . . . 19
\scriptstyle . . . . . . . . . . . . . . . . . . . . 48
\scshape . . . . . . . . . . . . . . . . . . . . . . . . . 18
\sec . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\section . . 26, 30, 138, 139, 148, 180section numbering depth . . . . . . . . . 138\section* . . . . . . . . . . . . . . . . . . . . . . . . 26
\sectionmark . . . . . . . . . . . . . . . . . . . 148\secundo . . . . . . . . . . . . . . . . . . . . . . . . . 96
\selectfont . . . . . . . . . . . . . . . . . . . . 125\setboolean . . . . . . . . . . . . . . . . . . . . 117\setbox . . . . . . . . . . . . . . . . . . . . . . . . . 190\setcounter . . . . . . . . . . . . . . . . . . . . . 52
\setlength . . . . . . . . . . . . . . . . . . . . . . 55
\settodepth . . . . . . . . . . . . . . . . . . . . . 56
\settoheight . . . . . . . . . . . . . . . 56, 190\settotoalheight . . . . . . . . . . . . . . 194\settowidth . . . . . . . . . . . . . . . . 56, 190\sffamily . . . . . . . . . . . . . . . . . . . . . . . . 18
\shadowbox . . . . . . . . . . . . . . . . . . . . . 208
shape . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
\showthe . . . . . . . . . . . . . . . . . . . . . . . . . 58
si-alors-sinon . . . . . . . . . . . . . . . . . . . . . 71
\signature . . . . . . . . . . . . . . . . . . . . . . 99
simulation de terminal . . . . . . . . . . . . 24
\sin . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\sinh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
sites internet . . . . . . . . . . . . . . . . . . . . 104\slshape . . . . . . . . . . . . . . . . . . . . . 18, 19\small . . . . . . . . . . . . . . . . . . . . . . 19, 191
sommaire . . . . . . . . . . . . . . . . . . . . . . . . . 97
\sommaire . . . . . . . . . . . . . . . . . . . 97, 179
somme . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
souligné
fontes . . . . . . . . . . . . . . . . . . . . . . . . . 20
sous-ﬁgures . . . . . . . . . . . . . . . . . . . . . . . 77
split environnement . . . . . . . . . . . . . 47
\sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\stackrel . . . . . . . . . . . . . . . . . . . . . . . . 43

240
psfrag . . . . . . . . . . . . . 199, 202, 204, 205
pstricks extension . . . . . . . . 82, 203, 204
pstricks . . . . . . . . . . . . . . . . 199, 202, 204
psutils . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Q\qquad . . . . . . . . . . . . . . . . . . . . . . . .44, 59\quad . . . . . . . . . . . . . . . . . . . . . . . . . 44, 59\quarto . . . . . . . . . . . . . . . . . . . . . . . . . . 96
question environnement . . . . . . . . 131
quotation environnement . . . . .24, 25
quote environnement . . . . . . . . . 24, 25

R
racine . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\raggedleft . . . . . . . . . . . . . . . . . . . . . 21
\raggedright . . . . . . . . . . . . . . . . . . . . 21
\raisebox . . . . . . . . . . . . . . . . . . . 63, 187\rangle . . . . . . . . . . . . . . . . . . . . . 45, 164\rceil . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
recto verso . . . . . . . . . . . . . . . . . . . . . . . . . 8
redéﬁnitions . . . . . . . . . . . . . . . . . . . . . . 70
\ref . . . . . . . . . . . . . . . 30, 200, 202, 208\reflectbox . . . . . . . . . . . . . . . . . . . . 185\renewcommand . . . . . . . . . . 49, 70, 194\renewenvironment . . . . . . . . . . . . . . 70
ressort . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
\rfloor . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\right . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
\right. . . . . . . . . . . . . . . . . . . . . . . . . . . 46
\rightmargin longueur . . . . . 127, 128\rightmark . . . . . . . . . . . . . . . . 147, 148\rmfamily . . . . . . . . . . . . . . . . . . . . . . . . 18
\Roman . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\roman . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\rotatebox . . . . . . . . . . . . . . . . . . . . . . 64
rotationde boîtes . . . . . . . . . . . . . . . . . . . . . .64
de graphiques . . . . . . . . . . . . . . . . . 76
\rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
référence . . . . . . . . . . . . . . . . . . . . . . . . . .29
aux subfigures . . . . . . . . . . . . . . 77
et ﬁchier auxiliaires . . . . . . . . . . . 31
non déﬁnie . . . . . . . . . . . . . . . . . . . . 31
à un objet . . . . . . . . . . . . . . . . . . . . 30
à une page . . . . . . . . . . . . . . . . . . . . 30

Index

S
\S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
sautde ligne . . . . . . . . . . . . . . . . . . . . . . . 10
de paragraphe . . . . . . . . . . . . . . . . 10
sauvegarde de boîte . . . . . . . . . . . . . . . 67
\savebox . . . . . . . . . . . . . . . . . . . . 67, 190\sbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
\scriptscriptstyle . . . . . . . . . . . . . 48
\scriptsize . . . . . . . . . . . . . . . . . . . . . 19
\scriptstyle . . . . . . . . . . . . . . . . . . . . 48
\scshape . . . . . . . . . . . . . . . . . . . . . . . . . 18
\sec . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216\section . . 26, 30, 138, 139, 148, 180section numbering depth . . . . . . . . . 138\section* . . . . . . . . . . . . . . . . . . . . . . . . 26
\sectionmark . . . . . . . . . . . . . . . . . . . 148\secundo . . . . . . . . . . . . . . . . . . . . . . . . . 96
\selectfont . . . . . . . . . . . . . . . . . . . . 125\setboolean . . . . . . . . . . . . . . . . . . . . 117\setbox . . . . . . . . . . . . . . . . . . . . . . . . . 190\setcounter . . . . . . . . . . . . . . . . . . . . . 52
\setlength . . . . . . . . . . . . . . . . . . . . . . 55
\settodepth . . . . . . . . . . . . . . . . . . . . . 56
\settoheight . . . . . . . . . . . . . . . 56, 190\settotoalheight . . . . . . . . . . . . . . 194\settowidth . . . . . . . . . . . . . . . . 56, 190\sffamily . . . . . . . . . . . . . . . . . . . . . . . . 18
\shadowbox . . . . . . . . . . . . . . . . . . . . . 208
shape . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
\showthe . . . . . . . . . . . . . . . . . . . . . . . . . 58
si-alors-sinon . . . . . . . . . . . . . . . . . . . . . 71
\signature . . . . . . . . . . . . . . . . . . . . . . 99
simulation de terminal . . . . . . . . . . . . 24
\sin . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\sinh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
sites internet . . . . . . . . . . . . . . . . . . . . 104\slshape . . . . . . . . . . . . . . . . . . . . . 18, 19\small . . . . . . . . . . . . . . . . . . . . . . 19, 191
sommaire . . . . . . . . . . . . . . . . . . . . . . . . . 97
\sommaire . . . . . . . . . . . . . . . . . . . 97, 179
somme . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
souligné
fontes . . . . . . . . . . . . . . . . . . . . . . . . . 20
sous-ﬁgures . . . . . . . . . . . . . . . . . . . . . . . 77
split environnement . . . . . . . . . . . . . 47
\sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\stackrel . . . . . . . . . . . . . . . . . . . . . . . . 43

Index\stretch . . . . . . . . . . . . . . . . . . . . . . . . . 57
subfig extension . . . . . . . . . . . . . . . . . . . 77
\subfigure . . . . . . . . . . . . . . . . . . . . . . 77
subfigure environnement . . . . . . . . 77
\subparagraph . . . . . . . . . . . . . . . . . . . 26
\subsection . . . . . . . . . . . . . 26, 53, 138\subsubsection . . . . . . . . . . . . . . . . . . 26
\sup . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\symbol . . . . . . . . . . . . . . . . . . . . 156, 165\symboles . . . . . . . . . . . . . . . . . . . . . . 119
symboles mathématiques . . . . . . . . . .39

T
tab le of contents depth . . . . . . . . . .138
tabbing environnement . . . . . . . . . . . 22
table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
liste des . . . . . . . . . . . . . . . . . . . . . . .29
placement . . . . . . . . . . . . . . . . . . . . 28
table environnement . . . . . . . . . 28, 30
table des matières . . . . . . . . . . . . . . . . 32
numérotation . . . . . . . . . . . . . . . . 138
profondeur . . . . . . . . . . . . . . . . . . .138
tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
mathématique . . . . . . . . . . . . . . . . 44
\tableofcontents . . .26, 32, 88, 151,
179
tabular environnement . . . 23, 24, 44,
65, 207
tabulations . . . . . . . . . . . . . . . . . . . . . . . 22
tailledes fontes . . . . . . . . . . . . . . . . . . . . . 19
des graphiques . . . . . . . . . . . . . . . . 76
\tan . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
telefax environnement . . . . . . . . . .101
\telephone . . . . . . . . . . . . . . . . . . . . . . 99
\tempodim longueur . . . . . . . . . . . . . 194\tertio . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\TeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
TEXINPUTS
variable d’environnement . . . . . .71
texmaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\text . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
\textbf . . . . . . . . . . . . . . . . . . . . . 18, 122
textcomp extension . . 98, 213, 219, 220
textcomp extension . . . . . . . . . . . . . . . 213\texteuro . . . . . . . . . . . . . . . . . . . . . . . .98\textheight . . . . . . . . . . . . . . . . . . . . . 55

241
\textit . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textmd . . . . . . . . . . . . . . . . . . . . . . . . . . 18
TeXtoEPS environnement . . . . . . . . 204\textrm . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textsc . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textsf . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textsl . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textstyle . . . . . . . . . . . . . . . . . . . . . . 48
\texttt . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textup . . . . . . . . . . . . . . . . . . . . . . . . . . 18
texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
\textwidth longueur . . . . . . . . 66, 169\textwidth . . . . . . . . . . . . . . . . . . . . . . 55
\thanks . . . . . . . . . . . . . . . . . . . . . . . . . . 83
\the . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
thebibliography environnement 84,
88, 150\thechapter . . . . . . . . . . . . . . . . . . . . 141\thefigure . . . . . . . . . . . . . . . . . . . 53, 54\thefootnote . . . . . . . . . . . . . . . . . . . . 53
theglossary environnement . . . . . 181
theindex environnement . . . .150, 151\thepage . . . . . . . . . . . . . . . . . . . . . . . . . 53
\thesubsection . . . . . . . . . . . . . . . . . . 53
\thispagestyle . . . . . . . . . . . . . . . . . . 27
thumbpdf extension . . . . . . . . . . . . . . .201
\tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
times extension . . . . . . . . . . . . . . . . . . . 121\times . . . . . . . . . . . . . . . . . . . . . . . . . . 119\tiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
tirets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
\title . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
\titlebox . . . . . . . . . . . . . . . . . . 159, 162
titre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
d’un document . . . . . . . . . . . . . . . .84
numérotation . . . . . . . . . . . . . . . . 138\today . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\topsep longueur . . . . . . . . . . . 128, 129\totalheight longueur . . . . . . . . . . . 67
traits . . . . . . . . . . . . . . . . . . . . . . . . . 59, 73
transfig . . . . . . . . . . . . . . . . . . . . . . . . . . 225
translation de boîte . . . . . . . . . . . 63, 64\truc . . . . . . . . . . . . . . . . . . . . . . . . . . . 114\ttfamily . . . . . . . . . . . . . . . . . . . . . . . .18\typeout . . . . . . . . . . . . . . . . . . . . . . . . 184
typographie
lettrine . . . . . . . . . . . . . . . . . . . . . . . 96
majuscules . . . . . . . . . . . . . . . . . . . . 98
ponctuation . . . . . . . . . . . . . . . . . . .96

Index\stretch . . . . . . . . . . . . . . . . . . . . . . . . . 57
subfig extension . . . . . . . . . . . . . . . . . . . 77
\subfigure . . . . . . . . . . . . . . . . . . . . . . 77
subfigure environnement . . . . . . . . 77
\subparagraph . . . . . . . . . . . . . . . . . . . 26
\subsection . . . . . . . . . . . . . 26, 53, 138\subsubsection . . . . . . . . . . . . . . . . . . 26
\sup . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\symbol . . . . . . . . . . . . . . . . . . . . 156, 165\symboles . . . . . . . . . . . . . . . . . . . . . . 119
symboles mathématiques . . . . . . . . . .39

T
tab le of contents depth . . . . . . . . . .138
tabbing environnement . . . . . . . . . . . 22
table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
liste des . . . . . . . . . . . . . . . . . . . . . . .29
placement . . . . . . . . . . . . . . . . . . . . 28
table environnement . . . . . . . . . 28, 30
table des matières . . . . . . . . . . . . . . . . 32
numérotation . . . . . . . . . . . . . . . . 138
profondeur . . . . . . . . . . . . . . . . . . .138
tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
mathématique . . . . . . . . . . . . . . . . 44
\tableofcontents . . .26, 32, 88, 151,
179
tabular environnement . . . 23, 24, 44,
65, 207
tabulations . . . . . . . . . . . . . . . . . . . . . . . 22
tailledes fontes . . . . . . . . . . . . . . . . . . . . . 19
des graphiques . . . . . . . . . . . . . . . . 76
\tan . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216\tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
telefax environnement . . . . . . . . . .101
\telephone . . . . . . . . . . . . . . . . . . . . . . 99
\tempodim longueur . . . . . . . . . . . . . 194\tertio . . . . . . . . . . . . . . . . . . . . . . . . . . 96
\TeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
TEXINPUTS
variable d’environnement . . . . . .71
texmaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 4\text . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
\textbf . . . . . . . . . . . . . . . . . . . . . 18, 122
textcomp extension . . 98, 213, 219, 220
textcomp extension . . . . . . . . . . . . . . . 213\texteuro . . . . . . . . . . . . . . . . . . . . . . . .98\textheight . . . . . . . . . . . . . . . . . . . . . 55

241
\textit . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textmd . . . . . . . . . . . . . . . . . . . . . . . . . . 18
TeXtoEPS environnement . . . . . . . . 204\textrm . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textsc . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textsf . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textsl . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textstyle . . . . . . . . . . . . . . . . . . . . . . 48
\texttt . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\textup . . . . . . . . . . . . . . . . . . . . . . . . . . 18
texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
\textwidth longueur . . . . . . . . 66, 169\textwidth . . . . . . . . . . . . . . . . . . . . . . 55
\thanks . . . . . . . . . . . . . . . . . . . . . . . . . . 83
\the . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
thebibliography environnement 84,
88, 150\thechapter . . . . . . . . . . . . . . . . . . . . 141\thefigure . . . . . . . . . . . . . . . . . . . 53, 54\thefootnote . . . . . . . . . . . . . . . . . . . . 53
theglossary environnement . . . . . 181
theindex environnement . . . .150, 151\thepage . . . . . . . . . . . . . . . . . . . . . . . . . 53
\thesubsection . . . . . . . . . . . . . . . . . . 53
\thispagestyle . . . . . . . . . . . . . . . . . . 27
thumbpdf extension . . . . . . . . . . . . . . .201
\tilde . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
times extension . . . . . . . . . . . . . . . . . . . 121\times . . . . . . . . . . . . . . . . . . . . . . . . . . 119\tiny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
tirets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
\title . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
\titlebox . . . . . . . . . . . . . . . . . . 159, 162
titre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
d’un document . . . . . . . . . . . . . . . .84
numérotation . . . . . . . . . . . . . . . . 138\today . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\topsep longueur . . . . . . . . . . . 128, 129\totalheight longueur . . . . . . . . . . . 67
traits . . . . . . . . . . . . . . . . . . . . . . . . . 59, 73
transfig . . . . . . . . . . . . . . . . . . . . . . . . . . 225
translation de boîte . . . . . . . . . . . 63, 64\truc . . . . . . . . . . . . . . . . . . . . . . . . . . . 114\ttfamily . . . . . . . . . . . . . . . . . . . . . . . .18\typeout . . . . . . . . . . . . . . . . . . . . . . . . 184
typographie
lettrine . . . . . . . . . . . . . . . . . . . . . . . 96
majuscules . . . . . . . . . . . . . . . . . . . . 98
ponctuation . . . . . . . . . . . . . . . . . . .96

242
règles . . . . . . . . . . . . . . . . . . . . . 20, 97

Index
wrapfigure environnement . . . . . . . 78
Wysiwyg . . . . . . . . . . . . . . . . . . . . . . ix–xi

Uunderfull . . . . . . . . . . . . . . . . . . . . . . . . . 33
\underline . . . . . . . . . . . . . . . . . . . . . . 20
unité des longueurs . . . . . . . . . . . . . . . 54
Unix . vi, viii, 6, 7, 74, 111, 203, 207
unixcom environnement . . . . . . . . . .153
\unskip . . . . . . . . . . 114, 115, 156, 174\up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
\upshape . . . . . . . . . . . . . . . . . . . . . . . . . 18
url extension . . . . . . . . . . . . . . . . . . . . . 208\url . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202\usebox . . . . . . . . . . . . . . . . . . . . . 67, 175\usecounter . . . . . . . . . . . . . . . . . . . . 131\usepackage . . . . . 9, 71, 77, 116, 144

242
règles . . . . . . . . . . . . . . . . . . . . . 20, 97

Index
wrapfigure environnement . . . . . . . 78
Wysiwyg . . . . . . . . . . . . . . . . . . . . . . ix–xi

UX
X Window . . . . . . . . . . . . . . . . . . . . . . . . . .7
xcolor extension . . . . . . . . . . . . . . 79, 175
xdvi . . . . . . . . . . 4, 6, 7, 65, 74, 202, 210
Xfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
xfig . . . . . . . . . . . . . 73, 82, 168, 224, 225
xpdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Y
yap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 7

underfull . . . . . . . . . . . . . . . . . . . . . . . . . 33
\underline . . . . . . . . . . . . . . . . . . . . . . 20
unité des longueurs . . . . . . . . . . . . . . . 54
Unix . vi, viii, 6, 7, 74, 111, 203, 207
unixcom environnement . . . . . . . . . .153
\unskip . . . . . . . . . . 114, 115, 156, 174\up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
\upshape . . . . . . . . . . . . . . . . . . . . . . . . . 18
url extension . . . . . . . . . . . . . . . . . . . . . 208\url . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202\usebox . . . . . . . . . . . . . . . . . . . . . 67, 175\usecounter . . . . . . . . . . . . . . . . . . . . 131\usepackage . . . . . 9, 71, 77, 116, 144VV\value . . . . . . . . . . . . . . . . . . . . . 117, 119variable d’environnement
BIBINPUTS . . . . . . . . . . . . . . . . . . . . 88
TEXINPUTS . . . . . . . . . . . . . . . . . . . . 71
varioref extension . . . . . . . . . . . . 165, 208\vbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
\vdots . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . 43
\verb . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\verb* . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
verbatim environnement 24, 153, 208\VerbatimEnvironment . . . . . . . . . 190\VerbatimInput . . . . . . . . . . . . . . . . .189
VerbatimOut environnement . . . . . 189\vfill . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
visualisation . . . . . . . . . . . . . . . . . . . . . . . 7\voir . . . . . . . . . . . . . . . . . . . . . . 166, 167\vref . . . . . . . . . . . . . . . . . . 165, 202, 208\vspace . . . . . . . . . . . . . . . . . . . . . 60, 172\vspace* . . . . . . . . . . . . . . . . . . . . . . . . . 59

\value . . . . . . . . . . . . . . . . . . . . . 117, 119variable d’environnement
BIBINPUTS . . . . . . . . . . . . . . . . . . . . 88
TEXINPUTS . . . . . . . . . . . . . . . . . . . . 71
varioref extension . . . . . . . . . . . . 165, 208\vbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
\vdots . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . 43
\verb . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\verb* . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
verbatim environnement 24, 153, 208\VerbatimEnvironment . . . . . . . . . 190\VerbatimInput . . . . . . . . . . . . . . . . .189
VerbatimOut environnement . . . . . 189\vfill . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
visualisation . . . . . . . . . . . . . . . . . . . . . . . 7\voir . . . . . . . . . . . . . . . . . . . . . . 166, 167\vref . . . . . . . . . . . . . . . . . . 165, 202, 208\vspace . . . . . . . . . . . . . . . . . . . . . 60, 172\vspace* . . . . . . . . . . . . . . . . . . . . . . . . . 59

WW

\whiledo . . . . . . . . . . . . . . . . . . . 118, 119\width longueur . . . . . . . . . . . . . . . . . . 66
wrapfig extension . . . . . . . . . . . . . . . . . . 78
\wrapfig . . . . . . . . . . . . . . . . . . . . . . . . . 78

\whiledo . . . . . . . . . . . . . . . . . . . 118, 119\width longueur . . . . . . . . . . . . . . . . . . 66
wrapfig extension . . . . . . . . . . . . . . . . . . 78
\wrapfig . . . . . . . . . . . . . . . . . . . . . . . . . 78

X
X Window . . . . . . . . . . . . . . . . . . . . . . . . . .7
xcolor extension . . . . . . . . . . . . . . 79, 175
xdvi . . . . . . . . . . 4, 6, 7, 65, 74, 202, 210
Xfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
xfig . . . . . . . . . . . . . 73, 82, 168, 224, 225
xpdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Y
yap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 7

Table des matièresI« Tout »sur LATEX

Table des matières

1I

1 Principes de base
1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Cycle de production . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 Impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Le document source : un document type . . . . . . . . . . . . . . . .
1.3.1 Classe du document . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Le préambule . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Ajout d’extension . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 C’est parti ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Quelques caractères sont spéciaux . . . . . . . . . . . . . . . .
1.4.2 Appel des commandes . . . . . . . . . . . . . . . . . . . . . .
1.4.3 Accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Premiers outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Premières erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.1 Symptômes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2 Diagnostic . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.3 Soins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.4 Une collection de message . . . . . . . . . . . . . . . . . . . .

3
3
4
6
6
7
7
7
8
9
9
10
10
11
12
12
13
13
14
14
15

1 Principes de base
1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Cycle de production . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Édition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Visualisation . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.4 Impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Le document source : un document type . . . . . . . . . . . . . . . .
1.3.1 Classe du document . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 Le préambule . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Ajout d’extension . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 C’est parti ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Quelques caractères sont spéciaux . . . . . . . . . . . . . . . .
1.4.2 Appel des commandes . . . . . . . . . . . . . . . . . . . . . .
1.4.3 Accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Premiers outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Premières erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.1 Symptômes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.2 Diagnostic . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.3 Soins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6.4 Une collection de message . . . . . . . . . . . . . . . . . . . .

3
3
4
6
6
7
7
7
8
9
9
10
10
11
12
12
13
13
14
14
15

2 Ce qu’il faut savoir
2.1 Mise en évidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Family-shape-series . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Correction italique . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 Tailles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 Quelques recommandations . . . . . . . . . . . . . . . . . . .
2.2 Environnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Centrage et alignement . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Tabulations . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.5 Simulation de terminal . . . . . . . . . . . . . . . . . . . . . .
2.2.6 Citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Notes de marge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Notes de bas de page . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Entête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17
18
19
19
20
20
21
22
22
23
24
24
25
25
26
27

2 Ce qu’il faut savoir
2.1 Mise en évidence . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Family-shape-series . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Correction italique . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 Tailles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 Quelques recommandations . . . . . . . . . . . . . . . . . . .
2.2 Environnements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Centrage et alignement . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Tabulations . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.4 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.5 Simulation de terminal . . . . . . . . . . . . . . . . . . . . . .
2.2.6 Citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Notes de marge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Notes de bas de page . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Entête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17
18
19
19
20
20
21
22
22
23
24
24
25
25
26
27

243

« Tout »sur LATEX

1

243

244

Table des matières

244

Table des matières

2.7 Flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Figure et table . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.2 Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.3 Liste des ﬁgures . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2 Que référencer ? . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Fichiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9.1 Interaction avec les références . . . . . . . . . . . . . . . . . .
2.9.2 Interaction avec la table des matières . . . . . . . . . . . . . .
2.9.3 Petits conseils . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10 Où il est question de césure . . . . . . . . . . . . . . . . . . . . . . .
2.10.1 Contrôler la césure . . . . . . . . . . . . . . . . . . . . . . . .

27
28
28
29
29
29
30
30
31
32
32
33
34

2.7 Flottants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1 Figure et table . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.2 Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.3 Liste des ﬁgures . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8.2 Que référencer ? . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9 Fichiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9.1 Interaction avec les références . . . . . . . . . . . . . . . . . .
2.9.2 Interaction avec la table des matières . . . . . . . . . . . . . .
2.9.3 Petits conseils . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10 Où il est question de césure . . . . . . . . . . . . . . . . . . . . . . .
2.10.1 Contrôler la césure . . . . . . . . . . . . . . . . . . . . . . . .

27
28
28
29
29
29
30
30
31
32
32
33
34

3 Mathématiques
3.1 Les deux façons d’écrire des maths . . . . . . . . . . . . . . . . . . .
3.2 Commandes usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Indice et exposant . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Fraction et racine . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Fonctions standards . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Intégrales, sommes et autres limites . . . . . . . . . . . . . . .
3.4 Des symboles les uns sur les autres . . . . . . . . . . . . . . . . . . .
3.4.1 L’opérateur not . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.3 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.4 Commande stackrel . . . . . . . . . . . . . . . . . . . . . . .
3.5 Deux principes importants . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Espaces en mode mathématique . . . . . . . . . . . . . . . . .
3.5.2 Texte en mode mathématique . . . . . . . . . . . . . . . . . .
3.6 Array : simple et eﬃcace . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Comment ça marche . . . . . . . . . . . . . . . . . . . . . . .
3.6.2 Array et les délimiteurs . . . . . . . . . . . . . . . . . . . . . .
3.6.3 Pour vous simpliﬁer la vie... . . . . . . . . . . . . . . . . . . .
3.7 Équations et environnements . . . . . . . . . . . . . . . . . . . . . . .
3.7.1 L’environnement displaymath . . . . . . . . . . . . . . . . . .
3.7.2 L’environnement equation . . . . . . . . . . . . . . . . . . . .
3.7.3 Formules multi-lignes . . . . . . . . . . . . . . . . . . . . . . .
3.8 Changer le style en mode mathématique . . . . . . . . . . . . . . . .
3.8.1 Fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8.2 Taille des symboles . . . . . . . . . . . . . . . . . . . . . . . .
3.8.3 Créer de nouveaux opérateurs . . . . . . . . . . . . . . . . . .

37
37
38
38
38
39
41
41
41
42
42
42
43
43
43
43
44
44
44
45
46
46
46
46
47
47
47
48
48

3 Mathématiques
3.1 Les deux façons d’écrire des maths . . . . . . . . . . . . . . . . . . .
3.2 Commandes usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Indice et exposant . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Fraction et racine . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.3 Symboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Fonctions standards . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2 Intégrales, sommes et autres limites . . . . . . . . . . . . . . .
3.4 Des symboles les uns sur les autres . . . . . . . . . . . . . . . . . . .
3.4.1 L’opérateur not . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Accents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.3 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.4 Commande stackrel . . . . . . . . . . . . . . . . . . . . . . .
3.5 Deux principes importants . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Espaces en mode mathématique . . . . . . . . . . . . . . . . .
3.5.2 Texte en mode mathématique . . . . . . . . . . . . . . . . . .
3.6 Array : simple et eﬃcace . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Comment ça marche . . . . . . . . . . . . . . . . . . . . . . .
3.6.2 Array et les délimiteurs . . . . . . . . . . . . . . . . . . . . . .
3.6.3 Pour vous simpliﬁer la vie... . . . . . . . . . . . . . . . . . . .
3.7 Équations et environnements . . . . . . . . . . . . . . . . . . . . . . .
3.7.1 L’environnement displaymath . . . . . . . . . . . . . . . . . .
3.7.2 L’environnement equation . . . . . . . . . . . . . . . . . . . .
3.7.3 Formules multi-lignes . . . . . . . . . . . . . . . . . . . . . . .
3.8 Changer le style en mode mathématique . . . . . . . . . . . . . . . .
3.8.1 Fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8.2 Taille des symboles . . . . . . . . . . . . . . . . . . . . . . . .
3.8.3 Créer de nouveaux opérateurs . . . . . . . . . . . . . . . . . .

37
37
38
38
38
39
41
41
41
42
42
42
43
43
43
43
44
44
44
45
46
46
46
46
47
47
47
48
48

4 Un pas vers la sorcellerie
4.1 Compteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Compteurs disponibles . . . . . . . . . . . . . . . . . . . . . .
4.1.2 Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3 Aﬃchage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51
51
51
52
53

4 Un pas vers la sorcellerie
4.1 Compteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Compteurs disponibles . . . . . . . . . . . . . . . . . . . . . .
4.1.2 Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3 Aﬃchage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51
51
51
52
53

Table des matières

245

Table des matières

245

4.2 Longueurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Unités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Quelques longueurs de LATEX . . . . . . . . . . . . . . . . . . .
4.2.3 Manipulation des longueurs . . . . . . . . . . . . . . . . . . .
4.2.4 Longueurs élastiques . . . . . . . . . . . . . . . . . . . . . . .
4.2.5 Aﬃchage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Espaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Commandes de base . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Quelques espaces prédéﬁnies . . . . . . . . . . . . . . . . . . .
4.4 Boîtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Boîtes simples . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.2 Manipulation de boîtes simples . . . . . . . . . . . . . . . . .
4.4.3 Boîtes paragraphe . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4 Petites astuces . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.5 Sauvegarde et réutilisation . . . . . . . . . . . . . . . . . . . .
4.5 Déﬁnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.1 Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 Environnement . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.3 Redéﬁnitions . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Mais encore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54
54
55
55
57
58
58
58
59
60
62
63
65
66
67
67
68
69
70
71

4.2 Longueurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Unités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Quelques longueurs de LATEX . . . . . . . . . . . . . . . . . . .
4.2.3 Manipulation des longueurs . . . . . . . . . . . . . . . . . . .
4.2.4 Longueurs élastiques . . . . . . . . . . . . . . . . . . . . . . .
4.2.5 Aﬃchage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Espaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Commandes de base . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Quelques espaces prédéﬁnies . . . . . . . . . . . . . . . . . . .
4.4 Boîtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Boîtes simples . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.2 Manipulation de boîtes simples . . . . . . . . . . . . . . . . .
4.4.3 Boîtes paragraphe . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4 Petites astuces . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.5 Sauvegarde et réutilisation . . . . . . . . . . . . . . . . . . . .
4.5 Déﬁnitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.1 Commandes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 Environnement . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.3 Redéﬁnitions . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Mais encore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54
54
55
55
57
58
58
58
59
60
62
63
65
66
67
67
68
69
70
71

5 Graphisme
5.1 Apéritifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Du format des ﬁchiers graphiques . . . . . . . . . . . . . . . . . . . .
5.3 Le package graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Un standard . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Quelques extensions utiles . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 subfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2 Le package wrapfig . . . . . . . . . . . . . . . . . . . . . . . .
5.4.3 Le package psfrag . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.4 Le package xcolor . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Utiliser make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Convertir les images . . . . . . . . . . . . . . . . . . . . . . .
5.5.2 Convertir les ﬁchiers de dessin . . . . . . . . . . . . . . . . . .
5.6 À part ça . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73
73
74
74
74
76
77
77
78
78
79
80
81
82
82

5 Graphisme
5.1 Apéritifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Du format des ﬁchiers graphiques . . . . . . . . . . . . . . . . . . . .
5.3 Le package graphicx . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Un standard . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Quelques extensions utiles . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 subfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2 Le package wrapfig . . . . . . . . . . . . . . . . . . . . . . . .
5.4.3 Le package psfrag . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.4 Le package xcolor . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Utiliser make . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Convertir les images . . . . . . . . . . . . . . . . . . . . . . .
5.5.2 Convertir les ﬁchiers de dessin . . . . . . . . . . . . . . . . . .
5.6 À part ça . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73
73
74
74
74
76
77
77
78
78
79
80
81
82
82

6 Documents scientifiques
6.1 Article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Fichier .bib . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Citation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.3 Génération . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Ce qu’il faut faire . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Détail du fonctionnement . . . . . . . . . . . . . . . . . . . .
6.3.3 Diﬀérents types d’entrée d’index . . . . . . . . . . . . . . . . .
6.3.4 Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Diviser votre document . . . . . . . . . . . . . . . . . . . . . . . . . .

83
83
84
84
86
87
88
89
89
90
91
91

6 Documents scientifiques
6.1 Article . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Fichier .bib . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Citation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.3 Génération . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Ce qu’il faut faire . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Détail du fonctionnement . . . . . . . . . . . . . . . . . . . .
6.3.3 Diﬀérents types d’entrée d’index . . . . . . . . . . . . . . . . .
6.3.4 Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Diviser votre document . . . . . . . . . . . . . . . . . . . . . . . . . .

83
83
84
84
86
87
88
89
89
90
91
91

246

Table des matières

246

Table des matières

7 Des documents en français
93
7.1 Le problème des lettres accentuées . . . . . . . . . . . . . . . . . . . . 93
7.2 Rédiger un document en français avec LATEX . . . . . . . . . . . . . . 94
7.3 Le package babel et la typographie . . . . . . . . . . . . . . . . . . . 94
7.3.1 Ponctuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.2 L-a, e dans l’a, t-i, t-i, a ! . . . . . . . . . . . . . . . . . . . . . 96
7.3.3 Outils du package babel . . . . . . . . . . . . . . . . . . . . . 96
7.3.4 Recommandations d’usage . . . . . . . . . . . . . . . . . . . . 97
7.3.5 Le cas de l’euro . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.6 Au sujet des majuscules . . . . . . . . . . . . . . . . . . . . . 98
7.4 Courrier et fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.4.1 Commandes disponibles . . . . . . . . . . . . . . . . . . . . . 99
7.4.2 Structure d’un document basé sur la classe lettre . . . . . . 100
7.4.3 Fichiers « instituts » . . . . . . . . . . . . . . . . . . . . . . . 100
7.4.4 Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7 Des documents en français
93
7.1 Le problème des lettres accentuées . . . . . . . . . . . . . . . . . . . . 93
7.2 Rédiger un document en français avec LATEX . . . . . . . . . . . . . . 94
7.3 Le package babel et la typographie . . . . . . . . . . . . . . . . . . . 94
7.3.1 Ponctuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.2 L-a, e dans l’a, t-i, t-i, a ! . . . . . . . . . . . . . . . . . . . . . 96
7.3.3 Outils du package babel . . . . . . . . . . . . . . . . . . . . . 96
7.3.4 Recommandations d’usage . . . . . . . . . . . . . . . . . . . . 97
7.3.5 Le cas de l’euro . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.3.6 Au sujet des majuscules . . . . . . . . . . . . . . . . . . . . . 98
7.4 Courrier et fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.4.1 Commandes disponibles . . . . . . . . . . . . . . . . . . . . . 99
7.4.2 Structure d’un document basé sur la classe lettre . . . . . . 100
7.4.3 Fichiers « instituts » . . . . . . . . . . . . . . . . . . . . . . . 100
7.4.4 Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

8 À vous de jouer !
103
8.1 Livres et autres manuels . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.2 Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3 EﬀTépé, Ouèbe et niouses . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3.1 Sites FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3.2 Sites Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.3.3 Les newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8 À vous de jouer !
103
8.1 Livres et autres manuels . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.2 Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3 EﬀTépé, Ouèbe et niouses . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3.1 Sites FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.3.2 Sites Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.3.3 Les newsgroups . . . . . . . . . . . . . . . . . . . . . . . . . . 105

IIII« Tout »sur (« Tout »sur LATEX)

107

9 Outillage nécessaire111
9.1 Hercule Poirot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.1.1 Fouiller dans les ﬁchiers . . . . . . . . . . . . . . . . . . . . . 111
9.1.2 Examiner les macros . . . . . . . . . . . . . . . . . . . . . . . 112
9.2 Outils de bas niveaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.2.1 Pour qui sont ces pourcents ? . . . . . . . . . . . . . . . . . . 113
9.2.2 Le caractère @ . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.2.3 Le \let de TEX . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.3 Structures de contrôle et tests . . . . . . . . . . . . . . . . . . . . . . 117
9.3.1 Booléens et opérateurs associés . . . . . . . . . . . . . . . . . 117
9.3.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.3.3 Tester la parité des pages . . . . . . . . . . . . . . . . . . . . 120
9.4 Fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.4.1 Le jeu des « trois »familles . . . . . . . . . . . . . . . . . . . . 121
9.4.2 Désignation des fontes et de leurs attributs . . . . . . . . . . . 122
9.4.3 Changer de fontes . . . . . . . . . . . . . . . . . . . . . . . . . 125
9.5 Listes et nouveaux environnements . . . . . . . . . . . . . . . . . . . 126
9.5.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
9.5.2 Réglage de l’étiquette . . . . . . . . . . . . . . . . . . . . . . . 127
9.5.3 Réglages verticaux . . . . . . . . . . . . . . . . . . . . . . . . 128
9.5.4 Valeurs par défaut . . . . . . . . . . . . . . . . . . . . . . . . 128
9.5.5 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129« Tout »sur (« Tout »sur LATEX)

107

9 Outillage nécessaire111
9.1 Hercule Poirot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.1.1 Fouiller dans les ﬁchiers . . . . . . . . . . . . . . . . . . . . . 111
9.1.2 Examiner les macros . . . . . . . . . . . . . . . . . . . . . . . 112
9.2 Outils de bas niveaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.2.1 Pour qui sont ces pourcents ? . . . . . . . . . . . . . . . . . . 113
9.2.2 Le caractère @ . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.2.3 Le \let de TEX . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.3 Structures de contrôle et tests . . . . . . . . . . . . . . . . . . . . . . 117
9.3.1 Booléens et opérateurs associés . . . . . . . . . . . . . . . . . 117
9.3.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.3.3 Tester la parité des pages . . . . . . . . . . . . . . . . . . . . 120
9.4 Fontes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.4.1 Le jeu des « trois »familles . . . . . . . . . . . . . . . . . . . . 121
9.4.2 Désignation des fontes et de leurs attributs . . . . . . . . . . . 122
9.4.3 Changer de fontes . . . . . . . . . . . . . . . . . . . . . . . . . 125
9.5 Listes et nouveaux environnements . . . . . . . . . . . . . . . . . . . 126
9.5.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
9.5.2 Réglage de l’étiquette . . . . . . . . . . . . . . . . . . . . . . . 127
9.5.3 Réglages verticaux . . . . . . . . . . . . . . . . . . . . . . . . 128
9.5.4 Valeurs par défaut . . . . . . . . . . . . . . . . . . . . . . . . 128
9.5.5 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Table des matières

247

Table des matières

247

9.5.6 Un exemple un peu plus tordu... . . . . . . . . . . . . . . . . . 132
9.6 Des environnements qui mettent en boîte . . . . . . . . . . . . . . . . 133
9.6.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
9.6.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

9.5.6 Un exemple un peu plus tordu... . . . . . . . . . . . . . . . . . 132
9.6 Des environnements qui mettent en boîte . . . . . . . . . . . . . . . . 133
9.6.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
9.6.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

10 Cosmétique135
10.1 Allure de l’index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
10.2 Allures des titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10.2.1 Numérotation des titres et table des matières . . . . . . . . . 138
10.2.2 Sections et niveaux inférieurs . . . . . . . . . . . . . . . . . . 139
10.2.3 Chapitres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
10.2.4 Parties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
10.3 Géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.4 En-tête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.4.1 Cas de la première page des chapitres . . . . . . . . . . . . . . 146
10.4.2 Pages vierges avant le début d’un chapitre . . . . . . . . . . . 146
10.4.3 Mécanisme de marqueurs . . . . . . . . . . . . . . . . . . . . . 147
10.4.4 Organisation du document . . . . . . . . . . . . . . . . . . . . 149
10.4.5 Numéroter l’introduction en roman « petites capitales » . . . . 150
10.4.6 Index, bibliographie et table des matières . . . . . . . . . . . . 150
10.5 Environnements avec caractères spéciaux . . . . . . . . . . . . . . . . 151
10.5.1 Digression vers les caractères... . . . . . . . . . . . . . . . . . 152
10.5.2 Environnements maison basés sur fancyvrb . . . . . . . . . . . 153
10.5.3 Environnements pour les langages de programmation . . . . . 154
10.6 About those so called “french guillemets” . . . . . . . . . . . . . . . . 155
10.7 Une boîte pour la minitable des matières . . . . . . . . . . . . . . . . 156
10.7.1 L’interface de la commande . . . . . . . . . . . . . . . . . . . 157
10.7.2 Quand même un peu de TEX . . . . . . . . . . . . . . . . . . 157
10.7.3 Conception de la boîte . . . . . . . . . . . . . . . . . . . . . . 158
10.7.4 Le code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10.7.5 Utilisation avec package minitoc . . . . . . . . . . . . . . . . . 162

10 Cosmétique135
10.1 Allure de l’index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
10.2 Allures des titres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10.2.1 Numérotation des titres et table des matières . . . . . . . . . 138
10.2.2 Sections et niveaux inférieurs . . . . . . . . . . . . . . . . . . 139
10.2.3 Chapitres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
10.2.4 Parties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
10.3 Géométrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.4 En-tête et pied de page . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.4.1 Cas de la première page des chapitres . . . . . . . . . . . . . . 146
10.4.2 Pages vierges avant le début d’un chapitre . . . . . . . . . . . 146
10.4.3 Mécanisme de marqueurs . . . . . . . . . . . . . . . . . . . . . 147
10.4.4 Organisation du document . . . . . . . . . . . . . . . . . . . . 149
10.4.5 Numéroter l’introduction en roman « petites capitales » . . . . 150
10.4.6 Index, bibliographie et table des matières . . . . . . . . . . . . 150
10.5 Environnements avec caractères spéciaux . . . . . . . . . . . . . . . . 151
10.5.1 Digression vers les caractères... . . . . . . . . . . . . . . . . . 152
10.5.2 Environnements maison basés sur fancyvrb . . . . . . . . . . . 153
10.5.3 Environnements pour les langages de programmation . . . . . 154
10.6 About those so called “french guillemets” . . . . . . . . . . . . . . . . 155
10.7 Une boîte pour la minitable des matières . . . . . . . . . . . . . . . . 156
10.7.1 L’interface de la commande . . . . . . . . . . . . . . . . . . . 157
10.7.2 Quand même un peu de TEX . . . . . . . . . . . . . . . . . . 157
10.7.3 Conception de la boîte . . . . . . . . . . . . . . . . . . . . . . 158
10.7.4 Le code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
10.7.5 Utilisation avec package minitoc . . . . . . . . . . . . . . . . . 162

11 De nouveaux jouets
163
11.1 Quelques bricoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
11.1.1 Arguments et convention typographique . . . . . . . . . . . . 163
11.1.2 Autour de la génération de l’index . . . . . . . . . . . . . . . . 164
11.1.3 Des renvois . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
11.1.4 Changement de marges . . . . . . . . . . . . . . . . . . . . . . 167
11.2 Des nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.3 Des citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
11.3.1 Épigraphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
11.3.2 Citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
11.4 Des lettrines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.4.1 La commande \glurps ou un pas vers TEX . . . . . . . . . . . 176
11.4.2 Insertion de la lettrine dans un paragraphe . . . . . . . . . . . 177
11.5 Un sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.6 Un glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.6.1 Tordre le cou à makeindex . . . . . . . . . . . . . . . . . . . . 181
11.6.2 Un environnement pour le glossaire . . . . . . . . . . . . . . . 182

11 De nouveaux jouets
163
11.1 Quelques bricoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
11.1.1 Arguments et convention typographique . . . . . . . . . . . . 163
11.1.2 Autour de la génération de l’index . . . . . . . . . . . . . . . . 164
11.1.3 Des renvois . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
11.1.4 Changement de marges . . . . . . . . . . . . . . . . . . . . . . 167
11.2 Des nota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11.3 Des citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
11.3.1 Épigraphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
11.3.2 Citations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
11.4 Des lettrines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
11.4.1 La commande \glurps ou un pas vers TEX . . . . . . . . . . . 176
11.4.2 Insertion de la lettrine dans un paragraphe . . . . . . . . . . . 177
11.5 Un sommaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
11.6 Un glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.6.1 Tordre le cou à makeindex . . . . . . . . . . . . . . . . . . . . 181
11.6.2 Un environnement pour le glossaire . . . . . . . . . . . . . . . 182

248

Table des matières

11.6.3 Produire le ﬁchier .glx . . . . . . . . . . . . . . . . . . . . . . 182
11.6.4 Recollons les morceaux . . . . . . . . . . . . . . . . . . . . . . 183
11.7 Des onglets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.7.1 Idée retenue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.7.2 Les boîtes dans la marge . . . . . . . . . . . . . . . . . . . . . 185
11.7.3 Position des onglets . . . . . . . . . . . . . . . . . . . . . . . . 186
11.8 Exemples LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.8.1 Outils nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.8.2 Le principe de l’environnement ltxexemple . . . . . . . . . . 190
11.8.3 Mises en boîte . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
11.8.4 Numérotation des exemples . . . . . . . . . . . . . . . . . . . 192
11.8.5 Le trait central . . . . . . . . . . . . . . . . . . . . . . . . . . 194

III

Annexes197

248

Table des matières

11.6.3 Produire le ﬁchier .glx . . . . . . . . . . . . . . . . . . . . . . 182
11.6.4 Recollons les morceaux . . . . . . . . . . . . . . . . . . . . . . 183
11.7 Des onglets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.7.1 Idée retenue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.7.2 Les boîtes dans la marge . . . . . . . . . . . . . . . . . . . . . 185
11.7.3 Position des onglets . . . . . . . . . . . . . . . . . . . . . . . . 186
11.8 Exemples LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.8.1 Outils nécessaires . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.8.2 Le principe de l’environnement ltxexemple . . . . . . . . . . 190
11.8.3 Mises en boîte . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
11.8.4 Numérotation des exemples . . . . . . . . . . . . . . . . . . . 192
11.8.5 Le trait central . . . . . . . . . . . . . . . . . . . . . . . . . . 194

III

Annexes197

A Générer des « pdf »199
A.1 Principe général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
A.2 Ce qui change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.3 Trucs et astuces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.3.1 Gestion des graphiques . . . . . . . . . . . . . . . . . . . . . . 200
A.3.2 Vignettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.3.3 Pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.3.4 Signets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.4 Hyperliens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
A.5 Interaction avec psfrag et pstricks . . . . . . . . . . . . . . . . . . . . 202
A.5.1 pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
A.5.2 psfrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

A Générer des « pdf »199
A.1 Principe général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
A.2 Ce qui change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.3 Trucs et astuces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
A.3.1 Gestion des graphiques . . . . . . . . . . . . . . . . . . . . . . 200
A.3.2 Vignettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.3.3 Pagination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.3.4 Signets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
A.4 Hyperliens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
A.5 Interaction avec psfrag et pstricks . . . . . . . . . . . . . . . . . . . . 202
A.5.1 pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
A.5.2 psfrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

B Mémento
207
B.1 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
B.2 Les ﬁchiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
B.3 AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
B.3.1 Formatage du source . . . . . . . . . . . . . . . . . . . . . . . 209
B.3.2 Raccourcis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
B.3.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
B.4 Aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

B Mémento
207
B.1 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
B.2 Les ﬁchiers auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
B.3 AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
B.3.1 Formatage du source . . . . . . . . . . . . . . . . . . . . . . . 209
B.3.2 Raccourcis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
B.3.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
B.4 Aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

C Symboles
213
C.1 Symboles standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
C.2 Symboles de l’AMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
C.3 Symboles du package textcomp . . . . . . . . . . . . . . . . . . . . . . 219

C Symboles
213
C.1 Symboles standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
C.2 Symboles de l’AMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
C.3 Symboles du package textcomp . . . . . . . . . . . . . . . . . . . . . . 219

D Notes de production
223
D.1 Distribution du moment . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2 Les sources du manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2.1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2.2 Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
D.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
D.3.1 Makeﬁle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

D Notes de production
223
D.1 Distribution du moment . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2 Les sources du manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2.1 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
D.2.2 Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
D.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
D.3.1 Makeﬁle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Table des matières

249

Table des matières

249

D.3.2
D.3.3
D.3.4
D.3.5
D.3.6

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Dvi et postscript . . . . . . . . . . . . . . . . . . . . . . . . . 225
Pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Versions imprimables sur papier A4 . . . . . . . . . . . . . . . 225
Nettoyage de printemps . . . . . . . . . . . . . . . . . . . . . 226

D.3.2
D.3.3
D.3.4
D.3.5
D.3.6

Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Dvi et postscript . . . . . . . . . . . . . . . . . . . . . . . . . 225
Pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Versions imprimables sur papier A4 . . . . . . . . . . . . . . . 225
Nettoyage de printemps . . . . . . . . . . . . . . . . . . . . . 226

Bibliographie

227

Bibliographie

227

Glossaire

229

Glossaire

229

Index

231

Index

231