Existe-t-il une méthode pour traduire un graphique TikZ en Scalable Vector Graphics, autrement dit Posée 26 Nov '15, 10:13 Pathe ♦♦ |
Il existe un convertisseur de DVI en SVG. Il s'appelle
Le code: Ouvrir dans l'éditeur
\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{calc,intersections,through,backgrounds,fit} \usepackage{lmodern} \usepackage[T1]{fontenc} \begin{document} \begin{tikzpicture}[thick,help lines/.style={thin,draw=black!50}] \def\A{\textcolor{input}{$A$}} \def\B{\textcolor{input}{$B$}} \def\C{\textcolor{output}{$C$}} \def\D{$D$} \def\E{$E$} \colorlet{input}{blue!80!black} \colorlet{output}{red!70!black} \colorlet{triangle}{orange} \coordinate [label=left:\A] (A) at ($ (0,0) + .1*(rand,rand) $); \coordinate [label=right:\B] (B) at ($ (1.25,0.25) + .1*(rand,rand) $); \draw [input] (A) -- (B); \node [name path=D,help lines,draw,label=left:\D] (D) at (A) [circle through=(B)] {}; \node [name path=E,help lines,draw,label=right:\E] (E) at (B) [circle through=(A)] {}; \path [name intersections={of=D and E,by={[label=above:\C]C}}]; \draw [output] (A) -- (C) -- (B); \foreach \point in {A,B,C} \fill [black,opacity=.5] (\point) circle (2pt); \begin{pgfonlayer}{background} \fill[triangle!80] (A) -- (C) -- (B) -- cycle; \end{pgfonlayer} \node[fit=(current bounding box),inner sep=1mm,draw=lime]{}; \end{tikzpicture} \end{document} Et voici le résultat (converti en PNG par Malheureusement, cette méthode souffre de plusieurs défauts. En particulier concernant l'encodage des textes. Tant que les textes utilisent les caractères de base, tout se passe presque bien (sauf le calcul de la La documentation de TikZ/PGF suggère d'utiliser le driver Publiée 12 Déc '15, 13:28 Paul Gaborit |
Sous linux, j'utilise l'outil Sinon, il y a l'option Ouvrir dans l'éditeur
\documentclass[tikz,convert={outext=.svg,command=\unexpanded{pdf2svg \infile\space\outfile}},multi=false]{standalone} \begin{document} \begin{tikzpicture}% Example: \draw (0,0) -- (10,10); % ... \draw (10,0) -- (0,10); % ... \node at (5,5) {Coucou}; \end{tikzpicture} \end{document} Publiée 26 Nov '15, 10:35 Maxime ♦ Oui, mais passer par un fichier Car si l'on présente un graphique de 5 X 5 cm au centre d'une feuille A4 vide, le
(26 Nov '15, 10:58)
Pathe ♦♦
1
C'est l'avantage d'utiliser la classe Par ailleurs, sur le doc suivant Ouvrir dans l'éditeur
\documentclass{article} \begin{document} \thispagestyle{empty} \begin{tikzpicture}% Example: \draw (0,0) -- (10,10); % ... \draw (10,0) -- (0,10); % ... \node at (5,5) {Coucou}; \end{tikzpicture} \end{document} on peut passer par la chaîne : Ouvrir dans l'éditeur pdflatex mondoc.tex pdfcrop mondoc.pdf pdf2svg mondoc-crop.pdf mondoc.svg
(26 Nov '15, 11:42)
Maxime ♦
Le problème est que la chaîne « Coucou » ne figure pas dans le document Comment faire pour retrouver dans les fichiers
(27 Nov '15, 11:44)
Pathe ♦♦
C'est étrange, parce que moi j'ai le «Coucou»... Avec quoi a été produit le fichier svg ?
(27 Nov '15, 11:50)
Maxime ♦
C'est étrange en effet. J'ai produit le J'ai même déplacé le « Coucou » vers le bas pour qu'il n'interfère pas avec les lignes diagonales, et le résultat est le même.
(27 Nov '15, 11:52)
Pathe ♦♦
Juste un truc : dans ton code il manque
(27 Nov '15, 11:54)
Pathe ♦♦
Ah okay ! Le texte est transformé en chemin malheureusement... Troll : MetaPost lui sait faire :)
(27 Nov '15, 11:58)
Maxime ♦
Ah okay ! Le texte est transformé en «chemin» malheureusement... Troll : MetaPost lui sait faire !
(27 Nov '15, 11:59)
Maxime ♦
Non il ne manque pas Très bizarre, peut-être une fausse manip de ma part, mais en supprimant un commentaire en double, ça a supprimé mon premier commentaire avec la chaîne de production, je ne sais pas comment le retrouver...
(27 Nov '15, 12:03)
Maxime ♦
Affichage de 5 parmi 9
Afficher 4 commentaire(s) en plus
|
La bonne méthode passerait par l'appel à
dvisvgm
... mais il y a quelques bugs lors de la compilation.