Navigation

Rubriques

Identification

 Utiliser psfrag avec pdflatex
Enregistrer au format PDF

latex

Le module psfrag permet de placer du code latex dans une figure en postscript encapsulé (extension .eps). Ceci permet notamment d’insérer des formules mathématiques difficiles à réaliser directement à l’aide des logiciels de dessin et ce, dans la même fonte (taille, police,...) que celle utilisée dans le reste du document.
Il suffit pour cela de placer dans la figure des balises qui seront remplacées lors de la compilation du fichier tex par le code souhaité.

PDF - 4.7 ko
figure.eps

 

PDF - 29.6 ko
figure.psfrag
PDF - 19.3 ko
figure.pdf

Pdflatex (comme pdftex) génère un fichier pdf à partir du fichier tex, malheureusement, cette commande ne supporte pas l’inclusion de figures eps et donc l’utilisation de psfrag.

Cet article propose une méthode de génération automatique et transparente de figures pdf incluant le code psfrag.

Le script perl s’occupant de la conversion est pdffrag, il utilise les commandes dvips, gs et epstopdf. Il faut y personnaliser les variables :

  • $epsfigdir : répertoire de stockage des fichiers eps et psfrag ;
  • $pdffigdir : répertoire de stockage des fichiers pdf crées ;
  • $texheader : entête des fichiers temporaires tex utilisés pour générer la figure pdf.
Il suppose qu’au fichier $epsfigdir/.../figure.eps corresponde un fichier $epsfigdir/.../figure.psfrag contenant les commandes \psfrag.

Pour obliger pdflatex à générer les figures nécessaires lors de compilation, il suffit de l’utiliser avec l’option —shell-escape et d’inclure dans les fichiers tex (par une feuille de style a priori) un paragraphe de la forme :

\RequirePackage{ifpdf}
\ifpdf%
   \let\igcommande=\includegraphics%
   \renewcommand\includegraphics[2][]{%
   \IfFileExists{#2.psfrag}{
       \immediate\write18{pdffrag -l "\the\linewidth" -t "\the\textheight" -w "\the\textwidth" -p "#1" -f "#2"}%
       \igcommande{#2}% les paramètres doivent être éliminés
   }{\igcommande[#1]{#2}}}% pas de modification
\fi

Je n’utilise que la commande includegraphics pour l’insertion d’images. Mais cette partie de code peut être adaptée à toute autre commande.


pdffrag

Script perl de conversion d’image

Dernière modification le lundi 3 novembre 2008Ajouter un commentaire