From Le wiki des fiches à Bébert

Rapport: PremiersPas

2 - Les premiers pas

2.1 - Où Melle Michu écrit sa première ligne de code

La première chose à faire c'est d'indiquer à LaTeX le type de document que l'on souhaite réaliser. En effet sous LaTeX, il existe plusieurs types de documents prédéfinis, qui ne donneront pas le même résultat. Il existe des styles pour écrire des articles, des rapports, un livre, des lettres, faire des présentations à la PowerPoint, une thèse,. . .

Ces styles (on dit classe en LaTeX, class en anglais) définissent la mise en page, la taille des marges, le nombre et le type de divisions (pas de chapitre pour un article par exemple),. . .

Il y a trois principales classes en standard :

Tu veux faire un rapport (report en anglais) donc tu vas mettre comme première ligne ceci :

 \documentclass{report}

Seulement voila on est des européens et la classe report est faite pour les américains et leur format de papier bizarre. Et oui les américains utilisent le format de papier letter (21,6 x 27,9 cm), alors que sur le continent européen on utilise le format a4 (21 x 29,7 cm). Les mises en page des classes classiques de LaTeX sont adaptées au format letter.

Donc on va plutôt utiliser la classe scrreprt, crée pour tous les européens par Markus Kohm, un allemand, qui provient de KOMA-Script (ne t'inquiète pas ce package est dans la TexLive).

2.2 - Où Melle Michu découvre les classes KOMA-Script

Les classes KOMA-Script qui correspondent aux types de documents sont :

articlearticlescrartcl
rapportreportscrreprt
livrebookscrbook

Les nom des classes KOMA-Script sont un peu barbares, imprononçables et ne sont pas facile à retenir. Le scr évoque script de KOMA-Script, la suite est une abréviation plus ou moins heureuse des classes classiques.

Toutes les commandes utilisées dans cette annexe concernent la version 3.00 de KOMA-Script. Avec cette version beaucoup de commandes KOMA-Script ont changées de nom. C'est la version qui équipe les TexLive 2009 et 2010.

2.2.1 - La classe scrartcl

La classe article sert pour faire des petits documents de quelques pages, destiné à être publier avec d'autres articles dans des revues. Il n'y a pas de chapitre. Le sectionnement est le suivant : parties ( \part {}), sections\\( \section {}), sous-sections ( \subsection {}), sous-sous-sections\\ ( \subsubsection {}), paragraphes ( \paragraph {}) et sous-paragraphes\\( \subparagraph {}).

Tu n'es pas obligé d'utiliser tous les niveaux de sectionnement. Je t'indique toutes les possibilités à ta disposition. Par exemple \part {} est peu utilisé dans un article. Tu peux concevoir un article avec un seul niveau de sectionnement, \section {}

Le titre est sur la même page que le début du texte, ainsi que les parties ( \part {}) qui ne sont pas sur des pages séparées. Cette classe accepte un résumé et des annexes.

 \documentclass{scrartcl} 

La figure \ref{articleB} montre l'aspect des deux premières pages d'un article fictif, à plusieurs parties.



Fig. 6 : Les deux premières pages d'un article fictif, réalisé avec la classe scrartcl.

2.2.2 - La classe scrreprt

La classe rapport est faite pour des document plus long, se satisfaisant à eux-même. Aux divisions de la classe article s'ajoute le chapitre ( \chapter {}). Comme pour la classe article on peut insérer un résumé. Le titre, le résumé, les entêtes des parties se trouvent sur des pages impaires séparées. \documentclass{scrreprt} La figure ? montre les première pages d'un rapport fictif, divisé en parties, chapitres, sections. . . et avec un résumé.

Fig. 7 : Les premières pages d'un rapport fictif, réalisé avec la classe scrreprt . Attention, en réalité, entre ces pages ci-dessus il y a une page blanche.

2.2.3 - La classe scrbook

La classe livre est faite pour écrire . . . un livre. Il n'y pas de grandes différences par rapport à la classe rapport, si ce n'est l'ajout des commandes \frontmatter, \mainmatter et \backmatter qui gèrent les préfaces et postfaces. Toutefois le comportement de certaine commande n'est pas le même qu'avec la classe rapport, comme par exemple la gestion de la page de titre.

2.3 - Où Melle Michu découvre ce qu'est une commande LaTeX

Avant de saisir ta première commande, il est temps de t'expliquer ce qu'est une commande LaTeX. Ça va être un peu long et un peu rébarbatif, mais comprendre le fonctionnent des commandes LaTeX t'éviteras de nombreuses erreurs. Accroches-toi c'est parti.

LaTeX fonctionne à la manière du HTML qui sert à fabriquer les pages web. Il utilise des balises qui vont formater le texte qu'elles contiennent, comme par exemple mettre en gras, centrer,. . . et des commandes, comme \par qui permet de changer de paragraphe ou \LaTeX qui écrit LaTeX. Pour les distinguer du reste du texte, ces commandes et balises commencent toujours par \.

2.3.1 - Les commandes

Il y a deux types de commandes, avec ou sans arguments.

2.3.1.1 - Les commandes sans argument

Voici une liste de commande sans argument:

\og qui écrit le guillemet ouvrant «

\fg qui écrit le guillemet fermant »

\' l'accent aigu qu'en LaTeX tu peux placer sur n'importe quelle lettre

 \'B \'z

donne

\no pour écrire n°

\oe pour écrire œ

\dots pour écrire . . . (ce qui n'est pas pareil que ... trois points écrits au clavier)

Donc quand LaTeX rencontre un \ il reconnait le début d'une commande. Pour la fin des commandes sans arguments c'est un peu plus compliqué car il y a plusieurs types de caractères qui indiquent à LaTeX la fin de la commande :

La première conséquence c'est qu'aucune commande ou balise LaTeX ne contient de chiffres, de caractères de ponctuation (,;:) ou de tiret (souviens-t-en quand tu créeras tes commandes, et oui, dans ce tutoriel tu vas apprendre à créer des commandes).

Quand tu utilises l'espace pour terminer une commande, celle-ci est mangée par LaTeX, elle n'apparait pas dans le texte final. Un exemple si j'écris dans le source

 \LaTeX la suite

l'espace après le X de LaTeX indique la fin de commande mais est mangée et on obtient dans le document final (le .pdf)

Melle Michu

— T'es couillon tu n'as qu'a mettre 2 espaces une qui est mangée et l'autre qui reste !!!

Et bien non c'est pas possible pour LaTeX 1, 2, 3 ou 100 000 espaces c'est pareil, il n'en voit qu'une seule. On en reparlera plus tard.

Pour obtenir le bon résultat il faut écrire l'une de ces possibilités :

 \LaTeX\ la suite

 \LaTeX{} la suite

qui donne

Par contre tu peux écrire

 \LaTeX\, la suite
 \LaTeX\. La suite

Que l'espace soit mangée n'a pas que des inconvénients. Essayons d'écrire Le cœur a ses raisons que la raison ne connaît pas.

La commande LaTeX pour le œ est \oe. Si j'écris c\oeur je vais obtenir une erreur car la commande \oeur, n'existe pas. Il faut donc écrire c\oe ur, l'espace étant mangé j'obtiens cœur. Tu aurais pu écrire aussi :

 Le c\oe{}ur a ses raisons que la raison ne connaît pas

Par contre

 Le c\oe\ ur a ses raisons que la raison ne connaît pas

ne marche pas

et c\oe\ur renvoie une erreur car \ur est une commande qui n'existe pas.

Tu as pu remarquer qu'il n'est pas nécessaire d'insérer une espace au début de la commande.

2.3.1.2 - Les commandes à argument

Les commandes à argument sont faites pour traiter des objets, des mots ou textes courts, qui sont placés entre accolades. Voici des exemples de commandes à argument :

 Un mot et \textbf{un mot}

met le deuxième un mot en gras

\includegraphics{pingouin.jpg} pour inclure une image : \includegraphics[scale=0.2]{tux.jpeg}

 Voici un petit pingouin \includegraphics{pingouin.jpg}

Certaines commandes peuvent prendre plusieurs arguments :

 Un texte et un à 45° \rotatebox{45}{texte} 

pour faire subir une rotation de 45° à un texte

Certaines commandes peuvent prendre des options. Toutes les options LaTeX s'écrivent entre crochets [ ] et sont séparées par des virgules, s'il y en à plusieurs. Par exemple si tu veux doubler la taille du pingouin :

 \includegraphics[scale=2]{pingouin.jpg} 

qui donne

Tu peux dans certain cas emboîter les commandes :

 Un mot en gras et italique : \textbf{\textit{un mot}}

Par contre certaines actions sont impossibles, comme par exemple mettre un nouveau paragraphe dans un texte en gras :

 \textbf{un mot \par un autre mot}

provoque une erreur de compilation. Pour traiter des textes plus grand avec des éléments de formatage il faut utiliser les environnements.

2.3.2 - Les environnements

Les environnements commence toujours par \begin{nomEnvironnement} et se termine par \end{nomEnvironnement}. Tout ce qui se trouve entre ces deux bornes seront affecté par l'action de l'environnement choisi. Le nom de l'environnement obéi aux même règles que les noms de commandes, pas de ponctuations, de nombres, de caractères accentués. Par exemple pour centrer une partie d'un document :

 \begin{center}

 Tout ce qui

 \par

 est  \textbf{ici} est centré.

 \end{center}

 Mais pas après.

Tu peux emboîter les environnements, mais pas les imbriquer, le premier exemple est bon, le deuxième retourne une erreur de compilation.

 \begin{environnement1}

 texte ou rien

 \begin{environnement2}

 texte

 \end{environnement2}

 texte ou rien

 \end{environnement1}

 \begin{environnement1}

 texte ou rien

 \begin{environnement2}

 texte

 \end{environnement1}

 texte ou rien

 \end{environnement2}

C'est une des erreurs les plus fréquente quand on débute. Elles ne sont pas toujours faciles à démêler, surtout quand les bornes des environnements sont éloignées.

2.3.3 - Les déclarations

Il existe un dernier type de commande : les déclarations. Ce sont des commandes dont l'action débute à l'endroit où tu places cette commande et qui se poursuit jusqu'à la fin de ton document, sauf si elle rencontre :

Voici pour être plus clair des exemples avec la commande \tiny, qui permet d'écrire en tout petit

 Voici un texte écrit dans la taille courante de mon document. Si
 je place la commande \tiny, tout ce qui suit est donc écrit en
 tout petit et ça va continuer jusqu'à la fin. Enfin pas vraiment
 car là je vais placer la commande \large qui écrit en grand et
 annule l'action de la commande tiny. Par contre  \color{blue} n'a
 pas d'action sur la commande large car son rôle est de changer
 la couleur du texte. Tu as compris ? \tiny Maintenant tout est
 en bleu sauf si tu changes  \color{red} la couleur.

Un exemple avec la commande dans un environnement.

 Voici un texte écrit dans la taille courante de mon document. 

 Maintenant je vais centrer la suite du texte.

 \begin{center}

 Voila mon texte est centré.\tpar

 La commande \tiny me le met

 en tout petit et son action s'arrête là

 \end{center} car j'ai quitté l'environnement center dans lequel

 j'ai mis la commande tiny.

Remarque au passage qu'un environnement provoque automatiquement un saut de paragraphe au début et à la fin de l'environement et notre ligne commençant par car j'ai... ce trouve donc indentée.

Il existe un autre moyen de contraindre une déclaration, c'est de l'enfermer entre des accolades { }.

 Un texte {\tiny avec la commande tiny} contrainte par des accolades.

On a fait le tour des commandes LaTeX. J'espère que tu n'es pas trop noyée. Mais ne t'inquiètes pas, on se familiarise rapidement avec ce système qui finalement est assez logique.

2.3.4 - Environnement ou déclaration That's the Question ?

Certaines fonctions possèdent plusieurs types de commande. Pour mettre en gras on a vu la forme à argument \textbf{texte}, et bien il existe une forme déclarative \bfseries et un environnement \begin{bfseries} . . . \\\end{bfseries}. Pour la gestion des polices les environnements ne sont rarement utilisés. Si tu dois formater un mot ou un petit groupe de mot la forme à arguments \textbf{texte} est plus facile, par contre quand tu crées une commande1 la forme déclarative (\bfseries) est plus indiquée. De même quand le formatage du texte intervient dans un autre environnement. Par exemple si tu veux mettre ton texte en rouge et en gras, tu peux coder cela de cette façon :

 Un texte normal et{\color{red}\bfseries un texte en rouge et en gras.}

1- Et oui avec LaTeX tu peux créer tes commandes, on étudiera cette fonction dans un prochain chapitre.}

2.4 - Où Melle Michu écrit enfin sa première ligne de code

Revenons à nos moutons et écrivons notre première ligne, tu te souviens, celle qui nous permet de déclarer le type de document que l'on veux réaliser (un rapport avec la classe scrreprt), donc tu tapes :

 \do

STOP !!

Pas la peine d'aller plus loin. Tapes maintenant sur la touche Tab de ton clavier et miracle

 \documentclass}{|}

