Chapter 1 Présentation
Le logiciel TeX est un formateur de texte et non un
traitement de texte. De plus il n'est pas WYSIWYG, ce qui peut rebuter
plus d'un utilisateur venant des traitements de texte inclus dans
les suites bureautique. Il est surtout adapté à la rédaction de document
scientifique car sa gestion des mathématiques n'a aucun égal.
1.1 Quelle est l'histoire de (La)TeX ?
Le logiciel TeX (1978) est le formateur de texte de D. E. Knuth.
A l'origine, Knuth a développé TeX (en WEB cf. paragraphe ??)
notamment pour réaliser de beaux documents et écrire des formules
mathématiques.
LATEX, écrit par L. Lamport (1982), est un jeu de macros au-dessus
de TeX, plus facile à utiliser que ce dernier. Il propose notamment
différents styles de document auxquels correspondent des classes de
document et une grande diversité de macros qui répondent à divers
besoins des auteurs. LATEX a été conçu pour rédiger des articles,
des rapports, des thèses ou des livres ou pour préparer des transparents.
On peut insérer dans le texte, des dessins, des tableaux, des formules
mathématiques et des images sans avoir à se soucier (ou presque) de
leur mise en page. Les documents produits avec LATEX et TeX
sont d'une excellente qualité typographique.
Plain TeX écrit également par D. E. Knuth, était le premier jeu
(minimal) de macros par dessus TeX. De même Eplain, de K. Berry,
est un jeu de macros intermédiaire entre TeX et LATEX.
Suite à une large diffusion de LATEX beaucoup d'extensions ont
été créées par différents utilisateurs. Grâce à Murphy, ces extensions
ont introduit un certain nombre d'incompatibilités et ont porté atteinte
à la portabilité de LATEX. C'est de cette situation qu'est né le
projet de normalisation LATEX3, sous la direction des gurus LATEX
: L. Lamport, F. Mittelbach, C.
Rowley, R. Schopf et tant d'autres... Pour plus de détails, consulter
: http://www.latex-project.org/
Toutefois, pour ne pas perturber les actuels utilisateurs de LATEX,
la version provisoire normalisée s'appelle LATEX 2e (1994) et elle
est compatible (dans la mesure du possible) avec les anciens standards.
Ainsi tous les documents écrits pour LATEX2.09 peuvent être compilés
sous LATEX 2e en mode ``LATEX2.09 compatibility mode''.
-
Remarque :
- cette compatibilité sera amenée à disparaître au fur
et à mesure des évolutions vers LATEX3.
Les membres du projet LATEX3 travaillent actuellement sur le futur
LATEX3. Autrement dit, LATEX 2e ne devrait plus beaucoup évoluer.
Il existe aussi omega, une extension 16 bits de TeX qui utilise
unicode comme représentation interne et autorise ainsi la composition
de textes multi-lingues dans les langues telles que l'arabe, le chinois
ou les langues du continent indien. Pour plus de renseignements, vous
pouvez consulter : les cahiers GUTenbeg, TUGboat,
ftp://ftp.ens.fr/pub/tex/yannis/omega-babel/, ...
Signalons également NTS, un projet à très long terme qui vise d'abord
à enrichir TeX mais qui à terme, n'en gardera que les concepts.
1.2 Quels sont les principes de base de TeX ?
Le principe de base de TeX est la boîte ! TeX met tout dans
des boîtes et l'assemblage de ces boîtes suivant des règles données
permet de mettre en page des documents.
A l'origine, TeX a été conçu aussi bien pour créer des documents
d'une page de texte, que des documents de plusieurs centaines de pages
contenant des formules mathématiques, des tableaux, des figures, etc.
TeX travaille donc comme un imprimeur sans subir les contraintes
mécaniques inhérentes aux outils de ce dernier.
Sa précision est sans limite puisque son unité de base est le point
et que les calculs qu'il suscite sont effectués par les ordinateurs.
Un des avantages de TeX est qu'il possède une vision globale des
choses. TeX ne se place pas uniquement au niveau du caractère que
l'auteur frappe mais aussi au niveau du mot, de la ligne, du paragraphe,
de la page ou du document dans son entier pour évaluer ses critères
de beauté. La dimension esthétique du document est ainsi prise en
compte et gérée de manière à ce qu'elle soit maximale.
Les critères de beauté utilisés dépendent le plus souvent des règles
typographiques attachées à la langue ou au langage employé (mathématiques
par exemple), mais il peut également, à tout moment, prendre en compte
les goûts de l'auteur. TeX gère ainsi la ponctuation, les ligatures,
les coupures de mots et les justifications verticales et horizontales.
Un autre avantage de TeX est la facilité avec laquelle il donne
accès à toutes ces possibilités de composition. En mathématiques par
exemple, il offre une quantité incroyable de symboles et connaît leurs
conventions de mise en page (taille, fonte, espacement, etc).
Un dernier avantage couvre tous les problèmes de numérotation des
paragraphes, de tables des matières, des figures, de références croisées,
de bibliographie, d'index, etc, etc. Toutes ces aides de lecture sont
gérées automatiquement par TeX. L'auteur a peu à s'en soucier,
il n'a qu'à les déclarer.
En conclusion, vous n'avez qu'à penser au contenu de votre document,
TeX se charge du reste.
1.3 Quels sont les principes de base de LATEX ?
LATEX peut être considéré comme un langage de programmation évolué
dans le sens où il s'appuie sur TeX qui est un langage de plus
bas niveau. Langage de programmation signifie également que le document
que l'on veut créer doit être décrit dans un fichier source (.tex)
puis doit être compilé. Ainsi, le compilateur LATEX prend en entrée
un fichier source écrit en LATEX et produit en sortie un fichier
.dvi (device independent). Ce fichier peut ensuite être converti en
fichier postscript avant d'être imprimé. Les fichiers dvi et postscript
peuvent être visualisés à l'écran à l'aide de (pre)viewers.
L'intérêt du format dvi est qu'il permet à TeX et LATEX d'être
indépendants du matériel qui sera utilisé pour la visualisation ou
l'impression finale du document.
Le fichier source (fichier.tex) doit comprendre un certain nombre
de commandes (balises) LATEX qui vont permettre au compilateur
LATEX de construire un fichier ``device independent'' (.dvi).
La plupart des commandes LATEX se caractérisent par le fait qu'elles
commencent par un ``backslash'', que leurs arguments obligatoires
apparaissent entre accolades ({ et }) et que leurs arguments optionnels
apparaissent entre crochets ([ et ]). La structure minimale d'un
rapport est en LATEX 2e est la suivante :
-
Exemple :
-
-
\documentclass{classe}
\begin{document}
Votre texte...
\end{document}
%%%% fin exemple %%%%
-
Remarque :
- Le passage de LATEX2.09 à LATEX 2e se traduit dans
l'en-tête des documents par :
-
\documentclass[options]{class}
\usepackage{style}
\usepackage{package}
au lieu de :
-
\documentstyle[options,styles,packages]{class}
-
ATTENTION
- toutefois, certains styles LATEX2.09 ne seront pas reconnus
par LATEX 2e.
Les commandes LATEX décrivent ainsi la classe d'un document, sa
structure, etc. Les principales classes de document disponibles sont
: 'article', 'report', 'book', 'letter' et 'slides'. Il existe également
un certain nombre d'options qui permettent de modifier le style par
défaut d'une classe (le format a4, la taille de la fonte 12pt, etc).
Ces classes et options permettent de disposer d'une structure de base
pour un document, mais libre à vous ensuite de définir vos propres
structures grâce aux styles offerts, aux packages disponibles notamment
sur les sites CTAN (cf. paragraphe ??) et/ou à vos propres
macros TeX et LATEX.
L'intérieur d'un document de classe 'article', 'report' ou 'book'
est ensuite structuré grâce aux balises disponibles de type : \part{},
\chapter{}, \(sub)*section{},
etc. Les lettres et les transparents font appel à d'autres structures
particulières (cf. chapitres ?? et ??).
Les informations présentées dans ces structures peuvent être mises
sous différentes formes grâce à des environnements tels que tabular
ou itemize.
-
Exemple
- :
-
\documentclass[12pt]{report}
\usepackage{french}
\title{Mon premier document {\LaTeX} \\
Qu'il est beau ! !}
\author{C'est moi l'auteur.}
\begin{document}
\maketitle
\tableofcontents
\part{Une partie.}
\chapter{Un chapitre.}
Texte...
\section{Une section.}
Texte...
\section{Une autre section.}
Texte...
\subsubsection{Avec une sous-section.}
Texte...
\subsubsection{Plus une autre.}
\begin{table}[htbp]
\begin{center}
\begin{tabular}{|c||c|}
\hline
donn\'ees & donn\'ees \\
\hline
\end{tabular}
\caption{Titre table. \label{table-}}
\end{center}
\end{table}
\part{Une courte deuxi\`eme partie.}
Texte...
\appendix
\chapter{Et une annexe pour finir.}
Texte...
\begin{itemize}
\item bla bla 1
\item bla bla 2
\end{itemize}
\end{document}
%%%% fin exemple %%%%
1.4 Qu'est ce que le préambule du fichier source ?
Les appels à des packages ainsi que les définitions de nouvelles commandes
sont placés dans le préambule du document LATEX (i.e. entre les
balises \documentstyle (LATEX2.09) ou \documentclass
(LATEX 2e) et la commande \begin{document}).
1.5 Comment faire ses premiers pas ?
En plus de la présentation faite ci-dessus quelques notions supplémentaires
sont utiles à la compréhension de LATEX. Celles-ci concernent essentiellement
la saisie d'un texte.
Lors que l'on désire travailler dans une langue comportant des caractères
accentués LATEX propose des saisies un peu barbares surtout aux
yeux des débutants (\'{e} pour é par exemple) mais
qui permettent de conserver la portabilité du document ainsi saisi
sur tous systèmes (caractères codés sur 7 bits). En revanche l'utilisation
de fontes contenant des caractères accentués (codées sur 8 bits) réduit
cette portabilité (pour plus de détails lire les questions ??
et ??).
Autre remarque importante du point de vue de la gestion des espaces
et des retours chariot inclus dans le fichier source (.tex) d'un document.
LATEX gère tout seul les espaces : il est inutile de taper plusieurs
espaces de suite entre deux mots, ils seront transformés en un seul
dans le fichier .dvi.
En outre, UN retour chariot est considéré comme un espace, sauf s'il
est suivi d'un deuxième, il marque alors la fin d'un paragraphe et
le prochain sera indenté. On peut alors sauter autant de lignes que
l'on veut dans le texte, cela n'a aucun effet supplémentaire. Un passage
à la ligne peut être forcé par \\ ou
par \newline mais dans ce cas, la première ligne du
nouveau paragraphe ne sera pas indentée. \\*
empêche un saut de page après le saut de ligne demandé. La commande
\par permet de commencer un nouveau paragraphe en laissant
un espace vertical plus important et en indentant.
-
Remarque :
- la commande \\[lgr]{}
peut prendre comme paramètre une longueur lgr pour augmenter localement
un interligne.
En LATEX, tout ce qui suit un % n'est pas lu, jusqu'au prochain
retour chariot. (Au passage le caractère % peut alors être obtenu
par \%.)
1.6 Comment sont gérées les options de package ?
Quand on utilise plusieurs packages :
-
\usepackage{package1,package2}
et que l'on veut utiliser une option du package1 qui n'existe pas
pour le package2, on peut écrire :
-
\usepackage[option1]{package1}
\usepackage{pckge2}
Cela évite un message du type ``unknown option1 for pckge2'' qui
peut apparaître quand on écrit
-
\usepackage[option1]{package1,package2}
On peut également écrire :
-
\documentclass[option1,gnagna]{article}
\usepackage{pckge1,pckge2}
qui permet de conserver l'ordre de chargement des packages mais pas
celui dans lequel seront exécutées les options par tel package. Les
options de classe sont globales et descendent à toutes les extensions
chargées si elles sont définies pour ces extensions (certaines options
sont par nature globales comme draft, final, french, a4paper, dvips...).
1.7 Quelle est la structure d'une page LATEX ?
La commande \layout du package 'layout' permet de visualiser
la structure d'une page et ses différents paramètres. Globalement
elle est composée du corps du texte, d'une entête et d'un pied de
page. Des marges sont également définies de chaque côté du corps du
texte.
-
Exemple
- :
-
\documentclass{report}
\usepackage{layout}
\begin{document}
\layout
\end{document}
%%%% fin exemple %%%%
A chaque classe de documents sont associées différentes valeurs aux
paramètres de mise en page. L'utilisateur peut également redéfinir
ces valeurs de paramètres. Cela lui permet de gérer sa propre mise
en page. Cette FAQ donne un certain nombre de moyens dans ce but.
Pour les documents devant être imprimés en recto-verso, \oddsidemargin
définit la marge gauche des pages impaires (recto), et \evensidemargin
la marge gauche des pages paires (verso). Pour les documents simple
face, la commande \oddsidemargin suffit.
Les principaux paramètres d'une page sont les suivants :
-
\textheight définit hauteur du texte.
- \textwidth définit la largeur du texte.
- \columnsep définit l'espace entre colonnes pour un
document multi-colonnes.
- \columnseprule définit la largeur de la ligne qui sépare
les colonnes d'un document multi-colonnes (par défaut ce paramètre
vaut 0pt i.e. pas de ligne).
- \columnwidth définit la largeur d'une colonne. Ce paramètre
est calculé automatiquement par LateX d'après \textwidth
et \columnsep.
- \linewidth définit la longueur de la ligne courante.
Ce paramètre est généralement utilisé dans des environnements qui
redéfinissent les marges.
- \evensidemargin définit un espace supplémentaire dans
la marge gauche des pages paires des documents recto-verso.
- \oddsidemargin définit cet espace pour les pages impaires
d'un document recto-verso ou pour toutes les pages dans le cas d'un
document recto uniquement.
- \footskip définit la distance entre la dernière ligne
du texte et la première ligne du bas de page.
- \headheight définit la hauteur de l'entête.
- \headsep définit la distance entre la dernière ligne
d'entête et la première ligne du corps du document.
- \topmargin définit un espace supplémentaire au-dessus
de l'entête.
- \marginparpush définit l'espace vertical minimum entre
deux notes de marge.
- \marginparsep définit l'espace horizontal entre entre
le corps du document et les notes de marge.
- \marginparwidth définit la largeur des notes de marge.
- \paperheight définit la hauteur du papier sur lequel
le document sera imprimé.
- \paperwidth définit sa largeur.
1.8 Quelles sont les commandes de compilation LATEX ?
A partir d'un fichier source fichier.tex, pour générer un fichier
fichier.dvi, il faut appliquer :
Lorsqu'une compilation échoue sur une erreur, la ligne où est située
l'erreur est indiquée. L'emplacement de l'erreur dans la ligne est
précisé par un retour à la ligne. Une explication succincte de l'erreur
est également fournie.
-
La commande ? permet alors d'avoir un menu d'aide.
- La commande h peut permettre d'avoir une explication plus détaillée
de l'erreur sur laquelle LATEX s'est arrêté.
- La commande return peut permettre de forcer la suite de la compilation.
- La commande s permet de visualiser les messages d'erreur suivants.
- La commande r permet de poursuivre la compilation sans arrêt.
- La commande q permet de continuer la compilation sans messages.
- La commande i permet d'insérer quelque chose (une balise oubliée par
exemple) pour pouvoir poursuivre la compilation.
- La commande e permet d'éditer le fichier source.
- La commande x permet d'abandonner la compilation.
- Un chiffre de 1 à 9 permet d'ignorer les x prochains caractères du
source.
Lorsque la compilation se termine normalement, elle produit un fichier
fichier.dvi qui peut être visualisé par un utilitaire tel que :
A partir d'un fichier fichier.dvi, pour générer un fichier postscript,
il faut utiliser un utilitaire tel que :
Le fichier fichier.ps alors généré peut être imprimé. Par exemple
:
-
(UNIX) lpr -Pimprimante fichier.ps
1.9 Quels sont les fichiers utilisés par LATEX ?
Il en existe différentes sortes :
-
les fichiers de compilation sont des .tex, .ltx, .toc, .lof, .lot,
.idx, .ilg, .ind, .ist, .bbl, .bib, .blg, .bst, .aux, .dvi, .log,
.texlog, .lis, .list, .ps,
- les styles où macros sont définis dans des fichiers .cls, .clo, .dtx,
.sty, .fmt,
- les caractères sont décrits dans des fichiers .tfm, .mf, .fd, .pk.
1.10 A quoi correspondent les messages Overfull ?
Lorsque LATEX n'arrive pas à satisfaire tous ses critères de beauté,
il peut avoir à en violer un. Cette entorse est alors indiquée par
un message de type :
-
Overfull \hbox (4.02349pt too wide) in paragraph at
lines 95-98
qui précise le type de dépassement, sa valeur et sa localisation.