Re: come ritagliare un’immagine in includegraphics con xelatex

#59953
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    \special è un comando per inserire nel file di uscita comandi speciali per il “driver” che rende visibile/stampabile il file di uscita e serve quindi per inserire nel file di uscita cose scritte nel linguaggio del driver.

    Però volendo, forse, si potrebbe fare in un colpo solo la compilazione Xellatex e lo scontornamento; basta dire a Xelatex di lanciare il programma esterno pdfcorp sul file dell’immagine e poi rinominare l’immagine col nome volute perché \includegraphics la includa; per esempio se tu dovessi scontornare il file figura.pdf potreti provare a fare così:

    `
    \begin{figure}
    \immediate\write18{mv figura.pdf ./figura-old.pdf}
    \immediate\write18{pdfcrop figura-old.pdf figura.pdf}
    \centering
    \includegraphics[width=…]{figura}
    \caption[..]{…}
    \label{…}
    \end{figure}
    `

    Per altro puoi dare il comando da terminale pdfcrop –help e vedere che cosa poi fare di più con quello script perl.

    Questo modo di procedere può funzionare, e dovrebbe funzionare senz’altro se fra le opzioni per lanciare xelatex hai inserito anche –shell-escape e se la tua versione di Xelatex è sufficientemente recente.Se l’opzione –shell-escape non c’è, tieni presente che la distribuzione TeXLive 2010 ammentte di default un versione limitata di quell’opzione che consente ai compilatori pdftex, xetex e luatex di eseguire alcuni comandi esterni fra cui probabilmente c’è anche pdfcrop questo a sua volta prevede l’opzione –restricted che forse è quella da usare se manc nella stringa di lancio l’opzione non ristretta.

    Pdfcrop consente anche di eseguire tutta l’operazione con ghostscript di versione 8.x nel caso che i programma di lancio non sia in grado di determinare il bounding box da solo; quindi con xetex forse dovrebbe essere questa la via da seguire.

    nota che ti ho fornito molte informazioni, e ti ho indicato dove approfondire; io generalmente preferisco operare a mano,ma \write18 è molto comodo, quindi se vuoi seguire questa strada bisogna che tu approfondisca meglio. Io non l’ho mai seguita, e non ho voglia di farlo perché, come ho detto, preferisco procedere a mano.

    Altra soluzione; visto che non hai problemi a scontornare o a ritagliare una figura con pdftex, creati un file minimi da eseguire con pdftex che ti produca solo la figura voluta e scontornata su un’unica pagina; esiste fra i mille pacchetti di laTeX anche un pacchetto che produce le pagine già scontornate, cioè già su un supporto fisico (virtuale) avente le stesse dimensioni della figura o del contenuto della pagina. usa quel pacchetto e avrai direttamente la figura scontornata o ritagliata.

    Capisco che è sempre un modo di operare esterno, anche se metti i comandi di sistema dentro all’argomento di \write18, cambia la forma ma non la sostanza; è sempre un programma esterno che fa il lavoro.

    Go to top