s'écrit tout seul et le curseur est placé entre les accolades. Tu n'as plus qu'à taper scrreprt.

 \documentclass{scrreprt}

2.5 - Où Melle Michu est ébahie par la complétion automatique

Fabuleux, c'est ce que l'on appelle la complétion automatique (ou auto-complétion). Apprend à l'utiliser et fait le systématiquement, tu gagneras beaucoup de temps. Je sais que la période est à la souris et au clicodrome, mais crois moi faire tout à partir du clavier est beaucoup plus rapide et efficace que l'utilisation de la souris.

Un exemple : la commande pour mettre en gras sous LaTeX est \textbf {}. Avec la complétion automatique il me suffit de taper bf et \touche{Tab} et d'écrire le mot ou la phrase à mettre en gras. Compare avec les actions d'écrire le mot, de prendre la souris, de sélectionner ce mot ou cette phrase, de cliquer sur l'icône qui met en gras et de revenir au clavier. Et bien pendant que tu as fait tout cela, moi j'ai déjà écrit la deuxième phrase. Tu me rétorqueras oui mais il faut apprendre un maximum de commande avant d'être efficace. Dans la réalité le nombre de commandes à savoir n'est pas si important, c'est souvent les mêmes qui reviennent. Et de toute façon tous les logiciels demandent un apprentissage. Il a bien fallu que tu apprennes que l'icône avec un G (ou un B) dessus servait à mettre en gras. Tu n'as pas le choix, TeXworks est dépourvu d'icône de mise en forme. Donc arrête la mauvaise fois et au boulot.

