Il teTeX HOWTO: La guida locale a Linux-teTeX

Robert Kiesling v3.7, 9 Novembre 1998

Questo documento descrive i concetti di base relativi all’installazione e all’uso con le principali distribuzioni di Linux di teTeX, implementazione di TeX e LaTeX, e di alcuni pacchetti utili come Ghostscript. "The teTeX HOWTO: The Linux-teTeX Local Guide" è Copyright (c) 1997, 1998 di Robert A. Kiesling. I termini esatti per copiarlo sono riportati nell’introduzione e nelle appendici. I marchi registrati appartengono ai loro rispettivi proprietari. Reclami, suggerimenti, errori ed altro devono essere inviati a kiesling@terracom.net in modo che io possa mantenere questo documento il più completo ed aggiornato possibile. La traduzione italiana è stata curata da Samuele Maretti ( s.maretti@tiscalinet.it ).

1 Introduzione.

1.1 Copyright (in lingua originale).

The teTeX-HOWTO is copyright (C) 1997, 1998 by Robert Kiesling. Permission is granted to make and distribute verbatim copies of this manual provided that the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the sections entitled, “Distribution,” and, “GNU General Public License,” are included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions. except that the sections entitled, “Distribution,” and, “GNU General Public License,” may be included in a translation approved by the Free Software Foundation instead of in the original English. Please refer to Section 10 (Distribution and Copyright) for terms of copying.

(Ovvero: Volete distribuire copie di questo documento? Fatelo, purché vengano mantenute tutte le informazioni riguardanti il copyright. Volete distribuire delle copie modificate di questo documento? Fatelo, ma mantenete le condizioni descritte nelle sezioni “Distribution” e “GNU General Public License” (e ovviamente includete queste sezioni!) Volete tradurre questo documento? Fatelo, ma lasciate le sezioni “Distribution” e “GNU General Public License” in lingua originale, o includetene una traduzione approvata dalla Free Software Foundation e comunque traducetelo a partire dall’originale inglese! ndt)

1.2 Il software descritto in questo documento.

TeX, nel procedimento di preparazione di un documento, tratta solo la parte di formattazione. Generare un documento con TeX è come compilare codice sorgente: si ottiene del codice oggetto che deve però ancora essere linkato. Si prepara un file con un editor di testi (quello che è generalmente conosciuto come “word processing”) e si fa poi elaborare il file da TeX, ottenendo un file “indipendente dal dispositivo”, detto “file .dvi” (DeVice Independent).

Hai anche bisogno di programmi in grado di “tradurre” l’output in formato .dvi di TeX in un formato comprensibile dalla tua scheda video e dalla tua stampante. Questi programmi vengono detti, nell’insieme, “dviware”. Per esempio, lo stesso TeX fa solo richieste per i font da usare. p̀oi compito del driver .dvi fornire effettivamente quei font al dispositivo di uscita, sia esso lo schermo o la stampante. Questo passo ulteriore può sembrare eccessivamente complicato, ma l’astrazione fa sì che i documenti possano essere mostrati allo stesso modo su diversi dispositivi con minime modifiche, se non nessuna, da apportare al documento originale.

1.2.1 teTeX.

TeX è implementato praticamente per ogni sistema serio esistente al mondo (ed anche per qualcuno “meno serio”) quindi gli implementatori devono far sì che possa essere installato facilmente in ognuno di essi. Questo, unito all’intrinseca complessità di ogni installazione TeX, giustifica in parte la complessità di teTeX. Giustifica anche il fatto che installare da soli il sistema sia un lavoro non indifferente, e a meno che tu non abbia già familiarità con TeX è facile perdersi fra il gran numero di eseguibili, file di TeX, documentazione e font.

Per fortuna teTeX fa parte della distribuzione GNU/Linux. Puoi installare il pacchetto molto più facilmente usando gli strumenti di installazione GNU/Linux. Potresti avere già teTeX installato nel tuo sistema. In questo caso puoi saltare direttamente alla Sezione 2 (Usare teTeX).

Comunque, se vuoi installare il pacchetto, i file necessari per un’installazione funzionante di teTeX si trovano nei siti della rete di archivi CTAN. Una lista di tali siti si trova nella Sezione 7 (Appendice A).

CTAN è l’acronimo di Comprehensive TeX Archive Network (rete degli archivi completi di TeX), una serie di siti accessibili via FTP anonimo che archiviano programmi, macro, font e documentazione riguardanti TeX. Nella tua esperienza con TeX diventerai probabilmente familiare con almeno uno dei siti CTAN. In questo documento un nome di percorso come ˜ CTAN/contrib/pstricks significa “la directory contrib/pstricks del sito CTAN più vicino”.

L’installazione della distribuzione generica di teTeX descritta nella Sezione 8 (Installing the CTAN teTeX distribution) si concentra sulle versioni di Linux per i processori Intel. Installare teTeX su un hardware diverso dovrebbe richiedere solo la sostituzione degli eseguibili con quelli appropriati alla specifica versione durante il processo di installazione.

Oltre agli eseguibili, la distribuzione include tutti i pacchetti TeX e LaTeX, metafont e il suo codice sorgente, bibtex, makeindex, e tutta la documentazione... più di 4 Megabyte. La documentazione descrive ogni cosa di cui prevedibilmente avrai bisogno per cominciare. Quindi sarebbe bene installarla tutta. Non solo per leggerla, ma anche perché i documenti costituiscono dei buoni esempi di codice “reale” per TeX e LaTeX.

TeX è stato scritto dal Professor Donald Knuth della Stanford University. È un linguaggio di composizione tipografica di basso livello che costituisce la base per tutti i pacchetti di livello più alto come LaTeX. Fondamentalmente LaTeX è un insieme di macro che TeX può eseguire e che danno all’utente finale la possibilità di usare comodamente dei formati di documenti predefiniti. Se ti piacciono i formati di LaTeX probabilmente non avrai mai la necessità di imparare a programmare TeX a basso livello. La differenza fra i due linguaggi è analoga a quella fra l’assembler e il C. Puoi avere la velocità e la flessibilità di TeX o la comodità di LaTeX.

A proposito, le lettere della parola “TeX” sono lettere dell’alfabeto greco, tau-epsilon-chi. Non si tratta di un’associazione studentesca, ma della radice della parola greca techne, che significa “arte” e/o “scienza”. “TeX” non si pronuncia come la prima sillaba di “Texas”. TeX è generalmente pronunciato in modo da far rima con “yecch”, per usare l’esempio che il Professor Knuth fa in The TeXBook, che è uno dei testi di riferimento per TeX. (Deve essere pronunciato “tec”, come in “tecnologia”, insomma ndt). Scrivi “TeX” con questo esatto uso di lettere maiuscole e minuscole sui dispositivi a carattere, o, in TeX stesso, utilizzando la macro \TeX{}.

1.2.2 Editor di testo.

Per preparare un file per TeX può essere usato uno qualsiasi degli editor disponibili sotto Linux (jed, joe, jove, vi, vim, stevie, Emacs, microemacs) o comunque un editor in grado di leggere e scrivere file in formato ASCII standard. Quello che personalmente preferisco è GNU Emacs. Questo per diverse ragioni:

• Emacs dispone di modi TeX e LaTeX usando i quali puoi formattare, avere anteprime e stampare i documenti.

• Emacs può inserire automaticamente, mentre stai digitando, le “virgolette tipografiche” di TeX piuttosto di quelle "standard ASCII".

• Emacs dispone di un supporto integrato per Texinfo, un sistema di documentazione ipertestuale.

• Emacs è ampiamente supportato. La versione 19.34 e le successive, ad esempio, sono incluse nelle principali distribuzioni Linux statunitensi.

• Emacs fa tutto tranne imburrare il pane al mattino.

• Emacs è libero.

1.2.3 dvips.

dvips, scritto da Tomas Rokicki, genera un file Postscript a partire da un file .dvi. Inoltre esegue Metafont se è necessario per generare i font bitmapped di cui ha bisogno oppure usa i font Postscript. Può anche tagliare o ridimensionare le pagine e costruire elementi grafici a partire da istruzioni in un file TeX o LaTeX.

Il programma dvips fa parte della distribuzione teTeX. Ne parliamo approfonditamente nella Sezione 5 (Mettere insieme testo e grafica con dvips)

Molta della complessità di TeX, e quindi anche di LaTeX, deriva dall’implementazione di vari sistemi di font e dal modo in cui questi font sono specificati. Un importante miglioramento di LaTeX 2e rispetto al suo predecessore è stato il modo in cui l’utente può specificare i font, detto in precedenza “New Font Selection Scheme” (nuovo schema di selezione del fonti). Se ne discute nella Sezione 4.1.1 (Caratteri e stili), 3.2 (TeX Font Commands) e 6 (Usare font PostScript).

teTeX viene distribuito insieme a una dozzina circa di font, e questo è abbastanza per cominciare. Ci sono anche le descrizioni della metrica dei font, nei file .tfm (TeX font metric). Per generare gli altri font di cui puoi avere bisogno devi solo installare i sorgenti di metafont. I vari driver .dvi provvederanno automaticamente a richiamare metafont per generare “al volo” i caratteri Computer Modern di cui hanno bisogno.

2 Usare teTeX.

Almeno teoricamente tutto è installato correttamente ed è pronto a funzionare. teTeX è un pacchetto molto grosso. Vorrai quindi imparare teTeX, come forse hai già fatto con altri programmi complessi, lentamente, invece di essere sommerso dalla sua complessità.

Allo stesso tempo, però, vogliamo fargli fare qualcosa di utile. Quindi invece di stare a guardare TeX mentre compone

``Hello, World!''

come il Professor Knuth suggerisce nel The TeXBook, eseguiremo TeX su un paio di documenti di teTeX per provare l’installazione.

2.1 Stampiamo la documentazione.

Le prime volte che usi teTeX sarebbe meglio che tu ti collegassi come root. Se non lo fai, metafont può non essere capace di creare le directory necessarie per i suoi font. Un’opzione del programma texconfig consente di dare il permesso di scrittura a tutti sulle directory dei font, ma se stai lavorando su un sistema multiutente questo, per motivi di sicurezza, non è desiderabile.

Comunque, se non hai i privilegi per scrivere sulle directory in cui vengono immagazzinati i font, Metafont si lamenterà di non poter creare le directory. Non verrà prodotto nulla perché non ci sono i caratteri necessari. Questo non è un grosso problema. Scollegati e ricollegati come root, poi ripeti l’operazione che ha causato problemi.

