latex2e - un tour d'horizondidier/lectures/ltx_01... · 2019-07-09 · latex2e didier verna...
TRANSCRIPT
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
LATEX2eUn tour d’horizon
Didier Verna
[email protected]://www.lrde.epita.fr/˜didier
1/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Table des matières
1 Introduction
2 Principes fondamentaux
3 Classes et Styles
4 Internationalisation (i18n)
5 Contrôle global de la mise en forme
6 Contrôle local de la mise en forme
7 Graphiques
8 Mathématiques
9 Générer du PDF
10 En vrac
11 Grands débats
2/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
TEX
Description: système de mise en forme typographiqueDonald Knuth, 1977Motivation: écriture de“The Art of Computer Programming”Version actuelle: 3.14159 (converge vers π)Statut: 1982I Quelques améliorations de 1989 (internationalisation)I Extensions: ε-TEX, X ETEX, LuaTEX
Prononciation: “τεχ”Typographie: (ASCII) TeX
4/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
LATEX
Description: bibliothèque de macrosLeslie Lamport, début 80Caractéristique: surcouche de TEXMotivation: couche logique au dessus de TEX(couche physique)Prononciation: “léï-τεχ” ou “la-τεχ”Typographie: (ASCII) LaTeX
5/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Caractéristiques distinctives (TEX et LATEX)
Édition mathématiqueRendu visuelCompilateur plutôt que “traitement de texte”
6/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Quelques dates (I)
1436: Imprimerie (Gutenberg)1690: Alphabet Royal (Louis XIV)1977: TEX(Donald Knuth)1979: “TEX And METAFONT: New Directions In Typesetting”(Donald Knuth)1983: Premier manuel pour LATEX (Leslie Lamport)1984: “The TEXbook” (Donald Knuth)1984: LATEX 2.06a1985: BIBTEX 0.981985: LATEX 2.09 (dernière version de Leslie Lamport)
7/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Quelques dates (II)
1985: “LATEX, A Document Preparation System”(le “Lamport”)1988: makeindex1989: LATEX3 (Frank Mittelbach)1990: AMS-LATEX 1.1(port d’AMS-TEX vers LATEX 2.09)1994: LATEX 2ε
1994: “The LATEX Companion”1994: Deuxième édition du “Lamport”1995: AMS-LATEX 1.2 (port vers LATEX 2ε )2004: Deuxième édition du “LATEX Companion”xxxx: LATEX3
8/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Obtenir LATEX
TEX et LATEX sont des logiciels libresTEX (et donc LATEX) est extrêmement portable
TEXLive: multi-plateforme, standard de factoNote: TEXLive 2019 est sortie le 29 Avril. . .MikTEX: WindowsMac-TEX: MacOS, basée sur TEXLiveTeTEX obsolète (plus maintenue)
Ne pas confondre “distribution” et installateur / package (ex.TEXLive pour Debian, MacPorts / Fink / gwTEX / i-Installer pourMac OS-X etc.)
9/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Documentation
Livres:I LATEX, A Document Preparation SystemI The LATEX [web|graphics] companionI Guide to LATEXI LATEX par la pratique
Ressources publiques:I The Not So Short Introduction To LATEX 2εI latex-project.orgI google . . .
Et bien sur:I The Comprehensive TEX Archive Network
ctan.org
10/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Organisation du sourceTexte, commentaires, commandes et environnements
\documentclass[12pt]{article}
%% Preambule du document\usepackage[french]{babel} %% <-- commande
\begin{document} %% <-- debut d’environnement%% Corps du documentPetit, mais costaud.\end{document} %% <-- fin d’environnement
%% Tout le reste est abandonne
Commandes: \ suivi d’une ou plusieurs lettres (\TeX), oud’un seul caractère non alphabétique (\’)Arguments: spécifiés entre accolades(\section{Introduction})Options: premier argument entre crochets(\usepackage[T1]{fontenc})
12/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Subtilités syntaxiquesSans ça, on s’ennuierait. . .
Plusieurs caractères blancs↔ un seul caractère blancLigne blanche↔ changement de paragrapheCaractères spéciaux (échappés par \):# $ % ^ & _ {} ~
Exception: \ ($\backslash$). \\ = nouvelle ligneCommentaires: % jusqu’à la fin de ligne / prochain caractèrenon blancLes espaces après les commandes sont “mangés” par TEX.Utiliser des accolades ou des commandes spécialesd’insertion d’espace.
13/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
ExemplesPour être tout à fait clair
Le nombre d’espaces ne comptepas dans le source.
Voici un commentaire. % stupide,% mais utileLes utili%
sateurs de \TeX{} entrentdans trois groupes:les \TeX{}niciens, les \TeX perts,et les autres\ldots\\
Le nombre d’espaces necompte pas dans le source.Voici un commentaire. Lesutilisateurs de TEX entrentdans trois groupes: lesTEXniciens, les TEXperts, etles autres. . .
\^o, \c c, \oe, \AE, \"\i ô, ç, œ, Æ, ï
14/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Chaîne de compilationVive l’automatisation !
fichier.ps
latex
...xdvidvips
lpr ...
fichier.tex
fichier.dvifichier.aux fichier.log
15/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Choisir les fonctionnalitésClasses et paquetages
Structuration fondamentale: classe de document\documentclass[11pt,a4paper]{article}[1994/06/01]
I Classes standard: article, report, book et letter
Fonctionnalités annexes: paquetages spécifiques\usepackage[french]{babel}[2001/03/01]
Version minimum: optionnelleOptions: standard à LATEX, à la classe, ou spécifiques aupaquetagePropagation des options passées à \documentclass
17/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Classe letterUne classe à part
Déclarations globales:I \signature{}, \address{} (séparer les lignes par des \\)I Selon le style: \name{}, \location{} et \telephone{}
Environnement letter:\begin{letter}{Jacques Chirac}
\opening{Monsieur le President}Putain, deux ans !%% blah blah blah blah ...\closing{Cordialement,}
\end{letter}
18/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Classes article, report, et bookDes classes voisines
Commandes communes:I Déclarations globales: \title{}, \author{} (\and),
\date{} (\today)I Titre: \maketitleI Abstract: environnement abstractI Sections: \chapter{} (sauf article), \section{},
\subsection{}, \subsubsection{}, \paragraph{},\subparagraph{}
I \part{}, \appendix\section*{Pas de numero, pas d’entree dans la TOC}\section[Titre pour la TOC]{Titre pour le texte}
Commandes spécifiques:I Classe book: \frontmatter, \mainmatter, \backmatter
19/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Table des matièresAttention: 2 passes de LATEX nécessaires !!
\tableofcontents
1ère passe
latex
fichier.tex
fichier.aux fichier.toc
fichier.dvi
2ème passe
20/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Internationalisation (i18n)Documents non anglo-saxons, voire polyglottes
Les enjeux:Adapter le contenu généré automatiquement (nom dessections, table des matières, bibliographie, index. . . )Adapter les règles de césureAdapter les conventions typographiquesChanger les jeux de caractères utilisés dans le sourceChanger leur encodage
22/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
CésureOn va s’en tiret. . .
Règles: dépendantes du langage courantAutomatique a prioriExplicite:I Déclaration globale: \hyphenation
\hyphenation{blah-blih-bloh-bluh FORTRAN}
I Caractères spéciaux: interditsI Déclaration en-ligne: \-
bl\ae h\-bl\oe h\-bl\"uh
23/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
PhraséPremier exemple de convention typographique
Espace supplémentaire en fin de chaque phraseUne phrase est terminée par un point (d’exclamation /interrogation)Exception: une majuscule suivie d’un point (acronymes)\@: devant un point, indique que ce point termine une phrase\frenchspacing: supprime l’espace supplémentaire en finde phrase
Call him Mister X.That will have to do.\\Call him Mister X\@.That will have to do.
Call him Mister X. That willhave to do.Call him Mister X. That willhave to do.
24/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Autres conventions typographiquesPourquoi les respecter ?
Points de suspension: \ldotsEmphase: \emph{} ou {\em ...}, paquetage ulem
Guillemets: ne pas utiliser ", mais `` et ´´Tirets: - (hyphen), -- (en-dash) et --- (em-dash), $-$(“moins” mathématique)
25/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
ExemplesParce que c’est plus zoli !
... ou \ldots ... ou . . .
Ceci est \emph{très} important. Ceci est très important.
Here are some ‘‘quotation marks’’.Here are some “quotationmarks”.
Edwige de Saint-Glin-Glin\\pages 13--27\\--- Bonjour !\\--- Salut ça va ?
Edwige de Saint-Glin-Glinpages 13–27— Bonjour !— Salut ça va ?
26/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
BabelGestion automatique de l’i18n (sauf encodage), très nombreuses langues
\usepackage[french, ...]{babel}\selectlanguage{french}
Commandes additionnelles pour le français:Abréviations: \up{}, \ier, \iere, \ieres, \ieme,\iemes
Nombres: \No, \no, \nombre{} (Cf. numprint)Degrés: \degresCapitalisation: \bscAutres: \og, \fg
27/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
ExemplesC’est quand même bien pratique. . .
M\up{me}, 1\ier, 1\iere, Mme, 1er, 1re,
2\ieme{} \emph{etc}\\\No 1, \no 2, et\nombre{1294,9546}\\30\degres, enfin, 30~\degres C,c’est chaud.\\
2e etcNo 1, no 2, et 1 294,954 630˚, enfin, 30 ˚C, c’est chaud.
M. et M\up{me} \bsc{Froid}ont sept enfants\ldots\\
M. et Mme FROID ont septenfants. . .
\og guillemets\fg “guillemets”
28/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
InputEncEt si on pouvait taper un é directement ?
\usepackage[encoding]{inputenc}\inputencoding{encoding}
Déclare l’encodage utilisé dans le sourceencoding: latin1 (Unix), applemac (Mac), ansinew(Windows), cp850 (DOS, OS/2) etc.utf8 (Unicode)
29/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
FontEncEncodage des fontes
Problème:Fontes originelles TEX CM (Computer Modern): ASCIITEX rajoute les accents au dessus des caractères de base. . .. . . mais ça casse le mécanisme de césure
Solution:\usepackage[T1]{fontenc}
Utilisation des fontes EC (Extended Cork)Même apparence que les fontes CM, avec les caractèresaccentués en plusPlus de problème de césure
30/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Choix des fontesBienvenue dans la jungle
Standard:I Fontes CM puis EC (pas complètement équivalents)I Paquetage: lmodern (2003, tentative de réunification)I Paquetage: textcomp (symboles divers et variés)
PSNFSS:I Fontes PostScript (niveau 2)I Roman + maths: paquetages mathptmx (Times), mathpazo
(Palatino)I Sans Serif: helvet, avantI Typewriter: courierI Paquetage: pifont (symboles divers et variés)
etc.
31/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
ExemplesChoisissez, mais vite. . .
Roman:I Voici du texte en TimesI Voici du texte en PalatinoI Voici du texte en Zapf Chancery
Sans Serif:I Voici du texte en HelveticaI Voici du texte en Avant Garde
Symboles:I ςοιχι δυ τεξτε εν Σψµβολ
I Voici du texte en Zapf Dingbats
Ligatures dans les polices romanes:ff, fi, fl, ffi\\f{}f, f{}i, f{}l, f{}f{}i
ff, fi, fl, ffiff, fi, fl, ffi
32/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
La question à 0.5eÀ mort la technique officielle de textcomp !
Paquetage: eurosym (symbole propre en METAFONT)I Description officielle de la C.E.E.I \euro: \officialeuro (e, défaut), \geneuro (AC),
\geneuronarrow (BC) et \geneurowide (CC)I \EUR{}: montants numériques avec placement du symbole
(2.35e)I Ne rend pas toujours bien dans toutes les polices. . .
Paquetage: europs (fontes d’Adobe, Postscript Type 1)I Adaptation du symbole utilisé en fonction de la police courante
33/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Géométrie et disposition textuelleDeux notions pas si indépendantes que ça
Géométrie:I Options: 10pt (défaut), 11pt, 12ptI Options: a4paper, a5paper, letterpaper (défaut) . . .I Options: portrait (défaut), landscapeI Options: oneside, twosideI Paquetages: a4, a4wide (buggué !), mais surtout geometry
Disposition:I Options: titlepage, notitlepageI Options: onecolumn (défaut), twocolumnI Options: openright, openanyI Paquetage: multicol (nombre de colonnes variable)I Identation:
• Automatique (sauf le premier paragraphe)• Paquetage: indentfirst (indentation du premier paragraphe)
35/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
En-têtes et pieds de pageNe pas confondre “pied de page” et “bas de page”
\pagestyle{<style>}\thispagestyle{<style>}
Styles prédéfinis:I plain (défaut): numéro de page en bas au milieuI empty: en-têtes et pieds de page videsI headings: nom de chapitre et numéro de page en en-tête
Paquetage: fancyhdr (contrôle poussé du formattage)
36/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Notes en tout genreL’abus de notes est dangereux pour la lisibilité
Notes de bas de page: \footnote{}I à utiliser avec parcimonie (lecture non linéaire)I à insérer juste après le mot concerné, ou après la ponctuation
(pour des {morceaux de} phrases)I Paquetage: footmisc (différents styles de notes de bas de
page)
Notes de marge: \marginpar{}I à utiliser avec parcimonie (même raison)
Paquetages:I endnotes: regroupement de notes en fin de documentI fn2end: (incompatible avec endnotes) transformation des
“footnotes” en “endnotes”
38/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Listes<trouver un sous-titre marrant à mettre ici>
Environnements: itemize, enumerate, descriptionCommande: \item[]Argument optionnel: changement du préfixeEnvironnements imbriquables
\begin{enumerate}\item Number 1\item Number 2\begin{itemize}\item Item 1\item[-] Item 2\end{itemize}
\end{enumerate}
1. Number 1
2. Number 2
• Item 1- Item 2
Paquetage: enumerate (ajustement du style de compteur)Paquetage: expdlist (contrôle sur l’environnementdescription)
39/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
CitationsNe pas confondre avec les citations bibliographiques
Paragraphes plus étroitsCitations courtes: environnement quoteCitation longues (plusieurs paragraphes): environnementquotation
Poèmes (vers séparés par \\): environnement verse
\begin{verse}A la montagne je suis yaller pour m’amuser\\Et dans la neige je m’aivautrer et j’ai sauter\end{verse}
A la montagne jesuis y aller pourm’amuser
Et dans la neige jem’ai vautrer etj’ai sauter
40/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
VerbatimTexte “tel-quel”
Version courte: \verb+texte+Délimiteur: tout sauf * et <espace>Version longue: environnement verbatimStarification: soulignement des espaces
\verb|\verb+texte+|
\begin{verbatim*}\LaTeX, ca poutre.\ est une commande.\end{verbatim*}
\verb+texte+
\LaTeX, ca poutre.\ est une commande.
Paquetages: alltt, verbatim, moreverb
41/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Contrôle de l’espacementL’abus d’espace est dangereux pour la santé
Nouveau paragraphe: \par ou (rappel) ligne videGroupements insécables:I Espace: ~ (taille fixe)I Boîte: \mbox{} (\mbox{01 44 08 01 85},
\mbox{filename})
Quand ça se passe mal: à faire en dernier !!I Environnement sloppypar, commande \sloppyI Changements de ligne:
• \linebreak[n], \nolinebreak[n]• \newline, \\: désactivent la justification• \\*: empêche un changement de page
I Changements de page:• \pagebreak[n], \nopagebreak[n]• \newpage: désactive la justification verticale• \clearpage, \cleardoublepage: flushage des flottants
I Niveau de requête: n ∈ [0,4]
42/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Tableaux ManuelsAh ! Nos bonnes vieilles machines à écrire. . .
\begin{tabbing} ... \end{tabbing}
\=: défini un point de tabulation, \>: l’utilise\\ change de ligne, \kill “tue” la ligne courante
\begin{tabbing}\EUR{1} \= 6,55957 \= F\\\EUR{15} \> 98,39355 \> F\\
\end{tabbing}
1e 6,55957 F15e98,39355F
\begin{tabbing}\EUR{15} \= 98,39355 \= F\kill\EUR{1} \> 6,55957 \> F\\\EUR{15} \> 98,39355 \> F\\
\end{tabbing}
1e 6,55957 F15e 98,39355 F
44/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Tableaux AutomatiquesPlus puissants, plus compliqués
\begin{tabular}[pos]{spec} ... \end{tabular}
pos (t, b ou c): alignement du tableau par rapport au texteadjacentspec: format du tableauI Colonnes: l, r, c ou p{width}I Ligne verticale: |I Séparateur de colonnes: (alternatif) @{}
Dans le corps du tableau:I Changement de colonne / ligne: & / \\I Lignes horizontales: \hline, \cline{num-num},
paquetage hhlineI Texte multi-colonnes:
\multicolumn{num}{format}{text}
Paquetages: array, tabularx, supertab, longtable,ltxtable
45/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Exemple. . . qui résume à peu près tout
\begin{tabular}{|c|r@{,}lc|}\hline\multicolumn{4}{|c|}{%Table de conversion}\\
\hline\hline\EUR{1} & 6 & 55957 & F\\\EUR{15} & 98 & 39355 & F\\\hline\multicolumn{1}{c|}{}& 104 & 95312 & F\\\cline{2-4}
\end{tabular}
Table de conversion1e 6,55957 F
15e 98,39355 F104,95312 F
Paquetage: dcolumn (colonne de type D pour l’alignementdécimal)
46/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Autres GraphiquesAttention aux formats
Inline: PGF/Tikz, environnement picture, paquetages[e]epic . . .Dédiés: paquetages curves, ecltree, bar, hetarom . . .Langage-dépendants: pstricks, pdftricks (appel à lacommande \special pour de l’inclusion directe dans lelangage cible)Externes: XFig, Dia, InkScape, OpenOffice, Gimp. . .Conversion: fig2dev, convert (ImageMagick), xv . . .Inclusion:\usepackage{graphicx}
\includegraphics[width=.5\linewidth]{pict}
47/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
FlottantsPlacement automatique de contenu insécable
Environnements (identiques): figure et table\begin{figure}[placement] ... \end{figure}
Placement ([tbp] par défaut): séquence de suggestionspar ordre de priorité. h (“here”), t (“top”), b (“bottom”), p(“page”), et ! (“même si ce n’est pas joli”)Stockage des flottants dans des files d’attente FIFO (donc unflottant peut gêner le placement de toute la file)Ne jamais utiliser [h] !Paquetages: float, subfigure, ntheorem,algorithms, listings
48/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Légende et référencementLe référencement n’est pas limité aux flottants
\caption[court]{long} %% <court>: pour la liste des figures
Commandes “fragiles”: ne passent pas bien dans leslégendes ou les titres de sections (i.e. \footnote)Protection: \protect (\protect\footnote{...})Paquetage: caption
\label{<marker>}\ref{<marker>}\pageref{<marker>}
\label{lbl}: marqueur (section, figure, table etc.)\ref{lbl}: numéro de compteur correspondant\pageref{lbl}: numéro de page correspondantPaquetages: varioref, lastpage.
49/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
ExempleAttention à l’ordre des commandes !
\begin{figure}\centering%% \includegraphics{pict}%% \begin / \end{tabular}%% etc.Bla bla bla\caption{Pict One}\label{fig:pict1}
\end{figure}
Bla bla bla
Figure: Pict One
caption doit précéder \label
La figure \ref{fig:pict1}se trouve en page\pageref{fig:pict1}.
La figure 1 se trouve en page43.
50/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Liste des flottantsAttention: 2 voire 3 passes de LATEX nécessaires !!
\listoffigures et \listoftables
1ère passe
latex
fichier.tex
fichier.lof fichier.lot
fichier.dvi
2ème passe
1ère passe
2ème passe
51/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
MathématiquesConventions typographiques différentes⇒ mode spécifique
Mode mathématique “court”:environnement math, \( ... \) ou $ ... $
Mode mathématique “long”:environnement displaymath, \[ ... \]
Équations: environnement equation, options (standard)fleqn, leqnoPaquetage: amsmath (incontournable, symboles etconstructions supplémentaires)Autres paquetages: stmaryrd, qsymbols, equation,eqnarray, subeqnarray
53/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
SymbolesIl y en a trop pour les citer tous
Lettres grecques: \alpha \beta, \gamma, \Gamma . . .Opérateurs binaires: \oplus, \otimes, \times . . .Relations binaires: \leq, \geq, \subset, \in . . .Flèches: \leftarrow, \Rightarrow,\Longleftrightarrow . . .Symboles: \forall, \exists, \emptyset, \neg . . .Symboles de taille variable: \sum, \prod, \int . . .Noms de fonctions: \cos, \exp, \limsup . . .Texte normal: \textrm{}Accents: \tilde{}, \grave{}, \acute{} . . .Vrais espaces: utiliser \!, \,, \:, \;, \quad et \qquad
54/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
ExemplesContemplez-moi la qualité du rendu. . .
$\alpha\q\beta\q\gamma\q\Gamma\\\forall\q\exists\q\emptyset\q\neg$
α β γ Γ
∀ ∃ /0 ¬
$\oplus\q\otimes\q\times\q\div\\\leq\q\geq\q\neq\q\subset\q\in\\\leftarrow\q\Longleftrightarrow$
⊕ ⊗ × ÷≤ ≥ 6= ⊂ ∈← ⇐⇒
$\sum\q\prod\q\bigcup\q\bigcap\q\int$ ∑ ∏
⋃ ⋂ ∫
$\cos\q\exp\q\limsup$ cos exp limsup
55/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Constructions mathématiquesPlus simple qu’on pourrait le croire
Exposants et indices: ^{} et _{}Superposition: \widetilde{}, \overline{},\overbrace{}, \overrightarrow{} . . .Divers: \sqrt[]{}, \frac{}{}, \cdots . . .
$A = x_{1}^{2} + y_{1}^{2}\\\widetilde{abc}\q\overline{abc}\q\overbrace{abc}\q\overrightarrow{abc}\\\sqrt[3]{abc}\q\frac{abc}{def}$
A = x21 + y2
1
abc abc︷︸︸︷abc
−→abc
3√
abc abcdef
$\underbrace{u_0+\cdots+u_n}_{n+1 \textrm{\small~termes}}$
u0 + · · ·+un︸ ︷︷ ︸n+1 termes
56/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Constructions supplémentaires (AMS-LATEX)Incontournable (je l’ai déjà dit ?)
Intégrales multiples: \iint, \iiint . . . et \limitsGrands vecteurs: \overrightarrow,\underrightarrow . . .Grandes flèches: \xleftarrow[]{},\xrightarrow[]{}
$\iint_{-\infty}^{+\infty}f(x)\neq\iint\limits_{-\infty}^{+\infty}f(x)$
∫∫+∞
−∞f (x) 6=
+∞∫∫−∞
f (x)
\[\overrightarrow{A_{i,j} B_{j,k}}\]−−−−→Ai,jBj,k
\[A\xrightarrow[below]{above}B\] A above−−−→below
B
57/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Disposition textuelleAucun changement dans le code mathématique
$\lim_{x\rightarrow+\infty}f(x)= \sum_{i=0}^{n}u_i$ limx→+∞ f (x) = ∑
ni=0 ui
\[\lim_{x\rightarrow+\infty}f(x)= \sum_{i=0}^{n}u_i\] lim
x→+∞f (x) =
n
∑i=0
ui
\displaystyle: style “équation”, mais en ligneCommandes similaires: \textstyle, \scriptstyle et\scriptscriptstyle
58/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
DélimiteursUne question à ne pas mettre entre parenthèses
Syntaxe:\left <delim> ... \right <delim>
Délimiteurs: (, ), \{, \}, |, \| . . .Présence obligatoire des deux délimiteursUtiliser un point pour un délimiteur vide
\[f(x) =\left(\sum_{i=0}^{n}u_i(y)\right)(z)\] f (x) =
(n
∑i=0
ui(y)
)(z)
59/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Matrice = tableaux + délimiteursRien de plus facile
\[A =\left\llbracket\begin{array}{ccc}
a_{11} & \cdots & a_{1n}\\\cdots & \cdots & \cdots\\a_{n1} & \cdots & a_{nn}\\
\end{array}\right\rrbracket\]
A =
u
va11 · · · a1n· · · · · · · · ·an1 · · · ann
}
~
Suppléments AMS-LATEX:environnements case, matrix . . .Paquetage: vector (vecteurs automatiques)
$(\rvec{x}{1}{5})\\(\irvec{x})$
(x1,x2,x3,x4,x5)(x1, . . . ,xn)
60/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Alphabets mathématiquesCaractères curvilignes, à double barre etc.
Commandes \math*: cal, bb, rm, bf, sf et tt
$ABC\\\mathcal{ABC}\;\mathbb{ABC}\\\mathrm{ABC}\;\mathbf{ABC}\\\mathsf{ABC}\;\mathtt{ABC}$
ABCA BC ABCABC ABCABC ABC
61/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Mais pourquoi ?
PortableDe plus en plus répanduPlus compact que PostScriptPermet la recherche dans le textePermet la navigation (hyper-liens)Permet de conserver la qualité de rendu typographique deLATEX
63/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Deux approchesApproche directe / indirecte
\pdfoutput=0
latex pdflatex
dvips
fichier.ps
dvipdf
pdf2ps
ps2pdf
fichier.tex
fichier.dvi fichier.pdf
64/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Laquelle choisir ? (1/2)
Spécificités de l’approche directe:I pdflatex et latex ne produisent pas nécessairement des
résultats complètement identiques,I Pas de spécialisation possible (code cible) des documents,I Compilation séparée souvent nécessaire,I Temps de compilation plus longs.
Contre la conversion PDF ⇒ PS:I Problèmes éventuels avec des imprimantes PostScript niveau
1 ou 2.I Perte de l’élégance de PostScript (Turing-complet) vers PDF
(non Turing-complet). Mais c’est inévitable.I Par contre, PDF accepte METAPOST.
Contre la conversion PS ⇒ PDF:I La conversion EPS⇒ PDF n’est pas triviale; il est conseillé de
le faire le plus tôt possible (donc approche directe).
65/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Laquelle choisir ? (2/2)
Pour la conversion PDF ⇒ PS:I Certaines informations (internes à TEX) disparaissent dans les
DVI alors qu’elles seraient utiles dans le PDF (??). Mais ilsemble qu’hyperref résolve la plupart de ces problèmes.
I dvips utilise une grille de rasterisation⇒ problèmes dechangement d’échelle. dvipsone (commercial) produit du vrai“scalable PostScript”.
Divers:I Il existe plus d’outils liés à PostScript qu’à PDF encore
aujourd’hui.I Le temps de rendu de PDF est plus prévisible que celui de
PostScript⇒ les opérateurs professionnels préfèrent duPostScript “plat”.
66/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Fontes en PDF
Les fontes standard LATEX (PK) produisent des résultatsabominables. Utiliser plutôt des fontes PostScript Type 1. . .. . . mais il n’existe pas d’implémentation libre des fontes EC(Extended Cork) en PostScript Type 1.I Le paquetage aeguill: déclenche l’utilisation des fontes
virtuelles AE. Attention: la fonction find d’Acrobat Reader nemarche pas.
I Autres fontes PostScript Type 1:• pxfonts: basés sur palatino.• txfonts: basés sur times.
67/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Graphiques en PDF
PDF ne supporte pas les figures en PostScript encapsulé(EPS)Lui fournir (entre autres) du PDF ou du JPEGeps2pdf fait ce que son nom indiqueInclusion de graphiques:\usepackage[pdftex]{graphicx}
Le driver peut être omis dans la plupart des installationsmodernes (il est détecté automatiquement)Portabilité:\includegraphics{<file>}
Ne pas spécifier d’extension (la version correcte sera choisieen fonction)
68/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
hyperref
\usepackage[pdftex]{hyperref} %% driver optional
Gestion automatique des bookmarks, des mot-clés etgénération automatique d’hyper-liens (références, index,sections. . . )Nouvelles commandes:I \href{<url>}{<text>}: hyper-lien expliciteI \texorpdfstring{<TeX text>}{<bookmark text>}:
pour éviter les problèmes de rendu des bookmarks
Utilisable également avec latex
69/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Compilation conditionnelle
\usepackage{ifpdf}
\ifpdf%% PDF Stuff
\else%% PS stuff
\fi
Exemple:PDF demande la taille physique du support (automatiqueavec hyperref):\pdfpagewidth=\paperwidth\pdfpageheight=\paperheight
70/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Autres classes de documentsServez-vous !
Transparents:I slides (standard), seminar, foilsI Animation: [ha]-prosper, pdfscreen, texpower et
surtout beamerI Outils externes: advi, PPower4I Un comparatif
Examens:I examI QCM
Curricula Vitae:I currvita, esieecvI CurVe
etc.
72/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Aide au développementLATEX, ça peut se débuguer. . .
Options standard:I draft, final (défaut)
Paquetages:I showkeys, draftcopy, changebarsI FiXme
Programmes:I texi2dvi, latexmkI texdocI kpsewhich
etc.
73/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Grands débatsLATEX: amour et haine. . .
Erreurs de Design:I \section*{Not in the TOC :-(}I Internationalisation des styles BIBTEX
Inconsistances de TEX:I \inputI \hskip, glue TEX et \relax
Les macros ne sont pas des fonctions !!I \@ifnextcharI \if ... \else ... \fi, \yes et \no, \iftrue et
\iffalse
75/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Word ou LATEX?Les arguments idiots
“Word, un gamin peut l’utiliser”Faux. Un gamin peut aussi utiliser LATEX. Mais un gaminutilisera Word et LATEX comme un gamin.“Word, déjà, c’est WYSIWYG”Faux. Word est WYSIMOLWYG, ou plutôt WYSIUNWYG. Etil existe des éditeurs WYSIWYG pour LATEX.“LATEX, c’est pas stable avec tous ces paquetages”.Vrai. Mais Word non plus (chargez voire un document Word3 dans Word 7).“Word peut faire ci, LATEX peut faire ça. . . ”Ce ne sont pas les questions importantes.
76/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Word ou LATEX?Les arguments intelligents
Grammaire: il n’existe aucun bon correcteur grammaticalpour LATEX (ou plutôt pour les éditeurs de texte utilisés).Mathématiques: personne n’égale TEX.Compilation vs. Édition: LATEX est un compilateur (desource). Word est un éditeur (de texte).Apprendre par l’exemple: lire un source LATEX est plus facileque regarder un utilisateur de Word.
77/78
LATEX2e
Didier VernaEPITA
Introduction
Fondamentaux
Classes et Styles
I18N
Contrôle global
Contrôle local
Graphiques
Mathématiques
Générer du PDF
En vrac
Grands débats
Séparation forme / contenuUne idée qui a la vie dure
Il est facile d’utiliser Word mal.Word vous encourage même à le faire.Il est plus difficile de mal utiliser LATEX.Le modèle WYSIWYG n’est pas la panacée. Certainesfonctionnalités ne peuvent pas être WYSIWYG. Il est plusimportant de se concentrer sur le fond d’abord.Pour des documents vraiment visuels, LATEX n’est pas le bonoutil. . . mais Word non plus (Cf. Quark).
LATEX 2ε + Emacs + AUC-TEX !
78/78