2.6 - Où Melle Michu choisi le format de page, la taille du texte, le recto-verso

 \documentclass}{screprt}

Avec cette commande tu auras un document avec un format de papier a4, un texte de taille 12 pt et en recto simple, qui sont les valeurs par défaut de KOMA-Script. Comme tu veux un document en 10 pt et en recto-verso, tu vas ajouter les options suivantes

 \documentclass[10pt,twoside]{screprt}

LaTeX n'accepte que 3 tailles de texte 10, 11 et 12 pt. KOMA-Script accepte n'importe quelle taille, mais attention certaine commandes LaTeX risquent de ne pas aimer et tu peux te retrouver avec des problèmes imprévus si tu utilises une fontes de 14 pt par exemple. Mais quelle idée de prendre une fonte de 14 pt pour écrire un rapport, à moins de n'avoir rien à dire et faire du remplissage.

Choisir une taille de fonte ne veut pas dire que l'intégralité du document sera de cette taille. Tu pourras écrire des portions de texte en plus petit ou en plus grand. Mais les commandes pour le faire (blue%\small ou \Huge, par exemple) sont proportionnelle à la taille choisie ici.

L'option twoside permet d'avoir un document en recto-verso, ce qui a une influence sur les marges, la numérotation des pages, les entêtes,. . .

