next up previous


Uno sguardo su LATEX

Riccardo Murri
<murri@mail.dm.unipi.it>

un caldo giorno di luglio 1999

Nel lontano 1977, Donald E. Knuth decise che non ne poteva più di vedere i suoi articoli martoriati dai tipografi delle riviste scientifiche: più errori venivano introdotti in fase di composizione di quanti non ne venissero corretti durante la revisione delle bozze; era giunto il momento che l'informatica venisse a riconciliare autori, editori e tipografi... Cinque anni dopo, con la pubblicazione di ``Computers and Typesetting'', nasceva il sistema TEX, oggi il più usato programma di scrittura e composizione tipografica di testi scientifici.

TEX converte un file di testo in un file .dvi, pronto per la stampa; si possono inserire speciali comandi per istruire TEX sulla resa tipografica di alcune porzioni di testo, di più, TEX è un vero e proprio linguaggio di programmazione con cui si possono preparare complesse macro per la manipolazione e la composizione del testo. Molti pacchetti di macro sono stati sviluppati per facilitare la scrittura di documenti col TEX; il primo è certamente Plain-TEX, dovuto allo stesso Knuth, ma il più famoso è LATEX, scritto da Leslie Lamport alla fine degli anni '80, ed oggi arrivato alla versione LATEX$2\epsilon$.

   
Cos'è TEX?

TEX non è un programma per scrivere testi, ma per comporli tipograficamente. Mentre un comune word-processor vuole offrire una soluzione di scrittura per tutte le esigenze, dal creare un bigliettino di auguri al redarre una raccolta di poesie, TEX si concentra (e raggiunge il suo meglio) nella composizione di testi scientifici o comunque fortemente strutturati: articoli, relazioni o interi libri.

Per scrivere un file .tex si usa Emacs, vi o il vostro editor preferito; poi, TEX sostituisce (per quanto può una macchina) il lavoro del tipografo: arrangia i caratteri in righe, e queste in pagine, inserisce le figure nel testo e compone le note a pie' di pagina; TEX permette di variare un gran numero di parametri che controllano questa composizione: le dimensioni della pagina, la grandezza del carattere, la spaziatura, ecc. Tuttavia, TEX assumerà sempre di star componendo un libro, o un articolo di rivista, o comunque qualcosa che deve seguire delle rigide regole di impaginazione per assicurarne la migliore leggibilità: è difficile convincere TEX a impaginare poesia futurista, mentre mi sono sufficienti solo 4 comandi per comporre questo articolo su 2 colonne.

TEX non è WYSIWYG1 Il lavoro di TEX si articola in più fasi distinte e separate:

1.
si scrive un file di testo con estensione .tex con Emacs (vedi figura 1) o vi, o il vostro editor preferito;
  
Figure: Una schermata di XEmacs, durante la scrittura di questo articolo. XEmacs e GNU Emacs hanno un modo specifico per i file TEX, che permette di controllare la produzione, l'anteprima e la stampa del file senza uscire dall'editor, oltre ad una serie di macro per accelerare la scrittura.
\begin{figure}\epsfig{width=7cm,figure=emacs.eps}
\end{figure}

2.
TEX trasforma il file .tex in un file binario .dvi (device independent);
3.
si fa un'anteprima sul video del file .dvi con il programma xdvi (vedi figura 3);
  
Figure: Anteprima di questo articolo col programma kdvi, il programma di visione .dvi del KDE. Il programma xdvi ha le stesse funzionalità e gira su qualunque sistema X/Windows.
\begin{figure}\epsfig{width=7cm,figure=kdvi.eps}
\end{figure}

4.
il file .dvi viene convertito da dvips in un file POSTSCRIPT per stamparlo. (Altri convertitori sono disponibili per chi non ha stampanti POSTSCRIPT.)
Non è così complicato come può apparire a prima vista: per esempio, Emacs ha un modo (chiamato AUC-TEX) che permette di controllare da un menu tutte le fasi della produzione, anteprima e stampa di un documento .tex; altri editor hanno funzionalità simili, ed il programma KLyX permette di modificare file .tex in un ambiente WYSIWYG, pur conservando TEX come strumento di produzione del file da mandare in stampa.

TEX è un linguaggio di programmazione. TEX consente l'espansione di macro, costrutti condizionali, lettura e scrittura di file, operazioni aritmetiche, oltre ad una serie di routine specifiche per il controllo della resa tipografica. Questo permette di creare automaticamente sommari, indici analitici e delle figure, bibliografie; di includere nel testo tabelle di dati ed immagini create con programmi esterni...

