insa de toulousegirardi/latex/rediger_latex.pdf · b exemple : style fancy 33. premi ere partie...

17
INSA de Toulouse Club Informatique ediger des documents avec L A T E X Auteur : Alexis Girardi 8 f´ evrier 2014

Upload: phamhuong

Post on 26-Aug-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

INSA de Toulouse

Club Informatique

Rediger des documents avecLATEX

Auteur :Alexis Girardi

8 fevrier 2014

Table des matieres

I Utilisation de base 30.1 Avant de commencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

0.1.1 Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40.1.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40.1.3 Structure des editeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 Les bases de LATEX 71.1 Pre-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.1.1 Organisation du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Structurer son document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2.1 Commandes de bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.2 Commandes avancees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.3 La page de garde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.1 Une page simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.2 Un peu de modularite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.4 Elements de mise en page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.4.1 Alignement du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.4.2 Les marges et interlignes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.4.3 Style de page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Edition de texte 162.1 Les commandes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.1.1 Taille de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.1.2 Gras, italique, souligne ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.1.3 Style de police . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.4 Un peu de couleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.5 Retours a la ligne et sauts de page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.6 Les metacaracteres s’echappent ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.1.7 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2.1 La base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2.2 Utilisation avancee des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Citation de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.4 Inclure des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 Le mode mathematique 243.0.1 Entrer en mode mathematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.0.2 Les packages utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.0.3 Fonctions usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.0.4 Indice et exposant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.0.5 Fractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.0.6 Fonctions predefinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.0.7 Racines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.0.8 Limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Les autres matieres scientifiques 294.1 LATEX et la chimie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1 Les formules chimiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.1.2 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1

TABLE DES MATIERES 2

II Annexes 31

A Code source de la page de titre 32

B Exemple : style fancy 33

Premiere partie

Utilisation de base

3

Introduction

0.1 Avant de commencer

Si vous etes en train de lire ce document c’est que vous avez choisi d’apprendre le LATEX et nous ne pouvonsque vous feliciter pour ce choix ! S’il y a une remarque que nous pouvons vous faire avant de commencer, c’estde perseverer. Meme si au debut vous aller avoir l’impression de perdre un temps vous a rediger vos rapport,evitez le mauvais reflexe qui serait de se dire ”Oh de toute facon je perds du temps pour rien, j’abandonne jeredige avec Word”. Si a chaque fois vous abandonnez, vous ne progresserez pas. Bien que vous perdiez du tempsau debut, vous verrez qu’au bout d’un petit moment de pratique vous gagnerez en rapidite et vous serez toutautant rapide que sur un traitement de texte classique.

0.1.1 Presentation

Note 1:

Tout ce qui sera ecrit sous cette forme est du code LaTeX

Dans la boıte en dessous, le rendu apres compilation

LATEX est un langage de description, mais aussi un langage de programmation qui permet de realiser de bellesmises en page et est surtout apprecie pour les rendus de rapports scientifiques qui comportent de nombreusesformules mathematiques. Par exemple les polys de maths ou d’algo sont rediges avec LATEX.Il permet aussi de faire des presentations (du type powerpoint) avec le package beamer (les slides du coursd’algo sont fait en latex avec beamer).

Contrairement a OpenOffice (ou Word) LATEX n’est pas WYSIWYG (What You See Is What You Get), c’esta dire que ce que vous rentrer dans l’editeur n’est pas ce que vous aurez au final ! Petit exemple le code latexsuivant :

\frac{\ partial ^2 \Psi}{\ partial x^2}+\ frac{\ partial ^2 \Psi}{\ partial y^2}+\

frac{\ partial ^2 \Psi}

{\ partial z^2} + \frac {8\pi^2m}{R^2}(E-v) = 0

donne : ∂2Ψ∂x2 + ∂2Ψ

∂y2 + ∂2Ψ∂z2 + 8π2m

R2 (E − v) = 0

l’equation de Schrodinger pour les plus perspicaces ...

0.1.2 Installation

Pour Windows

On a besoin d’une distribution LATEX et d’un editeur.La distribution LATEX pour Windows s’appelle MiKTeX, rendez vous sur ce site pour la telecharger : http://miktex.org/download

4

5

