Script : LaTeX et les graphiques gnuplot en eps-tex

Je vais commencer par expliquer les motivations du script que je vais présenter.

Gnuplot est un logiciel de tracé utilisable en ligne de commande et dispose de divers formats de sortie. L’objectif est de sortir les graphiques pour les insérer dans un document le Latex. J’ai utilisé pendant un temps le format de sortie postscript :

gnuplot> set term post color enhanced

permet d’avoir cette sortie dans gnuplot. Ensuite, je convertissais le fichier à l’aide de la commande ps2pdf puis le pdf était découpé à l’aide de pdfcrop. J’avais d’ailleurs fait un petit script afin d’automatiser cette opération. Le fichier pdf résultant était inséré sans soucis dans le document et compilé avec pdflatex.

Quel est donc le problème alors ? Le problème principal est que les chaines de caractères ne possèdent pas la police utilisé dans le document. De plus, on est obligé de ruser pour les accents à l’aide de commandes que j’oublie toujours…

Gnuplot dispose du format de sortie latex qui génère un .tex. Le soucis majeur est que ce format ne gère pas la couleur, ce qui ennuyant pour des graphiques comportant plusieurs nuages de points. Deux autres formats sont a priori intéressants : epslatex et pstricks. Ces deux formats ne peuvent être utilisés avec pdflatex. On se doit d’utiliser latex pour compiler le document ce qui ne me réjouie pas puisque l’insertion d’image au format PNG est impossible. Il faut les convertir auparavant en eps avec gimp par ex. Bref, il faut utiliser la commande latex.

Je vais me concentrer sur la sortie epslatex.

gnuplot> set term epslatex color

L’idée est de conserver le format pdf pour inclure les graphiques, format qui permet une visualisation facile par ailleurs.
Via un script shell, on va créer un fichier temporaire .tex qui va inclure le fichier eps et être compilé avec la commande latex. Le fichier de sortie étant au format dvi, on va convertir en pdf avec dvipdf puis découpé avec pdfcrop. On supprime les fichiers temporaires.

L’inconvénient de cette méthode peut rester la police dans le cas où on la modifie dans le document final, mais le problème est mineur.

En outre, dans ce script, j’ai mis en place un code multi-tâche que j’ai pu expliqué dans un billet précédent. Je n’ai fait qu’un seul essai pour le moment, avec 5 fichiers à convertir, j’ai eu une réduction du temps de 33% en dual core, sachant que seulement les 4 premiers ont été parallélisé.

Le code est disponible sous licence GNU GPL v3 à cette adresse. Script à mettre dans votre PATH. Il ne me reste plus qu’à gérer complètement mes documents avec des makefiles. :)


Vus : 549
Publié par François : 67