Figure in LaTeX: una breve introduzione

In questa sezione parleremo di come inserire grafici in documenti .tex in modo che il risultato sia un documento .ps o .pdf con le figure inserite all'interno del documento stesso. I termini "figure", "grafici" ed "immagini" verrano utilizzati indifferentemente perché LaTeX non fa alcuna distinzione se ci sono colori o meno.

La creazione di file .php, pure possibile con LaTeX, non viene contemplata in quanto il file .php finale non contiene la figura ma soltanto richiami a figure che quindi devono comparire come file separati (ad esempio, in formato .gif). Sebbene molto simile e basata sulla stessa sintassi, l'inclusione di figure in file .ps e .pdf differisce per alcuni aspetti. Conseguentemente i due casi verranno trattati separatamente.

1) .tex→.dvi→.ps

Questo è il modo classico, probabilmente il più utilizzato, per compilare documenti con figure. Condizione essenziale è avere i grafici in formato .ps (PostScript) o .eps (Encapsulated PostScript). La differenza tra i due formati è semplicemente in una riga di istruzioni nel file .ps che contiene le informazioni sul "perimetro" (il bounding box) della figura. Aprendo il file .eps con un editor di testo (WordPad o Emacs, ad esempio) tale riga è del tipo:

%%BoundingBox: 20 11 591 781

dove i numeri in sequenza si riferiscono alle ascisse e alle ordinate del vertice in basso a sinistra ed in alto a destra del bounding box (da ora in poi BB). Provate a cambiare tali numeri, salvate e guardate il file con Ghostscript! In generale non è indispensabile avere informazioni sul BB, ma per semplicità assumeremo di averle, inoltre, sarà sempre possibile inserire manualmente in un file .ps tale informazione in funzione della figura. Se figura.eps è il grafico da inserire nel documento .tex, è necessario caricare un pacchetto predisposto a tale scopo. LaTeX, come al solito, ha molte possibilit� epsfig, graphics, graphicx. La sequenza di tali 3 pacchetti non è casuale ma rispecchia l'ordine con cui essi appaiono.

Graphicx è il più recente ed anche, probabilmente, il più semplice da usare, sebbene non introduca alcuna novità rispetto agli altri due. Ciò premesso:

\usepackage{graphicx}

...

\includegraphics{figura.eps}

sono i comandi fondamentali per inserire un file nel documento. Spesso, comunque, un ambiente "volante" (ad es. {table}) o un'intestazione della figura (\caption{}) possono essere richiesti. In tal caso

\begin{figure}

\centering

\includegraphics{figura.eps}

\caption{Blablabla...}\label{fig:1}

\end{figure}

potrebbero essere i comandi richiesti. \label{} è l'etichetta della figura che può essere richiamata nel testo con il classico comando \ref{}. LaTeX legge le istruzioni dal BB e riserva nel documento un corrispondente spazio di dimensioni pari alla figura da inserire. Naturalmente è possibile che le dimensioni reali della figura siano troppo grandi o piccole. Uno dei vantaggi del formato vettoriale (quale quello PostScript) rispetto a quello bitmap (quale i formati .bmp, .gif) è quello di poter modificare le dimensioni delle immagini senza modificarne la qualit� Volendo ridurre la dimensione della figura del 20%, diciamo, il comando corrispondente potrebbe essere:

\includegraphics[scale=0.8]{figura.eps}

Alternativamente è anche possibile impostare le reali dimensioni (in una qualsiasi unità di misura accettata da LaTeX: cm, mm, pt,...)

\includegraphics[width=2cm, heigh=4cm]{figura.eps}.

Potrebbe essere utile impostare soltanto una dimensione, mantenendo in questo modo il rapporto dei due lati immutato. Ad esempio:

\includegraphics[width=\textwidth]{figura.eps}.

