Robitex's Blog

Ideas in the web

Collage di precisione di PDF


Download the article in the pdf file format

Sommario

Con gli strumenti a disposizione di una distribuzione TeX è possibile ottenere un pdf unendo vari pdf di partenza per di più posizionandoli geometricamente nel modo voluto.
I pacchetti LaTeX utilizzati allo scopo sono il potente PGF, forse il pacchetto dall’implementazione più complessa, e il pacchetto graphicx. Con essi non serve altro che decidere la posizione sul foglio bianco degli singoli oggetti pdf contenuti nei rispettivi file.

Giocando giocando

Un altro esempio di utilizzo di LaTeX come strumento di manipolazione di file PDF è l’opposto dell’idea di estrazione dei contenuti di cui ci siamo occupati nel post precedente: a partire da due o più file PDF se ne vuole fare un collage in un nuovo file PDF.

Come per gli altri collage la cosa si prospetta divertente ma già intravedo dei possibili usi nella pratica professionale. Per il nostro esempio ho dapprima costruito due file pdf contenenti un rettangolo blu ed un rettangolo rosso di date dimensioni, e poi li ho uniti sulla stessa pagina ciascuno in una data posizione.

L’esempio è del tutto generale sia nel numero di pdf da unire sia nel loro contenuto.

Nelle immagini seguenti cliccabili per scaricarne il corrispondente file pdf, vi riporto come appaiono i rettangoli d’esempio e come appare il risultato finale dell’unione secondo posizioni geometriche stabilite.

Blue rectangle, click to download

Blue rectangle, click to download

Red rectancle, click to download

Red rectancle, click to download

Red and blue union, click to download

Red and blue union, click to download

Passiamo la parola quindi al codice, e… buon divertimento!!!

Rettangolo blu

Utilizziamo il potentissimo pacchetto grafico PGF per generare il rettangolo blu, diciamo di 70 x 35 mm con linea a spigoli arrotondati di 5 punti di spessore (in TeX le unità di misura delle lunghezze sono molte e sono tutte interscambiabili):

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikz[line width=5pt,color=blue,rounded corners]
  \draw (0,0) rectangle (70mm,35mm);
\end{document}

Ecco fatto (inserite il codice in un file di testo, per esempio con Blocco Note, salvatelo su disco e compilatelo con pdflatex, oppure semplicemente caricate il file nell’editor TeXWorks e premete Control+T), sono in tutto sei righe di codice LaTeX che esprimono in maniera diretta esattamente quello che abbiamo descritto in apertura di paragrafo.

Rettangolo rosso

Per il rettangolo rosso semplicemente cambiamo i parametri di colore e dimensione e ripetiamo la veloce procedura di compilazione per generare il secondo pdf che andremo ad unire in un (primordiale) collage.
Un solo nuovo commento al codice ed è questo: vi segnalo l’uso della classe di documento standalone (ringrazio il Professor Enrico Gregorio per avermi segnalato l’esistenza di questa classe sul forum del GuIT), che genera il file pdf nelle esatte dimensioni di pagina necessarie a contenere gli oggetti che creiamo.

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\tikz[line width=5pt,color=red,rounded corners]
  \draw (0,0) rectangle (32mm,88mm);
\end{document}

Collage!

Per unire due file pdf l’idea è quella di inserirli in un documento LaTeX attraverso il pacchetto graphicx, come semplici immagini. Tuttavia in questo modo i rettangoli verrebbero inseriti uno sopra l’altro e noi vogliamo qualcosa di più, vogliamo specificarne la posizione geometricamente.
Bene, ricorriamo ancora al pacchetto PGF in combinazione con graphicx, inserendo i file dei rettangoli come fossero il materiale da comporre di un oggetto nodo.
Un nodo PGF può contenere qualsiasi materiale e quindi anche un immagine intera, ed è caratterizzato da un punto di posizionamento (x,y) e da un riferimento di ancoraggio. In questo caso ho scelto l’ancoraggio in basso a sinistra. In altre parole il punto in cui localizziamo il nodo tramite coordinate sul foglio, sarà il punto in cui si troverà la posizione dell’angolo in basso a sinistra dell’immagine (in singolo file pdf).

Ancora, si noti come l’argomento del comando \includegraphics è il nome del file da includere e che questo normalmente va indicato privo di estensione, e che volendo potremo sia ruotare che scalare il pdf da inserire tramite le opzioni angle e scale del comando.
Per quanto riguarda la posizione dei file nell’albero del file system, nell’esempio si è lavorato con i file sorgenti .tex ed il materiale .pdf posizionati tutti nella stessa directory.
Ecco il codice che produrrà il collage di unione rappresentato nell’immagine.
Mi raccomando scaricate i pdf con un click sulle immagini soprastanti per rendervi conto meglio del carattere vettoriale, cioè di massima qualità, dei contenuti grafici.

\documentclass{standalone}
\usepackage{tikz}
\usepackage{graphicx}

\begin{document}
\begin{tikzpicture}[every node/.style={anchor=south west}]
   % disegnamo un circoletto di posizionamento delle coordinate
   % dell'origine del sistema di riferimento
   \draw (0,0) node[circle, draw] {};
   
   \draw (10mm,95mm) node {\includegraphics{blue}}; % insert blue.pdf file
   \draw (0,0) node {\includegraphics{red}};        % insert red.pdf file
\end{tikzpicture}
\end{document}

Per oggi mi fermo qui, alla prossima!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: