Inkscape 0.48 (pre) e formule con pdfLaTeX

  • Creatore
    Topic
  • #44845
    Up
    0
    Down
    ::


    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.pdf

    Ho 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

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #44846
      Up
      0
      Down
      ::


      Molto interessante! Grazie mille proverò sicuramente!

      Fra

    • #44847
      Stemby
      Partecipante
        Up
        0
        Down
        ::


        Bello! Bene a sapersi.

        Prima o poi, in una futura vita, troverò il tempo di imparare a fare un po’ di grafica vettoriale decente con Inkscape…

    Visualizzazione 1 filone di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top