La gestion des figures est un peu particulière. Les points
suivants décrivent la manière et les trucs pratiques à connaître
pour rendre un document graphiquement agréable.
Sous LATEX 2e, il faut utiliser l'un des packages :
'graphics' ou 'graphicx' et la commande \includegraphics.
Cette commande accepte des options telles que dvips ou oztex (cf.
documentation pour plus de détails). Le package 'graphicx' a pour
majeure différence avec 'graphics' d'en simplifier les commandes.
Ces packages sont disponibles sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/required/graphics/.
Pour plus de détails, consulter http://tex.loria.fr/packages.html.
Exemple :
\begin{figure}[htbp] \begin{center} \includegraphics{images/fig1.ps} \end{center} \caption{\footnotesize blah blah blah} \end{figure} %%%% fin exemple %%%%
La commande \includegraphics du package 'graphicx'
peut prendre comme paramètres, angle, width, height, scale, clip et
draft.
Exemple :
\includegraphics[width=\linewidth, draft=true]{figure.eps} %%%% fin exemple %%%%
Sous LATEX2.09, pour pouvoir appeler un fichier postscript, il
suffit de mettre l'option epsf dans le \documentstyle.
La figure peut ensuite être appelée par la commande :
\epsfbox{nom-figure.(e)ps}
Une jolie façon d'inclure une figure dans un source LATEX2.09 est
d'utiliser la macro :
\begin{figure}[p] \centerline{\epsfig{file=nom_figure.eps, width=largeur, height=hauteur}} \caption{Titre.} \label{nom_label} \end{figure} %%%% fin exemple %%%%
Une figure au format tex picture, tex picture + epic, tex picture
+ eepic, ... peut être appelée directement par une commande \input.
En outre, si vous utilisez un format epic ou eepic, il faut penser
à rajouter 'epic' ou 'eepic' à la ligne documentstyle ou d'inclure
les packages 'epic' ou 'eepic'.
8.2 Comment nommer une figure ?
C'est la commande \caption qui permet de faire cela.
Par défaut le titre de la figure apparaîtra en dessous. Cf exemples
ci-dessus. Pour que le titre apparaisse au dessus, il faut redéfinir
les longueurs suivantes.
\begin{figure} \includegraphics[width=5cm]{fig1.eps}\hfill \includegraphics[width=5cm]{fig2.eps} \caption{Titre commun}\label{fig:somefiglabel} \end{figure} %%%% fin exemple %%%%
Une autre solution consiste à mettre chaque figure dans une case d'un
tableau.
Exemple (avec le package graphics ou graphicx) :
\begin{tabular}{cc} \includegraphics{figure1.eps} & \includegraphics{figure2.eps} \\ \end{tabular} %%%% fin exemple %%%%
LATEX2.09. Pour mettre des figures côte à côte, il suffit d'encapsuler
leur appel dans des minipages.
Exemples :
avec le package 'epsf'
\begin{minipage}[t]{.46\linewidth} \center\epsfxsize= 5cm \epsfbox{fig1.eps} \end{minipage} % ne pas sauter de ligne \begin{minipage}[t]{.46\linewidth} \center\epsfxsize= 5cm \epsfbox{fig2.eps} \end{minipage}
ou si l'on veut attacher des titres aux figures :
avec le package 'epsfig'
\begin{figure} \begin{minipage}[b]{.46\linewidth} \centering\epsfig{figure=fig1.ps,width=\linewidth} \caption{premiere figure \label{fig1}} \end{minipage} \hfill \begin{minipage}[b]{.46\linewidth} \centering\epsfig{figure=fig2.ps,width=\linewidth} \caption{deuxieme figure \label{fig2}} \end{minipage} \end{figure} %%%% fin exemple %%%%
\begin{figure}[ht] \begin{center} \subfigure[I]{\epsfig{figure=st1.ps,width=6.58cm}}\quad \subfigure[II]{\epsfig{figure=st2.ps,width=5.0cm}}\\ \subfigure[III]{\epsfig{figure=st3.ps,width=5.0cm}} \end{center} \caption{Impermeable surface treatments} \label{fig:inf} \end{figure} %%%% fin exemple %%%%
Une autre possibilité pour obtenir un titre par figure est d'utiliser
le package 'epslatex' disponible sur ftp://ftp.fdn.org/pub/CTAN/info/.
8.4 Comment modifier le nombre de figures par page ?
En fait, on ne peut agir que globalement sur le nombre de flottants
autorisé par page. Il n'y a pas de sélection figure/tables/....
Il arrive fréquemment que lorsqu'un flottant dépasse 60% d'une page,
LATEX préfère changer de page plutôt que d'utiliser les 40% de
l'espace restant.
La commande \floatpagefraction permet de redéfinir
l'espace minimum que peuvent occuper des flottants. Cela permet de
limiter le "blanc" sur une page contenant des flottants.
Exemple :
\renewcommand{\floatpagefraction}{.9} utilisée avec la commande : \renewcommand{\textfraction}{.1} permet de dire que le texte peut n'occuper que 10% d'une page, et donc que des flottants peuvent occuper les 90% restant. %%%% fin exemple %%%%
Il y a d'autres paramètres intéressants :
\setcounter{totalnumber}{4}
qui détermine le nombre de flottants autorisés par page,
\renewcommand{\topfraction}{.8}
et
\renewcommand{\bottomfraction}{.8}
qui indiquent la fraction maximum du haut ou du bas de la page que
peuvent occuper des flottants.
Remarque :
Il est recommandé de ne jamais mettre 100% comme paramètre.
On peut également générer une courbe dans un fichier .eps, qui peux
ensuite être inclu dans un environnement "picture",
dans lequel il est ensuite possible d'ajouter du texte avec des \put.
Cela demande pas mal de mises au point.
Exemple :
\setlength\unitlength{1cm} \begin{picture}(10,10) \put(0,0){\includegraphics{mondessin.eps}} \put(10,10){Mon commentaire \LaTeX{} avec des $maths$} \end{picture} %%%% fin exemple %%%%
Cette technique permet de conserver la puissance de LATEX et d'avoir
une typographie homogène mais elle a l'inconvenient d'être assez lourde.
PSTricks est un ensemble de macros TeX, disponible sur ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/,
qui permet également de faire cela. Il nécessite un gros investissement
(il y a une centaine de pages de documentation). Cependant, si l'on
se limite à des commandes simples (comme par exemple écrire un programme
en C qui trace le dessin, avec simplement des points, des droites,
et un peu de texte), la liste sommaire des commandes suffit (6 pages).
Xfig offre une autre solution. Après avoir inclu un fichier postscript
généré par un autre programme, on peut rajouter du texte ou des commandes
LATEX dessus. xfig -sp Sauvegarder comme "combined PS/LATEX"
Metapost est un langage graphique très proche de Metafont, mais qui
génère du postscript. Il permet de produire des figures avec du texte
et est bien interfacé avec TeX (Knuth l'utilise). Metapost est
integré dans web2c 7.0. Metapost a déjà été porté sous MS-DOS et Mac
(CMacTeX). Pour plus d'informations, vous pouvez consulter la page
de D. Roegel : http://www.loria.fr/ roegel/metapost.html.
pstoedit permet également de visualiser des fichiers postscript (sans
bitmaps) et d'ajouter du texte ou des figures par dessus.
8.6 Comment réaliser des captures d'écran ?
Un outil très utile pour effectuer des captures d'écran sous Unix
est xv. xv est un éditeur d'images écrit par J. Bradley disponible
sous unix. xv est capable de gérer différents formats d'image (encodage
PS, GIF, JPEG, TIFF,...). Il permet de visualiser des images et aussi
de réaliser des captures d'écran, soit partielles définies à la souris,
soit par fenêtre X Window. Il suffit ensuite de sauvegarder la saisie
d'écran de xv en format postscript et de l'appeler sous LATEX.
Sur PC il y a pcxdump disponible sur http://micros.hensa.ac.uk/.
Le package 'verbtext', disponible sur CTAN, permet ensuite d'appeler
la saisie réalisée.
De même, le package 'scrdumps' et l'utilitaire scr2tex.exe sous DOS
permettent d'inclure des saisies d'écran dans un document LATEX.
GNUplot est disponible sous Unix, sous Dos, sous Windows et sous macOS
(http://www.ee.gatech.edu/users/schooley/gnuplot.html). Il possède
une sortie LATEX (eepic). Il permet de tracer des courbes (2D et
3D) à partir de valeurs ou d'une fonction. Les formats de sortie sont
LATEX ou postscript.
En outre, sous Unix, il est possible de récupérer des fichiers GNUplot
exportés par
Xy-pic compatible plain TeX, LATEX2.09 et LATEX 2e permet de
tracer des courbes, de réaliser des diagrammes commutatifs, des automates,
et plein d'autres choses. Pour plus de renseignements, consulter :
Sur PC grapher et surfer permettent également de tracer des courbes
et des surfaces (ils sont indépendants de LATEX, mais une saisie
d'écran est toujours possible).
Mathematica est également utilisable pour tracer des courbes 2D et
3D.
8.8 Comment est géré le positionnement des figures ?
Comme mentionné précédemment (??), il existe différentes options
de placement des figures. Les plus classiques sont
\begin{figure}[htbp]
pour laisser à LATEX la possibilité de placer les figures suivant
ses critères de beauté. (h) impose si possible le placement de la
figure à l'appel de la macro ci-dessus. Sinon la figure sera placée
en haut de la page suivante (t) ou en bas (b), voire sur une page
seule (p).
En revanche, pour forcer (dans la mesure du possible) LATEX à placer
une figure là où elle a été appelée, il faut utiliser le package 'float',
de A. Lingnau, (\usepackage{float}) et l'option H
(\begin{figure}[H]). Ce package permet de définir
un tel placement par défaut via la commande \floatplacement{figure}{H}.
Il est disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/float/.
Voir la question ?? pour un exemple d'utilisation de ce package.
De même l'utilisation du caractère ! devant une option de placement
permet de forcer LATEX 2e à effectuer son placement au plus tôt (suivant
l'option choisie).
Remarque (D.Barbier) :
si un flottant ne peut pas être placé avec
les paramètres indiqués , celui-ci et tous les flottants qui viennent
après seront mis à la fin du chapitre (en fait, ils seront insérés
grâce à la commande \clearpage).
Le package 'placeins' de D. Arsenau permet de mettre des garde-fous
dans le texte. Par exemple, lorsqu'on place une figure en dur avec
une commande du style :
l'utilisation de \FloatBarrier juste avant, permet
de vider le buffer de flottants actuellement stockés.
8.9 Comment placer une légende à côté d'une figure ?
Pour placer une légende à côté d'une figure, il faut utiliser l'environnement
minipage.
Exemple (extrait du cahier GUTenberg 22 pour l'article sur esperluette) :
mettre dans le préambule :
%%%% debut macro %%%% \newlength\jataille \newcommand{\figgauche}[3]% {\jataille=\textwidth\advance\jataille by -#1 \advance\jataille by -.5cm \begin{minipage}[c]{#1} \includegraphics[width=#1]{#2} \end{minipage}\hfill \begin{minipage}[c]{\jataille} \footnotesize #3 \normalsize \end{minipage}} %%%% fin macro %%%%
puis utiliser :
\figgauche{5cm}{totor.eps}{Titre.}
On peut également utiliser des parbox.
Exemple :
\begin{figure} \parbox{7cm}{...figure}\parbox{7cm}{\caption{---}} \end{figure} %%%% fin exemple %%%%
8.10 Comment insérer des figures dans multicol ?
On ne peut insérer que des figures de la largeur de la page, et pas
de la lageur d'une colonne, donc des figure* (resp. table*). Un
flottant n'apparaîtra pas sur la page où il est défini, mais, au mieux,
sur la page d'après. Le positionnement [h] n'a donc pas de sens.
Exemple (avec le package 'graphicx') :
\begin{figure*} \includegraphics[width=3cm]{totor.eps} \end{figure*} %%%% fin exemple %%%%
Remarque :
dans ce cas la gestion de \caption semble
ne pas être correcte.
8.11 Comment faire apparaître toutes les figures en fin de document ?
les classes AMS ne définissent pas les environnements
figure* et table*. En outre, le package 'endfloat' a le mauvais
goût de supposer qu'ils sont définis. Un remède est de faire :
Sous Unix ou sous DOS, il faut, à partir de Mathematica, demander
: Display["machin",truc] qui sauve l'image truc
dans le fichier machin dans un Postscript embryonnaire, puis !psfix
-epsf machin > machin.eps et on a un fichier EPS comme il faut.
Sous Windows, après avoir sélectionné l'image désirée, il faut, dans
le menu "Fichier" de Mathematica, "Exporter"
vers un format qui peut être .EPS (PostScript Encapsulé). L'appel
de ce fichier .eps sous LATEX se fait alors de manière classique
(cf. paragraphe ??).
Il est également possible d'extraire par copier/coller l'image (.WMF)
et de l'envoyer vers Ghostscript pour Windows, et là-dedans de l'enregistrer
dans un fichier postscript. L'avantage de cette solution est qu'elle
peut permettre de retravailler l'image (avant collage dans GS au moyen
de CorelDraw, par exemple).
A noter que Y&Y TeX system supporte les images WMF (Windows MetaFile)
aussi bien que les TIFF ou EPSF. Mathematica est l'un des seuls logiciels
pour Windows qui utilise un format WMF plutôt que TIFF.
Dernière solution (multi-système) : se servir du notebook intitulé
"GnuDisplay.m"(disponible sur MathSource chez Wolfram).
Celui-ci permet d'exporter une image Mathematica en image GNUplot.
Dans GNUplot, on peut alors exporter une image de deux façons :
vers un fichier ".mf" qui contient l'image sous
forme de fonte. Avantage : on utilise MetaFont pour générer la fonte
qui contiendra l'image et l'insérer dans le texte, ce qui permet sa
prévisualisation immédiate par "dviscr", sans passer
par "dvips" puis GhostScript ou GhostView ;
vers un fichier au format LATEX eepic, que l'on insère facilement
par la suite (commande \special).
8.13 Comment modifier la taille d'une bounding box ?
En format eps (encapsulated postscript), la `bounding box` permet
de préciser la taille d'une image. La syntaxe est la suivante :
%%BoundingBox: 0 0 507 257
Les coordonnées correspondent dans l'ordre :
coordonnée horizontale du point en bas à gauche de la figure;
coordonnée verticale du point en bas à gauche;
coordonnée horizontale du point en haut à droite;
coordonnée verticale du point en haut à droite.
Les coordonnées verticales étant prises à partir du bas, et celles
horizontales à partir de la gauche.
De plus ces coordonnées sont exprimées en points PostScript, c'est
à dire en soixante-douzième de pouce, i.e.:
1 pt PS = 1/72 pouce = 2.54/72 cm.
Malheureusement, il arrive parfois que la taille de la bounding box
soit supérieure à celle de la taille réelle du dessin qu'elle contient
(il n'y a pas de mise à l'échelle). Le package 'boxedepsf', de L.
Siebenmann, offre les commandes \Trim qui permettent
de résoudre le probleme.
Pour agir sur les espaces horizontaux de part et d'autre de la légende
d'un flottant, on peut utiliser caption2.sty, et définir la longueur
\captionmargin qui sera insérée à gauche et à droite
de la légende.
8.16 Comment numéroter les figures en fonction des sections ?
On peut déjà remarquer que la numérotation se fait automatiquement
en fonction des chapitres lorsque l'on utilise la classe de document
'book'. Par contre, ce n'est pas le cas lorsque l'on utilise
la classe 'article'. Ainsi, pour obtenir des figures numérotées
1.1, 1.2, 1.3, ... dans la section 1, 2.1, 2.2, 2.3, ... dans la section
2, etc..., il suffit de redéfinir la commande \thefigure
et de remettre le compteur de figures à zéro lorsque l'on change de
section :
: pour renuméroter les sous-figures de la même manière (avec
le package 'subfigure'), il suffit de rajouter la ligne \let\p@subfigure\thefigure
dans le préambule.
8.17 Comment fondre une image dans du texte ?
Le package 'floatfig', de T. Kneser, disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/floatfig/,
permet d'entourer une figure de texte de manière très efficace grâce
à l'environnement floatingfigure. Ce package a été conçu pour LATEX2.09,
pour des documents sans colonnes.
Exemple :
\begin{floatingfigure}[l]{4cm} \includegraphics[width=4cm]{dessin} \caption{Titre} \end{floatingfigure} %%%% fin exemple %%%%
Remarque :
le [l] du \begin{float...} sert
à mettre la figure à gauche. [r] permet de l'avoir à droite, [p]
la met à gauche sur une page de gauche et à droite sur une page de
droite.
Le package 'floatflt', de T. Kneser et M. Dahlgren, disponible sur
ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/floatflt/,
a été écrit pour LATEX 2e. Il étend les possibilités de floatfig
par de nombreuses options et est utilisable pour les figures et les
tableaux.
Exemple :
\begin{floatingfigure}[options]{width of figure} figure contents \end{floatingfigure} %%%% fin exemple %%%%
\parpic(width,height)(x-off,y-off)[Options][Position]{Picture} Paragraph text.... %%%% fin exemple %%%%
Le package 'wrapfig' permet de définir la hauteur de la figure, celle-ci
ci peut apparaître à droite ou à gauche dans le texte ou encore dans
une marge. Ce package n'est pas compatible avec les environnements
de liste.
Exemple :
\begin{wrapfigure}[height in lines]{l|r}[overhang]{width} {figure, caption etc.} \end{wrapfigure} %%%% fin exemple %%%%
Le package 'flow' met obligatoirement la figure dans une boîte avec
un cadre et ne permet pas de définir de caption.
Exemple :
\flow[L|R]{paragraph text}{figure box} %%%% fin exemple %%%%
Le package 'window' de E. Schaluck, permet également d'intégrer une
figure dans un paragraphe mais il n'est plus maintenu. Il a été écrit
pour LATEX2.09 mais il est compatible LATEX 2e.
Exemple :
\windowbox[toplines][inwindow: contents][ratio: l r] ... paragraph text ... \par %%%% fin exemple %%%%
Voici les résultats d'un test comparatif effectué par P. van Oostrum
:
A
B
C
D
E
F
G
H
I
J
K
picinipar
+
+
+
+
+
+
wrapfig
+
+
+
+
+
H
-
+
flow
-
-
+
+
floatfig
+
-
-
+
+
-
floatflt
+
+
+
+
+
-
+
window
-
-
+
+
+
+
picins
+
-
+
+
+
+
Table 8.1: Résultat du test comparatif
avec :
A:
figure captions/counting/list of figures
B:
table captions/counting/list of tables
C:
Left/right possible (+ = both)
D:
Alternating left/right for twosided docs
E:
can be placed in the middle of text with twosided flowing
F:
possible to start after the beginning of paragraph
G:
can (more or less) float in the text
H:
auto detection of size of figure (H=height only)
I:
works with list environments
J:
works with twocolumn
K:
works with multicol
Les meilleurs packages semblent être : picins, floatflt et wrapfig.
\count2=\wd2 %c'est la largeur du dessin. %\showthe\count2 \multiply\count2 by-1 \advance\count2 by\hsize %count2 vaut le reste de la page \advance\count2 by-2000000 %c'est pour la marge droite \count1=\count2 \advance\count2 by-2000000 %c'est pour la marge du milieu \setbox1=\hbox to\count1sp{ %c'est le texte \vbox{\hsize=\count2sp %c'est la largeur #1 }\hfill} \count1=\ht1 %c'est la hauteur \advance\count1 \dp1
\count2=\ht2 \advance\count0 \dp2
\ifnum\count2<\count1 \count2=\count1 \fi %c'est la + grde des 2 hauteurs \vtop to \count2sp {\vfill \box1 \vfill} \vtop to \count2sp {\vfill \box2 \vfill} }} %%%% fin macro %%%%
Il existe plusieurs contributions (toutes assez anciennes), disponibles
sur CTAN, dédiées spécifiquement à la réalisation de différents types
d'organigrammes :
A priori, le dernier est le plus évolué et est basé sur un pré-processeur
écrit en langage C, ce qui fait qu'il offre une interface souple et
puissante.
8.20 Comment centrer une figure très large ?
Le package 'bigcenter' ci-dessous permet de centrer des figures très
larges sans message d'erreur de type overful.
%%%% debut macro %%%% %%% ----------debut de bigcenter.sty--------------
%%% nouvel environnement bigcenter %%% pour centrer sur toute la page (sans overfull)
\newskip\@bigflushglue \@bigflushglue = -100pt plus 1fil
%%% ----------fin de bigcenter.sty-------------- %%%% fin macro %%%%
8.21 Comment passer de ps à eps ?
S. Heiden :
Pour faire ce travail de transformation il faut interpréter
TOUT le code PostScript d'un fichier PS (être une imprimante PS en
gros), identifier la boîte englobante de ce qui est composé sur UNE
page et insérer vers le début ou la fin du fichier PS original la
fameuse ligne de la forme :
%%BoundingBox: 72 246 522 597
qui renseigne les macros graphics, donc dvips, donc l'imprimante sur
cette fenêtre de clipping.
Syntaxe :
%%BoundingBox: llx lly urx ury
Qui sont deux points (lower left)(x,y) et (upper right)(x,y) définissant
la fenêtre. Si on n'est pas, soi-meme, une imprimante PostScript on
peut faire interpréter le code PS original par une imprimante qui
produira une page. On peut alors mesurer la boîte englobante et la
position de la figure dans la page (la portion de toner qui nous intéresse)
et composer la ligne %%BoundingBox en s'exprimant en points d'1/72
de pouces et sachant que le système de coordonnées est :
en bas à gauche de la page ;
vers la droite et vers le haut ;
légèrement décalé vers le centre.
En effet, une imprimante n'imprime jamais sur le bord réel d'une page.
Il y a une fenêtre de clipping systématique matérielle plus petite
que la page A4 et centrée. L'origine du système correspond au coin
de la feuille ; le décalage du système de coordonnées arrive surtout
sur les coordonnées Y qui dépendent de l'avancement du papier contrairement
aux X, calés par les bords (qui n'a pas connu de vieille imprimante
LaserWriter pouvant louper de 5 cm le bord inférieur d'une feuille
A4 ?-).
Si on fait calculer et imprimer la bbox par l'imprimante (par le code
de bbfig par ex.), ce problème ne se pose plus. Sans parler de ps2epsi
qui est la meilleure solution mais alors il faut distinguer l'environnement
de chaque système d'exploitation (Unix, Mac, PC) et les outils correspondants.
Remarque :
Si on a plus d'une figure, que l'on s'intéresse à la
forêt amazonnienne où que l'on est un peu riche, on peut acheter Adobe
Distiller ou autre pour faire ce genre de travail. Par ailleurs Ghostview
peut jouer le rôle de l'imprimante si l'écran est correctement calibré
(à vérifier avec xdpyinfo et une règle...). En gros il faut un outil
qui sait composer du PostScript. Après, tout dépend de ce qu'il propose.
Suggestions :
utiliser l'option "draft" pour que TeX visualise
les boîtes englobantes des figures (calculées à partir de %%BoundingBox).
générer du EPSF natif à partir de l'outil de dessin plutôt que de
passer par PS->EPSF.
Le document "Using EPS graphics in latex2e documents"
de K. Reckdahl répond également à cette question cf section ??
Converting PS files to EPS.
ps2epsi, qui est livré avec GhostScript permet de convertir du postscript
en postscript encapsulé.
\rotatebox{90}{ \includegraphics{dessin1.eps} } %%%% fin exemple %%%%
La commande \includegraphics du package 'graphicx'
peut prendre comme paramètre un angle de rotation.
Exemple :
\begin{figure} \centering \includegraphics[angle=90,width=\textwidth]{dessin.eps} \end{figure} %%%% fin exemple %%%%
8.23 Comment gérer des sous-figures sur plusieurs pages ?
Un seul environnement figure ne peut pas s'étendre sur plusieurs pages,
il faut donc gérer le problème à la main en instanciant les numéros
"à la main".
8.24 Comment générer une liste des figures d'un document ?
Il existe pour cela la commande \listoffigures. Elle
collecte tous les numéros de figures ainsi que leur titre et le numéro
de la page ou elles apparaissent.
Remarque :
une bonne mise à jour de cette liste nécessite au moins
deux compilations successives.
8.25 Comment faire une figure sous LATEX ?
On distingue deux techniques majeures :
soit on utilise un logiciel de dessin et on inclut une figure sous
un format défini (en général postscript ou encapsulated postscript).
Pour une liste de logiciels, voir la question ??.
on utilise les commandes LATEX disponibles. L'environnement picture
permet ainsi de composer des figures comprenant du texte, des segments
de droites, des cercles et des figures géométriques.
Les commandes LATEX les plus courantes pour le dessin sont :
\put(x, y){objet}
multiput
\line(x,y){longueur}
\vector
\shortstack
\circle
\circle*
Exemple :
\begin{picture}(largeur, hauteur) \put(0,0){\line(1,0){3}} \put(0,3){\line(1,1){4}} \end{picture} %%%% fin exemple %%%%
Le package epic définit un ensemble de commandes plus complet que
l'ensemble par défaut de LATEX. Il s'agit des commandes : \multiputlist,
\matrixput, \grid, \dottedline,
\dashline, \drawline, \jput,
\picsquare et \putfile, ainsi que des
environnements : dottedjoin, dashjoin et drawjoin.
Exemple :
\matrixput(0,0)(10,0){6}(0,10){3}{\circle{4}} \matrixput(2,0)(10,0){5}(0,10){3}{\line(1,0){6}} \matrixput(0,2)(10,0){6}(0,10){2}{\line(0,1){6}} %%%% fin exemple %%%%
PSTricks de T. Van Zandt propose un ensemble très complet de macros
TeX qui permettent de jouer avec des dessins (dessin, couleur,
rotation, superposition, ...). L'ensemble PSTricks est composé de
plusieurs packages : pstricks, pst-plot, multido, pst-node, pst-coil,
gradient, colortab, textpath, charpath et pst2eps. Une documentation
d'une centaine de page est également fournie et nécessaire.
ATTENTION :
PSTricks fait appel à des macros postscript qui ne sont
donc pas toujours visibles dans les previewer de .dvi.
Exemple :
\psellipse(.5,0)(1.5,1)
\parametricplot[plotstyle=dots,plotpoints=13]% {-6}{6}{1.2 t exp 1.2 t neg exp}
\psshadowbox{\textbf Grest!!}
\pszigzag[coilarm=.5,linearc=.1{<->}(4,0) %%%% fin exemple %%%%
8.26 Comment mettre un commentaire à côté d'une figure ?
Pour mettre un commentaire à côté d'une figure et pour que le texte
soit centré verticalement par rapport à la figure, il faut utiliser
des \parbox.
Exemple :
\begin{tabular}{lc} $M=0{,}01$ & \parbox[c]{12cm}{\includegraphics[width=12cm]{fig6a.eps}} \\ $M=0{,}1$ & \parbox[c]{12cm}{\includegraphics[width=12cm]{fig6b.eps}} % etc... \end{tabular} %%%% fin exemple %%%%