2.7 - Melle Michu perplexe doit indiquer l'encodage

La police de caractères utilisée par défaut par LaTeX (appelée CM ou Computer Modern) ne possède pas les caractères tel que â, é, ï, ç, ù. . . Il faut donc charger une police adéquate par :

 \usepackage[T1]{fontenc}
 \usepackage{lmodern} 

La première ligne \usepackage[T1]{fontenc} permet à LaTeX d'utiliser des fontes modernes T1 possédant tous les caractères utilisées par les langues d'Europe de l'ouest. La deuxième ligne \usepackage{lmodern} charge la fonte lmodern qui est un équivalent, avec tous les caractère spéciaux, de Computer Modern. On a un autre problème à régler avant de pouvoir taper des textes en français avec LaTeX, lui faire reconnaître les caractères accentués du clavier et éviter d'avoir à taper \'e pour é. Pour cela il suffit d'ajouter :

 \usepackage[utf8]{inputenc}

Donc pour avoir des accents qui vont bien avec une belle police, il faut fournir à LaTeX ces trois commandes :

 \usepackage[T1]{fontenc}
 \usepackage{lmodern} 
 \usepackage[utf8]{inputenc}

 

2.8 - Où Melle Michu poursuit son apprentissage de l'auto-complétion

Ici aussi l'auto-complétion fait des miracles. Il te suffit de taper

 \us