Il bello di teTeX è che se fai qualche errore che lo fa “saltare”, non vengono mai fatti danni. Non è come un compilatore con il quale puoi ad esempio danneggiare tutta la partizione di root se un puntatore punta da qualche parte non prevista. Cosa? Non hai ancora letto il manuale di teTeX? Beh, è ovvio. Si trova ancora nella distribuzione, in forma di codice sorgente, ed aspetta di essere elaborato.

Quindi non aspettiamo oltre, sarai senz’altro ansioso di leggerlo. Si trova nella directory

/usr/lib/teTeX/texmf/doc/tetex.

Il file che contiene il manuale in formato LaTeX si chiama TETEXDOC.tex (l’estensione .tex viene usata sia per i file di TeX che per quelli di LaTeX. Alcuni editor, come emacs, sono in grado di riconoscere la differenza). C’è anche un file TETEXDOC.dvi che è bene tenere in un posto sicuro (ad esempio un’altra directory) nel caso più tardi tu voglia provare i tuoi driver .dvi. Dopo averlo messo via, digita

latex TETEXDOC.tex

LaTeX scriverà alcuni messaggi di avvertimento. Il primo,

LaTeX Warning: Label(s) may have changed. Rerun to get the
cross-references right.

(le etichette potrebbero essere cambiate. Riesegui per avere i giusti riferimenti incrociati) è standard. È normale costruire l’indice di un documento eseguendo due volte LaTeX sul documento stesso. Quindi, ripeti il comando. Gli altri avvertimenti possono essere tranquillamente ignorati. Ti informano del fatto che alcuni dei percorsi FTP di cui si parla nel documento sono troppo lunghi per lo spazio loro assegnato. Le Sezioni 3.3 (Stile e dimensioni dei paragrafi) e 3.3.1 (Tolleranze) descrivono più in dettaglio la spaziatura orizzontale.

Noterai che teTeX ha prodotto numerosi file da TETEXDOC.tex. Quello che ci interessa è TETEXDOC.dvi: è il file indipendente dal dispositivo che puoi mandare indifferentemente allo schermo o alla stampante. Se esegui teTeX sotto X Windows, puoi avere un’anteprima del documento con xdvi.

Per i nostri scopi supporremo che tu abbia una HP LaserJet II. A questo punto dovresti dare il comando

dvilj2 TETEXDOC.dvi

che produce, a partire da file TETEXDOC.dvi, un file in formato PCL che contiene anche i “soft font”, cioè informazioni sui font che verranno trasmesse alla stampante. Questa possibilità non è offerta da TeX o da LaTeX, ma da dvilj2. Gli altri driver .dvi offrono la possibilità di sfruttare le capacità del particolare dispositivo che supportano. dvilj2 risponderà alle richieste di font fatte nel documento LaTeX fornendo il font più simile disponibile nel sistema; nel caso di un documento contenente solo testo, come TETEXDOC.tex, non ci sono molti problemi. Tutti i font richiesti vengono infatti generati da metafont, che viene chiamato automaticamente da dvilj2 e provvede a creare i font che non sono già sul sistema (la prima volta che esegui dvilj2 il programma può aver bisogno di generare tutti i font). Ci sono alcune opzioni di dvilj2 che controllano la generazione dei font, e ne puoi trovare una descrizione nella relativa pagina di manuale. In effetti non ci dovrebbe essere bisogno di eseguire direttamente metafont; se questo bisogno invece si presenta c’è qualcosa che è andato storto nell’installazione. Tutti i driver .dvi chiamano direttamente metafont attraverso la libreria di ricerca dei percorsi kpathsea (la descrizione di questa va oltre gli scopi di questo documento) e non dovrai lavorare più con metafont per ora (sono forniti tutti i sorgenti metafont della libreria di font Computer Modern).

Puoi stampare TETEXDOC.lj con il comando

lpr TETEXDOC.lj

Ci può essere bisogno di installare un filtro di stampa in grado di capire il PCL.

La teTeX Guide, un documento di nove pagine, dà alcune informazioni utili per affinare ulteriormente la configurazione del sistema: di qualcosa abbiamo già parlato, di molto altro non parlerò nel teTeX HOWTO.

Non ho potuto sperimentare di persona alcune delle informazioni contenute nella prossima sezione poiché ho una stampante non PostScript HP Deskjet 400, a getto d’inchiostro a colori, collegata alla porta parallela del computer. Comunque il fatto di non possedere una stampante PostScript non rappresenta un ostacolo alla capacità di stampare testi e grafica nei tuoi documenti. Ghostscript si trova nella maggior parte delle distribuzioni Linux e potrebbe essere già installato nel tuo sistema.

3 Comandi TeX.

È facile preparare documenti da elaborare con TeX. Prendi un file di testo, assicurati che fra i paragrafi ci sia una linea vuota, ed esegui TeX su quel file con il comando

TeX il_tuo_file_di_testo

Il risultato sarà un file con lo stesso nome ed estensione .dvi. TeX formatta il testo usando il font Computer Modern Roman corpo 10, interlinea singola e giustificazione su entrambi i margini. Se ricevi messaggi d’errore a causa di caratteri speciali, come ad esempio il simbolo di dollaro, inserisci prima di essi il carattere backslash e riesegui TeX sullo stesso file. A questo punto puoi elaborare il file prodotto da TeX con il driver .dvi che preferisci (vedi sopra) per stampare il documento.

Una peculiarità dei file di input di TeX è l’uso delle virgolette aperte e chiuse, che devono essere inserite come due accenti gravi o due apostrofi. Emacs, in modo TeX, è in grado di farlo automaticamente.

