Cours Latex
Cours Latex
AT Initiation L EX
E. Thimard
&.
Remarque : tous les logiciels utiliss dans ce cours (y compris le systme dexploitation) sont disponibles gratuitement.
Initiation L ATEX E. Thimard Oct. 2003 p.2/96
Conguration de Kile
Menu (de la fentre Kile) Options, Congurer Kile. Choisir les options suivantes :
& dans un
& dans un
http://ina.eivd.ch/collaborateurs/etr/latex
& dans un
http://ina.eivd.ch/collaborateurs/etr/latex
Cliquer sur demo.tex, slectionner et copier <Ctrl+C> la page.
& dans un
http://ina.eivd.ch/collaborateurs/etr/latex
Cliquer sur demo.tex, slectionner et copier <Ctrl+C> la page. Retourner dans kile et coller <Ctrl+V> dans le nouveau document.
& dans un
http://ina.eivd.ch/collaborateurs/etr/latex
Cliquer sur demo.tex, slectionner et copier <Ctrl+C> la page. Retourner dans kile et coller <Ctrl+V> dans le nouveau document. Sauver le chier demo.tex.
& dans un
http://ina.eivd.ch/collaborateurs/etr/latex
Cliquer sur demo.tex, slectionner et copier <Ctrl+C> la page. Retourner dans kile et coller <Ctrl+V> dans le nouveau document. Sauver le chier demo.tex. Lancer la compilation de cet exemple et contempler demo.ps.
Fichiers compils
x late
.dvi
dvips
.tex
la
pd
.ps
ate x
gv, kghostview
ps2pdf
te x2
ht
.pdf
m l
acroread, xpdf
.html
http://iai1.eivd.ch/
Initiation L ATEX E. Thimard Oct. 2003 p.7/96
Un peu dhistoire...
TEX et M ETAFONT ont t crs en 1978 par le clbre D. E. Knuth http://www-cs-staff.stanford.edu/knuth/ an de pouvoir crer des documents scientiques de qualit irrprochable. TEX est un outil trs puissant, mais assez rbarbatif pour lutilisateur moyen... Aprs quelques pisodes intermdiaires, cest en 1985 que L. Lamport cre A TEX, un sur-ensemble de TEX. En bref, il sagit dune collection de macros L offrant moindre effort laccs une grande partie de la puissance de TEX.
A A TEX2 et attendons L TEX3 Depuis 1994, nous utilisons la version stabilise L depuis lors (voir news sur http://www.latex-project.org/).
Aujourdhui, la quasi-totalit des livres et articles mathmatiques sont crits A TEX et, dans le milieu scientique, cet heureux phnomne stend en L progressivement dautres disciplines.
Initiation L ATEX E. Thimard Oct. 2003 p.8/96
Inconvnients Pas WYSIWYG (What You See Is What You Get) Partage de chiers avec des non-convertis Premiers pas difciles
Taille de base pour les caractres Format du papier Orientation paysage du papier Document recto ou recto-verso
Initiation L ATEX E. Thimard Oct. 2003 p.10/96
Len-tte du document
Len-tte du document est une zone dans laquelle on peut notamment spcier certains paramtres comme la largeur des marges, le contenu dun ventuel pied de page, les polices de caractres, si les pages doivent tre numrotes en chiffres arabes ou romains, etc ; on a par exemple
\title{Introduction \LaTeX} % On dnit le titre du document \setlength{\textheight}{24cm} % Le texte sera de 24cm de hauteur \setlength{\parskip}{1cm plus0.2cm minus0.2cm} % Lespace vertical avant un paragraphe est de 1cm 0.2 cm
A inclure des packages ajoutant L TEX diverses fonctionnalits (criture dalgorithmes, graphisme, partitions musicales, schmas lectriques,...)
\usepackage[options]{nom du package}
\pagestyle{plain} % Style par dfaut : pied de page avec numro de page \begin{document} \maketitle \thispagestyle{empty} \newpage Coucou \end{document} % % % % % % Dbut du corps du document Affiche la page de titre selon dfinitions La page de titre ne doit pas tre dcore Passer la page suivante Le texte du document Fin du corps du document
564
1 Introduction
blabla
1.1 Remarques
Initiation L ATEX E. Thimard Oct. 2003 p.15/96
Rfrences
Des points de rfrence (invisibles) peuvent tre placs nimporte o dans le document laide de la commande \label{nom_du_label}.
Rfrences
Des points de rfrence (invisibles) peuvent tre placs nimporte o dans le document laide de la commande \label{nom_du_label}. Il est possible de faire rfrence la page laquelle ce point a t plac avec
Rfrences
Des points de rfrence (invisibles) peuvent tre placs nimporte o dans le document laide de la commande \label{nom_du_label}. Il est possible de faire rfrence la page laquelle ce point a t plac avec
Rfrences
Des points de rfrence (invisibles) peuvent tre placs nimporte o dans le document laide de la commande \label{nom_du_label}. Il est possible de faire rfrence la page laquelle ce point a t plac avec
\begin{center} La session\\dexamens vient de se terminer. \end{center} \begin{flushleft} La session\\dexamens vient de se terminer. \end{flushleft} \begin{flushright} La session\\dexamens vient de se terminer. \end{flushright}
Initiation L ATEX E. Thimard Oct. 2003 p.17/96
Multicolonnage
Ajouter \usepackage{multicol} dans len-tte du document, puis
\begin{multicols}{2} Comme pour la plupart des commandes \LaTeX{}, multicols accepte de nombreuses options permettant de personnaliser votre {\oe}uvre : espacement entre les colonnes, afficher une ligne (plus ou moins large) entre les colonnes, etc. \end{multicols} \setlength{\columnsep}{1cm} \setlength{\columnseprule}{0.5pt} \begin{multicols}{3} Il ne reste plus assez de place pour mettre un exemple plus long. \end{multicols}
votre uvre :
espace-
ment entre les colonnes, afcher une ligne (plus ou moins large) entre les colonnes, etc.
de
place
pour mettre
Espacement
Les commandes \vspace{distance} et \hspace{distance} permettent dinsrer des espaces verticaux ou horizontaux (par exemple \hspace{2.3cm}), o la distance peut tre notamment donne en :
cm mm
in pt
Espacement
Les commandes \vspace{distance} et \hspace{distance} permettent dinsrer des espaces verticaux ou horizontaux (par exemple \hspace{2.3cm}), o la distance peut tre notamment donne en :
cm mm
in pt
\, \quad \qquad
Le sixime dun quad La largeur dun M dans la police courante Le double dun quad
Espacement
Les commandes \vspace{distance} et \hspace{distance} permettent dinsrer des espaces verticaux ou horizontaux (par exemple \hspace{2.3cm}), o la distance peut tre notamment donne en :
cm mm
in pt
\, \quad \qquad
Le sixime dun quad La largeur dun M dans la police courante Le double dun quad
Notons galement les commandes \smallskip, \medskip et \bigskip qui permettent respectivement linsertion dun petit, moyen ou gros espace vertical (dpendants du style utilis, mais reparamtrables).
Initiation L ATEX E. Thimard Oct. 2003 p.20/96
Caractres spciaux
Ce qui suit le caractre % sur une ligne du code source est un commentaire.
Caractres spciaux
Ce qui suit le caractre % sur une ligne du code source est un commentaire. Pour afcher le caractre % dans le document, on utilise la commande \%.
Caractres spciaux
Ce qui suit le caractre % sur une ligne du code source est un commentaire. Pour afcher le caractre % dans le document, on utilise la commande \%.
A De manire similaire, dautres caractres ont une fonction spciale en L TEX, mais sont afchables par des commandes particulires. Il sagit notamment de
Caractre $ & #
Commande
Caractre { } _
Commande
\$ \& \# \textbackslash
\{ \} \_ \oe
Caractres spciaux
Ce qui suit le caractre % sur une ligne du code source est un commentaire. Pour afcher le caractre % dans le document, on utilise la commande \%.
A De manire similaire, dautres caractres ont une fonction spciale en L TEX, mais sont afchables par des commandes particulires. Il sagit notamment de
Caractre $ & #
Commande
Caractre { } _
Commande
\$ \& \# \textbackslash
\{ \} \_ \oe
Remarque : divers packages, commandes ou familles de fontes permettent A TEX dtre utilis dans la plupart des langues connues sur la plante Terre. L ngstrm (1814-1874)
{\AA}ngstr{\o}m (1814-1874)
Initiation L ATEX E. Thimard Oct. 2003 p.21/96
Tailles de caractres
Par dfaut, dix tailles de caractres sont disponibles et sobtiennent laide des commandes suivantes :
\tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge, \Huge
Comme son nom lindique, \normalsize est la taille pas dfaut. Au besoin, utiliser des acmarquer les colades changements de taille.
pour
Au besoin, utiliser % {\scriptsize des accolades % {\Large pour} marquer} les % changements de taille.
Louis 1\textsuperscript{er}
Initiation L ATEX E. Thimard Oct. 2003 p.22/96
Styles de caractres
Il existe de nombreuses commandes pour changer de style de caractres, mais les plus courantes sont sans doute les suivantes : Texte en italique Texte en gras
Style typewriter
P ETITES CAPITALES Soulignement
A Par dfaut, la famille de fontes dun document L TEX est Computer Modern (ce nest pas le cas de ces transparents). Il est bien sr possible den changer, mais nous nous bornerons signaler le fait que placer une commande telle que
\usepackage{times} \usepackage{helvet}
\usepackage{newcent} \usepackage{palatino}
Initiation L ATEX E. Thimard Oct. 2003 p.23/96
verbatim
A Lenvironnement verbatim permet dinterrompre linterprtation L TEX et donc dinsrer tels quels (en style typewriter, en prservant les espaces et les A TEX. sauts la ligne) des listings tels que du code Ada, C ou L
\begin{itemize} \item En premier lieu, % on note quil nest % pas possible de... \item Par contre,... \end{itemize}
En modiant la commande \labelitemi (ou \labelitemii pour une sous-liste), on change facilement le symbole utilis dans une telle liste :
# En premier lieu,
\begin{itemize} \item En premier lieu, on note quil... \begin{enumerate} \item toto \item tutu \begin{description} \item[label] dans un environnement % description, on discute souvent les % \item[symbole] termes entre crochets % \end{description} \item titi \end{enumerate} \item Par contre,... \item En revanche,... \end{itemize}
Initiation L ATEX E. Thimard Oct. 2003 p.27/96
\usepackage{graphicx}
et ventuellement prciser dans quel(s) rpertoire(s) chercher les images avec
\graphicspath{{rep1/}{rep2/}...{repn/}}
Ensuite, pour insrer la gure toto.eps (PostScript encapsul), utiliser
\includegraphics[height=5cm]{toto.eps}
pour ramener la hauteur de la gure 5cm,
\includegraphics[width=8cm]{toto.eps}
pour ramener la largeur de la gure 8cm. Remarque : sous Linux, pour convertir un chier toto.jpg (ou .gif,
la commande
http://www.loria.fr/services/tex/general/manuel2ep.ps.gz
A Une courte (?) introduction L TEX2
http://www.ctan.org/tex-archive/info/lshort/french/
http://tex.loria.fr/index.html
A La FAQ L TEX en franais (existe galement en livre)
http://www.grappa.univ-lille3.fr/FAQ-LaTeX/
Forum et liste de discussion en franais
http://www.gutenberg.eu.org/
Initiation L ATEX E. Thimard Oct. 2003 p.29/96
A L TEX par la pratique, C. Rolland, OReilly, Paris, 1999 A TEX inclus ... en franais, CD-ROM dinstallation de L A A guide to L TEX, H. Kopka and P. W. Daly, Addison-Wesley, 3rd ed., 1999 A The L TEX companion, M. Goossens, F. Mittelbach, and A. Samarin, Addison-Wesley, 1994
Initiation L ATEX E. Thimard Oct. 2003 p.30/96
Exercices 1
Aller sur la page web du cours
http://ina.eivd.ch/collaborateurs/etr/latex
et sauver les documents suivants dans votre rpertoire de travail :
l pour crer une colonne dont le contenu doit tre justi gauche, r pour crer une colonne dont le contenu doit tre justi droite, c pour crer une colonne dont le contenu doit tre centr, | pour tracer une ligne verticale entre deux colonnes, *{nb}{cols} est juste un moyen dabrger lcriture. Par exemple *{7}{|c}| est quivalent |c|c|c|c|c|c|c|
Initiation L ATEX E. Thimard Oct. 2003 p.34/96
Prix Or Fer xy
Lu 173 12
Ma 165 9 A
Me 178 7 z
\begin{tabular}{|c|rr||l|} \hline Prix & Lu & Ma & Me\\\hline Or & 173 & 165 & 178\\ Fer & 12 & 9 & 7\\\hline x\vline\,y&& A & z \\\hline \end{tabular}
Initiation L ATEX E. Thimard Oct. 2003 p.35/96
Positionnement
En fait, tabular admet un paramtre optionnel qui peut prendre les valeurs suivantes :
position \begin{tabular}[position]{format_colonnes}
[t] pour un aligner le haut du tableau avec la ligne de texte courante, [b] pour un aligner le bas du tableau avec la ligne de texte courante,
rien pour centrer le tableau par rapport la ligne de texte courante.
Au centre \begin{tabular}{c|c} a & b\\\hline c & d \end{tabular} en haut \begin{tabular}[t]{c|c} a & b\\\hline c & d \end{tabular} en bas \begin{tabular}[b]{c|c} a & b\\\hline c & d \end{tabular} fin
Initiation L ATEX E. Thimard Oct. 2003 p.36/96
Au centre
a c
b d
a en haut a c b d en bas c
b d n
Paragraphes
Il est souvent ncessaire de placer des paragraphes de texte dans un tableau. Avec tabular, il suft de crer une colonne de la forme
p{largeur}
\begin{tabular}{|c|l|p{3.9cm}|} \hline Abc & 850 ms & Le temps de latence est beaucoup trop important pour pouvoir garantir les performances requises.\\ Xyz & 260 ms & Cest mieux, mais encore relativement important.\\ \hline \end{tabular}
Abc
850 ms
Le temps de latence est beaucoup trop important pour pouvoir garantir les performances requises.
Xyz
260 ms
\cline{x-y}
qui permet de relier par une ligne horizontale les colonnes x y.
Lu 17 12 19
Ma 16 9 21
Me 17 7 25
Je 19 12 27
\begin{tabular}{|c|rrrr|} \hline Prix & Lu & Ma & Me & Je\\ \cline{2-4} Or & 17 & 16 & 17 & 19\\ \cline{1-2}\cline{4-5} Fer & 12 & 9 & 7 & 12\\ Eau & 19 & 21 & 25 & 27\\ \hline \end{tabular}
Initiation L ATEX E. Thimard Oct. 2003 p.38/96
\rowcolor{couleur} \rowcolor[gray]{intensit}
\begin{tabular}{|l|rr|} \hline \rowcolor[gray]{0.4} Jour& Lu & Ma\\ \rowcolor[gray]{0.7} Min & 5 & 4\\ \rowcolor[gray]{0.7} Max & 13 & 8\\ \rowcolor{green} Moy & 9 & 6\\ \hline \end{tabular}
Initiation L ATEX E. Thimard Oct. 2003 p.40/96
Lu 5 13 9
Ma 4 8 6
>{\columncolor{couleur}} >{\columncolor[gray]{intensit}}
\begin{tabular}{|>{\columncolor{red}}l| >{\columncolor[gray]{0.7}}r >{\columncolor[gray]{0.4}}r|}\hline Jour& Lu & Ma\\ Min & 5 & 4\\ Max & 13 & 8\\ Moy & 9 & 6\\\hline \end{tabular}
Initiation L ATEX E. Thimard Oct. 2003 p.41/96
Lu 5 13 9
Ma 4 8 6
Diagonales
Ajouter dans len-tte du document \usepackage{slashbox} an dutiliser les commandes suivantes qui permettent de sparer une cellule en deux parties spares par une diagonale (il est alors possible dutiliser la premire cellule pour donner la signication des lignes et des colonnes) :
\slashbox{bas}{haut} \backslashbox{bas}{haut}
PP
\begin{tabular}{|c|r|r|} \hline \backslashbox{Carats}{Prix} & HT & TTC\\\hline 18 & 60 & 85\\ 24 & 90 & 120\\\hline \end{tabular}
PP
Prix
Carats
PP
HT 60 90
TTC 85 120
PP P
18 24
Rotations
Il nest pas rare que la page soit trop troite pour pouvoir placer la lgende des colonnes dun tableau. Une solution consiste faire tourner le contenu de ces cellules avec \rotatebox{angle}{texte} (cette commande provient du package graphicx dj utilis pour inclure des gures).
Expression et communication
4.3 3.4
2.5 5.2
\begin{tabular}{c|r|r|} &\rotatebox{90}{Analyse et programmation} &\rotatebox{90}{Expression et communication} \\\hline Samuel Dupont & 4.3 & 2.5\\ Manuel Dupond & 3.4 & 5.2\\ \end{tabular}
Analyse et programmation
Lordre des lettres dans largument optionnel [pos] indique des prfrences
[h] laisser lobjet l o il se trouve dans le source [t] placer lobjet en haut dune page (page courante ou la plus proche) [b] placer lobjet en bas dune page (page courante ou la plus proche)
Lventuelle (la commande \caption{} est optionnelle) description numrote de lobjet sera place au dessus ou au dessous du ottant suivant si \caption{} apparat en premier ou en dernier dans lenvironnement.
Initiation L ATEX E. Thimard Oct. 2003 p.44/96
Exemples ottants
voiture camion bus avion
\begin{table}[ht] \begin{center} \begin{tabular}{c|c} voiture & bus\\\hline camion & avion \end{tabular} \caption{\label{TableTransp}Transports} \end{center} \end{table} Un peu de texte entre le tableau et la figure. \begin{figure}[hb] \begin{center} \includegraphics[width=3cm] {eivd-logo-bleu.eps} \caption{Logo EIVD} \end{center} \end{figure}
Table 1: Transports
Un peu de texte entre le tableau et la gure.
(1)
0
x2 dx = 9
x dx = 9
Dans le texte les quations sont condenses et placer entre deux $...$ Sachant que 0 x2 dx = 9, on en conclut
3
Remarques
Comme pour les sections, les gures ou les tables, il est possible de placer un \label{} dans une equation et de faire rfrence son numro avec \ref{} ou la page o elle se situe avec \pageref{} Par dfaut, pour un document de la classe article, les quations sont numrotes squentiellement travers tout le document. Par contre, avec la classe book ou report, les quations sont numrotes par chapitre. Les commandes \textstyle et \displaystyle permettent de forcer ou dannuler la mise en forme condense des quations : (2)
3 2 0 x dx 3
=9 x2 dx = 9,
Sachant que
0
\begin{equation}\textstyle \int_{0}^{3} x^2 dx=9 \end{equation} Sachant que $\displaystyle \int_{0}^{3} x^2 dx=9$, on en conclut que la limite
Initiation L ATEX E. Thimard Oct. 2003 p.47/96
Indices et exposants
Les indices sobtiennent laide de la commande _{indice}
x1 + x2 + xy1 +y2 = 1
Si lindice ne comprend quun seul caractre, on peut supprimer les {}. Les exposants sobtiennent laide de la commande ^{exposant}
x1 + x2 + xy1 +y2 = 1
Fractions et racines
Pour obtenir des fractions, on utilise \frac{num}{denom}
\[
5 + 2x + 1 3 + 3x 2 7x + 6 2 x1
Plus simplement, si lon souhaite obtenir 2/3, il suft dcrire $2/3$. Racines : on utilise \sqrt[exp]{val}, o [exp] est optionnel
\[
3 7x + 1+ y+ 7 1+x
Symboles I
A L TEX comprend tellement de symboles et oprateurs mathmatiques quil nest pas envisageable de les numrer ici. Nous renvoyons donc le lecteur la documentation pour un inventaire. En voici quelques-uns des plus courants :
Symboles II
\partial \triangle \diamond \bot \vdash \leq \prec \preceq \subset \subseteq \in \asymp \checkmark
\Re \imath \oplus \top \dashv \geq \succ \succeq \supset \supseteq \ni \propto \Box
. = = = / |= |
\Im \jmath \odot \nabla \doteq \equiv \sim \simeq \neq \cong \notin \models \mid
Symboles III
La ngation de certains symboles sobtient en les faisant prcder de \not
\not\equiv = \not\cong
to be continued...
Lettres grecques
\alpha \beta \gamma \delta \rho \phi \sigma \theta \epsilon \zeta \Theta \Gamma \Sigma
\omega \lambda \upsilon \kappa \varrho \varphi \varsigma \vartheta \varepsilon \Upsilon \Lambda \Delta \Omega
\pi \mu \nu \xi \eta \tau \chi \iota \psi \Psi \Xi \Pi \Phi
Parenthsage
Pour que dans une formule la taille des parenthses (accolades \{\}, crochets [] ou autres) sadapte correctement, il faut faire prcder ces lments des commandes \left et \right :
\[ (\frac{\partial^2}{\partial x^2} +\frac{\partial^2}{\partial y^2}) f(x,y) \] \[ \left(\frac{\partial^2}{\partial x^2} +\frac{\partial^2}{\partial y^2}\right) f(x,y) \]
Initiation L ATEX E. Thimard Oct. 2003 p.54/96
2 2 ( 2 + 2 )f (x, y ) x y
2 2 + 2 2 x y
f (x, y )
Divers I
Les parties entires infrieures et suprieures
\[ \left\lfloor\frac{p}{q}\right\rfloor \leq \frac{p}{q} \leq \left\lceil\frac{p}{q}\right\rceil \]
p p p q q q
Divers II
Quelques pointills...
\cdots . . . \ldots
. . .
\vdots
..
\ddots
Utiliser \underbrace pour ajouter une accolade au dessous dune formule et \mbox pour sortir du mode mathmatique et inclure du texte :
\[
ax2 + bx + c = 0
facile
\underbrace{ax^2+bx+c=0}_{\mbox{facile}} \]
Initiation L ATEX E. Thimard Oct. 2003 p.56/96
Divers III
Les coefcients binomiaux sobtiennent avec {haut\choose
bas}
n+1 k
n n + k1 k
\[
A B
3i
i=0
3 = 2
3 0
x dx = 9
Fonctions usuelles
Attention ne pas oublier le \ devant le nom des fonction mathmatiques
cos x cosx
$ \cos x \not\equiv cos x $ \cos \sin \tan \cot \exp \[ \cosh \sinh \tanh \coth \dim \inf \sup \liminf \limsup \deg \min \max \ln \log \det
lim ex = 0
\lim_{x\to\infty} e^{-x}=0 \]
Initiation L ATEX E. Thimard Oct. 2003 p.59/96
Kn
Kn
(3)
A=
12 23 45 27 64 13
b=
3 8
Parenthsages fantmes
Notons que si lon ouvre une parenthse avec \left(, il est ncessaire de la fermer, soit avec une autre parenthse \right), mais pourquoi pas avec un crochet \right], une accolade \right\}, etc. Lorsquaucun dlimiteur ne doit apparatre sur la droite, on utilise le symbole fantme \right.
\[ \left\{ \begin{array}{*{4}{rc}r} x_1 & + & x_2 & + & x_3 & + & x_4 & = & 10 \\ 2x_1 & + & x_2 & + & 2x_3 & & & = & 7 \\ x_1 & & & + & x_3 & & & = & 2 \end{array} \right. \]
x1 2x1 x1
+ +
x2 x2
+ + +
x3 2x 3 x3
x4
= = =
10 7 2
Alternatives
Une dernire utilisation courante de lenvironnement array concerne lcriture des alternatives :
\[ F_X(x)=P(X\leq x)= \left\{ \begin{array}{cl} 0 & \mathrm{si}\: x<0,\\ 1-e^{-\lambda x} & \mathrm{si}\: x\geq 0. \end{array} \right. \]
FX (x) = P (X x) =
0 si x < 0, 1 ex si x 0.
Initiation L ATEX E. Thimard Oct. 2003 p.64/96
A Exercices 2 : J L TEX
Mme principe que pour la pre- mire partie : partir de doc1.tex (que vous avez obtenu la n de la premire sance dexercices ou que vous trouverez sur la page web du cours) et complter le code en ajoutant les formules et tableaux permettant daboutir doc2 dont une copie papier vous a t gnreusement distribue.
http://www.ctan.org
http://www.ctan.org
Par exemple, pour crire de manire efcace le pseudo-code dun algorithme dans un document, il suft de faire une recherche par mot-cl sur CTAN. On tombe alors rapidement sur le package algorithms (et sa documentation) quil sufra de rapatrier.
http://www.ctan.org
Par exemple, pour crire de manire efcace le pseudo-code dun algorithme dans un document, il suft de faire une recherche par mot-cl sur CTAN. On tombe alors rapidement sur le package algorithms (et sa documentation) quil sufra de rapatrier. Par ailleurs, les packages pst-3dplot et pst-vue3d qui offrent diverses fonctionnalits graphiques en trois dimensions, ainsi que lextension pst-circ qui permet la reprsentation de schmas lectriques sont disponibles sur ce site. Des exemples dutilisation de ces packages sont fournis plus loin.
Initiation L ATEX E. Thimard Oct. 2003 p.67/96
Pseudo-codes dalgorithmes
Aprs une visite sur CTAN, ajouter \usepackage{algorithmic} dans len-tte du document et essayer par exemple Require: a, b N Ensure: x = pgcd(a, b)
1: 2: 3: 4: 5: 6:
7: end while
\begin{algorithmic}[1] \REQUIRE $a,b\in\mathbb{N}^*$ \ENSURE $x=\mathrm{pgcd}(a,b)$ \STATE $x\leftarrow\max(a,b)$ \STATE $y\leftarrow\min(a,b)$ \WHILE {$y\neq 0$} \STATE $r\leftarrow x\bmod y$ \STATE $x\leftarrow y$ \STATE $y\leftarrow r$ \ENDWHILE \end{algorithmic}
Le sujet tant vaste, nous nous contentons dun tour dhorizon des possibilits de PSTricks...
Le sujet tant vaste, nous nous contentons dun tour dhorizon des possibilits de PSTricks... mais nous nous attarderons un peu plus longtemps sur le traage de graphes (reprsentation graphique de donnes ou de fonctions).
Le sujet tant vaste, nous nous contentons dun tour dhorizon des possibilits de PSTricks... mais nous nous attarderons un peu plus longtemps sur le traage de graphes (reprsentation graphique de donnes ou de fonctions). La documentation de PSTricks est directement disponible sur les stations. Pour y accder, parcourir Commencer par les chiers les chiers jusquau dossier suivant :
file:/usr/share/texmf/doc/generic/pstricks/obsolete/
pst-usr1.ps pst-usr4.ps...
Initiation L ATEX E. Thimard Oct. 2003 p.69/96
Lenvironnement pspicture
3
En gnral, on inclut un objet PSTricks dans un environnement pspicture que lon place ensuite dans un environnement figure pour le rfrencer.
0 0 1 2 3 4
Figure 2: Un cercle
\begin{figure}[htb] \begin{center} \begin{pspicture}(0,0)(4,3) \psgrid % trace la grille \pscircle(2,1.5){1} \end{pspicture} \caption{Un cercle} \end{center} \end{figure}
Notons que du PSTricks peut aussi tre inclus dans du texte. Par exemple, la commande \pscircle{1cm} a t place juste aprs le point prcdent.
Initiation L ATEX E. Thimard Oct. 2003 p.70/96
Ajouter un fond
Il est souvent agrable de placer un fond lgrement gris (question de got) derrire une gure PSTricks. Il suft pour cela dutiliser \psframebox*{}
Figure 3: Un cercle
\begin{figure}[htb] \begin{center} \psframebox*[fillcolor= lightgray]{ \begin{pspicture}(0,0)(4,3) \pscircle[fillstyle=solid, fillcolor=white](2,1.5){1} \end{pspicture}} \caption{Un cercle} \end{center} \end{figure}
Initiation L ATEX E. Thimard Oct. 2003 p.71/96
\begin{pspicture}(0,0)(5,7) \psgrid[subgriddiv=1,griddots=10] \psline(0,6)(2.5,7) \psline[linewidth=0.25pt](0,5)(5,7) \psline{->}(0,4)(5,6) \psline{*->}(0,3)(5,5) \psline[arrowscale=2]{<->}(0,2)(5,4) \psline{|->}(0,1)(5,3) \psline{o-o}(0,0)(5,2) \psline[fillcolor=red]{o-o}(2.5,0)(5,1) \end{pspicture}
0 0 1 2 3 4 5
Initiation L ATEX E. Thimard Oct. 2003 p.72/96
\begin{pspicture}(-0.3,0)(4,7) \psgrid[subgriddiv=1,griddots=10] \psline[linestyle=dashed](0,6)(4,7) \psline[linestyle=dashed,dash=13pt 5pt]% (0,5)(4,6) \psline[linestyle=dotted,linewidth=5pt]% (0,4)(4,5) \psline[doubleline=true](0,3)(4,4) \psline[linecolor=red](0,2)(4,3) \psline{->}(0,1)(4,2)(2,2)(2,1) \psline[linearc=0.25,linewidth=2pt]{->}% (0,0)(4,1)(3,3)(2,3) \end{pspicture}
0 0 1 2 3 4
Initiation L ATEX E. Thimard Oct. 2003 p.73/96
Rectangles et polygones
7 6
\begin{pspicture}(-0.3,0)(4,7) \psgrid[subgriddiv=1,griddots=10] \psframe(1,0)(4,2) \psframe[fillstyle=solid,fillcolor= lightgray](0,1)(3,3) \psframe[fillstyle=solid,fillcolor=green, linestyle=dashed,linecolor=red](1,2)(4,4) \pspolygon(1.5,3.5)(1,5)(0,5) \pspolygon[fillstyle=solid,fillcolor=red]% (1,6)(0,7)(2,7)(2,6) \pspolygon[fillstyle=solid,linearc=0.1, fillcolor=yellow](1.5,4)(1.5,7)(4,4)(4,7) \end{pspicture}
0 0 1 2 3 4
Initiation L ATEX E. Thimard Oct. 2003 p.74/96
\begin{pspicture}(-0.1,0)(4,7) \psgrid[subgriddiv=1,griddots=10] \pscircle(1,6){1} \pscircle[fillstyle=solid,fillcolor=red] (3,6){1} \psellipse[fillstyle=solid,fillcolor=green] (2,4)(2,1) \psellipse[linewidth=3pt](2,3)(1.5,1) \psarc{->}(1,1){1}{135}{270} \pswedge(2,1){1.5}{300}{200} \pswedge[fillstyle=solid,fillcolor=yellow] (3.5,0.5){0.5}{30}{330} \end{pspicture}
0 0 1 2 3 4
Initiation L ATEX E. Thimard Oct. 2003 p.75/96
Courbes
7 6
8 8
\begin{pspicture}(-0.1,0)(4,7) \psgrid[subgriddiv=1,griddots=10] \psbezier(0,7)(2,6)(1,4)(0,5) % 4 points ! \psbezier[showpoints=true,arrowscale=2] {->}(2,7)(4,6)(3,4)(2,5) \psbezier[fillstyle=solid, fillcolor=red] (0,2)(2,1)(1,-1)(0,0) \pscurve[showpoints=true,linecolor=red] (0,3)(1,4)(2,4)(2.5,3)(1,2) \pscurve[fillstyle=solid,fillcolor=green] (2,1)(3,3)(4,2)(3,0)(2,1) \end{pspicture}
0 0 1 2 3 4
Initiation L ATEX E. Thimard Oct. 2003 p.76/96
Grilles et points
4 3 2 0 1 1 0 4 3 2 1 0 2 3 4 5 6 7 8
4 3 2 1 0
AB
AB
8
Initiation L ATEX E. Thimard Oct. 2003 p.77/96
\begin{pspicture}(-0.1,0)(8,12) \psgrid[subgriddiv=1,griddots=10](8,12) \multips(1,7)(1.5,1){5}{ \pswedge[fillstyle=solid,fillcolor=yellow] {0.5}{30}{330}} \multido{\n=1+0.3}{20}{ \pscircle(\n,\n){0.5}} \end{pspicture} \medskip\footnotesize Dans du texte, on a par exemple \multido{\i=9+2}{3}{$n=\i$,\,}...
Texte et couleurs
7 6
(x 1)2 + (y 6)2 = 1
5
angle=45
um
Om
s r e v a r T
0 1 2
bre
3 4
\begin{pspicture}(-0.1,0)(4,7) \psgrid[subgriddiv=1,griddots=10](4,7) \newcmykcolor{rougepale}{0 0.5 0.6 0.1} \newcmykcolor{vertpale}{0.8 0 0.8 0.15} \newrgbcolor{saumon}{0.92 0.52 0.4} \newrgbcolor{mauve}{0.5 0.5 1} \psset{fillstyle=solid} \pscircle[fillcolor=rougepale](1,6){1} \pscircle[fillcolor=vertpale](3,6){1} \pscircle[fillcolor=saumon](1,4){1} \pscircle[fillcolor=mauve](3,4){1} \uput[0](1,6){$(x-1)^2+(y-6)^2=1$} \cput[fillcolor=lightgray]{45}(1,3){saumon} \uput[45](3,4){angle=45} \rput{330}(3,2){ \psshadowbox[fillcolor=mauve]{\Huge Ombre}} \rput{30}(1,1){\Huge Travers} \end{pspicture}
sa
on
m
3
te n o
desc
end
1 2
2 3
ovale
0
0 1
2
4
\psframebox*[framesep=18pt]{ \begin{pspicture}(0,-0.2)(4,5.2)\black \psgrid[subgriddiv=1,griddots=10](4,5) {\psset{fillstyle=solid,fillcolor=white} \cnodeput(0,1){a}{$0$} \cnodeput(2,1){b}{$1$} \cnodeput(4,1){c}{$2$} \cnode[linestyle=dashed](3,5){0.5cm}{d} \rput(4,2){\ovalnode{e}{ovale}} \pnode(0,3){f}} \ncarc[arcangle=35]{a}{b}^{$\lambda$} \ncarc[arcangle=35]{b}{a}^{$\mu$} \ncarc[arcangle=35]{b}{c}^{$\lambda$} \ncarc[arcangle=35]{c}{b}^{$2\mu$} \psset{nrot=:U} \ncline{f}{d}^{monte} \ncline{f}{e}_{descend} \end{pspicture}}
Initiation L ATEX E. Thimard Oct. 2003 p.80/96
Graphiques 2D
Pour tracer un systme daxes et le graphe dune fonction, on utilise
\psaxes[options]{flches}(Ox,Oy)(SOx,SOy)(NEx,NEy) \psplot[options]{xmin}{xmax}{fonction de x en PostScript}
Voir la documentation mentionne plus haut pour une prsentation dtaille des options et paramtres.
y = f (x) = x x 1 x 1
\begin{pspicture}(-0.2,-0.5)(2,2) \psset{linewidth=0.5pt,xunit=2cm,yunit=1cm} \psaxes[arrowscale=2] {->}(0,0)(-0.2,-0.5)(2,2) \psplot[plotpoints=200]{-0.1}{2} {x x mul x sub} \uput[180](2,2){$y=f(x)=x^2-x$} \uput[90](2,0){$x$} \end{pspicture}
Mathmatiques en PostScript
Principales oprations mathmatiques en PostScript : abs ln add log atan mul ceiling neg cos round div sin exp sqrt oor sub
Fonctionne sur le mode dune pile : entrer les expressions comme sur une calculatrice HP, cest--dire en notation polonaise inverse. Quelques exemples :
3t2 + 5t 7 t t mul 3 mul t 5 mul add 7 sub xy x y mul sqrt cos(5t + /2) t 180 mul 3.1415 div 5 mul 90 add cos
Attention, en PostScript, les fonctions trigonomtriques sont en degrs !
Voir la documentation mentionne plus haut pour une prsentation dtaille des options et paramtres.
C
2 1
C C C C C
Remarque : le fonctionnement de la commande \fileplot{fichier} est similaire, mais les donnes sont importes du chier donn en paramtre.
Initiation L ATEX E. Thimard Oct. 2003 p.83/96
Graphiques paramtriques 2D
Pour une courbe paramtrique dans le plan {(x(t), y (t)), t T }, utiliser \parametricplot. Son utilisation est la mme que \psplot, mais cette fois-ci deux fonctions doivent tre donnes et la variable doit tre t. Reprsentons la spirale
8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7
\begin{pspicture}(-9.5,-8)(8,9) \psaxes[ticksize=1pt,arrowscale=1.5] {->}(0,0)(8,9) \parametricplot[plotpoints=500]{0}{22.5} {2.72 t 10 div exp t 57.3 mul cos mul 2.72 t 10 div exp t 57.3 mul sin mul} \end{pspicture}
Initiation L ATEX E. Thimard Oct. 2003 p.84/96
Circuits lectriques
Une fois le package rapatri, ajouter \usepackage{pst-circ} dans lentte de votre document pour crer des circuits lectriques. Par exemple, pour dessiner un condensateur, il suft de placer ses extrmits (pour mieux se reprer, il est souvent utile dajouter une grille) et de le baptiser
2
C
1 0 0 1 2 3
&
Q
1NAND1
Consulter les chiers pst-circ-doc.pdf et logic.pdf pour une documentation dtaille et dautres exemples.
Graphiques 3D
Une fois le package rapatri, ajouter \usepackage{pst-3dplot} dans lentte de votre document pour dessiner des fonctions en 3 dimensions. Pour reprsenter une fonction de x et y , on utilise la commande
\psplotThreeD[<options>](xMin,xMax)(yMin,yMax) {<fonction de x et y en PostScript>} Les variables Alpha et Beta permettent de xer les angles de vision.
z y
\psset{Alpha=150,Beta=20} \psplotThreeD[ drawStyle=xyLines, yPlotpoints=30,xPlotpoints=30, linewidth=0.25pt](0,3)(0,3){ x y mul 50 mul sin} \pstThreeDCoor[xMax=3,yMax=3,zMax=1]
Exemple de graphique 3D
x (x2 +y2 ) ((x1.225)2 +y 2 ) e +e z = f (x, y ) = 10 x + xy 5
3 4
\begin{pspicture}(-5,-4)(6,5.8) \psset{Alpha=45,Beta=15} \psplotThreeD[ plotstyle=curve,hiddenLine=true, yPlotpoints=50,xPlotpoints=50, linewidth=0.5pt](-4,4)(-4,4){ x 3 exp x y 4 exp mul add x 5 div sub 10 mul 2.729 x dup mul y dup mul add neg exp mul 2.729 x 1.225 sub dup mul y dup mul add neg exp add} \pstThreeDCoor[xMin=-1,xMax=5,yMin=-1, yMax=5,zMin=-1,zMax=5] \end{pspicture}
Fonctions 3D paramtriques
Le package pst-3dplot permet galement de reprsenter des fonctions 3D paramtriques dun ou deux paramtres laide des deux commandes
Fonctions 3D paramtriques
z
\begin{pspicture}(-3,-2)(3,5.5) \psset{Alpha=30,Beta=25} \parametricplotThreeD[xPlotpoints=100, linecolor=blue,linewidth=1.5pt, plotstyle=curve](0,1270){ 2.5 t cos mul 2.5 t sin mul % HELICE t 600 div 3 add} \parametricplotThreeD[yPlotpoints=20, linecolor=green,linewidth=0.5pt, plotstyle=curve](0,360)(0,360){ 1.5 u cos t sin mul mul 1.5 u cos t cos mul mul % SPHERE 1.5 u sin mul} \pstThreeDCoor[xMin=-1,xMax=3,yMin=-1, yMax=4,zMin=-1,zMax=5] \end{pspicture}
x y
Reprsentation dobjets 3D
Pour terminer, signalons que le package pst-3dplot permet galement de reprsenter divers objets tridimensionnels : Point
\pstThreeDDot[<options>](x,y,z)
Signalons loption drawCoor=true qui permet dajouter des traitills pour mieux situer le point obtenu. Bote donne par un coin o et trois vecteurs u, v et w spciant la direction de ses artes
\pstThreeDBox[<options>](o_1,o_2,o_3) (u_1,u_2,u_3)(v_1,v_2,v_3)(w_1,w_2,w_3)
Sphre
\pstThreeDSphere[<options>](x,y,z){rayon}
Initiation L ATEX E. Thimard Oct. 2003 p.92/96
Reprsentation dobjets 3D
z
\begin{pspicture}(-3.5,-2)(2,4) \pstThreeDCoor[xMin=-3,xMax=4,yMin=-1, yMax=2,zMin=-1,zMax=4] \pstThreeDSphere[linecolor=blue, linewidth=0.5pt](1,-1,2){1.5} \pstThreeDDot[linewidth=1pt, linecolor=black,drawCoor=true](1,-1,2) \pstThreeDBox[fillcolor=green, fillstyle=solid](-1,3,2)% (0,0,2)(2,0,0)(0,1,0) \end{pspicture}
y x
Perspective tridimensionnelle
Le package pst-vue3d permet de reprsenter des objets laide dune perspective 3D (alors que pst-3dplot proposait une projection parallle) avec limination des parties caches. La position de lobservateur est dnie par la distance lorigine du repre Dobs, la longitude et la latitude . On choisira galement la distance Decran laquelle est plac lcran de projection. Divers objets sont reprsentables dans une scne pst-vue3d. Par exemple (voir transparent suivant), un paralllpipde est dni par ses trois dimensions A,B,C. On peut le dplacer en xant les coordonnes de son centre CX,CY,CZ et le faire tourner autour de ses axes avec RotX,RotY,RotZ (les valeurs par dfaut sont nulles). La commande \Cube donne un paralllpipde, alors que \Die dessine un d.
Exemple perspective 3D
Faisons tourner quatre fois un d autour de laxe OZ :
RotZ=0
RotZ=45
RotZ=90
RotZ=135
\multido{\iRotZ=0+45}{4}{% \begin{pspicture}(-1.5,-1.5)(1.5,1.5) \psset{THETA=70,PHI=30,Dobs=200,Decran=10} \psset{A=5,B=12,C=5, fillstyle=solid,fillcolor=verylightgray, linewidth=0.5pt,linecolor=red} \psset{RotZ=\iRotZ} \tapis % Macro qui dessine le sol vert \Die % Utiliser \Cube pour une boite \axeOZ % Dessine laxe de rotation Oz \uput[180](P){\tiny\texttt{RotZ=\iRotZ}} \end{pspicture}\hfill}
Exercices 3
Mme principe que pour les deux premires parties : partir de doc2.tex (que vous avez obtenu la n de la deuxime sance dexercices ou que vous trouverez sur la page web du cours) et complter le code en ajoutant les graphiques permettant daboutir doc3 dont une copie papier vous a t distribue. Exprimentez votre guise avec les packages de cration dalgorithmes, de schmas lectriques et de graphisme 3D prsents ci-dessus. Les chiers ncessaires ainsi que la documentation sont disponibles sur CTAN, mais vous pourrez galement les trouver dans le rpertoire
file:/users/ei2/latex/TakeIt/
Pour copier tout le dossier TakeIt chez vous, tapez dans un shell
cp -r /users/ei2/latex/TakeIt .
Initiation L ATEX E. Thimard Oct. 2003 p.96/96