Inkscape : de l’art subtil de l’exportation pour LaTeX

Que ce soit par flemme de se lancer dans TikZ ou dans pstrick, ou parce qu’on estime une figure trop difficile à coder dans ces deux langages, la solution Inkscape reste aussi noble qu’efficace pour le dessin vectoriel. Je vais donc donner ici une façon très simple et très robuste d’assurer une importation propre sous $latex \LaTeX$.

Quel format de fichier pour les figures ?

Tout dépend du compilateur que vous souhaitez utiliser. Avec latex, c’est naturellement le format PostScript qui sera à privilégier ; avec pdflatex, c’est le pdf.

Respect des fontes LaTeX

Pour avoir une intégration au poil de vos figures dans un document $latex \LaTeX$, il faut que les fontes utilisées dans ces figures soient identiques à celles du corps de texte. Si vous compilez sous latex, le package psfrag sera alors votre ami.
Si vous utilisez pdflatex, alors Inkscape pense à vous avec une option très intéressante, et qui justifie enfin la rédaction de ce billet.

Exportation en PDF avec prise en charge LaTeX

Cette option s’affiche lors de l’enregistrement d’un fichier au format PDF. Le principe est de ne pas enregistrer le texte dans le pdf, mais dans un fichier $latex \LaTeX$ annexe. Lors de l’exportation, vous aurez donc deux fichiers :

  1. MaFigure.pdf
  2. MaFigure.pdf_tex

Pour inclure la figure, on utilise donc le script $latex \LaTeX$ « MaFigure.pdf_tex », qui se chargera d’importer le pdf et d’y ajouter le texte.

Exemple

Voici ci-après un exemple de ce que l’on voudrait obtenir dans le document compilé :

Vous conviendrez que dessiner ça sous TikZ, c'est se faire mal ?
Vous conviendrez que dessiner ça sous TikZ, c’est se faire mal…

Utilisation

Dans le dessin, on écrit ce que l’on veut, comme si on rédigeait sous $latex \LaTeX$. On peut donc très facilement écrire des équations, ou même passer des commandes $latex \LaTeX$ (\eqref, \cite, etc…). Peu importe la police utilisée dans le svg, elle ne sera enregistrée ni dans PDF ni dans le fichier $latex \LaTeX$.

Dessin sous Inkscape avant exportation
Dessin sous Inkscape avant exportation

Ensuite, lors de l’exportation PDF, il faut juste penser à cocher l’option ad hoc :

Option "PDF+LaTeX" cochée

Enfin, du côté de votre source .tex (dans le document où vous voulez importer la figure), il faut remplacer l’habituel :

\includegraphics{MaFigure.pdf}

par :

\input{MaFigure.pdf_tex}

Compilez, c’est gagné !

Changer la taille de la figure

Par défaut, la figure sera à l’échelle 1. Il est possible de définir la largeur de la figure via la commande \svgwidth avant d’invoquer le script. Exemple si on veut que la figure remplisse 50 % de la largeur la page :

\def\svgwidth{0.5\textwidth}
\input{MaFigure.pdf_tex}

Changer le texte de la figure

Encore une fois, rien de plus simple : il suffit d’éditer le script. En bas de celui-ci apparaît en clair le texte à afficher. Pratique pour corriger rapidement ou traduire vos figures !

Pour aller plus loin

C’est vraiment possible ? ;-)
Si oui, ce sera ici.

Si à l’avenir vous avez un trou de mémoire, et que vous avez peur ne pas retrouver le magnifique billet que vous êtes en train de lire, sachez que tout ce que je vous raconte ici est résumé dans le fichier .pdf_tex, en commentaire…

 

Bonne compilation !