Suivez ensuite ce que vous demande l’installeur. Il va notamment telecharger la distribution, cette etapepeut prendre du temps (la distribution LATEX etant assez lourde) !Une fois MiKTeX installe, on peut installer l’editeur. Vous avez le choix entre deux :TexMaker : http://www.xm1math.net/texmaker/download_fr.html, qui est celui que j’utilise (et donc lescaptures d’ecran seront realisee dessus)

Ou alors un editeur assez populaire sous Windows : TeXnic Center : http://www.texniccenter.org/resources/downloads/29 Choisir le telechargement 1 ”TeXnicCenter 1 RC 1 Installer”.Une fois telecharge suivre la encore ce que demande l’installeur.Ca y’est, vous etes pret a rediger en LATEX !

Pour Linux

Ouvrez un terminal et executez les commandes suivantes :– Sous Debian/Ubuntu (utiliser sudo car Ubuntu ne permet pas de se logger en tant que root)# apt-get install texlive cm-super texmaker

– Sous Fedora# yum install texlive cm-super texmaker

– Sour ArchLinux# pacman -S texlive cm-super texmaker

L’editeur TeXmaker sera disponible dans le menu Application > Bureautique.

Figure 1 – Emplacement de TeXmaker, ici avec openbox

A noter qu’il est possible de n’installer que la distribution et d’editer le code avec un editeur comme vim(ou emacs), puis de compiler en ligne de commande avec :

$ pdflatex monfichier.tex

0.1.3 Structure des editeurs

TeXnic Center et TeXmaker sont concus de la meme facon. Dans ce document les impressions d’ecran vien-dront de TeXMaker, mais les utilisateur de TeXnic Center devrait s’y retrouver.

L’editeur est compose de 3 parties : la zone de saisie (la ou on va ecrire du code LATEX, la zone de rendu(le fichier de sortie) et la zone du compilateur (et oui en LATEX aussi on aura le droit de se faire insulter par lecompilateur, le fonctionnement de cette zone est exactement le meme qu’en ADA). Pour compiler il n’y a qu’acliquer sur la fleche a cote de ”Compilation Rapide” !

6

Figure 2 – Organisation de TeXmaker

1

Les bases de LATEX

1.1 Pre-requis

En LATEX toutes les commandes on la forme suivante :

\commande[options ]{ arguments}

Les options et arguments sont facultatifs, mais beaucoup de commandes demandent des arguements, par exemplela commande textbf qui permet d’ecrire en gras prend en argument le texte a mettre en gras. Ex :

\textbf{mon texte}

mon texte

On trouve egalement des environnements, qui se presentent sous la forme :

\begin{environnement ][ options]

code de l’environnement (du texte et des commandes)

\end{environnement}

la encore les options sont facultatives. On aura l’occasion de revenir sur les environnements pour les tableaux,listes a puce, enumerations ...

Enfin on peut aussi placer des commentaires (qui seront ignores par le compilateur comme en ADA) :

% Ceci est un c o m m e n t a i r e latex

1.1.1 Organisation du code

Un document LATEX est toujours organise de la meme maniere :– Declaration du type de document– Inclusion des packages– Declaration des macros (facultatif)– Code du corps du document

On commence donc par donner le type de document avec la commande :

\documentclass[option ]{type}

7

1. LES BASES DE LATEX 8

Il existe plusieurs types 1 de documents, les plus courants sont :

Nom Utilisationarticle Pour des petits documents (DM par exemple)book Pour ecrire un livreletter Pour ecrire une lettre (tres pratique !)report Pour un rapport (de stage ou une these)

On utilisera souvent article pour nos documents, en option de la commande on donnera le format de papier(A4)et la taille de la police (10 pt). Vous placerez donc au tout debut de votre code la commande :

\documentclass[a4paper ,10pt]{ article}

Remarque 1: Avec cette methode vous ne pouvez pas ecrire au dela de 12pt. Pour ecrire plus gros il faututiliser le package extsizes :

\usepackage [14pt]{ extsizes}

Vient ensuite le moment de dire quel packages nous utiliserons. Les packages sont des modules qui contiennentdes definitions de commandes. Pour inclure un package on utilise la commande (comme vu juste au dessus) :

\usepackage[options ]{nom}

Notez que LATEX utilise beaucoup de packages, pour la plupart des taches. Dans ce document on precisera achaque fois si une commande provient d’un package, pour l’utiliser il faudra imperativement inclure le package(avec la commande donnee ci-dessus) auquel cas le compilateur renverra une erreur.On verra dans la deuxieme partie comment installer des packages.

Pour rediger un document on a besoin de deux packages au minimum. Pensez donc a les inclure systematiquement :

\usepackage[utf8x]{ inputenc}

\usepackage[francais ]{babel}

Le premier precise qu’on utilise l’encodage utf8 (utile pour gerer les accents, cedille et autres), le deuxiemeprecise que l’on va ecrire du francais. Vous pouvez tres bien donner en option ”english” si le document est enanglais.

Attention : Windows prefere utiliser latin1 que utf8x. De plus si vous voulez compilez un fichier .tex enlatin1 avec retour de ligne Windows sous Linux vous rencontrerez des problemes (notamment la suppression detous les caracteres accentues).

Pour commencer on ne definira aucune macro (on verra ca dans la section ).Enfin on peut ecrire le code du corps du document, c’est ce qui sera affiche sur le rendu. En latex le documentest un environnement, on ecrit donc :

\begin{document}

% CODE

\end{document}

Tout ce qui est ecrit en dehors de cet environnement n’apparaıtra pas sur le rendu final, on peut comparer cecode avec les balises <body> et < /body> en HTML.

1. On parle de classe de document

En resume voici le code minimal que vous devrez placer dans TOUT vous code LATEX :

\documentclass[a4paper ,10pt]{ article}

\usepackage[utf8x]{ inputenc}

\usepackage[francais ]{babel}

\begin{document}

% votre code

\end{document}

1.2 Structurer son document

1.2.1 Commandes de bases

LATEXpropose des commandes pour structurer son document en parties, chapitres, section etc ...Ces commandes sont de la forme :

\division{nom de la partie}

Les commandes de structuration les plus courantes sont :

9

1. LES BASES DE LATEX 10

Commande Description

\part{}

\end{verbatim}

& Partie \\

\hline

\begin{verbatim}

\chapter {}

\end{verbatim}

& Chapitre \\

\hline

\begin{verbatim}

\section {}

\end{verbatim}

& Section \\

\hline

\begin{verbatim}

\subsection {}

\end{verbatim}

& Sous -section \\

\hline

\begin{verbatim}

\subsubsection {}

\end{verbatim}

& Sous -sous -section \\

\hline

\begin{verbatim}

\paragraph {}

\end{verbatim}

& Paragraphe \textit {(

le nom est

facultatif)} \\

\hline

\begin{verbatim}

\subparagraph {}

\end{verbatim}

& Sous -paragraphe \\

\hline

\end{tabular}

\end{center}

\begin{remarque}

Les parties et

chapitres ne sont

pas disponibles

dans les documents

de type \textbf{

article} et \textbf

{letter }.

\end{remarque} \\ \\

\begin{remarque}

\LT{} num erote

automatiquement ,

ainsi il e crira : "

Chapitre 1 : nom du

chapitre" ou "1.

nom de la section"

\end{remarque} \\

\\

Dans ce document les

grands titres qui

commencent par un

seul chiffre sont

des sections , ceux

qui commencent par

"x.x" sont des sous

sections et ceux

qui commencent par

"x.x.x" des sous -

sous -sections (dans

la sous section

installation par

exemple).\\

\\

\newpage

Voil a un petit exemple

d’utilisation de

ces commandes :

\begin{lstlisting}

\documentclass[a4paper

,10pt]{book}

\usepackage[utf8x]{

inputenc}

\usepackage[francais ]{

babel}

\begin{document}

\chapter{Intro} % le

premier chapitre

\section{Ca commence

!} % premi e re

section

\subsection{le tout

tout debut} % une

premi e re sous

section

\chapter{la suite} %

chapitre 2

\end{document}

Remarque 2: Si vous ne voulezpas que LATEXnumerote la divi-sion il suffit de rajouter * apresle type de division, ex :

\chapter *{} % chapitre

sans num e ro

\section *{} % section

sans num e ro

On verra a la section commentne garder que le numero dechapitre, sans que LATEX ecrivea chaque fois ”Chapitre x”.

1.2.2 Commandesavancees

On possede deja pas mal de com-mandes pour structurer son doc-ument, mais on peut encore allerplus loin.

Les annexesPour inserer des annexes dansun document on utilise la com-mande :

\appendix

Apres cette commande latex nenumerote plus en chiffres mais enlettres et sait qu’il s’agit d’an-nexe.On utilisera des chapitres d’an-nexe dans les document de typebook et report, et des sectionsd’annexe dans les article. Exem-ple :

\documentclass[a4paper

,10pt]{book}

\usepackage[utf8x]{

inputenc}

\usepackage[francais ]{

babel}

\begin{document}

% ... plein de texte

\appendix

\chapter{en annexe} %

premi e re annexe

\chapter{autre annexe}

% deuxi e me annexe

\end{document}

Ou bien dans un document detype ”article” :

% i nc lu sio n des

packages de base ,

comme au dessus

\begin{document}

% ... plein de texte

\appendix

\section{en annexe} %

premi e re annexe

\section{autre annexe}

% deuxi e me annexe

\end{document}

Prologue et epilogueDe la meme maniere on peutajouter des chapitres de pro-logue et epilogue. Les chapitresde prologues seront numerotesen chiffres romains, et leschapitres d’epilogue ne serontpas numerotes.

Note 1: Les commandes suiv-antes ne sont disponibles quedans la classe book.Les commandes associees sont :

\frontmatter %

prologue

\backmatter % e p i logue

\mainmatter % pour pr e

ciser que l ’ on

termine le prologue

et que l ’ on

revient dans le

corps du document

Exemple :

\documentclass[a4paper

,10pt]{ article}

\usepackage[utf8x]{

inputenc}

\usepackage[francais ]{

babel}

\begin{document}

\frontmatter %

prologue

\section{premier

prologue}

\section{deuxi eme

prologue}

\mainmatter % On

utilise m a i n m a t t e r

pour signaler que l

’ on revient sur des

sections " normales

"

\section{titre} % la

section 1

\appendix % annexes

\section{en annexe} %

premi e re annexe

\section{autre annexe}

% deuxi e me annexe

\backmatter % e p i logue

\section{l’e pilogue}

\end{document}

Table des illustrations etliste des tableauxLATEX vous permet de listertoutes les illustrations ainsi quetous les tableaux et ce en uneseule ligne. Ces commandes sontpratiques pour realiser les an-nexes par exemple.

Note 2: On verra a la sectionet comment inserer des illustra-tions.

Les commandes sont :

\listoffigures % table

des i l l u s t r a t i o n s

\listoftables % liste

des tableaux

Vous pouvez voir le resultat deces commandes en annexe de cedocument a la page.

La table des matieres (ousommaire)Creer un sommaire est aussi sim-ple que les commandes vues justeavant. Outre le fait d’adapter lamise en page, le fait de structurerson document avec les comman-des que nous avons vu permet aLATEX de construire tout seul lesommaire. Pour ce faire il suffitde placer la commande suivanteau debut de l’environnement doc-ument (apres le \maketitle) :

\tableofcontents

La encore pour avoir un exem-ple vous pouvez regarder le som-maire de ce document.Remarque 3: Pour que leschangements soient effectifs dansle sommaire il faut compiler deuxfois.

1.3 La page degarde

1.3.1 Une page simple

Pour les documents de type booket report :LATEX vous permet de realiserune page de garde qui serainseree au tout debut de votredocument. On utilise au mini-mum quatre commandes :

\title{Titre du

document}

\author{Le nom de l’

auteur}

\date{la date}

\maketitle % demande a

latex de cr e er la

page de garde

Attention : les 3 premieres com-mandes doivent etre placees endehors de l’environnement docu-ment !Voici un exemple d’utilisation :

\documentclass[a4paper

,10pt]{book}

\usepackage[utf8x]{

inputenc}

\usepackage[francais ]{

babel}

% on place les

c om ma nde s avant l ’

e n v i r o n n e m e n t

document

\title{Re diger des

documents avec \\ \

Huge{\LaTeX }}

\author{Alexis \textsc

{Girardi }}

\date{\ today} % la

commande \ today

renvoie la date

actuelle

\begin{document}

\maketitle % m ak et itl e

se place DANS l ’

e n v i r o n n e m e n t

document

\end{document}

Ceci produit la page de titresuivante :Il faut toujours ecrire les 4 com-mandes, si vous ne souhaitez pasfaire apparaıtre un champ il suf-fit de ne rien passer en argue-ment :

% ...

\author{Alex}

\date{} % argument

vide , la date ne

sera pas pr e cis e e

% ...

On peut egalement ajouter desinformations en note de bas dela page de titre grace a la com-mande

\thanks

On peut par exemple rajouterune adresse mail a notre page detitre.

\title{Re diger des

documents avec \\ \

Huge{\LaTeX }}

\author{Alexis \textsc

{Girardi} \thanks{

club.info@amicale -

insat.fr}}

\date{\ today}

1.3.2 Un peu de mod-ularite

Pour ameliorer la lisibilite ducode et faire des pages de titreplus compliquees on va ecrire lecode de la page de titre dans unfichier separe. Puis on inclura en-suite ce fichier pour que LATEXgenere la page de titre sur notredocument. Les habitues de laprogrammation retrouvent la leconcept de modularite, on evitede mettre tout le code dans lememe fichier.

Note 1: Ce principe deseparation en plusieurs fichiersn’est pas specifique a la pagede garde, vous pouvez tres bienecrire chaque chapitre dans unfichier different puis les rassem-bler pour constituer le documentfinal. Ici la page de garde etaitun bon exemple pour introduirece concept.

Pour faire reference a un fichierexterne on utilise la commande

\input {./ nomdufichier.

tex}

Remarque 4: Ici on donne lechemin relatif du fichier etantsitue dans le meme dossier quenotre fichier principal.

Le code etant un peu long voustrouverez en annexe A page 32la source de la page de titrede ce document. Quelques ex-plications, il n’y a plus besoind’utiliser \maketitle l’environ-nement titlepage indique a LATEXqu’il s’agit de la page de titre.Pour toutes les autres comman-des elles seront expliquees aucours de ce document.

Remarque 5: Attention necompilez pas la page de titre,vous obtiendrez des erreurs, sivous effectuez des changementssur la page de titre il faut l’enreg-istrer et recompiler le documentprincipal.

1.4 Elements demise en page

1.4.1 Alignement dutexte

Comme dans n’importe quel logi-ciel de traitement de texte vouspouvez aligner a gauche, a droiteou centrer votre texte. LATEXpropose trois environnements :

Nom Descriptionflushright Aligner a droite

center Centrerflushleft Aligner a gauche

Un exemple d’utilisation :

\documentclass[a4paper

,10pt]{book}

\usepackage[utf8x]{

inputenc}

\usepackage[francais ]{

babel}

\begin{document}

\begin{flushright}

Ce texte sera align e a

droite

\end{flushright}

\begin{center}

Celui -ci sera centr e

\end{center}

\begin{flushleft}

Et celui -la align e a

gauche

\end{flushleft}

\end{document}

1.4.2 Les marges et in-terlignes

Pour editer les marges du docu-ments, il suffit d’utiliser le pack-age geometry, on lui passera lesvaleurs des marges en option,vous devriez comprendre avec cetexemple.

\usepackage[top=2cm,

bottom =2cm, left=2

cm , right =2cm]{

geometry}

Pour les interlignes on utilisele package setspace qui proposedeux environnements

% ...

\usepackage{setspace}

% on oublie pas de

l ’ inclure !

\begin{document}

\begin{onehalfspace}

% i n t e r l i g n e interm e

d iaire

\end{onehalfspace

\begin{doublespace}

% on e crit une ligne

sur 2

\end{doublespace}

\end{document}

1.4.3 Style de page

Le style de page definit globale-ment le type d’en-tetes et piedsde page ainsi que le style denumerotation. Pour changer destyle de page on utilise la com-mande suivante :

\pagestyle{nom du

style}

Voila les styles les plus courants :

empty : comme son noml’indique dans ce style depage il n’y a rien en en-teteet pied de page (y comprisle numero de page)

plain : aucun en-tete, insere lenumero de page en bas dechaque page

headings : insere le nom duchapitre et le numero depage en en-tete, ce stylevarie en fonction de laclasse du document. Dansla classe book la positiondu numero de page sera agauche (resp. droite) pourla page de gauche (resp.droite). C’est par ailleursdans cette classe que lestyle headings est le plusriche. Dans le style reportil n’y a pas de distinctionsentre les pages 2.

myheadings : Insere l’en-tetepersonnalise (voir la sec-tion) ainsi que le numerode page en en-tete.

Personnaliser l’en-tete

LATEX permet d’inserer un textepersonnalise en en-tete grace auxcommandes suivantes :

\markright{En -tete}

\markboth{En -tete

gauche }{En-tete

droite}

La premiere commande estutilisee lorsqu’il n’y a aucunedifferentiation entre page degauche et page de droite. L’en-tete passe en argument est inseresur toutes les pages (de styleheadings et myheadings).

La seconde quant a elle per-met de differentier 3 les pages,en-tete gauche (resp. droite) faitreference au texte qui sera inseresur la page de gauche (resp.droite)

Note 1: On peut exceptionnelle-ment changer de style de pagepour une page en particulier etce grace a la commande

\thispagestyle{style}

Cette commande est utile, parexemple lorsqu’on ne veut pasnumeroter le sommaire et les an-nexes 4.

En-tete et pied de page per-sonnalise

Pour personnaliser l’en-tete etpied de page on utilise le pack-age fancyhdr.Il n’est pas tres complique autiliser vous arriverez a compren-dre sur cet exemple :

% ...

\usepackage{fancyhdr}

\renewcommand {\

footrulewidth }{0.5

pt} % macro qui

affiche le trait en

bas de page

\begin{document}

\pagestyle{fancy}

\lhead{En haut a

gauche}

\chead{En haut au

milieu}

\rhead{En haut a

droite}

\lfoot{En bas a gauche

}

\cfoot{-- \thepage {}

--}

\rfoot{En bas a droite

}

\end{document}

Pour vous donner une idee durendu, regardez l’annexe B page33 qui presente une page dans lestyle fancy.

On place ce code une seule foisau debut du document et LATEXle reproduit sur chaque page.

Remarque 6: La commande\thepage permet de fairereference a la page courante. Onaura l’occasion dans la partiepage sur les compteurs.

2

Edition detexte

Ca y’est on sait enfin structurerson document, il ne reste plusqu’a taper du texte !

2.1 Les comman-des de base

2.1.1 Taille de texte

Modifier la taille du texte LO-CALEMENT (pour augmenterla taille de l’ensemble du doc-ument il suffit d’augmenter lataille de la police, souvenez vousdu documentclass).Voici les commandes pour lataille de texte :

Commande Taille du texte

\tiny{}

Minuscule

\scriptsize{}

Tres tres petit

\footnotesize{}

Tres petit

\small{}

Petit

\Large{}

Grand

\Large{}

Tres grand

\huge{}

Tres tres grand

\Huge{}

Enorme

L’utilisation de ces commandesne devrait pas vous poser desoucis :

Ce texte est \Huge{e

norme !!}

2.1.2 Gras, italique,souligne ...

Les commandes sont :Commande Effet Rendu

\textbf{}

Gras Texte

\textit{}

Italique Texte

\texttt{}

Machine a ecrire Texte

\textsc{}

Petites capitales Texte

\fbox{}

Encadrer Texte

commandes du package soul

\ul{}

Souligner Texte

\st{}

Barrer Texte

commande du package ulem

\uwave{}

Souligner en vague:::::Texte

Remarque 7: Il existe en faitdeux facons d’ecrire des com-mandes en LATEX jusqu’a main-tenant nous avons vu les com-mandes dites a arguments,presentees dans les tableauxprecedents. Mais ces comman-des peuvent aussi etre ecrites defacon declarative :

{\ commande }

% une commande d e

c l a r a tiv e

COMMANDES

A arguments Declarative

\textbf{} {\bfseries }

\textit{} {\itshape }

\textsc{} {\scshape }

\textup{} {\upshape }

\emph{} {\em }

Par exemple pour ecrire dutexte en gras avec la formedeclarative :

{\ bfseries du texte en

gras}

1. LES BASES DE LATEX 11

Remarque 8: Sous TeXmaker il existe des raccourcis clavier bien pratiques. <C-b> pour mettre en gras et<C-i> pour mettre en italique.

Note 1: Le cas de l’emphase : la commande \emph permet d’activer l’emphase, c’est a dire que LATEXchoisira automatiquement la mise en forme pour faire ressortir la portion de phrase. Bien souvent dans untexte normal la portion sera mise en italique. Evitez cependant de croire que la commande \emph sert a

passer du texte en italique, ce n’est pas toujours le cas. Cette commande peut aussi souligner du texte si c’estplus adapte pour le faire ressortir. Si vous avez des connaissances en Html c’est le meme probleme, la balise

<em> indique l’emphase, mais ne sert pas a mettre en italique (on utilise plutot <i>).Mais dites-donc, dans un texte en italique, comment faire pour qu’un mot (ou groupe de mot) revienne en

texte normal ? Aucun soucis, evitez la solution naıve qui consisterai a utiliser deux commandes \textit, il y aune commande pour ca !

\textup % donne le texte droit

% version a a r g u m ent s

\textit{du texte en italique \textup{un mot normal} on revient en italique}

% version d e c l a r a tiv e

{\ itshape du texte en italique {\ upshape un mot normal} on revient en

italique}

Cet exemple est la pour vous montrer que l’on peut assembler differents styles de caracteres, cela ne poseaucun soucis.

2.1.3 Style de police

2.1.4 Un peu de couleur

Ces commandes utilisent le package color.Pour mettre un morceau de texte en couleur on utilise :

\textcolor{couleur }{texte}

couleur est le nom de la couleur (in English, of course !)Les couleurs disponibles sont : white, black, red, green, blue, cyan, magenta, yellow.

Par exemple :

\textcolor{blue}{Du texte bleu}

donne : Du texte bleu

2.1.5 Retours a la ligne et sauts de page

LATEX ne respecte pas les sauts de ligne que vous pouvez faire dans l’editeur, il adapte automatiquement letexte en fonction de la page, et peut s’il le faut couper des mots lors d’un retour a la ligne. Cela vous permet

d’ecrire votre code de facon lisible en rajoutant des sauts de lignes pour faciliter la lecture du code.

Blalalalala \\ % le double b ack sl as h indique que latex doit revenir a la

ligne

je suis revenu a la ligne

2.1.6 Les metacaracteres s’echappent !

En latex certains caracteres sont reserves, pour les afficher il faut les echapper :

1. LES BASES DE LATEX 12

$ & % # _ { } ^ \ caract e res r e serv e s

on les e chappe pour les faire appara ıtre sur le document :

\$ \& \% \# \_ \{ \} \^ \ t e x t b a c k s l a s h {}

2.1.7 Les listes

Les listes a puces

Les listes a puces sont des listes non-ordonnees, en latex on utilise l’environnement itemize :

\begin{itemize}

\item Un premier item

\item Un second

\item etc

\end{itemize}

Ce qui produit :– Un premier item– Un second– etc

On peut modifier la puce en passant la nouvelle forme en option a item :

\begin{itemize}

\item Un premier item % puce normale

\item[@] Un second % la puce est un arobase

\item [.] etc % la puce est un point

\end{itemize}

Ce qui produit :– Un premier item@ Un second. etc

Liste ordonnee

La liste ordonnee fonctionne exactement de la meme facon que la liste a puce, sauf que cette fois-ci les itemssont numerotes.

\begin{enumerate}

\item Un premier item

\item et un second

\item etc

\end{enumerate}

Ce qui produit :

1. Un premier item

2. et un second

3. etc

Vous pouvez modifiez la puce de la meme facon que dans itemize

\item[puce] texte

1. LES BASES DE LATEX 13

Liste de description

Les listes de description sont utiles pour donner une liste de definition, on utilise l’environnement description,voici un exemple pour comprendre son utilisation :

\begin{description}

\item[Chimie :] C’est brillant

\item[Physique :] Je continue

\end{description}

Ce qui produit :

Chimie : C’est brillant

Physique : Je continue

2.2 Les tableaux

2.2.1 La base

En mode texte les tableaux utilisent l’environnement tabular qui se definie comme suit :

\begin{tabular }{sch ema de ligne}

\end{tabular}

Le schema de ligne permet de definir le nombre de cellule, l’alignement du texte, et les bordures verticales. Lesdifferents alignements de texte sont :

l aligne a gauche

c centre

r aligne a droite

Par exemple pour creer un tableau a 3 colonnes dont le texte sera centre dans la cellule on ecrira :

\begin{tabular }{ccc}

\end{tabular}

Pour placer des bordures verticales on place des — dans le schema de ligne, en reprenant le tableau precedentsi on veut mettre des bordures verticales de part et d’autre du tableau on ecrira :

\begin{tabular }{|ccc|}

\end{tabular}

Dans l’environnement on ecrira ligne par ligne en utilisant & pour passer a la colonne suivante :

\begin{tabular }{|ccc|}

Colonne 1 & Colonne 2 & Colonne 3

\end{tabular}

Ce qui produit :Colonne 1 Colonne 2 Colonne 3

Pour passer a la ligne suivante on utilise la commande de retour a la ligne \\

1. LES BASES DE LATEX 14

\begin{tabular }{|ccc|}

a & b & c \\ % ligne suivante

d & e & f

\end{tabular}

Ce qui donne :a b cd e f

On insere les bordures horizontales avec la commande :

\hline

Un exemple :

\begin{tabular }{|ccc|}

\hline % bordure h o r i z o n t a l e tout en haut

a & b & c \\ % ligne suivante

\hline

d & e & f \\

\hline % bordure h o r i z o n t a l e tout en bas

\end{tabular}

Ce qui donne :a b cd e f

Si on veut des bordures verticales en chaque colonne on modifie le schema de ligne.

\begin{tabular }{|c|c|c|} % on met des | a l ’ endroit o u on veut des bordures

v e r t i c a l e s

\hline

a & b & c \\

\hline

d & e & f \\

\hline

\end{tabular}

Ce qui donne :a b cd e f

2.2.2 Utilisation avancee des tableaux

Fusion de cellulesPour fusionner des cellules on utilise la commande :

\multicolumn{nombre de cellule a fusionner }{sch ema de cellule fusion ee}{

texte}

Un exemple :

\begin{tabular }{|c|c|c|}

\hline

a & b & c \\

\hline

\multicolumn {3}{|c|}{J’ai fusionn e les 3 colonnes} \\

1. LES BASES DE LATEX 15

\hline

d & e & f \\

\hline

\end{tabular}

Ce qui donne :a b cJ’ai fusionne les 3 colonnesd e f

Fusion de ligneIl faut penser a inclure le pacakge ”multirow” !

\usepackage{multirow}

Pour fusionner des lignes on utilise :

\multirow{nombre de ligne fusionn ees}*{ texte}

Un petit exemple :

\begin{tabular }{|c|c|c|}

\hline

a & b & c \\

\hline

\multirow {2}*{ ligne fusionn ee} & d & e \\

\cline {2-3}

& f & g \\

\hline

h & i & j \\

\hline

Ce qui donne :a b c

ligne fusionneed ef g

h i j

On utilise cline au lieu de hline pour eviter d’avoir une bordure horizontale au milieu de la ligne fusionnee. Enargument on lui a donne les numeros de cellules dans lesquelles il faut tracer une bordure horizontale. Ici on

trace la bordure de la colonne 2 a la colonne 3. Les colonnes sont numerotes de gauche a droite.Il y a encore plein de possibilite avec les tableaux, mais je vais m’arrete la, avec ces commandes vous pourrez

deja faire pas mal de chose ! ;)

2.3 Citation de code

Pour citer du code on peut utiliser l’environnement lstlisting, dans cet environnement latex ne tiendra pascompte du code et l’affichera tel quel, j’utilise lstlisting pour afficher les commandes latex dans ce document.

Pour une citation de code source, on utilisera le package listings qui propose un environnement lstlistings et lacommande lstset qui permet de le configurer, attention la commande lstset se place avant l’environnement

document. Voici un exemple de lstset :

\lstset{ %

language=nom_du_langage , % choix du langage

basicstyle =\ footnotesize , % taille de la police du code

numbers=left , % placer le num e ro de chaque ligne a g auche

( left )

1. LES BASES DE LATEX 16

numbers=right , % placer le num e ro de chaque ligne a d roite

( right )

numberstyle =\normalsize , % taille de la police des num e ros

numbersep =7pt, % distance entre le code et sa num e r o t ation

backgroundcolor =\color{white}, % couleur du fond

% P o s s i b i l i t e d ’ u t i l i s a t i o n du package color

}

Voila un exemple de citation de code :

% ...

\usepackage{listings}

\lstset{

language=C++,

basicstyle =\ footnotesize ,

numbers=left ,

numberstyle =\normalsize ,

numbersep =7pt,

\begin{document}

\begin{lstlisting}

#include <iostream >

using namespace std;

int main(int argc , char* argv [])

{

for(int i(0); i < 10; i++)

{

cout << "YOP ! " << endl;

}

return 0;

}