puis sur la touche Tab et tu obtiens

 \usepackage{}

Ce qui n'est pas vraiment ce que tu veux puisqu'il manque les crochets. Donc au lieu de taper une seule fois sur Tab tu tapes une deuxième fois. Et tu obtiens

\usepackage[|]{}

Taper plusieurs fois sur sur la touche Tab fera défiler toutes les options possibles commençant par \us. Tu choisis celle qui te convient. Le curseur est placé entre les crochets tu inscris donc :

 \usepackage[utf8]{}

Tu peux remarquer qu'il y a un • entre les parenthèses. Tu peux te déplacer sur ce • avec la combinaison de touches Ctrl+Tab. Tu le remplaces par

 \usepackage[utf8]{inputenc}

Tu verras par la suite que certaines commandes possèdent plusieurs $\bullet$ afin de remplir plusieurs champs. Donc pour passer de l'un à l'autre tu utilises la la combinaison de touches Ctrl+Tab et pour revenir en arrière la combinaison de touches Ctrl+Shift+Tab. Et oui il te faut 3 doigts pour y parvenir, mais tu vas très vite acquérir une certaine agilité au niveau des doigts, très profitable et je te rappelle qu'il y a 2 touches Shift sur un clavier, une pour chaque main.

Tu procèdes de même pour la deuxième commande.

2.9 - Où Melle Michu n'a pas tout compris pour la complétion automatique

Melle Michu : Il y a des fois ou tu tapes le début de la commande avec la barre (\) et d'autre comme pour mettre en gras bf qui n'est pas le début de la commande ( \textbf {}). C'est quoi ce bazar ?

Effectivement une petite explication s'impose. Si je tape \te, je suis obligé de taper 6 fois sur la touche Tab pour compléter la commande pour écrire en gras et 11 fois pour l'italique, car des commandes commençant par \te, il y en a un certain nombre. De la même façon vu le nombre d'environnement différent (les trucs qui commencent par un \begin), réaliser la complétion en tapant \be, ne risque pas de faciliter la frappe. Donc pour améliorer le système TeXworks a défini une liste de raccourci que tu trouveras à la fin de ce manuel http://www.leliseron.org/TeXworks/. C'est pour cette raison que tu peux taper bf + la touche Tab pour mettre en gras, bce + la touche Tab pour centrer (le b pour begin et le ce pour center), se + la ttouche Tab pour section, sse pour sous-section,. . . Dans la suite de ce document j'indiquerais en magenta le raccourci pour la complétion (bf, bce, se}.

