image inkscape dans LaTeX : modifier la police

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

image inkscape dans LaTeX : modifier la police

Messagepar christianw » Lundi 03 Septembre 2018, 21:22

Bonsoir,

j'ai un document classe book dans lequel j'ai un grand nombre de figure réalisée avec inkscape. Dans ces figures, une partie est du texte. J'enregistre ces figures en PDF 1.5, avec l'option de inkscape "exclure le texte du fichier PDF et créer un fichier LaTeX"

Ensuite dans le corps du texte j'inclus la figure avec
Code: Tout sélectionner
\import{fig/}{figure.pdf_tex}

Puis je compile avec PDFLaTeX

ECM :
Code: Tout sélectionner
\documentclass[a4paper,11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage{import}
\usepackage{libertine}
\usepackage{graphicx,framed}

\begin{document}
Du blabla pour faire du texte
\begin{figure}[h]
\import{fig/}{figure.pdf_tex}
\caption{Exemple de figure inkscape}
\end{figure}
Et la fin encore du texte\dots
\end{document}


Pour cet exemple, j'ai fait dans inkscape un simple rond avec le texte "Un rond avec du texte". (je mets les fichiers en PJ dès que je le peux...edit : c'est fait)

Le fichier associé à la figure est généré par inkscape et ressemble à
Code: Tout sélectionner
\begingroup%
  \makeatletter%
  \providecommand\color[2][]{%
    \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
    \renewcommand\color[2][]{}%
  }%
  \providecommand\transparent[1]{%
    \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
    \renewcommand\transparent[1]{}%
  }%
  \providecommand\rotatebox[2]{#2}%
  \ifx\svgwidth\undefined%
    \setlength{\unitlength}{226.77165527bp}%
    \ifx\svgscale\undefined%
      \relax%
    \else%
      \setlength{\unitlength}{\unitlength * \real{\svgscale}}%
    \fi%
  \else%
    \setlength{\unitlength}{\svgwidth}%
  \fi%
  \global\let\svgwidth\undefined%
  \global\let\svgscale\undefined%
  \makeatother%
  \begin{picture}(1,0.62499996)%
    \put(0,0){\includegraphics[width=\unitlength]{figure.pdf}}%
    \put(0.23977428,0.35051769){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{Un rond avec du texte}}}%
  \end{picture}%
\endgroup%

Ça fonctionne très bien sauf pour un détail : la police utilisée par les figure est la même que pour le texte ce qui n'est pas très heureux. Je préférerai une police sans serif.

J'ai essayé d'ouvrir le fichier .pdf_tex pour le modifier en modifiant
Code: Tout sélectionner
    \put(0.23977428,0.35051769){\color[rgb]{0,0,0}\makebox(0,0)[lb]{\smash{\sffamily{Un rond avec du texte}}}}%


Ça fonctionne comme je le souhaite.

Par contre... j'ai pas loin de 100 figures, probablement le double à la fin, avec entre 1 et 10 zones de texte. Je me vois mal tout ouvrir pour modifier à la main :cry:

Est-il possible de faire un réglage unique (incantation magique dans le préambule ?) qui éviterait le bricolage de fichiers ?

Ça doit aussi pouvoir se scripter mais je suis une brêle en scripts et il faudrait pouvoir passer le script sur tous les fichiers sans accumuler de \sffamily{\sffamily{\sffamily{\sffamily{\sffamily{}}}} si je le lance plusieurs fois.

Merci de vos lumières.

Christian
Fichiers joints
ecm.zip
(3.66 Kio) Téléchargé 4 fois
christianw
Déca-utilisateur
 
Messages: 19
Inscription: Mardi 26 Septembre 2017, 21:48
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: image inkscape dans LaTeX : modifier la police

Messagepar touhami » Mardi 04 Septembre 2018, 07:35

Bonjour.
Vous pouvez essayer en ajoutant
Code: Tout sélectionner
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@import}{#1{#7}}{\sffamily#1{#7}\normalfont}{}{}
\makeatother
touhami
Méga-utilisateur
 
Messages: 407
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: image inkscape dans LaTeX : modifier la police

Messagepar touhami » Mardi 04 Septembre 2018, 08:07

touhami a écrit:Bonjour.
Vous pouvez ...

Ici j'ai supposé que la commande \import est utilisée pour le seul but (insertion des images de ce type) et pas comme remplaçant des commandes \input ou \include.
touhami
Méga-utilisateur
 
Messages: 407
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: image inkscape dans LaTeX : modifier la police

Messagepar OG » Mardi 04 Septembre 2018, 09:33

Bonjour

Redéfinir \import ou \smash (mais en sauvegardant l'orginal pour le remettre au cas où) est une solution.

Autrement
1) se lancer dans un script (Python, Bash) pour les fichiers existants
(en travaillant sur une copie, cela minimise les risques).
2) dans les futurs dessins Inkscape, ajouter la commande \sffamily

O.G.
OG
Modérateur
 
Messages: 2256
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: image inkscape dans LaTeX : modifier la police

Messagepar anonyme74170 » Mardi 04 Septembre 2018, 16:44

Bonjour,

j'ai été confronté au même problème avec a peu près autant de figures il y a deux ans. J'ai tenté de trouver quelque chose, vainement. J'ai refait les figure avec Tikz. Peut être y a-t-il tout de même une astuce qui permette facilement de se dispenser de ce travail fastidieux parmi les propositions qui précèdent.

Courage ;-)
AO
anonyme74170
Hecto-utilisateur
 
Messages: 65
Inscription: Jeudi 21 Avril 2016, 10:34
Statut actuel: Actif et salarié

Re: image inkscape dans LaTeX : modifier la police

Messagepar christianw » Mercredi 05 Septembre 2018, 08:56

Bonjour,

je vais effectivement tenter de passer par un redéfinition de \smash

Merci de votre aide.
christianw
Déca-utilisateur
 
Messages: 19
Inscription: Mardi 26 Septembre 2017, 21:48
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], DotBot [Crawler], Proximic [Spider] et 12 invités