PNG : idéal pour les illustrations, peut avoir des transparences
On peut utiliser ces 2 formats avec LaTeX, XeLaTeX, PDFLaTeX et HTML.
Les logiciels d’édition d’images vectorielles, exportent en général dans les trois formats.
Grâce à la bibliothèque graphicx
il suffit de faire :
\includegraphics{nom du fichier}
\graphicspath{{images/}}
.\includegraphics
peut prendre des paramètres : width
, height
, scale
, angle
.Exemple :
\includegraphics[height=5cm]{triangle}
Une figure est une image avec une légende (titre) et souvent avec un numéro qu’on peut étiqueter et utiliser après par exemple ainsi :
... on peut voir dans la figure \ref{fig:sinc} que ...
.
Exemple de l’environnement figure
:
\begin{figure}[h!]
\centering
\includegraphics[width=7cm]{sinc}
\caption{Le graphe de sinus cardinal.}
\label{fig:sinc}
\end{figure}
[h]
est pour «here» et [!]
pour dire «vraiment». On peut utiliser aussi [t]
pour «top of the page» ou [b]
pour «bottom of the page»float
on peut utiliser [H]
qui est «plus fort» que [h!]
\centering
c’est pour centrer l’image\caption
c’est pour mettre une légende (titre)\lable
doit être mis après caption, si on en a besoinincludegraphics
, on peut mettre n’importe quel code, par exemple des commandes pour dessinercaption
nous permet d’avoir les avantages de l’environnement figure
sans lui.Ainsi par exemple on peut centré une image simplement :
\begin{center}
\includegraphics[width=7cm]{sinc}
\captionof{figure}{Le graphe de sinus cardinal.}
\label{fig:sinc}
\end{center}
On utilise captionof
à la place de caption
pour spécifier qu’il s’agit d’une figure.
Ou mettre plusieurs images côte-à-côte dans une figure :
\begin{center}
\captionsetup{type=figure}
\captionbox{Légende une.\label{fig:une}}{\includegraphics[width=4cm]{fig1}}
\quad
\captionbox{Légende deux.\label{fig:deux}}{\includegraphics[width=4cm]{fig2}}
\end{center}
Si on souhaite que le texte coule autour de l’image, on peut utiliser l’environnement wrapfigure
de la bibliothèque wrapfig
à la place de figure
.!! Exemple :
\begin{wrapfigure}{r}{0.5\textwidth}
\centering
\includegraphics[width=5cm]{sinc}
\caption{Le graphe de sinus cardinal.}
\label{fig:sinc}
\end{wrapfigure}
[r]
est pour «r
ight». On peut utiliser aussi [l]
pour «left», [i]
pour «inner» et [o]
pour «outer»0.5\textwidth
indique que la largeur est la moitié de la page. On peut mettre ici par exemple 10 cm
.Il existe plusieurs «langages» qui permettent de dessiner avec LaTeX
metapost
. Très performant en 2D, mais nécessite un outil externe et le résultat est en EPS.\usepackage{tikz}
\usetikzlibrary{...}
Premier exemple :
\begin{tikzpicture}
\fill[red] (0,0) circle(1 cm);
\draw[very thick,<->] (-1,0) -- (1,0);
\path (0,0) node[above]{$d$};
\end{tikzpicture}
;
(point-virgule)\path ... ;
est la commande de base qui «construit» un chemin\draw ... ;
est la commande pour dessiner. C’est un raccourci de \path[draw] ... ;
\fill ... ;
est la commande pour remplir. C’est un raccourci de \path[fill] ... ;
\path[fill,draw] ... ;
(1,2)
c’est la même chose que (1cm,2cm)
, mais on peut utiliser aussi d’autres unités(35:2)
en coordonnées polaires : angle de 35° et distance de 2cm+(1,1)
relativement au dernier point courant, sans changer de point courant++(1,1)
relativement au dernier point courant, et devient le point courantcoordinate (A)
enregistre la position du point courant en A,!! puis on peut le réutiliser avec (A) à la place de coordonnées explicites(A) -- (B)
: ligne droite entre (A) et (B)(A) circle (1cm)
: cercle de centre (A) et de rayon 1cm(A) ellipse (1cm and 2cm)
: ellipse de rayons 1cm et 2cm(A) arc (0:90:1cm)
: arc de cercle de rayon 1cm qui débute en (A), entre les angles 0° et 90°(A) .. controls (-1,1) and (2,1) .. (B)
: courbe de Bézier entre (A) et (B), avec points de contrôle (-1,1) et (2,1)(A) rectangle (B)
: rectangle avec côtés // aux axes et coins opposés (A) et (B)(A) grid (B)
: une grille à la place du rectangleplot ({\x},{sin(\x r)})
: dessine la fonction sinus (en radians)(A) node {Text}
: place le texte centré en (A)[xshift=1cm]
: décalage à droite de 1cm[yshift=-1em]
: décalage vers le bas de 1em[rotate=70]
: rotation d’angle 70°[scale=1.5]
: homothétie de rapport 1.5(A)
), ni les épaisseurs des lignes[xshift=25mm, rotate=30]
) elles sont exécutées de droite à gauchesi on souhaite qu’une transformation (ou une option) s’applique à plusieurs chemins on peut utiliser l’environnement scope
:
\begin{scope}[xshift=25mm,rotate=30]
\fill[red] (0,0) circle(1 cm);
\draw[very thick,<->] (-1,0) -- (1,0);
\path (0,0) node[above]{$d$};
\end{scope}
[red]
pour dessiner et remplir en rouge. La couleur peut être red
, blue
, … et aussi red!30!blue
[draw=orange]
pour dessiner en orange et [fill=yellow]
pour remplir en jaune[fill opacity=.7]
le remplissage est opaque à 70% (par défaut c’est 1 = 100%)[very thin]
pour des lignes très fines,!! ou [ultra thick]
pour des lignes ultra épaisses[->]
pour que la ligne se termine avec une flèche. Il existe plusieurs types de flèches, par exemple [-latex]
,[-stealth]
, [-|]
, …[rounded corners=3mm]
pour arrondir les coinsplot
il y a plusieurs options comme :
[domain=0:4]
pour dire que \x
varie entre 0 et 4samples=100
pour utiliser 100 points lors du plot (par défaut c’est 20)smooth
pour lisser la courbePour dessiner des fonctions (y compris en 3D) il y a la bibliothèque \usepackage{pgfplots}
.
Par exemple :
\begin{axis}
\addplot3[surf,domain=0:360] {cos(x)*cos(y)};
\end{axis}
Pour des opérations à répétition, il y a la commande très performante \foreach
.
Par exemple :
\foreach[evaluate={\f=\p/\q;\r=1/(2*\q^2)}]
\p/\q in {0/1,1/1,1/2,2/1,3/2,1/3}{
\draw (\f,\r) circle(\r) node[scale=2*\r]{$\frac{\p}{\q}$};
}