Dans le manuel cité ci-dessus tu trouveras la façon de créer tes propres raccourcis. Si bf ne te conviens pas, tu peux faire en sorte que gr te donne le même résultat.

2.10 - Où Melle Michu fait appel à la police

Le nombre de police de caractère est limité sous LaTeX (enfin c'est pas tout à fait exact mais choisir une police exotique nous entraînerait trop loin et n'entre pas dans le propos de ce tutoriel). Le but est quand même de faire un rapport scientifique, pas un magazine people. Le rôle de la typographie est de faciliter la lecture afin que le lecteur reste concentré sur le fond. Les polices de LaTeX répondent à cette nécessité. Si tu trouves la police lmodern trop LaTeXiène, voici quelques polices que tu peux essayer, tu remplaces dans

 \usepackage{lmodern}

lmodern par le nom donné ci dessous :

Pour plus de polices je te renvoie au site :http://www.tug.dk/FontCatalogue/.

Tu trouveras également des exemples de polices de caractères dans le document de Marc Baudoin Apprends LaTeX !, chapitre 8.5 Changer la police de caractères, page 94, disponible à cette adresse : http://www.babafou.eu.org/Apprends_LaTeX/Apprends_LaTeX.pdf

2.11 - Melle Michu veut parler français

Chaque langue possède des règles typographiques qui lui sont propre. On ne coupe pas les mots de la même manière en anglais et en français. Les items d'une listes commence par • en anglais et – en français. En anglais et en allemand on ne met pas d'espace avant les signes doubles (;:!?), en français on met une espace insécable avant et une espace normale après pour le : et pour les ;!? ont met avant une espace fine insécable et une espace normale après7

La langue naturel de LaTeX est l'anglais. Le rôle du package babel est de permettre à LaTeX de parler d'autres langues, à l'aide d'extension comme french pour le français8.

 \usepackage}{french}{babel}\index{babel}\index{french}

Grâce à ce package les césures des mots en fin de ligne seront correctes, les espaces entre les signes de ponctuation seront respectés, l'entête des chapitres sera écrit Chapitre et non Chapter, les légendes des figures commenceront par Figure . . .

Il est recommandé que ce package babel soit le dernier package chargé, car il modifie le comportement de certains autres packages.

7- L'espace insécable est une espace qui ne peut être coupée par un saut de ligne. Elle s'écrit ~ en LaTeX et \, pour l'espace fine insécable.

8- french est maintenue par Daniel Flipo, la dernière version est la 2.5f (25 juillet 2011).

2.12 - Melle Michu achève le préambule

Pour l'instant le préambule, c'est comme cela que l'on appelle la première partie du source qui comprend les paramètres de mise en page et le chargement des packages dont tu as besoin, comprend 5 lignes :

 \documentclass[10pt,twoside]{scrreprt}

 \usepackage[utf8]{inputenc}

 \usepackage[T1]{fontenc}

 \usepackage{lmodern}

 \usepackage[frenchb]{babel}

On va s'arrêter là pour l'instant. On complétera le préambule au fur et à mesure de nos besoins. Maintenant tu vas ajouter les deux balises \begin{document} et \end{document}. C'est dans cet environnement que tu vas saisir le texte de ton rapport.

 \documentclass[10pt,twoside]{scrreprt}

 \usepackage[utf8]{inputenc}

 \usepackage[T1]{fontenc}

 \usepackage{lmodern}

 \usepackage[frenchb]{babel}

 \begin{document}

\end{document}

Au commencement était LaTeXRetour au sommaireMelle Michu veut une méthode de travail
Récupéré sur http://bebertlafiche.free.fr/index.php5/Rapport/PremiersPas
Page mise à jour le 23/10/2011 22:38