"Queste sono virgolette ASCII."
``Queste sono virgolette `TeX-style'.''

3.1 Una panoramica dei comandi.

I comandi in TeX iniziano con un backslash (“\”). Per esempio, il comando per cambiare la spaziatura fra le linee è

\baselineskip=24pt

La “baseline” è il punto più basso dei caratteri su una linea, senza contare i discendenti. La distanza fra le baseline di due linee è la \baselineskip, a cui è assegnato un valore di 24 punti.

Le misure o dimensioni in TeX sono date spesso nelle seguenti unità di misura:

pt                % Punti:          1/72 in.
pc                % Pica:           12 pt.
in                % Inch (pollici): 72.27 pt.
cm                % Centimetri:     2.54 cm = 1 in.
mm                % Millimetri:     10 mm = 1 cm.

Alcuni comandi non richiedono di specificare delle misure. Ad esempio:

\smallskip        % Approssimativamente 3 punti.
\medskip          % Due \smallskip.
\bigskip          % Due \medskip.

\smallskip inserisce uno spazio verticale di 3 punti nel documento. Le misure sono approssimate perché TeX deve aggiustare le dimensioni per interruzioni di pagina, titoli di sezione e altre unità di spazio verticale. Questo vale anche per la spaziatura orizzontale.

\hsize=6.5in

Questo comando pone la lunghezza delle linee a 6.5 pollici. TeX prova a riempire la linea aggiustando lo spazio fra le parole e a volte fra le lettere. Se TeX non riesce a riempire una linea rimanendo entro una certa tolleranza produce un messaggio di avvertimento, e aggiusta la spaziatura orizzontale nella linea meglio che può. Le tolleranze di formattazione sono discusse nella sezione 3.3.1 (Tolleranze).

Ci sono molti altri comandi che specificano dimensioni e tolleranze orizzontali e verticali, e quelli usati più comunemente sono descritti di seguito.

3.2 Comandi di cambio dei font.

In TeX il font predefinito è il Computer Modern Roman 10 punti. Per specificare uno stile di carattere diverso, come corsivo, grassetto o a spaziatura fissa, si possono usare i comandi seguenti.

\rm          % Tondo (predefinito).
\it          % Corsivo.
\bf          % Grassetto.
\tt          % Spaziatura fissa (telescrivente).
\sl          % Obliquo.

I comandi cambiano lo stile dei caratteri dal punto in cui appaiono nel testo, come nell’esempio seguente.

Questo testo è in Tondo, \it e questo è in corsivo. \bf Questo testo è
in grassetto e \rm questo testo è di nuovo in tondo.

Per specificare un font per il tuo documento, usa il comando \font.

\font\romantwelve=cmr12

Questo crea il comando di cambio font \romantwelve, che, quando viene usato nel testo, cambia il font in Computer Modern Roman, 12 punti.

\romantwelve
Questo è il font Computer Modern Roman di 12 punti.

Per avere informazioni sui font compresi nella distribuzione teTeX leggi il file:

/usr/lib/teTeX/texmf/doc/fonts/fontname/fontname.dvi

Se vuoi stampare un esempio di un font, esegui TeX sul file

/usr/lib/teTeX/texmf/tex/plain/base/fontchart.tex

ed inserisci, quando ti viene richiesto, il nome del font che vuoi stampare. Puoi anche cambiare la dimensione di un font per ottenere vari effetti. L’ingrandimento dei font avviene in maniera esponenziale, e viene specificato con il comando scaled \magstep, che viene messo dopo il comando di cambio di font.

\font\sfmedium=cmss12 scaled \magstep 1

Questo comando produce un font sans serif che è del 120 percento più grande del font Computer Modern sans serif 12 punti. I font possono essere ingranditi a passi da 0 a 5. Ciascun passo produce un ingrandimento del 120 percento rispetto al precedente.

3.3 Stili e dimensioni dei paragrafi.

Come abbiamo detto in precedenza, TeX compone normalmente il testo con il font Computer Modern Roman di 10 punti. La lunghezza di una linea è data da \hsize, il cui valore predefinito è 6.5 pollici. Se vuoi ad esempio cambiare il valore di \hsize a 5.5 pollici usa questo comando.

\hsize=5.5in

In TeX una dimensione è un’unità di lunghezza modificabile, orizzontale o verticale. Nella definizione di una dimensione può essere specificato quanto la dimensione può essere incrementata o decrementata. Strettamente legato alla dimensione e lo skip (“salto”), che è una dimensione posta in uno dei registri interni di TeX. Gli skip sono definiti con il comando \newskip. La dimensione di \smallskip, così come viene definita da TeX, è:

\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt

Il comando \smallskip è un’abbreviazione di

\vskip\smallskipamount

Ci sono alcune dimensioni che controllano il formato della pagina. Ne trovi un riassunto nella sezione 3.4 (Formato della pagina). TeX formatta i paragrafi giustificando sia il margine sinistro che il margine destro. Se vuoi che il testo sia giustificato solo a sinistra puoi usare il comando:

\raggedright

Per comporre una linea giustificata a destra usa il comando \rightline:

\rightline{Questa è la linea da comporre.}

Il comando \line compone il testo che gli viene dato come argomento in modo che riempia l’intera linea.

\line{Questo testo verrà spaziato per riempire l'intera linea.}

Per cambiare il margine sinistro definisci il valore di \hoffset, come in questo esempio:

\hoffset=1.5in

Il comando \parindent specifica il valore dell’indentazione della prima linea di ciascun paragrafo.

\parindent=.5in

Altre due dimensioni, \leftskip e \rightskip, definiscono l’indentazione rispettivamente del margine sinistro e destro dei paragrafi che le seguono.

\leftskip=.5in
\rightskip=.5in

Il comando \narrower è equivalente a

\leftskip=\parindent
\rightskip=\parindent

Cioè \narrower restringe i margini del paragrafo di un valore pari a \parindent

Come abbiamo detto in precedenza, \baselineskip specifica la distanza fra le linee. Il valore predefinito è 12 punti. Per avere approssimativamente un’interlinea doppia usa il comando seguente.

\baselineskip=\baselineskip*1.6

Il comando \parskip specifica una distanza fra i paragrafi che viene aggiunta a \baselineskip. Normalmente non viene aggiunto nessuno spazio, ma la distanza fra i paragrafi può essere ridotta fino a 1 punto per riempire correttamente la pagina. Per inserire una linea bianca fra i paragrafi usa il comando:

\parskip=\baselineskip

3.3.1 Tolleranze. (Cosa sono quei rettangoli neri dopo ogni linea?)

TeX formatta normalmente il testo rispettando delle strette tolleranze. Se, per qualche ragione, il testo non può essere formattato rispettando tali tolleranze, TeX produce un messaggio di avvertimento e formatta il testo meglio che può. Se il testo deve essere allargato troppo per riempire la linea, TeX ti avverte che la “\hbox is underfull” (c’è troppo poco testo nell’“hbox”). Se il testo deve essere “compresso” troppo per entrare nella linea viene prodotto un messaggio di avvertimento “overfull \hbox” (c’è troppo testo nell’“hbox”).

Per ogni overfull \hbox TeX mette uno slug, un rettangolo nero, dopo la linea. Lo slug indica che TeX non ha potuto formattare la linea rispettando la tolleranza specificata dal parametro \hbadness.

Una misura di quanto il testo “stia bene” nelle dimensioni specificate è data dalla sua badness (letteralmente “cattiva qualità”), che è un numero fra 0 e 10000. Una badness di 0 indica che il testo si adatta perfettamente alla linea, e una badness di 10000 significa che il testo probabilmente non si adatterà mai alla linea. Il valore predefinito di \hbadness è 1000. Se poni \hbadness a 10000, TeX non segnalerà linee con troppo poco testo.

A volte TeX permette che una linea si estenda oltre il margine destro. Questa è una precisa scelta estetica dell’autore di TeX. Il parametro \hfuzz determina quanto le linee possono oltrepassare il margine, ed il suo valore predefinito è di 0.1 punti. Se il testo non si adatta alla linea, il parametro \tolerance determina il modo in cui TeX tratterà l’“overfull \hbox”. Il valore predefinito di \tolerance è 200. Ponendo il valore di \tolerance a 1000 non verranno più emessi messaggi di avvertimento “overfull \hbox” nè stampati slug.

3.4 Formato della pagina.

Oltre alle dimensioni del margine sinistro e della lunghezza della linea, che abbiamo descritto nella sezione precedente, TeX permette di specificare i margini superiore ed inferiore e la spaziatura verticale.

In maniera simile alle dimensioni \hsize e \hoffset, descritte nella sezione precedente, esistono in TeX i comandi \vsize e \voffset. Il valore predefinito di \vsize è 8.9 pollici, e quello di \voffset è 0.

Normalmente teTeX posiziona l’inizio della prima linea di testo ad un pollice dal margine superiore della pagina e ad un pollice dal margine sinistro. Puoi far sì che il testo inizi ad una distanza minore dal margine superiore della pagina usando il comando:

\voffset=-0.5in

Se vuoi aggiungere dello spazio verticale in un documento puoi usare i comandi \smallskip, \medskip, e \bigskip, che aggiungono approssimativamente 3, 6 e 12 punti di spazio verticale. Queste misure sono approssimate; TeX infatti può aggiustarle fino ad un punto in modo da riempire correttamente la pagine.

Il comando \vfill aggiunge uno spazio verticale aggiustabile fra i paragrafi su una pagina. Questo spazio può essere allungato infinitamente, ed aggiungerà spazio in modo da riempire il più possibile il resto della pagina. Se vuoi specificare una dimensione, usa \vskip come in:

\vskip 10pt

I comandi \hss e \vss sono simili a \hfill e \vfill tranne per il fatto che lo spazio da essi prodotto può essere sia ristretto che allungato infinitamente.

I comandi \vskip e \vfill producono delle lunghezze “flessibili”. Non aggiungono spazio dove non c’è testo, ad esempio all’inizio di una pagina. Se vuoi inserire uno spazio “assoluto” usa il comando \vglue.

TeX riempie lo spazio definito dalla dimensione \vsize con la maggiore quantità di testo possibile prima di iniziare una nuova pagina. Per forzare un’interruzione di pagina usa la sequenza \vfill \eject. Se \vfill non venisse usato, nel testo che precede \break verrebbe modificata la spaziatura in modo da riempire la pagina.

Se vuoi che TeX sia più flessibile riguardo all’altezza della pagina, usa nel tuo documento il comando \raggedbottom. Con questo comando TeX modificherà leggermente il margine inferiore di ciascuna pagina in modo da migliorare la spaziatura verticale.

3.5 Numeri di pagina, testatine e fondi di pagina.

teTeX di solito mette il numero di pagina al centro del margine inferiore della pagina. Se vuoi cambiare posizione e stile del numero di pagina puoi specificare testatine e fondi pagina diversi cambiando la definizione di \headline e \footline. La definizione iniziale di \footline contiene il comando \folio, che stampa il numero di pagina. La definizione di \headline è \hfil, che fa sì che venga stampata una linea vuota.

Il comando \pageno è un sinonimo del contatore interno delle pagine di TeX. Puoi cambiare il numero di pagina cambiando il valore di \pageno. Se \pageno è negativo i numeri vengono stampati come numeri romani.

\pageno=10
\pageno=-1

Il comando \nopagenumbers è un’abbreviazione di:

\headline={\hfil}
\footline={\hfil}

Il fondo pagina predefinito contiene anche il comando di font \tenrm. Con questo i numeri di pagina vengono stampati con il font Roman di 10 punti. Se vuoi che vengano stampati con il font Roman di 12 punti dovresti prima definire un font Roman di 12 punti, e usarlo nella definizione di \footline. I comandi di font vengono discussi nella sezione 3.2 (Comandi di font).

\font\rmdodici=cmr12
\footline={\hss\rmdodici\folio\hss}

Puoi mettere una linea orizzontale, detta rule, all’inizio di ogni pagina ridefinendo \headline nel modo seguente:

\headline={\hrulefill}

Per usare testatine diverse nelle pagine pari e dispari usa il comando \ifodd, che ha la forma:

\ifodd[condizione][azione-condizione_vera]\else[azione-condizione_falsa

Un esempio di \headline che usa testatine differenti sulle pagine pari e dispari è il seguente:

\headline={\ifodd\pageno testatina-pagine_dispari \else testatina-pagine_pari}

Questo comando \ifodd usa il primo argomento se il numero di pagina è dispari, altrimenti usa il secondo argomento.

3.6 Titoli e macro.

In TeX l’unico comando disponibile per i titoli di sezione è \beginsection. Esso lascia uno spazio prima del proprio argomento, stampa il testo del titolo in grassetto, aggiunge uno \smallskip dopo il testo del titolo e inizia il paragrafo successivo senza indentarlo.

I comandi per capitoli e sezioni disponibili in LaTeX, e descritti di seguito, aggiungono la numerazione delle sezioni, stampano i nomi e i numeri delle sezioni nella testata delle pagine e aggiungono le sezioni all’indice.

In TeX puro dovresti scrivere da solo queste funzioni. Il comando \def permette di definire dei nuovi comandi. Supponi di voler stampare un titolo di capitolo. Per prima cosa specifica il font che vuoi usare. Un font sans serif piuttosto grande da usare nei titoli di capitolo potrebbe essere definito nel modo seguente:

\font\fontsanscapitolo=cmss12 scaled \magstep 4

Puoi usare il comando \fontsanscapitolo dovunque per usare questo font, che è alto circa 24 punti. Comunque, in questo esempio, verrà usato principalmente nel comando \titolocapitolosans. Ecco la definizione di quest’ultimo:

\def\titolocapitolosans#1{\hbox{}\bigskip\bigskip
  \noindent{\leftline{\fontsanscapitolo#1}}
  \par\bigskip\bigskip\noindent}

Nella prima linea, \hbox{}\bigskip pone uno spazio di 12 punti all’inizio della pagina inserendo un \hbox{} vuoto. La linea con il titolo del capitolo non è indentata, e non lo è neppure il paragrafo che la segue. Se inserisci una linea vuota fra la macro \titolocapitolosans e il paragrafo seguente sarà questa linea bianca a non essere indentata, e non il testo del paragrafo seguente. Per avere una formattazione corretta usa il comando \titolocapitolosans come in questo esempio.

Nella definizione, #1 viene sostituito con il primo argomento di \titolocapitolosans; cioè, il titolo del capitolo. In TeX, i parametri vengono dichiarati, all’interno delle definizioni, con #1, #2, #3 e così via. Un esempio di come usare \titolocapitolosans è:

\titolocapitolosans{Capitolo 1}
Questo è il testo iniziale del primo paragrafo del capitolo. Il paragrafo
non viene indentato. Il titolo del capitolo è "Capitolo 1."

4 Comandi LaTeX.

4.1 Struttura del documento.

I documenti da elaborare con LaTeX devono rispettare qualche regola in più, ma la preparazione di documenti complessi è molto più semplice.

Essenzialmente LaTeX è un linguaggio di marcatura per documenti il cui scopo è quello di mantenere separati lo stile ed il contenuto. Per esempio, per ottenere un titolo di sezione con TeX dovresti porre uno spazio di 36 punti prima del titolo, poi specificare che il titolo deve essere composto in grassetto, con un carattere di corpo 24, poi copiare il testo del titolo e il numero di pagina in cui esso appare nell’indice, infine lasciare uno spazio di 24 punti dopo il titolo. Con LaTeX, invece, è sufficiente usare il comando \section{}, che fa tutto questo da solo. Se hai bisogno di cambiare il formato dei titoli di sezione puoi cambiare la definizione di \section{} invece del testo nel documento. Grazie a questo se hai bisogno di cambiare il formato di documenti lunghi più di una dozzina di pagine puoi risparmiare ore di lavoro.

Tutti i documenti LaTeX hanno tre sezioni: un preambolo (preamble), il corpo (body) del testo, e un “postambolo” (postamble). I termini inglesi indicati fra parentesi fanno parte del gergo tecnico standard e sono molto usati fra i TeXnici.

Nel preambolo, come minimo, viene specificato il tipo del documento da produrre (la classe del documento) e viene poi inserita una linea che indica l’inizio del corpo del testo. Per esempio:

\documentclass{article}
\begin{document}

Il “postambolo” è generalmente molto semplice. Tranne in casi molto particolari contiene una sola linea:

\end{document}

(fine del documento).

Nota la coppia \begin{document} e \end{document}: in LaTeX questo definisce un environment. Tutto il testo deve essere all’interno di un environment, e molti comandi funzionano solo all’interno dell’environment in cui sono chiamati. L’environment document è comunque l’unico in cui LaTeX impone questa convenzione. Cioè, è l’unico environment assolutamente necessario in un documento (un’eccezione è la classe letter, lettera, che richiede anche \begin{letter} e \end{letter}. Vedi la sezione 4.1.3 (Lettere)). Comunque, molte istruzioni per la modifica del formato sono specificate come environment. Sono descritte nelle sezioni seguenti.

Nelle classi di documento si possono specificare dei parametri: per esempio, se avessimo voluto usare font di corpo 12 invece del corpo 10 nell’esempio precedente avremmo potuto specificare

\documentclass[12pt]{article}

La classe di documento article (articolo) provvede alle modifiche necessarie.

Le classi di documento usate più frequentemente sono poche. Sono descritte nel seguito. La classe report (relazione) è simile alla classe article, tranne per il fatto che produce una pagina separata con il titolo e fa sì che ogni sezione inizi in una nuova pagina. La classe letter include definizioni speciali per indirizzi, saluti e formule di chiusura, alcune delle quali sono descritte nel seguito.

Puoi includere del codice LaTeX “inscatolato”, detto comunemente package, con il comando \usepackage{}.

\usepackage{fancyhdr}

Questo comando include il file di stile fancyhdr.sty da una delle directory TEXINPUTS che tu e teTeX avete specificato durante i processi di installazione e configurazione.

\documentclass{article}
\usepackage{fancyhdr}
\begin{document}

Nota che le dichiarazioni \usepackage{} sono fatte prima di \begin{document}, cioè nel preambolo.

fancyhdr.sty estende il comando \pagestyle{} in modo che tu possa creare testatine e fondi pagina personalizzati. Molte classi di documento LaTeX definiscono questi elementi nei seguenti stili di pagina standard:

\pagestyle{plain}       % stile di pagina standard -- il numero di pagina è
                        % centrato in basso sulla pagina.
\pagestyle{empty}       % nessuna testatina nè fondo pagina.
\pagestyle{headings}    % stampa il numero di sezione ed il numero di pagina
                        % in alto sulla pagina.
\pagestyle{myheadings}  % stampa informazioni personalizzate nella testatina.

Tutto quello che si trova a destra del segno di percento su una linea è un commento.

Il comando \pagestyle{} ha effetto solo nella pagina successiva. Per cambiare testatine e fondi pagina nella pagina corrente usa invece il comando

\thispagestyle{stile_di_pagina}

4.1.1 Stili di caratteri.

Gli stili di caratteri dipendono in parte dal font specificato nel documento. Comunque, i caratteri in grassetto e in corsivo dovrebbero essere disponibili per ogni font presente nel sistema. Può essere usata anche la sottolineatura sebbene la sua gestione presenti problemi particolari. Vedi la sezione 4.2 (Pacchetti di estensione per LaTeX ed altre risorse).

Ci sono vari modi per evidenziare un testo. Quello che può essere usato su tutti i sistemi è il comando \em. Tutto il testo su cui agisce viene reso in corsivo. Per esempio:

Questa parola verrà {\em evidenziata.}

Se il testo in corsivo è seguito da testo non in corsivo puoi specificare l’uso di un fattore di correzione. Il comando da usare è \/.

Questo esempio {\em sarà\/} stampato correttamente.
Questo esempio {\em non} sarà stampato correttamente.

Meno portabili, ma ancora accettabili in casi in cui sono usati da soli, sono i comandi \it, \bf, e \tt; i caratteri su cui agiscono verranno stampati rispettivamente in corsivo, in grassetto e con spaziatura fissa.

{\tt Questo testo sarà stampato con spaziatura fissa,}
{\it questo in corsivo,}
{\bf e questo in grassetto\dots} tutto in un paragrafo.

Il comando \dots stampa tre puntini di sospensione che non verranno divisi fra più linee.

La versione più recente di LaTeX, che è quella che hai, include dei comandi in grado di trattare correttamente i casi in cui un comando di evidenziazione ne sostituirebbe un altro.

Questo {\it non è {\bf grassetto corsivo!}}

Ciò che accade è che teTeX compone il testo in corsivo finché non incontra il comando \bf; poi inizia a comporlo in grassetto.

Per risolvere questa situazione, lo schema di selezione dei font NFSS richiede tre parametri per ogni carattere: forma, spessore del tratto e famiglia. Non tutti i font hanno tutti questi stili. Nel caso abbia bisogno di sostituire il font richiesto con un altro, LaTeX stamperà un messaggio di avvertimento.

Puoi specificare le seguenti forme per i font:

\textup{testo}          % testo tondo (predefinito)
\textit{testo}          % corsivo
\textsl{testo}          % inclinato
\textsc{testo}          % maiuscoletto

Questi sono i due spessori del tratto che la maggior parte dei font ha:

\textmd{testo}          % spessore medio (predefinito)
\textbf{testo}          % grassetto

Ci sono tre famiglie generalmente disponibili.

\textrm{text}           % roman (predefinito)
\textsf{text}           % senza grazie
\texttt{text}           % macchina da scrivere (spaziatura fissa, simile al
                        % Courier)

Usando questi comandi per scegliere gli stili dei caratteri puoi combinarne gli effetti

\texttt{\textit{Questo esempio darà probabilmente luogo ad una
sostituzione di font, poiché molti font non includono uno stile macchina
da scrivere corsivo.}}

La famiglia applicata normalmente è Computer Modern, che è un font bit-mapped. Altre famiglie di font sono in formato PostScript Type 1. Vedi la sezione 6 (Usare font PostScript) per i dettagli.

Ci sono anche vari accenti e caratteri speciali che puoi usare nei tuoi documenti. Quelli che seguono sono solo alcuni fra quelli disponibili (prova a stamparli sulla tua stampante)

\'{o}   \`{e}   \^{o}   \"{u}   \={o}   \c{c}   `? `!
\copyright      \pounds         \dag

Infine, ci sono caratteri che vengono interpretati come comandi da TeX e LaTeX. Di uno abbiamo già parlato, ed è il simbolo di dollaro. L’insieme completo dei “meta caratteri”, che debbono essere preceduti da un backslash per poter essere usati, è il seguente:

# $ % & _{ }

È possibile usare anche diversi alfabeti, ad esempio greco e cirillico. Con LaTeX è facile comporre testi non solo in inglese: questo argomento è trattato in uno dei testi di cui parliamo qui.

4.1.2 Margini ed interlinee.

Modificare i margini in un documento TeX o LaTeX non è una cosa semplicissima. Molto dipende dall’indentazione relativa del testo di cui vuoi aggiustare i margini. Anche la posizione dei comandi di modifica dei margini è significativa.

Per i cambiamenti che devono avere effetto su un intero documento LaTeX, è possibile usare i comandi \evensidemargin e \oddsidemargin. Modificano il margine sinistro delle pagine pari e dispari rispettivamente. Per esempio

\evensidemargin=1cm
\oddsidemargin=1cm

aggiunge 1 centimetro al margine sinistro standard delle pagine pari e dispari, che è di un pollice (2,54 cm). Questi comandi influenzano l’intero documento e spostano l’intero corpo del documento a destra e sinistra sulla pagina, non importa l’impostazione locale dell’indentazione, per cui risulta sicuro usare environment LaTeX come verse e list.

Quelle che seguono sono alcune macro per la modifica dei margini che ho scritto. Agiscono in modo differente dai comandi citati. Poiché usano comandi in TeX puro, non è garantito che rispettino i margini che sono stati impostati da un environment LaTeX, ma le puoi mettere ovunque in un documento e cambiare i margini da quel punto in poi.

%%  margins.sty -- v. 0.1   di Robert Kiesling
%%  Copie di questo codice possono essere distribuite liberamente in
%%  forma di testo.
%%
%%  Alcuni comandi elementari TeX per la modifica dei margini. Le lunghezze
%%  sono in pollici:
%%
%%  \leftmargin{1}   %% imposta il margine sinistro a 1 pollice
%%  \leftindent{1}   %% imposta l'indentazione dei paragrafi seguenti a
%%                      1 pollice
%%  \rightindent{1}  %% imposta il margine destro dei paragrafi seguenti
%%                      a 1 pollice
%%  \llength{3}      %% imposta la lunghezza delle linee seguenti a 3 pollici
%%
\message{Margins macros...}
\def\lmargin#1{\hoffset = #1 in}

\def\lindent#1{\leftskip = #1 in}
\def\rindent#1{\rightskip = #1 in}
\def\llength#1{\hsize = #1 in}
%%
%% (End of margins macros.}

Metti questo codice in un file di nome margins.sty nella tua directory $TEXINPUTS locale. I comandi sono spiegati nei commenti del file. Per usarli in un documento devi includere il file con il comando

\usepackage{margins}

nel preambolo.

Già che siamo in argomento: se non vuoi che il testo venga giustificato a destra, che è quello che viene fatto normalmente, puoi chiedere a LaTeX di usare lo sbandieramento a destra con il comando:

\raggedright

Anche impostare l’interlinea ha le sue difficoltà.

baselineskip è la misura della distanza fra le linee del testo. È dato come misura assoluta. Ad esempio

\baselineskip=24pt

oppure, in modo migliore:

\setlength{\baselineskip}{24pt}

La differenza fra le due forme è che setlength rispetterà le impostazioni che possono essere in effetto nel momento in cui usi il comando.

Il problema nell’uso di baselineskip è che viene modificata anche la distanza fra titoli di sezione, note a piè di pagina e così via. Devi quindi assicurarti che baselineskip sia impostato correttamente per l’elemento di testo che stai componendo. Ci sono, comunque, packages LaTeX come setspace.sty che ti aiuteranno in queste circostanze. Vedi la sezione 4.2 (Pacchetti di espansione per LaTeX ed altre risorse).

4.1.3 Classi di documenti.

In LaTeX sono disponibili classi di documenti che forniscono formati standard per i documenti, ad esempio environment che facilitano la formattazione di liste, citazioni, note a piè di pagina ed altri elementi di testo. Le classi di documenti più usate sono descritte nelle sezioni seguenti.

Articoli e relazioni. Come abbiamo già detto, la classe article e la classe report sono simili. Le differenze principali consistono nel fatto che la classe report crea una pagina separata per il titolo e fa cominciare ogni sezione su una nuova pagina.

Per inserire in queste classi di documento titoli, abstract (riassunti) e nome dell’autore puoi ad esempio usare:

\title{Le abitudini di accoppiamento dei Cactus}
\author{John Q. Public}
\abstract{Descrizione di come i comuni cactus del deserto cercano delle
pozze d'acqua adatte per poter effettuare i loro rituali di accoppiamento}

nel preambolo. Poi, il comando

\maketitle

dato all’inizio del testo genererà una pagina con il titolo nella classe report, oppure, nel caso della classe article, il titolo e l’abstract all’inizio del documento.

Le sezioni possono essere definite con comandi come i seguenti:

\section
\subsection
\subsubsection

Questi comandi producono delle sezioni numerate come quelle comunemente usate nei documenti tecnici. Per avere delle sezioni non numerate usa

\section*
\subsection*
\subsubsection*

e così via.

In LaTeX sono disponibili molti environment per formattare del materiale da mettere in evidenza. Puoi inserire delle citazioni usando l’environment quotation:

\begin{quotation}
Inizio della citazione...
... fine della citazione.
\end{quotation}

Per citazioni più corte puoi usare l’environment quote.

Per formattare i versi di una poesia usa l’environment verse:

\begin{verse}
Nel mezzo del cammin di nostra vita\\
mi ritrovai per una selva oscura\\
chè la diritta via era smarrita
\end{verse}

Nota che per andare a capo al momento giusto devi usare dei doppi backslash, altrimenti LaTeX riempirà le linee in un environment verse come fa in qualsiasi altro environment.

Ci sono molti modi per fare una lista. Per avere una lista puntata puoi usare l’environment list:

\begin{list}
\item
Questa è la prima voce della lista.
\item
Questa è la seconda voce della lista...
\item
... e così via.
\end{list}

Per una lista numerata usa l’environment enumerate:

\begin{enumerate}
\item
Voce numero 1.
\item
Voce numero 2.
\item
\dots
\end{enumerate}

Una lista di descrizioni usa l’environment description.

\begin{description}
\item{Forno} Sporco, ha bisogno di una resistenza nuova.
\item{Frigorifero} Sporco. Mi dispiace.
\item{Lavandino e scarico} Sporco, il rubinetto dell'acqua fredda perde.
\end{description}

Lettere. La classe letter usa delle definizioni che consentono di formattare lettere d’affari.

L’environment letter ha bisogno di un argomento, l’indirizzo del destinatario della lettera. Il comando address, che deve essere inserito nel preambolo, definisce l’indirizzo del mittente. Il comando signature definisce il nome del mittente come deve apparire in chiusura.

Il sorgente LaTeX di una semplice lettera d’affari può essere simile a questo.

\documentclass[12pt]{letter}
\signature{John Q. Public}
\address{Viale dei giardini, 123\\00100 Roma\\Tel: 123/456-7890}
\begin{document}
\begin{letter}{ACME Mattoni SpA \\Corso Raffaello\\20100 Milano}
\opening{Gentile Signore/Signora:}
A proposito di uno dei vostri mattoni che ho trovato sul tappeto del mio
soggiorno insieme ad alcuni frammenti del vetro rotto della mia finestra...
(Resto del corpo della lettera).
\closing{Distinti saluti,}
\end{letter}
\end{document}

Nota che negli indirizzi ci sono dei doppi backslash che specificano dove occorre andare a capo.

4.2 Pacchetti di espansione per LaTeX ed altre risorse.

Abbiamo già detto che evidenziare il testo sottolineandolo può portare dei problemi particolari. In effetti TeX non ha alcun problema a sottolineare il testo dato che è una convenzione usata in matematica. In LaTeX puoi sottolineare le parole con il comando:

\underline{testo da sottolineare}

Il problema è che la sottolineatura non viene spezzata su diverse linee e, in alcuni casi, il testo sottolineato può non essere giustificato. Comunque c’è un pacchetto di macro per LaTeX, già pronto, che modifica il modo di evidenziazione del testo in modo che usi la sottolineatura. Si chiama ulem.sty, ed è uno dei tanti pacchetti LaTeX che sono disponibili liberamente su Internet.

Per usare ulem.sty, usa il comando

\usepackage{ulem}

nel preambolo del documento.

Alcuni dei pacchetti disponibili per LaTeX sono:

ifthen Includi istruzioni condizionali nei tuoi documenti.

initials Definisce un font per i capolettera.

sanskrit Font e preprocessore per produrre documenti in Sanscrito.

recipe Una classe per LaTeX2e per comporre ricette.

refman Varianti degli stili “article” e “report”.

Per ottenere l’URL completo a partire dal percorso dato nel Catalogue, unisci il percorso all’indirizzo del sito ed al percorso della directory di livello più alto dell’archivio CTAN che vuoi contattare. Per esempio, la directory CTAN del sito ftp.tex.ac.uk è ctan/tex-archive. L’URL completo della directory del pacchetto refman sarebbe:

ftp://ftp.tex.ac.uk/ctan/tex-archive/   +
macros/latex/contrib/supported/refman   =
ftp://ftp.tex.ac.uk/ctan/tex-archive/macros/latex/contrib/supported/refman/

Alcuni pacchetti contengono più di un file, quindi viene dato solo il percorso della directory del pacchetto.

Quando hai determinato l’URL, puoi scaricare il pacchetto da uno dei siti CTAN elencati nella sezione 7 (Appendice A). Puoi scaricare una lista completa del contenuto dell’archivio: è contenuta nel file FILES.byname, che si trova nella directory principale dell’archivio. Puoi anche effettuare delle ricerche on line sull’archivio specificando una parola chiave con il comando ftp

quote site index <parola_chiave>

5 Mettere insieme testo e grafica con dvips.

In generale questa sezione si applica ad un documento TeX o LaTeX in cui siano presenti testo e grafica. teTeX, come la maggior parte delle distribuzioni TeX, è predisposto per richiedere i font Computer Modern. Quando vengono stampati documenti con font scalabili Type 1 o grafica, la resa dei font e della grafica è compito di dvips. dvips può usare sia font Computer Modern bit-mapped che scalabili Type 1, o una combinazione dei due. Come prima cosa ci concentreremo sulla stampa e la visione in anteprima della grafica.

In generale occorrerà seguire questa procedura ogni volta che un sorgente LaTeX contiene l’istruzione

\includepackage{graphics}

nel proprio preambolo. Questa istruzione fa sì che LaTeX includa il testo del pacchetto graphics.sty nel sorgente. Ci sono altri comandi che servono per eseguire operazioni relative alla grafica, e le istruzioni in documenti in TeX puro possono non suggerirti che c’è bisogno di usare dvips. La differenza sarà evidente comunque quando il documento sarà stampato senza figure o altri elementi grafici.

Quindi per ora ci concentreremo sulla stampa di documenti che usano il pacchetto LaTeX graphics.sty. Probabilmente vuoi dare un’occhiata al sorgente TeX originale. Non è incluso nella distribuzione teTeX, ma lo puoi trovare a

~CTAN/macros/latex/packages/graphics/grfguide.tex.

Incluso nella distribuzione teTeX c’è invece il file .dvi già elaborato da TeX. C’è una ragione per questo, ed ha a che fare con la necessità di includere font Type 1 perché il documento possa essere stampato correttamente. Se vuoi elaborare grfguide.tex con LaTeX leggi la prossima sezione. Per ora, comunque, faremo in modo di ottenere con dvips un output utilizzabile.

Il file grfguide.dvi si trova nella directory

texmf/doc/latex/graphics

Il primo passo per poter ottenere qualcosa di utile da grfguide.dvi consiste nel tradurlo in PostScript. Il programma dvips serve a questo scopo. Fa esattamente quello che il suo nome suggerisce. Ci sono molte opzioni con le quali può essere chiamato, ma la forma più semplice (o quasi) è

dvips -f -r <grfguide.dvi >grfguide.ps

Lo switch -f dice a dvips di lavorare come un filtro, cioè leggere dallo standard input e scrivere sullo standard output. dvips può anche essere configurato per inviare il suo output direttamente a lpr.

Se puoi stampare file PostScript sulla tua stampante con il comando lpr puoi digitare semplicemente

dvips -r grfguide.dvi

L’opzione -r dice a dvips di produrre le pagine in ordine inverso così che vengano impilate nell’ordine giusto in uscita dalla stampante. Usalo se questo è utile per la tua stampante.

dvips e metafont possono dover creare o no i nuovi font di cui grfguide.dvi ha bisogno, dipende se hai ancora i font che dvilj2 ha prodotto elaborando l’ultimo documento. Alla fine, comunque, dvips scriverà l’elenco delle pagine che ha tradotto in PostScript e avrai così un file PostScript pronto per essere inviato a qualunque dispositivo tu abbia.

Se sei fortunato (e ricco) allora hai una stampante in grado di capire direttamente il PostScript che potrà stampare direttamente grfguide.ps. Puoi inviare il file alla coda di stampa usando lpr. Se per qualche ragione il tuo software di stampa non funziona correttamente con i file PostScript puoi semplicemente inviare il file alla stampante con

cat grfguide.ps >/dev/lp0

o a qualunque altra porta la tua stampante è collegata. Comunque questo non è il metodo raccomandato per l’uso quotidiano.

Se vuoi o devi eseguire Ghostscript manualmente questa è la procedura standard per usarlo. La prima cosa da fare per eseguire Ghostscript è vedere quali sono gli argomenti della linea di comando, e si può fare così:

gs -help | less

Vedrai una lista dei dispositivi che Ghostscript supporta e molti altri comandi. Scegli il dispositivo che corrisponde maggiormente alla tua stampante. In genere stampo testo in bianco e nero e uso il driver cdjmono, che controlla una stampante a colori Deskjet in modo monocromatico (bianco e nero).

La linea di comando che uso è:

gs -dNOPAUSE -sDEVICE=cdjmono -sOutputFile=/tmp/gs.out grfguide.ps -c quit

Questo mette il mio output compatibile HP nella directory /tmp. È una buona idea usare una directory come /tmp, perché gs può essere un po’ difficile riguardo ai permessi di accesso, e non puoi (né dovresti) contare sul fatto di essere sempre collegato come root quando effettui queste operazioni. Adesso puoi stampare il file:

lpr /tmp/gs.out

Ovviamente puoi mettere tutto in uno script della shell. Sul mio sistema ho due semplici script, pv e pr che inviano il file PostScript rispettivamente allo schermo o alla stampante. È possibile avere un’anteprima su schermo senza usare X, ma non è la cosa migliore. Quindi vale sicuramente la pena installare XFree86 per mostrare il documento sullo schermo.

L’ordine dei comandi in un comando gs è importante, perché alcune delle opzioni dicono a Ghostscript di cercare parti di codice PostScript nella sua libreria.

È importante ricordare che grfguide.dvi richiede sia font bit mapped Computer Modern che font scalabili Type 1. Se sei capace di mettere insieme font scalabili e bit mapped in un documento, sei sulla buona strada per diventare un TeXnico.

5.1 E se la mia stampante non è supportata?

La distribuzione teTeX ha solo una selezione limitata di driver DVI: dvips, driver per le stampanti Hewlett Packard LaserJet, e niente di più. Se hai una stampante non compatibile con le LaserJet hai due possibilità: puoi usare dvips e Ghostscript, cosa che raccomando comunque per le ragioni di cui ho già parlato, o puoi cercare altri driver DVI.

Alcuni driver DVI sono stati riscritti per Linux e sono disponibili già compilati. Si trovano nell’archivio Linux sul sito ftp://sunsite.unc.edu/pub/Linux/apps/tex/dvi/ .

Il sito principale su cui viene mantenuta una libreria di driver DVI si trova all’Università dello Utah. Se non riesci a trovare là un driver che supporta la tua stampante è molto probabile che non esista. Puoi anche scrivere da solo il tuo driver DVI usando degli schemi disponibili là. L’URL del sito è ftp://ftp.math.utah.edu/pub/tex/dvi/ .

6 Usare font PostScript.

Di solito i font Type 1 di pubblico dominio erano di qualità molto minore dei font bit mapped Computer Modern. Questa situazione è migliorata negli ultimi anni, ma trovare i font che corrispondono resta compito tuo. Avere molti tipi di font su una macchina può sembrare ridondante e uno spreco di spazio su disco. Inoltre i font Computer Modern possono sembrare, beh, un po’ troppo formali per uso quotidiano. A volte li paragono a dar da mangiare al cane in una ciotola di porcellana. Almeno non dovrai più spendere un patrimonio per avere dei font di qualità professionale.

Uno dei miglioramenti principali di LaTeX2e rispetto ai suoi predecessori è rappresentato dall’introduzione del New Font Selection Scheme (adesso si chiama PSNFSS). In passato gli utilizzatori di TeX dovevano specificare i font con comandi come

\font=bodyroman = cmr10 scaled \magstep 1

che dà risultati molto precisi ma richiede l’abilità di un disegnatore di caratteri e di un matematico per essere usato a dovere. Inoltre non è molto portabile. Se un altro sistema non ha il font cmr10 (questo è il nome che in TeX viene dato al carattere Computer Modern Roman, corpo 10, con spessore del tratto medio, predefinito) qualcuno deve ricodificare le specifiche dei font per l’intero documento. PSNFSS, invece, ti permette di specificare i font per famiglia (Computer Modern, URW Nimbus, Helvetica, Utopia e così via), tratto (leggero, medio, grassetto), orientamento (dritto o obliquo), tipo (tondo o corsivo) e misura (vedi la sezione 4.1.1 (Caratteri e stili) per una descrizione dei comandi che consentono di specificare lo stile). Alcuni font sono archiviati in famiglie. Per esempio, un font Roman può essere archiviato con un font senza grazie, come Helvetica, e un font a spaziatura fissa, come Courier. Tu, come autore di un documento LaTeX, puoi specificare un’intera famiglia di font con un comando.

Ci sono, come ho già detto, molti font di alta qualità di pubblico domino disponibili. Uno di essi è Adobe Utopia, un altro è Bitstream Charter. Tutti e due sono font di qualità commerciale che sono stati donati al pubblico dominio.

Sono anche due dei miei preferiti. Se cerchi su uno dei siti CTAN vi troverai questi ed altri font. I font in giro sono abbastanza da permetterti di produrre documenti il cui aspetto è proprio quello che vuoi, e non solo testi in inglese. TeX è stato concepito in origine per la composizione di testi matematici, quindi ci sono molti font disponibili per questo scopo, oltre a font per l’alfabeto cirillico, greco, kana ed altri troppo numerosi da ricordare.

La cosa importante da cercare sono i file con estensione .pfa o .pfb. Queste indicano che si tratta proprio dei font scalabili, non solo di file di metrica. I file di metrica dei font Type 1 hanno estensione .pfm, in contrapposizione ai file .tfm usati dai font bit mapped. I due font di cui ho parlato in precedenza sono inclusi nella distribuzione teTeX, oltre che separatamente.

Ciò che ho detto a proposito della facilità di selezione dei font con PSNFSS è vero in questo senso. Se vogliamo usare nel nostro documento il font Charter invece del Computer Modern, tutto ciò che bisogna fare è mettere

\renewcommand{\familydefault}{bch}

nel preambolo, dove “bch” è la sigla con cui si designa comunemente il Bitstream Charter. I font Charter si trovano nella directory

/usr/lib/teTeX/texmf/fonts/type1/bitstrea/charter

Qui ci sono i file .pfb dei font Charter: bchb8a.pfb per il Charter grassetto, bchr8a.pfb per il Charter tondo, bchbi8a.pfb per il Charter grassetto corsivo. L’“8a” nel nome del font indica la codifica dei caratteri.

A questo punto non te ne devi preoccupare, perché la differenza si ha per i caratteri codificati con 8 bit che hanno valore maggiore di 128 decimale. Definiscono principalmente gli accenti e caratteri non inglesi. Le codifiche dei font Type 1 funzionano generalmente bene per gli alfabeti occidentali perché sono conformi allo standard ISO 8859 per gli insiemi di caratteri internazionali, quindi questo rende ulteriormente vantaggioso il loro uso.

Per comporre un documento in cui sono stati selezionati i font Charter occorre dare il comando

pslatex document.tex

pslatex è una variante del latex standard di teTeX che definisce le directory in cui si trovano i font Type 1 e un po’ di codice LaTeX da caricare. Sullo schermo vedrai un avviso di pslatex seguito dalle informazioni di TeX. In breve tempo avrai un file .dvi che contiene le richieste per il font Charter. Adesso puoi stampare il file con dvips e gs, se necessario.

Installare un insieme di font Type 1 non è difficile se segui alcuni passi fondamentali. Devi decomprimere i font in una sottodirectory di /usr/lib/teTeX/texmf/fonts/type1, in cui si trovano anche gli altri font Type 1, e poi eseguire texhash in modo che le routine di ricerca sappiano che i font sono stati aggiunti. Poi devi aggiungere la descrizione dei font al file psfonts.map in modo che anche dvips sappia che si trovano nel sistema. Il formato del file psfonts.map è descritto in un paio dei testi di cui abbiamo parlato. Ancora, ricorda di eseguire il programma texhash per aggiornare il database delle directory di teTeX.

È senz’altro un vantaggio usare il sistema X Windows (XFree86 sotto Linux) con teTeX, perché permette di avere anteprime dei documenti di migliore qualità. Non è necessario averlo, ma in generale tutto quello che permette di avere anteprime migliori renderà migliore il tuo lavoro in termini di qualità dei risultati. Comunque bisogna scendere a compromessi con la velocità di editing, che è molto maggiore sul display a carattere.

7 Appendice A: elenco dei siti CTAN

Questo è il contenuto del file CTAN.sites, che puoi trovare nella directory principale di ogni sito CTAN.

In order to reduce network load, it is recommended that you use the
Comprehensive TeX Archive Network (CTAN) host which is located in the
closest network proximity to your site.  Alternatively, you may wish to
obtain a copy of the CTAN via CD-ROM (see help/CTAN.cdrom for details).
Known mirrors of the CTAN reside on (alphabetically):
  cis.utovrm.it (Italia)                /TeX
  ctan.unsw.edu.au (NSW, Australia)     /tex-archive
  dongpo.math.ncu.edu.tw (Taiwan)       /tex-archive
  ftp.belnet.be (Belgium)               /packages/TeX
  ftp.ccu.edu.tw (Taiwan)               /pub/tex
  ftp.cdrom.com (West coast, USA)       /pub/tex/ctan
  ftp.comp.hkbu.edu.hk (Hong Kong)      /pub/TeX/CTAN
  ftp.cs.rmit.edu.au  (Australia)       /tex-archive
  ftp.cs.ruu.nl (The Netherlands)       /pub/tex-archive
  ftp.cstug.cz (The Czech Republic)     /pub/tex/CTAN
  ftp.duke.edu (North Carolina, USA)    /tex-archive
  ftp.funet.fi (Finland)                /pub/TeX/CTAN
  ftp.gwdg.de (Deutschland)             /pub/dante
  ftp.jussieu.fr (France)               /pub4/TeX/CTAN

ftp.kreonet.re.kr (Korea)             /pub/CTAN
ftp.loria.fr (France)                 /pub/unix/tex/ctan
ftp.mpi-sb.mpg.de (Deutschland)       /pub/tex/mirror/ftp.dante.de
ftp.nada.kth.se (Sweden)              /pub/tex/ctan-mirror
ftp.oleane.net (France)               /pub/mirrors/CTAN/
ftp.rediris.es (Espa\~na)             /mirror/tex-archive
ftp.rge.com (New York, USA)           /pub/tex
ftp.riken.go.jp (Japan)               /pub/tex-archive
ftp.tu-chemnitz.de (Deutschland)      /pub/tex
ftp.u-aizu.ac.jp (Japan)              /pub/tex/CTAN
ftp.uni-augsburg.de (Deutschland)     /tex-archive
ftp.uni-bielefeld.de (Deutschland)    /pub/tex
ftp.unina.it (Italia)                 /pub/TeX
ftp.uni-stuttgart.de (Deutschland)    /tex-archive (/pub/tex)
ftp.univie.ac.at (\"Osterreich)       /packages/tex
ftp.ut.ee (Estonia)                   /tex-archive
ftpserver.nus.sg (Singapore)          /pub/zi/TeX
src.doc.ic.ac.uk (England)            /packages/tex/uk-tex
sunsite.auc.dk (Denmark)              /pub/tex/ctan
sunsite.cnlab-switch.ch (Switzerland) /mirror/tex
sunsite.icm.edu.pl (Poland)           /pub/CTAN
sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX
wuarchive.wustl.edu (Missouri, USA)   /packages/TeX
Known partial mirrors of the CTAN reside on (alphabetically):
ftp.adfa.oz.au (Australia)            /pub/tex/ctan
ftp.fcu.edu.tw (Taiwan)               /pub2/tex
ftp.germany.eu.net (Deutschland)      /pub/packages/TeX
ftp.gust.org.pl (Poland)              /pub/TeX
ftp.jaist.ac.jp (Japan)               /pub/TeX/tex-archive
ftp.uu.net (Virginia, USA)            /pub/text-processing/TeX
nic.switch.ch (Switzerland)           /mirror/tex
sunsite.dsi.unimi.it (Italia)         /pub/TeX
sunsite.snu.ac.kr (Korea)             /shortcut/CTAN
Please send updates to this list to <ctan@urz.uni-heidelberg.de>.
The participating hosts in the Comprehensive TeX Archive Network are:
ftp.dante.de  (Deutschland)
     -- anonymous ftp                 /tex-archive (/pub/tex /pub/archive)
     -- gopher on node gopher.dante.de
     -- e-mail via ftpmail@dante.de
     -- World Wide Web access on www.dante.de
     -- Administrator: <ftpmaint@dante.de>
ftp.tex.ac.uk (England)
     -- anonymous ftp                 /tex-archive (/pub/tex /pub/archive)
     -- gopher on node gopher.tex.ac.uk
     -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive
     -- World Wide Web access on www.tex.ac.uk

       -- Administrator: <ctan-uk@tex.ac.uk>

8 Appendice B: Installare la distribuzione generica CTAN di teTeX

La distribuzione teTeX generica non è più difficile da installare degli altri pacchetti Linux. Vedi la sezione 8.2.1 (La distribuzione generica CTAN).

L’installazione della distribuzione teTeX generica CTAN dovrebbe essere presa in seria considerazione se:

• Il tuo sistema non è basato su una delle distribuzioni standard di Linux.

• Non hai privilegi da amministratore (root) del tuo sistema.

• Vuoi o hai bisogno della più recente versione di teTeX, o LaTeX.

• Non hai abbastanza spazio su disco per un’installazione completa.

• Vuoi installare teTeX da qualche altra parte che non sia il file system /usr.

• Vorresti condividere la tua installazione di teTeX su una rete su cui si trovano sistemi che montano una diversa variante di UNIX. In questo caso, dovresti seriamente considerare la possibilità di installare il codice sorgente. Vedi la sezione 8.2.1 (Installazione della distribuzione sorgente CTAN).

• Vuoi avere l’ultima versione dei font di pubblico dominio Type 1 di teTeX, che sono migliori dei font inclusi con le versioni più vecchie.

Un’installazione completa della distribuzione binaria richiede 40-50 Mb di spazio su disco, e compilare la distribuzione a partire dal codice sorgente richiede circa 75 Mb, quindi assicurati di avere questo spazio su disco prima di cominciare. Non c’è bisogno del compilatore gcc o del sistema X Windows (comunque X è certamente di aiuto perché rende facile avere un’anteprima dei documenti sullo schermo). Tutto ciò di cui hai bisogno è un editor in grado di produrre testo in formato ASCII standard (vedi la sezione 2). Cosa c’è di più semplice?

Puoi procurarti i file da uno dei siti CTAN elencati nella sezione 7 (Appendice A). Negli esempi che seguono, i file sono stati presi dal sito CTAN ftp.tex.ac.uk .

8.1 Installazione della distribuzione binaria.

8.1.1 Installazione minima.

Per prima cosa, collegati al sito FTP ftp.tex.ac.uk , e vai (cd) nella directory

ctan/tex-archive/systems/unix/teTeX/distrib/

Scarica i file

INSTALL.bin
install.sh

e mettili nella directory di livello più alto nella quale vuoi installare teTeX (quella che conterrà tutti i componenti necessari al funzionamento di teTeX: file e directory): per esempio /var/teTeX se vuoi installare teTeX nel file system /var

Stampa il file INSTALL.bin. Tienilo a portata di mano, poiché spiega come effettuare un’installazione minima di teTeX. L’installazione minima richiede solo 10-15 Mb di spazio su disco, ma la cosa migliore è sicuramente installare tutto il pacchetto teTeX se possibile. Per l’installazione minima avrai bisogno dei file:

ctan/tex-archive/systems/unix/teTeX/distrib/base/latex-base.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/base/tetex-base.tar.gz

Avrai bisogno anche di uno dei due file compressi che contengono i programmi teTeX in forma eseguibile. Scarica il file:

ctan/tex-archive/systems/unix/teTeX/distrib/binaries/i386-linux.tar.gz

se il tuo sistema usa le librerie condivise ELF di Linux, ld.so versione 1.73 o superiore, e clibs versione 5.09 o superiore. Altrimenti prendi il file

ctan/tex-archive/systems/unix/teTeX/distrib/binaries/i386-linuxaout.tar.gz

che è compilato per sistemi che usano le vecchie librerie statiche per il formato a.out.

Poi, seguendo le istruzioni nel file INSTALL.bin, esegui il comando

sh ./install.sh

dalla directory di livello più alto di teTeX (assicurati che anche i file compressi di teTeX si trovino lì). Dopo un po’ il programma di installazione ti avvertirà della mancanza di alcuni dei pacchetti di teTeX. Comunque, se quello che vuoi è un’installazione minima di teTeX, puoi ignorare l’avvertimento e continuare. Per la configurazione di base del sistema teTeX, vedi la sezione 8.2 (Configurazione di base del sistema).

Per installare gli altri pacchetti consulta la sezione seguente.

8.1.2 Installazione completa.

Per eseguire un’installazione completa di teTeX scarica, oltre ai file elencati nella sezione precedente, i seguenti:

ctan/tex-archive/systems/unix/teTeX/distrib/doc/ams-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/bibtex-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/eplain-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/fonts-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/general-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/generic-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/latex-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/makeindex-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/metapost-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/doc/programs-doc.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/ams-fonts.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/dc-fonts.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/ec-fonts.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/misc-fonts.tar.gz

ctan/tex-archive/systems/unix/teTeX/distrib/fonts/postscript-fonts.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/fonts/sauter-fonts.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/amstex.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/bibtex.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/eplain.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/latex-extra.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/metapost.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/pictex.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/pstricks.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/texdraw.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/goodies/xypic.tar.gz

Tutti questi dovrebbero essere messi nella directory di livello più alto di teTeX. Come per l’installazione minima, esegui il comando

sh ./install.sh

8.2 Configurazione di base del sistema.

Lo script install.sh dopo aver determinato quali file di teTeX sono presenti, ti presenterà un menu con una serie di opzioni. L’unica scelta che devi fare a questo punto riguarda la directory di livello più alto in cui vuoi che teTeX sia installato (opzione “D”). Devi, naturalmente, scegliere una directory sulla cui directory padre hai privilegi di scrittura. Per esempio, se volessi installare teTeX sulla tua directory home, dovresti specificare la directory su cui installare teTeX nel modo seguente:

/home/john.q.public/teTeX

e, ritornato al menu principale, scegliere “I” per continuare con l’installazione. Non è necessario che la directory esista già: lo script install.sh è in grado di crearla.

Un opzione che vale la pena usare è quella che consente di scegliere una directory alternativa per i font generati. Anche se pensi di dover usare solo font PostScript Type 1, potresti dover elaborare un file che richiede i font Computer Modern. Questa opzione richiede l’inserimento della directory da usare. Devi avere privilegi di scrittura sul padre di questa directory. Seguendo l’esempio precedente, potresti specificare:

/home/john.q.public/texfonts

o, se vuoi che i font generati siano accessibili da tutti gli utenti del sistema, specifica una directory come

/var/texfonts

La mia raccomandazione è quella di non usare la directory proposta per questa opzione, /var/tmp/texfonts, perché i font generati potrebbero essere cancellati al successivo riavvio e dovrebbero essere generati ancora qualora fossero di nuovo necessari.

Dopo che hai scelto l’opzione “I” e install.sh ha installato i file, impostato i permessi e generato link e file di formato, il programma terminerà con un messaggio che dice di aggiungere alla variabile di ambiente $PATH la directory in cui sono installati i programmi di teTeX, e quelle in cui si trovano le pagine di manuale ed i file di informazioni alle variabili $MANPATH e $INFOPATH. Per esempio, aggiungi le seguenti linee:

export PATH=$PATH:"/home/john.q.public/teTeX/bin"
export MANPATH=$MANPATH":/home/john.q.public/teTeX/man"
export INFOPATH$=INFOPATH":/home/john.q.public/teTeX/info"

al tuo ˜ /.bash_profile se bash è la tua shell, o al tuo ˜ /.profile se usi un’altra shell.

Scollegati (log out) e ricollegati (log in), in modo che le variabili di ambiente siano registrate. Poi esegui il comando

texconfig confall

per assicurarti che l’installazione sia corretta.

Puoi poi configurare specificamente teTeX per il tuo hardware. Vedi la sezione 9 (Dettagli sulla configurazione dopo l’installazione).

8.2.1 Installazione della distribuzione sorgente CTAN.

Per installare il codice sorgente di teTeX V. 0.4, collegati via FTP ad un sito CTAN come ftp://ftp.tex.ac.uk e scarica i seguenti file:

ctan/tex-archive/systems/unix/teTeX/distrib/INSTALL.src
ctan/tex-archive/systems/unix/teTeX/distrib/sources/README.texmf-src
ctan/tex-archive/systems/unix/teTeX/distrib/sources/teTeX-lib-0.4pl8.tar.gz
ctan/tex-archive/systems/unix/teTeX/distrib/sources/teTeX-src-0.4pl7.tar.gz

Leggi le istruzioni in INSTALL.src, poi collegati come root e decomprimi i file in una directory sulla quale hai privilegi di lettura, scrittura ed esecuzione.

Ricorda di usare tar con l’argomento p, e l’opzione noclobber di bash. Puoi fare questo usando il comando non intuitivo

set +o noclobber

L’argomento +o di set serve a non impostare una variabile, esattamente il contrario di quello che ci si potrebbe aspettare (“set” significa “impostare”).

Il file teTeX-lib-0.4pl8.tar.gz creerà la directory ./teTeX. Il file teTeX-src-0.4pl7.tar.gz creerà la

directory teTeX-src-0.4. Stampa il file INSTALL.src e tienilo a portata di mano per i passi seguenti. Passa alla directory ./teTeX-src-0.4 e, seguendo le istruzioni nel file INSTALL.src, modifica il ./Makefile. Devi assegnare alla variabile TETEXDIR il percorso assoluto della sottodirectory teTeX della directory in cui hai decompresso il codice sorgente e le librerie. Per esempio, se hai decompresso i file nella tua directory home,

assegna a TETEXDIR
/home/john.q.public/teTeX

Le rimanenti opzioni del Makefile sono piuttosto generiche. Con la versione 2.7.2 e successive di GCC non ci dovrebbe essere bisogno di altre modifiche, a meno che tu non abbia un compilatore e delle librerie non standard, o che tu voglia ulteriori ottimizzazioni, o per qualche altro motivo. Assicurati che le variabili USE_DIALOG, USE_NCURSES, e HAVE_NCURSES siano impostate correttamente per il tuo sistema, perché il programma dialog ha bisogno delle librerie ncurses. Una libreria ncurses è inclusa nella distribuzione sorgente, per cui i valori già presenti nel Makefile dovrebbero andar bene. Se non riesci a compilare o linkare ncurses, texconfig può essere eseguito anche dalla linea di comando.

Se hai fatto tutto correttamente fino a questo punto, dopo essere andato sulla directory di livello più alto in cui hai installato i sorgenti, dovresti poter digitare make world e rilassarti finché gli eseguibili di teTeX non sono stati compilati. Ci possono volere anche alcune ore.

Una volta che la compilazione è terminata, aggiungi le directory di teTeX alle variabili di ambiente $PATH, $MANPATH, e $INFOPATH. Continuando con l’esempio precedente, le linee che dovrebbero essere aggiunte al

file ˜ /.bash_profile, sono:
export PATH=$PATH":/home/john.q.public/teTeX/bin/i386-linux"
export MANPATH=$MANPATH":/home/john.q.public/teTeX/man"
export INFOPATH=$INFOPATH":/home/john.q.public/teTeX/info"

La variabile $PATH è diversa nella distribuzione sorgente e nella distribuzione binaria. Nota che ora la directory in cui si trovano gli eseguibili è teTeX/bin/i386-linux invece di teTeX/bin come nella distribuzione binaria.

A questo punto puoi eseguire texconfig confall per assicurarti che i percorsi sono stati correttamente impostati, e poi precedere a configurare teTeX come nella distribuzione binaria. Vedi la sezione 9 (Dettagli sulla configurazione dopo l’installazione).

9 Dettagli sulla configurazione dopo l’installazione.

La prima cosa da fare è leggere il file README scritto dallo stesso Thomas Esser. Descrive molti trucchi sulla configurazione di teTeX per i tuoi dispositivi di uscita (per esempio la stampante). Il file README si trova nella directory

/usr/lib/teTeX/texmf/doc/tetex

Leggi il file con il comando (i percorsi usati negli esempi seguenti si riferiscono alla distribuzione Slackware):

less /usr/lib/teTeX/texmf/doc/tetex/README

oppure stampalo con il comando

cat /usr/lib/teTeX/texmf/doc/tetex/README >/dev/lp0

se la tua stampante è collegata a /dev/lp0; altrimenti sostituisci il file di dispositivo relativo alla porta a cui la tua stampante è collegata.

Ancora meglio, stampalo usando il comando lpr:

lpr /usr/lib/teTeX/texmf/doc/tetex/README

Dovresti avere già installato il demone di stampa incluso nella tua distribuzione di Linux. Altrimenti installalo adesso seguendo le istruzioni comprese nel pacchetto.

Stampa il teTeX-FAQ, e tienilo a portata di mano perché contiene utili consigli su come configurare i driver per la tua stampante. Ci arriveremo tra poco. Nelle versioni più recenti di teTeX, il teTeX-FAQ è accessibile anche attraverso texconfig.

Adesso è bene definire una directory in cui conservare i tuoi file di formato TeX. teTeX cerca questi file nelle directory elencate dalla variabile d’ambiente $TEXINPUTS:

export TEXINPUTS=".:~/texinputs:"

al file /etc/profile, che è valido per tutti gli utenti. Ciascun utente può poi definire le proprie directory aggiungendole al file ˜ /.profile o ˜ /.bash_profile se bash è la shell che usano. La variabile d’ambiente $TEXINPUTS dice a teTeX di cercare i file di stile di TeX nella directory ˜ /texinputs contenuta nella directory di ciascun utente. È fondamentale che un “:” appaia prima e dopo questa directory. teTeX aggiungerà le sue directory di ricerca alla tua. Poiché è probabile che tu voglia che vengano usati i file di formato da te definiti, teTeX usa le versioni dei file di formato che si trovano nella directory in cui ti trovi quando viene eseguito.

Aggiungi la directory /usr/lib/teTeX/bin ai percorsi di sistema se stai installando teTeX come amministratore. Se ne stai installando una copia personale aggiungi la directory che contiene i file binari di teTeX all’inizio della tua variabile d’ambiente $PATH aggiungendo la linea seguente al tuo ˜ /.profile o

˜ /.bash_profile:
export PATH="~/tetex/bin:"$PATH

Adesso, collegati come root ed esegui texconfig seguendo le istruzioni sul teTeX-FAQ e scegli la stampante collegata al tuo sistema. Assicurati di configurare in teTeX sia la stampante che la risoluzione di stampa corrette.

Infine, esegui il programma texhash. Questo assicura che il database interno di teTeX sia aggiornato. Il database è in effetti un file ls-lR. È necessario eseguire texhash ogni volta che si cambia la configurazione di sistema, altrimenti teTeX non è in grado di determinare i cambiamenti.

10 Appendice C: Distribution and Copyright (in lingua originale).

10.1 Distribution.

teTeX is free software; this means everyone is free to use the software and free to redistribute it on certain conditions. The package is not in the public domain. It is copyrighted and there are restrictions on its distribution, but these restrictions are designed to permit everything that a good cooperating citizen would want to do. What is not allowed is to try to prevent others from further sharing any version of free software that they might get from you. The precise conditions are found in the GNU General Public License that comes with many of the software packages and also appears following this section.

One way to get a copy of the package is from someone else who has it. You need not ask for our permission to do so, or tell any one else; just copy it. If you have access to the Internet, you can get the latest distribution versions by anonymous FTP. See the chapter “Sources” for more information.

You may also receive the software when you buy a computer. Computer manufacturers are free to distribute copies on the same terms that apply to everyone else. These terms require them to give you the full sources, including whatever changes they may have made, and to permit you to redistribute these packages received from them under the usual terms of the General Public License. In other words, the program must be free for you when you get it, not just free for the manufacturer.

You can also order copies of GNU software from the Free Software Foundation on CD-ROM. This is a convenient and reliable way to get a copy; it is also a good way to help fund our work. (The Foundation has always received most of its funds in this way.) An order form is included many distribution, and on our web site in http://www.gnu.ai.mit.edu/order/order.html. For further information, write to

Free Software Foundation
59 Temple Place, Suite 330
Boston, MA  02111-1307 USA
USA

The income from distribution fees goes to support the foundation’s purpose: the development of new free software, and improvements to our existing programs.

If you use GNU software at your workplace, please suggest that the company make a donation. If company policy is unsympathetic to the idea of donating to charity, you might instead suggest ordering a CD-ROM from the Foundation occasionally, or subscribing to periodic updates.

Insomma: teTeX è free: può essere ridistribuito liberamente. I termini precisi sono quelli descritti nella General Public License. I fabbricanti di computer possono distribuirlo con i computer da loro venduti purché includano anche il codice sorgente e tutte le eventuali modifiche da loro effettuate a quest’ultimo. Copie del software GNU può essere ordinato all’indirizzo della Free Software Foundation indicato sopra. Questo è anche un modo per supportare la Free Software Foundation.

10.2 GNU GENERAL PUBLIC LICENSE

Nota: una versione in italiano NON UFFICIALE della General Public License si trova a http://animal.unipv.it/GNU/gpl.txt

Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble.

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software— to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

• This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program” below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term,“modification.”) Each licensee is addressed as “you.” Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

• You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

• You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

1. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

2. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

3. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

• You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

1. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

2. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

3. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

• You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

• You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

• Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

• If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

• If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

• The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version,” you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

• If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY

• BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTH-ER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

• IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAM-AGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAM-AGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

10.3 How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

[one line to give the program's name and an idea of what it does.
Copyright (C) 19[yy]  [name of author]
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) 19[yy] [name of author]
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
type `show w'.  This is free software, and you are welcome
to redistribute it under certain conditions; type `show c'
for details.

The hypothetical commands “show w” and “show c” should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than “show w” and “show c”; they could even be mouse-clicks or menu items—whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright
interest in the program `Gnomovision'
(which makes passes at compilers) written
by James Hacker.
[signature of Ty Coon] 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.