TEX compone formule matematiche. Creato principalmente per scrivere articoli scientifici, TEX permette di mischiare al testo formule matematiche; di più, per scrivere le formule bastano solo i normali caratteri ASCII, e la sintassi è in effetti simile alla pronuncia (inglese) della formula (vedi figura 1). Questa è probabilmente la caratteristica principale di TEX, che lo distingue da programmi analoghi come groff o da sistemi di word-processing: non occorrono programmi esterni per comporre una formula, che così fa parte integrante del testo e non viene trattata come un'immagine esterna, e la qualità tipografica è decisamente professionale.

Inoltre, programmi come MATHEMATICA o MAPLE V permettono di salvare i risultati dei loro calcoli come formule nel formato TEX, pronte per essere incollate dentro una relazione.


  
Figure: Una formula matematica, ed il codice TEX necessario per produrla.
\begin{figure}\epsfig{width=7cm,figure=formula.eps}
\end{figure}

TEX è portabile. Grazie al suo approccio a fasi separate alle preparazione di un documento, i singoli componenti di un sistema TEX sono più semplici e portabili; esistono eseguibili di TEX per la maggior parte dei sistemi operativi moderni, e TEX gira sui più vecchi 80286 come sulle più ambiziose workstation. Inoltre, un file .tex si scrive usando solo i caratteri ASCII (anche se dovete scrivere lettere accentate o caratteri indiani...) ed è quindi leggibile su ogni computer...

TEX è software libero. Se volete, tutte le sorgenti di TEX e LATEX sono disponibili per essere modificate alle vostre esigenze...

   
Cos'è LATEX?

TEX è un linguaggio di programmazione, e LATEX è un programma in questo linguaggio. Lo scopo dichiarato di LATEX è di fornire un sistema di preparazione dei documenti per la stampa, che permetta di separare quanto più possibile la preoccupazione per la resa tipografica dall'organizzazione della scrittura. TEX ambisce a mettere a disposizione degli autori gli strumenti dei tipografi, e LATEX cerca di sostituire questi ultimi per quanto possibile; però, laddove un tipografo umano saprebbe distinguere il risalto da dare alle varie parti di un testo, LATEX ha bisogno di essere guidato da particolari comandi che indicano come il testo è suddiviso in capitoli, sezioni e sottosezioni, oppure se un certo gruppo di righe è un listato di un programma (che deve perciò essere reso in un carattere diverso da quello del testo corrente), ecc.

La caratteristica principale di LATEX è dunque di accettare in ingresso un file di testo segnato con pochi comandi che ne indicano la struttura, e produrre un documento pronto per la stampa, seguendo una composizione predefinita. L'idea alla base di tutto questo è che un autore deve essere libero di concentrarsi sul contenuto del testo, più che sul suo aspetto: LATEX farà pertanto ogni sforzo per adattare il vostro testo agli schemi di composizione tipografica professionale che ha in memoria. Ad esempio, con una decina di comandi LATEX potete scrivere un documento, impaginarlo su due colonne e generare automaticamente il sommario; se poi decidete che preferite l'impaginazione su una colonna sola, o la stampa fronte/retro, basta cambiare una sola riga ed il gioco è fatto.

LATEXadotta un sistema modulare, per cui si possono facilmente aggiungere estensioni che permettono di modificare il comportamento standard in varie maniere: per esempio esistono moduli per utilizzare i caratteri POSTSCRIPT oltre a quelli TEX, moduli per generare bibliografie in diversi formati, moduli per disegnare diagrammi, per includere listati di programmi, ecc.

   
Un esempio di LATEX

Vediamo un po' un esempio di come può essere fatto un file LATEX; con il vostro editor preferito aprite un file esempio.tex e scrivete:

    % esempio.tex
    %
    % Un esempio per dimostrare com'è fatto un file LaTeX
    % (tutto ciò che segue '%' viene ignorato da TeX)
    %
    \documentclass{article}
    \usepackage[latin1]{inputenc} % così possiamo usare le lettere accentate
    \begin{document} % qui comincia il testo

    \section{Una storia Zen} 
    % due paragrafi di testo ordinario...
    Un uomo di AI attraversò le montagne per SAIL per vedere il
    Maestro, Knuth. Quando fu arrivato, il Maestro non era da nessuna
    parte. ``Dov'è il saggio chiamato Knuth?'', egli chiese ad uno
    studente di passaggio.
    
    ``Ah,'' disse lo studente, ``non hai saputo. Egli è partito in
    pellegrinaggio attraverso le montagne al tempio di AI per cercare
    nuovi discepoli.''

    Udendo ciò, l'uomo fu Illuminato.

    \section{Una poesia... matematica.}

    \begin{verse} % seguono versi, separati da '\\'
      Aleph-null bottles of beer on the wall, \\
      Aleph-null bottles of beer, \\
      You take one down, and pass it around, \\
      Aleph-null bottles of beer on the wall.
    \end{verse}

    \begin{verse} 
      % $\aleph_0$ indica il simbolo matematico di Aleph-con-0
      $\aleph_0$ bottiglie di birra al muro, \\
      $\aleph_0$ bottiglie di birra, \\
      Ne prendi una, e la passi in giro, \\
      $\aleph_0$ bottiglie di birra al muro.
    \end{verse}
  \end{document}

