LaTeX/Premier exemple
Nous allons commencer par un exemple de « programme » minimal en LaTeX :
- Fichier source
\documentclass{article}
\begin{document}
Bonjour, j'\'edite en \LaTeX~!
\end{document}
Il vous faut ouvrir l'éditeur de texte, recopier (ou utiliser le copier-coller du système d'exploitation) le texte ci-dessus, et l'enregistrer dans un fichier au format « Texte pur » avec un nom portant l'extension .tex
. On pourra par exemple l'appeler bonjour.tex
.
Si vous utilisez un éditeur de texte orienté LaTeX, vous devez avoir un bouton ou un menu permettant de générer le fichier de résultat (document final) et de l'afficher. Sinon, il va falloir taper une commande en ligne de commande.
Compilation et visualisation
[modifier | modifier le wikicode]Avec Texmaker
[modifier | modifier le wikicode]Vous pouvez appuyer sur la touche F1 du clavier pour lancer la compilation, puis sur la touche F3 pour afficher le résultat.
Vous pouvez aussi utiliser le menu Tools | LaTeX pour faire la compilation, et Tools | View Dvi pour afficher le résultat.
Avec TeXShop
[modifier | modifier le wikicode]Vous pouvez utiliser le bouton Typeset (composer), ce qui lance la compilation et affiche le résultat.
Vous pouvez aussi utiliser la combinaison de touches +T, ou encore le menu Composer | Composer.
Avec Emacs
[modifier | modifier le wikicode]
Utilisez les touches Ctrl+C puis Ctrl+B (combinaison notée C-c C-b
dans la notation habituelle Emacs). On ne peut pas visualiser directement le résultat, procéder en ligne de commande. On peut par contre lancer l'impression avec la combinaison Ctrl+C puis Ctrl+P (C-c C-p
).
En ligne de commande
[modifier | modifier le wikicode]Si votre éditeur de texte ne gère pas la compilation, il faudra ouvrir un interpréteur de commande (shell) :
- sous Windows :
- cliquez sur le bouton Démarrer en bas à gauche, et choisissez Exécuter ;
- dans le champ de texte, taper
cmd
puis appuyez sur Entrée ;
- alternative sous Windows : vous pouvez aussi taper les instructions directement dans le champ de texte de la boîte Exécuter ;
- sous MacOS :
- ouvrez le Finder et allez dans le répertoire
Applications > Utilitaires
; - double-cliquez sur
Terminal.app
(vous pouvez aussi fare glisser l'icône dans le Dock pour l'avoir sous la main).
- ouvrez le Finder et allez dans le répertoire
Dans la fenêtre de l'interpréteur, taper
latex bonjour
(on peut omettre l'extension .tex
du nom du fichier). Cela crée un fichier bonjour.dvi
. Le bon déroulement de la compilation est signalé par le message
Output written on bonjour.dvi (1 page, 232 bytes). Transcript written on bonjour.log.
Vous pouvez alors tenter un double-clic sur l'icône du fichier DVI dans votre gestionnaire graphique (Explorateur Windows ou Poste de travail sous Windows, Finder sous MacOS). Sinon, il faut savoir quel programme est disponible pour visualiser les DVI (yap
, xdvi
, dvipreview
, texshop
…), et taper nom-du-programme bonjour
(par exemple xdvi bonjour
).
En désespoir de cause, vous pouvez utiliser dvips
et taper
dvips bonjour
soit cela lancera l'impression, soit cela génèrera un fichier PostScript bonjour.ps
que vous pourrez lire — normalement — assez facilement. Si cela lance l'impression, vous pouvez taper
dvips bonjour > bonjour.ps
ou
dvips -o bonjour.ps
pour générer le fichier PostScript.
Résultat
[modifier | modifier le wikicode]Le résultat exact que vous devriez obtenir est :
Le rendu exact nécessite d'utiliser des images. Pour des raisons pratiques, nous afficherons souvent des rendus approximatifs, sous la forme
Bonjour, j'édite en LATEX !
Explications
[modifier | modifier le wikicode]On commence par définir la classe de document, avec l'instruction \documentclass
. En effet, un livre n'a pas la même mise en page qu'un article de journal. Nous choisissons ici la classe article
.
Puis, nous indiquons que c'est le début du document avec l'instruction \begin{document}
.
Nous tapons ensuite le texte, avec les spécificités suivantes :
- pour avoir le « é », nous utilisons
\'e
; nous verrons comment éviter ceci juste après ; - pour avoir le logo LATEX, nous utilisons l'instruction
\LaTeX
; - l'espace insécable[1] entre LATEX et le point d'exclamation est obtenu avec un tilde « ~ ».
L'instruction \end{document}
marque la fin du document.
Génération d'un fichier PDF
[modifier | modifier le wikicode]Le format PDF est de plus en plus utilisé pour échanger des fichiers.
Les distributions de LaTeX sont en général livrées avec un programme appelé pdflatex
qui génère directement un fichier PDF au lieu d'un DVI.
- Avec Texmaker
- Il suffit de compiler en utilisant la touche F6. La visualisation se fait avec F7. Vous pouvez aussi utiliser le menu Tools | PDFLaTeX et Tools | View PDF.
- Dans certains cas, si vous compilez avec
tex
(et nonpdf(la)tex
), vous pouvez aussi faire générer le fichier PDF en sélectionnant l'option LaTeX + dvips + View PS dans la boîte de dialogue des Préférences | Quick build. - Si vous avez déjà généré le fichier DVI, vous pouvez le transformer avec la touche F9, ou avec le menu Tools | DVI → PDF, et le visualiser comme ci-dessus.
- Notez que le touche F9 peut ne pas fonctionner sous macOS X : par défaut, cette touche sert à afficher toutes les fenêtres ouvertes à la fois (« exposé »).
- Avec TeXShop
- Par défaut, TeXShop utilise
pdftex
; il génère donc un fichier PDF, et c'est ce fichier qui est affiché.
- En ligne de commande
- Il suffit de taper
pdflatex bonjour
- Si vous avez déjà généré le fichier DVI, vous pouvez taper
dvipdf bonjour
- La commande
dvipdf
est en fait une macro qui exécutedvips
pour transformer le fichier DVI en PostScript, puisps2pdf
pour transformer le fichier PostScript en PDF. Il existe aussidvipdfm
, qui transforme directement le fichier DVI en PDF :
dvipdfm bonjour
- Mentionnons enfin les programmes basés sur Ghostscript (GhostView, GSView ou MacGSView par exemple) qui transforment un PS en PDF, ainsi que sur MacOS X
Aperçu.app
(Preview.app
).
- Remarque
- Toutes les solutions ne sont pas équivalentes. En particulier :
- le passage par un fichier PostScript permet d'utiliser certaines extensions qui génèrent directement du code PostScript (comme PSTricks), ce que ne permet pas de faire
pdf(la)tex
; - les tailles des fichiers PDF peuvent être différentes ; en général, un fichier obtenu par
pdf(la)tex
est plus gros qu'un fichier obtenue pardvips
puisps2pdf
; - mais
pdf(la)tex
est plus simple d'utilisation (une seule opération, mais certains éditeurs de texte génèrent aussi un fichier PDF pardvips
puisps2pdf
en une seule opération), et il permet d'utiliser certaines extensions dédiées (PFG/TikZ) ; - le format des images que l'on peut intégrer n'est pas le même selon le mode de compilation (PS et EPS pour
dvips
puisps2pdf
, PNG et JPEG pourpdf(la)tex
).
- le passage par un fichier PostScript permet d'utiliser certaines extensions qui génèrent directement du code PostScript (comme PSTricks), ce que ne permet pas de faire
- Ces points seront détaillés le moment venu.
Améliorations
[modifier | modifier le wikicode]Améliorations du jeu de caractères
[modifier | modifier le wikicode]Vous avez vu que pour faire le e accent aigu « é », nous avons dû taper l'instruction \'
devant la lettre e
. En effet, par défaut, LaTeX ne reconnaît que les caractères latins non accentués des années 1960 (dits « ASCII purs »[2]). Nous pouvons indiquer à LaTeX qu'il doit prendre en compte les caractères accentués de la langue française, afin de pouvoir les saisir directement avec le clavier.
Avant tout, il faut savoir l'encodage de caractères à utiliser. Les systèmes récents ont tendance à travailler avec l'encodage Unicode[3]. Mais des systèmes plus anciens sont plus axées sur des jeux de caractère limités propres à des langues régionales.
Pour pouvoir indiquer l'encodage utilisé, il faut :
- utiliser un éditeur de texte qui permet d'enregistrer autre chose que de l'ASCII pur, ce qui est le cas de tous les éditeurs récents ; on peut en général choisir le codage du fichier lors de l'enregistrement, ou bien dans la boîte de dialogue de configuration de l'éditeur ;
- faire appel à une extension, ou module, ou package, appelé
inputenc
(input encoding, codage de l'entrée).
Lors de l'appel de l'extension inputenc
, il faut indiquer un paramètre qui dépend de l'encodage des caractères utilisé pour sauvegarder le fichier. L'encodage normalisé le plus courant en Europe de l'ouest est :
- l'encodage UTF-8, qui gère l'Unicode (plus d'un million de caractères pour plus de 650 langues) : on utilise le paramètre
utf8
, on écrit donc la commande\usepackage[utf8]{inputenc}
.
Avec les systèmes modernes, l'option utf8
donne normalement des résultats attendus (mais il peut être nécessaire de modifier une option de l'éditeur de texte)[4]. On peut aussi choisir un encodage particulier au moment de l'enregistrement) ; chaque éditeur de texte gère son encodage. Voire, si c'est un éditeur de texte orienté LaTeX, celui-ci reconnaître l'encodage spécifié et le respecter.
Cependant, tous les caractères Unicode n'ont pas de représentation dans une police donnée ; par exemple, si vous mettez un caractère grec dans votre code source, il n'apparaîtra dans le document final que si la police possède les caractères grecs [1].
Par ailleurs, certains modes ou extensions (mode mathématique et extension listings
par exemple) gèrent mal les caractères « exotiques ».
On place donc une instruction \usepackage[paramètre]{inputenc}
entre les instructions \documentclass{article}
et \begin{document}
. Cette zone est appelée zone d'en-tête ou préambule.
Autres améliorations du code source
[modifier | modifier le wikicode]Par ailleurs, LaTeX applique par défaut les règles de typographie anglaise. Cela ne se voit pas sur cet exemple, mais vous voudrez sans doute utiliser la typographie française. Pour cela, il faudra ajouter, dans le préambule, une instruction pour inclure une extension française. Il en existe plusieurs, nous proposons ici l'extension babel
avec le paramètre french
: \usepackage[french]{babel}
[5]. Il existe d'autres extensions mais qui ne sont pas incluses d'office dans les distributions standard.
On notera que l'on ne place plus de tilde ~
devant le point d’exclamation. Il n'en faut pas si l’on veut que french
puisse travailler correctement.
On prévoit aussi d'inclure des images (photos, dessins, graphiques). Nous allons donc utiliser l'extension graphicx
. Nous utiliserons les fontes extended computer modern (EC), en ayant recours à l'extension fontenc
avec l'option T1 (codage des caractères dit « de Cork »), et pour permettre l'affichage correct des caractères diacritiqués français, nous ajoutons les fontes latin modern (LM) avec l'extension lmodern
.
On va aussi indiquer à LaTeX que l'on utilise du papier au format A4 et que l'on utilise une police de corps 11 points[6]. La déclaration de classe devient alors \documentclass[a4paper, 11pt]{article}
.
Exemple
[modifier | modifier le wikicode]Ainsi, on aura, avec les précautions énoncées ci-dessus (possibilité d'enregistrer avec un encodage différent selon l'éditeur de texte) :
\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[french]{babel}
\begin{document}
Bonjour, j'édite en \LaTeX~!
\end{document}
Ce squelette peut servir de base pour tous vos fichiers.
Déroulement de la compilation
[modifier | modifier le wikicode]Si, ce qui est probable, vous utilisez l'outil de compilation de votre éditeur de texte, cette opération sera quasiment transparente. Voici toutefois quelques détails qui pourront vous être utiles.
Le but d'une compilation est de générer un fichier DVI. DVI signifie device independent, c'est-à-dire « indépendant du périphérique » (affichage à l'écran, impression, projection). C'est ce fichier DVI qui est affiché par le programme adéquat (en général Yap ou Xdvi), et transformé par la suite en fichier PDF, puisque c'est probablement le format final que vous voudrez.
Durant la compilation, le programme latex
va analyser le contenu du fichier et éventuellement afficher des messages d'avertissement ou d'erreur. Certains sont bénins, comme « Underfull box
» ou « Overfull box
», qui indiquent simplement qu'il y a trop ou pas assez de texte dans une zone pour respecter les canons de la mise en page.
Certaines erreurs correspondent à des fautes dans l'orthographe des instructions — d'où l'utilité d'utiliser, lorsque c'est possible, les outils fournis par l'éditeur de texte — ou dans la syntaxe, par exemple l'oubli de \end{document}
en fin de document. Certaines de ces erreurs vont donner un résultat étrange, non conforme à ce que vous désirez. Mais d'autres empêcheront la compilation de se terminer, vous n'aurez alors pas de résultat.
Ces erreurs et avertissements sont affichés à l'écran, et sont mis dans un fichier portant le même nom que votre fichier source, mais avec l'extension .log
.
Par ailleurs, latex
foliote (numérote) automatiquement les pages, les figures, tableaux, appelés de manière générale « objets », et il est possible de faire des références croisées (de type « cf. figure 18 p. 50 »). Il peut donc être nécessaire de faire deux compilations successives :
- lors de la première compilation, il va numéroter les pages et trouver les pages correspondant aux objets pointés, qu'il place dans un fichier auxiliaire ; il ne pourra par contre pas créer les références, puisqu'il ne sait pas encore où se trouvent les objets ni quels sont leurs numéros, il va donc mettre des erreurs «
Reference undefined
» ; - lors de la deuxième compilation, il lit le fichier auxiliaire et place les références.
Le fichier auxiliaire porte le même nom que votre fichier source, mais avec l'extension .aux
.
Certains éditeurs de texte font exécuter automatiquement les deux compilations lorsque c'est nécessaire.
Voir aussi À l'aide !.
Notes
[modifier | modifier le wikicode]- ↑ L'utilisation de l'espace insécable permet de garder le point d'exclamation sur la même ligne que le mot qui précède, si jamais le mot se trouvait en fin de ligne. On utilise une espace insécable avant les ponctuations doubles (;:?!), à l'intérieur des guillemets français « », pour garder un nombre à côté de son unité…
- ↑ Pour se faire une idée des limites de l'ASCII on peut lire le wikilivre Les ASCII de 0 à 127
- ↑ Pour se faire une idée des possibilités offertes par l'Unicode on peut lire le wikilivre À la découverte d'Unicode
- ↑
Auparavant, les systèmes d'exploitation avaient un codage par défaut ; c'est le format utilisé par l'éditeur fourni avec le système, si l'on ne change aucun paramètre. Dans un tel cas, on peut tenter :
latin1
pour Linux, FreeBSD, et la plupart des Unix anciens;utf-8
pour Linux, FreeBSD, et la plupart des Unix récents;cp1252
ouansinew
pour Microsoft Windows (les deux sont synonymes) ;applemac
pour un Apple Macintosh & Mac OS X ; jusqu'à MacOS 9, le codage applemac était le codage par défaut ; avec MacOS X, le codage par défaut de TextEdit est utf8, et il peut être changé dans le menu TextEdit | Préférences | Ouverture et enregistrement.
- ↑ On peut encore utiliser les paramètres
frenchb
etfrancais
qui ont exactement le même effet. On les trouve dans les exemples de sources. - ↑ c'est-à-dire que la hauteur entre le bas d'un jambage, comme la lettre « p », et le haut d'une hampe, comme la lettre « t », vaut 11 points anglo-saxons soit environ 3,9 mm, cf. Wikipédia : Point (unité)