\textwidth è un parametro di LaTeX che misura l'ampiezza del documento; in questo modo si è sicuri che la figura corrisponda esattamente alla larghezza del testo. Naturalmente avremmo potuto inserire una qualsiasi dimensione (ad es., semplicemente width=5cm). Per le altre opzioni del comando \includegraphics[]{} si veda uno dei testi riportati della bibliografia o il manuale; in questa sede ricordiamo angle=100 per ruotare la figura di 100 gradi, diciamo, e draft=true per non inserire la figura nel testo, ma soltanto lo spazio che verrà riservato ad essa:

\includegraphics[draft=true, width=\textwidth, angle=-92]{figura.eps}.

L'opzione draft=true (draft=false è il default) è utile allorquando la compilazione del documento non è quella finale e si potrebbe essere interessati a velocizzare le operazioni di compilazioni e visualizzazione in .dvi (la visualizzazione di documenti .dvi è tanto più lenta quanto maggiori e più complesse sono le figure inserite). Nota comunque che il .dvi con figure, anche se correttamente visualizzato sullo schermo, non può essere direttamente stampato.

È utile ribadire che abbiamo considerato il pacchetto graphicx; diversa sarebbe stata la sintassi per gli altri pacchetti.

2).tex→.pdf o .tex→.dvi→.pdf

Un grafico .pdf  è ancora vettoriale (modificabile in dimensioni senza danni alla qualità) quindi è sostanzialmente un .eps, ma manca di una "proprietà" molto importante: il BB.

Un file .ps è indipendente dal formato delle pagine in cui verrà inserito perché è il BB che regola il tutto, questo non è vero per i file .pdf! Il formato del foglio su cui è stampata la figura fa parte della figura stessa, per cui volendo inserire una piccola immagine che compare in un foglio a4 noi inseriremo tutto il foglio a4! Ad esempio supponiamo di avere un file .(e)ps e di trasformarlo in .pdf attraverso Ghostscript. Questo può essere ottenuto semplicemente aprendo il file .(e)ps con GSview e trasformandolo con pdfwrite (File|Convert|). Il risultato sarà un file .pdf con la figura stampata su una pagina a4. Proviamo ad inserire tale figura nel documento:

\includegraphics[file.pdf]

