Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
A
T
E
X
Thierry MASSON
Cours 2 Les fondamentaux : le document source
Mon pauvre oncle disait souvent :
Il faut toujours tourner sa langue sept fois
dans sa bouche avant de parler.
Que devrait-on faire avant dcrire ?
Grard de Nerval
Les illumins
2.1 Le document source : les bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
O lon prend contact avec les rudiments dun langage cabalistique grce auquel
des incantations magiques feront de nous les matres de la page blanche. . .
2.2 Structure du document source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
O lon dcouvre enn le vrai visage dun document source, et o lon sinstruit de
la diversit des classes et des modules. . .
2.3 Repres sur les concepts de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
O lon commence dcouvrir la grammaire parfois obscure de notre langage
cabalistique. . .
2.4 Tour dhorizon de commandes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
O lon se donne un peu de vocabulaire pour disposer notre guise de la page
blanche. . .
URLs des liens cits dans le texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Cours 2 Les fondamentaux : le document source
2.1 Le document source : les bases
La philosophie de T
E
X
Avec T
E
X et L
A
T
E
X, on tape du texte (presque) normalement et on fait appel de temps en temps a des
macros (des morceaux de programmes) pour obtenir des efets divers ou des fonctionnalits
particulires.
Les caractres [ et ] ne sont pas rservs, mais ils interviennent pour dlimiter des arguments
optionnels dans des macros L
A
T
E
X, ce qui fait que leur role est ambigu.
permet de placer des commentaires dans le fchier source et de dsactiver des lignes de texte.
on peut dcouper un paragraphe dans le code source en lignes pas trop longues.
Typographie : un retour chariot isol est considr comme un espace, donc on reste dans le
paragraphe courant.
T
E
X traite les tabulations comme des espaces.
rappel : une tabulation et un retour chariot (isol) sont aussi des espaces !
Typographie : pas despaces superfus entre les mots, si on veut augmenter lespace entre deux
mots, il faut utiliser une commande, par exemple \hspace{dim}.
T
E
X a tendance a absorber les espaces qui suivent une commande :
\LaTeX est formidable
T
E
Xest formidable,
\LaTeX{} est formidable
T
E
X est formidable.
4 25 fvrier 2012
Cours 2 Les fondamentaux : le document source
2.1 Le document source : les bases
Le B.A.BA de la frappe sous L
A
T
E
X (suite)
\\ interrompt la ligne courante et passe a la ligne.
T
E
X symbol list
1
.
Rgle : Rechercher la syntaxe dune macro dans L
T
E
X Reference Manual
2
.
Linterface : Cest le lieu de travail, donc lessentiel.
Choisir un environnement de travail riche, puissant et surtout bien maitris.
Crer un ensemble de fchiers dexemples (vides de contenu smantique) pour difrents
type de documents : articles, lettres, mmoires, rapports, CV. . .
Certains logiciels grent de tels modles quil est facile dappeler lors de la cration dun
nouveau document.
Gestion du code source : Le code source, cest le refet de notre personnalit. . .
Arer le texte source, mettre des lignes de commentaires et des indentations.
Pour L
A
T
E
X, une ou plusieurs lignes vides, cest la mme chose.
Marquer clairement le dbut et la fn des groupes
({...} ou \begin{env}...\end{env}).
Sil sagit dun gros projet (rapport, livre), dcouper le texte en petits morceaux, et dfnir
un fchier maitre qui appelle les autres avec des \include{-}.
Une erreur a un endroit peut se rvler dans la compilation bien plus loin !
Observer la console de compilation, et si a ne sumt pas, ouvrir le fchier .log.
Cest une mine dinformations qui permet de suivre le droulement de la compilation (plus
dinfos dans le .log que dans la console) et de comprendre la source des erreurs.
En cas de problme, dplacer le \end{document} vers le haut jusqua trouver la zone qui
ne compile pas ou mettre en commentaires de grands blocs de texte (certains logiciels le
permettent facilement).
Personnalisation : Ne pas hsiter a personnaliser votre faon de travailler.
Dfnir des macros smantiques, qui auront un sens, et dont il sera possible de modifer le
comportement jusqua la dernire compilation.
\section{-} est une macro smantique quil est possible de modifer.
Dans cette prsentation : \dossier{texmf} produit texmf et \pkge{geometry} produit
geometry. . .
Ne pas hsiter a utiliser un package qui fera le travail demand. . .
De lauteur limprimeur
En tant quauteurs, nous sommes les premiers maillons dune chaine de production qui se destine
en gnral a produire un document imprim.
O sarrte notre activit dans cette chaine :
Il y a en gros deux types de situations.
I. Lauteur rend sa copie a un diteur qui fnalise la production.
Tous les packages sont gaux, mais certains sont plus gaux que dautres.
Certains packages modifent des fonctionnalits fournies par dautres packages
T
E
X
7
, par D. Verna.
Structure logique et smantique dun document
Chaque classe a sa propre structure logique.
La structure logique la plus utilise est celle des dcoupages en parties, chapitres, sections, sous
sections, paragraphes et sous paragraphes.
Les classes report et book dfnissent les commandes \part, \chapter, \section,
\subsection, \subsubsection, \paragraph, \subparagraph.
La classe article ne connait pas \chapter.
Ces commandes acceptent un argument optionnel pour donner une version courte.
\section[Titre court]{Version longue du titre qui nen finit pas}
Le titre long est celui utilis dans le corps du texte.
Le titre court est utilis a la fois dans la table des matires et dans les enttes des pages.
Aprs le texte principal, on peut placer des annexes avec la commande \appendix.
Automatiquement la numrotation de plus haut niveau (\section pour article, \chapter pour
report et book) devient alphabtique.
La classe book permet de diviser le texte en trois grandes parties :
une prface qui dmarre avec \frontmatter, le corps du texte qui dmarre avec \mainmatter et
une post-face qui dmarre avec \backmatter.
Les chapitres ne sont pas numrots dans la prface et la post-face.
La numrotation des pages se fait en romain dans la prface.
10 25 fvrier 2012
Cours 2 Les fondamentaux : le document source
2.2 Structure du document source
lments grs par L
A
T
E
X
L
A
T
E
X gre un certain nombre dlments automatiquement.
Numrotations : L
A
T
E
X soccupe de numroter de nombreux lments : parties, chapitres,. . . ,
paragraphes, pages, notes de bas de page, tableaux, fgures, quations, thormes (ou
quivalents), items de listes. . .
Table des matires : En se basant sur les commandes \chapter{-}, \section{-},. . . la
commande \tableofcontents imprime une table des matires o elle est place.
Selon la classe du document, cette table des matires dmarre un nouveau chapitre (report
et book) ou une section (article).
Il y a des commandes quivalentes pour la liste des tableaux (\listoftables) et la liste des
fgures (\listoffigures).
Rfrences croises : La commande \label{lbl} permet de faire rfrence ailleurs dans le
document au numro actuel (qui dpend du contexte : chapitre, section, note de bas de page,
quation, tableau, fgure, thorme, item. . . ) et a la page actuelle.
\ref{lbl} imprime le numro ainsi prserv,
\pageref{lbl} imprime la page.
lbl est interne au document et ne doit pas tre utilis deux fois dans \label{-}.
Bibliographie, Index : La gestion de la bibliographie peut tre largement automatise grace a
bibtex, et la gestion des index est ralise grace a makeindex.
Plus de dtails seront donns par la suite.
Les multiples compilations
Pour rduire lutilisation de la mmoire vive, T
E
X (et donc L
A
T
E
X) ne conserve en mmoire aucune
donne sur le texte lors dune compilation.
L
A
T
E
X utilise des fchiers auxiliaires dans lesquels il place des donnes a prserver :
.aux par dfaut, mais des packages en produisent dautres.
Ces fchiers auxiliaires sont alors utiliss pour formater des fchiers prts a lemploi :
.toc, .lof, .lot, .bbl, .ind. . .
Premire tape : en compilant, L
A
T
E
X remplit de donnes les fchiers auxiliaires.
.aux contient les donnes pour les rfrences croises, les entres de la table des matires, les
rfrences bibliographiques utilises. . .
Certains moteurs doivent traiter certaines donnes : bibtex extrait les entres bibliographiques
dune base de donne .bib et produit un .bbl, makeindex formate les entres de lindex
sauvegardes dans .idx et produit un .ind. . .
L
A
T
E
X soccupe lui mme de crer le fchier format .toc (table des matires) a partir du .aux
la recherche se fait dans les dossiers texmf comme dcrit auparavant : le fchier nest pas oblig
dtre dans le dossier courant.
\include{chap1} dans le corps du texte inclut le fchier chap1.tex (
extension).
Cette commande dmarre une nouvelle page avant et aprs.
Formule dEinstein : E = mc
2
Pour dfnir une commande avec arguments, on utilise la syntaxe :
\newcommand{-}[-]{-} o [-] contient le nombre darguments.
Une commande ne peut pas accepter plus de 9 arguments.
\newcommand{\xpy}[2]{$#1$ la puissance $#2$ scrit $#1^#2$}
\xpy{3}{5}
3 a la puissance 5 scrit 3
5
\xpy{(a+b)}{n}
(a + b) a la puissance n scrit (a + b)
n
Si une commande est dja dfnie, on peut la redfnir en utilisant \renewcommand a la place de
\newcommand, avec la mme syntaxe.
La cration de commandes et denvironnements fera lobjet dun autre cours (plus long).
Les dimensions
T
E
X peut manipuler des dimensions dans difrentes units :
mm millimtre cm centimtre in inch pt point
8
bp big point pc pica
9
dd point Didot
10
cc unit Cicro
11
sp scaled point ex hauteur de x em largeur de M mu math unit
Quelques facteurs de conversions :
Iin = 2.34cm = 72.27pt = 72bp ; Ipc = I2pt ; II37dd = I238pt ; Icc = I2dd
Les units em et ex dpendent de la fonte de caractres courante :
Iem Iex Ipt Icm Iin
\tiny M x
\normalsize M x
\Large M x
En plus des dimensions fxes, T
E
X manipule des dimensions lastiques.
Leur syntaxe est de la forme 2cm plus 2mm minus 3mm.
Ces marges de manuvre sont utilises pour ajuster les espaces horizontaux et verticaux.
Les dimensions sont des commandes quon ne peut pas invoquer seules :
\parindent, \parsep, \baselineskip, \linewidth, \paperwidth, \textheight,
\tabcolsep, \topmargin, \itemsep, \labelsep. . .
25 fvrier 2012 13
Cours 2 Les fondamentaux : le document source
2.3 Repres sur les concepts de programmation
Jouer avec les longueurs
L
A
T
E
X fournit des commandes pour grer les dimensions.
\newlength{\len} dfnit la nouvelle commande de dimension \len.
Des oprations simples sont possibles :
\setlength{\len}{dim} assigne la valeur dim a \len,
\addtolength{\len}{dim} ajoute dim a \len.
Il est possible damcher une dimension avec la commande \the :
\newlength{\len} \setlength{\len}{3cm} \the\len,
\addtolength{\len}{1mm plus 2pt minus 3pc}\the\len
83.33826pt, 88.20332pt plus 2.0pt minus 36.0pt
En interne, T
E
X travaille en points, et donc les dimensions sont amches dans cette unit.
On peut rcuprer la valeur des longueurs dans la console de compilation ou dans le fchier .log en utilisant
la commande \typeout{\len=\the\len} qui produit \len=85.35826pt.
Il existe une dimension lastique particulire : \fill peut aller de 0pt a .
\the\fill
0.0ptplus4fll
Faire de lespace horizontalement
T
E
X ignore les espaces entre objets. Il existe des commandes pour crer de vrais espaces.
\hspace{dim} produit un espace horizontal de dimension dim :
a b\hspace{1cm}c
a b c (Icm = )
En dbut de ligne, lespace est ignor.
On peut le forcer avec la version toile : \hspace
*
{dim}
Des espacements horizontaux de taille prdtermine sont fournis :
\quad est un espace de Iem : a b
\enspace est un espace de la moiti de \quad : a b
\qquad est un espace du double de \quad : a b
\hfill est un espace de dimension \fill : a b
(lespace entre a et b est le plus grand possible, \hfill = \hspace{\fill})
\hrulefill comme \fill avec un ligne horizontale : a b
\dotfill comme \fill avec une ligne pointille : a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . b
\leftarrowfill et \rightarrowfill : a-------------------------------------------------------------------------- -b- -------------------------------------------------------------------------- c
\stretch{2} est deux fois plus puissant que \stretch{1} (=\fill) :
a\hspace{\stretch{1}}b\hspace{\stretch{1}}c
a b c
a\hspace{\stretch{1}}b\hspace{\stretch{2}}c
a b c
On peut doubler la puissance dun \hrulefill en en plaant deux :
a\hrulefill b\hrulefill\hrulefill c
a b c
14 25 fvrier 2012
Cours 2 Les fondamentaux : le document source
2.3 Repres sur les concepts de programmation
Faire de lespace verticalement
\vspace{dim} ajoute un espace vertical entre des paragraphes.
En dbut de page, cet espace vertical est supprim :
il faut utiliser la version toile \vspace
*
{dim}
il ne faut pas utiliser cette commande dans un paragraphe, mais entre des paragraphes.
L
A
T
E
X dfnit 3 commandes despacement verticaux :
\smallskip est un espace vertical de dimension \smallskipamount, qui vaut environ un quart
de \baselineskip
\the\smallskipamount
I4.3pt
la longueur \baselineskip nest pas absolue, elle dpend de certains choix efectus dans le
document, en particulier de la hauteur des caractres.
Les compteurs
Le langage de T
E
X contient la notion de compteurs.
Les compteurs ne sont pas des commandes. Ce sont des variables utilises a de nombreux endroits :
numrotation des pages, des formules, des items de listes. . .
Les compteurs par dfaut dfnis par L
A
T
E
X sont les suivants :
part paragraph figure enumi
chapter subparagraph table enumii
section page footnote enumiii
subsection equation mpfootnote enumiv
subsubsection tocdepth
mpfootnote est le compteur des footnotes dans lenvironnement minipage,
les compteurs enumi interviennent dans les listes.
\newtheorem dfnit des compteurs pour les thormes et autres structures smantiques des
mathmatiques, dautres packages peuvent fournir des compteurs. . .
A chaque compteur est associ une commande du type \thectr qui amche le compteur, o ctr est le
nom du compteur : \thepage
I3
Cette commande peut amcher plus que la valeur du compteur, par exemple \theequation peut
rappeler le numro de la section courante en amchant 2.4, o 2 est la valeur du compteur de
section et 4 la valeur du compteur des quations.
25 fvrier 2012 15
Cours 2 Les fondamentaux : le document source
2.3 Repres sur les concepts de programmation
Jouer avec les compteurs
L
A
T
E
X fournit des commandes pour grer les compteurs.
\newcounter{ctr}[masterctr] dfnit le nouveau compteur ctr.
Largument optionnel masterctr est un compteur maitre existant : ctr est remis a 0 lorsque
masterctr change.
Des oprations simples sont possibles :
\setcounter{ctr}{val} assigne la valeur val a ctr,
\addtocounter{ctr}{val} incrmente ctr de la valeur val,
\stepcounter{ctr} incrmente ctr dune unit.
Le contenu dun compteur est directement amchable sous difrentes formes :
\arabic{-} \roman{-} \Roman{-} \alph{-} \Alph{-} \fnsymbol{-}
\fnsymbol{-} utilise une suite de 9 symboles en gnral utiliss pour la numrotation
des notes de bas de page.
\newcounter{ctr} \setcounter{ctr}{4} \arabic{ctr}, \roman{ctr},
\Roman{ctr}, \alph{ctr}, \Alph{ctr}, \fnsymbol{ctr}.
4, iv, IV, d, D, .
La commande \value{ctr} retourne la valeur du compteur ctr en tant que nombre
utile dans les commandes qui demandent des nombres, par exemple comme second argument
de \setcounter.
Rednir lachage dun compteur
Les commandes \thectr peuvent tre rdfnies par lutilisateur.
\renewcommand{\theequation}{\arabic{section}-\Alph{equation}}
amche les numros dquations sous la forme 2-D, o le compteur section vaut 2 et equation
vaut 4.
\renewcommand{\theequation}{\thesection-\Alph{equation}}
rutilise lamchage par dfaut du compteur des sections.
positionnement de taquets).
Dautres commandes de tabulations sont disponibles, \, \, \+, \-, dont le comportement est trop
long a expliquer ici.
cette commande est appele pour crer un nouveau chapitre par exemple.
La gestion avance des fottants fera lobjet dun autre cours.
La page de garde
Dans certaines classes, L
A
T
E
X compose une page de garde a partir de donnes spcifques :
\title{-} dfnit le titre, \author{-} renseigne les auteurs (spars par la commande \and),
\date{-} insre la date. Des commandes \thanks{-} associes aux auteurs produisent des
informations en bas de page.
Aprs ces commandes, \maketitle compose le titre avec les lments fournis.
Dans certaines classes, lenvironnement abstract met en forme un rsum.
Les classes amsart et amsproc proposent des modifcations : \title[-]{-} (titre court en
option), \translator{-}, \dedicatory{-}, \author[-]{-} (nom court en option),
\contributor[-]{-}, \address{-} (adresse postale), \curraddr{-} (adresse courante),
\email{-}, \urladdr{-} (site WEB), \thanks{-}, \subjclass[-]{-} (Mathematics
Subject Classication
12
), \keywords{-}. . .
La classe revtex propose les commandes suivantes : \surname{-} (pour lindexation
alphabtique), \email[-]{-}, \homepage[-]{-} (page WEB), \affiliation{-} (adresse),
\altaffiliation[-]{-} (adresse temporaire), \collaboration{-}, \pacs{-} (Physics and
Astronomy Classication Scheme
13
), \keywords{-}, \preprint{-}. . .
La classe svjour propose les commandes suivantes : \subtitle{-}, \dedication{-},
\institute{-}, \email{-}. . .
[I], \cite{Wein67a,ChamConn07}
[Wei67, I],
\cite[Thm~4]{ChamConn07}
[I, Tm 4]
La gestion avance de la bibliographie (avec bibtex) fera lobjet dun autre cours.
Commandes en vrac : gestion de la mise en page
Quelques commandes de mise en page :
\newpage impose un saut de page.
\pagebreak[num] suggre un saut de page.
De num = 0 (on peut. . . ) a num = 4 (on veut. . . ).
\nopagebreak[num] dissuade un saut de page.
\clearpage traite les fottants en court et impose un saut de page.
\cleardoublepage procde de mme en commenant une nouvelle page a droite (mode
twoside).
\enlargethispage{dim} agrandit la page courante de la dimension spcife.
\indent cre lindentation en dbut de paragraphe (largeur \parindent).
\noindent supprime lindentation en dbut de paragraphe.
La dimension \parindent correspond a cette indentation :
mot
Il y a trois sortes de tirets :
-
- (trait dunion), --
(dbut de dialogue)
Les points de suspension sont obtenus pas \dots ou \ldots
. . .
Csures : T
E
X dispose dune liste de csures.
On peut localement laider en dcoupant un mot soi-mme : al\-g\-bre
On peut le faire globalement : \hyphenation{al-g-bre vec-to-riel}
\showhyphens{-} amche dans la console et le .log les suggestions de T
E
X :
\showhyphens{algbre vectoriel}
al-gbre vec-to-riel
Pav noir : \rule[dimh]{dimx}{dimy} cr un bloc plein de taille dimxdimy
relev de la hauteur dimh :
\rule{1cm}{3pt}
,
x\rule[1ex]{1cm}{1pt}x
x x
22 25 fvrier 2012
Cours 2 Les fondamentaux : le document source
URLs des liens cits dans le texte
1
http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf
2
http://home.gna.org/latexrefman/
3
http://www.ctan.org/
4
http://ams.org/publications/authors/tex/amslatex
5
https://authors.aps.org/revtex4/
6
http://www.springer.com/authors/
7
http://river-valley.tv/classes-styles-conflicts-the-biological-realm-of-latex/
8
http://fr.wikipedia.org/wiki/Point_(unit)
9
http://fr.wikipedia.org/wiki/Point_pica
10
http://fr.wikipedia.org/wiki/Point_Didot
11
http://fr.wikipedia.org/wiki/Unit_Cicro
12
http://www.ams.org/msc/
13
http://publish.aps.org/PACS/
25 fvrier 2012 23