- Questo topic ha 2 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 16 anni, 2 mesi fa da .
-
Topic
-
Ciao a tutti,
un aggiornamento sulla produzione di illustrazioni contenenti annotazioni.
Forse alcuni sapranno che a partire da Inkscape 0.47 la funzionalità di esportazione in formato EPS non permette più di post-processare le immagini con LaTeX+PSfrag. Per i più pazienti, la storia di questo inconveniente (baco?), dovuto ad alcune caratteristiche della libreria grafica Cairo, è ripercorribile qui:
https://bugs.launchpad.net/inkscape/+bug/375323.
Ciò rende obsolete alcune tecniche illustrate nel mio articolo:
A. De Marco: “Gestione avanzata delle figure in LaTeX” apparso su ArsTeXnica n.6, http://www.guit.sssup.it/arstexnica/download_ars/arstexnica06.pdf, a meno che non si usi Inkscape v.0.46.La recente versione 0.48 (ancora in fase pre-release, ma funzionante) permette di esportare un’immagine disegno1.svg in formato PDF e al tempo stesso offre all’utente la possibilità di creare un file accessorio disegno1.tex (opzione di spunta “PDF+LaTeX” che compare nella finestra di dialogo di salvataggio).
Se il disegno contiene caselle di testo, sarà possibile farne interpretare il contenuto a pdfLaTeX. Questa funzionalità è spiegata qui:
http://wiki.inkscape.org/wiki/images/SVG_in_LaTeX.pdfHo messo online il seguente file d’esempio in formato SVG:
http://wpage.unina.it/agodemar/temp/disegno1.svg
Dal menu File->Salva copia con nome scegliere di salvare come disegno1.pdf. Viene prodotto sia il file:
http://wpage.unina.it/agodemar/temp/disegno1.pdf
che il file:
http://wpage.unina.it/agodemar/temp/disegno1.tex
Sarà possibile generare l’immagine annotata con il sorgente qui sotto, che potremmo chiamare main.tex:
`
\documentclass{article}
\usepackage[latin1]{inputenc}
%\usepackage[italian]{babel}
\usepackage{lmodern}
\usepackage{amsmath}\usepackage{graphicx,color,relsize,calc}
% —————————————————————-
% automatic export from Inkscape
%
% f:/Programmi/inkscape-48_Pre/inkscape.exe
% is the current path to Inkscape 0.48
%
% 0. Just update the .svg file from Inkscape
% 1. option -enable-write18 must be passed to pdflatex
% 2. needs two compilations to see the results
%
\newcommand{\executeiffilenewer}[3]{%
\ifnum\pdfstrcmp{\pdffilemoddate{#1}}%
{\pdffilemoddate{#2}}>0%
{\immediate\write18{#3}}\fi%
}
\newcommand{\includesvg}[1]{%
\executeiffilenewer{#1.svg}{#1.pdf}%
{f:/Programmi/inkscape-48_Pre/inkscape.exe -z -D –file=#1.svg %
–export-pdf=#1.pdf –export-latex}%
\input{#1.tex}%
}
%
% —————————————————————-
\oddsidemargin -10mm
\evensidemargin -10mm
\topmargin 5mm
\headheight 0cm
\headsep 0cm
\textheight 247mm
\textwidth 180mm % 160mm
\hoffset -1cm %-1.5cm
\voffset -3cm %-3.4cm
%—————————————————————
\begin{document}
\pagestyle{empty}
%\begin{landscape}
\vspace*{\fill}
%—————————————————————
\centering
\def\svgwidth{0.7\columnwidth}
{\relsize%
%{0.8}% non integer works!
{0}
\includesvg{disegno1}
}
% —————————————————————-
\vspace*{\fill}
%\end{landscape}
\end{document}
`Si otterrà la seguente immagine:

Da notare la macro \includesvg nella cui definizione si va a controllare se il file SVG è stato aggiornato. L’opzione -enable-write18 (o equivalente) serve a lanciare Inkscape e rigenerare, se necessario, i file disegno1.pdf e disegno1.tex prima di terminare il job corrente (main.tex).
Happy TeXing,
Agostino
- Devi essere connesso per rispondere a questo topic.