Latex
Introduction
est un système de composition de documents (traitement de texte) ainsi qu'un langage ayant pour objet la création de documents de grande qualité.est l'outil privilégié pour la rédaction de documents scientifiques, en particulier contenant toutes sortes de formules et symboles mathématiques (mais pas que), mais est aussi parfaitement adapté à la création de documents de toutes sortes: écrits non (exclusivement) scientifiques, lettres, transparents pour présentation, ..
Mise en forme générale
Dimensions d'une page
La commande suivante permet d'afficher au point courant du document les dimensions d'une page.Chaque dimension peut-être modifiée à l'aide de la commande
\setlength
(voir unités de mesure reconnues par
).
Code \layout
Affichage
Taille des fontes
Les commandes
\tiny
, \scriptsize
, \footnotesize
,
\small
, \normalsize
, \large
, \Large
, \LARGE
,
\huge
, \Huge
permettent de modifier la taille du texte:
Code \centerline{{\tiny tiny},
{\scriptsize scriptsize},
{\footnotesize footnotesize}, {\small small},}
\centerline{{\normalsize normalsize}, {\large large},}
\centerline{{\Large Large}, {\LARGE LARGE}, {\huge huge}, {\Huge Huge}.}
Affichage
Cette commande n'a toutefois de sens qu'avec des fontes vectorielles (tels que Times, Palatino, ...), dans le cas contraire l'agrandissement à outrance risquant de fournir un résultat quelque peu décevant esthétiquement.
Code \fontsize{30}{30}{\bf\LaTeX}
Mode mathématiques
Pour utiliser des symboles mathématiques ou rédiger des formules mathématiques, il faut indiquer à de passer en mode mathématique.
L'environnement mathématique peut s'indiquer de deux manières:
-
Avec des
$
simples, un au début de l'expression et un autre en fin de l'expression mathématique.
La formule se trouve alors insérée dans la ligne courante, au même titre qu'un texte quelconque.Code Une formule bien connue: $\forall x\in\R, 1=\cos^x+\sin^2x$
Affichage
-
En ouvrant l'environnement mathématique par
\[
et en le refermant par\]
.
L'expression est alors mise à la ligne et centrée.Code Une autre formule moins connue:
\[ 1=\ln\left[ \lim_{z\to 0} \left( 1+\frac{1}{z}\right)^z\right] \]Affichage
Taille des fontes en mode mathématique
Les commandes précédentes ne sont pas valides en mode mathématique. Sont disponibles par contre:
\textstyle
: taille par défaut du texte courant\displaystyle
: défaut pour l'affichage d'équations\scriptstyle
: taille par défaut des indices et exposants de premier niveau\scriptscriptstyle
: taille par défaut pour indices et exposants de niveau supérieur
Les unités de mesure
comprend six unités de mesure :
pt
: point = 0,35 mmcm
: centimètremm
: millimètreex
: correspond à la hauteur d'un ``x'' dans la fonte couranteem
: correspond à la largeur d'un ``m'' dans la fonte courantein
: pouce = 2,54 cm
Les longueurs prédéfinies et espaces
Un certain nombre de longueurs prédéfinies (c'est-à-dire existantes et ayant une valeur par défaut) existent, parmi lesquelles celles indiquées précédemment et fixant les dimensions de mise en page générale.
On peut y rajouter:
\parindent
: la longueur de l'indentation (retrait) au début de chaque nouveau paragraphe (après un saut de ligne, ou de l'utilisation de la commande\par
)\parskip
: l'espace vertical entre deux praragraphes (séparés par un saut de ligne, ou par la commande de la commande\par
)\baselineskip
: l'interligne
Chaque longueur peut être (re)définie suivant, par exemple pour
baselineskip
:
Code \setlength{\baselineskip}{0.3cm}
Espaces verticaux
\vspace{longueur}
, ou\vspace*{longueur}
, oùlongueur
est ... une longueur (en cm, pt, \dots cf. unités de mesure en LaTex).
La version étoilée force l'espacement, même en début de page.\bigskip
…\vfill
correspond à un espace vertical de la hauteur de l'espace encore libre sur la page: ce qui suit est repoussé en bas de la page.
Espaces horizontaux
\,
: espace d'un demi-caractère\
: espace d'un caractère\!
: espace négatif (retrait) d'un demi-caractère\hspace{largeur}
, ou\hspace*{largeur}
: commandes identiques à leurs analogues verticaux.\hfill
correspond à un espace horizontal de la largeur de l'espace encore libre sur la ligne: ce qui suit est repoussé à droite de la page.- Par exemple:
Code \fbox{ \begin{minipage}[t]{6cm} Début\hfill Milieu\hfill Fin
\vspace{1cm}
\centerline{Bas de (mini)page} \end{minipage} }Affichage:
Les compteurs
permet de définir et d'utiliser des compteurs, et donc de numéroter automatiquement.
Certains sont prédéfinis et utilisés par , par exemple pour la numérotation des pages, sections, ...
La valeur d'un compteur s'affiche à l'aide de la commande
\thenom_compteur
, par exemple
Code \thepage
\alph{nom_compteur}
pour la numérotation alphabétique en lettres minuscules,\Alph{nom_compteur}
pour la numérotation alphabétique en lettres majuscules,\arabic{nom_compteur}
pour la numérotation en chiffres arabes: 1,2,3, ..\roman{nom_compteur}
pour la numérotation en chiffres romains minuscules: i, ii, iii, iv, ..\Roman{nom_compteur}
pour la numérotation en chiffres romains majuscules: I, II, III, IV, ..
Un nouveau compteur peut être défini gâce à la commande
\newcounter{nom_compteur}
.
Celui-ci peut être incrémenté (on ajoute une unité au compteur) à l'aide de la commande \stepcounter{nom_compteur}
, tandis qu'on peut plus généralement ajouter directement une quantité à un compteur par la commande \addtocounter{nom_compteur}{nombre}
.
Code \newcounter{cpt} \setcounter{cpt}{0} \noindent \stepcounter{cpt} \thecpt\, -- \alph{cpt} \\ \addtocounter{cpt}{7} \thecpt\, -- \Alph{cpt} \\ \addtocounter{cpt}{15} \thecpt\, -- \arabic{cpt} \\ \addtocounter{cpt}{32} \thecpt\, -- \roman{cpt} \\ \addtocounter{cpt}{10} \thecpt\, -- \Roman{cpt}
Affichage:
Les listes: itemize
et enumerate
Deux types d'environnement pour les listes:
itemize
, pour
les listes simples, et enumerate
pour les listes
numérotées.
Code \begin{itemize} \item 1er item \item 2ème item ! \item \dots et le 3ème... \item[$\bullet$] suivi de 2 autres \dots \\ \dots avec une puce \item[$\bullet$] et voilà le 2ème \begin{itemize} \item[$\heartsuit$] dans une sous-liste imbriquée \item[$\heartsuit$] avec deux item \dots \dots et des c\oe urs comme puces \end{itemize} \end{itemize}
Affichage
enumerate
, qui permet entre autre de
numéroter automatiquement chaque item.
Le type de numérotation s'indique en argument, et la numérotation peut être interrompue et reprise, ou manipuler de manières diverses via les compteurs
enumi
(1er niveau), enumii
(2ème...) et enumiii
(voir le paragraphe précédent sur
les compteurs).
Code %\usepackage{enumerate} \begin{enumerate} \item alinéa 1 \item alinéa 2 \begin{enumerate}[a)] \item sous-alinéa 1 \item sous-alinéa 2 \item \dots 3 \\[1em] \dots\dots \\ \setcounter{enumii}{5} \item On a sauté d'un coup quelques items intermédaires\dots \end{enumerate} \item Fin des sous-alinéa, \\ c'est-à-dire retour à la liste principale % On sauvegarde dans le compteur LastEnumi % le numéro du dernier item utilisé \newcounter{LastEnumi} \setcounter{LastEnumi}{\theenumi} \end{enumerate} On peut sortir de cet environnement quelques instants, lignes, pages, autres environnements, \dots puis y revenir \begin{enumerate} % On recommence à numéroter automatiquement % là où on a cessé \setcounter{enumi}{\theLastEnumi} \item retour à la suite de la numérotation précédente ! \end{enumerate}
Affichage
Les boîtes
Il existe un certain nombre de boîtes:
\mbox{texte}
: créé une boîte de taille juste suffisante pour contenir le texte.
La boîte est insécable: le texte qui y est contenu ne peut pas, entre autre, être coupé en fin de ligne (qui peut donc être utilisée en fin de ligne afin d'éviter une césure inoportune d'un mot).
A l'intérieur du\mbox
, on se trouve en mode texte. La commande\mbox
permet donc en particulier d'introduire simplemenent du texte à l'intérieur d'un mode mathématique. Par exemple:Code \[1 = \ln(e) \mbox{ soit, } 1=\ln\left[ \lim_{z\to 0} \left( 1+\frac{1}{z}\right)^z\right] \]
Affichage
\fbox{texte}
: similaire à\mbox
, excepté que le cadre de la boîte est tracé.\makebox[largeur][position]{texte}
: où largeur désigne la largeur de la boîte souhaitée, et position est- l : le texte sera justifié à gauche
- r : le texte sera justifié à doite
- s : le texte sera justifié à gauche et à droite
\framebox[largeur][position]{texte}
: est similaire à\makebox
, excepté que le cadre de la boîte est tracé.\parbox[position]{largeur}{texte}
\raisebox{distance}[dist-sup][dist-inf]{texte}
: permet de contrôler le positionnement vertical du texte.Code Un texte \raisebox{0pt}[0pt][0pt]{\Large% \textbf{Aaaa\raisebox{-0.3ex}{a}% \raisebox{-0.7ex}{aa}% \raisebox{-1.2ex}{r}% \raisebox{-2.2ex}{g}% \raisebox{-4.5ex}{h}}} qui s'écroule sur lui-même \ldots
Affichage:
minipage
: cet environnement permet, comme son nom l'indique, de créer une "mini" page dans la page.Code \begin{minipage}[t]{4cm} Une page étroite avec une formule: \[1+e^{i\pi}=0\] \end{minipage} \hspace{0.3cm} \begin{minipage}[t]{6cm} et une autre un peu plus large en vis-à-vis, avec une autre formule \[\cos z = \frac{e^{iz}+e^{-iz}}{2}\] (tout aussi vraie d'ailleurs) \end{minipage}
Affichage:
\fboxrule
.
On la change ainsi en modifiant cette longueur:
\setlength{\fboxrule}{largeur}
, où largeur
est la largeur souhaitée du trait.
L'espace entre le texte et le cadre est géré par la longueur
\fboxsep
.
On peut ainsi facilement, en modifiant cette longueur, afficher un cadre beacoup plus large que le texte qu'il contient.
Pour finir, on peut aussi à encadrer du texte "à la main", en combinant
fbox
et minipage
:
Code \fbox{ \begin{minipage}{6cm} Texte... \end{minipage} }
Encore des boîtes: exemples
Code & affichage \fbox{Un exemple serré dans sa boîte}
Code & affichage \fbox{\raisebox{0.2cm}[0.8cm][0.3cm]{Un exemple à l'aise dans sa boîte}}
Code & affichage \setlength{\fboxsep}{0.5cm} \fbox{Un exemple à l'aise dans sa boîte, II}
Code & affichage \setlength{\fboxrule}{3pt}
\fbox{\raisebox{0.2cm}[0.8cm][0.3cm]{Un exemple avec un cadre épais}}
Avec PSTricks, d'autres boîtes sont disponibles (utiliser alors le package
pst
, ou pst-all
):
Code & affichage \psframebox{cadre basique}
Code & affichage \psdblframebox{cadre basique double}
Code & affichage \psframebox[linearc=0.8,cornersize=absolute]{Un cadre arrondi}
Code & affichage \psshadowbox{Cadre ombré}
Code & affichage \psovalbox{Oval}
Code & affichage \psdiabox{Losange}
Code & affichage \pstribox{Cadre triangulaire}
Transformations d'objets: rotation et réduction / agrandissement
Les trois commandes
scalebox
, resizebox
,et rotatebox
permettent de modifier (presque) n'importe quel objet.
Code \scalebox{0.5}{abc} \hspace{0.5cm} \scalebox{1}{abc} \hspace{0.5cm} \scalebox{2}{abc}
Affichage
Code \rotatebox{-45}{abc} \hspace{0.5cm} \rotatebox{45}{abc}
Affichage:
En-tête et pied de pages
Des cadres d'en-tête et pied de page peuvent être insérés automatiquement par .
Le package
fancyheadings
, à charger dans le préambule, permet cela:
Code \usepackage{fancyheadings}
\lhead{texte}
, \chead{texte}
, \rhead{texte}
(respectivement en-tête gauche, centre et droite), et celui de pied de page avec \lfoot{texte}
, \cfoot{texte}
, \rfoot{texte}
, (respectivement pied de page gauche, centre et droite).
Les longueurs
\headrulewidth
et \footrulewidth
correspondent à l'épaisseur du trait séparateur du corps du texte avec les en-têtes et pieds.
Code \setlength{\headrulewidth}{0.4pt} \setlength{\footrulewidth}{0.pt} \lhead{} \chead{Titre du document} \rhead{\thesection} \lfoot{Auteur} \cfoot{} \rfoot{\thepage}
\pagestyle{fancyplain}
que l'on souhaite utiliser les en-têtes et pieds de page, tandis que la commande \pagestyle{empty}
permet d'imposer des pages sans en-tête et pied de page (\thispagestyle{empty}
ne l'impose que pour la page courante, utile par exemple pour la page de garde d'un document).
Coupures et espacements de lignes et de pages
Par défaut, optimise la mise en page afin d'avoir un rendu le plus esthétique possible (en fait, le moins moche possible).
On peut néanmoins (et heureusement) imposer certaines exigences, dans les coupures de lignes et de pages:
\\
,\\*
: impose la fin de la ligne; la version étoilée indique de plus que la ligne suivante doit être sur la même page, et empêche ainsi un saut de page inopportun.\\[hauteur]
: impose la fin de la ligne avec un espace vertical indiqué parhauteur
Par exemple,- Code: Select all
\[\left\{\begin{array}{cc}
\\[-0.2cm]
2x^2+\dfrac{2^{12}}{y}=36 \\[0.8cm]
3x+e^{|y|^3}=-12\\[0.3cm]
\end{array}\right. \]
- Affichage:
\clearpage
: termine la page ici, et force l'affichage de tous les graphiques et autres figures avant de reprendre la suite du texte sur une nouvelle page.\newline
: termine la ligne ici.\newpage
: termine la page ici. Le bas de la page coupée est vide, le texte reprend à la page suivante.\linebreak
,\pagebreak
: termine aussi la ligne ou la page ici, à la différence que la ligne ou la page coupée est étirée de manière à utiliser tout l'espace disponible sur la ligne ou la page.\newpage
: termine la page ici. Le bas de la page coupée est vide, le texte reprend à la page suivante.\nolinebreak[n]
,\nopagebreak[n]
: évite de couper la ligne ou la page courante; l'argument optionneln
est un nombre entre 0 et 4 qui, plus grand il est, plus la coupure est empêchée.\enlargethispage{longueur}
: indique à Latex de comprimer (lorsquelongueur
est négatif) ou d'étirer (lorsquelongueur
est positif) le contenu de la page en cours, de manière, par exemple, à éviter que la page suivante ait trop peu de contenu).
Par exemple- Code: Select all
\enlargethispage{1cm} % étend la page de 1 cm
\enlargethispage{-2\baselineskip} % supprime deux lignes dans la page
Document en mode paysage et/ou avec 2 colonnes
On peut créer des documents au format paysage, et sur deux colonnes de la manière suivante:
- Code: Select all
\documentclass[12pt,twocolumn]{article}
\usepackage[landscape]{geometry}
onecolumn
on obtient un
document en mode landscape mais avec une seule colonne…)
Les longueurs
columnsep
et columnseprule
permettent alors de jouer, comme leur nom l'indique, sur la largeur de
la séparation entre les colonnes de droites et gauche, et sur
l'épaisseur du trait séparant les deux colonnes (une épaisseur nulle
supprime le trait).
Par exemple:
- Code: Select all
\columnsep=10pt
\columnseprule=0.3pt
% ou de manière équivalente
\setlength{\columnsep}{30pt}
\setlength{\columnseprule}{1pt}
\twocolumn[titre]{texte}
,
où titre est le titre du passage suivant qui
peut s'étendre sur toute la largeur des deux colonnes,
et texte est le texte qui va s'étendre sur la
première colonne … puis la deuxième…
Par exemple:
- Code: Select all
\columnsep=20pt
\columnseprule=.3pt
\twocolumn[\centerline{Titre de la section bi-colonne}]{Texte à proprement parler.}
% et pour repasser sur une colonne:
\onecolumn
Du texte sur toute la largeur de la page,\\
sur une seule colonne
twocolumn
:
- Code: Select all
\columnsep=20pt
\columnseprule=.3pt
\begin{twocolumn}
Du texte sur deux colonnes \dots\dots\\
\dots\dots
\end{twocolumn}
Quelques packages utiles
Package calc
Le package
calc
permet d'effectuer … des calculs.
Par exemple,
- Code: Select all
\usepackage{calc} % Dans le préambule...
\newlength{\col}
\setlength{\col}{13cm}
\newcommand{\bgdef}[2]{%
\newlength{\ldef}\settowidth{\ldef}{#1}
\paragraph{\underline{#1:}}
\begin{minipage}[t]{\col-\ldef-2em}{\it #2}
\end{minipage}
}
%%%%%%%%%
% Usage %
\bgdef{Titre}{Une longue propriété; une longue propriété;
une longue propriété; Une longue propriété
}
- Affichage:
13cm
) peut judicieusement être remplacée par
\textwidth
Voir aussi la section Dessins avec boucles et calculs pour un autre exemple d'utilisation.
Package psTricks
Un package incontournable, à mon sens, pour tracer tout ce qui se rapprocher de près ou de loin à du dessin / graphique: bien sûr pour faire des dessins et graphiques et / ou des courbe, mais aussi:
- Dessiner sur du texte, texte barré, …
- Écrire le long d'une courbe
- Dessiner (ajouter des traits, lignes, …) dans un tableau