Sinistra <- Editoriale: BZFlag - Indice Generale - Copertina - SL: Password -> Destra

PLUTOWare


LaTeX: il sistema per la formattazione di documenti

di Gabriele Zucchetta

L'articolo...

Introduzione a LaTeX come linguaggio per la formattazione di testi con la possibilità di inserire simboli particolari come espressioni matematiche.



Introduzione

Il computer è uno strumento perfetto per creare qualsiasi tipo di documento. Preparare un documento significa scrivere i concetti e formattare il testo. Nel corso degli anni sono stati sviluppati svariati software che consentono la produzione di documenti. Tra questi LaTeX merita un posto d'onore, sia per l'alta qualità dei documenti che produce, sia per la potenza degli strumenti che mette a disposizione.

LaTeX è un formattatore di testo

È importante chiarire alcuni termini informatici riguardanti questo contesto:

Il word processor è uno strumento che permette di scrivere e formattare il testo. Il documento appare sullo schermo identico al risultato su carta. Per descrivere quest'ultima caratteristica si utilizza l'acronimo WYSIWYG: What You See Is What You Get (quello che vedi è quello che ottieni).
Il formattatore di testo elabora un file di testo, scritto con un editor di testo, sulla base di una "descrizione" della formattazione. In questo caso è possibile vedere il risultato finale solo dopo che il formattatore di testo ha creato il documento. Con questo tipo di approccio, l'autore si occupa solo di scrivere le idee e lascia a LaTeX il compito di creare il documento sulla base di com'è stato immaginato. In sintesi, LaTeX permette di:

Da TeX a LaTeX

Nel 1977 Donald Knuth realizzò un programma per pubblicazioni scientifiche che chiamò TeX. Il nome deriva dalle prime tre lettere della parola techne che, in greco, significa Tecnica e Arte. Per questo motivo TeX si pronuncia "tek" e non "tecs".
Nel 1985 Leslie Lamport iniziò la scrittura di una serie di macro, LaTeX, che rendevano TeX molto più semplice da utilizzare. Questo permise a TeX di essere adatto per la creazione di qualsiasi tipo di documento. LaTeX è stato continuamente aggiornato e migliorato fino ad arrivare alla versione 2.09. Da qui in poi le nuove versioni vennero numerate in base alla data di uscita. Nel 1989 Leslie Lamport, Frank Mittelbach, Chris Rowley e Rainer Schöpf hanno dato inizio al progetto LaTeX3, un progetto a lungo termine dal quale dovrebbe nascere la versione 3.0 di LaTeX. Una tappa intermedia di questo lavoro è rappresentata dalla versione LaTeX2e del 1994. LaTeX è in continuo miglioramento grazie al lavoro di appassionati in tutto il Mondo.

Il file di input LaTeX

Il documento formattato viene creato da LaTeX processando un file di input. Questo deve contenere il testo ed i comandi che comunicano a LaTeX come impostare il testo. Il file di input viene creato con un qualsiasi editore di testi (vim, ad esempio).

Un tipico file di input ha la seguente struttura:

\documentclass{article}
\title{Articolo per il PLUTO Journal}
\author{Gabriele Zucchetta}
\date{1 gennaio 2000}
\begin{document}
   \maketitle
Un saluto ai lettori del PLUTO Journal.
\end {document}

Quanto sopra viene interpretato da LaTeX nel seguente modo:

Il risultato della formattazione è il seguente:

Articolo

Da notare come LaTex abbia centrato il tipo, il nome dell'autore e la data, senza che questo fosse stato specificato nel file di input (ovviamente è logico che questi elementi siano formattati in questo modo). Stesso discorso per l'uso dei font. Sembra che latex ci conosca bene, proprio come se fosse il nostro tipografo di fiducia.
Supponiamo che il file di input chiami prova.tex. Il comando che dobbiamo digitare per far processare il file di input è:

$ latex prova.tex

Come file di output vengono prodotti:

LaTex, quindi, produce documenti in formato dvi (DeVice Indipendent). Si tratta di un file binario che non può essere stampato direttamente ma può essere visualizzato su schermo tramite opportuni programmi: il più conosciuto è xdvi.
Attorno al formato dvi sono stati costruiti una grande quantità di programmi che permettono la sua conversione in formati comprensibili a diversi tipi di stampanti e visualizzatori in anteprima. Il formato ps (PostScript) è lo standard attuale a cui si sta affiancando il formato pdf (Portable Document Format).

Per ottenere il documento in ps è possibile usare dvips, digitando:

$ dvips prova.dvi -o

Per ottenere il documento in pdf è possibile convertire il file ps utilizzando ps2pdf, digitando:

$ ps2pdf prova.ps prova.pdf

Interessante è l'applicazione pdftex che permette di ottenere un documento pdf direttamente dal file .tex, digitando:

$ pdflatex prova.tex

La visualizzazione del file PostScript può essere ottenuta con gv, digitando:

$ gv prova.ps

La visualizzazione del file pdf può essere ottenuta sia con gv che con xpdf:

$ gv prova.ps
$ xpdf prova.ps

Infine, grazie al pacchetto latex2html, È possibile ottenere pagine in formato html a partire dal file .tex, semplicemente digitanto:

$ latex2html prova.tex

Il risultato è alquanto spartano ma si ottengono pagine ben formattate, chiare e facili da navigare. Per risultati più sofisticati occorre prendere confidenza con le opzioni del pacchetto.
La figura seguente mostra uno schema riassuntivo:

Schema formati

Alcune caratteristiche avanzate di LaTeX

LaTeX è adatto per la creazione di qualsiasi tipo di documento, questo per merito delle sue caratteristiche e dei pacchetti che lo possono accompagnare. Tra questi, vale la pena introdurne alcuni importanti, ricordando che sono solamente una piccola parte tra quelli esistenti.

Formule matematiche

LaTeX è in grado di realizzare qualsiasi tipo di formula matematica, per quanto complessa essa sia. Nella seguente tabella sono riportati alcuni esempi:

Comando Formula
\lim_{x \rightarrow +\infty} ln x = +\infty
Limite
a^n = \overbrace {a \times a \times \cdots \times a} ^ {n \mbox { volte}}
Potenza
\sum_{n=0}^{+\infty} \frac{n+1}{e^n}
Serie
{\mathcal A}  = \left(
\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n}  \\
a_{21} & a_{22} & \cdots & a_{2n}  \\
\vdots & \vdots & \ddots & \vdots  \\
a_{m1} & a_{m2} & \cdots & a_{nm}  \\
\end{array}
\right)
Matrice
\frac{1}{4\pi}\oint_\Sigma\frac{1}{r}\frac{\partial U}{\partial n} ds
Frac Sigma
y=\frac{e^{-y/2}}{\sqrt{2 \cdot \pi}}
Funzione
x \in A \cap \left(B \cup \left(B \bigtriangledown C\right)\right)
Insiemi
x^n + y^n \neq z^n \;\; \forall\, n>2
Fermat

Occorre tener presente che, per scrivere formule matematiche, il comando deve essere compreso tra $$ e $$.

Tabelle

Il seguente esempio mostra come costruire una semplice tabella:

\begin{tabular}{lcr}
Colonna 1 & Colonna 2 & Colonna 3 \\
Riga 1    & Riga 2    & Riga 3    \\
Riga 2    & Riga 2    & Riga 2    \\
\end{tabular}

LaTeX interpreta quanto sopra nel seguente modo:

Il contenuto della tabella è diviso con la & per quanto riguarda le colonne e con la backslash backslash per quanto riguarda le righe.
Il risultato della formattazione è il seguente:

Tabella1

Possiamo inserire linee che separano le righe e le colonne modificando la tabella precedente nel seguente moto:

\begin{tabular}{l|c|r}
Colonna 1 & Colonna 2 & Colonna 3 \\
\hline
Riga 1    & Riga 2    & Riga 3    \\
\hline
Riga 2    & Riga 2    & Riga 2    \\
\hline
\end{tabular}

Così da ottenere:

Tabella2

Caratteri speciali

Le tastiere riportano solo alcuni dei simboli che possono servire. Per ovviare a questa lacuna, LaTeX ha dei comandi per stampare qualsiasi tipo di carattere. Ne vediamo qualcuno:

Comando Carattere stampato
\copyright
©
\"o
ö
\c{c}
ç
\ae
æ
\~n
ñ
\dag
dag

Includere immagini

LaTeX è in grado di includere immagini di qualsiasi formato grazie al pacchetto graphicx. Esso è in grado di effettuare sulle immagini una serie di operazioni come la rotazione, il ridimensionamento, ecc.
Per utilizzare questo pacchetto occorre inserire nel file .tex il seguente comando, prima della riga di inizio documento:

\usepackage{graphicx}

Occorre precisare che LaTeX prende inizialmente nota della dimensione dell'immagine e le riserva lo spazio stabilito. È il programma che elabora il file .dvi che effettua l'inclusione vera e propria dell'immagine. Il comando per includere un'immagine è il seguente:

\includegraphics[opzioni]{mome_immagine}

Purtroppo, l'inclusione delle immagini non è nativa in TeX, per questo motivo la specifica di inclusione delle immagini cambia in base al programma utilizzato per elaborare il dvi (i driver principali sono, ovviamente, dvips e pdftex). Inoltre, occorre distinguere tra l'inclusione di immagini vettoriali e di immagini a mappa di bit.

Immagini vettoriali

Tipici formati di questo tipo sono eps, pdf, wmf e cdr.
Il driver dvips supporta nativamente il formato EPS, per tale motivo è consigliabile, se si usa questo driver di stampa, includere solo immagini eps. Eventualmente è possibile convertire, con programmi esterni, le immagini di formato diverso in eps.

Il driver pdftex, invece, supporta nativamente il formato pdf. Purtroppo, ben pochi programmi sono in grado di salvare in questo formato. Pertanto, è consigliabile creare un eps da convertire, poi, in formato pdf usando epstopdf.

Immagini a mappa di bit

Tipici formati di questo tipo sono bmp, png, gif, jpg, pcx, tif.
Il driver dvips non supporta nativamente nessuno di questi formati. Pertanto, il modo migliore per includere questi formati è convertirli, in eps, con programmi esterni. È tuttavia possibile istruire dvips ad accettare questi formati di immagini inserendo la seguente riga nel file .tex:

\DeclareGraphicsRule{.png}{bmp}{.bb}{}

Significa: i file con estensione png vanno trattati come il gruppo predefinito delle immagini a mappa di carattere (bmp) e le dimensioni sono riportate nel file avente stesso nome dell'immagine ed estensione bb. Questo file può essere creato con il programma ebb, digitando:

$ ebb nome_file.png

Invece, il driver pdftex supporta nativamente i seguenti formati: png, tif, jpg. Pertanto tali formati possono essere inclusi, mentre per gli altri è sempre possibile convertirli in uno dei tre formati supportati.

LaTeX in rete

La forza di LaTeX sta anche nella quantità di documentazione presente in rete. Di seguito le pagine principali dalle quali è possibile documentarsi su ogni aspetto di LaTeX:

Licenze

LaTeX è distribuito sotto i termini della LaTeX project public license. TeX è disponibile sotto vari tipi di licenza. Interessante è teTeX, sotto licenza GPL.



L'autore

Gabriele Zucchetta, laureato in Chimica con una tesi in meccanica molecolare. Chi lo vuole adulare può definirlo chimico computazionale. Da sempre è appassionato di informatica e convinto sostenitore del software libero. Utente Linux dal 1994.


Sinistra <- Editoriale: BZFlag - Indice Generale - Copertina - SL: Password -> Destra