Anda di halaman 1dari 271

Voir en page xi comment on peut imprimer ce manuel...

TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR

AT L EX
SANS JAMAIS OS ER LE DEMANDER

A Ou comment utiliser L TEX quand on ny connat goutte

Vincent Lozano lozano@enise.fr

Version du 1er mars 2011 Dernire mise jour sur : http://lozzone.free.fr

Enn voil deux jeunes corps enlacs qui jouissent de leur jeunesse en eur ; dj ils pressentent les joies de la volupt et Vnus va ensemencer le champ de la jeune femme. Les amants se pressent avidement, mlent leur salive et confondent leur soue en entrechoquant leurs dents. Vains eorts, puisque aucun des deux ne peut rien dtacher du corps de lautre, non plus quy pntrer et sy fondre tout entier. Car tel est quelquefois le but de leur lutte, on le voit la passion quils mettent serrer troitement les liens de Vnus, quand tout ltre se pme de volupt. Enn quand le dsir concentr dans les veines a fait irruption, un court moment dapaisement succde lardeur violente ; puis cest un nouvel accs de rage, une nouvelle frnsie. Car savent-ils ce quils dsirent, ces insenss ? Ils ne peuvent trouver le remde capable de vaincre leur mal, ils sourent dune blessure secrte et inconnaissable. Lucrce De natural rerum, Livre IV

Introduction
Mieux vaut la malice dun homme que la bont dune femme1 . Lecclsiastique Si 42 14.

Il tait une fois...


Tout a commenc lorsquau tout dbut des annes 1990, jutilisais sur un ordinateur PC 286 une version du logiciel Word Perfect pour minitier ce quon appelait alors le traitement de texte . Ce logiciel qui existe toujours, dit par la socit Corel proposait lpoque sous le dsormais clbre MS-DOS, une interface compose dun vague aperu du document, et surtout laissait lutilisateur la possibilit de voir les codes cest--dire de visualiser le document avec une sorte de langage balises en permettant un contrle trs souple. Un peu plus tard, avec la prolifration de Windows 3.1 et lengouement soudain pour les interfaces graphiques, je me laissais convaincre faible que jtais dutiliser le logiciel de traitement de texte devenu trs clbre aujourdhui dans sa version dalors : la version 2.0 (avec une petite lettre derrire qui avait toute son importance lpoque)... Cette version, je ne lappris quun peu plus tard, avait la particularit intressante de comporter un bug trs srieux qui empchait partir dun certain volume de donnes, la sauvegarde ! Il ny a avait alors aucune solution pour sauvegarder ni rcuprer son document ; les plus teigneux dentre nous se hasardaient supprimer quelques lignes et tentaient nouveau une sauvegarde, mais en vain... cette poque o les logiciels dits par la socit dont nous tairons le nom ici, faisaient lobjet de railleries non dissimules2 , la plupart des utilisateurs qui mentouraient acceptait malgr tout la situation : il tait normal dutiliser des logiciels qui se vautraient lamentablement et notoirement sans crier gare. Cette particularit a fait natre en moi une certitude : je naccepterai pas dutiliser de tels logiciels. Jtais alors lve ingnieur et je pressentais quune partie de mon travail serait consacre llaboration de documents et lutilisation de systmes informatiques en gnral, il me fallait des outils robustes pour y parvenir. Cest au cours de mon DEA (appel aujourdhui master recherche) luniversit Jean Monnet et lcole des Mines de Saint-tienne que jai dcouvert la fois Unix (dans sa version Solaris) puis Linux. Cest alors que le mot latque fut lch pas loin de moi au dbut de ma thse (1993-94). Il tait apparemment question dun logiciel indispensable pour produire des formules mathmatiques, et surtout il semA blait vident que L TEX tait le choix incontournable pour produire des documents scientiques. vrai dire la question navait mme pas lair de se poser !
1 Les pigraphes de ce document sont tires de lAncien et du Nouveau testament. Ces citations sont insres par pure provocation de ma part, et ont parfois un lien avec le titre du chapitre. 2 Parmi celles-ci, mme si elles napparurent que quelques annes aprs, on pourra noter la clbre intervention du patron de General Motors en rponse une provocation de Bill Gates et le non moins clbre Pige dans le cyberespace de Roberto Di Cosmo.

iii

iv
A Jentrepris donc dinstaller cette chose qutait L TEX la fois sur un systme Mac avec une distribution nomme OzTEX et sur un systme Solaris, avec la distribution fournie par lassociation Gutenberg. Il avait fallu pour cela soudoyer ladministrateur systme pour quil accepte de crer un utilisateur privilgi texadm dont le but tait dadministrer la distribution...

Dbut 1994, je commenais ma thse avec bien videmment la ferme intention A de la rdiger avec L TEX. Courant 1995, enthousiasm par ce que je dcouvrais, A jentrepris de rdiger un guide dinitiation L TEX pour mes collgues de laboratoire, guide qui est lorigine du prsent manuel. Cest au cours de lanne 1997, aprs environ deux ans de pratique et dinitiation au monde de la typographie, que je A me confortais dans lide que L TEX tait eectivement le logiciel de choix pour la rdaction dun document srieux : contrle global de la mise en page, gestion de la bibliographie, des index (nom communs et auteurs), lgret des chiers manipuls et surtout : la beaut du rsultat. Depuis, cest pour moi largument le plus fort et A le plus irrfutable pour utiliser L TEX. Aujourdhui matre de confrence en informatique lcole nationale dingnieurs A de Saint-tienne, jutilise L TEX pour la rdaction de documents scientiques et de supports pdagogiques. Aprs maintenant plusieurs annes de pratique, je continue apprendre et dcouvrir, tout en tant encore bloui par lensemble des extensions A proposes par les contributeurs du projet, ensemble dextensions qui font de L TEX un joyeux bazar, mais aussi un outil extraordinaire voluant dans le sens de la vritable ergonomie3 , un outil unique dont le souci permanent est la belle ouvrage .

Organisation du manuel
A Ce manuel est une introduction au traitement de texte L TEX ; il ne sagit pas A dun manuel de rfrence, mais il a pour but de donner les bases pour utiliser L TEX et si possible dy prendre got. Ainsi trouvera-t-on les informations ncessaires pour A commencer en L TEX et quelques conseils sur la rdaction des documents. Pour votre confort, nous avons eu lide lumineuse de diviser ce manuel en chapitres et annexes. A La premire partie prsente les bases de L TEX : A Principes de base expose les concepts fondamentaux de L TEX lire imprativement pour comprendre le reste ;

Ce quil faut savoir prsente les outils standard, ceux quil faut connatre pour rdiger un document simple ; Mathmatiques ou comment produire des quations ; Un pas vers la sorcellerie pntre un peu plus profondment dans les rouages de A A L TEX ; lire si vous voulez utiliser L TEX de manire satisfaisante ; Graphisme permet de comprendre comment insrer des graphiques dans vos documents ;
Pas celle qui consiste ajouter une entre dans un menu, ou un son lapparition dune bote de dialogue.
3

v Documents scientiques donne quelques conseils pour rdiger articles, bibliographies, index et transparents ; Documents en franais fournit quelques notions lmentaires de typographie et prsente les principaux aspects du package french ; vous de jouer ! une conclusion sous forme de conseils pour chercher des inforA mations sur TEX et L TEX.
A La deuxime partie a pour but daborder les aspects plus complexes de L TEX en prenant comme prtexte dexpliquer comment ce manuel a t produit. Ne la lisez pas avant davoir lu la premire... Toute exposition mme non prolonge la deuxime partie peut provoquer des troubles du comportement et des traumatismes irrversibles.

Viennent ensuite les annexes : Gnrer des documents en PDF comme son nom lindique explique la mthode utilise pour gnrer la version pdf de ce manuel ; Mmento est un fourre-tout qui propose une liste non exhaustive dextensions utiles, les raccourcis de AucTEX, et la conguration de aspell pour emacs ; Symboles une liste des symboles mathmatiques disponibles en standard et avec lextension amssymb. Il est conseill de lire dans lordre les premiers chapitres jusquaux mathmatiques. Les suivants peuvent se lire indpendamment les uns des autres. Encore une fois, la deuxime partie du manuel nest lire quaprs avoir matris les concepts de base. Un index en n de document constitue un bon point dentre pour retrouver des A informations. Enn, linstar des auteurs de la FAQ franaise de L TEX, je nai pas fait deort particulier pour traduire systmatiquement tous les termes du jargon de A L TEX et de linformatique en gnral.

Ce quil faudrait que vous sachiez


La lecture de ce manuel qui sadresse aux dbutants, ne demande aucun pr-requis A propos de L TEX. Le lecteur devra cependant possder une connaissance de base dun systme dexploitation en tant quutilisateur, cest--dire savoir manipuler des chiers. tre capable de crer un chier PostScript encapsul sur son systme, partir dun logiciel de dessin ou de manipulation dimage, est galement souhaitable.

Ce que vous ne saurez pas


Ce fabuleux manuel que vous avez entre les mains soure tout de mme de quelques lacunes ; parmi celles-ci :
A il manque une explication claire de la manire dont TEX et L TEX grent les fontes. Vous ne trouverez dailleurs nulle part le mot METAFONT;

vi
A vous napprendrez pas comment installer et administrer une distribution L TEX sur un systme Unix ;

vous ne trouverez pas de catalogue ou dinventaire des extensions existantes, utiles ou inutiles, compatibles ou incompatibles, etc. ; la question de luf ou la poule est galement occulte, 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. Dautre part, les images de la couverture mises disposition par Knuth4 sont dessines par Duane Bibby et nont rien voir avec le sujet du prsent manuel puisquil sagit de dessins censs reprsenter les programmes TEX et METAFONT.

TEX ?
Le mathmaticien Donald Ervin Knuth qui lon doit de nombreux ouvrages de mathmatiques et dalgorithmique (notamment The Art of Computer Programing [8]) a conu dans les annes 70 un systme de traitement de texte nomm TEX aprs avoir t du par la manire dont ses articles taient imprims par les systmes du moment. TEX accessible au public depuis le dbut des annes 80 est un environnement complexe de programmation compos dun processeur de macro (macro processsor ) et de quelques centaines de primitives. Un premier ensemble de macros pr-compiles est apparu assez rapidement sous le nom de format plain. On pourra noter que TEX nest ni un traitement de texte (Knuth le nomme typesetting system que lon pourrait traduire par systme de composition) ni un langage de programmation compil. Voici quelques citations de Knuth propos de TEX5 :
Des mots anglais comme technology sont drivs de racines grecques commenant par les lettres ... ; ce mme mot grec voulant dire la fois art et technologie. Do le nom TEX, qui est la forme en majuscules de .

Au sujet de la prononciation du X de TEX :


[...] Cest le son ch en allemand comme dans ach ; cest le j espagnol [...]. Lorsque vous le dites correctement votre ordinateur, lcran doit devenir lgrement humide.

Votre humble serviteur se contente lui de le prononcer TeK pour contrecarrer laspect caoutchouteux et viter davoir nettoyer son cran rgulirement.
4 5

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

vii Enn pour ce qui est du logo lui-mme Knuth fait remarquer que ce dplacement du E est l pour rappeler quil sagit de typographie, et insiste sur le fait que dans une situation o lon veut parler de TEX sans avoir les moyens dabaisser le E, il faudra crire TeX . La version actuelle de TEX est 3.1415926 (les versions comme vous lavez compris tendent vers ) ; dans la prface de son livre TEX : the program Knuth estimait que le dernier bug avait t trouv et corrig le 27 novembre 1985 et proposait une rcompense de 20,48 $ qui en trouvait un nouveau. Aujourdhui la somme de dollars hexadecimaux a t ge 327,68 $. Les amateurs de puissances de 2 apprcieront... A L TEX ? En 1985, quelques annes aprs la diusion publique de TEX, Leslie Lamport cre un format compos de macros permettant davoir une vision de plus haut niveau A dun document, appel L TEX et portant le numro de version 2.09. Aujourdhui, A L TEX est un standard de fait, et seuls quelques sorciers produisent encore des doA cuments uniquement avec TEX. Cependant, L TEX tant une surcouche de TEX contenant donc des appels des macros de TEX il est parfois utile de connatre quelques-uns des concepts de TEX pour se tirer dun mauvais pas. Voici ce que dit Lamport ce propos dans son livre [10] :
A Imaginez L TEX comme une maison dont la charpente et les clous seraient fournis par TEX. Vous nen avez pas besoin pour vivre dans la maison, mais ils sont pratiques pour y ajouter une nouvelle pice.

Un peu plus loin :


A L TEX a t conu pour permettre un auteur de faire abstraction des soucis de mise en page, et se concentrer sur lcriture. Si vous passez A beaucoup de temps sur la forme, vous faites un mauvais usage de L TEX.

Aujourdhui et depuis 1994, une quipe mi-europenne mi-amricaine (autour de A A Frank Mittelbach) a pris en main le dveloppement de L TEX ; la version de L TEX A parue en 1994 se nomme L TEX 2 . Le but long terme est de concevoir un systme A nomm L TEX3.

Licence
A On peut souligner que TEX et L TEX sont des logiciels faisant partie de la famille des logiciels libres et sont donc entre autres gratuits. Ce qui caractrise les logiciels libres (free software ) est galement laspect ouvert des logiciels. Il est donc possible A davoir les sources Web6 de TEX. Les macros de L TEX sont quant elles distribues

Le langage Web conu par Knuth est quali de langage de programmation littraire. partir dun document source Web, on peut produire le code Pascal ou C du programme ainsi quune documentation en TEX de ce code.

viii sous forme de code source TEX. Le fait de pouvoir obtenir les sources dun logiciel peut sembler secondaire la plupart des utilisateurs ; il faut comprendre que cest parce que rien nest cach que lamlioration de lexistant et la cration dextensions sont possibles. Le fait quun logiciel soit libre ne veut pas dire quon puisse en faire tout fait ce que lon veut. Il reste la proprit de son auteur et toute modication doit tre documente ; chacune de ces modications doit galement donner lieu un nom de chier dirent de celui du chier initial avant modication. Ceci pour assurer cohrence et portabilit au systme (voir ce sujet ftp://ftp.lip6.fr/pub/TeX/ A CTAN/macros/latex/base/lppl.txt pour la licence de L TEX 2 ). A Cinq bonnes raisons pour ne pas utiliser L TEX
A Il existe plusieurs raisons pour lesquelles il est impratif de ne pas utiliser L TEX :

1. vous utilisez un traitement de texte uniquement pour faire vos cartes de vux, votre courrier, pour noter quelques ides, etc. ; 2. vous adorez les souris (1 ou 3 boutons indiremment) et vous pensez que la seule manire dcrire des quations est de les utiliser (les souris) de manire intensive ; 3. vous pensez quUnix cest prise de tte et pas convivial et/ou vous avez une aversion particulire pour tout langage de programmation ; 4. vous trouvez normal : 1o que votre logiciel prfr ne puisse pas lire le document que vous aviez produit avec la version prcdente, et/ou 2o que la nouvelle version vous oblige changer de systme dexploitation, et 3o que la nouvelle version dudit systme dexploitation vous oblige changer dordinateur, et 4o que votre nouvel ordinateur... 5. vous ne savez pas o se trouve la touche \ sur votre clavier ; si vous vous reconnaissez dans une de ces catgories, mieux vaut vous contenter de votre systme actuel. A Quelques bonnes raisons dutiliser L TEX
A Il nest pas question ici de convaincre le lecteur de la supriorit de TEX et L TEX par rapport un autre systme, de toutes manires, 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 worlds nest printers.

D. E. Knuth in the TEXbook [9]

ix
A Les documents gnrs par TEX ou L TEX sont dune qualit typographique exceptionnelle (avec possibilit de rglage trs n7 ), ceci grce notamment :

un dessin de fontes trs soign ; des dtails typographiques (tirets, ligatures,...) ; avez-vous bien regard ces tirets (page 1923) ? et le fi de n, le ffl de soue ou le fl de tre ? un algorithme de csure trs performant ; des formules mathmatiques particulirement russies ; ...
A Dautre part, L TEX est un des rares logiciels de traitement de texte orient vers la production de documents scientiques. Car outre les quations et autres formules, A L TEX possde un grand nombre de fonctionnalits axes autour de la rdaction darticle et la gnration de bibliographie et dindex. A Enn, L TEX est particulirement adapt la production de gros documents. A Pas seulement parce que la manipulation dun document L TEX exige par essence peu de mmoire, mais parce que les mcanismes de macros et de rfrence croise (cross reference en anglais) permettent de garder un contrle global et trs souple du document. A rfrence croise : L TEX permet de faire rfrence de manire symbolique toute partie du document faisant lobjet dune numrotation. Ainsi, le numro des titres, gures, tableaux, quations, pages, rfrences bibliographiques, items dnumration, thormes,... peut tre mentionn plusieurs endroits dans un document de manire trs simple, sans se soucier du numro lui-mme. A macros : sans doute laspect le plus puissant de L TEX. Il faut savoir que tout processus qui mne la gnration dun document est une squence de commandes ou macros. Chaque utilisateur peut donc modier lallure dun document, en modiant lune des ces macros. On peut bien videmment dnir ses propres macros pour mettre en page une partie spcique dun document. Lide forte autour des macros est quon peut a priori sparer le fond de la forme lors de la rdaction dun document.

Les limites du Wysiwyg


A A L TEX est le contraire dun Wysiwyg8 , puisquun source L TEX est un document texte compos du texte lui-mme et des commandes de mise en page. Lamport prsente
7 titre indicatif lunit 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, lunit de base est approximativement 50 , ce qui laisse de la marge vis vis de la rsolution des imprimantes actuelles. 8 Pour what you see is what you get terme dsignant les logiciels permettant lutilisateur de voir lcran ce quil 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.

x ce type dapproche comme tant une mise en page logique par opposition la mise en page visuelle 9 .
A On pourrait cependant dire que L TEX est un Wywsiewyg (what you will see is exactly what you get) puisquaprs compilation on peut visualiser lcran une image exacte du document futur sur papier.

Voici donc un exemple10 parmi dautres 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 dlicat dans llaboration de documents scientiques, on pourra dnir une macro \mafct permettant de produire une telle fonction. Ainsi les squences \mafct{1}{2.5} et \mafct{x}{t} produiront respectivement F, (1, 2.5) et F, (x, t). Mais si lon a besoin de changer de notation, il sura de rednir la commande \mafct pour produire aux endroits ncessaires : F [1, 2.5] et F [x, t]. Et le tour est jou ! Un autre exemple : imaginons que votre document comporte beaucoup de mots techniques que vous voulez mettre en vidence dune manire particulire. Vous crirez alors dans votre document \jargon{implmentation} en ayant pralablement dni la macro \jargon de manire ce quelle mette en italique le mot du vocabulaire technique. Les 235 mots de jargon auxquels vous fates rfrence dans votre document pourront tre mis en vidence autrement quen italique si vous changez davis, et cela sans avoir passer sur les 235 occurrences des mots du jargon, mais juste en changeant la dnition de la macro \jargon. Avec un peu dentranement vous arriverez mme faire en sorte que cette macro insre automatiquement le mot du jargon dans lindex 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 nai pas crit Cinq11 en toutes lettres dans le document source. En ralit le titre du paragraphe est produit par : \ref{nbraisons} bonnes raisons... qui ache en franais le A nombre correspondant aux nombres de bonnes raisons de ne pas utiliser L TEX. Si jamais javais rajouter dautres entres dans cette liste de bonnes raisons, il ne sera pas ncessaire de refaire la numrotation...
Vous trouverez le long de ce manuel, dautres exemples mettant en vidence, les faiblesses du Wysiwyg. Ce nota , vous avertissant dun point important en est un autre exemple. Car au moment o lauteur tape ces lignes, la prsence du panneau danger est un dtail il sagit simplement dun nota. Et lauteur a crit : \begin{nota} Vous trouvez le long de ce manuel... \end{nota}

Pour en nir avec les macros, on peut dire quil sagit dune gnralisation des styles du clbre logiciel Mot de la socit Micrologiciel . La lecture de ce document et en particulier la deuxime partie devrait vous convaincre que les macros permettent daller bien au-del de ces fameux styles...
9 Pour faire un peu de mauvais esprit, les logiciels du type Wysiwyg ont dailleurs t qualis A par Kernighan (dixit Lamport dans son livre sur L TEX) de what you see is all what youve got ! 10 Lamport propose un exemple analogue celui-ci dans son manuel. 11 L non plus dailleurs.

xi Pour les accros du Wysiwyg, une quipe de dveloppeur a mis en uvre une A version What you see is what you Mean (sic ) de L TEX nomm LyX, dont je vous invite prendre connaissance http://www.lyx.org.

Comment imprimer ce manuel ?


Avec une imprimante12 , en utilisant exclusivement les chiers proposs sur http:// www.enise.fr/cours/info/latex. Ce manuel est conu pour tre imprim en deux pages logiques par page physique (2up printing comme disent nos amis anglosaxons). En dautres termes, chaque page de ce document doit apparatre sur une page au format A5. Quatre solutions et quatre chiers associs sont possibles : 1. une version destine tre relie du long cot de la feuille A4, cest la solution pour ceux qui ne disposent pas de massicot ; le chier portant le nom guide-latex-0.pdf est en outre gnr pour prsenter la page impaire (dite belle page) droite (cf. gure 1a page xii) ; 2. une version pour ceux qui disposent dun 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 ; 4. une version au format PostScript guide-latex.ps.gz pour ceux qui voudraient faire leur sauce ...
Attention, les deux derniers chiers au format Pdf, sont prvus pour tre imprims en recto verso en demandant limprimante de retourner la feuille du ct court. Il faudra donc veiller ce que le pilote dimprimante utilise cette option.

Que pouvez-vous faire de ce manuel ?


Nom de lauteur : Vincent Lozano ;
A Titre : Tout ce que vous avez toujours voulu savoir sur L TEX sans jamais avoir os le demander ;

Date : 1er mars 2011 Copyleft : ce manuel est libre selon les termes de la Licence Art Libre (LAL) : http://www.artlibre.org La LAL stipule en rsum que vous pouvez copier ce manuel. Vous pouvez galement le diuser condition :
12

Arf arf (comme disait Frank Zappa).

xii

(a) Reliure longue

(b) Reliure courte 1 exemplaire

(c) Reliure courte 2 exemplaires

Figure 1: Les versions imprimables dindiquer quil est sous la LAL ; dindiquer le nom de lauteur de loriginal : Vincent Lozano et de ceux qui auraient apport des modications ; dindiquer que les sources peuvent tre tlchargs sur http://cours.enise. fr/info/latex. Enn vous pouvez le modier condition : de respecter les conditions de diusion nonces ci-dessus ; dindiquer quil sagit dune version modie et si possible la nature de la modication ; de diuser vos modications sous la mme licence ou sous une licence compatible.

xiii

En avant !
A Comme beaucoup de logiciels puissants, L TEX nest pas toujours simple utiliser. En A fait lorsque lon va dans son sens, L TEX est toujours agrable et permet eectivement comme le souligne Lamport de ne pas se soucier de problmes de mise en page. Lorsque lon veut changer un comportement, et que la solution consiste choisir une autre option dune commande, tout va encore trs bien. Cependant, mme si les choix A de L TEX rpondent des conventions en vigueur chez tous les bons imprimeurs, il arrive un jour o lon dsire avoir une mise en page particulire quapparemment A L TEX est incapable de fournir. ce stade, plusieurs solutions sorent vous : A inclure un package qui rpond votre problme (L TEX tant un systme ouvert, une multitude de packages plus ou moins standardiss sont disponibles pour raliser des oprations varies voire farfelues);

demander un TEXnicien13 de vous dpanner ; si les deux premires solutions sont inecaces, vous navez plus qu faire le dtective et mettre le nez dans le code14 pour trouver la commande qui vous fait du tort et la modier. Vous aurez besoin ce stade de connaissance de la premire couche du systme, savoir TEX. On touche sans doute ici un A des dfauts de L TEX : si dautres logiciels sont incapables de faire des choses A compliques, il est parfois dicile de faire faire L TEX des choses simples (vous en serez probablement convaincu aprs la lecture de la deuxime partie de ce manuel).

Conventions typographiques
Certaines conventions utilises dans ce manuel ncessitent dtre quelque peu clairA cies. Les extraits de code L TEX qui parsment le document peuvent apparatre comme ceci : % attention les yeux Ceci est \emph{dj} du code \LaTeX.
A Le choix sest port sur la fonte machine crire de L TEX. Le code est galement souvent prsent sous la forme suivante, avec un petit numro sur la barre centrale auquel on se rfre parfois :

% attention les yeux Ceci est \emph{dj} du code \LaTeX.

A Ceci est dj du code L TEX.

Certaines parties sont prsentes sous forme de notes pour claircir un point sans que la lecture soit indispensable au premier abord.
13 14

ou un TEXpert, mais cest assez rare. Cest la solution la plus plaisante pour ceux qui ont certaines vellits pour xxxxx pisser du code...

0.1

xiv
Si la lecture est indispensable, on aura recours au pictogramme ci-contre pour attirer lattention du lecteur distrait...
A Les logiciels et les packages de L TEX sont typographis comme indiqus ci-avant. Les mots en anglais sont produits like this. Pour mettre en vidence les parties gnriques dune commande on utilisera cette notation. Par exemple :

Ceci est \emph{texte mettre emphase} du code \LaTeX. Quelques rares fois sont insres des commandes Unix, comme ceci : grep -wi bidule /tmp/truc.dat | sort -n On trouve mme dans une des annexes, des commandes pour emacs :
M-x doctor

Et, comble de lhorreur, des extraits de Makefile : bidule : bidule.o truc.o 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 mathmatiques A avec L TEX.

Remerciements
La rdaction de cet ouvrage qui est initialement le guide local du laboratoire dinformatique graphique et dingnierie de la vision situ Saint-tienne, a dbut en 1995. Je tiens ici remercier les membres de cette quipe de recherche qui mont fait part de leurs remarques et encouragements. Les personnes participant au forum fr.comp.text.tex mont indirectement apport normment dinformations qui ont enrichi ce document, quelles en soient ici remercies. Je voudrais galement remercier Benjamin Bayart qui ma aid crer certaines des extensions utilises dans ce manuel, en particulier la version initiale de la bote entourant les mini tables des matires en tte de chapitre ; ainsi que Guillaume Connan pour ses remarques sur lannexe concernant le format Pdf et pour ses encouragements. Un merci particulier Denis Bitouz pour sa lecture attentive ses conseils prcieux et les nombreuses corrections quil a apportes la premire partie du manuel. Denis ma mis sur la voie de la rdemption, jai fait une croix sur a4wide, eqnarray, et toutes ces horreurs qui faisaient de moi un pauvre pcheur... Un grand merci au groupe de relecture du projet FramaBook men par Vincent Vim . Ce groupe et en particulier Papiray et Antoine Blanche non content de dbusquer de nombreuses coquilles qui se tapissaient sournoisement au fond des paragraphes, a galement corrig de vilaines rptitions. Je tiens donc les remercier ici bien chaleureusement, dautant que les changes ont t fructueux : laccentuation correcte de Gense, le genre de nota, de longues discussion sur pr-requis et en-tte et jen passe...

xv
A La lecture des grands classiques de la littrature autour de TEX et L TEX ma inconsciemment inuenc dans la rdaction de ce document. La lecture du TEXbook de Knuth [9] ma bien videmment donn lide de crer le panneau danger , A la lecture quasi compulsive du L TEX Companion de Goossens, Mittelbach et Samarin [6] a trs certainement inuenc beaucoup de passages de cet ouvrage aussi bien pour le fond que la forme. Enn la lecture de plusieurs manuels en ligne a galement d orienter certains de mes choix (Le Not So Short Introduction to A L TEX possde par exemple un chapitre que lon peut traduire par ce quil faut savoir )...

Avant de commencer je tiens signaler que mme si ce document a mis plusieurs annes mrir, 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 dune occurrence par page) ce qui dnote un style assez pauvre.

Bonne lecture et bon courage15 !

Cette ligne est une illustration de la mise en page logique, elle est cense tre au 2/3 du blanc restant sur la page, quelle que soit la taille de ce blanc bien sr.

15

Sommaire

A Tout sur L TEX

1
. . . . . . . . . . . . . . . . . . . . . . un document type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 7 10 12 13 17 17 20 25 25 26 27 27 29 30 33 37 37 38 41 42 43 44 46 47 51 51 54 58 60 67 71

1 Principes de base 1.1 Installation . . . . . 1.2 Cycle de production 1.3 Le document source : 1.4 Cest parti ! . . . . . 1.5 Premiers outils . . . 1.6 Premires erreurs . .

2 Ce quil 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 Entte et pied de page . . . 2.7 Flottants . . . . . . . . . . . 2.8 Rfrences . . . . . . . . . . 2.9 Fichiers auxiliaires . . . . . 2.10 O il est question de csure

3 Mathmatiques 3.1 Les deux faons dcrire 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 ecace . . . . . . . . . 3.7 quations et environnements . . . . . . . 3.8 Changer le style en mode mathmatique 4 Un 4.1 4.2 4.3 4.4 4.5 4.6 pas vers la sorcellerie Compteurs . . . . . . . Longueurs . . . . . . . Espaces . . . . . . . . Botes . . . . . . . . . Dnitions . . . . . . . Mais encore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xvii

xviii 5 Graphisme 5.1 Apritifs . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . 6 Documents scientiques 6.1 Article . . . . . . . . . 6.2 Bibliographie . . . . . 6.3 Index . . . . . . . . . . 6.4 Diviser votre document 7 Des 7.1 7.2 7.3 7.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 73 74 74 77 80 82 83 83 84 88 91 93 93 94 94 99

documents en franais Le problme des lettres accentues . . Rdiger un document en franais avec Le package babel et la typographie . Courrier et fax . . . . . . . . . . . .

. . . . A L TEX . . . . . . . .

8 vous de jouer ! 103 8.1 Livres et autres manuels . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.2 Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 8.3 ETp, Oube et niouses . . . . . . . . . . . . . . . . . . . . . . . . 104

II

A Tout sur ( Tout sur L TEX)

107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 . 111 . 113 . 117 . 121 . 126 . 133 . . . . . . . . . . . 135 135 138 143 145 151 155 156 163 163 168 172 175

9 Outillage ncessaire 9.1 Hercule Poirot . . . . . . . . . . . . . . . 9.2 Outils de bas niveaux . . . . . . . . . . . 9.3 Structures de contrle et tests . . . . . . 9.4 Fontes . . . . . . . . . . . . . . . . . . . 9.5 Listes et nouveaux environnements . . . 9.6 Des environnements qui mettent en bote 10 Cosmtique 10.1 Allure de lindex . . . . . . . . . . . . . 10.2 Allures des titres . . . . . . . . . . . . . 10.3 Gomtrie . . . . . . . . . . . . . . . . . 10.4 En-tte et pied de page . . . . . . . . . . 10.5 Environnements avec caractres spciaux 10.6 About those so called french guillemets 10.7 Une bote pour la minitable des matires 11 De nouveaux jouets 11.1 Quelques bricoles 11.2 Des nota . . . . . 11.3 Des citations . . 11.4 Des lettrines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xix 11.5 11.6 11.7 11.8 Un sommaire . Un glossaire . . Des onglets . . A Exemples L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 181 184 189

III

Annexes
. . . . . . . . . . . . . . . . . . . . pstricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

197
. . . . . 199 199 200 200 202 202

A Gnrer des pdf A.1 Principe gnral . . . . . A.2 Ce qui change . . . . . . A.3 Trucs et astuces . . . . . A.4 Hyperliens . . . . . . . . A.5 Interaction avec psfrag et B Mmento B.1 Extensions . . . . . . . B.2 Les chiers auxiliaires . B.3 AucTEX . . . . . . . . B.4 Aspell . . . . . . . . . . . . . .

207 . 207 . 208 . 209 . 211 213 . 214 . 217 . 219 223 . 223 . 223 . 224 227 229 231

C Symboles C.1 Symboles standard . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Symboles de lAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Symboles du package textcomp . . . . . . . . . . . . . . . . . . . . . D Notes de production D.1 Distribution du moment . . . . . . . . . . . . . . . . . . . . . . . . D.2 Les sources du manuel . . . . . . . . . . . . . . . . . . . . . . . . . D.3 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliographie Glossaire Index

I
Tout ce que vous avez toujours A voulu savoir sur L TEX sans jamais oser le demander

1
Sommaire 1.1 1.2 1.3 1.4 1.5 1.6 Installation Cycle de production Le document source : un document type Cest parti ! Premiers outils Premires erreurs

Principes de base

1
Lorsquun homme a un coulement sortant de son corps, cet coulement est impur. Le Lvitique Lv 15 2.

A e chapitre expose les mcanismes de base de L TEX. Vous y trouverez donc une A courte introduction linstallation de L TEX, une prsentation dune session A L TEX classique, la structure dun document type, des remarques sur les accents, quelques outils connatre, et enn, une prsentation de lattitude avoir devant les messages derreurs de compilation.

1.1

Installation
A Vous voulez utiliser L TEX ? Il vous faudra installer une distribution correspondant votre systme dexploitation1 . Les distributions fournissent des programmes perA mettant dautomatiser la conguration et linstallation de L TEX, TEX et tous les utilitaires connexes.

Sous Unix : on trouve encore la distribution teTEX bien que son dveloppement ait t stopp en 2006. Aujourdhui on installe gnralement la TEXLive (http: //www.tug.org/texlive) sur un systme Unix ; Sous MacOS : la distribution de rfrence 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 dveloppement dont un programme de visualisation de chiers au format PostScript (gsview).
Si vous ne savez pas ce quest un systme dexploitation, le vtre est MacOS, si vous ne savez pas quel est exactement le systme de votre machine vous avez Fentre, sinon vous avez un Unix...
1

Principes de base

Il faut parfois ajouter ces distributions (si elles nen contiennent pas dj un) un A diteur de texte puisque vous le dcouvrirez bien assez tt, utiliser L TEX cest taper du texte et des commandes dans des chiers : emacs ou vi sous Unix sont deux diteurs de rfrence qui, bien que le premier soit nettement suprieur au second, continuent de faire lobjet dune guerre strile entre utilisateurs la plupart du temps de mauvaise foi ; kile et texmaker sont des environnements de dveloppement intgr grce auxquels les utilisateurs dbutants pourront se sentir laise pour commencer : ils ont en eet la particularit de centraliser dans une mme interface : dition, compilation & visualisation. Ces environnements permettent galement A de dcouvrir les commandes de L TEX par lintermdiaire de menus, botes de dialogue et autres onglets (voir la gure 1.1a page suivante pour en avoir un aperu) ; TEXnicCenter est lquivalent (aperu la gure 1.1b) sous la marque la fentre ; TEXshop et iTEXmax sont les quivalents sous la marque la pomme Vous apprendrez galement bien assez vite que la production dun document A avec L TEX consiste traduire (on dit aussi compiler ) un source donc cr par un diteur de texte en un format destin lachage ou limpression2 . Il existe donc, plus ou moins intgrs aux distributions, des outils clbres pour la visualisation des dirents chiers rsultants de la compilation : Format DVI : xdvi, kdvi sous Unix et yap sous Windows font partie des programmes A permettant de visualiser le rsultat de la compilation dun chier L TEX ; 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 clbre 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 franais de A L TEX assurant la csure (hyphenation en anglais) correcte des mots. On vriera les logs (voir 1.6 page 13) au moment de la compilation dun document pour contrler le chargement des motifs pour le franais : LaTeX2e <2005/12/01> Babel <v3.8h> and hyphenation patterns for english, usenglishmax, dumylang, french , loaded.

1.2

Cycle de production
A Mme si L TEX nest pas proprement parler un langage de programmation compil, on peut malgr tout faire une analogie entre le cycle de production dun document A L TEX et le cycle dition-compilation-excution dun dveloppement de logiciel avec un langage de programmation classique.
2

Ces formats sont prsents un peu plus loin dans ce chapitre.

1.2 Cycle de production

(a) Kile

(b) TEXnicCenter

Figure 1.1: Deux exemples denvironnement de dveloppement intgr : Kile sous Linux et TEXnicCenter sous Windows. Ils permettent de centraliser dans une mme interface : dition, compilation & visualisation.

6
.tex
A L TEX

Principes de base
.dvi
xdvi

.ps
dvips

Figure 1.2: Cycle de production sur machines Unix

1.2.1

dition

A Un document source L TEX est un chier texte3 . Ainsi la manipulation dun chier A L TEX ne demande pas de logiciel particulier, si ce nest un diteur de texte classique. A Donc, pour manipuler un document L TEX :

emacs nom de chier.tex & ou : vi nom de chier.tex devrait sure pour entrer dans ce monde sauvage et inconnu quest la saisie dun A document L TEX. Sous Windows, on squipera dun diteur de texte de son choix4 . A Notez quil est recommand de donner lextension .tex aux sources L TEX.

1.2.2

Compilation
latex nom de chier.tex

On lance la compilation grce la commande : La compilation gnre un jour ou lautre des erreurs. Il en sera question la section 1.6 page 13. En tout cas, aprs suppression des erreurs de compilation, on obtient un chier portant lextension dvi pour device independant. Ce qui signie que le chier contient des informations indpendantes du priphrique de sortie (cran, imprimantes, ...). Ce chier de type binaire contenant une image du document portable sur tout systme TEX quel que soit le systme dexploitation. Il existe ensuite des programmes permettant soit : de visualiser le document : dvi bitmap cran ; de limprimer : dvi langage imprimante ; de le convertir : dvi chier PostScript. La gure 1.2 illustre les divers programmes entrant en jeu dans la production du document nal sur une machine Unix.
Il est galement possible de gnrer un document au format PDF. On pourra consulter lannexe A pour obtenir des informations ce sujet.
3 4

Cest--dire un chier ne contenant que le code des caractres qui le composent. Il existe une version dEmacs pour Micrologiciel Fentre, avis aux amateurs.

1.3 Le document source : un document type

1.2.3

Visualisation

La visualisation seectue simplement aprs compilation sans erreur grce au programme xdvi en tapant la commande : xdvi nom de chier.dvi & il sagit dun logiciel tournant sous X Window, trs intuitif, qui donne un aperu trs lisible du document. La distribution teTEX pour Windows propose un visualiseur nomm yap5 .
On notera quil nest pas ncessaire de relancer xdvi ou yap aprs chaque compilation. Ils mettent en eet jour lachage automatiquement.

1.2.4

Impression
dvips nom de chier.dvi

Pour imprimer un document, on utilise le programme dvips comme suit :

Il est aussi possible de gnrer un chier PostScript en redirigeant la sortie de dvips : dvips nom de chier.dvi -o nom de chier.ps Le chier nom de chier.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 pour compiler dabord truc.tex, et pour produire ensuite bidule.ps partir de truc.dvi. Pour prparer un chier destin dautres imprimantes, il faut spcier en ligne de commande : dvips -Pcong nom de chier.dvi o cong dsigne une imprimante particulire ou une option dnie par ladminisA trateur du systme L TEX que vous utilisez.
Le format PostScript dni par Adobe est un langage dimpression trs rpandu sur les systmes Unix. De nombreux utilitaires autour du Postscript sont disponibles, voir par exemple les trs bons psutils disponibles par exemple ftp://ftp.lip6.fr/ pub/TeX/CTAN/support/psutils ou toute autre bonne crmerie CTAN6 prs de chez vous ou sous la forme dun paquet Debian.

1.3

Le document source : un document type


Nous allons prsenter dans cette section un document type. Tous les documents A L TEX ont en eet une structure commune, de la forme suivante :
5 6

Pour yet another previewer , soit encore un visualiseur (humour dinformaticien)... voir le chapitre 8 page 103 pour la signication de ce terme.

8 \documentclass[cOption1 ,cOption2 ,...)]{classe} \usepackage[pOption1 ,pOption2 ]{package} ... prambule ... \begin{document} ... le texte ... \end{document}
A Ainsi tout document L TEX peut se dcomposer comme suit :

Principes de base

spcication de la classe du document ; prambule : utilisation de packages particuliers ; initialisations et dclarations diverses ; corps du document (entre \begin{document} et \end{document}). Voici quelques dtails sur chacune de ces parties.

1.3.1

Classe du document

A La classe est une indication donne L TEX qui va dterminer la mise en page de certaines parties du document. Suivant la classe utilise, certaines commandes seront disponibles ou non (\chapter disponible pour la classe book mais indisponible pour la classe article, par exemple). Dautre part, une commande donne aura une signication spcique selon la classe choisie (titres, tables des matires,...). A En premire approche7 , tout document L TEX commence donc ncessairement par linstruction \documentclass avec entre accolades une classe de document qui peuttre :

article pour un article ; proc pour un article dans le style IEEE proceedings ; report pour un rapport de plusieurs dizaines de pages ; book pour un livre ou une thse ; letter pour une lettre ; slides pour produire des transparents On peut videmment dnir sa propre classe de document. Les options de la classe sont prcises entre crochets et peuvent tre parmi les suivantes : 11pt,12pt pour changer la taille des caractres de manire globale ; twoside pour gnrer un document en recto verso ;
7

En ralit on peut insrer dautres incantations magiques avant le \documentclass...

1.3 Le document source : un document type draft pour gnrer le document en mode brouillon ; ... On pourra donc par exemple, entrer : \documentclass{article} pour avoir toutes les options par dfaut (10pt, une colonne, mode recto,...). \documentclass[12pt]{article} pour un article en 12pt (par dfaut la taille est de 10pt), ou encore : \documentclass[twoside,draft]{report} pour un rapport en recto verso et mode brouillon.

1.3.2

Le prambule

Le prambule est la zone situe entre la clause \documentclass et la clause \begin{document}. Cette zone est la zone o lon peut spcier les extensions que lon veut inclure (voir le paragraphe suivant), linitialisation de variables globales (marges,...), la dnition de styles (titres, numrotation,...), ou de macros particulires.

1.3.3

Ajout dextension

A La commande \usepackage de L TEX pourrait tre compare une directive #include A du langage C. Elle permet de rajouter des fonctionnalits L TEX sous forme de ma8 cros et/ou denvironnement . ce stade, il faut juste noter que lon peut inclure plusieurs packages en une seule ligne :

\usepackage{module1 , module2 , module3 ,...} Si module1 , module2 et module3 ont en commun une option opt1, on peut entrer : \usepackage[opt1]{module1 ,module2 , module3 } Par contre si loption opt1 ne concerne que lextension module2, il sera ncessaire dentrer les deux lignes suivantes : \usepackage{module1 , module3 } \usepackage[opt1]{module2 } Voici deux exemples : % package graphicx avec option d r a f t et xdvi \ usepackage [ xdvi , draft ]{ graphicx } % packages array et s u b f i g \ usepackage { array , subfig }
Toutes les options (de classe, de packages, ou de commandes) sont par dnition des arguments optionnels. On peut donc dj retenir le fait que tout argument A LTEX donn entre crochets [...] est un argument facultatif.
8

Ce terme est expliqu au chapitre suivant.

10

Principes de base

1.4

Cest parti !
Nous allons tenter dans cette section, de prsenter, partir dun document ne conteA nant que quelques commandes de mise en page, les principes de base de L TEX.

Cette loi est lune des lois de \emph{Murphy}. \end{document}

Cet exemple illustre un certain nombre de principes parmi les plus importants de A L TEX, savoir :
A Ligne vierge saut de paragraphe : une ligne vierge indique L TEX la n dun paragraphe. Ainsi dans lexemple prcdent, le premier paragraphe commence Un outil et nit avec fragile. . La commande \par est quivalente la ligne vierge et peut donc galement tre utilise pour commencer ou nir un paragraphe. A L TEX ignore les sauts de lignes : ce ne sont pas les sauts de lignes dans le doA cument source qui dnissent les sauts de lignes dans le document nal. L TEX coupe, indente et justie automatiquement chaque paragraphe, sauf contreordre de votre part. A L TEX ignore les espaces multiples : taper un espace ou dix huit mille sept cent quatre vingt quatre espaces est quivalent, comme le montrent les espaces insrs avant tombe et avant lendroit . Ceci est aussi vrai pour les sauts de paragraphes : entrer une ligne vierge ou plusieurs revient au mme. A \ est le caractre dchappement : il indique L TEX que le mot qui suit est une squence de contrle, cest--dire une commande (ou macro) dans le sens le plus gnral du terme. Ici, il sagit de mettre en vidence le mot Murphy. Ceci est eectu grce la commande \emph.

{ et } sont des dlimiteurs de groupe, notions expliques un peu plus bas.

1.4.1

Quelques caractres sont spciaux

Comme le suggre lintervention du caractre \, il existe dautres symboles ayant A une signication spciale pour L TEX. Il sagit des 10 caractres suivants : \ $ & % # ^_ { } ~ Voici un petit exemple, utilisant une partie de ces symboles :

1.1

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

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

1.4 Cest parti !


% paragraphe sans intrt \textbf{To be} a subscript : $x_{i+1}$, or a superscript : $e^{i\pi}$ ? thats question~1 ! % or question 2 ?

11

To be a subscript : xi+1 , or a superscript : ei ? thats question 1 !

Pour linstant, il faut donc savoir que :


A % indique L TEX dignorer le restant de la ligne. Cest donc le symbole du commentaire (quivalent au // du C++) ; A $ est le symbole de dbut et n de formule. Lorsque L TEX rencontre un $ il commute en mode mathmatique jusquau symbole $ suivant ; A ~ est lespace inscable9 , il empche L TEX de faire une csure cet endroit particulier. Il existe un nombre important de situations o il est ncessaire dinsrer un caractre inscable (tout ce qui est du style : figure~4). Cependant, il nexiste pas de rgles systmatisant lusage dun tel caractre ;

1.2

_ et ^ permettent respectivement de passer en indice et en exposant. Attention, ces symboles ne sont autoriss quen mode mathmatique ; { et } sont respectivement les caractres de dbut et n de groupe. Deux types de groupement sont donns titre dexemple : lun, en mode mathmatique, pour grouper la sous-formule mettre en indice ou en exposant ; lautre pour grouper les mots mettre en gras. On peut produire une partie des caractres spciaux dans le texte grce aux commandes suivantes : \$ \& \% \# \{ \} \_ qui donnent respectivement : $ & % # { } _. La section 2.2.5 page 24 explique comment produire les autres caractres spciaux (\ ~ ^).

1.4.2

Appel des commandes

Vous avez compris que pour appeler une commande ou macro, il est ncessaire dinsrer le caractre dchappement escape char en anglais et de le faire A suivre par le nom de la macro que vous voulez utiliser. Mais comment fait L TEX pour reprer la n du nom de la macro ? Prenons comme exemple la macro \TeX qui produit le logo TEX.
The \TeX book is for \TeX \TeX\ has some powerful macros. hackers.
1.3

\LaTeX{} is a document preparation system

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

On peut rsumer le mcanisme en deux rgles. Il y a deux types de caractres qui A indiquent L TEX la n du nom de la macro :
9

Voir aussi, le paragraphe 2.10 page 33 sur le contrle de la csure.

12

Principes de base les espaces ; ils sont cependant ignors dans la production du document ; tout caractre autre que les caractres de la catgorie lettre (alphabet majuscule et minuscule).

Le caractre \ (o est le caractre espace) est appel un espace de contrle ; cet A espace nest jamais ignor par L TEX. Cest pourquoi : la squence et\\\hop! produira ; et hop ! . En fait, il est bon de prendre lhabitude dappeler les macros sous la forme \fonction{arguments} et donc dutiliser la troisime forme de lexemple prcdent plutt que la deuxime.Cela vite de se poser le problme de lespace ignor10 . A On crira donc the TEXbook avec the \TeX{}book et L TEX is a ... avec \LaTeX{} is a ... .

1.4.3

Accents

A Les franais ont souvent une apprhension utiliser L TEX cause des accents. Pas daolement ! vous naurez pas saisir les caractres accentus comme indiqu dans le tableau 1.1. Il est quand mme bon de noter quil est possible daccentuer (et cdiller ) nimporte quel type de caractre, y compris les majuscules.

Table 1.1: Saisie des accents avec des caractres 7 bits accent aigu accent grave accent circonexe cdille trma \z \z \^z \c{z} \"{z} ` z z z z

Attention ! Sil est possible de saisir des documents avec des caractres accentus il ne faut pas perdre de vue quil faut alors faire appel un encodage qui est pour linstant local une rgion du globe. On utilise en France le codage Iso8859 avec lextension latin1 qui permet de manipuler nos jolis accents. Avant de lire prcisment le chapitre ddi aux documents rdigs en franais, nous vous suggrons de rajouter dans votre prambule : \ 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 pour attaquer un document en franais.

1.5

Premiers outils
Voici quelques macros et ligatures connatre car souvent utilises dans un docuA ment. Tout dabord, L TEX distingue trois types de tirets : pour Saint-tienne ;

-- pour page 1224 ;


10

Mais pourquoi il nous en parle, alors !?

1.6 Premires erreurs --- pour ouvrir une parenthse comme cela. Les guillemets doivent tre entrs comme ceci : et pour les textes en anglais ;

13

et si votre clavier le permet11 , pour les textes en franais . La partie franaise du package babel (cf. chapitre 7 page 93) permet la saisie de caractres laide des commandes \og et \fg, ainsi : \og franais\fg{}. Voici pour nir quelques commandes utiles : \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 franais (voir le chapitre 7 pour quelques notions de typographie franaise)... Enn, souvenez-vous quen anglais, on ne saisit pas despace avant les ponctuations doubles (: ; ! ?) contrairement au franais. Rappelez-vous aussi que dans ce doux pays quest la France, on roule surtout droite.

1.6

Premires erreurs
A Dans ce qui suit nous vous proposons dexaminer les tats dme de L TEX pendant quil compile votre document. Lorsquon lance la compilation en ligne de comA mande, on voit directement cette sortie dans le terminal. De manire utiliser L TEX de manire la plus enrichissante nous vous incitons trouver dans votre propre environnement A la manire dexaminer les logs de L TEX, qui vous indiqueront les messages derreurs et autres avertissements survenant lors de la compilation.

1.6.1

Symptmes

A Si vous utilisez L TEX en interactif vous serez amens un jour ou lautre voir apparatre lcran, 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 srement incomprhensible, est le rsultat produit sur A le terminal aprs avoir excut L TEX sur le document erreur.tex que voici :
11

Alt Gr z et Alt Gr x sur un clavier sous Linux, par exemple.

14 \documentclass{article}

Principes de base

\begin{document} Il me semble bien quil y ait une erreur dans le premier paragraphe de ce \empha{document} somme toute assez court. \end{document}

1.6.2

Diagnostic

On peut donc expliquer de manire simple le message derreur : ligne 1 vous utilisez TEX version 104 prs ;

ligne 2 vous compilez le chier erreur.tex ;


A ligne 3 vous utilisez L TEX 2 version de dcembre 95 ;

ligne 45 vous utilisez la classe de document standard article ; ligne 6 par dfaut, la taille 10pt est utilise ; ligne 7 le message derreur proprement dit ; ligne 89 la ligne o sest produite lerreur ainsi que son numro dans le document source erreur.tex ; ligne 10 le prompt ? particulirement angoissant de TEX
A La coupure forme par les lignes 8 et 9, indique prcisment lendroit o L TEX a perdu les pdales. Le message :

! Undefined control sequence.


A vous indique que la commande que vous avez entre nest pas connue par L TEX. Et eectivement, la commande \empha nexiste pas.

1.6.3

Soins

A Mais que rpondre L TEX, lorsquil nous ache son fameux prompt ? ? Voici, A trois solutions, les plus couramment utilises pour communiquer un peu avec L TEX :

appuyer sur <Entre> pour ignorer lerreur ; taper x permet de quitter la compilation ;
A taper r pour demander L TEX de continuer en ignorant tous les autres messages derreur ;

taper i pour insrer une correction et continuer la compilation. Sachant que cette correction ne sera pas insre dans le document source ; taper h pour demander un peu plus dinformation quant lerreur ; voici ce que vous dit TEX pour le Undefined control sequence :

1.6 Premires erreurs


The control sequence at the end of the top line of your error message was never \defed. If you have misspelled it (e.g., \hobx), type I and the correct spelling (e.g., I\hbox). Otherwise just continue, and Ill forget about whatever was undefined.

15

1.6.4

Une collection de message

A TEX et L TEX disposent dun nombre important de messages derreur qui correspondent diverses situations. Ces messages ne sont pas toujours comprhensibles au premier abord. Cependant on peut dire que la plupart des erreurs viennent le plus souvent : A dune erreur de syntaxe sur les mots rservs de L TEX ;

de paires daccolades mal construites ; dune commande mathmatique utilise en mode texte ; dun mode mathmatique non referm ; dun package que vous avez oubli dinclure ; dune n de journe dicile ; ...

Y a plus qu !
Vous avez maintenant compris comment on pouvait crer un document imprimable A partir dun source L TEX. Ce chapitre vous a galement permis de comprendre le principe de lappel des commandes. Il ne vous reste qu entamer le chapitre suivant A pour connatre les direntes fonctionnalits que vous propose le langage L TEX.

2
Sommaire 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 Mise en vidence Environnements Notes de marge Titres Notes de bas de page Entte et pied de page Flottants Rfrences Fichiers auxiliaires

Ce quil faut savoir

2.10 O il est question de csure

Quand on chtie le railleur, le simple sassagit ; quand on instruit le sage, celui-ci gagne en savoir. Les proverbes Pr 21 11.

I connatre pour gnrer un document avec LTEX. Nous traiterons en vrac des
A A L T

l sera question dans ce chapitre, des commandes de mise en page de base

mises en vidence, des environnements standard EX, des titres, des notes de bas de page, des entte et pied de page et des environnements ottants. Nous terminerons le chapitre par un expos du systme de rfrences suivi dune prsentation des chiers A auxiliaires gnrs par L TEX. Enn, ceux qui auront tenu jusque l, auront la chance de pouvoir lire quelques considrations sur la csure. Toutes ces commandes seront utiliser avec leur comportement par dfaut, cest-dire que nous ne prsenterons pas ici la manire de les rednir. Vous serez par contre en mesure de produire un document classique avec les mises en page traditionnelles. Pour taper un article plus volu, vous aurez besoin dinformations sur la manire de produire des formules mathmatiques (chapitre 3), quelques infos sur les documents scientiques (chapitre 6), et ventuellement sur linclusion de graphiques (chapitre 5).

2.1

Mise en vidence
A Pour comprendre un tant soit peu le mcanisme de slection de fontes de L TEX, il faut savoir quon distingue au moins quatre paramtres dans une fonte :

17

18

Ce quil faut savoir Table 2.1: Dclarations de changement de fontes Commande \textrm{...} \textsf{...} \texttt{...} \textup{...} \textit{...} \textsl{...} \textsc{...} \textmd{...} \textbf{...} Dclarations {\rmfamily ...} {\sffamily ...} {\ttfamily ...} {\upshape ...} {\itshape ...} {\slshape ...} {\scshape ...} {\mdseries ...} {\bfseries ...} Output roman sans srif machine crire droit italique pench Petites Capitales medium gras

A famille : cest la forme globale de la fonte. L TEX utilise par dfaut 3 types de familles : roman, sans srif et machine crire. Le mot anglais utilis par A L TEX est family

style : cest lallure (en anglais shape ) de la fonte : italique pench et Petites Capitales.
A graisse : cest lpaisseur (serie pour L TEX) des traits. Par dfaut 2 paisseurs : mdium et gras ;

taille : taille des caractres.

2.1.1

Family-shape-series

On distingue deux types de macros pour changer les trois premiers paramtres (cf. tableau 2.1) : les commandes et les dclarations. Les commandes agissent sur leur argument donn entre accolades. Les dclarations agissent comme des interrupteurs en changeant la valeur dun de ces paramtres jusqu nouvel ordre. En rgle gnrale, on utilisera les commandes pour mettre en vidence un mot ou un groupe de mots :
une \emph{variable} de type \texttt{char} est \textsc{Toujours} code sur \textbf{8 bits}. une variable de type char est Toujours code sur 8 bits.
2.1

Notez lutilisation dans lexemple prcdent, de la commande \emph (dont la dclaration quivalente est \em qui permet de mettre en vidence de manire lgante un groupe de mots. Il est fortement conseill dutiliser les commandes plutt que les dclarations. Cependant lorsquune longue portion de texte est changer, il sera parfois plus judicieux dutiliser les commandes1 :
1

Ainsi que lors de la dnition de commandes.

2.1 Mise en vidence


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

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

Lexemple suivant illustre lutilisation de groupes. La dclaration \slshape se situe dans un groupe, elle est donc locale ce groupe. Dautre part, un groupe hrite les paramtres du groupe qui lenglobe. Ainsi, silence est crit en fonte sans srif (groupe englobant) et pench (dclaration locale).
\sffamily Le jazz est une musique o le {\slshape silence\/} a toujours raison ; cest pour cela quil na pas dautre issue que limpossible. Le jazz est une musique o le silence a toujours raison ; cest pour cela quil na pas dautre issue que limpossible.

2.3

2.2

2.1.2

Correction italique

Une autre raison pour laquelle il est recommand dutiliser les commandes plutt que les dclarations, est que les commandes eectuent la correction italique contrairement aux dclarations. La correction italique est un espace quil est ncessaire de rajouter la n dun groupe de mots en italique, pour viter que celui-ci ne touche le mot suivant. Cet espacement est fonction du caractre mis en jeu :
le {\em chef} a toujours raison.\par le {\em chef\/} a toujours raison.\par le \emph{chef} a toujours raison.\par le chef a toujours raison. le chef a toujours raison. le chef a toujours raison.

On voit donc clairement que la commande \emph eectue la correction, alors quil est ncessaire de la faire explicitement laide de la macro \/, quand on utilise la forme dclaration.

2.1.3

Tailles

On dispose des macros donnes au tableau 2.2 pour changer la taille de la fonte en cours. Ces macros sont des dclarations et il existe pour chacune dentre elles un environnement portant le mme nom. Table 2.2: Changement de taille \Huge \huge \LARGE \Large \large

trs trs gros


trs gros
gros

immense norme

\normalsize \small \footnotesize \scriptsize \tiny

2.4

normal
petit
plus petit
rikiki
minuscule

20

Ce quil faut savoir

2.1.4

Quelques recommandations

Lusage veut que dans la mesure du possible, on utilise avec parcimonie les changements de fontes. Il est en eet de mauvais got deectuer des mises en vidence intempestives et inutiles ; le plus gnralement elles surchargent le document au lieu de le rendre plus lisible. Voici trois suggestions (toujours dusage !) sur lutilisation des changements de fontes : prfrer la commande \emph (par dfaut italique ) que tout autre commande pour mettre en vidence ; rserver le gras pour une remarque particulirement importante ; utiliser les petites capitales ne sont utiliser quasiment exclusivement que pour les noms dans un document en franais : Donald Knuth ;

la famille machine crire est souvent utilise pour produire du texte en langage de programmation ou quivalent. bon entendeur... Dautre part nous vous donnons ci-dessous deux considrations quant lutilisation du changement de taille et du soulign (commande \underline) :
Perhaps poets who wish to speak in a still small voice will cause future books to make use of frequent font variations, but nowadays its only an occasional font freak (like the author of this manual) who likes such experiments.

Donald Knuth in the TEXbook [9]

Note that underlining for emphasis is considered bad practice in the publishing world. Underlining is only used when the output device cant do highlighting in another way for example, when using a typewriter.

A Michel Goossens et al. in the L TEX Companion [6]

2.2

Environnements
A L TEX propose une srie doutils sous la forme denvironnements. Il sagit dune structure de bloc dont la syntaxe est la suivante :

\begin{nom env} ... \end{nom env} o nom env est le nom dun environnement. Le premier environnement rencontr jusquici est lenvironnement document. Entre le \begin et le \end on insre une portion de texte qui va subir une mise en page particulire.
Notons tout de suite que toute dclaration est locale un environnement ; et quil est bien sr possible de dnir ses propres environnements ventuellement partir dautres existants.

Le reste de cette section sera consacr la description des environnements norA maliss de L TEX.

2.2 Environnements

21

2.2.1

Centrage et alignement

Pour centrer quelques lignes, on utilise lenvironnement center :


... fin de phrase. \begin{center} quelques lignes \\ parfaitement centres \\ entre les marges \end{center} et le paragraphe continue... ... n de phrase. quelques lignes parfaitement centres entre les marges et le paragraphe continue...

De mme on peut aisment aligner un paragraphe droite grce lenvironnement flushright :


... fin de phrase. \begin{flushright} deux lignes\\ alignes droite \end{flushright} et le paragraphe continue... ... n de phrase.
2.6

2.5

deux lignes alignes droite et le paragraphe continue...

Noter lemploi dans les deux prcdents exemples de la commande \\ pour passer la ligne. En dehors de cas particuliers (tableaux, titre et auteur dun 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 gnral, on emploie lenvironnement flushleft avec des commandes \\. Mais on peut lutiliser pour produire un paragraphe comme celui-ci, non justi A droite, en laissant L TEX le soin dinsrer les sauts de lignes.
La grande majorit des environnements passent la ligne pour insrer leur contenu. Cependant, il est important de comprendre quun environnement interrompt le paragraphe dans lequel il est insr, mais ne le termine pas vous pourrez dailleurs A remarquer que la phrase et le paragraphe continue nest pas indente. En outre, L TEX insre gracieusement autour de chaque environnement un espace vertical.

On peut noter quaux trois environnements prcdents correspondent respectivement les trois dclarations : \centering \raggedleft \raggedright. On peut par exemple crire :
Emacs stands for : {\centering Emacs\\Makes\\ A\\Computer\\Slow\\}
2.7

Emacs stands for : Emacs Makes A Computer Slow

22

Ce quil faut savoir

2.2.2

Listes

A L TEX ore la possibilit dutiliser trois principaux types de listes sous forme denvironnement : itemize, enumerate et description. Il est possible de dnir ses A propres listes, si celles de L TEX ne vous conviennent pas. Mais voici les listes standard : Tout dabord itemize qui est une liste d items non numrots dont le premier niveau est marqu par un tiret () en version franaise et par un point () par dfaut :

... toujours la fin dune phrase. \begin{itemize} \item dans un calcul complexe, un facteur du numrateur passe toujours au dnominateur \item une virgule est toujours mal place \end{itemize} et le truc continue, imperturbablement...

... toujours la n dune phrase. dans un calcul complexe, un facteur du numrateur passe toujours au dnominateur
2.8

une virgule est toujours mal place et le truc continue, imperturbablement...

Vient ensuite lenvironnement enumerate, sur le mme principe que le prcdent mais o les items sont numrots. tant donn que ces environnements peuvent tre inclus les uns dans les autres, nous vous prsenterons enumerate et description dans un mme exemple :
... encore la fin dune 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 dune phrase. TEX The TEXbook


A L TEX deux livres importants : A 1. L TEX : A Document preparation System A 2. The L TEX Companion

2.9

et le paragraphe continue, encore et encore...

Les listes de description, qui nont pas dquivalent dans les traitements de texte habituels, sont malheureusement au mieux mal employes, au pire ignores des dA butants sous L TEX.

2.2.3

Tabulations

Lenvironnement tabbing permet dutiliser les bonnes vieilles tabulations de la machine crire. On pose les taquets de tabulations grce la commande \= et on se dplace de taquet en taquet avec la commande \>. En outre, la commande \\ permet de passer la ligne.

2.2 Environnements
\begin{tabbing} gauche \= au centre \= droite \\ \> modr \\ \> \> conservateur \\ xxxxxxxxxxx \= \kill \> sans opinion \end{tabbing}

23

gauche au centre droite modr conservateur sans opinion

Cet exemple illustre deux autres principes : on peut positionner une tabulation avec un modle et ne pas acher la ligne correspondante avec la commande \kill ; une nouvelle commande \= enlve le taquet qui suit logiquement, sil existe.

2.10

2.2.4

Tableaux

A Lenvironnement pour produire les tableaux en L TEX se nomme tabular. Le systme de bordures nest pas trs sophistiqu, mais, pour des tableaux bordures simples les rsultats sont acceptables2 :

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

on peut donc comprendre grce cet exemple, les chose suivantes : lenvironnement tabular attend un paramtre qui est en quelque sorte une chane de format . chaque colonne doit correspondre un caractre de positionnement : r : alignement droite ; c : centrage ; l : alignement gauche ; le caractre & est le sparateur des colonnes ; la commande \\ permet de passer la ligne ; les bordures verticales sinsrent dans la chane de mise en page grce au caractre | ; les bordures horizontales laide de la commande \hline. On peut donc jouer sur le nombre de \hline et de | pour changer lallure des bordures. Le package array permet quelques fantaisies avec les tableaux.
Lannexe B donne quelques pistes pour trouver des packages permettant de crer des tableaux plus complexes.
2

2.11

Voici un tableau :

deux cinq

trois six

24

Ce quil faut savoir


Si la plupart des environnements commencent une nouvelle ligne, ce nest pas le cas de lenvironnement tabular. Il cre juste une bote dans le texte courant.

On peut en outre prciser le positionnement vertical du tableau grce un argument optionnel :


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

c d

Vous avez donc compris que largument b (resp. t) pose (resp. accroche ) le tableau 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 insrs dans des phrases et constituer des paragraphes eux seuls, par exemple en gurant centrs au moyen dun environnement center.

2.2.5

Simulation de terminal

Lenvironnement verbatim insre son contenu mot pour mot. Il ore donc la possibilit de rentrer nimporte quel caractre mme spcial, et donc, par exemple dcrire une portion de code C++3 :
\begin{verbatim} class pixel{ int x,y; public: pixel(int i=0, int j=0);}; \end{verbatim} class pixel{ int x,y; public: pixel(int i=0, int j=0);};

On peut tout crire dans un environnement verbatim sauf la squence de caractres : \end{verbatim} !

Il existe deux commandes permettant de produire une portion de texte comme le fait lenvironnement verbatim : il sagit de \verb et \verb*. La forme toile remplace le caractre par . Largument de ces commandes nest pas donn entre accolades ({ }) mais par tout autre caractre : 1o autre que les caractres spciaux et 2o ntant pas contenu dans largument.
La dclaration : \verb+#include<stdlib.h>+ permet dinclure les prototypes de la librairie standard du~C. La dclaration : #include<stdlib.h> permet dinclure les prototypes de la librairie standard du C.
2.14

La commande \verb ne peut en aucun cas se trouver dans largument dune commande, quelle quelle soit.

2.2.6

Citations

Les environnements quote et quotation permettent dinsrer une citation dans le texte. Voici dabord quote :
3

Notez que le package listings est bien mieux adapt ce genre de problme.

2.13

2.12

2.3 Notes de marge


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

25
... encore la n dune phrase. Tout est relatif. Einstein. Il nest pas certain que tout soit certain. Pascal. et le paragraphe interrompu, continue...

La commande \hfill insre un espace qui stend horizontalement de manire innie. Lenvironnement quotation dire quelque peu de quote :
... encore la fin dune phrase. \begin{quotation} Lhomme est plein dimperfections mais on ne peut que se montrer indulgent si lon songe lpoque o il fut cr.\par \raggedleft Alphonse \textsc{Allais}. \end{quotation} et ce brave paragraphe qui continue... ... encore la n dune phrase. Lhomme est plein dimperfections mais on ne peut que se montrer indulgent si lon songe lpoque o il fut cr. Alphonse Allais. et ce brave paragraphe qui continue...

En fait ces deux environnements sont prsents par Leslie Lamport, lun (quote) pour une ou plusieurs citations courtes, et lautre (quotation) pour une citation longue.

2.3

Notes de marge
La commande \marginpar cre un mini-paragraphe dans la marge, la syntaxe est la suivante : \marginpar{texte} Pour distinguer la page droite de la page gauche en mode recto-verso, on pourra utiliser : \marginpar[textegauche][textedroite] o textgauche et textdroite seront respectivement les textes qui apparatront en marge selon la parit du numro de la page. Ainsi : \marginpar[Youhou !][Coucou !] donne ce que vous pouvez constatez dans la marge. Coucou

2.4

Titres
A Le tableau 2.3 montre les commandes de section disponibles dans L TEX. La commande \chapter nest pas disponible pour la classe de document article ; et aucune commande de titres ne peut tre utilise dans la classe letter. Pour linstant, il faut savoir les deux choses suivantes :

chaque titre rsultant dune commande de section est automatiquement numrot et mis dans la table des matires le cas chant ;

2.16

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

Ce quil faut savoir

\subsubsection{...}

la commande \tableofcontents produit une table des matires lendroit o est insre cette commande.
Dautre part toutes les commandes de titres ont un style associ que lon peut ventuellement rednir. Enn, ces commandes eectuent automatiquement les espacements verticaux avant et aprs le titre ; ainsi toute ligne vierge insre avant ou aprs la commande est ignore.

... tiens cest la fin dune phrase. \section{La quantification} Le processus de quantification...

... tiens cest la n dune phrase.


2.17

3.2

La quantication

Le processus de quantication...

Il existe une forme toile (par exemple : \section*) de chaque commande de titres permettant dinsrer un titre non numrot. Mais attention, ce titre napparatra pas dans la table des matires. Les commandes de section prennent galement un argument optionnel permettant de prciser une entre de table matires dirente du titre de la section. Par exemple : \section[Paulette]{Ctait bien, ctait chouetteuuuu} insre Paulette dans la table des matires en lieu et place du titre insr dans le document.

2.5

Notes de bas de page


Linsertion dune note de bas de page seectue de manire simple par la commande \footnote{texte}. La numrotation est automatique, et par dfaut, les notes sont A numrotes lintrieur dun chapitre. Voici ce que donne L TEX :

Contre toute attente, cest la commande \verb+footnote+\footnote{Comme son nom lindique...} qui insre une note de bas de page.

2.18

Contre toute attente, cest la commande footnotea qui insre une note de bas de page.
a

Comme son nom lindique...

Il arrive lorsquon travaille en milieu particulirement hostile que la commande \footnote ne produise pas leet dsir. Il est alors ncessaire de procder en deux temps : 1. poser une marque de note, commande \footnotemark ;

2.6 Entte et pied de page

27

2. entrer le texte de la note de base de page commande \footnotetext lorsque les conditions sont plus favorables. Par exemple, il semble dlicat de mettre une note de bas de page dans un tableau, on crira donc :
\begin{tabular}{cc} un & deux\footnotemark \\ trois & quatre \end{tabular}\footnotetext{Une note.} un trois
2.19

deuxa quatre

Une note.

2.6

Entte et pied de page


A Les commandes standard de L TEX permettant de personnaliser les enttes et pied de page sont assez rudimentaires mais mritent dtre mentionnes ici, puisquelles peuvent sure dans certains cas.

Nous ne nous attarderons pas plus sur ces commandes, car il nous semble que le package fancyhdr document dans fancyhdr.dvi est beaucoup plus confortable utiliser et ore des fonctionnalits bien plus intressantes que les options standard A de L TEX. Lutilisation de ce package pour produire les entte et pied de page du manuel que vous avez sous les yeux est explique la section 10.4.

Sans faire appel un package particulier, on peut spcier le style dentte et pied de page laide de la commande \pagestyle : \pagestyle{style} dans le prambule du document ; le paramtre style pouvant prendre les valeurs suivantes : empty ni entte, ni pied de page ; plain cest le style par dfaut, le pied de page contient les numros de pages centrs ; headings suivant le style de document, un certain nombre dinformations est insr dans lentte et le pied de page (par exemple dans le style report en recto-verso, est insr en entte : soit le titre du chapitre en cours, soit le titre de la section en cours) ; myheadings un style qui permet de personnaliser les informations insrer. Il existe dautre part une commande \thispagestyle, qui permet de changer ou de spcier le style de la page courante.

2.7

Flottants
A L TEX ore ses valeureux utilisateurs la possibilit dutiliser des environnements ottants. Ces environnements ont la particularit de rendre ottants leur contenu. A Cest--dire que L TEX choisit partir dun algorithme qui tient compte dun certain nombre de paramtres, la position de lenvironnement dans le document.

28

Ce quil faut savoir

A Contrairement ce que leur nom laisse croire, les environnements de L TEX figure et table ne sont pas spcialement conus pour insrer des gures et des tables ! En fait ils sont conus uniquement pour faire otter leur contenu et laisser la possibilit dinsrer une lgende. Le contenu proprement parler peut tre constitu de ce que bon vous semble, pas ncessairement du graphique.

2.7.1

Figure et table

Lenvironnement figure est en gnral utilis pour les graphiques, et lenvironnement table, pour les tableaux. Chacun de ces environnements possde une lgende. La syntaxe dutilisation est la suivante :
Ce paragraphe contient un environnement flottant de type figure . Le contenu est donc susceptible de se dplacer dans la page. \begin{figure} \begin{center} 0 + 0 \\ = \end{center} \caption{La tte toto} \end{figure} Ce paragraphe contient un environnement ottant de type gure . Le contenu 0+0 = Figure 1: La tte toto est donc susceptible de se dplacer dans la page.

Vous noterez que cest la commande \caption qui produit la lgende. Le texte Figure 1: est insr automatiquement avec le numro correspondant la gure. Le style de la lgende est bien entendu personnalisable.

2.7.2

Placement

A L TEX tente de placer le contenu ottant en fonction des paramtres quon indique entre crochets aprs le \begin du ottant :

h : l o il apparat dans le source ; t : en haut de la page ; b : en bas de la page ; p : seul sur une page Notons quil arrive parfois que lon sarrache les cheveux, pour placer les environnements ottants. Pour ne pas snerver, il faut comprendre et accepter que A L TEX utilise plusieurs paramtres pour placer les figure et table. Notons parmi ces paramtres : le nombre maximum denvironnements ottants en haut et en bas de page ; le pourcentage maximum de la surface de la page quoccupe un ottant en haut et en bas de la page ; les espacements avant et aprs le ottant.

2.20

2.8 Rfrences

29

Si vous avez des problmes4 pour placer vos gures, nous vous conseillons de suivre ces quelques recommandations : si vous tenez crire comme le montre la gure : en attendant la gure la suite, nutilisez pas lenvironnement figure ! utilisez plutt le systme de rfrence et crivez comme le montre la gure 3 ; on a toujours tendance faire des gures normes : rtrcissez-les ! si vous avez des tableaux rallonge, mettez-les en annexe, puisque de toutes faons ils gneront le lecteur ;
A les paramtres de L TEX sont tudis pour quilibrer le texte et les gures dans le document. Donc, si votre document est une bande dessine, attendez vous au pire...

ne vous souciez du placement des gures quau moment dimprimer votre document nal.

2.7.3

Liste des gures

La commande \listoffigures (resp. \listoftables) insre une liste des gures (resp. des tableaux) de votre document. La liste est imprime l o apparat la commande. Ces commandes produisent un chier portant lextension .lof (resp. .lot). En outre, de manire analogue aux commandes de sections qui alimentent la table des matires, la commande \caption prend un argument optionnel permettant de dnir lentre dans la table des gures. Par dfaut cette commande utilise la lgende comme entre : \caption[Hop]{Ici on peut raconter sa vie puisque a mettra pas le foin dans la liste des figures avec un titre rallonge vu quon a mis Hop la place de cette lgende qui nen finit pas...}

2.8

Rfrences
A Le systme de rfrence de L TEX permet de manipuler le numro de toute partie dun document faisant lobjet dune numrotation, de manire symbolique. Donc sans se soucier de savoir sil sagit par exemple, de la gure 4 ou de la gure 5. Cest A un des aspects de L TEX qui vous vitera beaucoup de travail. Et qui sexplique en quelques lignes.

2.8.1

Principe

Pour utiliser une rfrence, on a deux tches eectuer : 1o poser une tiquette symbolique dans le texte, 2o appeler cette tiquette pour faire rfrence, soit au numro de lobjet rfrenc, soit au numro de la page o se trouve lobjet rfrenc. Cest dune simplicit enfantine :
4

Et vous en aurez srement...

30 1. On pose une tiquette avec la commande \label : \label{tiquette}

Ce quil faut savoir

o tiquette est une chane de caractres ne comprenant pas de caractres spciaux. 2. On fait rfrence au numro de lobjet rfrenc avec la commande \ref : \ref{tiquette} On fait ensuite rfrence la page avec \pageref : \pageref{tiquette}

2.8.2

Que rfrencer ?
les titres ; les ottants (figure, table, ...) ; les quations (cf. chapitre 3) ; les items de liste numre (enumerate par exemple) ; etc. Voici un exemple synthtisant les trois commandes de rfrencement :

Les objets que lon peut rfrencer sont les suivants :

\section{Second degr}\label{sec-2degre} Ce sont les quations du type : \begin{equation} ax^2 + bx + c = 0 \label{equ} \end{equation} Lquation \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

(2.12)

Lquation 2.12 de la section 3.5 page 13 patati patala...

Dans cet exemple on fait rfrence une \section et une \equation (cf. chapitre 3). En outre, on fait rfrence la page o apparat la section en question.
Lorsque vous placez un \label dans un environnement ottant, placez le toujours aprs la commande \caption. Sinon, la rfrence pointera sur la section et non sur la gure.

2.9

Fichiers auxiliaires
Pour bien comprendre le mcanisme de rfrencement, il nous reste examiner ce A que L TEX crit sur votre disque lorsquil compile un chier source. Pour linstant, voici les chiers que vous pourrez rencontrer :

2.9 Fichiers auxiliaires dvi log limage de votre document ;

31

A cest le bavardage de L TEX lors de la dernire compilation. En gnral, il correspond peu ou prou ce que vous avez sur votre terminal au moment de la compilation ;

aux toc lof

le chier auxiliaire, il stocke les informations concernant les rfrences, les numros de pages, les titres, ... ; le chier contenant la table des matires ; le chier contenant la liste des gures.

2.9.1

Interaction avec les rfrences

A L TEX gre les rfrences de la manire suivante : lors dune premire compilation, il stocke les rfrences dans le chier nom-doc.aux o nom-doc est le nom de votre document. laide dun exemple o lon aurait plac une tiquette truc pour la section 3 la page 35 dun document, voyons le principe du mcanisme de rsolution des rfrences. A 1. la premire compilation avec L TEX stocke dans le chier auxiliaire .aux le numro de ltiquette (le numro de la section dans notre exemple) et le numro de la page o cette tiquette apparat :

doc.tex
\label{truc}
...
A L TEX

doc.aux
ref{truc) = 3/35

\ref{truc}

Undefined reference truc


A L TEX envoie donc lors de cette compilation un avertissement prcisant que ltiquette truc est indnie ;

2. on eectue donc une deuxime compilation qui va cette fois exploiter le contenu du chier auxiliaire :
doc.tex
\label{truc}
...
A L TEX

doc.aux
ref{truc) = 3/35

\ref{truc}

Les rfrences peuvent tre incorrectement dnies dans les situations suivantes : 1. vous avez insr une nouvelle tiquette, et cest la premire compilation que vous eectuez (les rfrences sont indnies ) ; et vous aurez pour cette nouvelle tiquette un message : Reference vlunch on page 2 undefined on input line 17.

32

Ce quil faut savoir 2. les changements que vous avez apports votre document ont sans doute chang la numrotation des pages ou le placement des objets (gures, quations,...), les rfrences sont alors mal dnies, et vous serez averti par un message en n de compilation : Label(s) may have changed. Rerun to get cross-references right. 3. vous faites rfrence une tiquette qui nexiste pas. Dans ce cas, 18 compilations ne changeront rien votre problme.

2.9.2

Interaction avec la table des matires

On retrouve un peu le mme principe avec la table des matires. Lorsque vous insrez la commande \tableofcontents dans votre document, la table des matires va tre cre en deux tapes, comme suit : 1. un premier parcours pour rcuprer les informations lies aux titres de tout le document et stockage dans le chier nom-du-document.toc :
doc.toc doc.tex
A L TEX

doc.aux

2. un deuxime passage pour inclure nom-du-document.toc donc la table des matires dans le document nal :
doc.tex
A L TEX

doc.toc

doc.aux

Vous serez alors confronts au phnomne suivant : lorsquau cours de la rdaction dun document contenant dj lordre \tableofcontents, vous insrez une commande de section, elle napparatra dans la table des matires quaprs deux compilations.

2.9.3

Petits conseils

Prenez lhabitude de crer un rpertoire pour chaque document que vous rdigez. A L TEX cre en eet plusieurs chiers autour de votre .tex5 . Dautre part, ne vous souciez pas trop, lors de la rdaction de votre document, de savoir si les rfrences ou la table des matires sont jour : elles le seront bien un jour ou lautre ! En fait, il faut sassurer que les rfrences sont correctes avant dimprimer. Enn, de mme quon eectue de temps en temps un make clean lorsquon nest plus sr de ses chiers objets, il est bon quand il vous semble que tout va mal, deacer les chiers auxiliaires et de reprendre la compilation.
5

Et encore il na pas encore t question de bibliographie, ni dindex et de glossaires...

2.10 O il est question de csure

33

2.10

O il est question de csure


A L TEX sappuie sur TEX pour eectuer la csure des mots en fonction dune langue dtermine. Cet algorithme dcrit lannexe H du TEXbook constitue un des aspects A les plus russis de TEX. Une manire de reconnatre un document gnr par L TEX est dexaminer la manire dont sont coups les paragraphes ; beaucoup dautres logiciels se contentent dinsrer des blancs entre les mots. Il existe cependant des A A situations o L TEX ne peut eectuer une csure correcte. Dans ce cas, L TEX vous avertira par lun des deux messages terriants :

Underfull \hbox (badness 1810) detected at line 33

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

un trs bas niveau, TEX produit votre document en assemblant des botes. Chaque caractre est contenu dans une bote qui lui est propre ; les mots sont forms par assemblage de ces botes. Et ainsi de suite, pour les lignes qui forment des paragraphes puis des pages. Pour rsumer et prsenter les choses de manire simple, disons que TEX est en mode horizontal pour assembler les mots et manipule alors des \hbox ; il est en mode vertical et manipule des \vbox lorsquil cre les pages. Aussi, lors de lassemblage de ces botes, si TEX juge que le rsultat ne sera pas esthtique, il vous avertira par les deux types de messages prsents plus haut. Ces messages ont la signication suivante : Underfull \hbox les botes sont assembles de manire un peu lche ; TEX vous donne la laideur de la ligne (badness) sachant quune ligne parfaite a une laideur de 0, et que la pire des lignes, une laideur de 10000 ; Overfull \hbox les botes sont un peu trop serres ; TEX vous indique en pt le dpassement dans la marge.
A Si une page est trop lche, L TEX parlera de \vbox dans ses messages. Le tableau 2.4 illustre le phnomne sur une phrase.

rage ! dsespoir ! vieillesse ennemie ! rage ! dsespoir ! vieillesse ennemie ! rage ! dsespoir ! vieillesse ennemie ! rage ! dsespoir ! vieillesse ennemie ! rage ! dsespoir ! vieillesse ennemie ! rage ! dsespoir ! vieillesse ennemie ! rage ! dsespoir ! vieillesse ennemie ! Table 2.4: Under et overfull hbox

underfull underfull underfull ok overfull overfull overfull

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

34

Ce quil faut savoir

2.10.1

Contrler la csure

A L TEX peut avoir des dicults couper une phrase pour les raisons suivantes :

il ne reconnat pas le mot couper : ce cas est exceptionnel ; lendroit o la csure 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 mthodes pour contrler la csure.
Lorsquaucune de ces mthodes ne vous donne satisfaction ceci peut se produire si votre phrase contient trop dobjets que TEX ne peut couper il ny a pas dautre solution que de tourner sa phrase diremment pour contourner le problme.

Guider la csure

A On peut aider L TEX couper un mot en lui indiquant les endroits o la csure peut tre eectue, en insrant aux endroits ncessaires, la commande \-. Par exemple, A si L TEX a du mal couper le mot nonmaiavapamieu , vous pouvez entrer : non\-mai\-a\-va\-pa\-mieu

Si vous utilisez ce mot frquemment, vous pouvez, pour vous pargner dindiquer les csures comme ci-dessus, entrer dans le prambule la commande \hyphenation : \hyphenation{non-mai-a-va-pa-mieu}
A qui indique L TEX comment couper ce mot trange.

Forcer la csure Vous pouvez forcer la csure, en insrant la commande \linebreak[nombre], mais cela peut avoir des rsultats catastrophiques. Si vous voyez ce que je veux dire. Le paramtre nombre permet de moduler la commande \linebreak. Vous avez la possibilit de formuler un souhait timide : \linebreak[0] ou un ordre ne pas discuter : \linebreak[4]. La commande \pagebreak[nombre] est la commande correspondant aux coupures de pages. Dautre part, deux commandes sont disponibles pour eectuer un saut de page : \clearpage nit la page actuelle ; \cleardoublepage nit la page actuelle, et assure de commencer sur une page impaire, en mode recto verso.
A Ces deux commandes forcent L TEX insrer toutes les gures ottantes en cours de placement.

Une autre intervention manuelle pratique dans certaines situations, consiste agrandir la hauteur de la page actuelle en faisant appel la commande : \enlargethispage suivie dune dimension puis dinsrer un saut de ligne : \enlargethispage{10cm} [...le texte un peu trop long...] \clearpage au niveau de la page trop courte n explicite de la page allonge de 10cm

2.10 O il est question de csure Empcher la csure


A Il existe trois moyens de forcer L TEX ne pas couper le texte :

35

1. insrer lespace inscable ~ ; 2. mettre un mot dans une bote6 avec la commande \mbox{mot} ; 3. utiliser lordre \nolinebreak : \nolinebreak[nombre] pour empcher les sauts de lignes, et la commande \nopagebreak : \nopagebreak[nombre] o nombre a la mme signication que pour les commandes \linebreak et \pagebreak.

Conclusion
A Ce chapitre a prsent les fonctionnalits standard de L TEX. Si vous avez lu attentivement jusquici, vous devriez pouvoir produire nimporte quel document simple (sans formule ni graphique, pour linstant). Si vous ntes pas encore en mesure de personnaliser vos documents, ils seront tout de mme dune trs bonne qualit typographique en vous vitant de vous poser des questions mtaphysiques sur la bonne largeur dune marge ou le bon cart entre un titre et le texte,... En efA fet, les comportements par dfaut de L TEX rpondent, pour la plupart, des rgles en usage dans le monde de limprimerie.

Car TEX ne coupe jamais une bote.

3
Sommaire 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Les deux faons dcrire des maths Commandes usuelles Fonctions Des symboles les uns sur les autres Deux principes importants Array : simple et efcace quations et environnements Changer le style en mode mathmatique

Mathmatiques

3
Voici les noms des douze aptres : en tte Simon que lon appelle Pierre [...] Lvangile selon Saint Matthieu Mt 10 2.

A n des aspects pratique et rigolo1 de L TEX est bien sr la gnration de formules mathmatiques ; elles seront naturellement belles, sans que vous nayez faire quoique ce soit2 . De plus, si vous avez un mauvais souvenir dun certain diteur dquations, rjouissez vous : vous navez pas besoin de souris pour crire des quaA tions ! La gnration dquations avec L TEX est un domaine particulirement vaste. Nous prsenterons ici les bases requises pour produire les formules usuelles . Ce chapitre ne constitue donc quune petite introduction la manipulation des formules A avec L TEX.

A Les commandes standard de L TEX permettent de produire la plupart des quations mathmatiques usuelles. Il est cependant conseill dutiliser les extensions de lAmerican Mathematical Society nommes amsmath et amssymb simpliant la mise en forme dans beaucoup de situations.

3.1

Les deux faons dcrire des maths


A L TEX distingue deux manires dcrire des mathmatiques. Lune consiste insrer une formule dans le texte, comme ceci : ax + b = c, lautre crire une ou plusieurs formules dans un environnement, par exemple :

dU = W + Q
1 2

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

37

38

Mathmatiques

sachant que chacun de ces deux modes respectent un certain nombre de principes quant la taille et la position des dirents symboles. Voici un exemple avec les deux modes :
Dterminer la fonction drive de $f(x)$ : \begin{displaymath} f(x)=\sqrt{\frac{x-1}{x+1}} \end{displaymath} si elle existe. Dterminer la fonction drive de f (x) : f (x) = si elle existe. x1 x+1

Cet exemple nous montre donc que lon entre en mode mathmatique interne grce au symbole $, et que le mme symbole $ permet den sortir. Dautre part, on utilise ici lenvironnement displaymath qui est le plus simple pour produire des quations. Ce dernier peut tre saisi grce aux commandes \[ et \] (cf. 3.7.1 page 46). A Nous vous prsenterons au 3.7 les dirents environnements de L TEX.

3.2

Commandes usuelles
Indice et exposant
Comme mentionn au 1.4.1 page 10, _ et ^ sont les commandes permettant de produire respectivement indice et exposant. Il est ncessaire de grouper les arguments entre accolades pour que ces commandes agissent sur plusieurs symboles. x_2 x2 x^2 x2 x_{2y} x^{2y} x2 y x2 y x_{t_0} x_{t^0} xt0 xt0

3.2.1

y x^{2y}_{t_0} x2 t0

3.1

y x_{t^1}^{2y} x2 t1

3.2.2

Fraction et racine

Voici comment produire racines et fractions : la commande \frac{num}{denom} produit une fraction forme par le numrateur num et le dnominateur denom ; la commande \sqrt[n]{expr} ache la racine ne de son argument arg. Notons que ces deux commandes ne produisent pas le mme achage selon le mode mathmatique : interne ou quation. Ainsi voici une fraction : sin 1 et une racine : x+1 2 3x 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 imbriques et leet que cela produit :

3.2 Commandes usuelles


\begin{displaymath} \sqrt{\frac{1+\sqrt[3]{3x+1}} {3x+\frac{1-x}{1+x}}} \end{displaymath} 1 + 3 3x + 1 x 3x + 1 1+x

39

3.2.3

Symboles

Symboles usuels Le tableau 3.1 donne les macros produisant une partie des symboles dont vous pourriez avoir besoin. Table 3.1: Symboles mathmatiques 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

3.2

Nous avons recens prs de 450 symboles disponibles avec les packages latexsym et amssymb. Notre but nest donc pas de les prsenter ici ! Le tableau 3.1 est une slection parmi les symboles standard. Nous avons jug quils faisaient partie des symboles les plus utiles ce qui, malgr la prsence tout fait fortuite de laleph dans ce tableau, dmontre que le niveau en mathmatiques de lauteur de ce document avoisine le ras des pquerettes.

Points de suspension On utilise couramment pour conomiser de lencre des points de suspension dans des formules. Il en existe de trois types. La commande \dots produit des points poss sur la ligne :
$C=\{\vec{c}_0,\vec{c}_1,\dots,\vec{c}_N\}$ est lensemble des $N$ couleurs. C = {c0 , c1 , . . . , cN } est lensemble des N couleurs.
3.3 3.4

La commande \cdots produit des points centrs 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.
1 = N (c0 + c1 + + cN ) est la moyenne des N couleurs.

40

Mathmatiques

Enn les commandes \vdots et \ddots sont utiliser essentiellement dans les matrices (cf. 3.6 et lexemple 3.15). Ces deux commandes produisent respectivement : . . . . et . . . Flches Voici un moyen simple pour mmoriser les commandes permettant de gnrer des ches : toutes les commandes nissent par arrow ; le prxe obligatoire left ou right indique la direction ; le prxe facultatif long donne une version longue ; la premire lettre de la commande mise en majuscule rend la che double ; on peut mettre des ches aux deux extrmits en collant les deux mots left et right. ainsi : \rightarrow \Longleftarrow \Leftarrow \Longleftrightarrow Lettres grecques Les lettres grecques sutilisent de la manire la plus simple qui soit : en les appelant par leur nom. Ainsi : \alpha donne et \pi, . Mettre une majuscule la premire lettre de la commande, donne la majuscule correspondante : \Gamma donne . Attention, toutes les majuscules ne sont pas disponibles dans lalphabet grec, on mettra par exemple en majuscule, avec la lettre A (la commande \Alpha nexiste pas). Lensemble des rels Une question cruciale que se posent les rdacteurs potentiels de documents scientiques est : Comment peut/doit-on crire le R de lensemble des rels ? . Les avis sont partags ce sujet. Historiquement il semble quinitialement, dans les ouvrages de mathmatiques, le symbole des rels tait typographi en gras ( Soit x R ) et que les professeurs pour reprendre ces notations sur un tableau avec une craie avaient recours lartice de repasser plusieurs fois sur la lettre R ; cette pratique pnible aurait volue vers lcriture bien connue : Soit x . Il y a donc les adeptes du R, du R, etc. Pour choisir par soi-mme, voir les packages : donne donne donne donne =

bbm qui propose la commande \mathbbm{R} produisant \mathbbmss{R} produisant R, etc. bbold qui propose la commande \mathbbm{R} produisant

R,

la commande

R, etc.

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

3.3 Fonctions

41

3.3

Fonctions
Fonctions standards
Lorsquon veut produire des fonctions mathmatiques classiques (logarithmes, triA gonomtrie,...), il faut utiliser les fonctions de L TEX prvues cet eet. Voici un exemple pour vous en convaincre.

3.3.1

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


A Et sans les fonctions L TEX :

sin2 x + cos2 x = 1

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

3.5 3.6

sin2 x + cos2 x = 1

A La dirence rside dans le fait que L TEX traite la chane cos comme une suite de variable (donc produites en italiques) alors que la fonction \cos produit cos en roman. Une autre dirence importante est le placement dventuels indices (cf. lexemple de la fonction \max ci-dessous). Parmi les fonctions mathmatiques stanA dard de L TEX, on trouvera :

toutes les fonctions trigonomtriques : \sin, \cos et \tan. En rajoutant arc devant, vous aurez les rciproques, et h derrire vous obtiendrez les versions hyperboliques. les logarithmes nprien et dcimal dnis respectivement par les fonctions \ln et \log. les fonctions \sup, \inf, \max, \min, et \arg qui vous permettront de gnrer des formules de ce genre :
\begin{displaymath} T=\arg \max_{t<0} f(t) \end{displaymath}

3.7

T = arg max f (t)


t<0

Notez lutilisation de loprateur indice _ et le placement rsultant avec la commande \max.

3.3.2

Intgrales, sommes et autres limites

A L TEX utilise une syntaxe simple pour produire intgrales, sommes, etc. La syntaxe est la suivante : \op_{inf}^{sup} o op est lun des oprateurs sum, prod, int ou lim et inf et sup sont les bornes infrieure et suprieure de la somme ou de lintgrale. Ainsi on peut donc crire :

Somme des termes dune suite gomtrique : \begin{displaymath} \sum_{i=0}^{n}q^i=\frac{1-q^{n+1}}{1-q} \end{displaymath}

Somme des termes dune suite gomtrique :


n

qi =
i=0

1 q n+1 1q

3.8

42

Mathmatiques

Le produit sutilise de manire analogue avec la commande \prod. Un exemple avec une intgrale, en veux-tu en voil :
On dfinit le logarithme nprien de $x>0$ comme suit : \begin{displaymath} \ln(x)=\int_{1}^{x}\frac{1}{t}\,\mathrm{dt} \end{displaymath} On dnit le logarithme nprien de x > 0 comme suit :
3.9

ln(x) =
1

1 dt t

La commande \, permet dinsrer un lger blanc avant le dt (cf. 3.5.1). Si vous tes plutt curviligne, vous pouvez utiliser \oint qui donne : . Bon, je vous donne juste un exemple avec une limite mais cest bien parce que cest vous :
$f(x)$ admet une limite $\ell$ en $x_0$ : \begin{displaymath} \lim_{x\rightarrow x_0}f(x)=\ell \end{displaymath} f (x) admet une limite
3.10

en x0 :

xx0

lim f (x) =

Jespre que vous avez apprci le beau ; pour se xer les ides sur les deux modes mathmatiques, voici les mmes formules mais incrustes dans le texte. Donc x 1q n+1 i dabord la sommation : n , ensuite lintgrale : 1 1 dt = ln(x), et i=0 q = 1q t enn la limite : limxx0 f (x) = .

3.4

Des symboles les uns sur les autres


Loprateur not
Loprateur \not permet de produire la ngation dune relation :

3.4.1

Soit $x \not\in I$ un rel...

Soit x I un rel...

le rsultat est donc un slash sur le symbole suivant. Attention, cet oprateur nest pas trs performant : $\not\longrightarrow$ donne : , mais est satisfaisant pour les symboles dune largeur raisonnable.

3.4.2

Accents

Il est souvent utile3 daccentuer les symboles en guise de notation particulire. Voici les accents disponibles : \hat{x} x \check{x} x \breve{x} x \acute{x} x \grave{x} x ` \tilde{x} x \bar{x} x \dot{x} x \ddot{x} x
En ralit les mathmaticiens dignes de ce nom raolent de ce genre de petits chapeaux au dessus des symboles ; certains en superposent mme deux, voire trois...
3

3.11

3.5 Deux principes importants

43

3.4.3

Vecteurs
\vec pour les petits symboles car \vec est une commande daccentuation ; \overrightarrow dans les autres cas.

Il existe deux4 faons dobtenir un vecteur :

Soit $\overrightarrow{A\!B}$ dfini dans la base $(\vec{\imath},\vec{\jmath})$.

Soit AB dni dans la base (, ).

Notez que $\vec{A\!B}$ aurait donn : AB (voir aussi le paragraphe 3.5.1 pour la signication 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 lun sur lautre : \stackrel{symb1 }{symb2 } met le symb1 sur symb2 . Par exemple : x\stackrel{f}{\longmapsto}y donne : x y .
f

3.12

3.5

Deux principes importants


A Pour bien comprendre la manire dont L TEX gnre les formules, il faut saisir les deux principes suivants : A Espaces : L TEX ignore les espaces entre les symboles mathmatiques ; ainsi : $x+1$ A produira la mme formule que $x + 1$. Cest L TEX qui insre les espaces lendroit quil juge le plus judicieux ;

Texte5 : tout groupe de symboles est considr comme un groupe de variables ou fonctions ; ainsi $x=t avec t>0$ produira x = tavect > 0 et non ce que vous espriez : x = t avec t > 0. Une fois ces deux principes acquis, voyons comment on peut faire avec.

3.5.1

Espaces en mode mathmatique

A Tout dabord, sachez que L TEX fait un choix despacement qui est en gnral correct. Cependant le jour o vous aurez jouer lXXXXX enculeur /////// de mouche, les commandes du tableau 3.2 vous permettront dinsrer un ou des espaces dans des formules. Dans ce tableau, on montre leet des commandes despacement entre deux symboles .
4 Le package esvect dEddie Saudrais permet de produire des vecteurs avec des ches mieux dessines que celles proposes ici. 5 Linsertion de texte dans une formule ne devient un problme que dans un environnement de la famille displaymath, puisque vous pouvez toujours crire $x=t$ avec $t>0$ , bien sr !

44 Table 3.2: Espacement en mode mathmatique \! \; (rien) \ \, \quad \: \qquad

Mathmatiques

Pour ce qui concerne les mouches, sachez que lauteur de ce manuel a sournoisement insr un certain nombre despacements au numrateur du calcul de la somme des termes de la suite gomtrique ( 3.3.2 page 41), pour aligner les deux q de la fraction. Voici ce que donnait la formule par dfaut :
n

qi =
i=0

1 q n+1 1q

et voyons si les histoires de q vous donnent le sens de lobservation.

3.5.2

Texte en mode mathmatique

Le moyen le plus simple dinsrer du texte dans une formule est de de le mettre en bote et dinsrer 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}

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


3.13

Vous trouverez des dtails 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 dutiliser la commande \text en lieu et place de \mbox.

3.6

Array : simple et efcace


Lenvironnement array est un environnement qui vous permettra de produire la grande majorit de vos formules. Comme son nom lindique il range des objets en ligne et colonne. En fait cest le pendant de lenvironnement tabular du mode texte. Et comme tabular, array ne passe pas la ligne.

3.6.1

Comment a marche

La syntaxe rappelle celle de tabular : \begin{array}[vpos]{format} ... \end{array} o format prcise pour chaque colonne lalignement : c pour centr, l pour align gauche et r pour align droite ; largument optionnel vpos spcie quant lui le positionnement vertical du tableau. Comme dans les tableaux, on notera lutilisation des commandes :

3.6 Array : simple et efcace & comme sparateur de colonne ; \\ pour passer la ligne.
Soit $A=\begin{array}{rc} -1 & 1 \\ 3 & 4 \end{array}$ la matrice ...

45

Voici un exemple utilisant les points de suspensions :


\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} a00 . . . a0n . . .. . A= . . . . an0 . . . ann

3.15

3.14

Soit A =

1 1 la matrice ... 3 4

3.6.2

Array et les dlimiteurs

On utilise couramment lenvironnement array pour produire des matrices. Il faut alors avoir recours des dlimiteurs. Ces dlimiteurs sont de la famille des parenthses et permettent denglober un objet mathmatique entre crochets, accolades, etc. La syntaxe est la suivante : \leftdelim1 mobjet \rightdelim2 o delim1 et delim2 sont deux dlimiteurs et mobjet un objet mathmatique. Parmi les dlimiteurs, voici les plus usits : ( et ) \{ et \} \lceil et \rceil | () {} || [ et ] \lfloor et \rfloor \langle et \rangle \| []

Lintrt des dlimiteurs est quils sadaptent automatiquement la taille des objets quils entourent :
soit $I= \left[\begin{array}{cc} 1&0 \\ 0&1 \end{array}\right]$ la matrice identit. 1 0 0 1

On peut galement reprendre lexemple 3.13 page ci-contre avec des dlimiteurs pour ajuster la taille des parenthses :
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} Soient les suites (un ) et (vn ) : un = ln n et vn = 1+ 1 n
3.17

3.16

soit I =

la matrice identit.

46

Mathmatiques
Il doit toujours y avoir une commande \right pour une commande \left. Cependant, il nest pas ncessaire davoir les mmes symboles droite et gauche.

Voici un exemple o on utilise la commande \right. pour spcier que lon nutilise pas de symbole droite :
soit $ S_i=\left\{\begin{array}{rl} -1 & \mbox{si $i$ est pair} \\ 1 & \mbox{sinon.}\end{array}\right.$ soit Si = 1 si i est pair 1 sinon.

3.6.3

Pour vous simplier la vie...

Le package amsmath permet de saisir plus simplement les matrices avec notamment deux environnements : pmatrix (p pour parenthse) et bmatrix (b pour bracket ).
\begin{displaymath} \bar{\bar{\sigma}}=\begin{bmatrix} \sigma_{11} & \sigma_{12} \\ \sigma_{21} & \sigma_{22} \\ \end{bmatrix} \end{displaymath}

3.18

3.7

quations et environnements
A Nous prsenterons dans ce paragraphe trois environnements standard de L TEX permettant de produire des formules.

3.7.1

Lenvironnement displaymath

Vous lavez compris, si vous avez lu jusquici, displaymath ache une formule centre, interrompant le paragraphe. Un raccourci agrable de : \begin{displaymath}...\end{displaymath} est : \[...\]. Ainsi :
Distance colorimtrique :\[ \Delta E=\sqrt{ \Delta L^{*2}+ \Delta a^{*2}+\Delta b^{*2}} \] Distance colorimtrique :
3.20

3.19

= 11 12 21 22

E =

L2 + a2 + b2

3.7.2

Lenvironnement equation

Lenvironnement equation est lquivalent du prcdent, sauf quil numrote la formule.


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

ln(ab) = ln(a) + ln(b)

(3.1)

Loption de classe de document leqno met le numro des quations gauche. Et loption fleqn aligne les quations gauche, au lieu de les centrer.

3.8 Changer le style en mode mathmatique

47

3.7.3

Formules multi-lignes

Dans une prcdente dition, nous nissions la prsentation des environnements standard par lenvironnement eqnarray qui permet de produire des formules de plusieurs lignes. Sachez que cest mal. Il existe dailleurs des crits ce sujet (lire par exemple [12] ou [14]), vous expliquant comment produire des documents propres . Prenez bien conscience quutiliser eqnarray (et bien dautres choses) est un pch, et que si vous cdez malgr tout la tentation, linquisition vous retrouvera un jour ou lautre par lintermdiaire dun moteur de recherche. Aucune confession ou indulgence ne pourra vous sortir de ce mauvais pas, vous tes prvenus.

Nous vous prsentons donc ici lenvironnement align du package amsmath : \\ passe la ligne ; chaque ligne est numrote sauf si la commande \nonumber est prsente dans la ligne ; on procde lalignement avec deux6 oprateurs &.
\begin{align} (a+b)^2 & = & = \end{align}

3
(a + b)2 = (a + b)(a + b) = a2 + b2 + 2ab (3.2)

(a+b)(a+b)\nonumber\\ a^2+b^2+2ab

Il existe une forme toile de lenvironnement : align* o aucune des lignes nest numrote. Si vous voulez faire rfrence certaines lignes dun align, il vous faudra poser autant de \label ncessaires sur chaque ligne correspondante.

Pour faire numroter une quation stalant sur plusieurs lignes on peut utiliser lenvironnement split (lui aussi fourni avec amsmath) :
\begin{equation} \begin{split} (a+b)^2 & = (a+b)(a+b)\\ & = a^2+b^2+2ab \end{split} \end{equation}

3.22

(a + b)2 = (a + b)(a + b)
3.23

= a2 + b2 + 2ab

(3.3)

3.8

Changer le style en mode mathmatique


Fontes
A L TEX fournit plusieurs commandes permettant de changer de fontes dans les modes mathmatiques. Par dfaut tout symbole ou suite de caractres (autre quune 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 raliser un tel exploit :
6

3.8.1

Puisquil y a trois colonnes.

48 Soit Soit Soit Soit Soit Soit $\mathit{A\in\Phi}$ $\mathrm{A\in\Phi}$ $\mathbf{A\in\Phi}$ $\mathsf{A\in\Phi}$ $\mathtt{A\in\Phi}$ $\mathcal{A}\in\Phi$ Soit A Soit A Soit A Soit A Soit A Soit A

Mathmatiques

La commande \mathcal doit prendre exclusivement des lettres majuscules latines comme argument. Dans le cas contraire, les rsultats seront farfelus. Par exemple, la squence : \mathcal{abcd\Gamma} donne .

3.8.2

Taille des symboles

A L TEX distingue quatre styles dcriture des formules. Ces modes sont utiliss suiA vant la situation dans laquelle se trouve L TEX lorsquil produit une partie dune formule :

texte pour une formule insre dans le texte courant ; equation pour une formule sous forme dquation ; indice pour lcriture des indices ; sous-indice pour les indices dindices chacun de ces modes peut tre enclench explicitement par lutilisateur grce aux dclarations suivantes : \textstyle pour le mode texte ; \displaystyle pour le mode quation ; \scriptstyle pour le mode indice ; \scriptscriptstyle pour le mode indice dindice 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 \]
3.24

deux produits : et inversement :


n

n 1 fi

et
1

fi

fi et
1

n 1 fi

3.8.3

Crer de nouveaux oprateurs

Imaginez que vous ayez besoin de crer un oprateur spcial nomm burps . Il sura de procder comme suit :

3.8 Changer le style en mode mathmatique


\newcommand{\burps}{% \mathop{\textrm{burps}}} $x=\burps_i f(i)$

49

Un autre exemple, pour franciser la fonction arcsinus (produisant par dfault arcsin), on pourra crire :
$\theta = \arcsin x$ \renewcommand{\arcsin}{% \mathop{\textrm{Arcsin}}\nolimits} $\theta = \arcsin x$

3.25 3.26

x = burpsi f (i)

= arcsin x = Arcsin x

La commande \nolimits indique que loprateur concern ne fera pas usage darguments en indice ou exposant comme le font les oprateurs \lim, \int, etc. En outre les deux exemples prcdents utilisent les commandes \newcommand et \renewcommand dont il est question au paragraphe 4.5 page 67. Enn une autre voie possible si vous avez pris soin de charger le package amsmath est de dclarer dans le prambule : \DeclareMathOperator*{\vlunch}{vlunch} \DeclareMathOperator{\zirgl}{Zirgl}
\[x=\vlunch_i f(\theta)\] o $\theta = \zirgl y$ x = vlunch f ()
3.27

o = Zirgl y

Conclusion
Ce chapitre prsente les fonctions de base pour produire des formules. Ces commandes susent pour la plupart des documents scientiques. Si vous tes amens rdiger des documents trus de formules complexes, il est possible que A les seules macros de L TEX ne susent plus. Cest pourquoi la clbre American Mathematical Society a conu pour vous un package nomm AMS TEX (mise en route : \usepackage{amsmath}) capable de gnrer des formules particulirement tordues.

4
Sommaire 4.1 4.2 4.3 4.4 4.5 4.6 Compteurs Longueurs Espaces Botes Dnitions Mais encore ?

Un pas vers la sorcellerie

Et lorsque lAgneau ouvrit le septime sceau il se t un silence dans le ciel, environ une demi-heure... LApocalypse Ap 8 1.

de quelques concepts importants. Il nous semble en eet fondamental dassimiler ces notions pour pouvoir jouer les Hercule Poirot dans les nombreux chiers qui forment le systme. Nous prsenterons dans ce chapitre les compteurs, les longueurs, A les espaces et les botes. Ces quatre notions vous seront utiles pour utiliser L TEX autrement quen acceptant docilement ce quil vous propose.
Ce chapitre traite de concepts assez subtils saisir1 ; nous vous conseillons donc vivement dexprimenter car les outils prsents ici sont ceux qui orent le plus de satisfaction mais qui entranent aussi les plus grandes pertes de cheveux (essentiellement par arrachage).

A quest LTEX, il est ncessaire de faire une pause et de prendre connaissance


A

vant de continuer lexploration de ce systme monstrueux et magnique

4.1

Compteurs
Toute partie dun document faisant lobjet dune numrotation est gre par un compteur. Ces compteurs peuvent tre incrments ou dcrments, remis zro, etc. On peut aussi en crer pour un usage personnel.

4.1.1

Compteurs disponibles

Les compteurs sont principalement lis aux titres, aux numros de pages, aux environnements ottants (environnements figure et table), aux quations (environnement equation), aux notes de bas de page et aux items dnumration (environnement enumerate).
1

Lauteur nest lui-mme pas sr davoir tout compris...

51

52
A Table 4.1: Les compteurs de L TEX

Un pas vers la sorcellerie

part chapter section subsection subsubsection

paragraph subparagraph page equation

figure table footnote mpfootnote

enumi enumii enumiii enumiv

A Le tableau 4.1 vous donne le nom des principaux compteurs de L TEX. Vous remarquerez quils portent gnralement le nom des objets auxquels ils sont associs. Les compteurs enumi, ..., enumiv sont associs aux items de niveaux 1 4 de lenvironnement enumerate. Le compteur mpfootnote est le compteur de note de bas de page de lenvironnement 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 dcrites plus bas ont une porte globale. Il est galement utile de noter que ces variables sont des entiers. Cration On peut crer un nouveau compteur grce la commande : \newcounter{cpteur}[cpt_maitre] qui cre un nouveau compteur cpteur. Si largument optionnel cpt_maitre est prsent, le compteur cpteur est remis zro chaque fois que le compteur matre cpt_maitre est incrment. Affectation On aecte une valeur un compteur de la manire suivante : \setcounter{compteur}{valeur} o compteur est le compteur que lon veut modier, et valeur la valeur que lon veut lui aecter. Incrmentation On peut incrmenter ou dcrmenter un compteur grce la commande : \addtocounter{compteur}{valeur} o valeur est un nombre positif (resp. ngatif) pour raliser une incrmentation (resp. dcrmentation). Illustrons lutilisation de cette commande en entrant la ligne suivante dans notre document : \addtocounter{footnote}{357}

4.1 Compteurs

53

pour changer359 la numrotation des notes de bas de page. Pour que tout rentre dans lordre, avec les notes de bas de page suivantes, nous avons prfr entrer dans notre source, la commande : \addtocounter{footnote}{-357} et normalement3 , nous devrions avoir une numrotation correcte.

4.1.3

Afchage

Pour acher un compteur on utilise la commande : \thenom-du-compteur En fait, toute commande ou environnement qui donne lieu lachage dun compteur fait appel ce type de commande. Ainsi, on a par exemple : \thepage produit : 53 et est appele notamment chaque saut de page, \thefootnote produit : 3 et est appele par \footnote, \thesubsection produit : 4.1.3 et est appele par \subsection, ... Les commandes de la famille \the sont gnralement dnies partir des commandes de formatage suivantes : \arabic{compteur}, \roman{compteur} et \Roman{compteur}, \alph{compteur} et \Alph{compteur} en voici quelques exemples : \arabic{page} produit : 53 ; \alph{footnote} produit : c et \Alph{section} produit : A ; \Roman{subsection} produit : III et \roman{page} produit : liii ; ... Il est courant de rednir les commandes de la famille \the pour personnaliser un document. Par exemple, dans la classe de document utilise pour ce manuel, la commande \thefigure est dnie comme suit : \arabic{chapter}.\arabic{figure} ce qui produit dans les lgendes des gures une numrotation forme par : 1) le numro du chapitre en chire arabe, 2) un point, et 3) le numro de la gure en chire arabe. Il est possible de rednir cet achage en dnissant la commande \thefigure par exemple comme suit : (\Roman{chapter}):\arabic{section}.\arabic{figure}
359 3

Mme si ce changement est un peu ridicule... On croise les doigts !

54

Un pas vers la sorcellerie

Ce qui permet dobtenir un numro de gure relativement immonde dans les lgendes quelque peu dirent du style prdni. Ici, on a donc redni la commande \thefigure pour produire une numrotation forme par le numro du chapitre entre parenthses et en chires romains, suivi du numro de Figure (IV):1.1: La lsection et du numro de la gure en chire arabe, s- gende pars par un point. Le Fig. ainsi que le tiret qui suit le numro de la gure sont quant eux dnis au niveau de la commande \caption...

4.2

Longueurs
Si les compteurs sont ddis la numrotation des objets dun document, les longueurs dnissent lencombrement dune entit. Il sagit en quelque sorte, dun type A de donne de L TEX destin exprimer les dimensions dun objet.

4.2.1

Units

Toutes les dimensions doivent avoir une unit ; une dimension de type rigide 4 a la forme suivante : nombreunit o nombre est un nombre positif ou ngatif avec ventuellement une partie dcimale, A et unit une unit de mesure reconnue par L TEX. Voici une liste non exhaustive des units lgales : cm pour centimtre ; mm pour millimtre ; in pour les allerginch au systme mtrique (environ 2.54cm) ; pt pour point : couramment utilis en typographie : em : la largeur de la lettre M de la fonte courante ; ex : la hauteur de la lettre x de la fonte courante Notez que les units em (resp. ex) sont gnralement utilises pour des dimensions horizontales (resp. verticales) et permettent de manipuler des dimensions dpendantes de la taille de la fonte courante. Voici quelques exemples de dimensions : 1cm 1in 3mm 2em 10pt
4

1 72.27

inch ;

: : : : :

On verra plus loin quil existe des dimensions lastiques.

4.2 Longueurs

55

4.2.2

A Quelques longueurs de L TEX

A Il existe dans L TEX et dans chaque extension des longueurs prdnies. Ces longueurs dterminent en gnral, les dimensions de certaines parties du document. Ainsi :

\parindent est la dimension de lindentation en dbut de paragraphe. Cette dimension est prdnie 15pt ; \textwidth et \textheight dnissent la largeur (resp. la hauteur) du texte ; \baselineskip reprsente la distance entre la base de la ligne et la base de la ligne suivante (10pt dans ce document) ; \parskip la distance sparant deux paragraphes ; cette distance est initialise 0pt plus 1pt5 ; ... Il est important de comprendre quil est possible dexprimer une dimension en fonction dune de ces dimensions internes . Ainsi : 0.5\textwidth reprsente la moiti de largeur de la page, et : 3\parindent quivaut trois fois lindentation des paragraphes. Notez aussi que lon 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. Cration La commande suivante cre une nouvelle longueur : \newlength{dim} o dim est le nom de la nouvelle dimension initialise 0pt (cf. exemple page 57).
Attention, quel que soit lendroit o intervient la commande \newlength, la longueur dnie est toujours globale. De plus, dclarer deux fois la mme longueur provoque une erreur. Par contre, la modication dune longueur est locale au groupe ({...}) o elle survient.

Affectation On peut aecter une valeur une longueur avec la commande : \setlength{dim}{val} qui aecte la valeur val la longueur dim.
5

Cf. les dimensions lastiques pour avoir la signication du plus.

56 Incrmentation On incrmente une longueur comme suit : \addtolength{dim}{val}

Un pas vers la sorcellerie

qui a pour eet daugmenter la longueur dim de la valeur val. Alors que vous lisez fbrilement ce paragraphe, nous nous sommes permis daugmenter la longueur \parindent de 30 points avec : \addtolength{\parindent}{30pt} Alors que vous lisez fbrilement ce paragraphe... pour illustrer lutilisation de lincrmentation des longueurs. Aprs ce paragraphe, on a crit : \addtolength{\parindent}{-30pt} pour que tout rentre dans lordre. Obtenir les dimensions dun objet

Comme il en a t vaguement question prcdemment, au niveau de TEX, les dirents objets qui composent le document sont assembls dans des botes. Ces botes sont positionnes les unes par rapport aux autres en alignant leur point de rfrence. Ces points aligns forment une ligne imaginaire confondue avec la base de la ligne. Toute bote est caractrise par trois dimensions : sa largeur ; sa hauteur : du point de rfrence au haut de la bote ; sa profondeur : du point de rfrence jusquau bas de la bote. Voici par exemple comment sont assembles les botes du mot Ingnierie :

Ingnierie

les symboles reprsentent les points de rfrence. On voit ici que toutes les botes ont une profondeur nulle sauf celle de la lettre g. Mais fermons la parenthse concernant les botes ! Il est donc possible dextraire les caractristiques dun objet (une lettre, un mot, une bote, etc.) laide des commandes suivantes : \settowidth{dim}{obj} \settoheight{dim}{obj} \settodepth{dim}{obj} trois commandes qui aectent la dimension dim respectivement la largeur, la hauteur et la profondeur de lobjet obj. Par exemple :

4.2 Longueurs
\newlength{\malongueur} \settowidth{\malongueur}{Machin chose} \begin{itemize} \item Machin chose bidule \item \hspace{\malongueur} truc \end{itemize}

57

Machin chose bidule truc


4.1

La longueur \malongueur contient alors la largeur de Machin chose et est utilis pour insrer un blanc (voir le paragraphe sur les espaces).

4.2.4

Longueurs lastiques

Les dimensions prsentes jusquici sont des dimensions rigides 6 , il existe cependant des longueurs lastiques ou ressort. Au niveau de TEX, un grand nombre de dimensions sont dnies comme suit : val plus p_val minus m_val cette syntaxe permet de dnir une longueur ayant la dimension val, mais pouvant selon les circonstances sagrandir ou se rtracter. Et ainsi, si on appelle dim la dimension cre, on a : val m_val dim val + p_val

Par exemple, la longueur \parskip qui spare deux paragraphes conscutifs, est xe : 0pt plus 1pt
A ce qui signie quau cas o la page est un peu lche, L TEX insrera entre les paragraphes un blanc vertical de 1 point. Ce type de dimension prend tout son intrt pour mettre en place un rglage trs n des espaces verticales ou horizontales. Enn, A les utilisateurs de L TEX auront la chance inoue de pouvoir manipuler une autre famille de longueurs lastiques tout aussi intressante. Cette famille possde les deux particularits suivantes :

1. une longueur nulle ; 2. la capacit de stirer indniment avec une certaine force.
A L TEX 2 dispose dune commande permettant de spcier une longueur lastique en prcisant son degr dlasticit :

\stretch{nbre} o nbre est la force du ressort. Ce nombre peut tre sign et avoir une partie dcimale. Voici un exemple :
zro\hspace{\stretch{1}}% tiers\hspace{\stretch{2}}un
6

zro

tiers

un

Sauf \parskip.

4.2

58

Un pas vers la sorcellerie

A Ce code L TEX introduit des espaces7 de longueurs lastiques entre les mots zro tiers un . Le deuxime ressort a une raideur deux fois plus importante que le premier. Lespacement est donc double. Vous noterez aussi que ces ressorts ont une lasticit relative mais innie ; cest pourquoi les mots zro et un sont pousss contre les marges. Enn, sachez que \fill est un raccourci agrable de \stretch{1}.

4.2.5

Afchage

Il est parfois utile dacher la valeur dune longueur. Pour ce faire on peut avoir recours la commande \showthe qui interrompt la compilation pour acher la valeur de la longueur passe en paramtre. Ainsi : \showthe\linewidth acher la valeur de la longueur \linewidth en interrompant la compilation. On aura sur le terminal quelque chose du genre : [ ... ] Le laus 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 longueur l.10 \showthe\parindent la longueur acher ? Lorsque la compilation est lance dans un terminal de commande, une pression sur la touche <Entre> fait reprendre la compilation.
Comme indiqu la page 13, votre environnement de dveloppement ne vous A permet peut tre pas directement davoir accs aux messages de L TEX. vous de chercher o se trouvent ces informations...

4.3

Espaces
On appelle espaces les blancs que lon insre divers endroits dans un document. Il existe des commandes permettant dinsrer des blancs de longueur prdnie ou A choisie par lutilisateur. Il sagit bien sr de longueur au sens de L TEX.

4.3.1

Commandes de base

Pour insrer une espace8 entre les objets, on dispose de commandes de la forme suivante : \dirspace{dim} o dim est une longueur rigide ou lastique, et dir vaut : v pour une espace verticale ;
7 Cest la commande \hspace qui produit une espace horizontale de longueur dnie par son argument. 8 Nous utilisons ici le genre fminin du mot espace qui dsigne alors les petites tiges mtalliques utilises autrefois en imprimerie pour sparer les mots et les lettres. Aujourdhui, le genre fminin est encore utilis dans le monde de la typographie et de limprimerie.

4.3 Espaces h pour une espace horizontale. Ainsi :


un saut\hspace{1cm}de \texttt{1cm}
4.3

59

un saut

de 1cm

\vspace{2\baselineskip} et deux lignes vierges.

et deux lignes vierges.

Dans certaines situations, TEX supprime les espaces. Il est alors ncessaire dutiliser la forme toile des commandes despacement, savoir \hspace* et \vspace*. Les situations en question sont : le dbut et la n de page ; le dbut et la n dune ligne sil ne sagit pas de la premire ou de la dernire ligne du paragraphe.

4.3.2

Quelques espaces prdnies

On dispose de plusieurs commandes despacement, regroupes en deux catgories selon le mode horizontal ou vertical. Espaces horizontales Voici quelques espaces rigides : \enspace : \quad : \qquad : soit 0.5\quad soit 1em soit 2\quad

et quelques espaces lastiques : \hfill : soit \hspace{\fill} \hrulefill : comme \hfill mais trace une ligne \dotfill : comme \hfill mais trace des points Voici quelques exemples montrant lutilisation des espaces horizontales. Tout dabord, notez que les espaces entourant la commande \hspace ne sont pas ignores :
zro\hspace{1cm}un\par zro \hspace{1cm}un\par zro \hspace{1cm} un\par
A Voici ensuite, les espaces lastiques de L TEX :

zro zro zro

un un un

zro \hfill{} un\par zro \hrulefill{} un\par zro \dotfill{} un\par

4.4 4.5

zro un zro un zro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . un

Et pour nir, la force relative des ressorts :

60
zro \dotfill{} demi \hfill{} un\par zro \hrulefill{} tiers \hspace{\stretch{2}} un\par

Un pas vers la sorcellerie


zro . . . . . . . . . . . . . . . demi tiers zro un un

A Vous aurez donc compris que les ressorts prdnis de L TEX ( savoir \hfill, \hrulefill, et \dotfill) ont une raideur de 1.

Espaces verticales Voici trois grands classiques de la famille des espaces verticales : \smallskip pour un petit saut vertical ; \medskip pour un saut vertical moyen ; \bigskip pour un grand saut vertical. Ces espaces sutilisent comme la commande \vspace, avec pour eet : dfaut : suivant... petite : suivant... moyenne : suivant... grande : suivant...

Il existe une espace verticale lastique prdnie : \vfill quivalent : \par\vspace{\fill} cest--dire, un saut de paragraphe, suivi dune espace verticale de dimension \fill.
\hrulefill{} haut \vfill \hfill{}fragile\hfill{} \vspace{\stretch{2}} \hfill{}bas \hrulefill{} Il est important dutiliser la commande \vspace entre deux paragraphes au risque davoir des rsultats surprenants. Il vaut donc mieux prendre lhabitude dinsrer un saut de paragraphe une ligne vierge ou une commande \par avant et/ou aprs \vspace. bas haut

4.6

fragile

4.4

Botes
La dernire section de ce chapitre sera ddie aux botes, et vous verrez que le titre du prsent chapitre sera amplement justi ! Comme nous lavons aperu prcdemment, les botes sont des entits qui contiennent dautres lments (une bote

4.4 Botes

61

pouvant en contenir une autre). Ces entits peuvent dautre part tre positionnes selon la fantaisie9 de lutilisateur. Il existe deux principaux types de botes (au niveau de TEX cest un peu plus subtil) chacun deux ayant un comportement spcique. Nous qualierons ces deux catgories comme suit : bote simple bote paragraphe Nous verrons quune manipulation habile de ces botes permet de produire des mises en page sophistiques particulirement utiles notamment lors de la conception de transparents. Voici un premier exemple avec des botes simples qui, jen suis sr, vous a saut aux yeux, cest le logo de TeX : TEX. Il sagit en fait des trois lettres, T, E et X mises en bote et assembles avec des dcalages horizontaux et verticaux :

TEX
notez que la bote du E est dcale vers le bas et que les trois botes se superposent. Un autre exemple :
ci cit tr ro o n n n n o o tr tr ci ci
ul t re na

ici chaque mot est dans une bote. Chaque bote est ensuite place par rapport aux autres avec moult dcalages et rotations. Pour en nir avec les exemples prliminaires, nous vous donnons ici deux exemples utilisant les botes paragraphes :
p un laf th e f ! un m orm e at u b iq le o ue m ax bo da a+ te ns b= c

Ceci est une bote paragraphe de 4cm de large. Une telle bote est capable de conte- le texte continue, et, nir peu prs tout ce quon trouve dans un A document L TEX.

Voici une image en couleur, avec ses 3 composantes : RRRR RRRR GGGG RRRR GGGG BBBB RRRR GGGG BBBB GGGG BBBB BBBB
9

Humm... ainsi quavec patience et bonne humeur...

re na

ul t

et pour viter les querelles culturelles :

na re

renault
ul

ul t

na re

62

Un pas vers la sorcellerie

4.4.1

Botes simples

La premire catgorie les botes simples se comporte comme des mots dans un paragraphe. Voici leurs caractristiques : on peut imposer sa largeur, sa hauteur est donne par ce quelle contient, Elle ne doit pas contenir de saut de paragraphe Sans bordure La commande \makebox permet de construire une bote simple. \makebox[larg][pos]{contenu} o larg est la largeur dsire, pos la position (c=centr, l=align gauche ou r= droite) de contenu dans la bote. Voici quelques exemples :
et \makebox[2cm][c]{hop !} une bote\par et \makebox[3cm][r]{rehop !} une autre et et
4.8

hop !

une bote rehop ! une autre

Les deux arguments larg et pos sont optionnels et sils sont omis, la largeur de la bote est celle du texte. Le cas chant on saisit : \mbox{texte} au lieu de \makebox[][]{texte}. On notera galement que loption s de la commande \makebox permet dtirer le contenu pour quil fasse exactement la dimension impose :
\makebox[5cm][s]{Ouaaahhh quelle fatigue !} Ouaaahhh quelle fatigue !
4.9 4.10

Avec bordure On construit une bote entoure par une bordure grce la commande \framebox qui suit la mme syntaxe que \makebox : \framebox[larg][pos]{texte} le raccourci \fbox{texte} existe comme pour les botes sans bordure. Ce qui donne :

bon \framebox[1.5cm][c]{alors} voil\par et \framebox[2.8cm][r]{ah oui} daccord\par \fbox{alors}

bon alors voil et ah oui daccord alors

Deux longueurs sont disponibles pour changer lallure des \framebox : \fboxsep la distance entre la bordure et le texte, \fboxrule lpaisseur du trait.

4.4 Botes
\setlength{\fboxrule}{5pt} rouge \framebox[2cm]{vert} bleu\par \setlength{\fboxrule}{0.4pt} \setlength{\fboxsep}{8pt} cyan \framebox[2cm]{magenta} jaune

63

rouge
4.11

vert magenta

bleu jaune

cyan

ainsi :

Un particularit des botes simples contrairement aux botes paragraphes que lon rencontrera un peu plus loin dans ce chapitre, est quelles neectuent pas de csure,

=== \framebox[3cm]{a ne risque pas dtre coup, a...} === donnera : a === ne risque pas dtre coup, === a... On peut dailleurs exploiter cette fonctionnalit pour superposer du texte (cf. paragraphe sur les botes de largeur nulle page suivante).

4.4.2

Manipulation de botes simples

On peut avec un peu dhabitude faire subir aux botes des dplacements dans toutes les directions. Translation verticale La translation est permise grce la commande : \raisebox{trans}[prof][haut]{texte} o trans est le dplacement que vous voulez iniger texte. Par exemple :
Cest haut \raisebox{8pt}{New York,} New York \raisebox{-1ex}{USA.}
4.12

Cest haut

New York,

New York USA.

A Les deux arguments optionnels prof et haut permettent de faire croire L TEX que la bote rsultant de la translation a une hauteur de haut et une profondeur de prof. Lexemple suivant illustre lutilisation 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 : XXXXX O ligne 2 : XX XX ligne 3 : XXXXX ligne 4 : XXXXX O ligne 5 : XX XX ligne 6 : XXXXX

64

Un pas vers la sorcellerie

On soulve un O au milieu de la ligne 2. La bordure met en vidence la place occupe par la bote souleve10 . Au milieu de la ligne 5, on soulve le mme O mais A cette fois en imposant les dimensions (montres par la bordure). L TEX considre donc que la bote rsultant de la translation fait 1ex de haut et 2ex de profondeur, il eectue les sauts de lignes en consquence. Translation horizontale Les translations horizontales ne sont pas proprement parler des caractristiques des botes, puisquon les obtient en insrant des espaces appropries. Voici un exemple :

Non la \makebox[1.5cm]{censure}% \hspace{-1.5cm}\makebox[1.5cm]{///////} sur Internet.

Notez que ce nest pas forcment la meilleure faon de hachurer un mot, mais cela illustre la manire de dplacer un bote horizontalement, laide dun \hspace ngatif. Bote simple de largeur nulle Il est parfois utile de manipuler les botes de largeur nulle, par exemple dans le cas o lon souhaite superposer des lments. En imposant une dimension nulle en guise de premier argument optionnel de la commande \makebox :
\newcommand{\grogra}{\huge\bfseries} avant\makebox[0cm][c]{\grogra C}aprs
4.15

4.14

Non la /////// censure sur Internet.

avant\makebox[0cm][l]{\grogra G}aprs avant\makebox[0cm][r]{\grogra D}aprs

C avanta G prs avant Daprs


avantaprs

on produit bien une superposition mais lalignement nest pas exactement celui auquel on sattendait ; en eet largument l met le contenu droite du point dinsertion de la bote, et gauche pour largument r. Rotation
A Il existe plusieurs extensions de L TEX pour faire subir des rotations des lments de texte ; nous avons choisi de prsenter ici la commande \rotatebox de lextension graphicx prsente au chapitre 5. La syntaxe en est la suivante :

\rotatebox{angle}{texte} o angle est langle dans le sens trigonomtrique, et texte llment de texte faire tourner :
10

Cette bordure est insre ici pour la comprhension du mcanisme.

4.4 Botes
4.16

65
age Attention vir dangereux.

Attention \rotatebox{30}{virage} dangereux.

La version actuelle de xdvi nest pas en mesure dacher les objets qui ont subi une rotation11 . Cette lacune (avec quelques petites autres) sera peut-tre corrige dans les prochaines versions. La parade est de visualiser la sortie PostScript avec ghostview ou gv, ou la sortie Pdf.

4.4.3

Botes paragraphe

Les botes dites botes paragraphe ont la particularit de pouvoir contenir des sauts de ligne et des sauts de paragraphe (contrairement aux botes dites simples ). Il existe deux manires de crer des botes paragraphe ; la premire avec la commande \parbox : \parbox[bpos][hauteur][tpos]{largeur}{contenu} o contenu est llment de texte mettre en bote, largeur la largeur de la bote crer, bpos un argument optionnel prcisant le point de rfrence. Cet argument optionnel est rapprocher de celui de lenvironnement tabular. Par exemple : Voici --- \parbox{2.1cm}{une bote\\paragraphe} --- une --- \parbox[t]{2.1cm}{autre bote\\paragraphe} --- et --- \parbox[b]{2.1cm}{une bote\\paragraphe} qui donne (avec des bordures pour mettre en vidence les dimensions des botes) : une bote une bote une autre bote et paragraphe Voici paragraphe paragraphe Pour construire une bote paragraphe en imposant sa hauteur, on utilise largument optionnel hauteur. On peut alors ventuellement prciser la position verticale tpos du texte dans la bote. Par dfaut tpos vaut bpos, et il peut prendre les valeurs habituelles c pour centr, t et b pour haut et bas ; plus une valeur : s pour spcier que le texte peut stirer (stretch) sur toute la hauteur de la bote dans ce cas cest lutilisateur 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}}--donne avec les \fbox pour y voir un peu plus clair : haut milieu bas haut milieu bas haut milieu bas haut milieu bas

Pour crer une bote paragraphe, il peut tre utile dutiliser lenvironnement minipage, qui simule la cration dune page avec dventuelles notes de bas de page,
11

Lobjet est ach mais sans la rotation.

66

Un pas vers la sorcellerie

tableaux, listes, etc12 . La syntaxe est analogue \parbox sauf quil sagit dun environnement : \begin{minipage}[bpos][hauteur][tpos]{largeur} ... \marg{texte} ... \end{minipage} Voici un exemple : Ce que jai direa nest pas franchement parler : Pour une raison x, y ou z , on peut vouloir raconter sa vie avec une minipage. Comme dans cet exemple l ni trs intressant ; ni particulirement indispensable mais bon, jen parle quand mme. Javais autre chose raconter mais a mest sorti de la tte...
a

Cest 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 bote ainsi cre est centre par rapport au paragraphe Pour une raison... car largument optionnel pos est absent :
\parbox{0.40\textwidth}{... Comme dans cet exemple l $\longrightarrow$}\hfill \begin{minipage}{0.55\textwidth} Ce que jai dire\footnote{Cest un bien grand mot.} nest pas franchement parler : \begin{itemize} \item ni trs intressant ; \item ni particulirement indispensable \end{itemize} mais bon, jen parle quand mme. Javais autre chose raconter mais a mest sorti de la tte... \end{minipage} Dans les botes paragraphe la longueur \parindent est mise zro. Ce qui explique que Javais autre chose ... dans lexemple prcdent nest pas indent. Enn, contrairement aux cas des \parboxs, lorsquon fait rfrence dans une minipage la dimension \textwidth, il sagit de celle de la bote et non de celle du texte.

4.4.4

Petites astuces

Toutes les fonctions concernant les botes peuvent prendre en paramtre de longueur les dimensions suivantes : \width \height
12

: la largeur du texte contenu, : la hauteur du texte contenu,

Cet environnement ne peut toutefois pas contenir de ottants.

4.5 Dnitions \depth : la profondeur du texte contenu,

67

\totalheight : (hauteur + profondeur) du texte. Il est alors possible de prciser les dimensions de la bote relativement au texte quelle contient. Ce qui peut tre utile dans certaines situations :
une \framebox[0.7\width]{bote} ltroit. une \framebox[1.8\width]{bote} au large. une \fbox{% \parbox[c][3\height]{1cm}{bote\\vide.}}
4.17

unebote ltroit. une bote au large. bote vide.

une

4.4.5

Sauvegarde et rutilisation

A Il est possible de stocker un extrait de code L TEX dans une bote pour le rutiliser A ceci par exemple lorsque ce code exige de L TEX des ressources importantes ; dans ce cas on procde en 3 tapes :

1. dclaration dune bote avec la commande \newsavebox, 2. stockage avec \sbox ou \savebox, 3. rutilisation avec \usebox. 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}

Gnu Gnu Gnu Gnu Gnu Gnu Gnu Gnu Gnu

On peut faire une analogie entre le couple de commande \sbox et \savebox et le couple \mbox et \makebox (cf. 4.4.1).

4.5

Dnitions
Une nouvelle fois, laissons parler le matre :
. . . 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 eect.

D. E. Knuth in the TEXbook

4.18

68

Un pas vers la sorcellerie

Lorsque dans un document, on peut dnir une entit indpendante et que cette entit apparat plus dun certain nombre de fois il est ncessaire de se poser la question de savoir sil nest pas judicieux den faire une macro. Voil une phrase vague ! Pour rsumer, les macros sont l pour vous viter de refaire x fois les mmes choses. Avec un peu dexprience, on peut dnir des commandes trs pratiques et avec le temps de plus en plus complexes.

4.5.1

Commandes

La commande \newcommand permet de dnir une macro, son utilisation est trs simple :
A \newcommand{nomcom}[nargs]{code L TEX} o nargs est le nombre darguments au sens arguments dune fonction dun lanA gage de programmation et code L TEX le code dnissant votre commande. Voici un exemple de macro, dnissant le symbole dun espace de reprsentation utilis en colorimtrie :

\newcommand{\lab}{$L^*a^*b^*$} Soit \lab{} lespace...

Notez que cette commande ne prend pas dargument, il nest donc pas ncessaire ici dutiliser largument optionnel nargs. Pour amliorer un peu lutilisation de cette commande, on peut la dnir comme suit :
\newcommand{\Lab}{% \ensuremath{L^*a^*b^*}} Lespace \Lab{} et $\vec{c}\in\Lab$. Lespace L a b et c L a b .

La commande \ensuremath permet de sassurer que la commande sera utilise dans un environnement mathmatique, quel que soit le contexte, comme dans lexemple ci-dessous.
A Les macros ou commandes de L TEX ne sont pas tout fait des fonctions au sens dun langage de programmation, elles sapparentent plutt au #define du C. Et en ce sens, elles suivent le mcanisme dexpansion. Ainsi, dans le premier exemple de la fonction \Lab, \Lab se dploie en $L^* a^* b^*$. On comprend donc pourquoi, $...\Lab$ aurait gnr une erreur de compilation.

Voici une commande utilisant un argument : elle permet de dessiner une touche de clavier13 :
\newcommand{\Touche}[1]{\Ovalbox{#1}} Appuyer sur \Touche{Tab} puis sur \Touche{Entre} Appuyer sur Tab puis sur Entre

4.21

On voit donc que cette commande attend un argument (cest le sens de [1] ) et quon fait rfrence cet argument dans la dnition de la commande avec #1. Si lon souhaite dnir une fonction avec plusieurs arguments (9 au maximum), no problemo :
13

Cette commande fait appel la commande \Ovalbox dnie dans le package fancybox.

4.20

4.19

Soit L a b lespace...

4.5 Dnitions
\newcommand{\fraction}[2]{% \raisebox{0.5ex}{#1}% \slash\raisebox{-0.5ex}{#2}} \fraction{1}{2} et \fraction{3}{4} font \fraction{5}{4}

69

On remarquera donc que : la macro \fraction prend 2 arguments, on fait rfrence au ne argument avec #n, les caractres % sil vous paraissent saugrenus, permettent dinsrer des sauts de ligne dans le code sans insrer despace dans le document (voir aussi le paragraphe 9.2.1 page 113 ce sujet). Il est galement possible de dnir une commande dont le premier argument est optionnel. La syntaxe est alors la suivante :
A \newcommand{nomcom}[narg][arg defaut]{code L TEX}

4.22

1/2 et 3/4 font 5/4

o narg est le nombre darguments, sachant que #1 sera largument par dfaut, arg A defaut est la valeur que prend #1 par dfaut, et code L TEX le code de la commande. Voici par exemple une autre approche de la commande vue prcdemment, qui dessine une touche de clavier :
\newcommand{\Touche}[1][Entre]{\Ovalbox{#1}} Appuyer sur \Touche[Tab]{} puis sur \Touche{} Appuyer sur Tab puis sur Entre
4.23

On voit donc que largument 1 est facultatif et sa valeur par dfaut est : Entre . On notera galement que lutilisation de largument optionnel requiert des crochets et non des accolades.
On peut trs bien imaginer que lon ait dnir une commande ayant un argument optionnel et un ou plusieurs arguments obligatoires. Dans ce cas le premier argument obligatoire sera #2. Dautre part, notez quon ne peut rendre optionnel que le premier argument dune commande.

4.5.2

Environnement

Il est possible de dnir ses propres environnements de la manire suivante : \newenvironment{nom env}[narg]{clause begin}{clause end} o nom env est le nom de lenvironnement ainsi dni, narg le nombre darguments, et clause begin et clause end les pr et post traitements de lenvironnement. Il est pratique de dnir des environnements partir dautres, par exemple les A environnements de L TEX :

70
\newenvironment{bonmot}% {\small\slshape\begin{flushright}}% {\end{flushright}\normalsize\upshape} \begin{bonmot} Lhomme a reu de la nature une clef\\ avec laquelle il remonte la femme\\ toutes les vingt-quatre heures. \end{bonmot}

Un pas vers la sorcellerie

Il est vrai que ce bon mot serait un peu douteux si lon ne citait son auteur. On peut y remdier 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 largument dans une bote que lon rutilise 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} Lhomme a reu de la nature une clef\\ avec laquelle il remonte la femme\\ toutes les vingt-quatre heures. \end{Bonmot}

4.24

Lhomme a reu de la nature une clef avec laquelle il remonte la femme toutes les vingt-quatre heures.

Lhomme a reu de la nature une clef avec laquelle il remonte la femme toutes les vingt-quatre heures.
4.25

Victor Hugo

La citation nen reste certes pas moins douteuse...

4.5.3

Rednitions

Il est possible de rednir commandes et environnements avec : \renewcommand{nomcom}[nargs]{codeTEX} pour les commandes et : \renewenvironment{nom_env}[narg]{clause_begin}{clause_end} pour les environnements. On rednit les commandes essentiellement pour personA naliser le comportement factieux de L TEX. On procde alors de la manire la plus naturelle qui soit, par exemple : \renewcommand{\thepage}{\Roman{page}} numrote les pages en chire romain majuscule.
A La modication du comportement par dfaut de L TEX est un sujet trs vaste qui dpasse le cadre de cette partie. Mais sachez que si vous modiez une commande ou un environnement dont vous ne matrisez pas toutes les fonctionnalits, attendez vous des rsultats bizarres ! La lecture de la deuxime partie prsente le moyen de rednir A certaines commandes de L TEX.

4.6 Mais encore ?

71

4.6

Mais encore ?
Si vous avez lintention de crer des chiers contenant des commandes de votre cr, vous devez ajouter la ligne : export TEXINPUTS=$HOME/LaTeX/mesmacros//:
A dans votre .bash_profile si vous utilisez bash, pour que L TEX cherche aussi les chiers dans le rpertoire $HOME/LaTeX/mesmacros (cest un exemple) et ses sousrpertoires. La ligne \usepackage{moncru} vous permettra alors dutiliser votre A ensemble de commandes. L TEX cherchera alors le chier moncru.sty. Une autre solution est dutiliser la commande \input{moncru.sty}. A Dans la plupart des distributions de L TEX, un chier nomm texmf.cnf dnit A un certain nombre de paramtres permettant de conguer le moteur L TEX et notamment les chemins de recherche des chiers. Sur mon systme (TeTEX sous Debian) ce chier contient notamment :

HOMETEXMF = $HOME/texmf indiquant que le systme cherchera les chiers inclure dans le rpertoire texmf de votre rpertoire priv. Vous devrez alors placer vos extensions maison dans le rpertoire ~/texmf/tex/latex. Un dernier conseil : pour pouvoir dnir vos commandes ou environnements de manire plus confortable, nous vous recommandons de jeter un petit coup dil sur : lextension ifthen qui propose des structures de contrle de type si-alorssinon et faire-tant-que , le package calc qui permet deectuer des oprations arithmtiques sur les compteurs et les longueurs. enn lenvironnement list qui peut tre un bon point de dpart pour se dnir un environnement de type liste. Ces extensions et leur utilisation sont prsentes en dtail dans la deuxime partie de ce manuel.

5
Sommaire 5.1 5.2 5.3 5.4 5.5 5.6 Apritifs Du format des chiers graphiques Le package graphicx Quelques extensions utiles Utiliser make part a

Graphisme

Tu ne te feras aucune image sculpte de rien qui ressemble ce qui est dans les cieux l-haut [...] Tu ne te prosterneras pas devant ces images ni ne les serviras. Le Deutronome Dt 5 8.

ujourdhui il est tout fait naturel dinsrer des dessins, gures et autres images dans un document. Ceci est d aux imprimantes de plus en plus performantes et bon march. Il faut cependant se replacer dans le contexte des annes 80 lessor de TEX. Cest lpoque de lapparition des imprimantes et le matriel de qualit professionnelle ntait pas accessible au particulier. Cependant beaucoup de solutions dimpression mergeront sappuyant la plupart sur le langage PostScript devenu ipso facto un standard. A Il existe plusieurs solutions autour de L TEX pour insrer des graphiques dans un document. Parmi elles on notera lutilisation de metafont (lutilitaire qui gre A les fontes de L TEX), la programmation dun environnement picture ou la mise en uvre dun code PICTEX. Ces solutions ne seront pas dcrites ici car nous considrons quelles sont dune utilisation un peu droutante au premier abord ; il est tout de mme bon de connatre leur existence. Lapproche adopte dans ce manuel pour A manipuler des graphiques est dinsrer dans le source L TEX un chier au format PostScript encapsul contenant le graphique en question, ce dernier ayant t cr par un logiciel de dessin tel que xg, gnuplot, gimp, etc.

5.1

Apritifs
Il nest pas inutile de connatre la commande \rule qui permet de faire des traits : \rule[hpos]{largeur}{hauteur} o hpos impose une ventuelle translation verticale du trait, les deux autres arguments ont un nom susamment explicite : 73

74
Voici quelques \og traits \fg{} : \begin{center} \rule[1ex]{1mm}{5mm}\quad\rule{1in}{0.4pt} \quad\rule[-0.5em]{1em}{1em} \end{center}

Graphisme

Voici quelques traits :


5.1

5.2

Du format des chiers graphiques


Pour inclure des dessins ou des images dans vos documents, il faut insrer un chier. A La conguration de L TEX permet dincorporer des chiers de type PS pour PostScript et EPS pour Encapsuled PostScript. Ce chier peut tre gnr par nimporte quel programme. Si le format PostScript vous semble contraignant, sachez que : tout bon logiciel de dessin vectoriel vous permet dexporter vos schmas au format EPS. Ce format est devenu la rfrence en matire dimpression. toute image peut tre convertie au format EPS. Sur un systme Unix, le programme convert permet deectuer cette opration1 . On pourra aussi recourir au logiciel gimp (logiciel libre de retouche et de cration dimage numrique), prsent galement sur dautres systmes dexploitation.

5.3

Le package graphicx
A L TEX, ou plutt TEX, na pas t initialement conu pour manipuler des graphiques (images, dessins,...). De ce fait, une multitude dextensions ont t proposes, aucune nayant vraiment russi simposer ou tre vraiment indpendante des systmes dexploitation.

5.3.1

Un standard

A Aujourdhui, les concepteurs de L TEX semblent stre mis daccord pour standardiser une extension graphique. Deux extensions ont donc vu le jour n de lanne 1994 :

graphics lextension standard ; graphicx lextension plus plus . Nous avons choisi de vous prsenter graphicx. Il faut bien comprendre que si linterface de cette extension est indpendante du systme dexploitation, la partie du code grant les dirent types de chiers graphiques est dpendante du systme sous-jacent. Aussi, est-il ncessaire de prciser un driver de package. Les drivers existants correspondent aux implantations connues de TEX sur des plate-formes diverses2 . Sous Unix, le driver utilis est gnralement dvips, il est choisi par dfaut dans la distribution teTEX, si bien que la ligne : \usepackage{graphicx}
1 Cherchez du ct de la suite ImageMagick pour obtenir ce programme sil nest pas prsent sur votre systme. 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

75

Figure 5.1: Robert (aprs quelques bires). sut pour mettre en route lextension graphicx. La commande pour inclure un dessin ou une gure est la suivante : \includegraphics[option]{chier} o chier est un chier contenant votre gure, et option est une liste doptions spares par des virgules. La commande \includegraphics ne cre pas de mise en page particulire, elle insre juste une bote contant le graphique dans le texte. Ainsi :
avant \includegraphics{punch} et aprs.

5.2

avant

et aprs.

Pour assurer la portabilit de vos sources et ainsi pouvoir insrer des chiers graphiques dans des formats dirents, il est impratif de ne pas prciser lextension du chier dans la commande \includegraphics.

En gnral, on combine \includegraphics avec un environnement figure. Par exemple, la gure 5.1 a t produite grce au code suivant : \begin{figure} \centering\includegraphics[width=5cm]{punch} \caption{Robert (aprs quelques bires).} \label{fig-exemple} \end{figure}
Notez bien que lenvironnement figure assure que le graphisme otte dans la page et que a nest pas la commande \includegraphics qui assure ce rle. Au cas o a aurait chapp certains : Lenvironnement figure assure que le graphisme otte dans la page ; a nest pas la commande \includegraphics qui assure ce rle.

76

Graphisme

5.3.2

Options

Le package graphicx possde plusieurs options permettant de contrler linsertion des graphiques. Parmi les options disponibles voici les plus utilises : Changement dchelle Il existe trois manires dagir sur la taille dun graphique. scale=ratio, o ratio est un nombre positif ou ngatif, permet de changer la taille globale de la gure ; width=dimen permet dimposer la largeur du graphique ; height=dimen permet dimposer la hauteur du graphique.
\begin{center} \includegraphics[scale=0.2]{magma}\\ \includegraphics[width=8.5mm]{magma}\\ \includegraphics[width=2cm,height=3mm]{magma} \end{center}

Rotation Vous pouvez si vous le dsirez, faire eectuer une rotation votre gure en utilisant loption angle, dont la syntaxe est la suivante : angle=ndegre o ndegre est un angle prcis en degrs dans le sens trigonomtrique.

On trouvera dans le chier grfguide.pdf3 une description dtaille de cette extension. On pourra galement consulter le chier fepslatex.pdf4 . Mode brouillon Loption draft permet de produire les gures en mode brouillon : seul un cadre avec le nom du chier inclus est produit dans le document nal.
avant \includegraphics[draft,scale=.2]{punch} et aprs.
3 4

5.4

\includegraphics[angle=45,scale=0.2]{magma}

5.3

5.5

pngs/punch.png avant et aprs.

Utiliser locate ou find pour le trouver sur votre systme. http://tug.ctan.org/tex-archive/info/epslatex/french/fepslatex.pdf

5.4 Quelques extensions utiles

77

Le mode draft est enclench par dfaut lorsque loption de document draft est spcie. Si vous voulez contrer leet de loption de document5 , il est possible dutiliser loption final de la commande \includegraphics ou au moment dinclure lextension avec \usepackage.

5.4

Quelques extensions utiles


Voici dans les paragraphes qui suivent trois extensions utiles pour la production de documents contenant des graphiques.

5.4.1 subg
Cette extension permet de grer des gures comportant plusieurs sous-gures, avec numrotation automatique et possibilit de faire rfrence aux sous-gures ellesmmes. Par exemple :

(a) Magma

(b) UZMK

Figure 5.2: Uniweria Zkt


\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 Zkt} \label{fig-uniweria} \end{center} \end{figure}

Pour ce qui concerne les rfrences, on peut soit rfrencer 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 manire lgante de grer les \subfigures est dencapsuler chacune delles dans un environnement minipage. Le chier subfig.pdf accompagnant la distribution, montre comment personnaliser lenvironnement subfigure, notamment les espaces inter-lgendes.
5

Par exemple, si vous voulez voir vos gures mais aussi les OverfullBoxMark.

78

Graphisme

5.4.2

Le package wrapg

Le package wrapg propose lenvironnement wrapfigure permettant de faire otter une gure dans un paragraphe. Il ne sagit pas dun environnement ottant au sens A de lenvironnement figure de L TEX puisquon spcie la position de la gure dans le paragraphe. La syntaxe est la suivante : \begin{wrapfigure}{position}{largeur} ... \end{wrapfigure} o position est la position de la gure (l ou r) et largeur la largeur de la gure insrer. Voici un exemple :
\begin{wrapfigure}{r}{1.5cm} \includegraphics[width=1cm]{polygons} \end{wrapfigure} Le package \ltxcom{wrapfig} nest ---~ ma connaissance~--- pas document sous la forme dun fichier \texttt{dvi} ; par contre il est possible...

Le package \wrapfig nest ma connaissance pas document sous la forme dun chier dvi ; par contre il est possible de trouver des informations trs dtailles dans le chier .sty lui-mme qui se trouve dans larborescence TEX dans : [...]/misc/wrapfig.sty. On notera au passage car il faut parler pour faire un paragraphe un peu long que la rgle veut que tout package soit auto-document grce une extension connue sous le nom de docstrip. Ainsi toute extension package en anglais contient aussi bien le code que la documentation. Une procdure dinstallation permet dextraire lun et lautre. Lauteur de wrapg na vraisemblablement pas suivi cette rgle, tant pis...

5.4.3

Le package psfrag

Une autre extension intressante est lextension psfrag. Elle a pour but de pouvoir A runir la puissance dun chier PostScript et la beaut des quations de L TEX. Un problme se pose en eet lorsque lon veut intgrer des formules un dessin, car la gnration dquations nest pas prvue dans la plupart de ces logiciels. La solution adopte par les auteurs de psfrag est dutiliser la commande \psfrag pour insrer les formules la place de chanes de caractres prsentes dans le dessin. Ainsi, pour avoir la gure 5.3b au lieu de la gure 5.3a, on a procd 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 chane de caractres faisant oce de lgende par une belle quation ; 2. le rsultat nest pas visible dans le chier .dvi, par contre dvips se charge dexploiter les instructions prcdentes pour modier le chier PostScript gnr. Le positionnement de la formule se fait en faisant correspondre deux points de rfrence, lun appartenant lquation, lautre la chane de caractres remplacer.

5.4 Quelques extensions utiles


1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0 1 2 3 4 5 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 0 1 2 3 4 5

79

exp(-x)*sin(10*x)

exp(-x)*sin(10*x)

(a) avant

(b) aprs

Figure 5.3: Utilisation de psfrag, gauche la gure originale, droite la gure avec A un remplacement par une quation L TEX. Cest lutilisateur dindiquer o se trouve ces points de rfrence, par lintermdiaire de deux arguments optionnels la commande \psfrag. Supposons quon dnisse ces points de rfrence comme suit : \psfrag{chane}[l][c]{equation} On aura alors lassemblage suivant :
chane

et

quation

donne

chane quation

De mme en crivant : \psfrag{chane}[r][l]{equation} on aura : chane et


quation

donne

quation

chane

Dans lexemple de la gure 5.3b, on a fait correspondre le ct droit de lquation (1er argument optionnel r) avec le ct droit de la chane (2e argument optionnel r). La documentation du package est trs instructive ce sujet...
A Attention, si on gnre un document pdf partir du source L TEX, on ne peut utiliser le package psfrag quau prix de manipulations un peu tordues.

5.4.4

Le package xcolor

Lextension xcolor est mise au point par lquipe qui a dvelopp le package graphicx. Il peut tre intressant par exemple pour produire des transparents de gnrer du texte en couleur. Le package xcolor permet les constructions suivantes :
Du texte {en \color{red}rouge} et \textcolor{cyan}{en cyan}.
5.6

Une bote \colorbox{green}{Verte}. Une \fcolorbox{blue}{yellow}{autre bote}.

Du texte en rouge et en cyan. Une bote Verte . Une autre bote .

80 On aura compris quon dispose pour le texte : de la dclaration : \color{couleur} et de la commande : \textcolor{couleur}{texte} et pour les botes : sans bordure : \colorbox{couleur du fond}{contenu} avec bordure : \fcolorbox{couleur bordure}{couleur fond}{contenu}

Graphisme

Les deux commandes pour les botes en couleur sont sensibles la longueur \fboxsep. Quid des couleurs qui nont pas de nom ? vous entends-je marmonner in petto... Ce quoi je rponds sur le champ :

Voici un {\color[rgb]{.2,.4,.5}\bfseries bleu gris}...

Voici un bleu gris...

Il est aussi possible de donner un petit nom cette dernire couleur :


\definecolor{bleugris}{rgb}{.2,.4,.5} Voici un {\color{bleugris}\bfseries bleu gris}... Voici un bleu gris...

Vous noterez quen lieu et place du modle de couleur rgb il est possible dutiliser le modle gray de manire dnir des nuances de gris. De mme, en utilisant le modle html, on pourra utiliser la syntaxe du langage Html pour spcier les couleurs.

5.5

Utiliser make
Ce paragraphe est destin aux utilisateurs dun systme dexploitation disposant de lutilitaire Gnu make (pour de plus amples informations sur cet utilitaire, nhsitez pas lire lincontournable [11]). Les autres peuvent passer leur chemin...

Voici donc une ide de makele qui vous permettra dautomatiser la gnration : des chiers au format Eps partir des images bitmaps ; des chiers au format Eps partir de chiers stocks dans le format dun logiciel de dessin vectoriel. On souhaite pour ce faire, laborer une cible que lon prcisera en ligne de commande :

5.8

5.7

5.5 Utiliser make

81

Makefile

maitre.tex

Figs

Imgs

Epss

f.fig

i.png

j.png

k.jpg

f.eps

i.eps

j.eps

k.eps

Figure 5.4: Proposition darborescence pour stocker les chiers graphiques : un rpertoire pour les images et un rpertoire pour les graphiques vectoriels. Les chiers au format Eps sont enregistrs dans un rpertoire part. make gs On suppose que les images et les chiers de dessins sont respectivement stocks dans les sous-rpertoire Imgs et Figs du rpertoire contenant le document matre et que les chiers Eps fabriqus seront galement stocks dans un sous-rpertoire Epss (voir la gure 5.4). On commencera donc par dnir un ensemble de variables prcisant les dirents rpertoires utiliser : FIGSDIR=Figs EPSSDIR=Epss IMGSDIR=Imgs

5.5.1

Convertir les images

Tout dabord on fait la liste des chiers au format Jpeg et Png (cest 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 dobtenir la liste des chiers contenu dans le dossier $(IMGSDIR) tandis que la fonction notdir supprime la partie rpertoire de chacun des chiers. Finalement la variable PNGS contiendra : i.png j.png et JPGS : k.jpg On peut ensuite partir de ces deux variables crer la liste des chiers Eps fabriquer (rappelez-vous quils doivent rsider dans un rpertoire part) : IMGS2EPSS=$(patsubst %,$(EPSSDIR)/%,\ $(PNGS:.png=.eps) $(JPGS:.jpg=.eps)) Lexpression droite de laectation permet de changer lextension en eps dans les deux listes prcdentes et de prxer chaque nom par le rpertoire de stockage des chiers Eps. IMG2EPSS contiendra donc : Epss/i.eps Epss/j.eps Epss/k.eps

82

Graphisme

Cette liste constitue les prrequis (au sens de make) pour fabriquer les images. On dnit donc la cible figs comme suit : figs : $(IMGS2EPSS) Il faudra galement expliquer make comment on peut fabriquer un chier au format postscript encapsul partir dune image. Ceci pourra scrire laide de la rgle suivante : $(EPSSDIR)/%.eps : $(IMGSDIR)/%.png convert $< EPS:$@ $(EPSSDIR)/%.eps : $(IMGSDIR)/%.jpg convert $< EPS:$@ qui prcise quon utilisera lutilitaire convert6 pour convertir un chier Png ou Jpeg en Eps.

5.5.2

Convertir les chiers de dessin

La conversion des chiers de dessins suit exactement le mme principe. Supposons quon dispose de sources au format Fig provenant de xg et au format Svg provenant de 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)) Les rgles de conversion sont bien videmment direntes puisquelles font appel lune g2dev (utilitaire connexe xg) et Inkscape lui-mme pour lautre : $(EPSSDIR)/%.eps : fig2dev -L eps $(EPSSDIR)/%.eps : inkscape -E $@ $(FIGSDIR)/%.fig $< > $@ $(FIGSDIR)/%.svg $<

La cible permettant de fabriquer les chiers de dessins et les images devient nalement : figs : $(IMGS2EPSS) $(FIGS2EPSS)

5.6

part a
On peut trouver un grand nombre dextensions permettant de produire des graphiques correspondant un besoin particulier (arbres, circuits lectroniques, histogrammes,...). Vous pouvez en eet avoir besoin, un jour, de gnrer des graphiques de manire automatique partir dune commande. Jetez alors un coup doeil sur les direntes extensions disponibles (pstricks, METAPOST,...) ainsi que sur lenvironnement picture et ses extensions epic et eepic. Bon courage !
Du package ImageMagick disponible http://www.imagemagick.org, qui convertit peu prs tout format dimages
6

6
Sommaire 6.1 6.2 6.3 6.4 Article Bibliographie Index Diviser votre document

Documents scientiques

Les sages thsaurisent la science mais la bouche du fou est un danger permanent. Les proverbes Pr 10 14.

oici venu le moment de vous parler des quelques caractristiques des documents dits scientiques. Si le problme des formules et autres quations a t abord avec brio au chapitre 3, il reste tout de mme un gros morceau avaler : la bibliographie. Sachez quand mme que si lingurgitation peut tre dicile, la suite vous permettra de vous simplier grandement le travail. Nous proterons galement de ce chapitre pour expliquer le principe de la gnration dindex. Nous vous parlerons donc des quelques particularits de la rdaction darticle, ensuite viendra un expos sur la gnration dune bibliographie, la gnration dindex, enn la mthode utile connatre pour diviser un gros document en petites parties.

6.1

Article
Pour rdiger un article, rien de bien nouveau, tout ce qui a t vu jusquici sapplique. On notera juste lutilisation dans le prambule, des commandes : \title pour dnir le titre, \date pour dnir la date, \author pour dnir les auteurs, \thanks pour spcier laliation des auteurs. Pour insrer le titre partir de ces dnitions, il est ncessaire dajouter la commande \maketitle aprs le \begin{document} :
\documentclass{article} \title{Le seuillage 128 : une rvolution !} \author{M. C. Orlanrien\\

83

84
Institut du Pixel\\ 42007 Saint-Etienne---FRANCE} \date{2 Avril 1927} \begin{document} \maketitle% cest ici qu est insr le titre ... \end{document}

Documents scientiques

Nous rptons1 : cest la commande \maketitle qui gnre et insre le titre et non les dnitions du prambule. En rgle gnrale, les confrences ou revues qui fournissent un chier de style, proposent quelques variantes, par exemple une commande \address pour sparer les auteurs et leur adresse respective, etc. Mais lide de base reste la mme.

6.2

Bibliographie
A Il existe deux manires de rdiger une bibliographie avec L TEX : lune que lon peut qualier de manuelle consiste insrer un environnement thebibliography dans le document, lautre que nous allons dcrire ici, utilise le programme BibTEX. Voici le principe :

1. on cre un ou plusieurs chiers de donnes contenant une description de chaque entre de bibliographie (article, confrence,...) au format BibTEX. Cest linvitable tche de saisie, 2. dans le document, on fait rfrence aux entres par la commande \cite, 3. la bibliographie sera formate automatiquement selon un style particulier que vous choisirez. Lavantage de cette mthode est que vous saisissez une fois pour toute les entres de votre bibliographie. De plus, vous navez pas vous soucier de sa mise en page, dans la mesure o vous utilisez des chiers de style ; il en existe plusieurs dizaines correspondant toutes sortes de standards, revues et autres confrences. On trouve aussi sur internet beaucoup de bases de donnes bibliographiques au format BibTEX que lon peut utiliser directement dans ses documents. Nous rptons quil existe des standards en matire 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 crer ou adapter un chier de style. Pour ce faire, cherchez du cot de lutilitaire makebst.

6.2.1

Fichier .bib

La premire opration est de constituer2 le chier de bibliographie qui doit de prfrence porter lextension .bib. Ce chier doit suivre une syntaxe particulire. Tout dabord, il faut savoir que BibTEX distingue chaque entre par son type. Ainsi,
1 2

Parce quil parat quenseigner cest rpter Le module AucTEX dEmacs possde un mode BibTEX trs pratique.

6.2 Bibliographie

85

chaque entre correspond un type de document : livre, article, confrence, rapport technique,... En tout plus dune douzaine de types de document dirents.
A Accompagnant les distributions L TEX, on trouve normalement un chier nomm BibTEXing (gnralement sous le nom btxdoc.dvi) crit par Oran Patashnik il y a une vingtaine dannes et contenant une source importante dinformation sur la manire de constuire un chier au format BibTEX.

Chaque type dentre contient son tour un certain nombre de champs dcrivant lentre. La structure dune entre de bibliographie est la suivante : @entree{clef, champ1 = {...}, champ2 = {...}, ... champn = {...} } o entree est le type de document (article, inproceedings,...) et champ1 , champ2 , ..., champn sont les dirents champs de lentre de bibliographie. Ces dirents mots rservs de BibTEX peuvent tre saisis en majuscules ou en minuscules. Le symbole clef doit identier le document de manire univoque. Ce symbole est rapprocher du symbole identiant une tiquette avec \label. Pour vous permettre de commencer utiliser rapidement BibTEX nous vous donnons, ici, un exemple pour les trois principales entres 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 ; 2. pour les auteurs3 il est impratif de suivre lordre nom, prnom et de sparer tous les auteurs par and ; 3. pour les auteurs ayant un nom compos ou particule, on saisira : author="de la Motte Beuvron, Alain" donc en respectant lordre particule, nom, prenom et en utilisant la virgule en guise de sparateur comme indiqu ci-dessus ;
Ces remarques concernant les auteurs sont valables pour les autres entres (confrences, livres, etc.)
3

86

Documents scientiques 4. tous les mois de lanne peuvent tre produits grce aux chanes : jan, feb, mar, etc.

Nous avons cr par commodit labrviation pami qui est dnie au dbut de notre chier .bib par :
@string{pami="IEEE transactions on Pattern Analysis and Machine Intelligence"}

Article dans une confrence Eh oui, BibTEX distingue un article dans une revue, et un article dans une confrence. La structure est sensiblement la mme, si ce nest quon utilise le champ booktitle pour le titre de la confrence, 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}

Ici les champs author, title, booktitle, year sont obligatoires, et lon doit choisir entre volume et number.

Un extrait de livre On cite souvent un extraitchapitre(s), ou page(s)dun livre plutt que le livre lui-mme :
@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 (lditeur) et year.


Encore une fois nous ne saurons trop vous conseiller dexploiter le mode BibTEX du module AucTEX dEmacs. Ce mode vous propose notamment un menu contenant tous les types dentre. La slection dun item de ce menu insre un squelette dentre dans votre chier .bib. Ce module est tlchargeable ftp://ftp.lip6.fr/pub/TeX/ CTAN/support/auctex et galement disponible sous la forme dun paquet Debian.

6.2.2

Citation

Une fois le (ou les) chier(s) de bibliographie constitu(s), on peut faire rfrence aux entres par lintermdiaire des clefs, avec la commande \cite : \cite{clef} La commande \cite a pour eet :

6.2 Bibliographie 1. dinsrer un renvoi dont la forme dpend du style choisi ([2], [Loz95],...), 2. dajouter larticle cit dans la bibliographie de votre document.
Un articleau sens large du termenapparat dans la bibliographie que sil fait lobjet dune commande \cite. Pour quun article apparaisse sans pour autant tre cit, il faut utiliser la commande \nocite{clef}. Larticle rfrenc par clef sera alors insr dans la bibliographie. Par ailleurs, la commande \nocite{*} insre toutes les entres de votre chier de biblio.

87

Avant de passer ltape de gnration proprement dite, il est ncessaire dinsrer A la n du document L TEX un appel la commande : \bibliographystyle pour stipuler un style de bibliographie, puis un appel la commande : \bibliography pour insrer eectivement la bibliographie. Pour le style : \bibliographystyle{style}
A Les trois styles prdnis4 de L TEX sont :

plain les citations sont sous la forme [2], et la bibliographie est classe par auteur, unsrt idem mais pas de tri, les documents apparaissent dans lordre o ils sont cits ; trs utilis pour les actes de confrences. alpha les citations sont sous la forme auteurs abrgs + anne . Il faut ensuite spcier quels sont les chiers contenant les informations bibliographiques sur lesquelles pointent les commandes \cite de votre document : \bibliography{chier1,chier2,...} indiquera BibTEX de considrer les chiers fichier1.bib, fichier2.bib,... lors de son traitement.

6.2.3

Gnration
A 1. eectuer une premire compilation avec L TEX pour que le chier auxiliaire doc.aux contienne les informations de citations :

Pour gnrer la bibliographie :

doc.tex
A L TEX

doc.aux

Cherchez sur les sites CTAN, dans le rpertoire biblio/bibtex/contrib il y a plusieurs dizaines dautres styles disponibles.

88

Documents scientiques 2. lancer BibTEX pour gnrer la bibliographie dans le chier doc.bbl : bibtex doc

fichier1.bib

doc.bbl

doc.aux

BibTEX

A 3. eectuer une deuxime compilation avec L TEX pour insrer la bibliographie :

doc.tex
A L TEX

doc.bbl

doc.aux

4. rsoudre les rfrences croises par une troisime compilation. Si vous tes curieux, vous verrez que le chier doc.bbl contient un environnement thebibliography prt lemploi5 et que le chier doc.blg est lquivalent du .log : un chier log contenant les ventuelles erreurs ou warnings de la dernire utilisation de BibTEX.
Le programme BibTEX est sensible la variable denvironnment BIBINPUTS. Il peut donc parfois tre ncessaire dajouter la ligne : export BIBINPUTS=$HOME/LaTeX/biblio//: dans votre .bash_profile pour que BibTEX cherche vos chiers de bibliographie dans le rpertoire $HOME/LaTeX/biblio (cest un exemple).

6.3

Index
La gnration dindex sappuie sur deux concepts :
A 1. lajout de commandes \index dans le document L TEX pour ajouter des entres dans lindex ;

2. lutilisation du programme makeindex qui va trier et mettre en page lindex proprement dit. Cest la commande \printindex qui insre lindex dans le document. Cette commande est analogue la commande \tableofcontents.
5

Cest--dire celui que vous auriez d vous palucher si vous nutilisiez pas BibTEX.

6.3 Index

89

6.3.1

Ce quil faut faire

Voici un petit mmo pour faire un index. 1. rajouter deux commandes dans le document matre : \makeindex \begin{document} ... le document ... \printindex \end{document} 2. ajouter une entre dans lindex : \index{bidule} insre bidule dans lindex
A pour dire L TEX de gnrer les index

Pour rellement linsrer dans le document

3. pour gnrer lindex pour le document doc.tex, on lancera successivement les trois commandes suivantes : latex doc makeindex doc latex doc

6.3.2

Dtail du fonctionnement

La premire compilation du document doc.tex ( la condition que la squence de contrle \makeindex soit prsente dans son prambule) gnre un chier doc.idx contenant les entres de lindex en vrac :
doc.tex
A L TEX

doc.idx

On utilise ensuite makeindex pour classer et supprimer les doublons dans ce chier doc.idx, le rsultat est mis dans doc.ind ; une trace de lexcution est stocke dans doc.ilg :
doc.idx makeindex doc.ind doc.ilg

makeindex est bavard sur le terminal ; voici ce quil dit pour gnrer lindex 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.

90

Documents scientiques

Il faut donc veiller aux ventuels rejets ou avertissements (warnings ) et se reporter A au chier log doc.ilg le cas chant. La deuxime compilation avec L TEX permet dinsrer lindex format (chier doc.ind) lendroit spci par la commande \printindex dans doc.tex :
doc.tex
A L TEX

doc.ind

Lutilitaire makeindex reconnat loption -s qui permet de spcier un style pour lindex. Ces stylesdnis dans des chiers portant lextension .istchangent la mise en page de lindex. On utilise un chier style de la manire suivante : makeindex -s chier-style document-maitre Cherchez sur votre distribution quels sont les chiers de styles et testez-les.

6.3.3

Diffrents types dentre dindex

On peut utiliser des entres un peu plus sophistiques que la forme vue jusqu maintenant (<mot> et <page>). Il existe au moins trois autres entres : 1. les entres hirarchiques : \index{bidule!chouette} insre une sous-entre chouette bidule 2. les entres cheval sur plusieurs pages : \index{bidule|(} \index{bidule|)} gnre une entre de type : bidule ij 3. les entres symboliques : \index{alpha@\alpha} ajoute la lettre grecque et la classe lentre alpha. De mme : \index{eplucher@plucher} ajoute le mot plucher et le classe parmi les mots commenant par e Cette dernire forme peut galement tre utilise pour mettre dans lindex une entre avec une mise en forme particulire, par exemple : \index{bonjour@\textbf{bonjour}} ajoute bonjour (bonjour en gras) dans lindex, et classe cette entre bonjour. Enn on peut vouloir acher les numros de pages avec une mise en vidence particulire. On utilisera alors la forme : \index{entre|commande de mise en forme} la page i la page j

6.4 Diviser votre document Par exemple : \index{bidule|textbf}

91

achera le numro de la page o apparat bidule en gras (notez quil ny a pas de caractre \ pour la commande de mise en forme).

6.3.4

Glossaire

On a parfois besoin de prciser la signication de certains termes dun document ; la partie dun manuel qui regroupe lexplication de ces termes sappelle un glossaire. Pour en gnrer, il faut procder de manire analogue un index avec quelques petites variations prsentes au paragraphe 11.6 page 181.

6.4

Diviser votre document


Lorsquon manipule un gros document, on peut le diviser naturellement en chapitres ou parties. Il est alors conseill de crer un document matre charg dinclure ces chapitres ou parties. Le document matre a lallure 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 n de document \bibliographstyle{plain} \bibliography{machin,bidule,truc} \end{document} Lintrt des commandes \include rside dans le fait quelles vous permettent de travailler sur un nombre rduit de chapitres la fois, tout en gardant lintgrit du document. On utilise pour cela la commande \includeonly : \includeonly{preface,savoir} dans le prambule. Ceci permet de compiler uniquement la prface (contenue dans le chier preface.tex) et le chapitre saisi dans le document savoir.tex.
Chaque commande \include commence une nouvelle page. Et il ny 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). Pour insrer un chier sans saut de page, utilisez la commande \input. Par contre, vous ne bncierez pas du mcanisme de document matre.

Enn, il est utile de noter que les commandes \frontmatter, \mainmatter et \backmatter ne sont pas indispensables, mais permettent automatiquement dadopter une numrotation en roman pour les pages introductives et dautres petites choses (elles ne sont cependant accessibles que dans la classe book).

7
Sommaire 7.1 7.2 7.3 7.4 Courrier et fax

Des documents en franais

Le problme des lettres accentues


A Rdiger un document en franais avec L TEX

Le package babel et la typographie

Lhomme rpondit : cest la femme que tu as mise auprs de moi qui ma donn de larbre, et jai mang ! La Gense Gn 3 12.

L connatre. Ces rgles ne sont pas proprement parler des directives dont on ne

a composition dun document en franais suit des rgles quil est bon de

peut se soustraire, il sagit la plupart du temps de rgles dusage, quil est conseill de suivre pour rendre un document lisible ne perturbant pas le lecteur. Ces conseils dusage donnent gnralement un aspect srieux voire professionnel un document. Il existe plusieurs ouvrages traitant de la typographie franaise, je citerais ici le lexique de limprimerie nationale [7] et le manuel dYves Peyrousseaux [13]. Ce chapitre contient des informations sommaires sur la manire dont sont codes A les fontes dans L TEX pour obtenir les accents de la langue franaise. Suivent quelques rgles de typographie et une prsentation du package babel permettant de simplier la saisie de documents en franais. Ce chapitre se termine sur une prsentation dune classe de document lettre ayant pour but de composer des lettres et des fax.

7.1

Le problme des lettres accentues


Il y a quelques annes, lorsque TEX a t conu, les fontes utilises ne comportaient pas de lettres accentues. Chacune de ces fontes tait code laide de 7 bits par caractre, et donc contenait quelques 128 caractres codables. Provenant des tatsUnis, ces 128 caractres ne comportaient videmment pas les caractres accentus de la langue franaise. Cest la raison pour laquelle, pendant un long moment de A valeureux utilisateurs francophones de TEX et de L TEX taient contraints de saisir leur document en fran\c{c}ais avec des caract{\e}res assez p{\e}nibles {\a} taper. Aujourdhui, ces petits dsagrments ne sont plus quun mauvais souvenir. Depuis 1990 un codage des fontes tenant compte de caractres accentus de plusieurs langues a t adopt et porte le nom de Cork encoding ou de codage T1. Le tableau 7.1a page 95 donne titre indicatif les caractres correspondants chaque valeur. Dans 93

94

Des documents en franais

ces tableaux, les cases sont numrotes partir de 0, les valeurs augmentent de droite gauche et de haut en bas. On peut remarquer que le codage des fontes est dirent de celui des caractres ; le tableau 7.1b montre le codage dit iso-latin1 qui fait maintenant oce de standard pour le codage des caractres de la plupart des langues europennes. Les packages A L TEX contiennent donc une opration de traduction du codage des caractres (par ex. iso-latin1) en codage des fontes (par ex: codage T1).

7.2

A Rdiger un document en franais avec L TEX


A Il existe deux packages L TEX permettant de franciser un document : le package french et le package babel. Pour des raisons tout fait partisanes, nous nous intresserons au deuxime. On active le package babel comme suit :

\usepackage[francais]{babel} Cet ordre dans le prambule met en route cinq fonctionnalits qui sont : Csure : babel gre la csure des paragraphes en tenant compte de la langue franaise1 et plus particulirement des mots accentus du franais ; Typographie : les rgles de typographie franaise sont appliques notamment en ce qui concerne les guillemets et les signes de ponctuation ; Mise en page : il sagit essentiellement de rintroduire lindentation du dbut de paragraphe qui suit un titre de section2 , changement du symbole et despacement pour les environnements de types listes, ... Traduction : tous les mots susceptibles dtre traduits ( Chapitre , Table des matires , etc.) sont traduits en franais ; Macros : un ensemble de macros sont disponibles avec le package babel, ces macros permettent de saisir correctement certaines constructions courantes en franais, telles que no , 1er, 2o , 37 C, ...

7.3

Le package babel et la typographie


Lensemble des rgles lies la typographie franaise dpasse largement le cadre de ce chapitre. Heureusement le package babel permet pratiquement de les utiliser sans les connatre. Il sut simplement de respecter quelques rgles de saisie du A document L TEX pour que la composition respecte les rgles de typographie les plus courantes. Ainsi, titre dexemple, babel insrera un quart de cadratin inscable avant le point virgule ; ce qui est une pratique courante en typographie franaise.
Si cette insertion automatique ne vous convenait pas, il est possible dappeler la commande \NoAutoSpaceBeforeFDP. Vous serez alors responsable de linsertion ou non de lespace avant les signes de ponctuations.
1 2

On ne coupe pas de la mme manire les mots anglais et les mots franais. Ce qui nest pas le cas en typographie anglaise.

7.3 Le package babel et la typographie

95

` 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

& 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) NUL DLE SP 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

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

& 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 o

+ ; K [ k {

, < L \ l |

= M ] m }

. > N n

/ ? O _ o
DEL

(b) Caractres iso-latin1

Table 7.1: Codage des fontes T1 et codage de caractres Iso-latin1. Le tableau du bas montre un codage de caractres (incluant les lettres accentues de plusieurs langues europennes) aujourdhui trs rpandu : le codage iso-latin1.

96

Des documents en franais

7.3.1

Ponctuation

Les rgles connatre pour la ponctuation peuvent se rsumer aux deux propositions suivantes : 1. un espace doit apparatre avant et aprs tous les signes de ponctuation doubles, cest--dire les signes ; : ! ? et 2. on saisit un espace aprs (et pas avant) les signes de ponctuation simples, cest--dire les signes . , ( et ) Le respect de cette saisie permet babel dinsrer les espaces ncessaires avant et aprs les signes de ponctuation. ce sujet, il est intressant de remarquer que les espaces avant les points dinterrogation et dexclamation sont des espaces nes :
fouilla ! et \selectlanguage{english} fouilla !\selectlanguage{french} fouilla ! et fouilla !
7.1 7.2

7.3.2

L-a, e dans la, t-i, t-i, a !

Je cite Serge Gainsbourg en guise de titre de ce paragraphe sur les deux jolies ligatures de la langue franaise : et . Au sujet de la saisie de ces ligatures, on peut au choix : saisir \oe et \ae (\AE et \OE en majuscules) :
L\ae titia va au Sacr-C\oe ur. Ltitia va au Sacr-Cur.

Ou saisir directement sur le clavier sil le permet. titre indicatif, AltGr+a donne le dans la sur un systme Linux digne de ce nom. Et pour une histoire complique le dans lo ne se trouvant pas dans la norme iso-latin1, mon clavier nest pas en mesure de fournir la ligature .

7.3.3

Outils du package babel

Un grand nombre de petites choses restent toujours trs oues quant la manire correcte de les typographier . Je pense toutes ces abrviations courantes telles que : Monsieur, Madame, premier, deuxime, primo, etc. Heureusement le package babel rpond certaines de nos interrogations. 1\ier 3\ieme 37\degres{} C \primo, \secundo, \tertio, \quarto \no 4 \No 4 Lettrine 1er 3e 37 C 1o , 2o , 3o , 4o no 4 No 4

O paragraphe. Le package french de Bernard Gaulle et le package lettrine d-

n trouve dans certains documents des lettrines comme celle en dbut de ce

nissent une telle commande. Nous vous proposons dans la deuxime partie de ce A document un exemple de code L TEX permettant de gnrer une telle commande.

7.3 Le package babel et la typographie Sommaire

97

Dans un document franais, on insre gnralement la table des matires en n de document et le sommaire, qui est une table des matires rsume, en dbut de document. Le package french propose la commande \sommaire qui permet comme son nom lindique un sommaire dans le document. Encore une fois, nous vous proposons dans la deuxime partie de ce document dtudier une manire de gnrer un tel sommaire.

7.3.4

Recommandations dusage

Les recommandations qui suivent ne sont pas proprement parler des fonctionnalits du package babel ; ces recommandations sont des conseils que vous pourrez retrouver dans des ouvrages ayant trait la typographie : les guillemets la franaise se saisissent soit avec et si votre clavier permet de les gnrer, soit avec les signes infrieurs et suprieurs : << et >>, soit avec les commandes \og et \fg :
Quon devra \og dans ce cas\fg{} saisir ainsi. Quon devra dans ce cas saisir ainsi.
7.3

Les guillemets langlaise se saisissent avec les quote et backquote : et ; dans tous les cas, utiliser " pour les guillemets nest pas recommand ; les locutions latines se saisissent a priori en italique ; on abrge : et ctera Monsieur Messieurs Madame Mademoiselle kilomtre(s) kilogramme(s) avec avec avec avec avec avec avec etc. M.3 MM. M\up{me} M\up{lle} km kg etc. et non pas etc... M. Machin MM. Machin et Bidule Mme Machin Mlle Machin 25 km (pas de s) 25 kg

le sparateur de partie dcimale et partie entire est la virgule en franais, et le point en anglais. On doit donc crire : 123, 54. on insre un quart de cadratin tous les milliers, et millimes :
\nombre{12345678,23434} 12345678,23434
7.4

il est dusage dcrire 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 rsultat escompt ;
3

Et non pas Mr qui est labrviation anglaise de mister.

98

Des documents en franais on crit les sigles sans point et en lettre capitales (RATP, SNCF, ENISE). Certains sigles qui se prononcent bien peuvent mme scrire en minuscules : Assedic, Inserm, etc.

7.3.5

Le cas de leuro

Le symbole de leuro peut tre produit laide de la commande \texteuro du package textcomp. On obtient alors le caractre : ou en utilisant la fonte sans srif. Une autre approche consiste utiliser le package eurosym fournissant les commandes : \euro{} : e \EUR{35} : 35 e

7.3.6

Au sujet des majuscules

En dehors des cas bien connus o lon doit mettre ou ne pas mettre de majuscule (il faut en mettre en dbut de phrase, ne pas en mettre pour commencer une parenthse, selon le contexte aprs les deux points, etc.), voici trois points importants au sujet des majuscules (capitales comme disent les typographes). Tout dabord les majuscules doivent tre accentues (je ne mnerve pas, jexplique) lire ce sujet ce que dit Yves Perrousseaux dans son manuel. Il y est expliqu que les accents prsents sur les majuscules depuis le xvie sicle ont disparu avec larrive des machines crire et de composition typographique dorigine anglosaxonne. On peut galement trouver dans tous les bons ouvrages de typographie des exemples de phrases ambigus lorsque les accents ne sont pas mis. Ensuite, dans un titre, on ne mettra une majuscule qu la premire lettre (contrairement langlais o on met une majuscule chaque mot). Enn, il faut insister sur le fait que lusage des majuscules est un domaine dont les nuances sont assez subtiles saisir. Notons ici quelques points pour apprhender ces rgles : on crit matre de confrences (donc sans majuscule) ; luniversit Jean Monnet (pas de majuscule universit) ; mais lUniversit lorsquon parle de la structure en tant quentit propre ; le ministre de lIntrieur ; lacadmie de Lyon ; lAssemble nationale et le Snat parce quil sagit dorganismes uniques ; les Espagnols (pour le peuple) et le franais (pour la langue) Je ne rsiste pas lenvie de citer Jacques Andr :

7.4 Courrier et fax


[...] Voici typiquement le genre de phrase que lon trouve dans notre rapport dactivit : Jean Transent, Matre de Confrence en Analyse de Donnes lUniversit de Nancy(Bien connue de la Communaut Scientique Internationale) a donn, lors du sminaire de Biologie Informatique de Mardi 23 Juin, une confrence sur les Applications de lIntelligence Articielle lemploi de la Tlvision Haute Dnition en Robotique Avance. Dans cette phrase, il y a 23 majuscules. Il ne devrait y en avoir que trois (Jean, Transent et Nancy). si si...

99

Jacques Andr [2]

et Yves Perrouseaux :
Les dnominations dune dignit, dune charge, dun grade ou dune fonction sont des noms communs : ... le prsident du conseil gnral, etc.
Cest un nom commun, au mme titre que le concierge ou les femmes de mnage du conseil gnral.

Yves Perrouseaux [13]

7.4

Courrier et fax
A Le noyau de L TEX comprend une classe de document pour rdiger des lettres. Cependant cette classe nest pas trs souple et mal adapte au franais4 , Pour les lettres franaises, nous conseillons lutilisation de la classe lettre de Denis Megvand de lobservatoire de Genve. 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 entits que lon peut dnir dans la classe lettre : Adresse de lexpditeur en utilisant la commande \address ; Ville originaire \lieu permet dcrire en haut droite, lendroit do lon crit la lettre ; Tlphone et fax sont prciss avec les commandes \telephone et \fax respectivement ; Signature laide de la commande \signature ;
4

Apprciation personnelle sur la version 1.2z de la classe letter du 9 fvrier 1999.

100
\documentclass[12pt]{lettre} \usepackage[francais]{babel} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \begin{document} \begin{letter}{% M\up{me} \textsc{Destinataire}\\ 4, rue de Square\\ 65536 Carr } \address{% M. Expditeur\\ 27, rue du cube parfait\\ 19683 Huit} \lieu{Huit sur Loire} \telephone{1234567890} \fax{0987654321} \signature{Tar \textsc{Tempion}} \conc{au sujet du bidule}
P.j.

Des documents en franais

M. Expditeur 27, rue du cube parfait 19683 Huit Tl. 1234567890 Fax : 0987654321

Huit sur Loire, le 1er mars 2011

Mme Destinataire 4, rue de Square 65536 Carr

Objet : au sujet du bidule

Madame, ... Le corps de la lettre ... Veuillez agrer, madame, lexpression de mes salutations distingues

Tar Tempion Deux ou trois choses.

\opening{Madame,} ... Le corps de la lettre ... \closing{Veuillez agrer, madame, lexpression de mes salutations distingues} \encl{Deux ou trois choses.} \end{letter} \end{document}

Figure 7.1: Ossature dun document bas sur la classe lettre. Objet de la lettre avec la commande \conc (pour concernant) ; Pices jointes grce la commande \encl (de langlais enclosed )

7.4.2

Structure dun document bas sur la classe lettre

A Nous donnons la gure 7.1 l ossature dun document L TEX bas sur la classe lettre. Les commandes \opening et \closing sont obligatoires et ont respectivement pour objet dintroduire les formules de politesse de dbut et de n de lettre.

7.4.3

Fichiers instituts

La classe lettre est livre avec un chier default.ins qui dnit par dfaut A ladresse de lobservatoire de Genve. Ladministrateur du systme L TEX que vous utilisez devra donc adapter ce chier votre organisation. On peut cependant dnir son propre chier institut et linclure dans ses lettres. Lorsquon veut envoyer des lettres titre personnel5 , il est en eet plus
5

Ce qui na pas vritablement lieu dtre puisque vous tes tout de mme au boulot pour bosser

7.4 Courrier et fax

101

logique dutiliser ses propres coordonnes ; on pourra alors dnir un chier nomm moi.ins contenant par exemple : \address{% M. Expditeur\\ 27, rue du cube parfait\\ 19683 Huit} \lieu{Huit sur Loire} \telephone{1234567890} \fax{0987654321} \signature{Tar \textsc{Tempion}} Il sut alors de faire apppel dans le prambule du document, la commande \institut qui cherche un chier portant lextension .ins : \institut{moi}

7.4.4

Fax

La classe lettre contient galement un environnement pour prparer un fax avec un en-tte correspondant votre organisation. Le principe gnral et les mots cls sont les mmes condition dutiliser lenvironnement telefax en lieu et place de lenvironnement letter. Notez quon peut ici aussi utiliser les chiers instituts . Enn la commande \addpages permet de grer le cas o vous joignez un document dj imprim votre fax. Par exemple si vous avez envoyer n pages votre fax initial, il faudra ajouter la commande \addpages{n}. La gure 7.2 page suivante montre le document minimal pour crer un fax.

et non pas pour envoyer du courrier personnel.

102

Des documents en franais

\documentclass[12pt]{lettre} \usepackage[latin1]{inputenc} \usepackage[french]{babel} \usepackage[T1]{fontenc} \begin{document}

Institut du pixel 128 rue du niveau de gris 65535 rode sur Loire

TLFAX

TLPHONE : 987.64.20

TLFAX : 987.75.31

\begin{telefax}{01234567}{% numro 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} \name{Ren Kspditeur} \conc{la bazar} \opening{Cher Monsieur,}

M. le destinataire 33 rue du fax 98000 CCIT groupe 3 Ren Kspditeur

Tlcopie : 01234567

De :

Nombre de pages :

En cas de mauvaise transmission, appelez s.v.p. loprateur tlfax


Sassonne-le-Creux, le 1er mars 2011

Objet : la bazar

Cher Monsieur, ... patila patala bientt.

Ren Kspditeur

... patila patala \closing{ bientt.} \end{telefax} \end{document}

Figure 7.2: Ossature dun document fax

8
Sommaire 8.1 8.2 8.3 Livres et autres manuels Local EffTp, Oube et niouses

vous de jouer !

Tu ne coucheras pas avec un homme comme on couche avec une femme. Cest une abomination. Le Lvitique Lv 18 22.

S
8.1

A il est vrai que L TEX permet de faire peu prs tout ce que lon veut, il est souvent dicile de savoir comment le lui demander. Nous tenterons ici de vous donner quelques points dentre pour chercher plus de documentation sur le monstre.

Livres et autres manuels


A La documentation standard concernant TEX et L TEX est constitue des ouvrages suivants : A L TEX: A Document Preparation System de L. Lamport [10] ; A The L TEX Companion [6] de M. Goossens, F. Mittelbach et A. Samarin A The L TEX Graphics Companion [5] des mmes auteurs ;

The TEXbook [9] de Knuth ;


A La FAQ franaise de L TEX disponible lurl suivante :

http://www.grappa.univ-lille3.fr/FAQ-LaTeX. On y trouve aujourdhui environ 70 questions rpondant essentiellement des problmes classiques de mise en page. Ce document est actuellement maintenu par B. Bayard Deux ouvrages dinitiation en franais sont parus rcemment:
A L TEX de D. Bitouz et J.C. Charpentier [4] ; A L TEX pour limpatient de C. Chevalier et al. [3].

103

104

vous de jouer !

A Les documents en ligne rfrencs par le L TEX navigator (cf. plus bas) traitant A de L TEX 2 en franais, sont les suivants :

Apprends LaTeX ! de M. Baudoin ;


A Joli manuel pour L TEX 2 de B. Bayart A Aide mmoire pour L TEX de C. Willems et F. Geraerds ; A Guide dintroduction franais au traitement de texte L TEX crit par F. Geraerds ; A Une courte (?) introduction a L TEX 2 de T. Oetiker, H. Partl, I. Hyna, E. Schlegl, traduit de lallemand.

Ces documents sont disponibles au format dvi et/ou PostScript et parfois pdf.

8.2

Local
Avant de vous jeter sur ce pauvre rseau international, sachez que si vous avez la chance dutiliser la distribution teTEX, vous trouverez sous larborescence TEX (/usr/share/texmf/doc1 ), un rpertoire doc contenant un certain nombre de documentations intressantes : latex : la doc de toutes les extensions installes au format dvi ; fonts : des docs sur les fontes disponibles ; ... Dautre part, vous trouverez dans le menu aide dEmacs un guide de rfrence au format info trs pratique ; avec notamment la syntaxe de toutes les commandes A et environnements standard de L TEX. Enn, nhsitez pas utiliser les commandes de recherche de chiers disponibles sur votre systme pour essayer de trouver des informations sur un package ou une fonte partir de son nom.

8.3

EffTp, Oube et niouses


Comme pour la plupart des logiciels gratuits, on trouve une foultitude dinformations 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 copie sur plusieurs sites franais, donc inutile daller encombrer les quelques lignes qui traversent locan, vous trouverez votre bonheur dans : ftp://ftp.lip6.fr/pub/TeX/CTAN ma connaissance un serveur franais trs complet, avec des miroirs de beaucoup de sites.
1

Ou quelque chose dapprochant suivant linstallation eectue.

8.3 EffTp, Oube et niouses ftp://ftp.inria.fr/pub/TeX/CTAN une autre rplique CTAN.

105

Larborescence du CTAN est la mme quel que soit le site, et on notera entre autres :
A macros/latex la racine de L TEX et ses extensions,

graphics la racine de ce qui touche de prs ou de loin au graphisme,


A support les logiciels qui tournent autour de L TEX : correcteurs orthographiques, convertisseurs, diteurs,...

...

8.3.2

Sites Web

Encore une fois, ne cherchez pas plus loin : http://tex.loria.fr Mme si ce site ne semble plus tre maintenu, il contient de trs nombreux liens vers des documents de rfrence. On pourra galement se rfrer au site : http://www.latex-project.org
A pour avoir des infos sur les modications du format L TEX 2 et de lavancement du A projet L TEX3. Notez toutefois que ces sites sont en langue anglaise.

8.3.3

Les newsgroups
comp.text.tex environ 150 messages par jour ! Mais on peut y apprendre des choses, et fr.comp.text.tex beaucoup moins de transit et en franais.

A Il existent deux groupes de discussion sur TEX et L TEX :

Ces groupes de discussion constituent une source dinformation extraordinaire si on veut bien faire leort de trier un peu les messages parfois un peu trop nombreux. Vous pouvez en dernier recours c.--d., aprs vous tre document poser une question sur le groupe. Si vous tes clair et concis, la rponse ne se fait en gnral gure attendre.

vous de jouer !

II
Tout ce que vous avez toujours voulu savoir sur (Tout ce que vous avez toujours voulu savoir A sur L TEX sans jamais oser le demander) sans jamais oser le demander

Introduction
Que tes pieds sont beaux dans ta chaussure, lle de prince! Les contours de ta hanche sont comme des colliers, uvre des mains dun 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.

C ce que vous avez toujours voulu savoir sur LTEX sans jamais oser le demander)
A

ette partie sintitule Tout ce que vous avez toujours voulu savoir sur (Tout

sans jamais oser le demander . Elle a pour but dexpliquer comment les chapitres prcdents ont t produits, et donc prsente les direntes commandes et environnements qui ont t dnis pour gnrer le manuel que vous avez sous les yeux. Mais son objectif est plus large puisque nous esprons fournir ici au courageux lecteur, une base solide pour la cration de ses propres styles...

Lide a germ dans mon esprit dcrire les chapitres suivants aprs avoir eu plusieurs questions de lecteurs me demandant sils pouvaient rutiliser tel ou tel aspect du style de ce document. Le chantier que reprsente la rdaction des pages qui suivent a t pour moi titanesque dans la mesure o jai d prsenter des aspects A de L TEX qui ne font plus partie des connaissances de base et qui sont donc ce titre plus diciles expliquer3 . Enn et non des moindres ce qui reste gnralement de lordre du bazar priv a d ici tre rationnalis pour tre prsentable. Ce qui na pas t une mince aaire. Jai voulu dans cette partie prsenter la dmarche que jai adopte pour gnrer ce document. Je ne prtends pas quil sagit du seul moyen possible pour obtenir la mise en page que vous avez sous les yeux. Par exemple, certaines parties de ce document auraient pu tre produites laide de paquets existants fournissant des fonctionnalits analogues ou mme meilleures que celles des outils dvelopps ici. Lide sous-jacente cette partie est donc bien de guider lutilisateur curieux vers A des pistes dexploration de L TEX, de montrer comment on peut laide de quelques outils, mettre au point des commandes originales correspondant exactement ses propres besoins. Ces pistes sont susament gnrales pour tre suivies telles quelles ou adaptes pour des cas similaires ou non. Il sagit donc de dcouvrir les grands A classiques des fonctionnalits internes de L TEX et davoir la satisfaction sans pour autant prner la r-invention de la roue de crer ses propres outils
A Jai tent, autant que possible, de prsenter des commandes nutilisant que L TEX. Il a cependant parfois t ncessaire dutiliser certaines des fonctionnalits de TEX ce qui a donn loccasion de les prsenter ici. Cette partie se compose donc de trois chapitres :

Outillage ncessaire qui prsente les commandes connatre permettant de squiper pour la suite. On y trouve par exemple quelques pistes sur la structure des
Les pigraphes de cette partie sont toutes tires du Cantique des cantiques et nont jamais de lien avec le titre du chapitre. 3 Dautant plus, je lcris en petit, que je ne les matrise pas du tout.
2

109

110
A chiers dune distribution L TEX, des ides pour changer les fontes dun document, et une prsentation dtaille de la cration de nouveaux environnements bass sur les listes ;

Cosmtique qui prsente les outils qui ont t mis en uvre pour changer lallure des titres, des en-ttes et pieds de page, des marges, et quelques autres petites choses ; De nouveaux jouets qui est loccasion dexpliquer la cration des onglets de ce manuel, du glossaire, des exemples, du sommaire, des lettrines, des notas, et de quelques autres bricoles.
Certaines explications donnes dans les chapitres qui suivent sont tellement fumeuses que mme lauteur ne les comprend pas. Certaines solutions apportes aux problmes ne sont que partielles. Enn, certaines choses restent mystrieuses pour votre serviteur ; dans ces situations, un panneau dos dne est insr dans le paragraphe.

9
Sommaire 9.1 9.2 9.3 9.4 9.5 9.6 Hercule Poirot Outils de bas niveaux Structures de contrle et tests Fontes Listes et nouveaux environnements Des environnements qui mettent en bote

Outillage ncessaire

Que tu es belle, que tu es agrable, mon amour, au milieu des dlices ! Ta taille ressemble au palmier, Et tes seins des grappes. Le Cantique des cantiques Ct 7 7.

D commandes et des environnements plus complexes que ceux exposs au cha-

ans ce chapitre nous prsentons les outils pr requis permettant de crer des

pitre 4. Nous protons dailleurs de cette introduction pour dire que le chapitre 4 auquel nous faisons rfrence ici doit tre correctement digr pour commencer la lecture de cette partie. Quelques mcanismes autour des fontes sont galement prA sents ainsi que quelques pistes pour fouiller dans les sources de L TEX.

9.1

Hercule Poirot
Fouiller dans les chiers
A Tout dabord, pour personnaliser un document crit avec L TEX, il est ncessaire de connatre la manire dont sont organiss les chiers qui composent la distribution du A systme TEX/L TEX 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 le rpertoire :

9.1.1

/usr/share/texmf-texlive/doc/latex/ Ce rpertoire contient dautres sous-rpertoires, gnralement un par package, dont la documentation est sous la forme dun chier dvi ou PostScript. Dans certaines situations, il est ncessaire daller scruter le source des packages. Dans la distribution teTEX ces sources se trouvent dans : 111

112 /usr/share/texmf-texlive/tex/latex

Outillage ncessaire

et l aussi, on trouvera gnralement un rpertoire par package, contenant les sources dans un chier au format texte, portant lextension .sty et ventuellement des A chiers connexes. Enn, pour comprendre le comportement par dfaut de L TEX, indpendamment des packages que lon peut inclure, on pourra avoir recours au A source de L TEX dans : /usr/share/texmf-texlive/tex/latex/base/latex.ltx et aux sources des classes de documents dans : /usr/share/texmf-texlive/tex/latex/base/book.cls pour la classe book.

9.1.2

Examiner les macros

Un moyen pratique de trouver la dnition dune commande consiste le demander A L TEX lors dune session interactive. On lance directement dans un terminal de commande du systme dexploitation : latex Mon systme me rpond froidement : This is e-TeXk, Version 3.14159-2.1 (Web2C 7.4.5) %&-line parsing enabled. ** linvite de ce prompt spartiate (**) qui est le cri du TEX tout nu , je rponds A bravement &latex pour demander charger le format L TEX. La rponse ne tarde pas : **&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 A document L TEX interactivement. Ce qui a certes peu dintrt dans labsolu, mais peut savrer trs utile pour obtenir la dnition dune commande avec la syntaxe. On pourra par exemple taper : *\showcommande pour avoir la dnition de commande. Par exemple : *\show\mbox > \mbox=\long macro: #1->\leavevmode \hbox {#1}. <*> \show\mbox

cest la dnition

9.2 Outils de bas niveaux

113

nous montre la dnition de la commande \mbox. On remarque que cette commande lorsquelle est appele, se transforme en un appel \leavevmode et \hbox. Notre esprit de curiosit nous pousse donc crire : *\show\hbox > \hbox=\hbox. <*> \show\hbox cest une primitive

On constate ici que \hbox nest pas dnie partir dune autre commande. Il sagit donc de ce que TEX appelle une primitive. Lexploration peut tre poursuivie : *\show\leavevmode > \leavevmode=macro: ->\unhbox \voidb@x . <*> \show\leavevmode et ainsi de suite...

dnition de \leavevmode

9.2

Outils de bas niveaux


Pour qui sont ces pourcents ?
A Vous avez peut-tre dj remarqu que le code L TEX contient parfois le caractre % en n de ligne. La prsence de ce % sexplique par le fait quun saut de ligne dans le code insre un espace dans le texte. Ainsi la commande :

9.2.1

\newcommand{\beurk}{bidule} peut scrire pour des raisons de lisibilit :


\newcommand{\beurk}{ bidule } ==(\beurk)==

9.1

==( bidule )==

On constate donc quil y a deux espaces non dsirs autour du mot bidule . On peut viter cela en crivant :
\newcommand{\ahhh}{% bidule% } ==(\ahhh)==

Il existe une autre situation o les espaces peuvent simmiscer pernicieusement dans le texte. Dnissons un environnement : \newenvironment{hyperimportant}{% \bfseries\itshape}{% \upshape\mdseries}

9.2

==(bidule)==

114
Il est impratif \begin{hyperimportant} de multiplier les sauvegardes \end{hyperimportant} de vos documents personnels

Outillage ncessaire

Il est impratif de multiplier les sauvegardes de vos documents personnels

Si vous regardez attentivement le texte produit, vous noterez quil y a deux espaces de chaque ct de la squence mise en italique gras de ... sauvegardes : deux espaces avant de introduits par le saut de ligne la n de est impratif et celui la n de \begin{hyperimportant} ; deux espaces aprs 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 impratif\begin{hyperimportant} de multiplier les sauvegardes\end{hyperimportant} de vos documents personnels

9.3 9.4 9.5

Il est impratif de multiplier les sauvegardes de vos documents personnels

Pour viter davoir se soucier de ce genre de problme on a gnralement recours deux commandes permettant de supprimer ces espaces doubles. On fait appel, pour liminer ceux situs avant la squence \ignorespaces et pour ceux situs aprs, la commande \unskip. La commande \ignorespaces Cette commande procde lexpansion des commandes qui suivent en ignorant tous les espaces qui la suivent :

\newcommand{\truc}{ }\newcommand{\bidule}{ } a\truc\bidule b\par a\ignorespaces\truc\bidule b a b ab

Dans lexemple ci-dessus, les commandes \truc et \bidule ont pour seul but de produire un espace lorsquelles seront appeles. Par consquent, la ligne : a\truc\bidule b produira a{}b cest--dire les deux lettres a et b spares par deux espaces. Lappel avec la commande \ignorespaces ignore comme son nom lindique les deux espaces produits par les commandes \truc et \bidule. On peut donc utiliser cette commande dans notre exemple prcdent : \newenvironment{hyperimportant}{% \bfseries\itshape\ignorespaces}{\upshape\mdseries} qui devrait supprimer un espace :

9.2 Outils de bas niveaux


Il est impratif \begin{hyperimportant} de multiplier les sauvegardes \end{hyperimportant} de vos documents personnels.

115

Il est impratif de multiplier les sauvegardes de vos documents personnels.

9.6

9
La commande \unskip

Si vous tes attentif, vous noterez que deux espaces entre sauvegardes et de rsistent nos assauts. Cest l quintervient la primitive TEX \unskip qui enlve le dernier espace insr :

116
\newcommand{\truc}{ }\newcommand{\bidule}{ } a\truc\bidule b\par a\truc\bidule\unskip b a b ab
9.7

Outillage ncessaire

Finalement la dnition correcte de notre environnement est la suivante : \newenvironment{hyperimportant}{% \bfseries\itshape\ignorespaces}{\unskip\upshape\mdseries} qui devrait supprimer tous les espaces indsirables :
Il est impratif \begin{hyperimportant} de multiplier les sauvegardes \end{hyperimportant} de vos documents personnels.

Il est impratif de multiplier les sauvegardes de vos documents personnels.

9.2.2

Le caractre @

Lorsque vous vous lancerez dans lexploration des sources des packages vous remarquerez que le nom dune grande partie des commandes qui y sont dnies contient le caractre @. Or dans un document .tex, il nest pas autoris dexcuter une commande dont le nom contient ce dernier. Ceci permet de protger ou de limiter la porte des commandes des packages. Par exemple la commande \cb@defpoint, dnie dans le package changebar, ne peut pas tre appele par un utilisateur du package. Pour rednir ces commandes internes, il est ncessaire deectuer la petite manipulation suivante : \makeatletter % ici on peut bidouiller \renewcommand{\@ttention}{oulala...} \makeatother % ici on ne peut plus

La commande hypothtique \@ttention peut uniquement tre manipule si le caractre @ est une lettre. Cest le rle de \makeatletter qui transforme le caractre @ en une lettre comme les autres, tandis que la commande \makeatother lui raecte sa fonction spciale.
Cette manipulation nest pas ncessaire dans les chiers de styles inclus avec la commande \usepackage pour lesquels la lettre @ peut tre utilise comme un caractre.

La manire dont TEX peut changer la catgorie des caractres est explique au chapitre suivant au paragraphe 10.5.1 page 152.

9.2.3

Le \let de TEX

A Il est parfois utile de modier une commande interne de L TEX pour ajouter une fonctionnalit son comportement par dfaut. Par exemple pour modier la commande interne \bidule1 , on peut procder comme suit :

Oui oui a nest pas une commande interne, mais un exemple idiot de nom de commande qui nexiste pas...

9.8

9.3 Structures de contrle et tests 1. sauvegarder la commande grce linstruction \let de TEX : \let\biduleORIG\bidule 2. rednir la commande \bidule en se basant sur la dnition intiale : \renewcommand{\bidule}{quelque chose en plus\biduleORIG} 3. si ncessaire, revenir la dnition initiale grce : \let\bidule\biduleORIG

117

9.3

Structures de contrle et tests


Les structures introduites par le package ifthen suivent la syntaxe : \ifthenelse{ expression boolenne } { ... code LaTeX si vrai ... } { ... code LaTeX si faux ... } et : \whiledo{ expression boolenne } { ... code LaTeX tant que cest vrai ... } Lexpression boolenne peut tre constitue selon le contexte de direntes commandes du package ifthen, et parmi elles : les expressions nombre1 >nombre2 , nombre1 <nombre2 ainsi que lexpression nombre1 =nombre2 permettant chacune delles de comparer les deux valeurs nombre1 et nombre2 ; \equal{C1 }{C2 } qui renvoie vrai ou faux selon que la chane de caractre C1 est gale la chane C2 ; \isodd{nombre} qui renvoie vrai si le nombre est impair, faux sinon ; \value{compteur} qui renvoie la valeur dun compteur sous la forme dun nombre exploitable dans les conditions boolennes ; \lengthtest{test longueur} qui renvoie lvaluation de test longueur, test A contenant les oprateurs <, > ou = et des longueurs L TEX comme oprandes. On notera galement quon pourra utiliser les connecteurs logiques \OR, \AND et \NOT qui jouent le rle quon attend deux dans une expression boolenne. On peut grouper des expressions avec les oprateurs \( et \).

9.3.1

Boolens et oprateurs associs

Le package ifthen propose ses vaillants utilisateurs la possibilit de manipuler des boolens. On peut en dclarer un avec la commande \newboolean : \newboolean{id boolen} qui dnit une variable boolenne identie par id boolen. On pourra ensuite lui aecter la valeur true ou false avec la commande \setboolean :

118 \setboolean{id boolen}{valeur}

Outillage ncessaire

Et bien sr on pourra utiliser le boolen ainsi cr avec les structures de contrle, par exemple comme ceci : \ifthenelse{\boolean{id boolen}} { code LaTeX si id boolen vaut vrai } { code LaTeX sil vaut faux

Il est bon de connatre la version TEX de ce qui prcde. On trouve en eet dans les A packages L TEX du code crit en TEX, et en particulier lutilisation de la structure de contrle Si Alors Sinon . Voici un exemple pour dnir un nouveau boolen avec monsieur TEX : \newif\ifimprimantecouleur On le positionne faux avec : \imprimantecouleurfalse et vrai avec : \imprimantecouleurtrue On peut ensuite exploiter ce boolen dans une structure Si Alors Sinon la mode 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 dveloppement de la fonction factorielle2 de manire pouvoir crire :

On peut exprimer la factorielle de 10 comme suit : \begin{displaymath} 10!=\itfactorielle{10} \end{displaymath}

On peut exprimer la factorielle de 10 comme suit :


9.9

10! = 10 9 8 7 6 5 4 3 2 1

Une faon de rsoudre le problme est dcrire une commande contenant une boucle \whiledo : \newcommand{\itfactorielle}[1]{% \setcounter{cptfact}{#1}% on stocke largument dans un compteur \whiledo{\value{cptfact}>1}{% tant quil est > 1 \thecptfact\times% on lache avec un \addtocounter{cptfact}{-1}}% on dcrmente le compteur 1}% on ache 1 la n Il faudra bien sr dclarer le compteur :
2

Y en a qui nont pas grand chose faire de leur journe...

9.3 Structures de contrle et tests \newcounter{cptfact}

119

On notera que dans la condition boolenne 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 implmenter cette commande de manire rcursive : \newcommand{\recfactorielle}[1]{% version rcursive : \setcounter{cptfact}{#1}% on aecte largument au compteur \ifthenelse{#1>1}{% si cette valeur est suprieure 1 \thecptfact\times% on lache suivie de \addtocounter{cptfact}{-1}% on dcrmente le compteur \recfactorielle{\thecptfact}}% on fait un appel rcursif {1}}% sinon (valeur=1) on ache 1 Cette commande produit videmment le mme rsultat que la prcdente. On notera que dans la condition du \ifthenelse on compare un nombre (#1) avec un autre (1). Enn on pourra remarquer que la prsence de la commande \times impose le mode mathmatique pour excuter ces commandes. On peut contourner le problme, si ncessaire, avec la commande \ensuremath. Le \whiledo et le \ifthenelse ont t utiliss dans le document que vous avez sous les yeux pour gnrer 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 franais. Nous avons tout dabord cr une commande permettant dacher un symbole :
\affsymb{pzd}{249} \affsymb{pzd}{75} \affsymb{pzd}{221} \affsymb{pzd}{88}
9.10

249

8
75

221

Q
88

Cette commande est la suivante : \newcommand{\affsymb}[2]{% \framebox{% un cadre \parbox[][16pt][b]{1em}{% autour dune bote 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 numro Largument #1 est le nom de la police (pzd ou psy), et largument #2 est le numro de symbole. Sinon, rien de particulier dans cette commande, si vous avez suivi jusquici (notamment en lisant le chapitre 4 et plus particulirement le paragraphe 4.4 page 60)... Nous avons ensuite dni une commande permettant dacher un srie de symboles :
Voici les symboles Zapf Dingbats, partir du No 40, sur 3 lignes et 6 colonnes : v
40 9.11

Voici les symboles Zapf Dingbats, partir du \No 40, sur 3 lignes et 6 colonnes : \begin{center} \symboles[40]{pzd}{3}{6} \end{center}

u
41


42


43

44


45


46 52


47

i
48


49 55


50


51

!
53

"
54

$
56

%
57

Voici le code de la commande \symboles :

120

Outillage ncessaire

\newcommand{\symboles}[4][0]{% \setcounter{clig}{0}% Mise zro des compteurs de ligne \setcounter{ccol}{0}% et de colonne \setcounter{cligmax}{#3}% arguments 3 et 4 pour xer \setcounter{ccolmax}{#4}% le nombre max de colonnes et de lignes % Pour chaque ligne : \whiledo{\value{clig}<\value{cligmax}}{% \setcounter{ccol}{0}% remise zro du compteur de colonne % et pour chaque colonne : \whiledo{\value{ccol}<\value{ccolmax}}{% % on calcule le numro du symbole \setcounter{csym}{% \value{clig}*\value{ccolmax}+\value{ccol}+#1} % si sa valeur est infrieure 256 \ifthenelse{\value{csym}<256}{% \affsymb{#2}{\thecsym}}{% on lache \mbox{}}% sinon on cr un bote vide \stepcounter{ccol}}% on passe la colonne suivante \stepcounter{clig}% on passe la ligne suivante % on saute une ligne , sauf la n \ifthenelse{\value{clig}<\value{cligmax}}{\\}{}}} Il faudra bien sr dclarer les cinq compteurs avec la commande \newcounter.
Et je sais que vous tes tout particulirement curieux de voir ce que fait cette commande lorsque le compteur dpasse les bornes :
240 9.12 241

Et je sais que vous tes tout particulirement curieux de voir ce que fait cette commande lorsque le compteur dpasse les bornes : \begin{center} \symboles[240]{psy}{3}{6} \end{center}

242

243

244

245

246

247

248

249

250

251

252

253

254

255

9.3.3

Tester la parit des pages

Cest une pratique courante on le verra par la suite de crer des commandes ayant un comportement dirent selon la parit de la page. lentre Finding if youre on an odd or an even page de la Faq anglaise [1] est expliqu que le naf : \ifthenelse{\isodd{\value{page}}} { ... la page est impaire ... } { ... la page est paire ... } peut ne pas donner le rsultat escompt. Le compteur de page lorsquil est examin la frontire entre deux pages peut ne pas tre jour : le compteur de page sil est interrog au dbut dune page renverra le numro de la page prcdente... Ceci est d la manire dont TEX procde pour eectuer les sauts de page. Pour contourner ce problme plusieurs solutions sont possibles. Celle adopte dans ce document consiste utiliser le package chngpage qui insre articiellement un \label lendroit o lon veut tester la parit de la page.

9.4 Fontes

121

Par consquent dans le cas o le test de parit raliser peut tre valu la frontire entre deux pages, il faudra crire : \checkoddpage% \ifcpoddpage ... la page est impaire ... \else ... la page est paire... \fi

9.4

Fontes
Le jeu des trois familles
Pour conserver une homognit dans lallure des caractres dans un document A L TEX, sont dnies trois familles : 1. la famille roman celle que vous tes en train de lire ; 2. la famille sans srif que vous tes galement en train de lire linstant mme ; 3. et la famille machine crire, galement appelle typewriter lorsquon est anglophone, que cela ne vous aura sans doute pas chapp vous tes en train de lire. Il est important de noter que ces trois familles de fontes sont par dfaut trois familles de la police baptise par son auteur (Knuth lui-mme) Computer Modern . Elles sont conues pour sharmoniser au sein dun mme document. Dans cet ordre dide, il faudra toujours veiller ce que ces trois familles (roman, sans srif, et machine A crire) soient visuellement compatibles entre elles. Les distributions de L TEX proposent gnralement des packages permettant dutiliser les fontes PostScript dans un document, avec notamment le clbre3 package times utilisant : 1. Times pour la famille roman celle que vous tes en train de lire ; 2. Helvetica pour la famille sans srif que vous tes galement en train de lire linstant mme ; 3. Courrier pour la famille machine crire. De mme le package newcent utilise : 1. NewCentury pour la famille roman celle que vous tes en train de lire ; 2. AvantGarde pour la famille sans srif que vous tes galement en train de lire linstant mme ; 3. Courrier pour la famille machine crire.
3

9.4.1

Mais obsolte. Aujourdhui il est conseill dutiliser le package mathptmx

122

Outillage ncessaire

9.4.2

Dsignation des fontes et de leurs attributs

A Une fonte4 ou police de caractres est dnie dans L TEX par plusieurs caractristiques dont il a t question au paragraphe 2.1 page 17. De manire dsigner la fonte laide des commandes que nous allons dcouvrir dans ce paragraphe, on utilisera :

un codage qui sera quelques exceptions prs le codage T1 ; une srie de caractres identiant la famille : cmr pour computer modern roman , ptm pour PostScript times , etc. une srie de caractres pour la graisse de la fonte : m pour mdium , b pour bold (gras), bx pour bold extended (gras tendu, cest--dire gras avec des caractres plus larges), etc. une srie de caractres dnissant lallure (shape en anglais) de la fonte : n pour normal , it pour italique , sl pour slanted (pench), etc. Fontes computer modern Il sagit dun ensemble de fontes dessines par Donald Knuth et utilises par dfaut A dans L TEX. Les commandes \emph, \textbf, etc. slectionnent donc automatiquement ces polices. Computer Modern roman (cmr) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose Computer Modern sans srif (cmss) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose Codage T1 n normal it italique sl pench sc petites capitales n gras tendu normal it gras tendu italique sl gras tendu pench n gras normal Codage T1 normal pench gras tendu normal semi gras condens normal Codage T1 n normal it italique sl pench sc petites capitales

m m m m bx bx bx b

m m bx sbc

n sl n n

Computer Modern typewriter (cmtt) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose
4

m m m m

Terme faisant rfrence au plomb de limprimerie...

9.4 Fontes Computer Modern bonacci (cmb) machin Bidule Chouette chose Computer Modern funny roman (cmfr) machin Bidule Chouette chose machin Bidule Chouette chose Computer Modern dunhil (cmdh) machin Bidule Chouette chose Fontes en bton Codage T1 m n normal Codage T1 m n normal m it italique Codage T1 m n normal

123

Elles ont t dessines par Knuth pour son ouvrage intitul Mathmatiques concrtes . Le package beton5 permet de les charger dans un document. Concrete fonts (ccr) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose Fontes gothiques Les fontes ci-deous sont dites de la famille gothique et ne sont ` a utiliser que dans un contexte bien pr ecis faute de rendre le texte parfaitement illisible, comme celui que vous etes en train de lire actuellement, dailleurs vous avez probablement d ej` a arr et e, donc je peux dire des gros mots : caca... Gothique (ygoth) main Bidule Cuette ose Fraktur (yfrak) main Bidule Chouette ose Schwabacher (yswab) main Bidule Chouette ose Fontes PostScript Les fontes ci-dessous sont gnralement disponibles gratuitement et rsident la plupart du temps dans les imprimantes. Times (ptm) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose
5

m m m m

Codage T1 n normal sc petites capitales sl pench it italique

Codage U m n Codage U m n Codage U m n

m m m m b

Codage T1 n normal it italique sl pench sc petites capitales n gras

Notez ici le jeu de mots dsopilant, concrete veut aussi dire bton en langue anglaise.

124 Palatino (ppl) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose charter (bch) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose New century (pnc) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose Bookman (pbk) machin Bidule Chouette chose machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose

Outillage ncessaire Codage T1 n normal it italique sl pench sc petites capitales n gras Codage T1 n normal it italique sl pench sc petites capitales n gras Codage T1 n normal it italique sl pench sc petites capitales n gras Codage T1 n normal it italique sl pench sc petites capitales n gras Codage T1 n normal sl pench sc petites capitales n gras n gras condens Codage T1 n normal sl pench sc petites capitales n gras

m m m m b

m m m m b

m m m m b

m m m m b

Helvetica (phv) machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose machin Bidule Chouette chose Avantgarde (pag) machin Bidule Chouette chose machin Bidule Chouette chose MACHIN B IDULE C HOUETTE CHOSE machin Bidule Chouette chose

m m m b bc

m m m b

9.4 Fontes Courier (pcr) machin Bidule Chouette chose machin 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 Codage T1 n normal sl pench sc petites capitales n gras

125

m m m b

Codage T1 m n normal

9.4.3

Changer de fontes

Globalement On peut changer de police de caractres en utilisant des packages plus ou moins A standard de la distribution L TEX : mathptmx : pour utiliser le vilain Times New Roman ; newcent : pour le New Century ;

mathpazo : pour le Palatino ; ... : et dautres, navez qu fouiller votre distribution...

Si lon examine le contenu du chier newcent.sty on trouve simplement : \renewcommand{\rmdefault}{pnc} \renewcommand{\sfdefault}{pag} \renewcommand{\ttdefault}{pcr} ce qui signie que comme expliqu au 9.4.1 page 121 on a redni les trois familles roman , sans srif et machine crire en les nommant par leur A nom L TEX standardis : pcn pour PostScript NewCentruy, pag pour PostScript AvantGarde etc. Les noms standardiss sont donns dans les tableaux de la section prcdente. Localement Il est toujours possible de changer localement de fonte dans un texte en spciant les paramtres ncessaires :
{\fontfamily{cmfr}\selectfont On passe en Funny Roman et mme quon peut faire de l\emph{italique}... cest dingue !} Et hop nous voila de nouveau en \verb+\rmdefault+

On passe en Funny Roman et mme quon peut faire de litalique... cest dingue ! Et hop nous voila de nouveau en \rmdefault

Les appels quil est possible de faire avant la commande \selectfont sont : \fontencoding pour le codage ; \fontfamily avec comme argument la famille (cmr pour Computer Modern, ptm pour PostScript Times, etc.) ;

9.13

126

Outillage ncessaire

\fontseries pour prciser la graisse (argument b pour gras, m pour la graisse moyenne, etc. ) ; \fontshape pour lallure de la fonte (argument n pour normal, sl pour pench, etc.) ; \fontsize avec deux arguments : la taille des caractres et lespace entre deux lignes conscutives. Voici un autre exemple :
{\fontfamily{ppl}\fontseries{b}% \fontsize{2cm}{2.5cm}\selectfont gros !} Et nous voila de nouveau en \verb+\rmdefault+

gros !
Avant

9.14

Et nous voila de nouveau en \rmdefault

Finalement, sil on veut faire appel de manire rpte 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 permettant dtre ensuite utilise comme une dclaration :
\DeclareFixedFont{\toupiti}{T1}{pag}{m}{n}{3pt} Avant {\toupiti bon b l moins davoir une bonne loupe vous ne serez pas capable de lire ce texte} aprs.

9.15

bon b l moins davoir une bonne loupe vous ne serez pas capable de lire ce texte

aprs.

9.5

Listes et nouveaux environnements


plusieurs reprises dans ce document, nous avons eu recours lenvironnement list permettant de crer des environnements bass sur le principe des listes (numrotes, de descriptions, etc.). Nous donnons ici les bases ncessaires pour pouvoir utiliser cet environnement en sappuyant sur des exemples.

9.5.1

Principe

Pour dnir un environnement bas sur les listes, on utilisera la syntaxe suivante : \newenvironment{maliste}% {\begin{list}% { ... code pour litem par dfaut ... } { ... caractristiques de la liste ... } }% {\end{list}} Lenvironnement list prend donc deux arguments. Le premier permet de dnir lallure de ltiquette (ou item) par dfaut. Le second permet de dnir la liste elle-mme et en particulier : Sa gomtrie : les marges, les espaces entre les paragraphes composant la liste, les espaces entre la liste et lenvironnement dans lequel elle est insre, etc.

9.5 Listes et nouveaux environnements

127

la production de ltiquette : cest--dire la manire dont on va eectivement produire le titre de chaque entre de la liste. La liste suivante tente dillustrer les direntes dimensions que lon peut modier pour dnir sa propre liste : Horizontales:
(3) (4)

la dimension \itemindent (1) permet dintroduire une indentation pour le premier paragraphe dune entre de liste.
(1)

\leftmargin (4) dnie la marge de gauche et la dimension \rightmargin celle de droite ;


(2)

tiquette:
(3)

la dimension \labelsep (2) dtermine la dimension sparant ltiquette du dbut du paragraphe. La dimension (3) \labelwidth dnit quant elle la largeur de la bote contenant ltiquette.
(5)

Si on commence un nouveau paragraphe dans une entre de liste, ce paragraphe sera alors indent de \listparindent (5) qui vaut 0 point par dfaut. Remarque assez importante: (2) si la largeur du texte de ltiquette est infrieure \labelwidth alors ce texte est insr dans une bote de largeur \labelwidth. Dans le cas contraire, comme ici, le texte de ltiquette sera insr dans une bote de la largeur ncessaire et le paragraphe sera indent en consquence.
La commande \makelabel prenant un argument, permet de produire ltiquette. Ainsi lorsquon entre la commande \item[texte tiquette], il est fait appel la commande \makelabel{texte tiquette}.

9.5.2

Rglage de ltiquette

Pour comprendre le fonctionnement de lenvironnement list et plus particulirement le principe du positionnement relatif de ltiquette et du paragraphe adjacent, on peut imaginer que les lments sont positionns dans lordre suivant : 1. le paragraphe est dabord positionn par rapport la marge de gauche laide de la longueur \leftmargin ; 2. la premire ligne du paragraphe est ensuite indent laide de la longueur \itemindent ; 3. puis ltiquette est positionne relativement au dbut du paragraphe ainsi indent laide de la longueur \labelsep. Il dcoule de ceci que lentre de liste (ou tiquette) peut tre produite dans la marge de gauche... La gure 9.1 page suivante illustre le positionnement de lentre de liste par rapport au paragraphe dans les deux situations suivantes : cas de la gure 9.1a o la largeur de lentre de liste est infrieure la dimension \labelwidth. Dans ce cas lentre de liste est positionne une distance de \labelsep du paragraphe, lui mme tant indent de \itemindent et positionn par rapport la marge gauche laide de \leftmargin ;

128

Outillage ncessaire

labelwidth

labelsep
2

labelwidth itemindent

labelsep

itemindent
1

leftmargin

Paragraphe rightmargin

leftmargin

Paragraphe rightmargin

(a) Cas standard

(b) Largeur suprieure \labelwidth

Figure 9.1: Positionnement de lentre de liste cas de la gure 9.1b : la largeur de lentre de liste est suprieure la dimension \labelwidth. Dans ce cas lentre de liste est toujours positionne la distance \labelsep du paragraphe, mais celui-ci est indent dune valeur suprieure \itemindent.

9.5.3

Rglages verticaux

On peut galement rgler les blancs verticaux dans lenvironnement list. Ces paramtres permettent notamment de dnir les espaces entre les paragraphes constituant les entres de liste, mais galement les blancs que lon veut insrer avant ou aprs la liste. Il sagit de : \itemsep : lespace entre chaque entre de liste ; \parsep : lespace entre deux paragraphes lintrieur dune entre de liste ; \topsep : le blanc insr avant et aprs lenvironnement cr, auquel est ajout \partopsep si celui-ci commence un nouveau paragraphe.

9.5.4

Valeurs par dfaut

Tous les paramtres de lenvironnement list ont des valeurs par dfaut. Les longueurs pour les rglages horizontaux sont par dfaut les suivantes sur le systme de votre serviteur : dimension \itemindent \listparindent \rightmargin \leftmargin \labelwidth \labelsep Et pour les rglages verticaux : valeur par dfaut 0pt 0pt 0pt 25pt 20pt 5pt

9.5 Listes et nouveaux environnements dimension \itemsep \parsep \topsep \partopsep valeur par dfaut 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

129

La commande \makelabel est quant elle dnie par : \hfil #1 par consquent, dans la bote de largeur \labelwidth, le contenu de ltiquette est pouss droite. Ainsi si on dnit une liste simple avec : \newenvironment{listebasique} {\begin{list}{}{}} {\end{list}} 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 o o o o o o o o o o o o o o o o o o o o o 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} Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs
9.16

Avant avant avant avant avant avant avant avant avant X oooooooooooooooooooooo oooooooooooooo uuuuuuuuuuuuuuuuuuuu Machin v v v v v v v v v v v v v v Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs

avec des tiquettes, et sans tiquette :

9
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 \end{listebasique} Aprs aprs aprs aprs aprs aprs aprs aprs avant avant avant avant avant avant e e e e e e e e e e e e e e e e e e e e aprs aprs aprs aprs aprs aprs Avant avant avant avant avant avant avant avant avant avant avant avant avant avant eeeeeeeeeeeeeeeeeeeeeee eeeeeeeeeeeeee Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs

9.5.5

Exemples

A La liste dcrivant les chiers auxiliaires de L TEX situe la page 208 a t produite avec le code suivant :

9.17

130

Outillage ncessaire

labelwidth
2

labelwidth labelsep Paragraphe


3 2

labelsep itemindent

leftmargin rightmargin

leftmargin

Paragraphe rightmargin

(a) Liste chiers auxiliaires

(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}

tex

A chier source L TEX ; blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla

aux
9.18

chier auxiliaire ... le chier de trace ... chier device independant,...

log dvi

Lenvironnement ficaux a lui t conu comme suit : \newenvironment{ficaux}{% \begin{list}{}{% \setlength{\labelwidth}{1cm}% largeur de la bote englobant le label \setlength{\labelsep}{8pt}% espace entre paragraphe et ltiquette \setlength{\leftmargin}{\labelwidth+\labelsep}% marge de gauche \renewcommand{\makelabel}[1]{% production de ltiquette : \framebox[\labelwidth]{\texttt{##1}}}}}{\end{list}} Dans cet exemple la relation :

\leftmargin=\labelwidth+\labelsep

permet de positionner lentre de liste comme indiqu la gure 9.2a. Un autre exemple : la cration dun environnement de liste numrote pour produire des questions dans un nonc de travaux pratiques ou autre devoir surveill...

9.5 Listes et nouveaux environnements


\begin{question} \item 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 o o o o o o o \item o o o o o o o o o o o o o o \end{question} 1 2
9.19

131
oooooooooooooooooooo oooooooooooooo oooooooooooooooooooo ooooooooooooooooooooo ooooooooooo oooooooooooooooooooo oooooooooooooo

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

o o o o o o o

3

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}} Le positionnement correspondant est montr la gure 9.2b page prcdente. On notera que dans la dnition de la liste est fait usage de la commande \usecounter permettant de crer une liste numrote et de prciser quel compteur est utilis. On devra donc dclarer le compteur en question : \newcounter{cptquestion} Enn, chaque entre de liste compose du numro de la question et dun joli crayon est produite par la commande : \newcommand{\etiquettequestion}[1]{% \makebox[\labelwidth]{\Pisymbol{pzd}{47}$_\thecptquestion$}} Finalement la commande : \renewcommand{\makelabel}[1]{\etiquettequestion{##1}}}} rednit la commande \makelabel comme faisant appel notre joli crayon. Le premier et unique argument est pass \etiquettequestion laide de lexpression ##1, car #1 dsignerait, dans le contexte de la dnition de environnement question, le premier argument de celui-ci. Dans ce manuel, on trouve dans le mmento 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 dnie au paragraphe 11.1.2 page 164. Pour information, lenvironnement ci-dessus donne :

132

Outillage ncessaire

labelwidth
2

itemindent

labelwidth

itemindent

leftmargin

labelsep < 0 Paragraphe rightmargin

leftmargin

labelsep < 0 Paragraphe rightmargin

(a) Utiliser un \labelsep ngatif.

(b) Crer une bote paragraphe pour superposer ltiquette et le paragraphe.

Figure 9.3: Postionnement de ltiquette dans la liste glossaire .


\begin{packages} \item[bidule] cette extension permet dinsrer des bidules dans son document sans avoir savoir sil sagit de machin ou de truc. \end{packages} bidule : cette extension permet dinsrer des bidules dans son document sans avoir savoir sil sagit de machin ou de truc.

9.5.6

Un exemple un peu plus tordu...

Nous allons dtailler dans cette section la manire dont la liste composant le glossaire de la page 229 a t gnre. Cette liste dont lallure est donne ci-dessous exploite deux ides : 1re ide La longueur \labelsep peut tre ngative ce qui permet de superposer lentre de liste avec le paragraphe. Ceci est illustr la gure 9.3a ; Deuxime ide

On peut crer une bote paragraphe pour la bote produisant ltiquette. La bote ainsi cre pourra donc tre compose de deux lignes : celle du haut contenant le texte de ltiquette, celle du dessous tant vide, se superpose avec le paragraphe (gure 9.3b). Le code permettant de gnrer la liste ci-dessus et celle du glossaire de ce manuel est 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}}

9.20

9.6 Des environnements qui mettent en bote

133

La valeur .8\baselineskip pour \itemsep permet darer le glossaire en insrant des blancs entre chaque entre. La commande permettant de gnrer la bote contenant lentre de liste superposer est : \newcommand{\boiteentreeglossaire}[1]{% \parbox[b]{\labelwidth}{% \setlength{\fboxsep}{3pt}% \setlength{\fboxrule}{.4pt}% \shadowbox{\sffamily#1}\\\hfill\mbox{}}} Pour comprendre comment est positionne cette bote, nous avons quelque peu modi la commande prcdente 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 o o o o o o o o o o o o o o o o o o o o o o 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 o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o \end{leglossaire} Bidule ooooooooooooooooooooo oooooooooooooooooooooo ooooooooooo
9.21

Truc muche ooooooooooooooooooooo oooooooooooooooooooooo ooooooooo

9.6

Des environnements qui mettent en bote


Lenvironnement lrbox qui fait lobjet de ce paragraphe permet de stocker le contenu dun environnement dans une bote. Cest un outil trs pratique qui est souvent une solution adapte des problmes courants comme lencadrement dobjets. Nous allons voir sur un exemple comment on peut utiliser cette construction.

9.6.1

Principe

On dclare une bote comme expliqu au paragraphe 4.4.5 page 67 : \newsavebox{maboite} On peut ensuite crire : \begin{lrbox}{maboite}...contenu...\end{lrbox} qui est parfaitement quivalent : \savebox{maboite}{...contenu...} Bon mais alors si cest la mme chose, quoi a sert ?? a sert pour la dnition dun environnement.

9.6.2

Exemple

Supposons, par exemple lexistence dun environnement : \newenvironment{remarque}{% % clause begin

134 \begin{center}\begin{minipage}{.8\textwidth}}{% % clause end \end{minipage}\end{center}} Et :

Outillage ncessaire

On peut faire la remarque (difiante) suivante : On peut faire la remarque (diante) 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 rpondons sans hsiter : avec lenvironnement lrbox . Dans la mesure o il ny a A pas de moyen avec L TEX 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 laide de lenvironnement lrbox 2. lencadrer en rutilisant la bote ainsi construite. On aura donc : \newsavebox{\boiteremarque} \newenvironment{remarque}{% % clause begin \begin{lrbox}{\boiteremarque}% dbut mise en bote \begin{minipage}{.8\textwidth}}{% % clause end \end{minipage} \end{lrbox}% n mise en bote % production de la bote encadre \begin{center} \fbox{\usebox{\boiteremarque}} \end{center}}
On peut faire la remarque (difiante) suivante : On peut faire la remarque (diante) 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.

Cette ide est utilise plusieurs reprises dans les deux chapitres qui suivent.
Il faut noter que la bote que dnit lenvironnement lrbox est une bote simple linstar des botes cres par les commandes de la famille \mbox et par consquent ne peut contenir de saut de paragraphe.

9.23

9.22

10
Sommaire 10.1 Allure de lindex 10.2 Allures des titres 10.3 Gomtrie 10.4 En-tte et pied de page 10.5 Environnements avec caractres spciaux 10.6 About those so called french guillemets 10.7 Une bote pour la minitable des matires

Cosmtique

Je me dis: Je monterai sur le palmier, Jen saisirai les rameaux ! Que tes seins soient comme les grappes de la vigne, Le parfum de ton soue comme celui des pommes, Et ta bouche comme un vin excellent qui coule aisment pour mon bien-aim, Et glisse sur les lvres de ceux qui sendorment ! Le Cantique des cantiques Ct 7 10.

ide gnrale de ce chapitre, laissant prsager des macros parfumes, est de A prsenter les outils standard de L TEX qui ont t personnaliss pour produire certaines parties du document. Ces personnalisations sentendent plusieurs niveaux : en utilisant des options de packages (par exemple pour les en-ttes de page), ou parfois en mettant le nez dans la dnition des macros, comme pour lallure des chapitres et des sections, ou en modiant plus en profondeur ces macros comme dans le cas de la minitable des matires. Une partie du chapitre est consacre aux outils que lon peut mettre au point partir du package fancyvrb. Enn un combat en rgle contre les guillemets franais est men en guise de clture de ce chapitre.

10

10.1

Allure de lindex
Pour changer lallure de lindex, il faut comprendre que lorsquon tape fbrilement avec ses petits doigts la commande : makeindex document on gnre alors un chier document.ind contenant quelque chose ressemblant : \begin{theindex} \item Cosmic debris, 12,34 135 prambule

136 \indexspace \item Debra kadabra, 23 \end{theindex} espace inter-groupe

Cosmtique

entre, sparateur, page postambule

En ralit, ce code est gnr partir dentits gnriques ayant des valeurs prdnies et pouvant tre modies. Pour sen convaincre, il sut de savoir que le programme makeindex peut gnrer un chier .ind contenant autre chose que du A code L TEX. Pour comprendre cette aaire dentits gnriques, on pourrait dcrire le travail de makeindex comme suit : 1. crire le prambule en examinant la valeur de lentit preamble ; 2. Pour chaque entre du chier .idx: (a) crire le contenu de lentit item_0 ; (b) crire lentre ( Cosmic debries dans lexemple prcdent) ; (c) crire le sparateur (valeur de lentit delim_0) ; (d) crire le numro de page 3. chaque n de groupe (changement de lettre) crire le contenu de lentit group_skip ; 4. crire le postambule en examinant la valeur de lentit postamble. Les valeurs des entits auxquelles il est fait allusion sont par dfaut les suivantes : preamble item_0 delim_0 group_skip postamble "\\begin{theindex}\n" "\n \\item" ", " "\n\n \\indexspace\n" "\n\n\\end{theindex}\n"

Ces valeurs peuvent tre modies par lintermdiaire dun chier de style auquel on met gnralement lextension .ist et que lon utilisera lors de lappel makeindex de la manire suivante :

01

makeindex -s style.ist document Ainsi pour produire lindex de ce document, nous avons dans un premier temps redni les sparateurs de niveau 1 et 2 : delim_0 " \\dotfill \ " delim_1 " \\dotfill \ " on remplace donc la virgule qui spare par dfaut lentre dindex et son numro de page par des points de suspension. Ensuite, en lisant scrupuleusement la documentation makeindex1 , on apprend qucrire : headings_flag 1
1

Voir galement le nota qui suit pour les rfrences bibliographiques utiles.

10.1 Allure de lindex

137

est la manire polie de demander makeindex de produire entre les groupes dentres la lettre correspondant au groupe. Cette lettre sera (en majuscule) et encadre par les contenus respectifs des entits heading_prefix et heading_suffix. Qu cela ne tienne, pour produire nos jolies botes ombres, nous crivons dans le chier de style :

heading_prefix "{\\large\\sffamily\\bfseries\\shadowbox{" heading_suffix "}\\hfill}\\nopagebreak\n"

10

138 Ce qui vous lavez compris, produira par exemple pour la lettre c :
{\large\sffamily\bfseries% \shadowbox{C}\hfil}\nopagebreak
10.1

Cosmtique

Cette commande sera prcde par le contenu de group_skip qui, nous lavons dit un peu plus haut, vaut par dfaut \indexspace. Nous avons aprs quelques mois de recherche2 , dnich la dnition de cette commande dans book.cls et lavons modie pour augmenter lgrement lespace entre les groupes : \renewcommand\indexspace{\par \vskip 20pt plus5pt minus3pt\relax}
Ce paragraphe ne donne bien videmment quun aperu trs succinct des fonctionnalits proposes par makeindex. Outre les informations que lon peut trouver dans A le L TEX companion, la page de manuel de cet utilitaire dans un environnement Debian donne une liste exhaustive des entits gnriques que lon peut dnir. Un chier nomm ind.dvi crit par P. Chen et M. A. Harrinson constitue galement un bon point de dpart pour la personnalisation de lindex.

10.2

Allures des titres


Nous proposons ici dexposer la manire dont on a modi lallure des titres standard A (partie, chapitre, section, etc.) de L TEX.

10.2.1

Numrotation des titres et table des matires

Avant toute chose il faut savoir quon peut agir sur la table des matires laide de deux compteurs : 1. secnumdepth (section numbering depth) stipulant la profondeur de la numrotation des titres dans le document ; 2. tocdepth (tab le of contents depth) dnissant quel est le niveau (ou profondeur) de titre maxi dans la table des matires.

01

Pour utiliser ces deux compteurs, il faut en outre avoir connaissance de la manire A dont L TEX associe une profondeur chaque titre. Et bien rjouissez-vous, le tableau suivant vous fournit cette information : Titre part chapter section subsection profondeur -1 0 1 2 Titre subsubsection paragraph subparagraph profondeur 3 4 5

Ainsi, aecter la valeur 1 secnumdepth et la valeur 2 tocdepth numrotera les titres jusquaux \sections et insrera dans la table des matires, tous les titres jusquaux \subsections...
2

Je plaisante, juste quelques semai... minutes veux-je dire.

10.2 Allures des titres

139

10.2.2

Sections et niveaux infrieurs

Dans le chier book.cls du systme TEX, on trouve le code suivant3 : \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 aprs {\normalfont\Large\bfseries}} % allure du titre Ce code permet de dnir comment sera produit le titre dune section. On constate que la \section fait appel la commande \@startsection, cette dernire attendant six arguments : le nom du titre : section, subsection, etc. son niveau : 1 pour section, 2 pour subsection, 3 pour subsubsection, etc. son indentation ; le blanc vertical avant le titre ; le blanc vertical aprs le titre ; un ensemble de dclarations pour formater le titre lui-mme.
A On pourra donc noter que la mise en page par dfaut de L TEX pour les sections dans la classe book est la suivante :

pas dindentation (0pt) espace avant le titre de 3.5ex avec un tolrance de plus -1ex et moins -.2ex ; espace aprs le titre de 2.3ex avec une tolrance de plus .2ex ; on pourra noter que si lespace est ngatif, le paragraphe commence juste aprs le titre, et non sur un nouveau paragraphe ; les titres sont en gros et en gras dans la fonte normale . Pour dnir lallure des sections de ce document, nous avons introduit trois longueurs pour lindentation 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

10

Lgrement simpli...

140

Cosmtique

Dautre part, nous avons dni une fonte particulire pour les titres, dnie comme suit : \newcommand{\sectionfont}{% \fontencoding{\encodingdefault}% \fontfamily{pag}% \fontseries{bc}% \fontshape{n}% \selectfont} Cette commande permet de slectionner la fonte PostScript Avant-Garde en gras condens (cf. 9.4 page 121). Finalement, pour dnir lallure de nos sections on utilisera : \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 infrieurs.

10.2.3

Chapitres

Cest en fouillant dans le chier book.cls quon peut trouver des informations sur A la manire dont L TEX produit les en-ttes de chapitres. Principe Dans le chier book.cls, on trouve la commande : \newcommand{\chapter}{% ... \thispagestyle{plain}% ... \secdef\@chapter\@schapter} % la ligne qui nous intresse La commande \chapter fait donc elle-mme appel deux commandes distinctes : 1. \@chapter pour les titres de chapitre qui sont numrots ; 2. \@schapter pour les titres de chapitre non numrots (s pour star ou toile faisant rfrence la commande \chapter*). En cherchant vaillamment la dnition 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

01

10.2 Allures des titres ... \if@twocolumn ... \else% le cas dun document une colonne \@makechapterhead{#2}% la ligne qui nous intresse \fi}

141

ce qui nous met sur la voie... en eet la commande \@makechapterhead (quon peut traduire littralement par faire len-tte de chapitre ) est celle quil va nous falloir rednir pour changer lallure des en-ttes. Une recherche supplmentaire nous met galement sur la piste de la commande \@makeschapterhead produisant len-tte dun chapitre non numrot. Ces deux commandes attendent un argument qui est le titre du chapitre. Petits outils ncessaires Nous avons dni un environnement cadrechap dont le propos est simplement dlargir la marge de droite de deux centimtres : \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 boolen @mainmatter permettant de savoir si on se trouve dans la partie centrale du document. Cest le cas lorsque la commande \mainmatter a t appele (cf. 6.4 page 91). En-tte des chapitres proprement parler Pour ce manuel, nous avons redni 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 consquent, si on est dans le \mainmatter : on ache le numro du chapitre (\thechapter) dans une fonte particulire (\chapnumfont) ; on insre un ressort horizontal (\hfill) ; on ache le titre du chapitre (#1) dans une police particulire (\chapfont).

10

142

Cosmtique

Si on nest pas dans la partie centrale, on nache pas de numro de chapitre, mais juste le titre pouss droite. Les commandes permettant de mettre en vidence le numro du chapitre et son titre sont respectivement : \DeclareFixedFont{\chapnumfont}{T1}{phv}{bc}{n}{80pt} \DeclareFixedFont{\chapfont}{T1}{phv}{b}{n}{24.88pt} Finalement, si on crit : \begin{cadrechap} {\chapnumfont7}\hfill{\chapfont Le titre de la mort qui tue} \end{cadrechap} On obtient :

7
10.2.4 Parties
\newcommand\part{% \cleardoublepage \thispagestyle{plain} [...] \null\vfil \secdef\@part\@spart}

Le titre de la mort qui tue

Dans le chier book.cls on trouve la dnition de la commande \part :

qui nous informe qu linstar des chapitres, la commande \part fait appel deux commandes distinctes pour produire les parties numrotes et non numrotes (grce un appel aux commandes \@part et \@spart respectivement). Dans un premier temps nous avons impos que le style de page pour les dbuts de partie soit vide (cest--dire sans numro de page ni en-tte etc.), nous avons donc crit : \newcommand\part{% \cleardoublepage \thispagestyle{empty}% la place de plain par dfaut [...] \null\vfil% un bote vide et un ressort vertical \secdef\@part\@spart} On peut ensuite examiner la dnition de la commande \@part qui produit la page de partie : \def\@part[#1]#2{% [...] {\centering % centrage [...] \huge\bfseries \partname\nobreakspace\thepart \par \vskip 20\pt [...]

01

10.3 Gomtrie \Huge \bfseries #2\par}% \@endpart}

143

En examinant ce code on constate que la page de partie est constitue dune ligne en gros caractres gras, du nom Partie suivie du numro de la partie4 : \huge\bfseries \partname\nobreakspace\thepart suivie 20 points plus bas du titre de la partie (contenu dans largument #2). Pour ce manuel, nous avons redni la commande \@part comme suit : \def\@part[#1]#2{% [...] {\centering \interlinepenalty \@M \normalfont [...] \partnumfont \thepart % juste le numro de la partie \par \vskip 50\p@% 50 point au lieu de 20... \partfont #2\par}% le titre avec une fonte personnalise \@endpart} Pour garder une homognit avec les en-ttes de chapitres on a dni 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}%
On notera galement que la commande \@part se termine par lappel une autre commande : \@endpart. En examinant le chier book.cls on pourra se rendre compte que cette dernire permet de sopposer au ressort vertical de la commande \part et de sauter une page blanche...

10.3

Gomtrie
Les direntes dimensions de chaque page de ce document ont t dnies laide du package geometry et de la commande : \geometry{% a4paper, body={150mm,250mm}, left=25mm,top=25mm, headheight=7mm,headsep=4mm, marginparsep=4mm, marginparwidth=27mm}
En ralit, aprs avoir enclench le package babel et loption french ces deux commandes sont rednies pour produire quelque chose du style : Premire partie
4

10

144 qui dnit respectivement (voir aussi gure 10.1) : un corps de texte faisant 150 mm de largeur par 250 mm ;

Cosmtique

le positionnement du corps du texte dans la page, 25 mm du bord gauche du papier, et 25 mm du bord suprieur du papier ; la hauteur de len-tte (7mm) et lespace entre len-tte et le texte lui-mme (4 mm) ; la taille du papier : standard A4 ; la largeur de la marge pour les notes de marges (2.7 cm).
paperwidth width entte headheight

footskip

patati patata pied de page marginparsep marginparwidth

01

Figure 10.1: Quelques unes des dimensions pour dnir la gomtrie dun document. De manire gnrale, comme le montre la gure 10.1, le package geometry permet de dnir un certain nombre de dimensions que lon peut passer soit en option la commande \usepackage soit laide de la commande \geometry. Dimension du papier : a4paper, a5paper, etc. pour utiliser un format de papier prdni, paperwidth==dim et paperheight=dim pour spcier une dimension de papier libre, par exemple pour un document qui sera massicot. Texte :

height

left

Corps du texte

notes de marge

paperheight

headsep

top

10.4 En-tte et pied de page soit avec : body={largeur,hauteur} soit avec : width=largeur et height=hauteur.

145

le texte est positionn lintrieur de la page par rapport un point de rfrence spci avec top=pos_vert et left=pos_horiz Haut et bas de page : la hauteur de la surface rserve len-tte peut tre dnie laide de la formule magique headheight=hauteur et sa position par rapport au corps du texte laide de headsep=espace. la position du pied de page peut tre impose avec footskip=espace qui dnit lespace entre le bas du corps du texte et la premire ligne du contenu du pied de page. Note de marge : dans le mme esprit la largeur et la position de la surface rserve aux notes de marge peuvent tre dnies grce marginparwidth=largeur et marginparsep=espace.
Dans le package geometry les dimensions concernant len-tte, le pied de page et la zone pour les notes de marge, sont par dfaut comptabilises en plus du corps du texte. Des options permettent dinclure lune ou lintgralit de ces dimensions dans le corps du texte pour le calcul, en disant par exemple : je veux que la largeur soit de 10 centimtres, notes de marge comprises. (voir la documentation du package pour les dtails).

10.4

En-tte et pied de page


Les zones au-dessus et en dessous du corps du texte appeles en-tte et pied de page peuvent tre personnalises laide du package fancyhdr. Le principe de base est simple5 , il sut dutiliser la commande : \pagestyle{fancy} pour spcier quon veut utiliser des en-ttes et des pieds de page dnis grce au package fancyhdr. Par dfaut le package produit des traits horizontaux en dessous de len-tte et au-dessus du pied de page dont les paisseurs sont dnies par les commandes \footrulewidth et \headrulewidth. On peut ensuite utiliser les commandes : \fancyhead pour dnir len-tte ; \fancyfoot pour dnir le pied de page ; Ces deux commandes peuvent prendre un argument optionnel constitu dune ou deux squences des caractres suivants : E ou O pour spcier la parit de la page (paire=even, impaire=odd) ; R, L, C pour spcier o lon veut produire linformation : respectivement droite, gauche ou au centre ;
Vous ne serez sans doute pas tout fait daccord avec le terme simple aprs avoir lu la suite...
5

10

10.4 Voici un exemple :

146

VL

\fancyhf{} % on eace tout et on recommence % EN TTE : % initiales droite sur page paire , gauche sur page impaire : \fancyhead[RE,LO]{VL} % numro de page au centre : \fancyhead[C]{\thepage} % numro 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 premire page des chapitres

A Dans la classe book, L TEX fait automatiquement appel au style plain pour les premires pages de chapitre. Pour demander au package fancyhdr de dnir un style particulier pour ces pages, on crit :

% le cas de la premire page dun chapitre \fancypagestyle{plain}{% \fancyhf{}% on eace tout \fancyfoot[C]{\thepage}% numro en bas de la page % on eace tous les traits \renewcommand{\headrulewidth}{0pt}% \renewcommand{\footrulewidth}{0pt}} Vriez maintenant que les pages 3, 17, 37, 73, etc. ont ce style...

10.4.2

Pages vierges avant le dbut dun chapitre

A Dans la classe book en mode recto-verso (cest le cas de ce document), L TEX commence par dfaut un chapitre sur une page impaire appele dans le jargon typoA graphique la belle page . Pour ce faire L TEX fait appel dans direntes commandes internes, la commande \cleardoublepage qui permet dinsrer si ncessaire une page blanche avant le dbut du chapitre. Cette page reoit par dfaut le style des en-ttes et pieds en cours. Dans le manuel que vous avez sous les yeux, nous avons impos un style vide ces pages en modiant la dnition de la commande \cleardoublepage du chier latex.ltx :

\renewcommand{\cleardoublepage}{% rednition de la commande \clearpage\ifodd\c@page\else \hbox{} \vspace*{\fill} \thispagestyle{empty}% ligne ajoute


A Tout ce que vous avez toujours voulu savoir sur L TEX

VL \newpage \fi}

147

10.4

Feuilletez le manuel et cherchez si les pages vierges avant le dbut des chapitres sont bien vides...

10.4.3

Mcanisme de marqueurs

Vous aurez sans doute remarqu que dans ce manuel, les en-ttes des pages contiennent des informations qui dpendent du contexte. Sont en eet insrs sur les pages paires (page de gauche) le titre du chapitre, et sur les pages impaires (page de droite) le titre de la dernire section de la page. Il est possible de produire ce genre den-ttes A car L TEX dispose dun mcanisme de marqueurs que nous allons tenter dexpliquer ici.
A Il nest pas inutile de prciser maintenant que lorsque TEX et L TEX produisent une page, ils vont garnir len-tte et le pied en fonction dinformation collectes le long de la page en question. La production de len-tte et du pied est donc postrieure la composition de la page.

Les commandes \markboth et \markright Soient les commandes : \markboth{texteg }{texted } ou : \markright{texte} Nous allons imaginer que les arguments textex sont stocks dans une pile et une le. Dans cet ordre dide : \markboth empile texteg , et stocke texted dans la le ; \markright stocke texte dans la le. Ces deux commandes de marquage peuvent tre appeles plusieurs fois ou jamais, sur une mme page. Les donnes de la pile et de la le seront exploites au moment de gnrer les en-ttes et pieds de page, lorsque TEX achve la mise en forme de la page, et ceci grce aux commandes : \leftmark renvoie le sommet de la pile, cest--dire texteg du dernier appel \markboth ; \rightmark renvoie le dbut de la le, cest--dire texted du premier appel \markboth ou texte du premier appel \markright.
Une petite subtilit au sujet de la le que nous prsentons ici : tant quaucune commande de marquage najoute de donnes au cours dune page, la le contiendra la dernire information insre dans les pages prcdentes. La le est vide ds quune commande \markboth ou \markright survient.

Un autre moyen de comprendre ce mcanisme de marqueurs pourrait tre de dire :


A Tout ce que vous avez toujours voulu savoir sur L TEX

148

\rightmark vaut 10.4 En-tte et pied de page et leftmark vaut Cosmtique

\leftmark contient la dernire information que jai insre sur la pile ( laide du premier argument de \markboth) ; \rightmark contient la premire information de la le , si on en a mis une sur cette page, ou la dernire qui a t enl ( laide du deuxime argument de \markboth ou de largument de \markright.
Il peut tre utile de savoir que lauteur a utilis ces commandes pour la production dun trombinoscope compos de plusieurs dizaines de noms et photos par page. Lide tait dexploiter le mcanisme de marquage pour faire apparatre dans len-tte le premier et le dernier nom de la page, comme dans un dictionnaire. Il sut pour cela dappeler pour chaque personne (nom et photo) la commande : \markboth{nom du gugusse}{nom du gugusse} puis dinsrer dans les en-ttes la commande \rightmark sur les pages de gauche (impaires) et \leftmark sur les pages de droite (paires)...

Interactions avec les commandes de paragraphe chaque dbut de chapitre, de section, de sous-section, etc. une commande interne A de L TEX fait appel aux commandes de marquages prsentes au paragraphe prcdent, pour stocker des informations susceptibles denrichir len-tte ou le pied de page. Ces commandes se nomment : \chaptermark pour les chapitres ; \sectionmark pour les sections ; ... elles attendent un argument qui contient le titre du chapitre ou du paragraphe. Dans ce manuel, les deux commandes prcdentes ont t dnies 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

Puis : \fancyhead[LE,RO]{\thepage} \fancyhead[LO]{\rightmark} \fancyhead[RE]{\leftmark} Par consquent : droite des pages paires, on trouve (\leftmark) le dernier titre de chapitre rencontr ; gauche des pages impaires, on trouve (\rightmark) le numro et le titre de la premire \section de cette page, ou le numro et le titre de la dernire \section rencontre... Si vous ne me croyez pas voyez par vous-mme le haut de cette page.

10.4 En-tte et pied de page

149

10.4.4

Organisation du document

Il est ncessaire de savoir que dans un document tel que celui que vous lisez, il existe A trois parties qui sont reconnues par L TEX : le front matter, le main matter et le back matter dsignant respectivement le dbut du document (comportant gnralement la prface et le sommaire), la partie principale, et la partie clturant le document (comportant gnralement la table des matires, le ou les index, la ou les biblioA graphies, le glossaire, etc). On doit alors explicitement crire un document L TEX comme suit : \documentclass{classe du document} \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 amens modier les trois commandes permettant de passer dune partie une autre. Pour linstant, il faut savoir que la classe book dnit un boolen : \newif\if@mainmatter
A utilis par dfaut dans L TEX pour savoir si on se trouve dans le main matter ou pas. Nous avons en outre dni pour notre document un autre boolen :

\newif\if@frontmatter qui nous permettra deectuer des traitements particuliers lorsquon sera dans la partie introductive du document. Les trois commandes dlimitant les trois parties sont dnies par : \renewcommand\frontmatter{% \cleardoublepage \@frontmattertrue \@mainmatterfalse \pagenumbering{roman}% numrotation en romain } \renewcommand\mainmatter{% \cleardoublepage \@mainmattertrue \@frontmatterfalse \pagenumbering{arabic}% numrotation en chires arabes } \renewcommand\backmatter{% \cleardoublepage \@frontmatterfalse \@mainmatterfalse }

10

150

Cosmtique

A En farfouillant dans le code de L TEX on peut comprendre que \pagenumbering, la commande permettant de changer la numrotation, rinitialise le compteur de page 1.

10.4.5

Numroter lintroduction en roman petites capitales

Votre serviteur a tenu ce que les pages de lintroduction soient numrotes en chires romains et petites capitales. On ne peut malheureusement pas crire : \renewcommand{\thepage}{\textsc{\roman{page}}} Puisque cela provoque une incompatibilit avec la gestion de lindex. Lide retenue est de procder comme suit : 1. utiliser la numrotation en chire romain minuscule ; 2. dans le pied de page acher \textsc{\thepage} ; 3. modier la commande \index pour que les numros de pages sache en petites capitales. Do dans la dnition de \frontmatter on ajoutera : \let\indexORI\index% sauvegarde de la dnition initiale \renewcommand{\index}[1]{\indexORI{##1|textsc}} \fancyfoot{} \fancyhead[LE,RO]{\textsc{\thepage}} Et dans la dnition de \mainmatter : \let\index\indexORI% pour revenir la dnition initiale Pour tre parfaitement rigoureux on va modier lallure des premires pages de chapitre : \fancypagestyle{plain}{% \fancyhf{} \if@frontmatter% introduction \fancyfoot[C]{\textsc{\thepage}} \else \fancyfoot[C]{\thepage} \fi \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt}} \makeatother

01

10.4.6

Index, bibliographie et table des matires

Dans la classe book, deux environnements sont dnis : thebibliography permettant de produire la bibliographie ; theindex pour produire lindex ; et la commande :

10.5 Environnements avec caractres spciaux \tableofcontents pour produire la table des matires.

151

Ces environnements et cette commande sont conus pour produire des en-ttes avec le numro 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}% [...] } Jai souhait que dans ce manuel les en-ttes ne soient pas en majuscules. Deux solutions sont possibles : 1. utiliser la commande \nouppercase du package fancyhdr et crire dans la dnition de \backmatter : \fancyhead[LO]{\nouppercase\rightmark}% entte en minuscule \fancyhead[RE]{\nouppercase\leftmark}% 2. recopier la dnition de \tableofcontents provenant de book.cls, et la modier pour supprimer les commandes \MakeUppercase. Faire la mme chose pour lindex et la bibliographie. Dans ce document, cest la deuxime solution qui a t adopte. On en a galement prot pour insrer lindex et la bibliographie dans la table des matires, ce qui nest A pas le comportement par dfaut de L TEX et de la classe book. Nous avons donc pour lenvironnement theindex : \renewenvironment{theindex} {% [...] % insertion dans la table des matires \addcontentsline{toc}{chapter}{\indexname} \@mkboth{\indexname}{\indexname}% suppression de \MakeUppercase \thispagestyle{plain} [...] {\if@restonecol\onecolumn\else\clearpage\fi}

10

10.5

Environnements avec caractres spciaux


Les packages fancyvrb et listings ont tous deux la particularit de produire du texte avec des caractres spciaux. Le premier permet de produire des environnements de type verbatim avec beaucoup plus de souplesse. Il permet notamment de personnaA liser dventuelles bordures, les marges, et surtout on peut schapper vers L TEX au beau milieu de lenvironnement, ou comme disent les anglophones : to escape to

152

Cosmtique

A L TEX. En dautres termes, bien qutant dans un environnement o les caractres \, { et } sont sans eet, il est malgr tout possible de faire appel des commandes A L TEX. Le second (listings) a pour objectif de produire des extraits de langage de programmation. Il propose galement parmi un grand nombre de fonctionalits, la posA sibilit de schapper vers L TEX. Nous vous proposons donc ici de dcouvrir ces deux environements laide dexemples en grandeur nature utiliss dans ce manuel.

10.5.1

Digression vers les caractres...

Il peut ne pas tre inutile6 de faire ici une petite digression sur la manire dont TEX mange et digre les caractres quon lui fournit. Il faut savoir que les caractres peuvent entrer dans seize catgories direntes. Chaque caractre peut nappartenir qu une catgorie la fois. Chacune de ces catgories permet de basculer TEX vers un traitement particulier. Par exemple lorsque le caractre \ est rencontr, TEX va lire les caractres qui suivent pour connatre le nom de la commande (ou squence de contrle ), lorsquil rencontre le caractre {, TEX va ouvrir un nouveau groupe, lorsque que le caractre % est lu, TEX va ignorer les caractres jusqu la n de la ligne, cest--dire jusqu ce quil rencontre un caractre catgoris n de ligne , etc. Parmi les catgories reconnues par TEX :
A Catgorie 0 caractre de contrle (\ dans L TEX) ; A Catgorie 1 dbut de groupe ({ dans L TEX) ; A Catgorie 2 n de groupe (} dans L TEX) ;

Catgorie 11 lettre ;
A Catgorie 14 commentaire (% dans L TEX) ;

01

On peut alors samuser mme si cela est assez dangereux changer le contenu de chaque catgorie. Dans lexemple ci-dessous, on a transform les caractres \, {et } en lettres, et on a dcid que les caractres /, ( et ) appartiendraient respectivement aux catgories : caractre de contrle, dbut de groupe et n de groupe. Le caractre # a galement t chang de catgorie, cest dsormais un caractre de commentaire.
{ \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) )\par on retourne dans le monde \LaTeX{}...

En outre, il est intressant de savoir que TEX peut rendre actifs certains caractres (qui entrent alors dans la catgorie 13). Ces caractres peuvent alors tre dnis comme des commandes voici un exemple idiot :
6

Les franais sont parait-il des spcialistes de la litote. Mais ne nous garons pas...

10.2

\bidule{truc muche} en gras A on retourne dans le monde L TEX...

10.5 Environnements avec caractres spciaux


\catcode\+=13 \newcommand{+}{plus} 3 + 4 = 7

153

Dans cet exemple on a rendu actif le caractre +, puis on la dni comme une commande. Vous noterez quici on a pu crer une commande que lon utilise sans faire appel au caractre \.
Il peut tre utile de savoir que lorsquon charge le package babel et lextension franaise, les caractres de ponctuations double sont galement rendus actifs notamment pour empcher la csure avant ceux-ci. En outre le caractre ~ est dans la A catgorie des caractres actifs dans L TEX. On peut dailleurs voir sa dnition dans une A session L TEX interactive : *\show~ > ~=macro: ->\nobreakspace {}. <*> \show~

10.5.2

Environnements maison bass sur fancyvrb

Les environnements du type de verbatim ont pour but de changer lappartenance des caractres leur catgorie respective. En outre, le package fancyvrb permet de dnir A quels caractres permettent de repasser le contrle L TEX. Dans ce document, lenvironnement unixcom a t dni 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 excuter A des commandes L TEX laide des caractres de catgorie 0, de catgorie 1 et de catgorie 2 on peut bien videmment choisir nimporte quel caractre pour ce faire. Il faut cependant garder lesprit que ceux-ci doivent tre la fois lisibles A pour lutilisateur et peu utiliss dautres ns que de repasser le contrle L TEX.
Pour afficher le contenu dune variable : \begin{unixcom} echo ${marg nom variable } \end{unixcom} Pour acher le contenu dune variable : echo ${nom variable}

10.3

3 plus 4 = 7

10

La commande \marg permet de produire son argument entre chevrons simples et en pench. Les autres paramtres de la commande \DefineVerbatimEnvironment ont pour but de prciser lallure de la bordure (paramtres frame...), la marge de gauche (paramtre xleftmargin) et le fait que les premiers caractres de chaque ligne seront systmatiquement ignors (gobble). Comme le montre la documentation du package fancyvrb beaucoup dautres options sont disponibles. Un autre environnement de ce genre a t cr pour saisir les commandes dEmacs dans lannexe consacre AucTEX. Lenvironnement en question (baptis emacscom) a t cr comme suit :

154 \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}

Cosmtique

Pour jouer Tetris dans Emacs :


10.5

M-x tetris

10.5.3

Environnements pour les langages de programmation

Le package listings reconnat la syntaxe dun grand nombre de langage de programmation. Une manire simple dutiliser ce package consiste crer son propre environnement laide dune commande analogue \newenvironment : \lstnewenvironment{C}{\lstset{language=C}}{} On pourra alors simplement crire :
\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 / int main ( ) { p r i n t f ( " b o n j o u r monde\n" ) ; return 0 ; }

Bien videmment une foultitude doptions de conguration permet dadapter cet environement vos besoins. Le plus simple et le plus ecace est sans doute de lire la documenation accompagnant le package. titre dexemple, il faut savoir que lon peut changer la mise en vidence des mots rservs et des commentaires du langage considr. Ainsi, en crivant :

01

\lstnewenvironment{Cbis}{% \lstset{language=C, basicstyle=\rmfamily\slshape, commentstyle=\rmfamily\upshape,}}{} On aura :


\begin{Cbis} /* hello world en C */ int main() { printf("Salut...\n"); return 0; } \end{Cbis} / h e l l o world en C / int main ( ) { p r i n t f ( " S a l u t . . . \ n" ) ; return 0 ; }

10.7

10.6

10.6 About those so called french guillemets

155

A Et puisquil est question des caractres spciaux et de l chappement vers L TEX , il faut savoir qu linstar de fancyvrb, le package listings permet de spcier un caractre permettant cet chappement. Ainsi :

\lstnewenvironment{Cter}{\lstset{language=C, escapechar=@}}{}
A Permet dinsrer des commandes L TEX dans le listing :

\begin{Cter} int main() { printf("bonjour monde\n"); return @\fbox{code de retour}@; } \end{Cter}

int main ( ) { p r i n t f ( " b o n j o u r monde\n" ) ; return code de retour ; }

10.6

About those so called french guillemets


Un des plaisirs de la typographie franaise est sans aucun doute lutilisation de ces merveilleux guillemets la franaise ...7 Cependant le package babel ne gre pas la csure correctement sil on saisit dans un document : \begin{minipage}{5cm} Cette courte phrase dans une bote a pour unique but de montrer que ces symboles ne se comportent pas comme de gentils guillemets. \end{minipage} Cette courte phrase a pour unique but de montrer que ces petits symboles ne se on aura la minipage suivante : comportent pas comme de gentils guillemets. Ce qui est pour le moins gnant... Il est bien sr possible de saisir ces guillemets avec les commandes \og et \fg fournies par le package babel, mais cela est au got de votre serviteur trop contraignant dans la mesure o ce caractre est directement accessible depuis le clavier8 . Il existe une solution qui avait t adopte par le package french palliant le problme de la csure qui consiste rendre actifs les caractres et . Nous avons donc crit : \catcode\ =13 \catcode\ =13 puis dni les deux commandes suivantes : \newcommand{\fermerguillemets}{\unskip\kern.15em\symbol{20}} \newcommand{\ouvrerguillemets}{\symbol{19}\ignorespaces\kern.15em}
7 On notera dailleurs que la mode qui consiste aujourdhui faire subir ses majeurs et index des mouvements doreilles de lapin, pendant quon parle pour dire entre guillemets sans le dire, est clairement emprunte aux amricains. Je propose donc ici publiquement que lon se force utiliser plutt lindex et le pouce pour faire ce geste, il faudra par contre se munir de deux autres bras pour tre en mesure dimiter les deux chevrons et , ou peut-tre quun habile tortillage de quatre doigts dune main peut donner un rsultat... 8 Alt-Gr-z et Alt-Gr-x.

10.8

10

156

Cosmtique

On notera lutilisation de la commande TEX \kern permettant dinsrer un blanc inscable dune longueur donne, de la commande \unskip et enn de la commande \symbol qui insre ici les 19e et 20e caractres de la fonte courante :
\setcounter{car}{1} \whiledo{\value{car}<64}{% \symbol{\value{car}}$_{\thecar}$ \stepcounter{car}} 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

Enn, on a aect aux caractres les deux commandes prcdentes : \let =\fermerguillemets \let =\ouvrerguillemets
Cette faon de faire a trois inconvnients mineurs que je suis bien incapable de rsoudre aujourdhui. Tout dabord, les moteurs sachant grer le codage Utf 8 et permettant TEX de rendre actif le caractre (alors cod sur 2 octets), sont aujourdhui peu rpandus et javoue humblement que je ne les ai pas encore tests. Par consquent la manipulation propose ici est limite aux codages utilisant 1 octet par caractre . Ensuite on ne peut utiliser ces guillemets dans un titre au risque davoir des artfacts dans les signets/bookmarks dun chier pdf. Enn, ces guillemets ne fonctionnent pas avec lenvironnement ltxexemple dni la n du chapitre suivant. Un drame quoi !

10.7

Une bote pour la minitable des matires


Le package mini-toc permet comme son nom lindique de produire des minitables des matires que lon peut insrer dans un document un endroit donn, gnralement en dbut de chapitre. Aprs avoir utilis lordre \dominitoc dans le prambule, on fait ensuite appel la commande \minitoc pour insrer cette minitable des matires lendroit voulu. La documentation du package explique tout cela en dtail et prsente notamment les dirents styles que lon peut utiliser. Pour ce manuel, jai trouv lide dune table des matires en dbut de chapitre sduisante, mais les styles proposs par le package ne me convenaient pas. En fait je souhaitais pouvoir mettre les titres de sections dans un bote comme ceci :

01

Sommaire x.1 Le premier titre x.2 Le deuxime titre x.3 etc. Cest--dire une bote avec un titre ici le titre est Sommaire . ma connaisA sance, L TEX ne propose pas de telles botes et suite une question pose sur les forums de discussions, une bonne me en loccurrence Benjamin Bayart me propose un code TEX rpondant au cahier des charges. Je vous propose dans ce A paragraphe, une version9 L TEX dune bote avec titre...
Tout fait discutable et limite dans ses fonctionnalits comme tout logiciel pondu par un bricoleur...
9

10.9

10.7 Une bote pour la minitable des matires

157

10.7.1

Linterface de la commande

Plusieurs solutions sont possibles pour crer une telle commande. En sinspirant de A linterface des botes de L TEX, on peut crer une macro dont la syntaxe dutilisation serait :
\titlebox{\footnotesize Un titre}{% Le contenu de la bote}
10.10

Le contenu de la bote

Un titre

ou encore :
\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

10.7.2

Quand mme un peu de TEX

La primitive de TEX \leaders permet de remplir un espace lastique avec ce qui vous passe par la tte. Sa syntaxe : \leadersce qui vous chanteespace permet donc de remplir lespace avec ce qui vous chante. Par exemple :
\framebox[3cm]{% \leaders\hbox{o}\hfill}
10.12

10.11

oooooooooooooo

La primitive \hbox de TEX (utilise par \mbox et \makebox) permet de crer des botes horizontales :
\framebox[3cm]{% \leaders\hbox to 3pt{o}\hfill}
10.13

o o o o o o o o o o o o o o o o o o o o o o o o o o

Les \leaders peuvent galement tre utiliss avec la primitive \hrule de TEX permettant de dessiner des traits :
\framebox[3cm]{% \leaders\hrule height 4pt\hfill}

10

Ici, le ressort \hfill stire les trois centimtres de la \framebox et est rempli par un trait de hauteur quatre points.
\framebox[3cm]{% \leaders\hbox to5pt{% \leaders\hrule width1pt\hfill% \kern2pt}\hfill}

Dans lexemple ci-dessus, lespace de trois centimtres est rempli par des boites de cinq points de large, contenant chacunes delles des \leaders comme dans lexemple prcdent, et un blanc de deux points de large. Avec TEX, on peut rgler la raideur du ressort de la manire suivante :

10.15

10.14

158
\framebox[5cm]{% \hskip0pt plus 2fill X\hskip0pt plus 3fill}
10.16

Cosmtique
X

La dimension : \hskip 0pt plus nfill permet de dnir une longueur lastique de raideur relative n. Dans lexemple prcdent la lettre X se trouve donc au 2/5 de la bote... En utilisant ce type de blanc lastique et des \leaders, on peut dnir la commande suivante : \newcommand{\traitressort}[2][1]{% \leaders\hrule height#2\hskip0pt plus #1fill\relax} pouvant tre par exemple utilise comme suit :
\framebox[5cm]{% \traitressort[2]{2ex}X\traitressort{2pt}}
10.17

on a donc dans la bote de cinq centimtres : un blanc lastique de raideur 2, rempli dun trait de quatre points de hauteur ; la lettre X ; un blanc lastique de raideur 1, rempli dun trait de deux points de hauteur. Nous allons bien entendu nous servir de cette commande pour la suite...

10.7.3

Conception de la bote

Pour concevoir la bote proprement parler, nous allons crer trois \parbox comme suit : titre contenu 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. Nous allons voir maintenant comment on peut construire ces trois botes et les positionner correctement les unes par rapport aux autres.

10.7.4

Le code

Nous allons avoir besoin dune bote pour stocker la \parbox centrale : \newsavebox{\boitetitre} et de deux dimensions :

10.7 Une bote pour la minitable des matires \newlength{\largeurboitetitre} \newlength{\hauteurboitetitre}

159

qui portent un nom susamment explicite mvitant ainsi des phrases alambiques expliquant la signication de telle ou telle variable. La premire tche que lon 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}% ... } \kern est une commande TEX permettant dinsrer un blanc inscable, 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 lpaisseur du trait et deux fois lespace \fboxsep. Vous vous souvenez sans doute que les dimensions \fboxrule et \fboxsep dnissent respectivement lpaisseur du trait et lespace entre la bordure et le contenu dune bote simple. Par consquent, on a : \largeurboitetitre correspond la largeur de la \parbox centrale augmente de deux fois \fboxsep ; \hauteurboitetitre correspond la hauteur totale augmente de lespace occupe par les deux traits horizontaux : 2(\fboxsep+\fboxrule). On peut donc construire une premire version de la commande : \newcommand{\titleboxI}[2]{% ... \parbox{\fboxrule}{% le trait de gauche \rule{\fboxrule}{\hauteurboitetitre}}% \parbox{\largeurboitetitre}{% la bote centrale \begin{flushleft} \usebox{\boitetitre} \end{flushleft}}% \parbox{\fboxrule}{% le trait de droite \rule{\fboxrule}{\hauteurboitetitre}}}} Ce qui donnera pour linstant :
\titleboxI{titre}{Bidule truc muche} \titleboxI{encore}{% \parbox{4cm}{truc\\bidule\\machin}}
10.18

10

Bidule truc muche truc bidule machin

160

Cosmtique

Il reste donc modier le contenu de la \parbox centrale pour ajouter les deux traits horizontaux, celui du bas, et celui du haut coup par le titre. Lide est dentasser trois botes : 1. une bote contenant le titre et des traits ressorts : 2. la bote stockant le contenu (\boitetitre) ; 3. un trait de largeur \largeurboitetitre. Voici une premire approche : \newcommand{\titleboxII}[2]{% ... \parbox{\largeurboitetitre}{% la bote centrale \begin{flushleft} \makebox[\largeurboitetitre]{% \traitressort{\fboxrule}#1\traitressort[5]{\fboxrule}}\\ \usebox{\boitetitre}\\ \rule{\largeurboitetitre}{\fboxrule} \end{flushleft}} ...} qui donnera :
titre Bidule truc muche encore truc bidule machin

\titleboxII{titre}{Bidule truc muche} \titleboxII{encore}{% \parbox{4cm}{truc\\bidule\\machin}}


10.19

On dirait que cest pas tout fait a . Il faudrait penser faire en sorte que la commande \\ eectue un saut vertical quivalent la dimension \fboxsep. On en prote au passage pour faire subir au titre une translation verticale vers le bas :

01

\newcommand{\titleboxIII}[2]{% ... \parbox{\largeurboitetitre}{% la bote 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 bote pour la minitable des matires


titre Bidule truc muche encore truc bidule machin

161

\titleboxIII{titre}{Bidule truc muche} \titleboxIII{encore}{% \parbox{4cm}{truc\\bidule\\machin}}


10.20

On dirait que a na pas arrang grand chose... Il faut savoir que lorsque TEX entasse des botes en mode vertical, il insre de lui mme des espaces entres ces botes de manire ce que les lignes soit espaces 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 can also inhibit interline glue by saying \nointerlineskip between two boxes.

Lordre \nointerlineskip rsout donc le problme : \newcommand{\titleboxIV}[2]{% ... \parbox{\largeurboitetitre}{% la bote 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 encore truc bidule machin
10.21

\titleboxIV{titre}{Bidule truc muche} \titleboxIV{encore}{% \parbox{4cm}{truc\\bidule\\machin}}

10

Ce qui rpond au cahier des charges.


Dautres amliorations laisses en guise dexercice peuvent tre apportes cette commande. On pourra par exemple dnir un argument optionnel permettant de rgler labaissement du titre (on a mis ici -.5ex en dur). Il est galement possible de rgler le rapport des traits entourant le titre. Enn, il est tout fait envisageable de rgler lespace autour du titre (ici il ny en a pas).

162

Cosmtique

10.7.5

Utilisation avec package minitoc

Lutilisation de la commande \titlebox prcdemment dnie, dans le package minitoc se fait simplement en revtant le chapeau de monsieur Poirot. En inspectant la loupe le chier de style, on trouve la dnition dune commande nomme \minitoc@. Jai simplement recopi le code de cette macro et insr un appel la merveilleuse commande \titlebox.

01

11
Sommaire 11.1 Quelques bricoles 11.2 Des nota 11.3 Des citations 11.4 Des lettrines 11.5 Un sommaire 11.6 Un glossaire 11.7 Des onglets
A 11.8 Exemples L TEX

De nouveaux jouets

Je suis mon bien-aim, Et ses dsirs se portent vers moi. Viens, mon bien-aim, sortons dans les champs, Demeurons dans les villages! Ds le matin nous irons aux vignes, Nous verrons si la vigne pousse, Si la eur souvre, Si les grenadiers eurissent. L je te donnerai mon amour. Le Cantique des cantiques Ct 7 11.

ous prsentons dans ce chapitre les outils qui ont t crs spcialement pour ce manuel. Pour comprendre la plupart des commandes et environnements dnis ici, il est impratif davoir lu les deux prcdents chapitres... Il est question dans ce chapitre de la manire dont le nota avec panneau danger a t cr, des lettrines apparaissant en dbut de chapitres, du sommaire, du glossaire, des onglets contenant le numro du chapitre courant, et enn de lenvironnement permettant A de produire du code L TEX et son interprtation cte cte.

11.1

Quelques bricoles
Arguments et convention typographique
Dans un document parlant de langage informatique, il est important de faire ressortir clairement les arguments de commande ou de fonction. Par exemple on crira :

11

11.1.1

Pour compiler le fichier \bwarg{fichier} : \begin{flushleft} \ttfamily latex \bwarg{fichier} \end{flushleft}

Pour compiler le chier chier :


11.1

latex chier

163

164

De nouveaux jouets

La commande \bwmarg crit son argument en fonte penche, entre les symboles et produits respectivement par les commandes \langle et \rangle en mode mathmatique. De plus vous aurez sans doute remarqu quon peut utiliser une notation indice comme dans lexemple 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 : cp chier1 ... chiern chierdst


11.2

La commande \bwarg1 est dnie comme suit : \newcommand{\marg}[2][]{% {\normalfont% \textsl{$\langle$#2% \ifthenelse{\equal{#1}{}}{}% si largument optionnel est prsent {$_\mathit{#1}$}% on lache en indice $\rangle$}}}% La commande \normalfont permet de revenir la fonte par dfaut dans le document. Ce qui explique que chier napparat pas en fonte machine crire dans lexemple 11.1. Dans la version lectronique du document version lue sur un cran il a t dcid, pour la mise en vidence, dutiliser la couleur plutt que les caractres et . Ainsi on peut dnir la commande \colarg : \newcommand{\colarg}[2][]{{% \normalfont\color{blue!90}#2% un bleu \ifthenelse{\equal{#1}{}}{}{$_\mathit{#1}$}}} On pourra ensuite grce un boolen habilement positionn, dnir une commande gnrique \marg faisant appel lune ou lautre des versions (noir & blanc ou couleur) : \ifversionenligne \let\marg\colarg \else \let\marg\bwarg \fi Cette construction fait appel la commande \let de TEX prsente de manire lumineuse la section 9.2.3 page 116.

11

11.1.2

Autour de la gnration de lindex

Lorsque dans le texte du prsent manuel, il est question dune commande, dun environnement, dun package, dune classe de document, etc. il est fait appel une commande particulire insrant automatiquement une entre dans lindex. Ainsi par exemple :
1

Pour black & white argument...

11.1 Quelques bricoles


Le package \ltxpack{varioref} permet dutiliser la commande \ltxcom{vref}...
11.3

165
Le package varioref permet dutiliser la commande \vref...

La commande \ltxpack est dnie comme suit. Tout dabord : \newcommand{\ltx@pack}[1]{% \upshape\textsf{#1}} dnissant la commande \ltx@pack permettant simplement de produire le nom du package en sans srif. On dnit ensuite : \newcommand{\ltxpack}[1]{% \ltx@pack{#1}% \protect\index{extensions!\protect\texttt{#1}}% \protect\index{#1@\protect\textsf{#1 extension}}} qui appelle la commande prcdente, et qui insre deux entres dans lindex. Une de la forme nom du package extension et lautre comme sous-entre de extensions . La commande \protect permet ici dviter les ennuis si la commande \ltxpack est elle-mme en argument dune autre commande. Dans un mme ordre dide, la commande \ltxcom est dnie tout dabord par : \newcommand{\ltx@com}[1]{% \texttt{\symbol{92}#1}} permettant de produire en fonte machine crire, le nom de la commande prcd du A caractre \. La commande \symbol est une commande L TEX permettant dinsrer ici le 92e caractre de la fonte slectionne (en loccurrence le backslash). On peut alors dnir la commande nale : \newcommand{\ltxcom}[1]{% \ltx@com{#1}% \index{#1@\protect\texttt{\symbol{92}#1}}} qui appelle la commande prcdente et introduit une entre dans lindex. Lide retenir, cest quil est peut tre utile de dnir des commandes pour insrer automatiquement des entres dans lindex. On pourrait par exemple dnir une commande : \newcommand{\jargonanglais}[1]{% \emph{#1}% \index{#1}} permettant la fois de formater les mots du jargon en anglais, et de les insrer dans lindex, voire dans un index spcial. De mme si un mot revient souvent dans un document on peut dnir une commande pour le produire et linsrer dans lindex. Par exemple dans ce manuel, on a dni : \newcommand{\postscript}{% PostScript% \protect\index{PostScript}}

11

11.1.3

Des renvois

La version papier de ce document est parseme de renvois comme celui-ci parlant de glossaire qui na strictement rien voir avec le propos du moment2 si ce nest D.3.6 p. 229

166

De nouveaux jouets

quil sagit dun renvoi. La commande mise en uvre pour les renvois a t baptise \voir et attend deux arguments : \voir{label cible}{texte objet du renvoi} Par exemple, le renvoi prcdent a t produit par : \voir{chap-glossaire}{glossaire} Toute la dicult de la conception de cette commande rside dans lorientation des triangles qui dpend de la parit de la page. Cette dicult peut tre leve grce lutilisation 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 dnies, produisant chacunes les renvois dans la marge et les marques dans le texte. Do 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 On notera quoutre les deux arguments obligatoires, la commande accepte un argument optionnel dni par dfaut comme tant le caractre de paragraphe (). Les deux commandes \v@irpageimpaire et \v@irpagepaire sont symtriques lune de lautre et ont pour objet : 1. dencadrer le texte objet du renvoi par des triangles correctement orients ; 2. de produire une note marginale avec la cible du renvoi. Les triangles sont obtenus laide de symboles contenus dans le package amssymb :
Oh les \og joulis\fg{} triangles : $\blacktriangleleft$ et $\blacktriangleright$ ! Oh les joulis triangles : et !

Le petit triangle plat est obtenu grce la commande suivante : \newcommand{\petit@triangle}{% \makebox[2.5pt]{\tiny$\blacktriangle$}} On peut alors crire :
Mais, il sont tous \petit@triangle{}petits ces \petit@triangle{}triangles...
11.5

11

11.4

Mais, il sont tous petits ces triangles...

Il nest pas inutile de noter lusage de la bote de deux points et demi de large pour A faire croire ce naf de L TEX que cest la largeur eective de \blacktriangle. Ce qui nest bien entendu pas le cas, mais contribue coller ce petit triangle au mot qui le suit. Je sens que vous ntes pas convaincu, donc :
Je veux dire que nous ne sommes pas en train de parler de glossaire, ou alors vous ne suivez pas du tout...
2

11.1 Quelques bricoles


Mais, il sont tous {\tiny$\blacktriangle$}% petits ces {\tiny$\blacktriangle$}triangles...
11.6

167
Mais, il sont tous petits ces triangles...

Voici nalement la commande permettant de faire un renvoi dans le cas dune 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 numro et la page de la cible du renvoi ... $\blacktriangleright$ #1~\ref{#2} p.~\pageref{#2}}}} Pour la page impaire il faut faire la mme chose que pour la page paire, mais en tenant compte que cest une page impaire :-) Dans la version en ligne les renvois apparaissent comme un lien hypertexte. Ceci est facilement ralisable grce la commande \hyperref du package ponyme. On aura donc quelque chose du genre : \newcommand{\voir}[3][\S]{% \hyperref[#2]{#3}} Largument optionnel ne sert ici rien dautre qu assurer la compatibilit avec la version papier de la commande \voir.

11.1.4

Changement de marges

plusieurs reprises dans ce document, jai eu recours des changements de marges A provisoires. Cest le cas notamment des exemples de code L TEX avec le rsultat en face, ou pour les pigraphes. Pour ce faire, Marie-Paul Kluth3 qui maintient la Faq A franaise de L TEX avait suggr 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}} Lide est donc de dnir une liste dont on change les marges. Les deux arguments quattend cet environnement correspondent respectivement aux dimensions des marges gauche et droite. Une ide intressante serait celle dun environnement dans lequel les marges ont des dimensions direntes selon la parit de la page. Un tel environnement peut tre dni comme suit : \newenvironment{agrandirmarges}[2]{% \begin{list}{}{% \setlength{\topsep}{0pt}% \setlength{\listparindent}{\parindent}% \setlength{\itemindent}{\parindent}% \setlength{\parsep}{0pt plus 1pt}%
3

11

Qui possde un lom prdestil...

168

De nouveaux jouets

Figure 11.1: Une gure qui ne sert rien si ce nest montrer quon peut momentanment 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}} Notez quon utilise ici la commande \isodd pour tester la parit de la page. La gure 11.1 montre un exemple dutilisation de cet environnement avec le code suivant : \begin{figure}[tb] \begin{agrandirmarges}{1cm}{2cm} % ici on a 1cm de plus ct reliure % et 2cm de plus ct bord ... \caption{Une figure qui ne sert rien...} \end{agrandirmarges} \end{figure}

11.2

Des nota
Les pictogrammes4 ont t conus avec le logiciel xg et sont reprsents la gure 11.2 en trois centimtres de large. Les nota insrs a et l dans le document,

11
Figure 11.2: Les pictogrammes du manuel ont t produits par un environnement dni par votre serviteur, bas sur une fonctionnalit de niveau TEX dcouverte lors de mes laborieuses lecture du TEXBook : la commande \parshape. Cette commande permet de donner une forme arbitraire un paragraphe :
Lide de ces pictogrammes a t inspire par la lecture de TEXbook, comme je lexplique en introduction.
4

11.2 Des nota


\parshape=5 2cm 3cm 2cm 3cm 1cm 2cm 1cm 2cm 0pt \textwidth 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 a

169

aaaaaaaaa aaaaaaaaaa aaaaaaa aaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaa

Le nombre suivant le signe = permet de spcier le nombre de lignes auxquelles on imposera une dformation. Suivent ensuite des couples de dimensions indiquant le retrait et la longueur de chaque ligne dforme. Dans lexemple ci-dessus : les deux premires lignes auront un retrait de deux centimtres et mesureront chacune trois centimtres ; les deux lignes suivantes seront indentes dun centimtre et mesureront deux centimtres ; la cinquime et dernire spcication dtermine lallure de toutes les lignes restantes : retrait de zro centimtre et longueur de la ligne gale la longueur prdnie \textwidth. Pour insrer un nota dans un paragraphe, on va donc dplacer les deux premires lignes laide 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 lon peut dcaler deux lignes dans un paragraphe et ensuite continuer comme si de rien ntait...

11.7 11.8

Attention ce paragraphe a uniquement pour but de montrer que lon peut dcaler deux lignes dans un paragraphe et ensuite continuer comme si de rien ntait...

Bon, il reste essayer de mettre limage 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 lon peut dcaler deux lignes dans un paragraphe [...]

11
Attention ce paragraphe a uniquement pour but de montrer que lon peut dcaler deux lignes dans un paragraphe [...]
11.9

videmment, limage se pose sur la ligne comme nimporte quel autre caractre. On la met dans une bote de largeur nulle dont le contenu est align droite :

170
\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 lon peut dcaler deux lignes dans un paragraphe [...]

De nouveaux jouets

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 lon peut dcaler deux lignes dans un paragraphe [...]

11.10

Attention ce joli paragraphe a uniquement pour but de montrer que lon peut dcaler deux lignes dans un paragraphe [...]

Attention ce joli paragraphe a uniquement pour but de montrer que lon peut dcaler deux lignes dans un paragraphe [...]

A Bon, encore rat, il faut faire croire L TEX que la bote quon translate verticalement est de taille nulle :

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 lon peut dcaler deux lignes dans un paragraphe [...]

11.11 11.12

Attention ce joli paragraphe a uniquement pour but de montrer que lon peut dcaler deux lignes dans un paragraphe [...]

On y est presque. Deux ajustements sont ncessaires : la bote est un peu trop basse, puisque la ligne de rfrence est le bas de la ligne du texte. Par consquent on peut enlever 1ex (la hauteur dun caractre) la translation ; il serait bon dajouter un espace entre le pictogramme est le texte. On dnit pour cela une longueur \padnota.

11.2 Des nota


\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 quon peut dcaler deux lignes dans un paragraphe [...]

171

Attention ce joli paragraphe a uniquement pour but de montrer quon peut dcaler deux lignes dans un paragraphe [...]
11.13

Et ouala ! Il ne reste qu modier ce code pour crer un nouvel environnement. La technique choisie ici est de se baser sur lenvironnement list prsent au paragraphe 9.5 page 126. Le code complet de lenvironnement est le suivant : \newenvironment{pictonote}[1]{% on passe le nom du chier 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 lutilisation de la dimension \@totalleftmargin permettant dobtenir la largeur de la marge de gauche dans une liste, en tenant compte dventuelles imbrications. En eet la dimension \leftmargin dans une liste correspond la marge de gauche relativement lenvironnement contenant la dite liste.

11

On pourra ensuite utiliser cet environnement en lui passant en paramtre un chier particulier, ou mieux dnir un nouvel environnement par exemple : \newenvironment{nota}{% \begin{pictonote}{votre chier}}{\end{pictnote}}

172

De nouveaux jouets

Pour terminer cette section sur les nota il faut savoir que cet environnement a un dfaut : 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 quil y a un emplacement prvu pour le pictogramme, alors quici on na pas vraiment lintention den mettre un, non ? Pour viter ce genre de dsagrment il faut rinitialiser les retraits au niveau TEX grce aux incantations vaudoues suivantes : \par\parshape=1\@totalleftmargin\linewidth qui pourra faire lobjet dune commande insrer manuellement au dbut de chaque nouveau paragraphe, comme je viens de le faire ici :-)

11.3

Des citations
pigraphes
Les pigraphes provocatrices de ce manuel ont t produites par un environnement A que jai nomm epigraphe. Par exemple au dbut du code L TEX du chapitre 2, on trouve : \chapter{Ce quil faut savoir} \label{chap-savoir} \begin{epigraphe}{Les proverbes Pr \textbf{21} 11} Quand on chtie le railleur, le simple sassagit ;\\ quand on instruit le sage, celui-ci gagne en savoir. \end{epigraphe} Lenvironnement epigraphe est dni comme suit : \newenvironment{epigraphe}[1] {% clause begin \vspace*{-1.5cm}% \small\sffamily% mise en vidence \savebox{\nomepigraphe}{#1}% une bote 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 lorigine \end{flushright}% \end{changemargin}\par\vspace*{0.6cm}} Il faut bien entendu dclarer la bote quon utilise pour sauvegarder lorigine de notre citation : \newsavebox{\nomepigraphe} Les blanc verticaux (\vspace) insrs avant et aprs cet environnement permettent de caler correctement lpigraphe entre le dbut du chapitre et la minitable des matires.

11.3.1

11

11.3 Des citations

173

11.3.2

Citations

Quelques citations parsment 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 linfini. Elle ramne ltre sans finir au commencement. Le commencement quau bord de la tombe jentrevois est le \emph{porc} quen moi la mort ni linsulte ne peuvent tuer. La terreur au bord de la tombe est divine et je menfonce dans la terreur dont je suis lenfant. \end{unecitation} xxxxxxxxxxxxxxx

xxxxxxxxxxxxx La vieillesse renouvelle la terreur linni. Elle ramne ltre sans nir au commencement. Le commencement quau bord de la tombe jentrevois est le porc quen moi la mort ni linsulte ne peuvent tuer. La terreur au bord de la tombe est divine et je menfonce dans la terreur dont je suis lenfant. Georges Bataille xxxxxxxxxxxxxxx

Nous allons crer pas pas cet environnement de manire mettre le doigt sur A quelques problmes classiques auxquels on peut tre confront avec monsieur L TEX. On va dnir lenvironnement citation en sappuyant sur celui du paragraphe 9.6 page 133 (permettant de faire une remarque encadre) 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}

11.14

11

Ce qui donne :

174
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 femmes sont esclaves ; tant quelles ne seront pas compltement mancipes, notre propre libert sera impossible. \end{citationi} Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs

De nouveaux jouets

Avant avant avant avant avant avant avant avant avant avant avant avant avant avant Dans presque tous les pays les femmes sont esclaves ; tant quelles ne seront pas compltement mancipes, notre propre libert sera impossible. Michel Bakounine, 1845 Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs

On peut galement changer lindentation du paragraphe dans la minipage (qui vaut par dfaut 0pt dans cet environnement) en modiant dans lenvironnement la valeur de la longueur \parindent : ... \begin{lrbox}{\boitecitation} \begin{minipage}{.8\linewidth}% \setlength{\parindent}{10pt}% ...

pour indenter la 1re ligne

On insre ensuite des guillemets en dbut 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} ... On se rfrera aux paragraphes 9.2.1 et 9.2.1 page 115 pour la signication des commandes \ignorespaces et \unskip. Ce qui donne :
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 femmes sont esclaves ; tant quelles ne seront pas compltement mancipes, notre propre libert sera impossible. \end{citationiii} Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs Avant avant avant avant avant avant avant avant avant avant avant avant avant avant Dans presque tous les pays les femmes sont esclaves ; tant quelles ne seront pas compltement mancipes, notre propre libert sera impossible. Michel Bakounine, 1845 Aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs aprs

Ensuite on y est presque on se propose de rendre largument auteur de la citation optionnel de manire pouvoir produire une citation sans auteur si besoin est. Lide est de dclarer un boolen de manire mmoriser le fait quun auteur est prsent ou pas : \newboolean{auteurcitationpresent}

11.16

11

11.15

11.4 Des lettrines On modie ensuite la dnition de lenvironnement comme suit :

175

\newenvironment{unecitation}[1][] {% argument optionnel vide par dfaut % 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 ncessaire ... Puis on modie la clause \end de lenvironnement en insrant lauteur uniquement sil est prsent 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 ... Enn, on met la citation sur un fond. On peut par exemple dclarer cette couleur grce au package xcolor : \definecolor{coulcitation}{rgb}{0.60,0.70,0.90}% Il sut alors de remplacer la commande \usebox de la clause end par quelque chose du genre : \setlength{\fboxsep}{10pt}% \colorbox{coulcitation}{\usebox{\boitecitation}} Ce qui donnera nalement :
avant avant avant avant avant avant avant \begin{citationiv}[Pierre \textsc{Desproges}] Il tait tellement obsd qu la fin il sautait mme des repas. \end{citationiv} Aprs aprs aprs aprs aprs aprs aprs avant avant avant avant avant avant avant Il tait tellement obsd qu la n il sautait mme des repas. Pierre Desproges Aprs aprs aprs aprs aprs aprs aprs

11.4

Des lettrines
Les documents soigns font souvent appel aux lettrines qui permettent, selon les rgles dusage en typographie, de produire la premire lettre du chapitre en gros, ainsi que le mot ou groupe de mots qui suit. Par exemple :

11.17

11

\lettrine{Les documents} soigns font souvent appel aux lettrines, qui selon les rgles dusage en typographie...

es documents soigns font souvent appel aux lettrines, qui selon les rgles dusage en typographie...

Il y a deux dicults dont une a dj t surmonte : comment appliquer un traitement une seule lettre dun argument dune commande ;

11.18

176

De nouveaux jouets

comment dcaler les lignes pour laisser la place la lettrine. On utilisera pour cela la commande \parshape comme pour le nota ( 11.2 page 168).

11.4.1

La commande \glurps ou un pas vers TEX

A Au niveau de L TEX cest la commande \newcommand qui permet de crer de nouA velles commandes. Une des limitations de L TEX pour ce qui concerne la cration de commandes rside dans le fait que les dlimiteurs darguments sont toujours les caractres { et }. Comme nous le verrons un peu plus bas, au niveau de TEX, cette contrainte nexiste pas. En eet, pour crer une commande avec TEX, on peut crire :

\def\bidule{machin truc} \bidule{} et \bidule

11.19 11.20 11.21 11.22

machin truc et machin truc

Avec un ou plusieurs arguments, on crira


\def\bidule#1#2{(1=#1) et (2=#2)} \bidule{ab}{cd}

(1=ab) et (2=cd)

On note quen TEX, on crit dans la dnition les arguments dans lordre. Ce qui est intressant et que lon va exploiter pour notre lettrine, peut tre illustr par les exemples suivants dutilisation de la commande \bidule :
\def\bidule#1#2{(1=#1) et (2=#2)} \bidule abcd \bidule ab cd (1=a) et (2=b)cd (1=a) et (2=b) cd

On remarque donc que si on ne dlimite pas explicitement les arguments avec les caractres { et }, le premier argument (#1) est remplac par le premier caractre rencontr, le deuxime argument (#2) par le deuxime caractre, etc. Encore plus intressant, on peut dnir trs souplement le format dappel de la commande, par exemple :

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 caractre /.
\bidule abc/d \bidule ab/cd (1=a) et (2=bc)d (1=a) et (2=b)cd

Par consquent cette dernire commande prendra comme premier argument, le premier caractre rencontr, et comme deuxime : tout ce quelle trouve jusquau caractre /. On peut donc crer une bauche de commande pour une lettrine :

11.4 Des lettrines


\def\glurps#1#2/{{\Huge#1}\textsc{#2}} \newcommand{\lettrinedev}[1]{\glurps#1/} \lettrinedev{Bon b} ouala le travail

177

Bon b ouala le travail

On va mme 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

11.23

11.4.2

Insertion de la lettrine dans un paragraphe

Pour insrer la lettrine dans un paragraphe on aura recours la commande \parshape. La gure 11.3 montre que lon doit dnir deux dimensions pour insrer la lettrine : 1. lindentation de la premire ligne, correspondant la largeur de la grosse lettre plus celle de la suite de la lettrine ; 2. lindentation de la deuxime ligne, correspondant la largeur de la grosse lettre ventuellement augmente dune espace pour arer un peu.

op
Paragraphe

Figure 11.3: Insertion de la lettrine dans un paragraphe On dnit les dimensions suivantes : \indletH et \larligH respectivement lindentation et la largeur de la premire ligne (la ligne du Haut ) du paragraphe contenant une lettrine ; \indletB et \larligB la mme chose pour la deuxime ligne (la ligne du Bas ) Ceci permet dcrire 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 prt recevoir une jolie lettrine qui occupera deux lignes environ voire mme exactement...

11.24

on b

ouala le travail

11

11.25

Ce paragraphe est prt recevoir une jolie lettrine qui occupera deux lignes environ voire mme exactement...

178

De nouveaux jouets

Lemplacement est prt, il reste insrer la grosse lettre et ce qui suit la bonne place. On commence par crer une commande pour la fonte utiliser :
\DeclareFixedFont{% \lettrinefont}{T1}{ppl}{m}{n}{2\baselineskip} {\lettrinefont Pour crire les grosses lettres}

Pour crire les grosses lettres

Ensuite on va modier la commande \glurps5 et la commande \lettrine pour quelles calculent elles-mmes les dimensions dnies ci-avant (\indletH, \larligH, ...). \newsavebox{\lalettrine}% une bote 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 hritire de \glurps) sauve la lettrine dans une bote et en prote pour sauvegarder la largeur de la grosse lettre dans la dimension \indletB, et la dimension de lensemble dans \indletH. Tentons maintenant, une premire 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}} Qui donne6 :
\lettrineI{Ce chapitre} a pour but de produire des caractres les uns derrire les autres et ainsi de former des mots donnant lieu des phrases. e chapitre C a pour but de produire des caractres les uns derrire les

11.27

11.26

autres et ainsi de former des mots donnant lieu des phrases.

11

Les lecteurs trs attentifs auront not que ce nota nest pas la bonne place. Il semblerait que des translations horizontales et verticales soient ncessaires. On commencera ici par se dcaler vers la gauche. la dernire ligne de la dnition de la commande \lettrine, on crira donc : \noindent\hspace{-\indletH}% dcalage quivalent la largeur totale qui produira :
Vous pourrez notez quil est tout fait inadmissible dutiliser des noms aussi ridicules pour les commandes que vous serez amen dnir... 6 Des traits ont t ajouts pour bien situer la bote englobant la lettrine.
5

11.5 Un sommaire
\lettrineII{Ce chapitre} a pour but de produire des caractres les uns derrire les autres et ainsi de former des mots donnant lieu des phrases.

179
chapitre Ce a pour but de produire des caractres les uns derrire les autres et ainsi de former des mots donnant lieu des phrases.

Puis on intgre la translation verticale : \noindent\hspace{-\indletH}% \raisebox{-\baselineskip}[0pt][0pt]{\usebox{\lalettrine}} qui produira :


\lettrineIII{Ce chapitre} a pour but de produire des caractres les uns derrire les autres et ainsi de former des mots donnant lieu des phrases. e chapitre a pour but de produire des caC ractres les uns derrire les autres et ainsi de former des mots donnant lieu des phrases.

Les lecteurs encore veills auront remarqu que la grosse lettre est un peu trop rapproche du texte. On peut donc augmenter lgrement la dimension \indletB. Voici nalement le code de la lettrine : \newcommand{\lettrine}[1]{% \creerlettrine#1/% \addtolength{\indletB}{3pt}% pour avoir un peu despace \setlength{\larligH}{\textwidth-\indletH}% \setlength{\larligB}{\textwidth-\indletB}% \parshape=3% \indletH\larligH\indletB\larligB0cm\textwidth% \noindent\hspace{-\indletH}% \raisebox{-\baselineskip}[0pt][0pt]{\usebox{\lalettrine}}}

11.5

Un sommaire
Cest une pratique courante que le sommaire dun document rdig en franais soit plac en tte de document et contienne un condens de la table des matires. Cette dernire est quant elle gnralement insre la n. En fouillant dans le chier book.cls dnissant la classe ponyme, on trouve une instruction commune aux commandes \tableofcontents et \listoffigures : la commande \@starttoc. \@starttoc{toc} pour la commande \tableofcontents et : \@starttoc{lof} pour la commande \listoffigures. La commande interne \@starttoc permet de commencer un table (matires, gures, etc.) partir dun chier auxiliaire portant lextension donne en argument, ici toc pour la table des matires et lof pour la liste des gures. Nous avons donc cr dans un premier temps la commande \sommaire comme suit : \newcommand{\sommaire}{% \chapter*{Sommaire} \@starttoc{som}}

11.29

11.28

11

180

De nouveaux jouets

Le chier portant lextension som contiendra les entres du sommaire. Ltape suivante consiste remplir le chier som. Pour cela, il faut savoir que les commandes \chapter, \section, etc. font toutes appel une commande pour insrer une entre dans la table des matires. Ainsi quand on crit : \section{Bidule truc muche} il sera fait appel la commande : \addcontentsline{toc}{section}{Bidule truc muche} pour insrer le titre dans la table des matires. De mme lorsquon crit : \chapter{Machin chose} il sera fait automatiquement appel : \addcontentsline{toc}{chapter}{Machin chose} Cette dernire commande crit dans le chier de table des matires (portant donc lextension toc) la ligne : \contentsline{chapter}{\numberline {1}Machine chose}{3}{chapter.1} Et (Hercule Poirot a eu du pain sur la planche), il se trouve que cette dernire commande, fait nalement appel une commande de la forme : \l@type dentre pour produire lentre dans la table. Par exemple la commande prcdente fait appel l@chapter. Ceci parce quon trouve la dnition suivante : \def\contentsline#1{\csname l@#1\endcsname} dans latex.ltx. Nous passons volontairement sous silence le dtail de ces commandes, et on se contentera ici de savoir que la commande \l@section produit une entre de table de matires pour les sections, \l@subsection produit une entre pour les subsections, etc. Pour nir notre sommaire, il reste crire dans le chier de sommaire. Nous avons choisi dinsrer dans le sommaire les titres de parties, chapitres et sections. Pour arriver nos ns, nous avons ajout cette insertion la commande \addcontentsline originale : % sauvegarde de l originale \let\aclORIG\addcontentsline % rednition \renewcommand{\addcontentsline}[3]{% \aclORIG{#1}{#2}{#3}% appel de loriginale \ifthenelse{% on insre 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 mme manire que la table des matires, puisque tous deux font appel la mme commande interne : \aclORIG{som}{section}{...} cest donc la commande \l@section qui sera appele pour mettre en page lentre. Pour mettre en page le sommaire diremment, il aurait fallu crire :

11

11.6 Un glossaire
\aclORIG{som}{somsection}{...}

181

puis dnir la commande \l@somsection pour mettre en page les entres de sections dans le sommaire...

11.6

Un glossaire
Il est souvent utile dagrmenter un document dun glossaire ayant pour but de rendre moins mystrieux les termes du jargon quon appelle aussi vocabulaire technique. Nous proposons ici une mthode sappuyant sur le programme makeindex prsent au paragraphe 6.3 page 88 et sur le paragraphe 10.1 page 135 prsentant les outils permettant de changer lallure de lindex.

11.6.1

Tordre le cou makeindex

De mme que pour la cration dun index, on doit mettre dans le prambule du doA cument la commande \makeglossary. Cette commande demande monsieur L TEX de bien vouloir crer un chier portant lextension glo, rceptacle des entres de glossaire. On pourra crire : \glossary{machin chouette chose} pour ajouter machin chouette chose dans le glossaire. En ralit cette commande a pour eet dajouter dans le chier dextension glo, la ligne : \glossaryentry{machin chouette chose}{no page} La phase suivante consiste produire le glossaire proprement dit grce au programme makeindex et au chier dentres de glossaire : makeindex -s style glossaire document.glo -o document.glx qui produit, en utilisant comme chier de style gglo.ist le glossaire suivant : \begin{theglossary} \item machin chouette chose\pfill 27 \end{theglossary} On note donc que le glossaire quil va falloir insrer explicitement dans notre document est constitu par lenvironnement theglossary et que chaque entre donne lieu un \item et son numro de page (ici 27 pour lexemple). Pour arriver nos ns, il nous faudra : 1. dnir lenvironnement theglossary car rien nest fait par dfaut dans
A L T

EX ;

11

2. produire les entres avec un terme suivi de sa dnition, sous la forme : \begin{theglossary} \item[terme] blabla de dfinition \end{theglossary} 3. supprimer les numros de pages puisquils napparaissent pas dans un glossaire. Ces trois tches font lobjet des paragraphes suivants.

182

De nouveaux jouets

11.6.2

Un environnement pour le glossaire

Au paragraphe 9.5.6 page 132 du chapitre 9, nous avons propos une liste particulire permettant de prsenter les entres dans une bote avec une ombre. La dnition 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}} o \boiteentreeglossaire est : \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 ces commandes. En tous les cas on aura :
\begin{leglossaire} \item[Sphre] Patate bien rgulire. \end{leglossaire}
11.30

Sphre Patate bien rgulire.

11.6.3

Produire le chier .glx

De manire ce que makeindex produise le chier dextension glx avec cet environnement on doit crire le chier de style suivant : preamble "\n\\begin{leglossaire}" postamble "\n\\end{leglossaire}" Doit galement apparatre dans ce chier de style que lon nommera par exemple glossaire.ist le mot clef dsignant les entres de glossaire dans le chier .glo : keyword "\\glossaryentry" Pour que chaque entre soit constitue dun terme et de sa dnition, nous avons dni la commande suivante : \newcommand{\entreeglossaire}[2]{\glossary{[#1] #2}} De telle sorte que : \entreeglossaire{Sphere}{Patate bien rgulire.} aura pour eet dcrire : \glossary{[Sphre] Patate bien rgulire.}

11

11.6 Un glossaire dans le chier .glo. Aprs appel de makeindex : makeindex -s glossaire.ist document.glo -o document.glx on aura dans le chier .glx : \begin{leglossaire} \item [Sphre] Patate bien rgulire., no de page \end{leglossaire}

183

Si vous mavez bien suivi jusquici, vous devriez rler et me dire : faudrait ptt voir enlever cette vilaine virgule et ce numro de page... Certes. La virgule est automatiquement mise par makeindex comme dlimiteur de premier niveau entre une entre dindex et le numro de page o apparat cette entre. Pour utiliser autre chose quune virgule (ici rien en loccurrence) on crit dans le chier de style : delim_0 "" Il reste rgler le cas du numro de page. La solution que jai adopte consiste utiliser une commande absorbante en guise de mise en forme du numro de page (cf. 6.3.3 page 90). Voici la commande\entreeglossaire modie : \newcommand{\pasdenumerodepage}[1]{}% mange largument \newcommand{\entreeglossaire}[2]{% \glossary{[#1] #2|pasdenumerodepage}} ceci permet de crer le chier .glx de la forme : \begin{leglossaire} \item [Sphre] Patate bien rgulire.\pagedenumerodepage{27} \end{leglossaire} qui enverra le numro de page (ici 27 pour lexemple) dans le vide intersidral.

11.6.4

Recollons les morceaux

Pour en nir avec le glossaire, il nous faut crer une commande susamment souple qui aura essentiellement pour but de produire un chapitre contenant le glossaire, cest--dire dinsrer dans le document le chier .glx. On peut dcomposer les tches eectuer par la commande en question, comme suit : crer un nouveau chapitre (avec comme titre glossaire ) ; lire les entres de glossaire (commande \entreeglossaire) depuis un chier ; insrer le chier .glx Voici la commande eectuant ces traitements : \newcommand{\printglossary}[1][glossaire.tex]{% \chapter*{Glossaire} \label{chap-glossaire} \markboth{Glossaire}{Glossaire}% entte de page % insertion dans la table des matires : \addcontentsline{toc}{chapter}{Glossaire} % insertion des entres de glossaire :

11

184 \InputIfFileExists{#1}{% \typeout{Donnes du glossaire}}{% \typeout{Pas de fichier glossaire.tex}} % insertion du chier . glx \InputIfFileExists{\jobname.glx}{% \typeout{Glossaire tri}}{% \typeout{Pas de fichier \jobname.glx}}

De nouveaux jouets

On notera les points suivants concernant cette commande : le chier dentre de glossaire est par dfaut le chier glossaire.tex ; on a dcid dinsrer le glossaire dans la table des matires ; pour insrer un chier, on fait appel la commande \InputIfFileExists A dnie dans le format L TEX ayant la forme suivante : \InputIfFileExists{chier inclure} A {code L TEX si le chier existe} A {code L TEX si le chier nexiste pas} Enn \jobname contient le nom du chier (ou document matre) en cours de compilation et la commande \typeout ache un message sur la console de compilation. Enn, le chier glossaire.ist contient nalement : delim_0 "" preamble "\n\\begin{leglossaire}" postamble "\n\\end{leglossaire}" keyword "\\glossaryentry"

11.7

Des onglets
Javais initialement prvu de mettre en page ce document sur du papier plus petit que le standard A4 pour ensuite le massicoter. Do lide de crer des onglets, petits carrs colors se retrouvant au ras de la feuille aprs massicotage. Le fait que ltablissement dans lequel je travaille sest spar de son massicot hydraulique dune part, et que dautre part tout le monde na pas facilement accs ce type de matriel ma fait changer davis quant au bien fond que ce document devait imprativement tre massicot. Les onglets sont malgr tout rests dans le document, bien que leur place nest plus tout fait au ras de la feuille. Voici comment ils ont t gnrs...

11

11.7.1

Ide retenue

Le cahier des charges est le suivant : les onglets apparaissent sur chaque page du cot oppos la reliure ; ils sont produits lenvers sur les pages paires ;

11.7 Des onglets ils doivent tre une hauteur proportionnelle au numro du chapitre. Do lide :

185

dutiliser les fonctionnalits du package fancyhdr pour produire les onglets ; utiliser des translations verticales pour les positionner ;

11.7.2

Les botes dans la marge

De manire produire les numros de chapitres dans la marge, jai simplement cr des botes paragraphe de largeur et hauteur imposes 7 : \newlength{\ongletwidth} \newlength{\ongletheight} \setlength{\ongletheight}{32pt} \setlength{\ongletwidth}{.96cm} Voici la commande produisant la bote : \newcommand{\b@iteonglet}{% \colorbox[gray]{.7}{% une bote avec un fond gris contenant % la bote paragraphe de largeur et hauteur xe : \parbox[t][\ongletheight][s]{\ongletwidth}{% \vfill% \centering% % on applique un eet miroir selon la parit de la page \ifthenelse{\isodd{\value{page}}}{% \ongletfont\thechapter}{% \reflectbox{\ongletfont\thechapter}}% \vfill}}} On notera lutilisation de la commande \reflectbox du package graphicx. On pourra galement remarquer que le contenu de la bote paragraphe est centr en hauteur grce deux ressorts verticaux et quon insre nalement dans cette bote le numro du chapitre dans une mystrieuse fonte enclenche par la commande \ongletfont.
Et voici la bote :
11.31

...

Et voici la bote : \b@iteonglet...

11 11

Il est important de noter que les botes produites par \colorbox sont assujetties la dimension \fboxsep :
En voici une autre :
11.32

\setlength{\fboxsep}{15pt} En voici une autre : \b@iteonglet...

...

11

On remarquera cette maladie des informaticiens de nommer les variables avec des noms moiti en franais et en anglais...

186

De nouveaux jouets

11.7.3

Position des onglets

Pour positionner les onglets, il faut eectuer deux translations : une horizontale pour pousser longlet jusquau bout de la zone de note marginale ; une verticale en fonction du numro de chapitre. On utilisera le mcanisme de dnition des en-ttes de page du package fancyhdr pour positionner les onglets. Lide est simple, on crit : \fancyhead[RO]{\bfseries\thepage\onglet} \fancyhead[LE]{\onglet\bfseries\thepage} pour dire quen plus du numro de page en gras, on mettra dans len-tte le rsultat 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 Dans le cas des pages impaires, il faut dans un premier temps pousser la bote de longlet 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} Voici ce que donnerait cette commande sur cette page : 186

11 11
Pour placer correctement le numro de la page dans len-tte, il faut donc leurrer A L TEX en utilisant une bote de largeur nulle contenant la bote de longlet 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 :
Je suis toujours trs mu de commencer une phrase par le beau Q de la police Computer Modern...
8

11.7 Des onglets 186

187

Pour les pages impaires, sil on veut pousser la bote de longlet contre le bord de la zone rserve aux notes marginales, on doit galement tenir compte de la largeur totale de cette bote, comme le montre les points de rfrences dans le schma cidessous :

26
corps du document

27

zones des notes marginales

Par consquent, le positionnement horizontal est obtenu grce 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}} puisqu la largeur de la bote de longlet, il faut rajouter deux fois la dimension \fboxsep induite par la commande \colorbox. Positionnement vertical Reste maintenant traiter le problme du positionnement vertical... La commande \raisebox va nous permettre de positionner verticalement longlet. De plus avec la forme suivante : \raisebox{dplacement}[0pt][0pt]{objet dplacer}
A on fait croire L TEX que lobjet dplacer a une hauteur nulle. Il ny aura par consquent pas de dplacement des objets aux alentours et en particulier ceux constituant len-tte 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 dici un onglet cinq centimtres vers le bas : 187

11

188

De nouveaux jouets

La mthode choisie pour dnir le placement de la bote est la suivante : pour le chapitre de numro c : se dplacer vers le bas dune dimension xe donne df ; ajouter ce dplacement un dplacement proportionnel c. Le dplacement de longlet pour le chapitre c peut scrire : c hauteuronglet o est un facteur permettant despacer les onglets. Si = 1, les onglets seront espacs dexactement la longueur de la bote, avec = 2 ils seront spars par un espacement gal deux fois la hauteur de longlet, etc. Voici pour le premier dplacement : % position de la premire tiquette \newlength{\ongletvshift} \setlength{\ongletvshift}{2cm} Puis pour le facteur alpha : \newcommand{\ongletsep}{1.37} On dclare une dimension permettant de positionner longlet : \newlength{\ongletpos} On peut maintenant crire, la commande \onglet : \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 pour ceux en faisant partie, numrots A, B, etc. a ne collera pas. Puisquon ne pourra pas calculer la position verticale en fonction de ces numros. En petit coup dil dans book.cls nous conrme cela : \newcommand\appendix{\par \setcounter{chapter}{0}% \setcounter{section}{0}% [...] \gdef\thechapter{\@Alph\c@chapter}}

11

A 11.8 Exemples L TEX

189

on peut comprendre ici que lorsquon commence les annexes avec la commande \appendix, le compteur de chapitre est remis zro, et produit en lettre majuscule. Il faut donc trouver une parade pour que longlet continue se dcaler mme aprs les annexes. La solution que jai adopte consiste simplement utiliser un nouveau compteur permettant de numroter les chapitres et les annexes. Pour cela, on le dclare : \newcounter{chapitre} On prcise tout de suite quon veut le produire en chire arabe : \renewcommand{\thechapitre}{\arabic{chapitre}} On ajoute la mise zro de ce compteur dans la commande \frontmatter : \renewcommand\frontmatter{% \cleardoublepage \setcounter{chapitre}{1} [...] } Puis chaque appel de la commande \chapter, on incrmente le compteur : \renewcommand{\chapter}{% \cleardoublepage \stepcounter{chapitre} \thispagestyle{plain} [...] }

11.8

A Exemples L TEX
Pour clore ce chapitre, nous prsenterons lenvironnement ltxexemple permettant dintroA duire des exemples de code L TEX et le rsultat dans le document...

Pour clore ce chapitre, nous prsenterons lenvironnement \ltxenv{ltxexemple} permettant dintroduire des exemples de code \LaTeX{} et le rsultat dans le document...

11.8.1

Outils ncessaires

Le package fancyvrb propose deux fonctionnalits axes autour des chiers. Tout dabord, la commande \VerbatimInput permet dinsrer le contenu dun chier. Par exemple : \VerbatimInput[lastline=4]{corps/jouets.tex} donne (jouets.tex est le chier source de ce chapitre) : \chapter{De nouveaux jouets} \label{chap-jouets} \begin{epigraphe}{Le Cantique des cantiques Ct \textbf{7} 11} Ensuite, lenvironnement VerbatimOut ralisant la tche inverse :

11.33

11

190 \begin{VerbatimOut}{chier} A code L TEX \end{VerbatimOut}

De nouveaux jouets

A stockera le code L TEX dans le chier nomm chier. Le deuxime outil ncessaire est dni en sinspirant de la dnition des commandes \settowidth, \settoheight, etc. dans le chier latex.ltx. Il sagit dune commande permettant de rcuprer la hauteur totale dun objet, cest--dire sa hauteur additionne de sa profondeur :

\newcommand{\hauteurtotale}[2]{% \setbox\@tempboxa\hbox{{#2}}% sauvegarde de lobjet mesurer \setlength{#1}{\ht\@tempboxa}% rcupration de la hauteur \addtolength{#1}{\dp\@tempboxa}% laquelle on ajoute la profondeur \setbox\@tempboxa\box\voidb@x}% vidange de la bote temporaire On notera lutilisation des commandes TEX, \ht et \dp renvoyant respectivement la hauteur et la largeur dune bote. La commande \setbox et lquivalent TEX de A \savebox. La bote \@tempboxa est une bote temporaire utilise par L TEX et enn, la bote \voidb@x est une bote vide.

11.8.2

Le principe de lenvironnement ltxexemple

Lenvironnement ltxexemple que nous prsentons en dbut de section, est un peu plus complexe que ce que nous avons rencontr jusqu maintenant. En eet lorsquon crit : \begin{ltxexemple} contenu \end{ltxexemple} il faut dune part pouvoir produire contenu tel quel (en verbatim), et dautre part A pouvoir linterprter cest--dire le traiter comme L TEX le ferait. Finalement, on se A rend compte quil faudrait demander L TEX de traiter deux fois contenu ce qui nest pas envisageable. Une solution pour contourner ce problme est prcisment de sauvegarder contenu dans un chier pour pouvoir le rutiliser, soit en tant que A verbatim, soit pour tre interprt par L TEX. La premire dicult surmonter est donc de crer un environnement sauvegardant son contenu : \newenvironment{ltxexemple}{% \VerbatimEnvironment \begin{VerbatimOut}{\jobname.exa}}{% clause begin \end{VerbatimOut}}% clause end

11

Ne me demandez pas quoi sert la commande \VerbatimEnvironment non documente dans le package, mais ncessaire au bon fonctionnement de lenvironnement dni 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 lenvironnement : \end{VerbatimOut}% \VerbatimInput{\jobname.exa}% le contenu tel quel \input{\jobname.exa}% le contenu interprt par LaTeX Ainsi :

A 11.8 Exemples L TEX

191 du code \LaTeX{}...


A du code L TEX...

\begin{ltxexemplei} du code \LaTeX{}... \end{ltxexemplei}

donne :

Il reste donc modier la mise en page des deux parties. Ce qui fait lobjet du paragraphe suivant.

11.8.3

Mises en bote

Lide de base consiste mettre dans deux botes : \newsavebox{\b@iteentree} \newsavebox{\b@itesortie}


A pour stocker l entre (le code) et la sortie (le code interprt par L TEX). On crira donc dans la clause end de lenvironnement :

[...] \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 interprt \begin{minipage}{.44\linewidth} \setlength{\parindent}{10pt}% par dfaut 0pt \input{\jobname.exa} \end{minipage}}% \usebox{\b@iteentree} \usebox{\b@itesortie} \end{ltxexempleenv} Lenvironnement ltxexempleenv est analogue celui que nous avons prsent au paragraphe concernant lagrandissement des marges. La seule dirence est quil bascule en \small et eectue quelques rglages sur les blancs verticaux. On notera que la bote entre occupera 53% de la largeur de la page et, la bote sortie 44%. Ainsi, le code : \begin{ltxexempleii} du code \LaTeX{}... \par\noindent et cest tout. \end{ltxexempleii} Donnera :
du code \LaTeX{}... \par\noindent et cest tout.
A du code L TEX... et cest tout.

11

Nous avons mis des bordures aux ras des deux botes entre et sortie pour mettre en vidence leurs dimensions. On peut galement noter ici que la clause begin de lenvironnement est en ralit dnie comme suit :

192 \pagebreak[3]% on suggre de changer de page ici \VerbatimEnvironment% \begin{VerbatimOut}[gobble=2]{\jobname.exa}

De nouveaux jouets

Loption [gobble=2] permet de manger systmatiquement deux caractres au dbut de chaque ligne car tout bon diteur9 ajoute des espaces pour lindentation du source. Ainsi le code : \begin{ltxexempleii} du code \LaTeX{}... \par\noindent et cest tout. \end{ltxexempleii} donnerait :
code \LaTeX{}... ar\noindent cest tout.
A code L TEX... arcest tout.

La suite de la mise en page consiste en la cration du trait central. Ceci fait lobjet du paragraphe 11.8.5 page 194. Avant cela nous nous attarderons sur la numrotation des exemples.

11.8.4

Numrotation des exemples

Pour numroter les exemples, il est ncessaire de dclarer un compteur : \newcounter{c@exemple}[chapter] qui sera donc remis zro chaque chapitre. On prcise la manire dont il sachera lorsquon y fera rfrence : \renewcommand{\thec@exemple}{\thechapter.\arabic{c@exemple}} chaque appel lenvironnement ltxexemple, on fera appel : \refstepcounter{c@exemple} pour incrmenter le compteur et mettre jour le systme de rfrence. La petite bote noire que vous avez pu apercevoir au milieu des exemples a pour largeur \l@rgeurnumex (dnie 16 points) et est produite par : \newcommand{\affichenumex}{% \raisebox{-1.7pt}[0pt][0pt]{% \setlength{\fboxsep}{.7pt}% \colorbox{black}{% la bote noire \makebox[\l@rgeurnumex]{% une bote de largeur xe (16 pt) \color{white}% le contenu en blanc \tiny\textsf{\thec@exemple}}}}} Ainsi :
9

11

Je veux bien sr parler de vi, // pardon, Emacs...

A 11.8 Exemples L TEX

193
11.36 11.37 11.38

La petite bote (\affichenumex)

La petite bote ( 11.36 )

Un nouvelle version de lenvironnement ltxexemple pourrait donc tre : \newenvironment{ltxexempleiii}{% \VerbatimEnvironment% \begin{VerbatimOut}[gobble=2]{\jobname.exa}}{% \end{VerbatimOut}% \begin{ltxexempleenv}% \refstepcounter{c@exemple}% incrmentation du compteur \savebox{\b@iteentree}{ [...] }% \savebox{\b@itesortie}{ [...] }% \usebox{\b@iteentree}% \kern2pt% \parbox{3pt}{\rotatebox{90}{\affichenumex}}% \kern2pt% \usebox{\b@itesortie} \end{ltxexempleenv}}% qui donnera :
\setlength{\fboxsep}{-2pt} \setlength{\fboxrule}{.5mm} Ceci est un \fbox{EXEMPLE} idiot... Ceci est un EXEMPLE idiot...

La dernire dicult est de grer le systme de rfrencement. En eet, on ne peut pas crire : Voici un exemple.\label{monexemple}. Puisque la squence \label{monexemple} apparatra dans lexemple :
Voici un exemple.\label{monexemple} Voici un exemple.

Ce qui nest pas souhaitable... La solution adopte ici a t de passer lventuelle tiquette de \label lenvironnement par le truchement dune commande. On a dni : \newcommand{\l@belex}{} % la valeur courante du label \newcommand{\labelexemple}[1]{% commande pour la mettre jour \renewcommand{\l@belex}{#1}} Ainsi avant lutilisation dun environnement ltxexemple il sura dappeler : \labelexemple{tiquette} pour pouvoir ensuite y faire rfrence avec \ref{tiquette} ou une commande quivalente. Dans la dnition de lenvironnement ltxexemple, on a ajout : \ifthenelse{\equal{\l@belex}{}}{}{% si le label courant nest pas vide \label{\l@belex}}% on pose un label qui signie en franais : si la commande \l@belex est dnie une valeur non vide, 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

ltiquette serait dnie plusieurs fois (message Label xxx multiply dened de A L TEX). On pourrait donc crire : \ifthenelse{\equal{\l@belex}{}}{}{% si le label courant nest 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 porte de la commande \renewcommand est ici locale au groupe dans lequel le test \ifthenelse intervient. Pour contourner ce problme on utilisera la construction TEX : \global\def\l@belex{} en lieu et place du \renewcommand pour eectuer une rednition porte globale...

11.8.5

Le trait central

Il reste donc traiter la partie ayant pour but de tracer le vilain trait entre les deux botes. La premire chose faire est de mesurer la hauteur totale des deux botes, et de conserver la plus importante. Ceci est ralis grce au code suivant : % mesure de la bote d entre \hauteurtotale{\tempodim}{\usebox{\b@iteentree}}% % mesure de la bote 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 lobjet dune dclaration pralable. La commande \settotoalheight est quant elle prsente au paragraphe 11.8.1. La dimension du trait noir tracer entre lentre et la sortie correspond exactement \hauteurtrait moins \l@rgeurnumex (la largeur de la bote contenant le numro de lexemple). On stocke cette dimension : % hauteur du trait sans la bote du numro \setlength{\hauteurdutrait}{\tempodim-\l@rgeurnumex} Nous avons dcid aprs un vote bulletin secret en assemble gnrale, de dessiner 70% du trait au dessus du numro et 30% en dessous. Par consquent 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 supplmentaire qui pourrait tre insr par la commande \\. Plus de dtails sont donns la section prsentant limplmentation de la bote avec titre pour la minitable des matires.

A 11.8 Exemples L TEX

195

Voil, cest tout pour ce merveilleux Voil, cest tout pour ce merveilleux environenvironnement \ltxenv{ltexexemple}. Notez que la nement ltexexemple. Notez que la dimension dimension \texttt{3pt} pourrait faire lobjet 3pt pourrait faire lobjet de la dnition dune de la dfinition dune longueur... longueur...
11.39

11

III
Annexes

A
Sommaire A.1 A.2 A.3 A.4 A.5 Principe gnral Ce qui change Trucs et astuces Hyperliens Interaction avec psfrag et pstricks

Gnrer des pdf

ette annexe prsente un moyen de gnrer des documents au format Pdf (portable document format). Ce format cr par la socit Adobe prsente lavantage dtre eectivement portable dun ordinateur un autre, et de manire plus gnrale, dun systme dexploitation un autre. Il est donc intressant aujourdhui de A pouvoir gnrer de tels chiers partir dun source L TEX.

A.1

Principe gnral
Il y a au moins trois faons de gnrer des chiers au format Pdf partir dun A document L TEX : 1. laide de pdatex qui sutilise en lieu et place du programme latex pour A traduire le source L TEX en Pdf ; 2. laide de dvipdf permettant de traduire le chier Dvi en Pdf ; 3. laide de ps2pdf pour traduire une sortie PostScript en Pdf.
Votre serviteur qui a une certaine exprience de la premire solution sattardera sur pdatex. Un des pr-requis pour une utilisation correcte de ce logiciel est soit lutilisation du package lmodern ; soit linstallation de lextension CM-Super font de Vladimir Volovich. La distribution Etch de la Debian contient un paquet prt lemploi. On peut galement trouver des documentations sur le oube permettant dinstaller cette extension sur une distribution Debian Sarge avec teTEX (http://sravier.free.fr/linux/ debian_latex_cm-super.html).

199

200

Gnrer des pdf

A.2

Ce qui change
A Pour compiler le chier source L TEX et produire un chier au format Pdf, on utilisera le programme pdatex :

pdatex monchier.tex commande qui, si le document source ne contient pas derreur, crera le chier nomm 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 ; Liens : condition dinclure le package hyperref, le document Pdf contiendra automatiquement des liens chaque occurrence de la commande \ref, dans la table des matires, dans lindex, etc. De plus une table des matires droulante sera gnre pour le programme Acrobat Reader.

A.3

Trucs et astuces
Puisquon gnre souvent du Dvi ou du Pdf partir du mme source et que lon doit inclure des chiers graphiques des formats dirents selon la situation, on utilisera le package ifpdf et lastuce suivante : \ifpdf % un truc spcifique la sortie en pdf \else % un machin spcifique la sortie en dvi \fi

A.3.1

Gestion des graphiques

On pourra crire ensuite quelque chose du genre : \ifpdf \graphicspath{{pngs/}{{pdfs/}} \else \graphicspath{{epss}} \fi Si on a pris soin de ranger les chiers graphiques dans les rpertoires pngs, pdfs et epss... Ce nouveau if permet galement des constructions du style : \ifpdf \includegraphics[pdftex]{graphicx} \else \includegraphics{graphicx} \fi
A Ce qui ne doit pas tre ncessaire avec les dernires moutures de L TEX.
1

Les chiers du logiciel Xg peuvent tre convertis en Pdf

A.3 Trucs et astuces

201

A.3.2

Vignettes

Les versions rcentes de pdatex permettent de crer des vignettes (thumbnail ) pour les visualiseurs evince et Acrobat Reader pour ne citer queux. Auparavant, il tait ncessaire dutiliser le package thumbpdf : \usepackage{thumbpdf} puis excuter : thumbpdf monchier.pdf Cette commande cre un chier nomm monfichier.tpt qui sera inclus la compilation suivante avec pdatex.

A.3.3

Pagination

Pour faire apparatre les numros de pages du document dans le navigateur Acrobat Reader, il est ncessaire dajouter loption pdfpagelabels linclusion du package hyperref (cf. suivant).

A.3.4

Signets

Les signets (bookmarks en anglais) des visualiseurs de chier pdf sont des sortes d explorateurs de table des matires qui donnent accs directement une section dun niveau dtermin. Il y a eu deux dicults contourner pour produire ce manuel : 1. faire en sorte que le contenu du backmatter (biblio, glossaire, index) soit au mme niveau hirarchique que les parties dans cet explorateur. Par dfaut, ces informations se trouvent en eet caches dans la partie des annexes, car la mme profondeur que les \chapters ; 2. faire en sorte que le lien vers lindex dans les signets pointe eectivement sur lindex...
A Pour rgler le premier problme, il sut de faire croire L TEX qu partir du backmatter les chapitres sont dun mme niveau de profondeur dans la table des matires, que les parties. Lincantation vaudou correspondante est :

\renewcommand{\toclevel@chapter}{-1} placer un endroit judicieux dans un chier de style. Lendroit o lon rednit le \backmatter est sans nul doute un bon choix.
Pour en nir avec les bookmarks, an que celui de lindex pointe eectivement sur lindex (!), on devra cette fois avoir recours une incantation chamanique : \let\printindexORIG\printindex \renewcommand{\printindex}{% \cleardoublepage \phantomsection% cration dune fausse section \addcontentsline{toc}{chapter}{Index} \printindexORIG} permettant de surcharger la commande \printindex en y ajoutant une fausse section laide de la commande \phantomsection fournie avec le package hyperref. Ne men demandez pas plus :-)

202

Gnrer des pdf

A.4

Hyperliens
Le package hyperref permet dinsrer dans les chiers .dvi et .pdf des commandes spciales qui pourront tre exploites par les navigateurs (xdvi et Acrobat Reader entre autres). On pourra alors cliquer sur le texte produit par les commandes telles que \ref pour se rendre automatiquement la zone rfrence. Dans le document que vous avez sous les yeux, la version lectronique possde des liens sur lesquels on peut cliquer pour : toutes les rfrences gnres par \ref, \pageref et \vref ; les notes de bas de page ; les url produites par la commande \url ; les renvois bibliographiques ; les pages pour chaque entre dindex. Pour activer ce systme dhyperliens, on crira : \ifpdf \usepackage[pdftex=true, hyperindex=true, colorlinks=true]{hyperref} \else \usepackage[hypertex=true, hyperindex=true, colorlinks=false]{hyperref} \fi Ce qui fera apparatre les liens en couleur uniquement dans la version Pdf. Ceux de la version PostScript seront quant eux produits en noir ce qui assurera leur lisibilit si le document est imprim en noir et blanc.
Lordre dans lequel on inclura les dirents packages pour un document inuera sur le bon fonctionnement de lextension hyperref. Il arrive mme que lendroit choisi pour linclusion provoque une erreur de compilation. vous de trouver la bonne squence :-)

A.5

Interaction avec psfrag et pstricks


To trick en anglais, ou tricher en franais... 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.5 Interaction avec psfrag et pstricks On obtient a :

203

Soit :

le trac de x = sin(4t), y = sin(3t)...

Dingue, non ? Certes. Le principe de lextension pstricks est dinsrer du code PostScript dans le chier .dvi, code qui pourra tre galement trait par le programme dvips. L o a se corse cest lorsque lon veut utiliser ces bestioles avec pdatex. En eet ce dernier crant directement un chier .pdf partir du .tex, insrer du PostScript dans le chier au format Pdf naura aucun eet... Il est malgr tout possible de contourner le problme :
A 1. gnrer dabord un document L TEX minimal contenant les commandes pstricks ; A 2. compiler ce document avec L TEX pour gnrer un .dvi ;

3. demander dvips de crer un chier au format PostScript encapsul avec loption -E ; 4. convertir ce chier au format Pdf ; 5. inclure ce chier au moment dutiliser pdatex. Tout cela est videmment un peu tordu mais peut tre automatis laide dun Makele, dun petit script Unix, et dune commande... Tout dabord : \newcommand{\includepstricksgraphics}[1]{% \ifpdf\includegraphics{#1}\else\input{#1}\fi} Lide est donc dextraire la portion de code contenant des commandes pstricks pour les stocker dans un chier bidule.tex, puis lorsquon crit : \includepstricksgraphics{bidule}
A on inclura bidule.pdf si on utilise pdatex et bidule.tex si on utilise L TEX. Ensuite, le petit script Unix quon peut adapter ses besoins :

#!/bin/sh # on enlve lextension du 1er argument FILE=${1%.*} # cration dun fichier temporaire psttemp.tex cat > psttemp.tex <<EOF \documentclass{manuel} mettre la classe et les packages adquats \thispagestyle{empty} \begin{document} \input{$FILE} \end{document} EOF # Cration du fichier dvi latex psttemp

204 # Cration du fichier eps dvips -E $TMPFILE.dvi -o psttemp.eps # Cration du fichier pdf epstopdf psttemp.eps --debug --outfile=$FILE.pdf # effacement des fichiers temporaires rm -f psttemp.*

Gnrer des pdf

Ce script sauv sous le nom pstricks.sh pourra tre invoqu comme suit : ./pstricks.sh bidule.tex et cre le chier bidule.pdf que pdatex aura la sagesse dinclure grce la commande \includepstricksgraphics dont le code est donn plus haut. Pour ce qui est du Makele, il nest pas trs dicile partir du script prcdent de dnir une rgle ayant pour but de transformer un chier .tex en un chier .pdf. Avec le version Gnu de make, on aura quelque chose du genre : %.pdf : %.tex ./pstricks.sh $<
Le programme dvips nest pas toujours en mesure de calculer correctement la bote englobante pour le PostScript encapsul. En particulier la section 41 de la documentation de pstricks2 indique que dvips nest pas capable de tenir compte du code postscript gnr pour estimer cette bote englobante. Dans ce cas, il est conseill soit dajouter du texte autour du graphique et dvips arrive sen sortir, soit dutiliser lenvironnement TeXtoEPS. Le document temporaire du script prcdent devient alors : 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 bote

A.5.2 psfrag
La limitation et le principe sont les mmes que pour pstricks. Pour utiliser psfrag avec pdatex, il est ncessaire de procder comme suit :

A 1. gnrer dabord un document L TEX minimal contenant des commandes psfrag ; A 2. compiler ce document avec L TEX pour gnrer un .dvi ;

3. demander dvips de crer un chier au format PostScript encapsul avec loption -E ; 4. convertir ce chier au format Pdf ; 5. inclure ce chier au moment dutiliser pdatex.
2

http://tug.org/PSTricks

A.5 Interaction avec psfrag et pstricks

205

Il y a cependant un petit hic car la gure dont on calcule la bote englobante avec dvips contient du texte gnr par psfrag indiquant les remplacements qui seront eectus. On doit en tenir compte. Dans le script shell, on cre une fonction : function genere_eps { cat > $TMPFILE.tex <<EOF \documentclass{manuel}

\thispagestyle{empty} \begin{document} \input{$1} \end{document} EOF echo "Cration du fichier dvi" latex $TMPFILE > $LOGFILE echo "Cration du fichier $TMPFILE.eps" dvips -E $TMPFILE.dvi -o $TMPFILE.eps >> $LOGFILE 2>&1 } FILE=${1%.*} TMPFILE=truc LOGFILE=truc.log sanspsfrag=$TMPFILE-sanspsf.tex

mettre la classe et les packages qui vont bien

On utilise ensuite cette fonction par deux fois comme suit, dans le script :

# on enlve les lignes contenant la commande \psfrag # et on rcupre la bote englobante du fichier eps sans les psfrag grep -v \\\\psfrag $FILE.tex > $sanspsfrag genere_eps $sanspsfrag bonnebb=$(grep "^%%BoundingBox" $TMPFILE.eps | head -1) # on rcupre la bote englobante du fichier eps avec psfrag genere_eps $FILE mauvaisebb=$(grep "^%%BoundingBox" $TMPFILE.eps | head -1) # on remplace la bote englobante par la bonne sed -i "s/$mauvaisebb/$bonnebb/" $TMPFILE.eps echo "Cration du fichier pdf" epstopdf $TMPFILE.eps --debug --outfile=pdfs/${FILE##*/}.pdf >> $LOGFILE 2>&1 # un petit coup de toilette rm -f $TMPFILE.* $LOGFILE $sanspsfrag
Ce script a plusieurs limitations. Parmi elles : il chouera si une commande \psfrag stend sur plusieurs lignes. On demande en eet grep denlever les lignes contenant \psfrag sans vrier que la commande ne se termine pas une ou plusieurs lignes plus bas...

B
Sommaire B.1 B.2 B.3 B.4 Extensions Les chiers auxiliaires AucTEX Aspell

Mmento

ous trouverez ici quelques informations en vrac sur les extensions de A L TEX, une liste assez complte des chiers auxiliaires qui gravitent autour de votre chier source. Suivent quelques explications succinctes sur la merveilleuse extension AucTEX dEmacs. Enn pour ceux qui ont la chance de travailler dans un environnement Unix, cette annexe sachve sur la conguration dEmacs pour travailler avec le correcteur orthographique Aspell.

B.1

Extensions
A Comme indiqu dans la prface de ce document, TEX et L TEX sont des systmes A ouverts. Autour du noyau L TEX gravitent un certain nombre de packages standard A qui constituent la base du systme. Mais tout utilisateur peut faire voluer L TEX en lui ajoutant des fonctionnalits diverses. On trouve donc une multitude doutils sous forme dextensions (ou packages en anglais) ou sous forme de classe de documents. Certaines sont devenues des standards, toutes sont disponibles sur les serveurs A ddis la distribution de L TEX (cf. chapitre 8) ou sur des pages personnelles, dautres sont fournies avec les Call for papers et autres authors guides. Nous vous donnons ici une liste de packages classiques et vous invitons vous rfrer la documentation qui est gnralement jointe au package. Notez que le site du Loria propose une liste des packages gnraux http://www.loria.fr/ services/tex/packages.html#latex ; il existe dautre part un moteur de recherche contenant plus de mille extensions rfrences, ftp://ftp.loria.fr/pub/unix/ tex/ctan/help/Catalogue/catalogue.html.

french

: utilis pour franciser les documents. Ne coupe pas une phrase entre un mot et une double ponctuation. Propose aussi quelques commandes axes sur la typographie franaise (voir chapitre 7) ;

amsmath : le package pour faire des formules et quations perfectionnes ; array : amliore lutilisation de tabular ; 207

208 hhline fancyhdr varioref


A : tend les bordures de tableaux de base de L TEX ;

Mmento

: permet de personnaliser en-tte et pied de page. Jetez un coup dil sur ceux de ce manuel ; : propose la commande \vref la place de \ref. Celle-ci ajoute page suivante , page 12 , ou rien du tout selon o se trouve lobjet rfrenc par rapport la position du renvoi ; : fournit deux structures de contrle un if then else et un do while . Ce qui permet de faire des commandes un peu plus volues ;

ifthen

chapterbib : permet dinsrer une bibliographie chaque n de chapitre ; overcite bibunits fancybox : crit les citations bibliographiques sous forme dexposant ; : permet de produire des bibliographies composes de plusieurs units ; : propose quatre variantes de \fbox :

\shadowbox

\ovalbox et \Ovalbox . algorithms : pour crire des algorithmes (facilement francisable .) sous la forme dun environnement qui peut tre ottant ou non ; geometry : une extension permettant de changer les marges et la plupart des dimensions intervenant au niveau de la page, de manire assez souple ; url fancyvrb : permet dcrire des adresses sous forme dune url, la csure est gre pour le mieux ; : propose une version amliore de lenvironnement verbatim ;

, \doublebox ,

B.2

Les chiers auxiliaires


Voici la liste des chiers que vous pourrez trouver sur votre disque ct de votre document source. Ces chiers portent tous une extension de trois lettres, les voici1 : tex aux log
A chier source L TEX ; A chier auxiliaire que L TEX utilise pour rsoudre les rfrences, entre autres ;

le chier de trace (dit log le en anglais) contenant les infos de la compilation ; chier device independant, qui va pouvoir tre ach ou imprim selon la situation ; chier contenant la table des matires (initiales de table of contents ) ; chier contenant la liste des gures (list of gure );

dvi toc lof


1

Certains packages crent leur propres chiers auxiliaires comme le package minitoc et la classe lettre ; ils ne sont pas mentionns dans cette liste.

B.3 AucTEX lot bib bbl blg idx ind ilg sty cls chier contenant la liste des tables ; chier source BibTEX contenant des entres de bibliographie ; chier contenant la bibliographie, peut tre gnr partir de BibTEX ; chier trace de BibTEX ; chier des entres dindex non tries ; chier contenant lindex, gnralement gnr par makeindex ; chier trace de makeindex ;

209

chier contenant des dnitions de commandes modiant la mise en page, ou fournissant des outils particuliers ; chier denissant une classe.

A Pour archiver un document L TEX,

Vous pouvez eacer : tous les chiers auxiliaires, les chiers log, ainsi que les chiers de tables des matires et listes de gures et tables. Vous pouvez aussi eacer : le chier bbl si vous tes capable de le gnrer partir dun chier bib et BibTEX. Les chiers dindex peuvent gnralement tre eacs puisquils sont en principe produits par makeindex. Le chier dvi A nest pas indispensable puisque vous tes cens avoir le source L TEX
A Vous devez garder : le source L TEX et les ventuels chiers de styles que vous avez dnis (sty et cls) ; mais si vous en tes au stade de la dnition de classe, le conseil est probablement un peu saugrenu...

B.3

AucTEX
A AucTEX est un module dEmacs qui facilite la saisie de documents L TEX. Il est automatiquement charg lorsquon ouvre un document portant lextension .tex, .sty ou .cls. On peut distinguer trois types daide dans AucTEX :

1. laide au formatage du source (couleur, indentation,...) 2. les raccourcis clavier pour insrer des commandes ou des environnements, 3. laide la compilation.

B.3.1

Formatage du source

Les couleurs et la touche tab jouent le mme rle que dans un buer C ou C++. On notera que M-q formate un paragraphe, c.--d., dcoupe automatiquement le paragraphe en lignes de longueurs peu prs gales.

210

Mmento

B.3.2
fontes

Raccourcis

C-c C-f (Changer Fonte) suivi de : C-e insre \emph{} C-b insre \textbf{} C-t insre \texttt{} C-s insre \textsl{} C-c insre \textsc{} ... Section C-c C-s insre une Section en vous demandant son niveau, son titre et son label dans le minibuer. Commandes et Environnement M-Tab tente de complter le nom en cours (automatic completion ). C-c RET insre une commande. C-c C-e insre 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

C-c C-c tente de suivre le cycle de compilation dun document, en lanant suivant A la situation, L TEX, BibTEX, xdvi,... Notez aussi que AucTEX permet de grer le mcanisme du document matre (cf. 6.4). Pour cela il vous demandera de saisir le nom du document matre lorsque vous ouvrirez un nouveau document dans Emacs. Dans le cas contraire il faudra expliquer gentiment AucTEX qui est le document matre avec :

M-x TeX-master-le-ask ou C-c _

vous devrez alors saisir le nom du chier matre. En agissant ainsi, lorsque vous lancerez une compilation avec C-c C-c sur un des documents esclaves , cest sur le master quelle agira.
Pour certains environnements et certaines commandes dont la syntaxe est connue par AucTEX il vous sera demand quelques prcisions (valeurs des arguments, lgendes, format du tableau,...).
2

B.4 Aspell

211

B.4 Aspell
Aspell est un correcteur orthographique multilingue quon peut interfacer avec lditeur de texte tout faire Emacs. Pour lutiliser dans Emacs, deux commandes connatre :
M-x ispell-change-dictionary

selectionne la langue du dictionnaire (francais ou english), et :


M-x ispell-buffer

commence une session de correction sur le buer. Il est galement possible de vrier lorthographe dun seul mot avec la commande :
M-x ispell-word ou M-$ lheure o jcris ces lignes, la distribution Debian ne congure pas Emacs pour utiliser le programme Aspell par dfaut. Il faut donc ajouter dans votre chier .emacs, la ligne : (setq-default ispell-program-name "aspell")

Il est particulirement utile de noter que lon peut congurer le programme Aspell pour lui demander explicitement dignorer ou non les arguments des commandes A L TEX. On pourra par exemple ne pas vrier largument dune commande ne contenant pas de franais. Ainsi, si lon dnit la commande : \newcommand{\bidule}[2]{% commande prenant 2 arguments ... } Il sura dcrire dans son chier ~/.aspell.conf : add-tex-command bidule pP pour demander Aspell de vrier le second paramtre (P), mais dignorer le contenu du premier (p). Pour ignorer les deux, on aurait crit : add-tex-command bidule pp Enn, Emacs dispose galement dun mode de correction de mot la vole3 quon peut activer ou dsactiver avec la commande :
M-x yspell-mode

Daucuns diront la ourde ...

C
Sommaire C.1 C.2 C.3 Symboles standard Symboles de lAMS Symboles du package textcomp
A

Symboles

V matiques disponibles dans LTEX. Nous avons spar ces symboles en quatre
catgories : les symboles standard du tableau C.1 au tableau C.10 ;
A les symboles de L TEX disponibles avec le package latexsym donns par le tableau C.11 ;

ous trouverez dans cette annexe, une liste de tous les symboles math-

les symboles de lAmerican 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 des fontes PostScript bien connues ZapfDingbats et Symbol. Les symboles de ces fontes sont accessibles en incluant le package pifont et en utilisant la commande : \Pisymbol{pzd}{numro} pour les symboles de la fonte Zapf, et : \Pisymbol{psy}{numro} pour ceux de la fonte Symbol. Le nombre numro est le numro de la case correspondant au symbole choisi dans la table C.22 page 221 ou C.23.

C
213

214

Symboles

C.1

Symboles standard
\alpha \epsilon \theta \lambda o \varrho \upsilon \psi \Gamma \Xi \Phi o Table C.1: Les lettres grecques. \beta \gamma \varepsilon \zeta \vartheta \iota \mu \nu \pi \varpi \sigma \varsigma \phi \varphi \omega \Theta \Sigma \Omega \delta \eta \kappa \xi \rho \tau \chi

\Delta \Pi \Psi

\Lambda \Upsilon

Table C.2: Les oprateurs binaires. \pm \mp \times \div \ast \star \circ \bullet \cdot \cap \cup \uplus \sqcap \sqcup \vee \wedge \setminus \wr \diamond \bigtriangleup \bigtriangledown \triangleleft \triangleright \oplus \ \ominus \otimes \oslash \odot \bigcirc \dagger \ddagger \amalg

\sum \bigcap \bigodot

Table C.3: Les symboles de taille variable. \prod \coprod \int \bigcup \bigsqcup \bigvee \bigotimes \bigoplus \biguplus

\oint \bigwedge

Table C.4: Les points. \ldots . . . \cdots . \vdots . . \ddots .. .

215

Table C.5: Les relations. \leq \prec \preceq \ll \subset \subseteq \sqsubseteq \in \vdash \geq \succ \succeq \gg \supset \supseteq \sqsupseteq \ni \dashv \equiv \sim \simeq \asymp \approx \cong \neq \doteq \propto \models |= \perp \mid | \parallel \bowtie = \smile = \frown . =

\leftarrow \Leftarrow \rightarrow \Rightarrow \leftrightarrow \Leftrightarrow \mapsto \hookleftarrow \leftharpoonup \leftharpoondown

Table C.6: Les ches. \longleftarrow \Longleftarrow \longrightarrow \Longrightarrow \longleftrightarrow \Longleftrightarrow \longmapsto \hookrightarrow \rightharpoonup \rightharpoondown

= =

\uparrow \Uparrow \downarrow \Downarrow \updownarrow \Updownarrow \nearrow \searrow \swarrow \nwarrow

Table C.7: Divers. \aleph \hbar \imath \jmath \ell \wp \Re \Im \prime \emptyset \nabla \surd \top \bot \| \angle \forall \exists \neg \flat \natural \sharp \backslash \partial \infty \triangle \clubsuit \diamondsuit \heartsuit \spadesuit \

216

Symboles

Table C.8: Les fonctions. \arccos \cos \csc \exp \ker \arcsin \cosh \deg \gcd \lg \arctan \cot \det \hom \lim \arg \coth \dim \inf \liminf \limsup \ln \log \max \min \sinh \Pr \sup \sec \tan \sin \tanh

Table C.9: Les dlimiteurs. \uparrow \{ { \lfloor \langle | | \Uparrow \downarrow \} } \updownarrow \rfloor \lceil \rangle / / \| \Downarrow \Updownarrow \rceil \backslash \

Table C.10: Les grands dlimiteurs. \lmoustache \rgroup \rmoustache \arrowvert | \Arrowvert \bracevert

\lgroup

Table C.11: Les symboles de latexsym \lhd \sqsubset \Box \rhd \sqsubset \Diamond \unlhd \Join \leadsto \unrhd \mho

217

C.2

Symboles de lAMS
Table C.12: Les ches de lAMS \dashleftarrow \leftleftarrows \Lleftarrow \twoheadleftarrow \looparrowleft \leftrightharpoons \circlearrowleft \Lsh \upharpoonleft \downharpoonleft \leftrightsquigarrow \rightrightarrows \rightrightarrows \rightleftarrows \rightarrowtail \looparrowright \curvearrowright \downdownarrows \rightsquigarrow \upharpoonright

\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

Table C.13: Les relations de lAMS \leqslant \eqslantless \lessapprox \approxeq \lll \lessgtr \lesseqqgtr \doteqdot \fallingdotseq \backsim \subseteqq \Subset \preccurlyeq \curlyeqprec \precapprox \vartriangleleft \vDash \Vvdash \smallfrown \bumpeq \geqq \geqslant \gtrsim \gtrapprox \ggg \gtrless \gtreqqless \eqcirc \triangleq \thicksim \supseteqq \Supset \succcurlyeq \curlyeqsucc \succapprox \vartriangleright \Vdash \shortmid \between \pitchfork \blacktriangleleft \therefore \blacktriangleright \because

218

Symboles

Table C.14: Ngations de ches de lAMS \nleftarrow \nRightarrow \nrightarrow \nleftrightarrow \nLeftarrow \nLeftrightarrow

Table C.15: Lettres grecques et hbraques de lAMS \digamma \varkappa \beth \daleth \gimel

Table C.16: Dlimiteurs de lAMS \ulcorner \urcorner \llcorner \lrcorner

Table C.17: Ngations de relations de lAMS \nless \nleqq \lvertneqq \nprec \precnapprox \nmid \ntriangleleft \subsetneq \varsubsetneqq \ngeqslant \gneqq \gnapprox \succnsim \nshortparallel \nVDash \nsupseteq \varsupsetneq \nleq \lneq \lnsim \npreceq \nsim \nvdash \ntrianglelefteq \varsubsetneq \ngtr \ngeqq \gvertneqq \nsucc \succnapprox \nparallel \ntriangleright \nsupseteqq \supsetneqq \nleqslant \lneqq \lnapprox \precnsim \nshortmid \nvDash \nsubseteq \subsetneqq \ngeq \gneq \gnsim \nsucceq \ncong \nvDash \ntrianglerighteq \supsetneq \varsupsetneqq

219

Table C.18: Oprateurs binaires de lAMS \dotplus \Cup \doublebarwedge \boxdot \ltimes \rightthreetimes \circleddash \symcenterdot \smallsetminus \barwedge \boxminus \boxplus \rtimes \curlywedge \circledast \intercal \Cap \veebar \boxtimes \divideontimes \leftthreetimes \curlyvee \circledcirc

Table C.19: Symboles divers de lAMS \hbar \triangledown \circledS \nexists \Game \varnothing \blacksquare \sphericalangle \diagup \hslash \square \angle \mho \Bbbk \blacktriangle \blacklozenge \complement \diagdown \vartriangle \lozenge \measuredangle \Finv \backprime \blacktriangledown \bigstar \eth

C.3

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

220

Symboles

Table C.21: Symboles du package textcomp (suite). \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 $ \textdagger \textdblhyphen \textdegree \textdiscount \textdivorced \textdollaroldstyle \textdownarrow \textestimated \textfiveoldstyle \textfouroldstyle \textgravedbl

\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

221

Table C.22: La fonte Zapf Dingbats


0 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

w
39 55

v
40

u
41


42


43

44


45 61


46 62


47 63

i
48 64


49


50


51

52

!
53

"
54

$
56

%
57

&
58

'
59

(
60


65

)
66

0
67

1
68

2
69

3
70

4
71

5
72

6
73

7
74

8
75

9
76

@
77

A
78

B
79

C
80

D
81

E
82

F
83

G
84 100

H
85 101

I
86 102

P
87 103

Q
88 104

R
89 105

S
90 106

T
91 107

U
92 108

V
93 109

W
94 110

X
95 111

Y
96 112

`
97 113

a
98 114

b
99 115

s d

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

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

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

208

209

210

211

212

213

214

215

216

217 233

218

219 235

220 236

221 237

222 238

223

224

225

226 242

227

228 244

229 245

230 246

231

232

234

239

240

241

243

247

248

249

250

251

252

253

254

255

222

Symboles

Table C.23: La fonte Symbol


0 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 50

35

# 3

36

%
37 53

&
38 54

39

40

41

42

43

+ ;

44

45

46

47

48

49

51

52

55

56

57

58

59

60

<

61

62

>

63

64

65

66 82

67 83

68

69

70 86

71

72

73

74

75 91

76

77 93

78

79 95

80 96

81

84

85 101

87 103

88 104

89 105

90 106

92 108

94 110

97 113

98

99

100

102

107

109

111

112

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

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170


171 172 187

173

174

175

176

177

178

179

180

181

182

183

184

185

186

188 204

189

190 206

191

192

193

194

195 211

196

197

198

199

200

201

202

203

205

207

208

209

210

212

213

214

215

216

217

218


219 220 235

221

222 238

223

224

225

226

227

228

229

230

231

232

233

234

236

237

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

D
Sommaire D.1 D.2 D.3 Distribution du moment Les sources du manuel Compilation

Notes de production

J
D.1

ai rassembl ici des lments permettant dexploiter les sources de ce document, A comment les compiler, avec quelle distribution de L TEX, comment les chiers sont organiss, etc.

Distribution du moment
Le prsent ouvrage a t compil sur deux systmes Linux contenant la distribution TEXlive : 1. la distribution TEXlive de la Ubuntu 08.04 2. une distribution TEXlive pour Debian Etch provenant de http://people.debian.org/~preining/TeX/ Toute autre exprience fructueuse sur des systmes dirents est bien entendu la bienvenue... De plus pour la gnration du document au format pdf, seule la famille Computer Modern dans sa version CM-Super a t teste.

D.2

Les sources du manuel


Structure
A sources L TEX dans le rpertoire corps avec un chier par chapitre ;

D.2.1

Les sources du manuel sont organises selon le principe suivant :

les styles (sty et cls) dans le rpertoire styles ; les images dans un rpertoire pngs ;
A le rpertoire texs contient des sources L TEX inclure dans le document (modles de lettre, de fax, code contenant des appels Psfrag ou Pstricks) ;

223

224 les sources xg dans le rpertoire figs ;

Notes de production

tout ce qui a trait lindex, la bibliographie et au glossaire est stock dans le rpertoire bibidx ;
A Les sources xg et certains bouts de chiers L TEX sont traduits au format pdf, postscript encapsul ou non, par un makele les stockant :

dans le rpertoire epss dans le rpertoire pdfs dans le rpertoire pss selon le moteur utilis (latex ou pdflatex).

D.2.2

Styles

Le chier manuel.cls contient la dnition de la classe du manuel. Ce chier fait appel une srie de packages du commerce et une srie de packages maison . On trouve, pour ces derniers, un chier source pour : chaque nouveau jouet : onglets, nota, sommaire, glossaire, bote avec un titre (titlebox.sty), exemples, lettrine, renvois (voir.sty), citations et pigraphes le sommaire la gomtrie globale du document lallure des en-ttes et pieds de pages lallure des sections/chapitres/etc. des commandes en vrac utilises dans le document (manumac.sty) Sauf indication contraire, ces chiers portent un nom ressemblant trangement ce quils contiennent.

D.3

Compilation
Makele
Larborescence racine des sources contient un chier Makele pour le manuel, quil faut copier : cp Makele.manuel Makele

D.3.1

D.3 Compilation

225

D.3.2

Figures

Les gures peuvent tres compiles grce aux commandes : #1. produire les figures make figs #2. gnrer les figures rcursives de lintroduction command latex --interaction nonstopmode guide-local command latex --interaction nonstopmode guide-local # 2 fois pour avoir la table des matires make recursefigs
Il faut disposer du logiciel transg connexe xg pour traduire les sources en pdf et eps. Sur le site http://cours.enise.fr/info/latex est disponible une archive contenant les gures dj traduites...

D.3.3

Dvi et postscript
latex guide-local make bibindex latex guide-local latex guide-local dvips guide-local -o guide-local

D.3.4

Pdf

Rien de particulier pdatex guide-local make bibindex pdatex guide-local pdatex guide-local

D.3.5

Versions imprimables sur papier A4

Les direntes versions imprimables dont il est question au paragraphe page xi sont gnres partir dun chier postscript jour : 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 gnrres par les commandes suivantes : make print-0 make print-1 make print-2

226

Notes de production

D.3.6

Nettoyage de printemps
make cleangs make cleantex make cleandocs eace tous les eps/pdfs/... eace tous les chiers auxiliares eace tous les documents gnrs (dvi/ps/pdf/...)

En bref :

Bibliographie

[1] the UK List of TEX Frequently Asked Questions on the Web .


une mine dinformations en anglais, disponible http://www.tex.ac.uk/cgi-bin/ A texfaq2html, listant les fameuses questions frquemment poses sur TEX & L TEX (contrairement ce que le titre indique).

[2] Jacques Andr. Petites leons de typographie . 1990.


On doit pouvoir trouver ce document lurl http://jacques-andre.fr Il sagit dun article intressant sur la typographie avec beaucoup dexemples sur lemploi des majuscules, la ponctuation, lusage du soulign et les caractres franais.

[3] W. Appel, E. Chevalier, E. Cornet, Desreux S., Fleck J-.J., and PichauA reau P.. L TEX pour limpatient. In Technique et pratique. H & K, 2007.
A [4] Denis Bitouz and Jean-Cme Charpentier. L TEX. In Collection Synthex. Pearson Education France, September 2006. A [5] M. Goossens, S. Rahtz, and F. Mittelbach. The L TEX Graphics Companion. Addison-Wesley, 1997. A Par les auteurs du L TEX Companion, un livre sur lutilisation des graphiques au sens large du terme, avec notamment une exploration des packages permettant de dessiner A avec L TEX et une prsentation de lutilisation des fontes Postscript. A [6] Michel Goossens, Franck Mittelbach, and Alexander Samarin. The L TEX companion. Addison-Wesley, 1994. A LA bible de L TEX2 et de ses packages. Ce livre qui est un must pour tout utilisateur A qui veut comprendre les fonctions internes de L TEX contient des informations trs prcises sur : la manire de personnaliser les mises en page par dfaut, lutilisation des fontes, moult packages, etc.

[7] Lexique des rgles typographiques en usage lImprimerie nationale , 1990.


Il sagit de lensemble des rgles qui sont appliques dans les livres produits par lImprimerie nationale. Ce lexique est prsent sous la forme de thmes classs par ordre alphabtique. Cest une source dinformations intressante puisquelle fait rfrence dans limprimerie franaise.

[8] D. E. Knuth. The Art of Computer Programming, volume 13. AddisonWesley, 199798.
Trois volumes sur lart de programmer . Un quatrime tome est en prparation. Cet ensemble de livres a t accueilli par la communaut scientique comme un des ouvrages les plus importants de ce sicle (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 dinfo sur TAOCP ).

227

228 [9] Donald E. Knuth. The TEXBook. Addison-Wesley, 1988.

Bibliographie

LA bible de TEX. Un livre plein de virages dangereux expliquant trs prcisment le fonctionnement interne de TEX. Cest un ouvrage de rfrence assez dicile lire et qui ne constitue pas une introduction TEX destine aux dbutants mon avis.
A [10] Leslie Lamport. L TEX : A Document Preparation System. Addison-Wesley, 2eedition, 1994. A A Le livre de lauteur de L TEX dans sa seconde dition couvrant L TEX 2 . Bien videmment une trs bonne introduction, avec en n douvrage un guide de rfrence des commandes.

[11] Vincent Lozano. Tout ce que vous avez toujours voulu savoir sur Unix sans jamais oser le demander , 2006. http://www.enise.fr/cours/info/unix. [12] Lars Madsen. Avoid eqnarray ! . The PracTEX Journal, (4), 2006.
Un article recensant les pourquoi ne pas utiliser cet environnement. Larticle doit tre disponible http://home.imf.au.dk/daleif.

[13] Yves Perrousseaux. Manuel de typographie franaise lmentaire. Atelier Perrousseaux, 1995.
Un petit livre trs pdagogique sur la typographie, contenant un historique trs intressant, et une liste de rgles en usage dans le monde de la typographie.
A [14] Mark Trettin. Une liste des pchs des utilisateurs de L TEX . 2004.

Ce document connu sous le nom l2tabu, traite des commandes et extensions obsoltes, et quelques autres erreurs .

Glossaire

Compilation Mme si ce terme nest pas trs rigoureux dun point de vue scientique, A on appelle compilation la phase permettant de traduire le source L TEX en un chier au format DVI ou PDF. Document matre Cest le document source qui contient le begin{document} dans le contexte dun document divis en plusieurs chiers. Document source
A Un document texte contenant le texte et les commandes L TEX. TEX Cest le document ne pas perdre car il est la source de la production papier, cran, etc. au mme titre quun code source en langage C est la source dun programme excutable.

Dvi Format de chier Device Independent mis au point par Knuth de manire crer, partir du document source, un document dont le format est indpendant de la plateforme et du matriel. Fichiers auxiliaires
A Les chiers produits par L TEX lors dune compilation. Ils portent le nom du document source, et ont une extension de trois lettres rappelant leur rle.

Format Cest un ensemble de commandes ou macro prcompiles et stockes dans un chier portant gnralement lextension .fmt. Les plus connus de ces ensembles A sont le format plain de TEX et le format L TEX. Macro
A Cest loutil permettant de faire faire des choses compliques L TEX en passant en ordre simple. Les macros, appeles aussi commandes, ressemblent un peu aux routines des langages de programmation.

PDF Pour portable document format, format de chier cr par la socit Adobe, dont le but est de pouvoir changer facilement des documents dun systme 229

230

Glossaire un autre. Le format PDF peut tre cr de plusieurs faons partir dun source A L TEX(cf. A page 199).

PostScript Langage dni par la socit Adobe pour dcrire un document destin limpression. Ce langage compos de primitives de bas niveau peut tre interprt par des logiciels pour raliser des aperus avant impression ou directement par des circuits lectroniques embarqus sur les imprimantes pour gnrer limage imprimer. Rfrences Systme permettant de manipuler les numros des paragraphes, quations, chapitres, etc. de manire symbolique, pour saranchir de la dicult de les mettre jour lorsque lon change la mise en page.
A L TEX

Cest lensemble de macros dni par Leslie Lamport au dessus de TEX. A La version utilise aujourdhui est L TEX 2 . TEX
A Le moteur de base, L TEX tant un ensemble de macros formant une surcouche. La version de TEX est stabilise la version 3.14159, chaque nouvelle version Knuth ajoute une dcimale.

Index

Symboles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 mathmatique . . . . . . . . . . . . . . . . 42 saisie . . . . . . . . . . . . . . . . . . . . . . . . . 12 sur les majuscules . . . . . . . . . . . . .98 accolades . . . . . . . . . . . . . . . . . . . . . . . . . 45 Acrobat Reader . . . . . . . . . . . . . . 200202 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 . . . . . . . . . . . . . 47 align* environnement . . . . . . . . . . . . 47 231

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 argument de commandes . . . . . . . . . . . . . . . . 68 optionnel . . . . . . . . . . . . . . . . . . . 9, 69 array extension . . . . . . . . . . . . . . . 23, 207 array environnement . . . . . . . . . 44, 45 article rdaction . . . . . . . . . . . . . . . . . . . . . 83 style . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Aspell . . . . . . . . . . . . . . . . . . . . . . . 207, 211 aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v AucTEX . . . . . . . . . . . . . . . . . . . . . . . . . . 207 AucTEX . . . . . . . . . . . . . . 84, 86, 209, 210 \author . . . . . . . . . . . . . . . . . . . . . . . . . . 83

B
babel 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

232 \bfseries . . . . . . . . . . . . . . . . . . . . . . . . 18 BibTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 BIBINPUTS variable denvironnement . . . . . .88 bibliographie article . . . . . . . . . . . . . . . . . . . . . . . . 85 citations . . . . . . . . . . . . . . . . . . . . . . 86 confrence . . . . . . . . . . . . . . . . . . . . 86 livre . . . . . . . . . . . . . . . . . . . . . . . . . . 86 saisie . . . . . . . . . . . . . . . . . . . . . . . . . 84 style . . . . . . . . . . . . . . . . . . . . . . . . . . 84 alpha, 87 plain, 87 unsrt, 87 \bibliography . . . . . . . . . . . . . . . . . . . 87 \bibliographystyle . . . . . . . . . . . . . 87 \bibname . . . . . . . . . . . . . . . . . . . . . . . . 151 BibTEX . . . . . . . . . . . . . . 8488, 209, 210 bibunits extension . . . . . . . . . . . . . . . . 208 bidouillage . . . . . . . . . . . . . . . . . . . . . . .116 bidule extension . . . . . . . . . . . . . . . . . . 132 \bidule . . . . . . . . . . 114, 116, 117, 176 \blacktriangle . . . . . . . . . . . . . . . . .166 bmatrix environnement . . . . . . . . . . . 46 \boiteentreeglossaire . . . . . . . . 182 book.cls 138140, 142, 143, 151, 179, 188 bookmarks . . . . . . . . . . . . . . . . . .156, 201 bote bordure . . . . . . . . . . . . . . . . . . . . . . . 62 dimensions . . . . . . . . . . . . . . . . . . . . 56 et csure . . . . . . . . . . . . . . . . . . . . . . 35 exemples . . . . . . . . . . . . . . . . . . . . . .60 paragraphe . . . . . . . . . . . . . . . . . . . 65 positionnement . . . . . . . . . . . . . . . 63 sauvegarde . . . . . . . . . . . . . . . . . . . . 67 simple . . . . . . . . . . . . . . . . . . . . . . . . 62 Bravo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix \breve . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 brouillon mode . . . . . . . . . . . . . . . . . . . 33 \bsc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97 \bwarg . . . . . . . . . . . . . . . . . . . . . . . . . . 164 \bwmarg . . . . . . . . . . . . . . . . . . . . . . . . . 164

Index \caption . . . . . . . . . . . . . . . . . . 2830, 54 caractre dchappement . . . . . . . . . . . . . . . . 10 spciaux . . . . . . . . . . . . . . . . . . . . . . 10 caractre @ . . . . . . . . . . . . . . . . . . . . . . 116 \cdots . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 center environnement . . . . . . . . 21, 24 \centering . . . . . . . . . . . . . . . . . . . . . . 21 centrage . . . . . . . . . . . . . . . . . . . . . . . . . . 21 changebar 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 codage iso-latin1 . . . . . . . . . . . . . . . . . . . . . 93 OT1 . . . . . . . . . . . . . . . . . . . . . . . . . . 93 T1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 \colarg . . . . . . . . . . . . . . . . . . . . . . . . . 164 \colorbox . . . . . . . . . . . . . . . . . . 185, 187 commande appel . . . . . . . . . . . . . . . . . . . . . . . . . 11 dnitions . . . . . . . . . . . . . . . . . . . . 68 rednition . . . . . . . . . . . . . . . . . . . 70 commentaires . . . . . . . . . . . . . . . . . . . . . 11 compilation . . . . . . . . . . . . . . . . . . . . . . . . 6 et rfrences . . . . . . . . . . . . . . . . . . 31 compteur achage . . . . . . . . . . . . . . . . . . . . . . 53 manipulation . . . . . . . . . . . . . . . . . 52 \conc . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 concrete . . . . . . . . . . . . . . . . . . . . . . . . . 123 \contentsname . . . . . . . . . . . . . . . . . . 151 convert . . . . . . . . . . . . . . . . . . . . . . . . 74, 82 \cos . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216 \cosh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 \cot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 \coth . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 courrier . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

C
cadre de bote . . . . . . . . . . . . . . . . . . . . 62 cadrechap environnement . . . . . . . 141 calc extension . . . . . . . . . . . . . . . . . . . . . 71

Index \creerlettrine . . . . . . . . . . . . . . . . .178 \csc . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 csure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

233 eepic extension . . . . . . . . . . . . . . . . . . . . 82 \em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Emacs . . 6, 84, 86, 104, 153, 154, 192, 207, 209211 emacs . . . . . . . . . . . . . . . . . . . . . . v, xiv, 4 emacscom environnement . . . . . . . . 153 \emph . . . . . . . . . . . . . . . . .10, 1820, 122 emphase fontes . . . . . . . . . . . . . . . . . . . 20 emTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 \encl . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 \enlargethispage . . . . . . . . . . . . . . . 34 \enspace . . . . . . . . . . . . . . . . . . . . . . . . . 59 \ensuremath . . . . . . . . . . . . . . . . 68, 119 \entreeglossaire . . . . . . . . . . . . . . 183 entte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 enumerate environnement . . . . . 22, 30 environnement dnition . . . . . . . . . . . . . . . . . . . . . 69 rednition . . . . . . . . . . . . . . . . . . . 70 environnements TeXtoEPS . . . . . . . . . . . . . . . . . . . . 204 VerbatimOut . . . . . . . . . . . . . . . . 189 align* . . . . . . . . . . . . . . . . . . . . . . . 47 align . . . . . . . . . . . . . . . . . . . . . . . . .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 . . . . . . . . . . . . . 2830, 75, 78 flushleft . . . . . . . . . . . . . . . . . . . . 21 flushright . . . . . . . . . . . . . . . . . . .21 hyperref . . . . . . . . . . . . . . . . . . . . 202 itemize . . . . . . . . . . . . . . . . . . 22, 66 letter . . . . . . . . . . . . . . . . . . . . . . 101 list . . . . . . . . . . . .71, 126128, 171 lrbox . . . . . . . . . . . . . . . . . . .133, 134 ltexexemple . . . . . . . . . . . . . . . . 195 ltxexempleenv . . . . . . . . . . . . . . 191 ltxexemple . . 156, 189, 190, 192, 193

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 dun 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 . . . . . . . . . . . . . . 7, 74, 78, 203205 dviwin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 dnition . . . . . . . . . . . . . . . . . . . . . . . . . 67 commandes . . . . . . . . . . . . . . . . . . . 68 environnement . . . . . . . . . . . . . . . . 69 dlimiteurs . . . . . . . . . . . . . . . . . . . . . . . 45

E
e dans la . . . . . . . . . . . . . . . . . . . . . . . . . 96 dition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

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 inscable . . . . . . . . . . . . . . . . . . 11, 35 mathmatiques . . . . . . . . . . . . . . . 43 prdnie . . . . . . . . . . . . . . . . . . . . . 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, 207 babel 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, 207 geometry . . . . . . . . . . 143145, 208 graphics . . . . . . . . . . . . . . . . . . . . . 74 graphicx . . . . . 64, 7476, 79, 185 hhline . . . . . . . . . . . . . . . . . . . . . . 208 hyperref . . . . . . . . . . . . . . . 200202 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

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

235 ind.dvi . . . . . . . . . . . . . . . . . . . . . 138 latex.ltx . . . . . . . . . 146, 180, 190 newcent.sty . . . . . . . . . . . . . . . . 125 g2dev . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 gure . . . . . . . . . . . . . . . . . . . . . . . . . 28, 73 et mathmatiques . . . . . . . . . . . . . 78 incruste . . . . . . . . . . . . . . . . . . . . . . 78 liste de . . . . . . . . . . . . . . . . . . . . . . . 29 placement . . . . . . . . . . . . . . . . . . . . 28 figure environnement . 2830, 75, 78 \fill . . . . . . . . . . . . . . . . . . . . . . . . . 58, 60 flushleft environnement . . . . . . . . 21 flushright environnement . . . . . . . 21 ches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 fonction mathmatiques . . . . . . . . . . 41 \fontencoding . . . . . . . . . . . . . . . . . . 125 fontes correction italique . . . . . . . . . . . . .19 emphase . . . . . . . . . . . . . . . . . . . . . . 20 gras . . . . . . . . . . . . . . . . . . . . . . . . . . 20 machine crire . . . . . . . . . . . 18, 20 mathmatiques . . . . . . . . . . . . . . . 47 mise en vidence . . . . . . . . . . . . . . 17 penche . . . . . . . . . . . . . . . . . . . . . . . 19 petites majuscules . . . . . . . . . 18, 20 sans srif . . . . . . . . . . . . . . . . . . . . . 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

F
faire-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 chiers book.cls 138140, 142, 143, 151, 179, 188 gglo.ist . . . . . . . . . . . . . . . . . . . . 181 glossaire.ist . . . . . . . . . . . . . . 184

236

Index \hyperref . . . . . . . . . . . . . . . . . . . . . . 167 hyperref environnement . . . . . . . . 202 hyphenation . . . . . . . . . . . . . . . . . . . . . . . 4 \hyphenation . . . . . . . . . . . . . . . . . . . . 34

G
\Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 \gcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 geometry extension . . . . . . 143145, 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, 7476, 79, 185 graphique . . . . . . . . . . . . . . . . . . . . . . . . .73 et mathmatiques . . . . . . . . . . . . . 78 gras fontes . . . . . . . . . . . . . . . . . . . . . . . . 20 \grave . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 groupes de discussion . . . . . . . . . . . . 105 gsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 guillemets . . . . . . . . . . . . . . . . . . . . . 13, 97 gv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

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 inclusion dextensions . . . . . . . . . . . . . . . . . . . .9 dimages . . . . . . . . . . . . . . . . . . . . . . 75 de graphiques . . . . . . . . . . . . . . . . . 75 ind.dvi . . . . . . . . . . . . . . . . . . . . . . . . . 138 index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 \index . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 \indexname . . . . . . . . . . . . . . . . . . . . . 151 \indexspace . . . . . . . . . . . . . . . . . . . . 138 indice . . . . . . . . . . . . . . . . . . . . . . . . . 11, 38 \indletB longueur . . . . . . . . . . 177179 \indletH longueur . . . . . . . . . .177, 178 \indnota longueur . . . . . . . . . . . . . . 170 \inf . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Inkscape . . . . . . . . . . . . . . . . . . . . . . . . . . 82 \input . . . . . . . . . . . . . . . . . . . . . . . .71, 91 \InputIfFileExists . . . . . . . . . . . . 184 \institut . . . . . . . . . . . . . . . . . . . . . . 101 \int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 intgrale . . . . . . . . . . . . . . . . . . . . . . . . . . 42 \isodd . . . . . . . . . . . . . . . . . . . . . 117, 168 italique fontes . . . . . . . . . . . . . . . . . . . . 20 \item . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 \itemindent longueur . . . . . . 127, 128 itemize environnement . . . . . . . 22, 66 \itemsep longueur . . . . . 128, 129, 133

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 . . . . . . . . . . . 200202

Index \itshape . . . . . . . . . . . . . . . . . . . . . . . . . 18

237 like this . . . . . . . . . . . . . . . . . . . . . . . . . xiv \lim . . . . . . . . . . . . . . . . . . . . . . . . . 49, 216 \liminf . . . . . . . . . . . . . . . . . . . . . . . . . 216 limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 \limsup . . . . . . . . . . . . . . . . . . . . . . . . . 216 \linebreak . . . . . . . . . . . . . . . . . . . 34, 35 \linewidth longueur . . . . . . . . . . . . . 58 list environnement 71, 126128, 171 liste . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 71 ditems . . . . . . . . . . . . . . . . . . . . . . . 22 des gures . . . . . . . . . . . . . . . . . . . . 29 des tables . . . . . . . . . . . . . . . . . . . . . 29 description . . . . . . . . . . . . . . . . . . . . 22 enumration . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . 200202 acrobat reader . . . . . . . . . . . . . . . . . . 4 Aspell . . . . . . . . . . . . . . . . . . . 207, 211 aspell . . . . . . . . . . . . . . . . . . . . . . . . . . v AucTEX . . . . . . . . . . . . . . . . . . . . . . 207 bash . . . . . . . . . . . . . . . . . . . . . . . . . . 71 BibTEX . . . . . . . . . . . . . . . . . . . . . . . .88 BibTEX . . . . . . . . . . 8488, 209, 210 Bravo . . . . . . . . . . . . . . . . . . . . . . . . . ix convert . . . . . . . . . . . . . . . . . . . . 74, 82 dvipdf . . . . . . . . . . . . . . . . . . . . . . . 199 dvips . . . . . . . . . . 7, 74, 78, 203205 dviwin . . . . . . . . . . . . . . . . . . . . . . . . .74 Emacs . . . 6, 84, 86, 104, 153, 154, 192, 207, 209211 emacs . . . . . . . . . . . . . . . . . . v, xiv, 4 evince . . . . . . . . . . . . . . . . . . . . . 4, 201 g2dev . . . . . . . . . . . . . . . . . . . . . . . . 82 ghostscript . . . . . . . . . . . . . . . . . . . . . 4 ghostview . . . . . . . . . . . . . . . . . . . . . 65 gimp . . . . . . . . . . . . . . . . . . . . . . 73, 74 gnuplot . . . . . . . . . . . . . . . . . . . . . . . 73 grep . . . . . . . . . . . . . . . . . . . . . . . . . 205 gsview . . . . . . . . . . . . . . . . . . . . . . . . . 3

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 . . . . . . 127129 \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

238 gv . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 iTEXmax . . . . . . . . . . . . . . . . . . . . . . . 4 info . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Inkscape . . . . . . . . . . . . . . . . . . . . . . 82 kdvi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 latex . . . . . . . . . . . . . . . . . . . . . . . . . 199 make . . . . . . . . . . . . . 73, 80, 82, 204 makebst . . . . . . . . . . . . . . . . . . . . . . . 84 makeindex . . . . . . . 8890, 136138, 181183, 209 metafont . . . . . . . . . . . . . . . . . . . . . . 73 pdatex . . . . . . . . 199201, 203, 204 ps2pdf . . . . . . . . . . . . . . . . . . . . . . . 199 psfrag . . . . . . . . . 199, 202, 204, 205 pstricks . . . . . . . . . . . . . 199, 202, 204 psutils . . . . . . . . . . . . . . . . . . . . . . . 225 texmaker . . . . . . . . . . . . . . . . . . . . . . . 4 texture . . . . . . . . . . . . . . . . . . . . . . . . 74 transg . . . . . . . . . . . . . . . . . . . . . . 225 vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 X Window . . . . . . . . . . . . . . . . . . . . . . 7 xdvi . . . . . . . . 4, 7, 65, 74, 202, 210 Xg . . . . . . . . . . . . . . . . . . . . . . . . . 200 xg . . . . . . . . . 73, 82, 168, 224, 225 xpdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 yap . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 7 longueurs . . . . . . . . . . . . . . . . . . . . . . . . . 54 manipulation . . . . . . . . . . . . . . . . . 55 prdnies . . . . . . . . . . . . . . . . . . . . 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

Index \makeatletter . . . . . . . . . . . . . . . . . . 116 \makeatother . . . . . . . . . . . . . . . . . . . 116 \makebox . . . . . . . . . . . . . 62, 64, 67, 157 makebst . . . . . . . . . . . . . . . . . . . . . . . . . . .84 makefile . . . . . . . . . . . . . . . . . . . . . . . . . 80 \makeglossary . . . . . . . . . . . . . . . . . . 181 \makeindex . . . . . . . . . . . . . . . . . . . . . . 89 makeindex . . 8890, 136138, 181183, 209 \makelabel . . . . . . . . . . . . 127, 129, 131 \maketitle . . . . . . . . . . . . . . . . . . . 83, 84 \MakeUppercase . . . . . . . . . . . . . . . . .151 \marg . . . . . . . . . . . . . . . . . . . . . . 153, 164 marge changements 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 mathmatiques et dnitions 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

M
machine crire fontes . . . . . . . . . . . .20 macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 dnitions . . . . . . . . . . . . . . . . . . . . 68 rednition . . . . . . . . . . . . . . . . . . . 70 Magma . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 \mainmatter . . . . . . . . . . . . 91, 141, 150 majuscules . . . . . . . . . . . . . . . . . . . . . . . .98 make . . . . . . . . . . . . . . . . . 73, 80, 82, 204

Index brouillon . . . . . . . . . . . . . . . 9, 33, 76 recto verso . . . . . . . . . . . . . . . . . . . . . 8

239 overcite extension . . . . . . . . . . . . . . . . 208 overfull . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 \overrightarrow . . . . . . . . . . . . . . . . 43 OzTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

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 numrotation . . . . . . . . . . . . . . . . . . . . . 51

P
packages extension . . . . . . . . . . . . . . . xiv \padnota longueur . . . . . . . . . . . . . . 170 \pagebreak . . . . . . . . . . . . . . . . . . . 34, 35 \pagenumbering . . . . . . . . . . . . . . . . .150 \pageref . . . . . . . . . . . . . . . . . . . . 30, 202 \pagestyle . . . . . . . . . . . . . . . . . . . . . . 27 \par . . . . . . . . . . . . . . . . . . . . . . 10, 21, 60 \paragraph . . . . . . . . . . . . . . . . . . . . . . 26 paragraphe sparation . . . . . . . . . . . . . . . . . . . . 57 \parbox . . . . . . . . 65, 66, 158160, 194 parenthses . . . . . . . . . . . . . . . . . . . . . . . 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 pdatex . . . . . . . . . . . .199201, 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 bote . . . . . . . . . . 63 PostScript . . 3, 4, 6, 7, 65, 73, 74, 78, 104, 121, 125, 202204, 213 \Pr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 prambule . . . . . . . . . . . . . . . . . . . . . . . 8, 9 \primo . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 \printindex . . . . . . . . . . . . . 88, 90, 201 \prod . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 produit . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 \protect . . . . . . . . . . . . . . . . . . . . . . . . 165 ps2pdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 psfrag extension . . . . . . . . . . . 78, 79, 204 \psfrag . . . . . . . . . . . . . . . . . . . . . . 78, 79

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 oprateur \not . . . . . . . . . . . . . . . . . . . . 42 \OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 \Ovalbox . . . . . . . . . . . . . . . . . . . . 68, 208 \ovalbox . . . . . . . . . . . . . . . . . . . . . . . . 208

240 psfrag . . . . . . . . . . . . . 199, 202, 204, 205 pstricks extension . . . . . . . . 82, 203, 204 pstricks . . . . . . . . . . . . . . . . 199, 202, 204 psutils . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Index

S
\S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 saut de ligne . . . . . . . . . . . . . . . . . . . . . . . 10 de paragraphe . . . . . . . . . . . . . . . . 10 sauvegarde de bote . . . . . . . . . . . . . . . 67 \savebox . . . . . . . . . . . . . . . . . . . . 67, 190 \sbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 \scriptscriptstyle . . . . . . . . . . . . . 48 \scriptsize . . . . . . . . . . . . . . . . . . . . . 19 \scriptstyle . . . . . . . . . . . . . . . . . . . . 48 \scshape . . . . . . . . . . . . . . . . . . . . . . . . . 18 \sec . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 \section . . 26, 30, 138, 139, 148, 180 section 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

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 rednitions . . . . . . . . . . . . . . . . . . . . . . 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 rotation de botes . . . . . . . . . . . . . . . . . . . . . .64 de graphiques . . . . . . . . . . . . . . . . . 76 \rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 rfrence . . . . . . . . . . . . . . . . . . . . . . . . . .29 aux subfigures . . . . . . . . . . . . . . 77 et chier auxiliaires . . . . . . . . . . . 31 non dnie . . . . . . . . . . . . . . . . . . . . 31 un objet . . . . . . . . . . . . . . . . . . . . 30 une page . . . . . . . . . . . . . . . . . . . . 30

Index \stretch . . . . . . . . . . . . . . . . . . . . . . . . . 57 subg extension . . . . . . . . . . . . . . . . . . . 77 \subfigure . . . . . . . . . . . . . . . . . . . . . . 77 subfigure environnement . . . . . . . . 77 \subparagraph . . . . . . . . . . . . . . . . . . . 26 \subsection . . . . . . . . . . . . . 26, 53, 138 \subsubsection . . . . . . . . . . . . . . . . . . 26 \sup . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216 \symbol . . . . . . . . . . . . . . . . . . . . 156, 165 \symboles . . . . . . . . . . . . . . . . . . . . . . 119 symboles mathmatiques . . . . . . . . . .39

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 dun document . . . . . . . . . . . . . . . . 84 numrotation . . . . . . . . . . . . . . . . 138 \today . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 \topsep longueur . . . . . . . . . . . 128, 129 \totalheight longueur . . . . . . . . . . . 67 traits . . . . . . . . . . . . . . . . . . . . . . . . . 59, 73 transg . . . . . . . . . . . . . . . . . . . . . . . . . . 225 translation de bote . . . . . . . . . . . 63, 64 \truc . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 \ttfamily . . . . . . . . . . . . . . . . . . . . . . . . 18 \typeout . . . . . . . . . . . . . . . . . . . . . . . . 184 typographie lettrine . . . . . . . . . . . . . . . . . . . . . . . 96 majuscules . . . . . . . . . . . . . . . . . . . . 98 ponctuation . . . . . . . . . . . . . . . . . . .96

T
tab le of contents depth . . . . . . . . . .138 tabbing environnement . . . . . . . . . . . 22 table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 liste des . . . . . . . . . . . . . . . . . . . . . . .29 placement . . . . . . . . . . . . . . . . . . . . 28 table environnement . . . . . . . . . 28, 30 table des matires . . . . . . . . . . . . . . . . 32 numrotation . . . . . . . . . . . . . . . . 138 profondeur . . . . . . . . . . . . . . . . . . .138 tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 mathmatique . . . . . . . . . . . . . . . . 44 \tableofcontents . . .26, 32, 88, 151, 179 tabular environnement . . . 23, 24, 44, 65, 207 tabulations . . . . . . . . . . . . . . . . . . . . . . . 22 taille des fontes . . . . . . . . . . . . . . . . . . . . . 19 des graphiques . . . . . . . . . . . . . . . . 76 \tan . . . . . . . . . . . . . . . . . . . . . . . . . 41, 216 \tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 telefax environnement . . . . . . . . . .101 \telephone . . . . . . . . . . . . . . . . . . . . . . 99 \tempodim longueur . . . . . . . . . . . . . 194 \tertio . . . . . . . . . . . . . . . . . . . . . . . . . . 96 \TeX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 TEXINPUTS variable denvironnement . . . . . .71 texmaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 \text . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 \textbf . . . . . . . . . . . . . . . . . . . . . 18, 122 textcomp extension . . 98, 213, 219, 220 textcomp extension . . . . . . . . . . . . . . . 213 \texteuro . . . . . . . . . . . . . . . . . . . . . . . . 98 \textheight . . . . . . . . . . . . . . . . . . . . . 55

242 rgles . . . . . . . . . . . . . . . . . . . . . 20, 97

Index wrapfigure environnement . . . . . . . 78 Wysiwyg . . . . . . . . . . . . . . . . . . . . . . ixxi

U
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, 144

X
X Window . . . . . . . . . . . . . . . . . . . . . . . . . .7 xcolor extension . . . . . . . . . . . . . . 79, 175 xdvi . . . . . . . . . . . . 4, 7, 65, 74, 202, 210 Xg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 xg . . . . . . . . . . . . . 73, 82, 168, 224, 225 xpdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Y
yap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4, 7

V
\value . . . . . . . . . . . . . . . . . . . . . 117, 119 variable denvironnement 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

W
\whiledo . . . . . . . . . . . . . . . . . . . 118, 119 \width longueur . . . . . . . . . . . . . . . . . . 66 wrapg extension . . . . . . . . . . . . . . . . . . 78 \wrapfig . . . . . . . . . . . . . . . . . . . . . . . . . 78

Table des matires

A Tout sur L TEX

1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 6 6 7 7 7 8 9 9 10 10 11 12 12 13 13 14 14 15 17 17 18 19 19 20 20 21 22 22 23 24 24 25 25 26 27

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 prambule . . . . . . . . . . . 1.3.3 Ajout dextension . . . . . . . . . 1.4 Cest parti ! . . . . . . . . . . . . . . . . 1.4.1 Quelques caractres sont spciaux 1.4.2 Appel des commandes . . . . . . 1.4.3 Accents . . . . . . . . . . . . . . 1.5 Premiers outils . . . . . . . . . . . . . . 1.6 Premires erreurs . . . . . . . . . . . . . 1.6.1 Symptmes . . . . . . . . . . . . 1.6.2 Diagnostic . . . . . . . . . . . . . 1.6.3 Soins . . . . . . . . . . . . . . . . 1.6.4 Une collection de message . . . . 2 Ce quil 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 Entte et pied de page . . . . . . . 243 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

244 Flottants . . . . . . . . . . . . . . . . . . . . 2.7.1 Figure et table . . . . . . . . . . . . 2.7.2 Placement . . . . . . . . . . . . . . . 2.7.3 Liste des gures . . . . . . . . . . . . 2.8 Rfrences . . . . . . . . . . . . . . . . . . . 2.8.1 Principe . . . . . . . . . . . . . . . . 2.8.2 Que rfrencer ? . . . . . . . . . . . . 2.9 Fichiers auxiliaires . . . . . . . . . . . . . . 2.9.1 Interaction avec les rfrences . . . . 2.9.2 Interaction avec la table des matires 2.9.3 Petits conseils . . . . . . . . . . . . . 2.10 O il est question de csure . . . . . . . . . 2.10.1 Contrler la csure . . . . . . . . . . 3 Mathmatiques 3.1 Les deux faons dcrire 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 Intgrales, sommes et autres limites 3.4 Des symboles les uns sur les autres . . . . 3.4.1 Loprateur 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 mathmatique . . 3.5.2 Texte en mode mathmatique . . . 3.6 Array : simple et ecace . . . . . . . . . . 3.6.1 Comment a marche . . . . . . . . 3.6.2 Array et les dlimiteurs . . . . . . . 3.6.3 Pour vous simplier la vie... . . . . 3.7 quations et environnements . . . . . . . . 3.7.1 Lenvironnement displaymath . . . 3.7.2 Lenvironnement equation . . . . . 3.7.3 Formules multi-lignes . . . . . . . . 3.8 Changer le style en mode mathmatique . 3.8.1 Fontes . . . . . . . . . . . . . . . . 3.8.2 Taille des symboles . . . . . . . . . 3.8.3 Crer de nouveaux oprateurs . . . 4 Un pas vers la sorcellerie 4.1 Compteurs . . . . . . . . . . . 4.1.1 Compteurs disponibles 4.1.2 Manipulation . . . . . 4.1.3 Achage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des matires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 28 28 29 29 29 30 30 31 32 32 33 34 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 51 51 51 52 53

Table des matires 4.2 Longueurs . . . . . . . . . . . . . . . . 4.2.1 Units . . . . . . . . . . . . . . A 4.2.2 Quelques longueurs de L TEX . . 4.2.3 Manipulation des longueurs . . 4.2.4 Longueurs lastiques . . . . . . 4.2.5 Achage . . . . . . . . . . . . . Espaces . . . . . . . . . . . . . . . . . 4.3.1 Commandes de base . . . . . . 4.3.2 Quelques espaces prdnies . . Botes . . . . . . . . . . . . . . . . . . 4.4.1 Botes simples . . . . . . . . . . 4.4.2 Manipulation de botes simples 4.4.3 Botes paragraphe . . . . . . . . 4.4.4 Petites astuces . . . . . . . . . 4.4.5 Sauvegarde et rutilisation . . . Dnitions . . . . . . . . . . . . . . . . 4.5.1 Commandes . . . . . . . . . . . 4.5.2 Environnement . . . . . . . . . 4.5.3 Rednitions . . . . . . . . . . Mais encore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

245 54 54 55 55 57 58 58 58 59 60 62 63 65 66 67 67 68 69 70 71 73 73 74 74 74 76 77 77 78 78 79 80 81 82 82 83 83 84 84 86 87 88 89 89 90 91 91

4.3 4.4

4.5

4.6

5 Graphisme 5.1 Apritifs . . . . . . . . . . . . . . . . 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 subg . . . . . . . . . . . . . . 5.4.2 Le package wrapg . . . . . . 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 . . . . . . . . . . . . . . .

6 Documents scientiques 6.1 Article . . . . . . . . . . . . . . . . . . 6.2 Bibliographie . . . . . . . . . . . . . . 6.2.1 Fichier .bib . . . . . . . . . . . 6.2.2 Citation . . . . . . . . . . . . . 6.2.3 Gnration . . . . . . . . . . . 6.3 Index . . . . . . . . . . . . . . . . . . . 6.3.1 Ce quil faut faire . . . . . . . . 6.3.2 Dtail du fonctionnement . . . 6.3.3 Dirents types dentre dindex 6.3.4 Glossaire . . . . . . . . . . . . . 6.4 Diviser votre document . . . . . . . . .

246 7 Des 7.1 7.2 7.3 documents en franais Le problme des lettres accentues . . . . . . . . . A Rdiger un document en franais avec L TEX . . . Le package babel et la typographie . . . . . . . . 7.3.1 Ponctuation . . . . . . . . . . . . . . . . . 7.3.2 L-a, e dans la, t-i, t-i, a ! . . . . . . . . . . 7.3.3 Outils du package babel . . . . . . . . . . 7.3.4 Recommandations dusage . . . . . . . . . 7.3.5 Le cas de leuro . . . . . . . . . . . . . . . 7.3.6 Au sujet des majuscules . . . . . . . . . . 7.4 Courrier et fax . . . . . . . . . . . . . . . . . . . 7.4.1 Commandes disponibles . . . . . . . . . . 7.4.2 Structure dun document bas sur la classe 7.4.3 Fichiers instituts . . . . . . . . . . . . 7.4.4 Fax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des matires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lettre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 93 94 94 96 96 96 97 98 98 99 99 100 100 101

8 vous de jouer ! 8.1 Livres et autres manuels . 8.2 Local . . . . . . . . . . . . 8.3 ETp, Oube et niouses 8.3.1 Sites FTP . . . . . 8.3.2 Sites Web . . . . . 8.3.3 Les newsgroups . .

103 . 103 . 104 . 104 . 104 . 105 . 105

II

A Tout sur ( Tout sur L TEX)

107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 . 111 . 111 . 112 . 113 . 113 . 116 . 116 . 117 . 117 . 118 . 120 . 121 . 121 . 122 . 125 . 126 . 126 . 127 . 128 . 128 . 129

9 Outillage ncessaire 9.1 Hercule Poirot . . . . . . . . . . . . . . . . . . . . 9.1.1 Fouiller dans les chiers . . . . . . . . . . 9.1.2 Examiner les macros . . . . . . . . . . . . 9.2 Outils de bas niveaux . . . . . . . . . . . . . . . . 9.2.1 Pour qui sont ces pourcents ? . . . . . . . 9.2.2 Le caractre @ . . . . . . . . . . . . . . . 9.2.3 Le \let de TEX . . . . . . . . . . . . . . . 9.3 Structures de contrle et tests . . . . . . . . . . . 9.3.1 Boolens et oprateurs associs . . . . . . 9.3.2 Exemples . . . . . . . . . . . . . . . . . . 9.3.3 Tester la parit des pages . . . . . . . . . 9.4 Fontes . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 Le jeu des trois familles . . . . . . . . . 9.4.2 Dsignation des fontes et de leurs attributs 9.4.3 Changer de fontes . . . . . . . . . . . . . . 9.5 Listes et nouveaux environnements . . . . . . . . 9.5.1 Principe . . . . . . . . . . . . . . . . . . . 9.5.2 Rglage de ltiquette . . . . . . . . . . . . 9.5.3 Rglages verticaux . . . . . . . . . . . . . 9.5.4 Valeurs par dfaut . . . . . . . . . . . . . 9.5.5 Exemples . . . . . . . . . . . . . . . . . .

Table des matires 9.6 9.5.6 Un exemple un peu plus tordu... . Des environnements qui mettent en bote 9.6.1 Principe . . . . . . . . . . . . . . 9.6.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

247 132 133 133 133 135 135 138 138 139 140 142 143 145 146 146 147 149 150 150 151 152 153 154 155 156 157 157 158 158 162

10 Cosmtique 10.1 Allure de lindex . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Allures des titres . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Numrotation des titres et table des matires . . . . . 10.2.2 Sections et niveaux infrieurs . . . . . . . . . . . . . . 10.2.3 Chapitres . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.4 Parties . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Gomtrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 En-tte et pied de page . . . . . . . . . . . . . . . . . . . . . . 10.4.1 Cas de la premire page des chapitres . . . . . . . . . . 10.4.2 Pages vierges avant le dbut dun chapitre . . . . . . . 10.4.3 Mcanisme de marqueurs . . . . . . . . . . . . . . . . . 10.4.4 Organisation du document . . . . . . . . . . . . . . . . 10.4.5 Numroter lintroduction en roman petites capitales 10.4.6 Index, bibliographie et table des matires . . . . . . . . 10.5 Environnements avec caractres spciaux . . . . . . . . . . . . 10.5.1 Digression vers les caractres... . . . . . . . . . . . . . 10.5.2 Environnements maison bass sur fancyvrb . . . . . . . 10.5.3 Environnements pour les langages de programmation . 10.6 About those so called french guillemets . . . . . . . . . . . . 10.7 Une bote pour la minitable des matires . . . . . . . . . . . . 10.7.1 Linterface de la commande . . . . . . . . . . . . . . . 10.7.2 Quand mme un peu de TEX . . . . . . . . . . . . . . 10.7.3 Conception de la bote . . . . . . . . . . . . . . . . . . 10.7.4 Le code . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.5 Utilisation avec package minitoc . . . . . . . . . . . . . 11 De nouveaux jouets 11.1 Quelques bricoles . . . . . . . . . . . . . . . . . . . 11.1.1 Arguments et convention typographique . . 11.1.2 Autour de la gnration de lindex . . . . . . 11.1.3 Des renvois . . . . . . . . . . . . . . . . . . 11.1.4 Changement de marges . . . . . . . . . . . . 11.2 Des nota . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Des citations . . . . . . . . . . . . . . . . . . . . . 11.3.1 pigraphes . . . . . . . . . . . . . . . . . . 11.3.2 Citations . . . . . . . . . . . . . . . . . . . . 11.4 Des lettrines . . . . . . . . . . . . . . . . . . . . . . 11.4.1 La commande \glurps ou un pas vers TEX . 11.4.2 Insertion de la lettrine dans un paragraphe . 11.5 Un sommaire . . . . . . . . . . . . . . . . . . . . . 11.6 Un glossaire . . . . . . . . . . . . . . . . . . . . . . 11.6.1 Tordre le cou makeindex . . . . . . . . . . 11.6.2 Un environnement pour le glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

163 . 163 . 163 . 164 . 165 . 167 . 168 . 172 . 172 . 173 . 175 . 176 . 177 . 179 . 181 . 181 . 182

248 11.6.3 Produire le chier .glx . . . . . . . . . . . . 11.6.4 Recollons les morceaux . . . . . . . . . . . . 11.7 Des onglets . . . . . . . . . . . . . . . . . . . . . . 11.7.1 Ide retenue . . . . . . . . . . . . . . . . . . 11.7.2 Les botes dans la marge . . . . . . . . . . . 11.7.3 Position des onglets . . . . . . . . . . . . . . A 11.8 Exemples L TEX . . . . . . . . . . . . . . . . . . . . 11.8.1 Outils ncessaires . . . . . . . . . . . . . . . 11.8.2 Le principe de lenvironnement ltxexemple 11.8.3 Mises en bote . . . . . . . . . . . . . . . . . 11.8.4 Numrotation des exemples . . . . . . . . . 11.8.5 Le trait central . . . . . . . . . . . . . . . .

Table des matires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 183 184 184 185 186 189 189 190 191 192 194

III

Annexes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

197
. . . . . . . . . . . 199 199 200 200 200 201 201 201 202 202 202 204

A Gnrer des pdf A.1 Principe gnral . . . . . . . . . . A.2 Ce qui change . . . . . . . . . . . A.3 Trucs et astuces . . . . . . . . . . A.3.1 Gestion des graphiques . . A.3.2 Vignettes . . . . . . . . . A.3.3 Pagination . . . . . . . . . A.3.4 Signets . . . . . . . . . . . A.4 Hyperliens . . . . . . . . . . . . . A.5 Interaction avec psfrag et pstricks A.5.1 pstricks . . . . . . . . . . . A.5.2 psfrag . . . . . . . . . . . B Mmento B.1 Extensions . . . . . . . . . . B.2 Les chiers auxiliaires . . . . B.3 AucTEX . . . . . . . . . . . B.3.1 Formatage du source B.3.2 Raccourcis . . . . . . B.3.3 Compilation . . . . . B.4 Aspell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

207 . 207 . 208 . 209 . 209 . 210 . 210 . 211 213 . 214 . 217 . 219 . . . . . . 223 223 223 223 224 224 224

C Symboles C.1 Symboles standard . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Symboles de lAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Symboles du package textcomp . . . . . . . . . . . . . . . . . . . . . D Notes de production D.1 Distribution du moment D.2 Les sources du manuel . D.2.1 Structure . . . . D.2.2 Styles . . . . . . D.3 Compilation . . . . . . . D.3.1 Makele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table des matires D.3.2 D.3.3 D.3.4 D.3.5 D.3.6 Bibliographie Glossaire Index Figures . . . . . . . . . . Dvi et postscript . . . . Pdf . . . . . . . . . . . . Versions imprimables sur Nettoyage de printemps . . . . . . . . . . . . papier . . . . . . . . . . A4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

249 225 225 225 225 226 227 229 231

Anda mungkin juga menyukai