Images

Tout ce qu’il faut savoir pour l’inclusion et la création d’images dans LaTeX : E fepslatex.pdf.

Création de vos images

Il existe de nombreux programmes. Les puristes génèrent leurs dessins avec des extensions comme  pstricks, en utilisant du code LaTeX. De bonnes explications sont  disponibles ici.

Je ne saurais trop vous conseiller l’utilisation d’un programme comme  XFig pour générer vos figures. La prise-en-main n’est pas très évidente mais le résultat est très satisfaisant. Si vous pouvez vous offrir des logiciels professionnels comme  Illustrator ou  FreeHand, tant mieux pour vous :-)

Deux outils de dessin vectoriel ont attiré mon attention, il s’agit de  Skencil (Linux) et de  Inkscape (Linux + Windows). Je ne les ai pas encore vraiment testés mais ils semblent très puissants. VRR (voir plus bas) est aussi un excellent candidat.

 TeXgraph a été annoncé le 7 janvier 2005 sur le forum LaTeX en français. C’est un logiciel de dessin pour LaTeX. Il permet le tracé de courbes, d’éléments graphiques divers (droites, cercles, arcs, points), l’ajout de légendes. Le programme permet l’exportation aux formats TeX et pstricks pour inclusion dans un fichier TeX. Précisons que le logiciel est gratuit et en français.

Un internaute m’a indiqué qu’il utilisait  Ipe, un logiciel capable d’exporter les graphiques à la fois en Postscript et en PDF, le tout basé sur du code LaTeX et qui offre des possibilité d’aligner les objets sur des propriétés des figures comme l’intersection de droites ou le point de contact d’un cercle. J’en profite pour vous parler de  VRR qui a été dérivé d’Ipe et qui semble très intéressant en regard de Skencil et Inkscape cités ci-dessus.

Astuce XFig

Le problème avec des logiciels comme XFig, c’est qu’ils n’ont pas la puissance typographique de LaTeX. Considérons l’image suivante réalisée dans un programme standard :

Les étiquettes (Labels) ne sont pas très jolies, mais peut-on réellement en demander plus sans perdre du temps inutilement ? Non ! C’est pourquoi il est très pratique d’utiliser l’extension  psfrag

\begin{center}
  \setlength{\unitlength}{1in}
  \begin{picture}(3.5,1.5)
    \psfrag{f}{$\varphi$}
    \psfrag{g}{$\psi$}
    \psfrag{x}{$\scriptstyle x$}
    \psfrag{X}{$X$}
    \psfrag{Y}{$Y$}
    \psfrag{U}{${\cal O}_1$}
    \psfrag{V}{${\cal O}_2$}
    \put(-0.4,0){\includegraphics{Fig1}}
  \end{picture}
\end{center}

Un dernier point : vous remarquerez peut-être que le texte que vous remplacez n’est pas centré par rapport au texte original du fichier PostScript. Il suffit pour retrouver son alignement original d’ajouter [][] après la définition du texte à remplacer :

\psfrag{f}[][]{$\varphi$}

Graphiques scientifiques avec gnuplot

L’approche standard pour les fonctions 3D.

  • Collecte de données. Il peut s'agir de mesures directes, de résultats de tests, … Si les données sont les sorties d'un programme, vous pouvez directement les écrire au format DAT.
  • Importation sous  Gnuplot
  • Réaliser le graphique
    • gnuplot> set pm3d
      gnuplot> unset surface
      gnuplot> splot sin(x) + cos(y)
  • Exporter (PNG, LaTeX, PDF, EPS, ...)
    • gnuplot> set terminal ...
      gnuplot> replot
  • Compiler avec LaTeX

Il est également possible d’utiliser  R pour les graphiques liés aux statistiques [ exemples].

Exporter ses graphiques en EPS

Il arrive que l’on souhaite exporter une image LaTeX (créée avec différentes extensions comme XFig ou PSTricks) en format EPS pour l’inclure dans un autre document sans avoir à utiliser d’extension particulière. C’est le cas lors de publications par exemple.

Voici la marche à suivre pour l’image suivante :

\documentclass{article}
\usepackage{pst-all}
 
\begin{document}
% Remove page number
\pagestyle{empty}
 
\begin{pspicture}(-6,-6)(6,4)
  \SpecialCoor
  \pnode(0,0){O}
  \pnode(5,0){A}
  \pnode(0,3){B}
  \pnode(A|B){D}
  \pnode(3.2,0){CA}
  \pnode(0,-5.333333){CB}
  \psaxes[ticks=none,labels=none,linewidth=.2pt,linecolor=red]{->}(0,0)(-6,-6)(6,4)
  \psellipse[linewidth=1.4pt,linecolor=red](D)
  \psline[linewidth=.2pt](A)(D)(B)
  \psline[linewidth=.2pt](CB)(D)
  \psarc[linewidth=.4pt](CA){1.8}{-90}{90}
  \psarc[linewidth=.4pt](CB){8.333333}{45}{135}
  \uput[dl](O){$O$}
  \uput[dr](A){$A$}
  \uput[ul](B){$B$}
  \uput[ur](D){$D$}
\end{pspicture}
 
\end{document}

Compiler avec LaTeX :

> latex ellipse

Générer un fichier EPS au lieu d’un PostScript classique. La différence est que l’EPS contient des informations de limites de l’image (BoundingBox) :

> dvips -E -o ellipse.eps ellipse.dvi

Il reste à l’inclure dans un document classique en y ajoutant une bordure pour s’assurer que les dimensions de l’image ont été calculées correctement :

\documentclass{article}
 
\usepackage{graphics}
 
\begin{document}
  \fbox{\includegraphics{ellipse}}
\end{document}

Si les dimensions ne sont pas correctes, il suffit d’éditer le fichier EPS à la main en corrigeant les valeurs que j’ai obtenues avec mon image :

%%BoundingBox: 306 542 333 565
| | | |_distance du bas de la page au haut de la
| | | figure
| | |_distance du côté gauche de la page au côté droit
| | de la figure
| |_distance du bas de la page au bas de la figure
|_distance du côté gauche de la page au côté gauche de
la figure

Cette ligne se trouve au début du fichier EPS.

Les nombres sont des points avec 1pt = 1/72 pouces.

Pour cette image, j’ai dû corriger les valeurs pour obtenir les valeurs correctes suivantes :

%%BoundingBox: 145 380 490 670