e compiliamo con pdflatex. Poiché in questo modo si è inserita tutta la pagina, e non solo la figura, il risultato finale comporterà, probabilmente, delle variazioni in termini di dimensioni, spazi, testo prima e dopo la figura. Una possibile, ma decisamente sconsigliabile (anche se alcuni di noi l'hanno sperimentata!), soluzione è quella di modificare il testo con \vspace{} e \hspace{}, per cercare di riportare il testo che segue alla figura proprio sotto la figura (in realtà con questa operazione si sta cercando di sovrapporre due cose: il testo e la figura inserita!). Lasciate perdere!

Da ciò che si è detto segue che un modo corretto per inserire figure in .pdf è avere un figura .pdf con un formato identico alle dimensioni della figura stessa. Come raggiungere questo risultato? Esistono programmi commerciali che possono farlo (ad es., Adobe Acrobat) o alcuni software che consentono di ottenere un tale risultato (ad es., S-Plus ed R). Però in generale un modo di procedere utilizza una serie di macro che "modificano le dimensioni della pagina correttamente". Queste macro, purtroppo, sono scritte in Perl e necessitano, quindi, di avere installato questo linguaggio sul proprio computer. Perl è gratuito, ma l'installazione esula dallo scopo del presente scritto.

Una volta ottenuto un file .pdf corretto la sintassi è la stessa di quella discussa nel caso .(e)ps.

Una possibilità che consente di ovviare a tali problemi e di ottenere un file .pdf è il passaggio .tex→.dvi→.pdf tramite dvipdfm. .tex→dvi può essere ottenuto con figure .(e)ps attraverso la compilazione LaTeX. Dvipdfm nella conversione .dvi→.pdf trasforma correttamente le figure richiamando Ghostscript. Naturalmente anche la conversione .ps→.pdf attraverso pdfwrite di Ghostscript è consentita. Comunque queste strade alternative indirette per ottenere .pdf soffrono di parecchi svantaggi riguardanti, ad esempio tra le altre cose, la conversione dei font.

Infine non è banale ribadire alcune differenze tra .eps e .pdf. A parità di disponibilità di strumenti, pdf sicuramente consente una migliore "comunicabilità" con l'esterno, ma c'è un prezzo da pagare: pdf è  evoluzione di .ps, ma, come sovente accade, questa evoluzione ha comportato una minore flessibilit� Questo significa che con il "primitivo" .(e)ps è possibile fare cose che con .pdf non sono consentite.

Come esportare figure da altri programmi

Come già anticipato nell'introduzione , LaTeX è in grado di importare figure in diversi formati. In questa sottosezione si daranno pertanto alcuni consigli "pratici" su come ottenere file con un estensione compatibile con LaTeX dei programmi comunemente utilizzati dalla maggior parte degli utenti.

.eps (Encapsulated PostScript)

Il maggior ostacolo al suo utilizzo è rappresentato dal fatto che solo i programmi per cui è previsto un uso professionale (pacchetti statistici, matematici, CAD o buoni programmi di grafica) sono capaci di esportare grafici o figure in questo formato. Se il vostro software è in grado di effettuare questa operazione avrete risolto gran parte dei vostri problemi!

Se invece, il vostro software non può effettuare questa operazione si può aggirare il problema attraverso il comando:

|stampa su file

a condizione di avere installato o una stampante laser con driver PostScript (molte ma non tutte le stampanti laser hanno il driver PS) o un driver PS (si può scaricare gratuitamente, previa registrazione, dal sito di Adobe).

Questa procedura è molto valida e adattabile ad un grandissimo numero di pacchetti. Ad esempio, per ottenere una figura per LaTeX esportando un grafico dal programma Microsoft Excel, si seguiranno i seguenti passi:

Sempre a titolo di esempio scrivete:

C:\Windows\desktop\figura.ps

per esportare il file sul desktop del vostro computer.

Aprire a questo punto il file .ps (PostScript) con GSview e, mediante File|PS to EPS trasformatelo in formato .eps

Si può scegliere se inserire manualmente i boundingbox (opzione consigliata) o lasciare che vengano automaticamente determinati.

Un altra soluzione è quella di salvare la figura in formato .wmf (Windows Metafile), opzione consentita con tutti i programmi del pacchetto MS Office, ed usare un semplice driver wmf2ps (scaricabile da un qualsiasi CTAN) che opera la trasformazione .wmf→.ps A questo punto occorre ripetere la procedura prima indicata per eseguire la trasformazione da .ps a .eps.

Un alternativa ancora migliore è quella di usare il programma WMF2EPS di Wolfgang Schulter.

Se usate OpenOffice, è possibile esportare grafici o diapositive direttamente in file con estensione .eps. Tale programma consente anche di convertire file con estensioni .doc .ppt .xls.

Infine, tutti i principali programmi che utilizzano Linux come sistema operativo prevedono .eps come la principale estensione con cui salvare file contenenti grafici e/o figure.

.jpeg

Quasi tutti i principali programmi consentono di salvare i file con questa estensione che, tra l'altro, LaTeX legge molto bene. Questa pertanto potrebbe essere una soluzione molto rapida per inserire delle immagini in un documento LaTeX. Si ricordi che, in caso di necessità è sempre possibile incollare un grafico fatto con MS Excel su una diapositiva di MS PowerPoint e da lì salvarla in estensione .jpeg). Non è molto elegante, ma...

.pdf (Portable Document Format)

Questo tipo di estensione è certamente il modo migliore e più comodo per inserire delle immagini in un documento LaTeX. Per salvare in questo tipo di formato potrete utilizzare Cute PDF o qualsiasi altro software adatto a questo scopo. A questo punto sarà sufficiente inserire il file immagine.pdf all'interno del documento LaTeX senza ulteriori passaggi.

precedente - successiva

Valid XHTML 1.0!  Powered by PHP!  Nota sul Copyright  Valid CSS!