A questo punto, create il file .dvi col comando

latex esempio
e guardate il risultato con
xdvi esempio
Se tutto è andato bene, dovreste ottenere lo stesso risultato di figura 2.1.


  
Figure: Ecco come appare il listato dell'esempio, dopo essere passato attraverso TEX.
\begin{figure}\epsfig{width=7cm,figure=esempio.eps}
\end{figure}

Commentiamo un po' questo listato. Le prime righe (quelle che iniziano con '%') sono dei commenti e vengono ignorate da LATEX nel produrre il testo finale. Il file si apre con la dichiarazione

\documentclass{article}
che predispone LATEX a comporre un articolo (alternativamente, avremmo potuto scegliere un libro, una lettera, una relazione o dei lucidi). Segue
\usepackage[latin1]{inputenc}
per poter usare le lettere accentate, e non i soli caratteri ASCII.

Il testo vero e proprio comincia con

\begin{document}
La riga
\section{Una storia Zen}
indica il titolo di una sezione, e seguono tre paragrafi di testo ordinario: notate come LATEX ignori gli spazi e la suddivisione in righe, e provveda comunque a fare una stampa ordinata. (cfr. Figura 2.1)

Infine,

\begin{verse}
  .
  .
  .
\end{verse}
racchiudono del testo poetico, cioè diviso in versi, separati da '\\'. Un'ultima nota: i caratteri '$' delimitano una formula matematica, e qui vengono usati per produrre il simbolo $\aleph_0$ (``aleph con 0'').

   
Installazione

Se tutto questo vi ha solleticato, e volete provare LATEX sul campo, non vi resta che installarlo. La distribuzione di TEX più diffusa sotto Linux si chiama teTEX, ed è disponibile come pacchetto precompilato per Debian GNU/Linux, Red Hat Linux e S.u.S.E. Linux.

Alternativamente, potrete trovare teTEX presso:

ed ogni altro mirror del CTAN (Comprehensive TEX Archive Network).

   
Per saperne di più...

Il modo più rapido per imparare LATEX è senza dubbio ``The Not So Short Introduction to LATEX$2\epsilon$, or LATEX$2\epsilon$ in 87 minutes'', che troverete (dopo aver installato teTEX) nel file /usr/lib/texmf/doc/latex/generic/lshort2e.dvi. Questo libro spiega in 5 capitoli l'essenziale per scrivere in LATEX, anche se lascia spesso dei dubbi sulla precisa sintassi dei vari comandi.

Il riferimento sicuro per imparare LATEX è il libro di Leslie Lamport, ``LATEX - A Document Preparation System'', edito da Addison-Wesley: questo libro copre tutto quanto è necessario sapere per scrivere correntemente in LATEX, ma manca degli argomenti più avanzati e di spiegazioni su come piegare LATEXalle vostre esigenze se dovete andare oltre i formati standard.

Infine, teTEX viene con una documentazione molto completa, nei formati .dvi, .ps e .html; ogni pacchetto incluso in teTEX ha il suo manuale, che si può consultare dalla shell con

texdoc nome-del-pacchetto

About this document ...

Uno sguardo su LATEX

This document was generated using the LaTeX2HTML translator Version 98.1p1 release (March 2nd, 1998)

Copyright © 1993, 1994, 1995, 1996, 1997, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -no_white -split 0 -address Riccardo Murri (murri@mail.dm.unipi.it) -dir html latex.

The translation was initiated by RiKKardo on 1999-08-02


Footnotes

... 1
WYSIWYG = ``What You See Is What You Get'', indica tutta quella classe di programmi (come ad esempio WordPerfect o StarWriter) che permettono di operare su un documento mentre lo si vede così come verrà stampato.

next up previous
Riccardo Murri (murri@mail.dm.unipi.it)